{"abi":[{"type":"function","name":"batchDetectEfficient","inputs":[{"name":"pools","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"results","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"detectPool","inputs":[{"name":"pool","type":"address","internalType":"address"}],"outputs":[{"name":"info","type":"tuple","internalType":"struct PoolDetector.PoolInfo","components":[{"name":"pool","type":"address","internalType":"address"},{"name":"poolType","type":"uint8","internalType":"enum PoolDetector.PoolType"},{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"isValid","type":"bool","internalType":"bool"},{"name":"confidence","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"detectPools","inputs":[{"name":"pools","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"infos","type":"tuple[]","internalType":"struct PoolDetector.PoolInfo[]","components":[{"name":"pool","type":"address","internalType":"address"},{"name":"poolType","type":"uint8","internalType":"enum PoolDetector.PoolType"},{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"isValid","type":"bool","internalType":"bool"},{"name":"confidence","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610ed1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806316e9e8231461004657806374bdbc6a1461006f578063993eba091461008f575b600080fd5b610059610054366004610ae7565b6100af565b6040516100669190610c16565b60405180910390f35b61008261007d366004610c7c565b61020b565b6040516100669190610ca0565b6100a261009d366004610ae7565b6103d0565b6040516100669190610cb4565b60608167ffffffffffffffff8111156100ca576100ca610cec565b60405190808252806020026020018201604052801561013157816020015b6040805160e08101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282526000199092019101816100e85790505b50905060005b8281101561020457306374bdbc6a85858481811061015757610157610d02565b905060200201602081019061016c9190610c7c565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160e060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190610d58565b8282815181106101e6576101e6610d02565b602002602001018190525080806101fc90610e0f565b915050610137565b5092915050565b6040805160e081018252600060208201819052918101829052606081018290526080810182905260a0810182905260c081018290526001600160a01b038316815290823b908190036102645750600060a0820152919050565b6000806102708561056f565b915091506000806102808761062d565b9150915083158061028f575081155b156102a6575050600060a085015250919392505050565b6001600160a01b03808416604088015281166060870152600160a08701526102cd87610674565b1561030a5760026020870152605f60c08701526000806102ec896106d3565b9150915081156102fe57608088018190525b50505050505050919050565b61031387610788565b1561035257610321876107b8565b156103395760046020870152605a60c0870152610348565b60036020870152605560c08701525b5050505050919050565b61035b87610845565b156103b857600061036b8861088e565b90506001600160a01b03811673c35dadb65012ec5796536bd9864ed8773abc74c40361039d57600860208801526103a5565b600160208801525b5050605060c08601525092949350505050565b5050600060208501525050601e60c083015250919050565b60608167ffffffffffffffff8111156103eb576103eb610cec565b604051908082528060200260200182016040528015610414578160200160208202803683370190505b50905060005b82811015610204576000306374bdbc6a86868581811061043c5761043c610d02565b90506020020160208101906104519190610c7c565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160e060405180830381865afa158015610495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b99190610d58565b6080810151606082015191925060201b906001600160a01b03166104de5760006104e4565b63010000005b63ffffffff1660006001600160a01b031683604001516001600160a01b03160361050f576000610514565b620100005b62ffffff1660088460c0015160ff16901b8460200151600a81111561053b5761053b610b5c565b1717171783838151811061055157610551610d02565b6020908102919091010152508061056781610e0f565b91505061041a565b60408051600481526024810182526020810180516001600160e01b0316630dfe168160e01b179052905160009182916060916001600160a01b038616916105b69190610e36565b600060405180830381855afa9150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b50909350905082801561060b57506020815110155b1561062757808060200190518101906106249190610e65565b91505b50915091565b60408051600481526024810182526020810180516001600160e01b031663d21220a760e01b179052905160009182916060916001600160a01b038616916105b69190610e36565b60008061068083610948565b509050600061068e846106d3565b509050600061069c856109d7565b50905060006106aa86610a1b565b5090508380156106b75750825b80156106c05750815b80156106c95750805b9695505050505050565b60408051600481526024810182526020810180516001600160e01b031663ddca3f4360e01b179052905160009182916060916001600160a01b0386169161071a9190610e36565b600060405180830381855afa9150503d8060008114610755576040519150601f19603f3d011682016040523d82523d6000602084013e61075a565b606091505b50909350905082801561076f57506020815110155b1561062757808060200190518101906106249190610e82565b60008061079483610a5f565b50905060006107a284610948565b5090508180156107b0575080155b949350505050565b60408051600481526024810182526020810180516001600160e01b031663d893f47560e01b179052905160009182916001600160a01b038516916107fb91610e36565b600060405180830381855afa9150503d8060008114610836576040519150601f19603f3d011682016040523d82523d6000602084013e61083b565b606091505b5090949350505050565b60008061085183610aa3565b509050600061085f84610948565b509050600061086d85610a5f565b50905082801561087b575081155b8015610885575080155b95945050505050565b60408051600481526024810182526020810180516001600160e01b031663c45a015560e01b1790529051600091829182916001600160a01b038616916108d49190610e36565b600060405180830381855afa9150503d806000811461090f576040519150601f19603f3d011682016040523d82523d6000602084013e610914565b606091505b509150915081801561092857506020815110155b1561094157808060200190518101906107b09190610e65565b5050919050565b60408051600481526024810182526020810180516001600160e01b0316633850c7bd60e01b17905290516000916060916001600160a01b0385169161098c91610e36565b600060405180830381855afa9150503d80600081146109c7576040519150601f19603f3d011682016040523d82523d6000602084013e6109cc565b606091505b509094909350915050565b60408051600481526024810182526020810180516001600160e01b03166334324e9f60e21b17905290516000916060916001600160a01b0385169161098c91610e36565b60408051600481526024810182526020810180516001600160e01b0316633867baa560e11b17905290516000916060916001600160a01b0385169161098c91610e36565b60408051600481526024810182526020810180516001600160e01b03166339db007960e21b17905290516000916060916001600160a01b0385169161098c91610e36565b60408051600481526024810182526020810180516001600160e01b0316630240bc6b60e21b17905290516000916060916001600160a01b0385169161098c91610e36565b60008060208385031215610afa57600080fd5b823567ffffffffffffffff80821115610b1257600080fd5b818501915085601f830112610b2657600080fd5b813581811115610b3557600080fd5b8660208260051b8501011115610b4a57600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052602160045260246000fd5b80516001600160a01b031682526020810151600b8110610ba257634e487b7160e01b600052602160045260246000fd5b806020840152506040810151610bc360408401826001600160a01b03169052565b506060810151610bde60608401826001600160a01b03169052565b506080810151608083015260a0810151610bfc60a084018215159052565b5060c0810151610c1160c084018260ff169052565b505050565b6020808252825182820181905260009190848201906040850190845b81811015610c5857610c45838551610b72565b9284019260e09290920191600101610c32565b50909695505050505050565b6001600160a01b0381168114610c7957600080fd5b50565b600060208284031215610c8e57600080fd5b8135610c9981610c64565b9392505050565b60e08101610cae8284610b72565b92915050565b6020808252825182820181905260009190848201906040850190845b81811015610c5857835183529284019291840191600101610cd0565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8051610d2381610c64565b919050565b8051600b8110610d2357600080fd5b80518015158114610d2357600080fd5b805160ff81168114610d2357600080fd5b600060e08284031215610d6a57600080fd5b60405160e0810181811067ffffffffffffffff82111715610d9b57634e487b7160e01b600052604160045260246000fd5b604052610da783610d18565b8152610db560208401610d28565b6020820152610dc660408401610d18565b6040820152610dd760608401610d18565b606082015260808301516080820152610df260a08401610d37565b60a0820152610e0360c08401610d47565b60c08201529392505050565b600060018201610e2f57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000825160005b81811015610e575760208186018101518583015201610e3d565b506000920191825250919050565b600060208284031215610e7757600080fd5b8151610c9981610c64565b600060208284031215610e9457600080fd5b505191905056fea2646970667358221220f72da3faa6fcb24232d9b499cdd49b38d647b1ea9bc2f716ad65814d7e664e5864736f6c63430008130033","sourceMap":"254:7854:17:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806316e9e8231461004657806374bdbc6a1461006f578063993eba091461008f575b600080fd5b610059610054366004610ae7565b6100af565b6040516100669190610c16565b60405180910390f35b61008261007d366004610c7c565b61020b565b6040516100669190610ca0565b6100a261009d366004610ae7565b6103d0565b6040516100669190610cb4565b60608167ffffffffffffffff8111156100ca576100ca610cec565b60405190808252806020026020018201604052801561013157816020015b6040805160e08101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282526000199092019101816100e85790505b50905060005b8281101561020457306374bdbc6a85858481811061015757610157610d02565b905060200201602081019061016c9190610c7c565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160e060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190610d58565b8282815181106101e6576101e6610d02565b602002602001018190525080806101fc90610e0f565b915050610137565b5092915050565b6040805160e081018252600060208201819052918101829052606081018290526080810182905260a0810182905260c081018290526001600160a01b038316815290823b908190036102645750600060a0820152919050565b6000806102708561056f565b915091506000806102808761062d565b9150915083158061028f575081155b156102a6575050600060a085015250919392505050565b6001600160a01b03808416604088015281166060870152600160a08701526102cd87610674565b1561030a5760026020870152605f60c08701526000806102ec896106d3565b9150915081156102fe57608088018190525b50505050505050919050565b61031387610788565b1561035257610321876107b8565b156103395760046020870152605a60c0870152610348565b60036020870152605560c08701525b5050505050919050565b61035b87610845565b156103b857600061036b8861088e565b90506001600160a01b03811673c35dadb65012ec5796536bd9864ed8773abc74c40361039d57600860208801526103a5565b600160208801525b5050605060c08601525092949350505050565b5050600060208501525050601e60c083015250919050565b60608167ffffffffffffffff8111156103eb576103eb610cec565b604051908082528060200260200182016040528015610414578160200160208202803683370190505b50905060005b82811015610204576000306374bdbc6a86868581811061043c5761043c610d02565b90506020020160208101906104519190610c7c565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160e060405180830381865afa158015610495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b99190610d58565b6080810151606082015191925060201b906001600160a01b03166104de5760006104e4565b63010000005b63ffffffff1660006001600160a01b031683604001516001600160a01b03160361050f576000610514565b620100005b62ffffff1660088460c0015160ff16901b8460200151600a81111561053b5761053b610b5c565b1717171783838151811061055157610551610d02565b6020908102919091010152508061056781610e0f565b91505061041a565b60408051600481526024810182526020810180516001600160e01b0316630dfe168160e01b179052905160009182916060916001600160a01b038616916105b69190610e36565b600060405180830381855afa9150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b50909350905082801561060b57506020815110155b1561062757808060200190518101906106249190610e65565b91505b50915091565b60408051600481526024810182526020810180516001600160e01b031663d21220a760e01b179052905160009182916060916001600160a01b038616916105b69190610e36565b60008061068083610948565b509050600061068e846106d3565b509050600061069c856109d7565b50905060006106aa86610a1b565b5090508380156106b75750825b80156106c05750815b80156106c95750805b9695505050505050565b60408051600481526024810182526020810180516001600160e01b031663ddca3f4360e01b179052905160009182916060916001600160a01b0386169161071a9190610e36565b600060405180830381855afa9150503d8060008114610755576040519150601f19603f3d011682016040523d82523d6000602084013e61075a565b606091505b50909350905082801561076f57506020815110155b1561062757808060200190518101906106249190610e82565b60008061079483610a5f565b50905060006107a284610948565b5090508180156107b0575080155b949350505050565b60408051600481526024810182526020810180516001600160e01b031663d893f47560e01b179052905160009182916001600160a01b038516916107fb91610e36565b600060405180830381855afa9150503d8060008114610836576040519150601f19603f3d011682016040523d82523d6000602084013e61083b565b606091505b5090949350505050565b60008061085183610aa3565b509050600061085f84610948565b509050600061086d85610a5f565b50905082801561087b575081155b8015610885575080155b95945050505050565b60408051600481526024810182526020810180516001600160e01b031663c45a015560e01b1790529051600091829182916001600160a01b038616916108d49190610e36565b600060405180830381855afa9150503d806000811461090f576040519150601f19603f3d011682016040523d82523d6000602084013e610914565b606091505b509150915081801561092857506020815110155b1561094157808060200190518101906107b09190610e65565b5050919050565b60408051600481526024810182526020810180516001600160e01b0316633850c7bd60e01b17905290516000916060916001600160a01b0385169161098c91610e36565b600060405180830381855afa9150503d80600081146109c7576040519150601f19603f3d011682016040523d82523d6000602084013e6109cc565b606091505b509094909350915050565b60408051600481526024810182526020810180516001600160e01b03166334324e9f60e21b17905290516000916060916001600160a01b0385169161098c91610e36565b60408051600481526024810182526020810180516001600160e01b0316633867baa560e11b17905290516000916060916001600160a01b0385169161098c91610e36565b60408051600481526024810182526020810180516001600160e01b03166339db007960e21b17905290516000916060916001600160a01b0385169161098c91610e36565b60408051600481526024810182526020810180516001600160e01b0316630240bc6b60e21b17905290516000916060916001600160a01b0385169161098c91610e36565b60008060208385031215610afa57600080fd5b823567ffffffffffffffff80821115610b1257600080fd5b818501915085601f830112610b2657600080fd5b813581811115610b3557600080fd5b8660208260051b8501011115610b4a57600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052602160045260246000fd5b80516001600160a01b031682526020810151600b8110610ba257634e487b7160e01b600052602160045260246000fd5b806020840152506040810151610bc360408401826001600160a01b03169052565b506060810151610bde60608401826001600160a01b03169052565b506080810151608083015260a0810151610bfc60a084018215159052565b5060c0810151610c1160c084018260ff169052565b505050565b6020808252825182820181905260009190848201906040850190845b81811015610c5857610c45838551610b72565b9284019260e09290920191600101610c32565b50909695505050505050565b6001600160a01b0381168114610c7957600080fd5b50565b600060208284031215610c8e57600080fd5b8135610c9981610c64565b9392505050565b60e08101610cae8284610b72565b92915050565b6020808252825182820181905260009190848201906040850190845b81811015610c5857835183529284019291840191600101610cd0565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8051610d2381610c64565b919050565b8051600b8110610d2357600080fd5b80518015158114610d2357600080fd5b805160ff81168114610d2357600080fd5b600060e08284031215610d6a57600080fd5b60405160e0810181811067ffffffffffffffff82111715610d9b57634e487b7160e01b600052604160045260246000fd5b604052610da783610d18565b8152610db560208401610d28565b6020820152610dc660408401610d18565b6040820152610dd760608401610d18565b606082015260808301516080820152610df260a08401610d37565b60a0820152610e0360c08401610d47565b60c08201529392505050565b600060018201610e2f57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000825160005b81811015610e575760208186018101518583015201610e3d565b506000920191825250919050565b600060208284031215610e7757600080fd5b8151610c9981610c64565b600060208284031215610e9457600080fd5b505191905056fea2646970667358221220f72da3faa6fcb24232d9b499cdd49b38d647b1ea9bc2f716ad65814d7e664e5864736f6c63430008130033","sourceMap":"254:7854:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3049:289;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;870:2023;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7264:842::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3049:289::-;3143:23;3205:5;3190:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3190:28:17;;-1:-1:-1;;3190:28:17;;;;;;;;;;;;3182:36;;3233:9;3228:104;3248:16;;;3228:104;;;3296:4;:15;3312:5;;3318:1;3312:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3296:25;;-1:-1:-1;;;;;;3296:25:17;;;;;;;-1:-1:-1;;;;;4358:32:18;;;3296:25:17;;;4340:51:18;4313:18;;3296:25:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3285:5;3291:1;3285:8;;;;;;;;:::i;:::-;;;;;;:36;;;;3266:3;;;;;:::i;:::-;;;;3228:104;;;;3049:289;;;;:::o;870:2023::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;959:16:17;;;;-1:-1:-1;1083:17:17;;;1124:13;;;1120:89;;-1:-1:-1;1168:5:17;1153:12;;;:20;:4;870:2023;-1:-1:-1;870:2023:17:o;1120:89::-;1282:14;1298;1316:16;1327:4;1316:10;:16::i;:::-;1281:51;;;;1343:14;1359;1377:16;1388:4;1377:10;:16::i;:::-;1342:51;;;;1409:9;1408:10;:24;;;;1423:9;1422:10;1408:24;1404:100;;;-1:-1:-1;;1463:5:17;1448:12;;;:20;-1:-1:-1;1448:4:17;;870:2023;-1:-1:-1;;;870:2023:17:o;1404:100::-;-1:-1:-1;;;;;1514:20:17;;;:11;;;:20;1544;;:11;;;:20;1589:4;1574:12;;;:19;1650:18;1663:4;1650:12;:18::i;:::-;1646:240;;;1700:18;1684:13;;;:34;1750:2;1732:15;;;:20;-1:-1:-1;;1795:15:17;1805:4;1795:9;:15::i;:::-;1766:44;;;;1828:6;1824:26;;;1836:8;;;:14;;;1824:26;1864:11;;;;;;;870:2023;;;:::o;1646:240::-;1966:16;1977:4;1966:10;:16::i;:::-;1962:378;;;2055:25;2075:4;2055:19;:25::i;:::-;2051:254;;;2116:24;2100:13;;;:40;2176:2;2158:15;;;:20;2051:254;;;2233:19;2217:13;;;:35;2288:2;2270:15;;;:20;2051:254;2318:11;;;;;870:2023;;;:::o;1962:378::-;2389:18;2402:4;2389:12;:18::i;:::-;2385:395;;;2461:15;2479:17;2491:4;2479:11;:17::i;:::-;2461:35;-1:-1:-1;;;;;;2514:53:17;;2525:42;2514:53;2510:201;;2603:20;2587:13;;;:36;2510:201;;;2678:18;2662:13;;;:34;2510:201;-1:-1:-1;;2742:2:17;2724:15;;;:20;-1:-1:-1;2724:4:17;;870:2023;-1:-1:-1;;;;870:2023:17:o;2385:395::-;-1:-1:-1;;2840:16:17;2824:13;;;:32;-1:-1:-1;;2884:2:17;2866:15;;;:20;-1:-1:-1;2824:13:17;2866:4;-1:-1:-1;870:2023:17:o;7264:842::-;7367:24;7431:5;7417:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7417:27:17;;7407:37;;7460:9;7455:645;7475:16;;;7455:645;;;7754:20;7777:4;:15;7793:5;;7799:1;7793:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7777:25;;-1:-1:-1;;;;;;7777:25:17;;;;;;;-1:-1:-1;;;;;4358:32:18;;;7777:25:17;;;4340:51:18;4313:18;;7777:25:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8074:8;;;;8006:11;;;;7754:48;;-1:-1:-1;8086:2:17;8074:14;;-1:-1:-1;;;;;8006:25:17;:39;;8044:1;8006:39;;;8034:7;8006:39;7830:216;;7961:1;-1:-1:-1;;;;;7938:25:17;:4;:11;;;-1:-1:-1;;;;;7938:25:17;;:39;;7976:1;7938:39;;;7966:7;7938:39;7830:148;;7908:1;7888:4;:15;;;7880:24;;:29;;7838:4;:13;;;7830:22;;;;;;;;:::i;:::-;:80;:148;:216;:259;7817:7;7825:1;7817:10;;;;;;;;:::i;:::-;;;;;;;;;;:272;-1:-1:-1;7493:3:17;;;;:::i;:::-;;;;7455:645;;4713:324;4882:35;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4882:35:17;-1:-1:-1;;;4882:35:17;;;4853:74;;4769:12;;;;4808:17;;-1:-1:-1;;;;;4853:15:17;;;:74;;4882:35;4853:74;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4835:92:17;;-1:-1:-1;4835:92:17;-1:-1:-1;4835:92:17;4941:28;;;;;4967:2;4952:4;:11;:17;;4941:28;4937:94;;;5004:4;4993:27;;;;;;;;;;;;:::i;:::-;4985:35;;4937:94;4798:239;4713:324;;;:::o;5043:::-;5212:35;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5212:35:17;-1:-1:-1;;;5212:35:17;;;5183:74;;5099:12;;;;5138:17;;-1:-1:-1;;;;;5183:15:17;;;:74;;5212:35;5183:74;:::i;3381:417::-;3439:4;3522:13;3540:15;3550:4;3540:9;:15::i;:::-;3521:34;;;3566:11;3582:15;3592:4;3582:9;:15::i;:::-;3565:32;;;3608:19;3632:21;3648:4;3632:15;:21::i;:::-;3607:46;;;3664:20;3689:29;3713:4;3689:23;:29::i;:::-;3663:55;;;3736:8;:18;;;;;3748:6;3736:18;:36;;;;;3758:14;3736:36;:55;;;;;3776:15;3736:55;3729:62;3381:417;-1:-1:-1;;;;;;3381:417:17:o;6003:316::-;6169:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6169:32:17;-1:-1:-1;;;6169:32:17;;;6140:71;;6058:12;;;;6095:17;;-1:-1:-1;;;;;6140:15:17;;;:71;;6169:32;6140:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6122:89:17;;-1:-1:-1;6122:89:17;-1:-1:-1;6122:89:17;6225:28;;;;;6251:2;6236:4;:11;:17;;6225:28;6221:92;;;6286:4;6275:27;;;;;;;;;;;;:::i;3804:258::-;3860:4;3921:19;3945:21;3961:4;3945:15;:21::i;:::-;3920:46;;;3977:13;3995:15;4005:4;3995:9;:15::i;:::-;3976:34;;;4028:14;:27;;;;;4047:8;4046:9;4028:27;4021:34;3804:258;-1:-1:-1;;;;3804:258:17:o;4411:265::-;4599:36;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4599:36:17;-1:-1:-1;;;4599:36:17;;;4570:75;;4476:4;;;;-1:-1:-1;;;;;4570:15:17;;;:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4552:93:17;;4411:265;-1:-1:-1;;;;4411:265:17:o;4068:337::-;4126:4;4195:16;4216:21;4232:4;4216:15;:21::i;:::-;4194:43;;;4248:13;4266:15;4276:4;4266:9;:15::i;:::-;4247:34;;;4292:19;4316:21;4332:4;4316:15;:21::i;:::-;4291:46;;;4355:11;:24;;;;;4371:8;4370:9;4355:24;:43;;;;;4384:14;4383:15;4355:43;4348:50;4068:337;-1:-1:-1;;;;;4068:337:17:o;6769:307::-;6918:36;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6918:36:17;-1:-1:-1;;;6918:36:17;;;6889:75;;6826:15;;;;;;-1:-1:-1;;;;;6889:15:17;;;:75;;6918:36;6889:75;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:111;;;;6978:7;:28;;;;;7004:2;6989:4;:11;:17;;6978:28;6974:96;;;7043:4;7032:27;;;;;;;;;;;;:::i;6974:96::-;6843:233;;6769:307;;;:::o;5373:196::-;5518:34;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5518:34:17;-1:-1:-1;;;5518:34:17;;;5489:73;;5428:12;;5442:17;;-1:-1:-1;;;;;5489:15:17;;;:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5471:91:17;;;;-1:-1:-1;5373:196:17;-1:-1:-1;;5373:196:17:o;6325:208::-;6476:40;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6476:40:17;-1:-1:-1;;;6476:40:17;;;6447:79;;6386:12;;6400:17;;-1:-1:-1;;;;;6447:15:17;;;:79;;;:::i;6539:224::-;6698:48;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6698:48:17;-1:-1:-1;;;6698:48:17;;;6669:87;;6608:12;;6622:17;;-1:-1:-1;;;;;6669:15:17;;;:87;;;:::i;5575:208::-;5726:40;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5726:40:17;-1:-1:-1;;;5726:40:17;;;5697:79;;5636:12;;5650:17;;-1:-1:-1;;;;;5697:15:17;;;:79;;;:::i;5789:208::-;5940:40;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5940:40:17;-1:-1:-1;;;5940:40:17;;;5911:79;;5850:12;;5864:17;;-1:-1:-1;;;;;5911:15:17;;;:79;;;:::i;14:615:18:-;100:6;108;161:2;149:9;140:7;136:23;132:32;129:52;;;177:1;174;167:12;129:52;217:9;204:23;246:18;287:2;279:6;276:14;273:34;;;303:1;300;293:12;273:34;341:6;330:9;326:22;316:32;;386:7;379:4;375:2;371:13;367:27;357:55;;408:1;405;398:12;357:55;448:2;435:16;474:2;466:6;463:14;460:34;;;490:1;487;480:12;460:34;543:7;538:2;528:6;525:1;521:14;517:2;513:23;509:32;506:45;503:65;;;564:1;561;554:12;503:65;595:2;587:11;;;;;617:6;;-1:-1:-1;14:615:18;;-1:-1:-1;;;;14:615:18:o;743:127::-;804:10;799:3;795:20;792:1;785:31;835:4;832:1;825:15;859:4;856:1;849:15;1051:879;1129:12;;-1:-1:-1;;;;;1125:38:18;1113:51;;1210:4;1199:16;;1193:23;1252:2;1235:20;;1225:151;;1298:10;1293:3;1289:20;1286:1;1279:31;1333:4;1330:1;1323:15;1361:4;1358:1;1351:15;1225:151;1408:12;1401:4;1396:3;1392:14;1385:36;;1469:4;1462:5;1458:16;1452:23;1484:50;1528:4;1523:3;1519:14;1503;-1:-1:-1;;;;;700:31:18;688:44;;634:104;1484:50;;1582:4;1575:5;1571:16;1565:23;1597:50;1641:4;1636:3;1632:14;1616;-1:-1:-1;;;;;700:31:18;688:44;;634:104;1597:50;;1696:4;1689:5;1685:16;1679:23;1672:4;1667:3;1663:14;1656:47;1751:4;1744:5;1740:16;1734:23;1766:47;1807:4;1802:3;1798:14;1782;945:13;938:21;926:34;;875:91;1766:47;;1861:4;1854:5;1850:16;1844:23;1876:48;1918:4;1913:3;1909:14;1893;1038:4;1027:16;1015:29;;971:75;1876:48;;1051:879;;:::o;1935:708::-;2160:2;2212:21;;;2282:13;;2185:18;;;2304:22;;;2131:4;;2160:2;2383:15;;;;2357:2;2342:18;;;2131:4;2426:191;2440:6;2437:1;2434:13;2426:191;;;2489:46;2531:3;2522:6;2516:13;2489:46;:::i;:::-;2592:15;;;;2564:4;2555:14;;;;;2462:1;2455:9;2426:191;;;-1:-1:-1;2634:3:18;;1935:708;-1:-1:-1;;;;;;1935:708:18:o;2648:131::-;-1:-1:-1;;;;;2723:31:18;;2713:42;;2703:70;;2769:1;2766;2759:12;2703:70;2648:131;:::o;2784:247::-;2843:6;2896:2;2884:9;2875:7;2871:23;2867:32;2864:52;;;2912:1;2909;2902:12;2864:52;2951:9;2938:23;2970:31;2995:5;2970:31;:::i;:::-;3020:5;2784:247;-1:-1:-1;;;2784:247:18:o;3036:252::-;3224:3;3209:19;;3237:45;3213:9;3264:6;3237:45;:::i;:::-;3036:252;;;;:::o;3293:632::-;3464:2;3516:21;;;3586:13;;3489:18;;;3608:22;;;3435:4;;3464:2;3687:15;;;;3661:2;3646:18;;;3435:4;3730:169;3744:6;3741:1;3738:13;3730:169;;;3805:13;;3793:26;;3874:15;;;;3839:12;;;;3766:1;3759:9;3730:169;;3930:127;3991:10;3986:3;3982:20;3979:1;3972:31;4022:4;4019:1;4012:15;4046:4;4043:1;4036:15;4062:127;4123:10;4118:3;4114:20;4111:1;4104:31;4154:4;4151:1;4144:15;4178:4;4175:1;4168:15;4402:138;4481:13;;4503:31;4481:13;4503:31;:::i;:::-;4402:138;;;:::o;4545:154::-;4630:13;;4672:2;4662:13;;4652:41;;4689:1;4686;4679:12;4704:164;4780:13;;4829;;4822:21;4812:32;;4802:60;;4858:1;4855;4848:12;4873:160;4950:13;;5003:4;4992:16;;4982:27;;4972:55;;5023:1;5020;5013:12;5038:1048;5135:6;5188:3;5176:9;5167:7;5163:23;5159:33;5156:53;;;5205:1;5202;5195:12;5156:53;5238:2;5232:9;5280:3;5272:6;5268:16;5350:6;5338:10;5335:22;5314:18;5302:10;5299:34;5296:62;5293:185;;;5400:10;5395:3;5391:20;5388:1;5381:31;5435:4;5432:1;5425:15;5463:4;5460:1;5453:15;5293:185;5494:2;5487:22;5533:40;5563:9;5533:40;:::i;:::-;5525:6;5518:56;5607:55;5658:2;5647:9;5643:18;5607:55;:::i;:::-;5602:2;5594:6;5590:15;5583:80;5696:49;5741:2;5730:9;5726:18;5696:49;:::i;:::-;5691:2;5683:6;5679:15;5672:74;5779:49;5824:2;5813:9;5809:18;5779:49;:::i;:::-;5774:2;5766:6;5762:15;5755:74;5884:3;5873:9;5869:19;5863:26;5857:3;5849:6;5845:16;5838:52;5924:47;5966:3;5955:9;5951:19;5924:47;:::i;:::-;5918:3;5910:6;5906:16;5899:73;6006:48;6049:3;6038:9;6034:19;6006:48;:::i;:::-;6000:3;5988:16;;5981:74;5992:6;5038:1048;-1:-1:-1;;;5038:1048:18:o;6091:232::-;6130:3;6151:17;;;6148:140;;6210:10;6205:3;6201:20;6198:1;6191:31;6245:4;6242:1;6235:15;6273:4;6270:1;6263:15;6148:140;-1:-1:-1;6315:1:18;6304:13;;6091:232::o;6328:412::-;6457:3;6495:6;6489:13;6520:1;6530:129;6544:6;6541:1;6538:13;6530:129;;;6642:4;6626:14;;;6622:25;;6616:32;6603:11;;;6596:53;6559:12;6530:129;;;-1:-1:-1;6714:1:18;6678:16;;6703:13;;;-1:-1:-1;6678:16:18;6328:412;-1:-1:-1;6328:412:18:o;6745:259::-;6823:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:52;;;6892:1;6889;6882:12;6844:52;6924:9;6918:16;6943:31;6968:5;6943:31;:::i;7009:184::-;7079:6;7132:2;7120:9;7111:7;7107:23;7103:32;7100:52;;;7148:1;7145;7138:12;7100:52;-1:-1:-1;7171:16:18;;7009:184;-1:-1:-1;7009:184:18:o","linkReferences":{}},"methodIdentifiers":{"batchDetectEfficient(address[])":"993eba09","detectPool(address)":"74bdbc6a","detectPools(address[])":"16e9e823"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"name\":\"batchDetectEfficient\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"results\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"detectPool\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"enum PoolDetector.PoolType\",\"name\":\"poolType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"confidence\",\"type\":\"uint8\"}],\"internalType\":\"struct PoolDetector.PoolInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"name\":\"detectPools\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"enum PoolDetector.PoolType\",\"name\":\"poolType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"confidence\",\"type\":\"uint8\"}],\"internalType\":\"struct PoolDetector.PoolInfo[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Gas-optimized detection using assembly and batched calls\",\"kind\":\"dev\",\"methods\":{\"batchDetectEfficient(address[])\":{\"params\":{\"pools\":\"Array of pools to check\"},\"returns\":{\"results\":\"Packed results for gas efficiency\"}},\"detectPool(address)\":{\"params\":{\"pool\":\"The pool address to identify\"},\"returns\":{\"info\":\"The pool information\"}},\"detectPools(address[])\":{\"params\":{\"pools\":\"Array of pool addresses\"},\"returns\":{\"infos\":\"Array of pool information\"}}},\"title\":\"PoolDetector\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"batchDetectEfficient(address[])\":{\"notice\":\"Efficient batch detection using multicall pattern\"},\"detectPool(address)\":{\"notice\":\"Detect pool type for a single address\"},\"detectPools(address[])\":{\"notice\":\"Batch detect multiple pools\"}},\"notice\":\"Efficient onchain pool detection for multiple DEX types\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PoolDetector.sol\":\"PoolDetector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/IPoolInterfaces.sol\":{\"keccak256\":\"0x585958cfb8973ade5a6613218b7d54ef7256af131b76a3419bc6bca3e94983e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f74176b50385bc6b43706355894efc74c4472ac438017829c9dff9498cdcfe11\",\"dweb:/ipfs/QmSc5kNDS17wL31anpwFq2GDp2ipAskvLJnq1c7BeFiuCY\"]},\"src/PoolDetector.sol\":{\"keccak256\":\"0xbe3fe365e63b10d2b50f430f2f3fd338adc65c5eea79099d1fb7b66d88f71f09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://506a48b959f7aadc338af94ef0467b477ac2bd1fffaaa52400d6522ac2fec42a\",\"dweb:/ipfs/QmYZW2LghnW98yMXdt2anNaxRUqtCFHBH8dC7ViACHPWq6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"pools","type":"address[]"}],"stateMutability":"view","type":"function","name":"batchDetectEfficient","outputs":[{"internalType":"uint256[]","name":"results","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"view","type":"function","name":"detectPool","outputs":[{"internalType":"struct PoolDetector.PoolInfo","name":"info","type":"tuple","components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"enum PoolDetector.PoolType","name":"poolType","type":"uint8"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"uint8","name":"confidence","type":"uint8"}]}]},{"inputs":[{"internalType":"address[]","name":"pools","type":"address[]"}],"stateMutability":"view","type":"function","name":"detectPools","outputs":[{"internalType":"struct PoolDetector.PoolInfo[]","name":"infos","type":"tuple[]","components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"enum PoolDetector.PoolType","name":"poolType","type":"uint8"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"uint8","name":"confidence","type":"uint8"}]}]}],"devdoc":{"kind":"dev","methods":{"batchDetectEfficient(address[])":{"params":{"pools":"Array of pools to check"},"returns":{"results":"Packed results for gas efficiency"}},"detectPool(address)":{"params":{"pool":"The pool address to identify"},"returns":{"info":"The pool information"}},"detectPools(address[])":{"params":{"pools":"Array of pool addresses"},"returns":{"infos":"Array of pool information"}}},"version":1},"userdoc":{"kind":"user","methods":{"batchDetectEfficient(address[])":{"notice":"Efficient batch detection using multicall pattern"},"detectPool(address)":{"notice":"Detect pool type for a single address"},"detectPools(address[])":{"notice":"Batch detect multiple pools"}},"version":1}},"settings":{"remappings":["forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PoolDetector.sol":"PoolDetector"},"evmVersion":"paris","libraries":{}},"sources":{"src/IPoolInterfaces.sol":{"keccak256":"0x585958cfb8973ade5a6613218b7d54ef7256af131b76a3419bc6bca3e94983e2","urls":["bzz-raw://f74176b50385bc6b43706355894efc74c4472ac438017829c9dff9498cdcfe11","dweb:/ipfs/QmSc5kNDS17wL31anpwFq2GDp2ipAskvLJnq1c7BeFiuCY"],"license":"MIT"},"src/PoolDetector.sol":{"keccak256":"0xbe3fe365e63b10d2b50f430f2f3fd338adc65c5eea79099d1fb7b66d88f71f09","urls":["bzz-raw://506a48b959f7aadc338af94ef0467b477ac2bd1fffaaa52400d6522ac2fec42a","dweb:/ipfs/QmYZW2LghnW98yMXdt2anNaxRUqtCFHBH8dC7ViACHPWq6"],"license":"MIT"}},"version":1},"id":17}