1 line
63 KiB
JSON
1 line
63 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"address"},{"name":"_quoter","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMaverickV2Factory"}],"stateMutability":"view"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maverickV2SwapCallback","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"calculatedPrices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"priceAt","inputs":[{"name":"pool","type":"address","internalType":"contract IMaverickV2Pool"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"sellAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"calculatedPrice","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMaverickV2Quoter"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60c03461009a57601f61138538819003918201601f19168301916001600160401b0383118484101761009e57808492604094855283398101031261009a57610052602061004b836100b2565b92016100b2565b6001600160a01b039182166080521660a0526040516112be90816100c78239608051818181610233015281816105ef01526108ac015260a0518181816101ef0152610db90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361009a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063212dd07014610a4e57806323eeca011461086b57806348bd7dfd146107a557806367ca7c91146105715780638307c6551461050b578063a9270fbe146103e4578063aad6e48814610262578063c45a01551461021e578063c6bbd5a7146101da5763ecbbc0330361000e57346101d65760203660031901126101d6576040516100ab606082610b39565b6002815260208101604036823760043560601c60405162fc63d160e41b8152602081600481855afa9182156101ae576004926020925f916101b9575b506001600160a01b03166100fa86610ede565b52604051635f64b55b60e01b815292839182905afa9081156101ae575f9161017f575b509091906001600160a01b031661013382610eeb565b52604051918291602083019060208452518091526040830191905f5b81811061015d575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014f565b6101a1915060203d6020116101a7575b6101998183610b39565b810190610b8b565b5f61011d565b503d61018f565b6040513d5f823e3d90fd5b6101d09150833d85116101a7576101998183610b39565b5f6100e7565b5f80fd5b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d65760803660031901126101d65761027b610a9b565b610283610ab1565b5060643567ffffffffffffffff81116101d657366023820112156101d6578060040135906102b082610b5b565b916102be6040519384610b39565b8083526024602084019160051b830101913683116101d657602401905b8282106103d4575050508051916102f183610b5b565b926102ff6040519485610b39565b80845261030e601f1991610b5b565b015f5b8181106103b157505060043560601c905f5b8351811015610360578061034461033c60019387610efb565b518486610ceb565b61034e8288610efb565b526103598187610efb565b5001610323565b846040518091602082016020835281518091526020604084019201905f5b81811061038c575050500390f35b825180518552602090810151818601528695506040909401939092019160010161037e565b6020906040516103c081610b01565b5f81525f8382015282828801015201610311565b81358152602091820191016102db565b346101d65760046101206103f736610ac7565b9160409391935194858092631865c57d60e01b825260601c5afa9283156101ae575f936104da575b506040519261042f606085610b39565b600284526020840192604036853781516020909201516001600160801b03908116939216916001600160a01b03908116911610156104bf5761047084610ede565b5261047a83610eeb565b52905b604051918291602083019060208452518091526040830191905f5b8181106104a6575050500390f35b8251845285945060209384019390920191600101610498565b906104c984610ede565b526104d383610eeb565b529061047d565b6104fd9193506101203d8111610504575b6104f58183610b39565b810190610bd9565b918361041f565b503d6104eb565b346101d65760a03660031901126101d657610524610a9b565b61052c610ab1565b5060643560028110156101d65760809161054c9160843591600435610f0f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d65760803660031901126101d6576004356001600160a01b038116908190036101d65760643567ffffffffffffffff81116101d657366023820112156101d657806004013567ffffffffffffffff81116101d65781013660248201116101d6576040516315e3ab2960e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f9161076b575b501561073557602090829003126101d6576024013560018060a01b0381168091036101d6575f809160405160208101916323b872dd60e01b83526024820152336044820152602435606482015260648152610683608482610b39565b519082855af13d15610729573d67ffffffffffffffff8111610715576106cb91604051916106bb6020601f19601f8401160184610b39565b82523d5f602084013e5b8361122a565b80519081151591826106f2575b50506106e057005b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101d657602061070d9101610bcc565b1582806106d8565b634e487b7160e01b5f52604160045260245ffd5b6106cb906060906106c5565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd119858dd1bdc9e541bdbdb60921b6044820152606490fd5b90506020813d60201161079d575b8161078660209383610b39565b810103126101d65761079790610bcc565b84610627565b3d9150610779565b346101d6576107b336610ac7565b5050506040516107c4608082610b39565b6003815260208101606036823760016107dc83610ede565b5260026107e883610eeb565b528151600210156108575760036060830152604051906020820192602083525180935260408201905f935b8085106108205783830384f35b9091825190600a8210156108435760208160019382935201930194019390610813565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d65760403660031901126101d6576004356024358101808211610a3a5760405163b4b9d1f160e01b8152600481019290925260248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f91610998575b5080519061090a6108f483610b5b565b926109026040519485610b39565b808452610b5b565b602083019190601f19013683375f5b8151811015610953576001906bffffffffffffffffffffffff1961093d8285610efb565b5160601b1661094c8287610efb565b5201610919565b505090604051918291602083019060208452518091526040830191905f5b81811061097f575050500390f35b8251845285945060209384019390920191600101610971565b90503d805f833e6109a98183610b39565b8101906020818303126101d65780519067ffffffffffffffff82116101d657019080601f830112156101d6578151906109e182610b5b565b926109ef6040519485610b39565b82845260208085019360051b8201019182116101d657602001915b818310610a1a57505050816108e4565b82516001600160a01b03811681036101d657815260209283019201610a0a565b634e487b7160e01b5f52601160045260245ffd5b346101d65760603660031901126101d6576004356001600160a01b03811681036101d657610a89604091610a80610a9b565b60443591610ceb565b60208251918051835201516020820152f35b602435906001600160a01b03821682036101d657565b604435906001600160a01b03821682036101d657565b60609060031901126101d657600435906024356001600160a01b03811681036101d657906044356001600160a01b03811681036101d65790565b6040810190811067ffffffffffffffff82111761071557604052565b6080810190811067ffffffffffffffff82111761071557604052565b90601f8019910116810190811067ffffffffffffffff82111761071557604052565b67ffffffffffffffff81116107155760051b60200190565b60405190610b8082610b01565b5f6020838281520152565b908160209103126101d657516001600160a01b03811681036101d65790565b51906001600160801b03821682036101d657565b51908160070b82036101d657565b519081151582036101d657565b90816101209103126101d65760405190610120820182811067ffffffffffffffff82111761071557604052610c0d81610baa565b8252610c1b60208201610baa565b6020830152610c2c60408201610bbe565b6040830152610c3d60608201610bbe565b6060830152608081015164ffffffffff811681036101d657608083015260a08101518060030b81036101d65760a0830152610c7a60c08201610bcc565b60c083015260e08101519063ffffffff821682036101d6576101009160e0840152015160ff811681036101d65761010082015290565b60030b6063190190637fffffff198212637fffffff831317610a3a57565b60030b60640190637fffffff8213637fffffff19831217610a3a57565b919091610cf6610b73565b5060405162fc63d160e41b81526001600160a01b03919091169290602081600481875afa9081156101ae575f91610ebf575b506001600160a01b039182169116148015610e5c57604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610d7b916001600160801b03935f91610e3d575b50015160030b610cce565b925b604051946349b5931160e01b8652600486015216602484015260448301525f606483015260030b608482015260608160a4815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ae575f905f92610e03575b5060405191610df983610b01565b8252602082015290565b9150506060813d606011610e35575b81610e1f60609383610b39565b810103126101d65760208151910151905f610deb565b3d9150610e12565b610e5691506101203d8111610504576104f58183610b39565b5f610d70565b604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610e9a916001600160801b03935f91610ea0575b50015160030b610cb0565b92610d7d565b610eb991506101203d8111610504576104f58183610b39565b5f610e8f565b610ed8915060203d6020116101a7576101998183610b39565b5f610d28565b8051156108575760200190565b8051600110156108575760400190565b80518210156108575760209160051b010190565b9290604051936060850185811067ffffffffffffffff821117610715576040525f85525f6020860152604051610f4481610b01565b5f81525f602082015260408601528483156111a7575060601c9060405162fc63d160e41b8152602081600481865afa9081156101ae575f91611188575b506001600160a01b03828116911614801561114c57604051631865c57d60e01b815261012081600481875afa9081156101ae57610fcc9160a0915f91610e3d5750015160030b610cce565b905b5a956002811015610843576001036110a6579360409161103b95835192610ff484610b1d565b8352602083015260018383015260030b6060820152815190336020830152602082526110208383610b39565b8251633eece7db60e01b8152958692839233600485016111c6565b03815f865af19182156101ae5761105c935f93611074575b50828652610ceb565b60408301525b5a8103908111610a3a57602082015290565b61109791935060403d60401161109f575b61108f8183610b39565b8101906111b0565b50915f611053565b503d611085565b6040906111029594928251916110bb83610b1d565b86835260208301525f8383015260030b6060820152815190336020830152602082526110e78383610b39565b8251633eece7db60e01b8152968792839233600485016111c6565b03815f855af180156101ae57611121945f9161112b575b508652610ceb565b6040830152611062565b611144915060403d60401161109f5761108f8183610b39565b90505f611119565b604051631865c57d60e01b815261012081600481875afa9081156101ae576111829160a0915f91610ea05750015160030b610cb0565b90610fce565b6111a1915060203d6020116101a7576101998183610b39565b5f610f81565b94505050505090565b91908260409103126101d6576020825192015190565b9192606060e09460209360018060a01b0316855280518486015283810151151560408601526040810151151582860152015160030b608084015260c060a084015280519182918260c0860152018484015e5f828201840152601f01601f1916010190565b9061124e575080511561123f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061127f575b61125f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561125756fea2646970667358221220f3ef5375aaed25576a473447336d380f40555b4f9090d9d18f46219133f4367064736f6c634300081b0033","sourceMap":"339:7554:60:-:0;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;339:7554:60;;;807:38;;339:7554;;855:35;339:7554;;;;;;;;807:38;339:7554;;;;;;;;;;;;;;;855:35;339:7554;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;-1:-1:-1;339:7554:60;;;;;-1:-1:-1;339:7554:60;;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063212dd07014610a4e57806323eeca011461086b57806348bd7dfd146107a557806367ca7c91146105715780638307c6551461050b578063a9270fbe146103e4578063aad6e48814610262578063c45a01551461021e578063c6bbd5a7146101da5763ecbbc0330361000e57346101d65760203660031901126101d6576040516100ab606082610b39565b6002815260208101604036823760043560601c60405162fc63d160e41b8152602081600481855afa9182156101ae576004926020925f916101b9575b506001600160a01b03166100fa86610ede565b52604051635f64b55b60e01b815292839182905afa9081156101ae575f9161017f575b509091906001600160a01b031661013382610eeb565b52604051918291602083019060208452518091526040830191905f5b81811061015d575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014f565b6101a1915060203d6020116101a7575b6101998183610b39565b810190610b8b565b5f61011d565b503d61018f565b6040513d5f823e3d90fd5b6101d09150833d85116101a7576101998183610b39565b5f6100e7565b5f80fd5b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d65760803660031901126101d65761027b610a9b565b610283610ab1565b5060643567ffffffffffffffff81116101d657366023820112156101d6578060040135906102b082610b5b565b916102be6040519384610b39565b8083526024602084019160051b830101913683116101d657602401905b8282106103d4575050508051916102f183610b5b565b926102ff6040519485610b39565b80845261030e601f1991610b5b565b015f5b8181106103b157505060043560601c905f5b8351811015610360578061034461033c60019387610efb565b518486610ceb565b61034e8288610efb565b526103598187610efb565b5001610323565b846040518091602082016020835281518091526020604084019201905f5b81811061038c575050500390f35b825180518552602090810151818601528695506040909401939092019160010161037e565b6020906040516103c081610b01565b5f81525f8382015282828801015201610311565b81358152602091820191016102db565b346101d65760046101206103f736610ac7565b9160409391935194858092631865c57d60e01b825260601c5afa9283156101ae575f936104da575b506040519261042f606085610b39565b600284526020840192604036853781516020909201516001600160801b03908116939216916001600160a01b03908116911610156104bf5761047084610ede565b5261047a83610eeb565b52905b604051918291602083019060208452518091526040830191905f5b8181106104a6575050500390f35b8251845285945060209384019390920191600101610498565b906104c984610ede565b526104d383610eeb565b529061047d565b6104fd9193506101203d8111610504575b6104f58183610b39565b810190610bd9565b918361041f565b503d6104eb565b346101d65760a03660031901126101d657610524610a9b565b61052c610ab1565b5060643560028110156101d65760809161054c9160843591600435610f0f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d65760803660031901126101d6576004356001600160a01b038116908190036101d65760643567ffffffffffffffff81116101d657366023820112156101d657806004013567ffffffffffffffff81116101d65781013660248201116101d6576040516315e3ab2960e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f9161076b575b501561073557602090829003126101d6576024013560018060a01b0381168091036101d6575f809160405160208101916323b872dd60e01b83526024820152336044820152602435606482015260648152610683608482610b39565b519082855af13d15610729573d67ffffffffffffffff8111610715576106cb91604051916106bb6020601f19601f8401160184610b39565b82523d5f602084013e5b8361122a565b80519081151591826106f2575b50506106e057005b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101d657602061070d9101610bcc565b1582806106d8565b634e487b7160e01b5f52604160045260245ffd5b6106cb906060906106c5565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd119858dd1bdc9e541bdbdb60921b6044820152606490fd5b90506020813d60201161079d575b8161078660209383610b39565b810103126101d65761079790610bcc565b84610627565b3d9150610779565b346101d6576107b336610ac7565b5050506040516107c4608082610b39565b6003815260208101606036823760016107dc83610ede565b5260026107e883610eeb565b528151600210156108575760036060830152604051906020820192602083525180935260408201905f935b8085106108205783830384f35b9091825190600a8210156108435760208160019382935201930194019390610813565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d65760403660031901126101d6576004356024358101808211610a3a5760405163b4b9d1f160e01b8152600481019290925260248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f91610998575b5080519061090a6108f483610b5b565b926109026040519485610b39565b808452610b5b565b602083019190601f19013683375f5b8151811015610953576001906bffffffffffffffffffffffff1961093d8285610efb565b5160601b1661094c8287610efb565b5201610919565b505090604051918291602083019060208452518091526040830191905f5b81811061097f575050500390f35b8251845285945060209384019390920191600101610971565b90503d805f833e6109a98183610b39565b8101906020818303126101d65780519067ffffffffffffffff82116101d657019080601f830112156101d6578151906109e182610b5b565b926109ef6040519485610b39565b82845260208085019360051b8201019182116101d657602001915b818310610a1a57505050816108e4565b82516001600160a01b03811681036101d657815260209283019201610a0a565b634e487b7160e01b5f52601160045260245ffd5b346101d65760603660031901126101d6576004356001600160a01b03811681036101d657610a89604091610a80610a9b565b60443591610ceb565b60208251918051835201516020820152f35b602435906001600160a01b03821682036101d657565b604435906001600160a01b03821682036101d657565b60609060031901126101d657600435906024356001600160a01b03811681036101d657906044356001600160a01b03811681036101d65790565b6040810190811067ffffffffffffffff82111761071557604052565b6080810190811067ffffffffffffffff82111761071557604052565b90601f8019910116810190811067ffffffffffffffff82111761071557604052565b67ffffffffffffffff81116107155760051b60200190565b60405190610b8082610b01565b5f6020838281520152565b908160209103126101d657516001600160a01b03811681036101d65790565b51906001600160801b03821682036101d657565b51908160070b82036101d657565b519081151582036101d657565b90816101209103126101d65760405190610120820182811067ffffffffffffffff82111761071557604052610c0d81610baa565b8252610c1b60208201610baa565b6020830152610c2c60408201610bbe565b6040830152610c3d60608201610bbe565b6060830152608081015164ffffffffff811681036101d657608083015260a08101518060030b81036101d65760a0830152610c7a60c08201610bcc565b60c083015260e08101519063ffffffff821682036101d6576101009160e0840152015160ff811681036101d65761010082015290565b60030b6063190190637fffffff198212637fffffff831317610a3a57565b60030b60640190637fffffff8213637fffffff19831217610a3a57565b919091610cf6610b73565b5060405162fc63d160e41b81526001600160a01b03919091169290602081600481875afa9081156101ae575f91610ebf575b506001600160a01b039182169116148015610e5c57604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610d7b916001600160801b03935f91610e3d575b50015160030b610cce565b925b604051946349b5931160e01b8652600486015216602484015260448301525f606483015260030b608482015260608160a4815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ae575f905f92610e03575b5060405191610df983610b01565b8252602082015290565b9150506060813d606011610e35575b81610e1f60609383610b39565b810103126101d65760208151910151905f610deb565b3d9150610e12565b610e5691506101203d8111610504576104f58183610b39565b5f610d70565b604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610e9a916001600160801b03935f91610ea0575b50015160030b610cb0565b92610d7d565b610eb991506101203d8111610504576104f58183610b39565b5f610e8f565b610ed8915060203d6020116101a7576101998183610b39565b5f610d28565b8051156108575760200190565b8051600110156108575760400190565b80518210156108575760209160051b010190565b9290604051936060850185811067ffffffffffffffff821117610715576040525f85525f6020860152604051610f4481610b01565b5f81525f602082015260408601528483156111a7575060601c9060405162fc63d160e41b8152602081600481865afa9081156101ae575f91611188575b506001600160a01b03828116911614801561114c57604051631865c57d60e01b815261012081600481875afa9081156101ae57610fcc9160a0915f91610e3d5750015160030b610cce565b905b5a956002811015610843576001036110a6579360409161103b95835192610ff484610b1d565b8352602083015260018383015260030b6060820152815190336020830152602082526110208383610b39565b8251633eece7db60e01b8152958692839233600485016111c6565b03815f865af19182156101ae5761105c935f93611074575b50828652610ceb565b60408301525b5a8103908111610a3a57602082015290565b61109791935060403d60401161109f575b61108f8183610b39565b8101906111b0565b50915f611053565b503d611085565b6040906111029594928251916110bb83610b1d565b86835260208301525f8383015260030b6060820152815190336020830152602082526110e78383610b39565b8251633eece7db60e01b8152968792839233600485016111c6565b03815f855af180156101ae57611121945f9161112b575b508652610ceb565b6040830152611062565b611144915060403d60401161109f5761108f8183610b39565b90505f611119565b604051631865c57d60e01b815261012081600481875afa9081156101ae576111829160a0915f91610ea05750015160030b610cb0565b90610fce565b6111a1915060203d6020116101a7576101998183610b39565b5f610f81565b94505050505090565b91908260409103126101d6576020825192015190565b9192606060e09460209360018060a01b0316855280518486015283810151151560408601526040810151151582860152015160030b608084015260c060a084015280519182918260c0860152018484015e5f828201840152601f01601f1916010190565b9061124e575080511561123f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061127f575b61125f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561125756fea2646970667358221220f3ef5375aaed25576a473447336d380f40555b4f9090d9d18f46219133f4367064736f6c634300081b0033","sourceMap":"339:7554:60:-:0;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;;;;;:::i;:::-;7295:1;339:7554;;;;;;;;;;;;;;;;;;7401:13;;339:7554;7401:13;339:7554;7401:13;;;;;;;;;339:7554;7401:13;339:7554;7401:13;339:7554;7401:13;;;339:7554;-1:-1:-1;;;;;;339:7554:60;7381:34;;;:::i;:::-;339:7554;;;-1:-1:-1;;;7445:13:60;;339:7554;;;;;7445:13;;;;;;;339:7554;7445:13;;;339:7554;-1:-1:-1;339:7554:60;;;-1:-1:-1;;;;;339:7554:60;7425:34;339:7554;7425:34;:::i;:::-;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;7445:13;;;;339:7554;7445:13;339:7554;7445:13;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;339:7554;;;;;;;;;7401:13;;;;;;;;;;;;;;:::i;:::-;;;;339:7554;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;474:41;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;425:43;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;1325:13;339:7554;1369:3;339:7554;;1340:27;;;;;1435:19;1410:45;1435:19;339:7554;1435:19;;;:::i;:::-;339:7554;1410:45;;;:::i;:::-;1388:67;;;;:::i;:::-;;;;;;:::i;:::-;;339:7554;1325:13;;1340:27;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;339:7554:60;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6397:15;339:7554;;;:::i;:::-;;;;;;;;;;;;;;6397:15;;339:7554;;6397:15;;;;;;;339:7554;6397:15;;;339:7554;;;;;;;;;:::i;:::-;6446:1;339:7554;;;;;;;;;;;;;6508:14;;;339:7554;-1:-1:-1;;;;;339:7554:60;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;6536:20;339:7554;;;6572:14;;;:::i;:::-;339:7554;6600:14;;;:::i;:::-;339:7554;6532:166;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;6532:166;6645:14;;;;:::i;:::-;339:7554;6673:14;;;:::i;:::-;339:7554;6532:166;;;6397:15;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;339:7554;;;;;;-1:-1:-1;;339:7554:60;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5871:50:60;;5909:10;339:7554;5871:50;;339:7554;;;;;5871:7;-1:-1:-1;;;;;339:7554:60;5871:50;;;;;;;339:7554;5871:50;;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:53:32;;339:7554:60;;;;1829:53:32;;339:7554:60;1829:53:32;;339:7554:60;5909:10;339:7554;;;;;;;;;;;1829:53:32;;;;;;:::i;:::-;3256:31:33;;;;;;339:7554:60;;;;;;;;;;3304:55:33;339:7554:60;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3304:55:33;;:::i;:::-;339:7554:60;;6960:22:32;;;;:57;;;;339:7554:60;6956:135:32;;;;339:7554:60;6956:135:32;7040:40;;;339:7554:60;7040:40:32;339:7554:60;;;;7040:40:32;6960:57;6987:30;;;;339:7554:60;6987:30:32;;;339:7554:60;;;;;;6987:30:32;;339:7554:60;:::i;:::-;6986:31:32;6960:57;;;;339:7554:60;;;;;;;;;;;;;3304:55:33;339:7554:60;;;;;;;;-1:-1:-1;;;339:7554:60;;;;;;;;;;;;-1:-1:-1;;;339:7554:60;;;;;;;5871:50;;;339:7554;5871:50;;339:7554;5871:50;;;;;;339:7554;5871:50;;;:::i;:::-;;;339:7554;;;;;;;:::i;:::-;5871:50;;;;;;-1:-1:-1;5871:50:60;;339:7554;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;6939:1;339:7554;;;;;;;;;6969:20;6951:38;;;:::i;:::-;339:7554;7017:19;6999:37;;;:::i;:::-;339:7554;;;7017:19;339:7554;;;;6939:1;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6969:20;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;;;;;;;;;;;;-1:-1:-1;;;7689:38:60;;339:7554;7689:38;;339:7554;;;;;;;;-1:-1:-1;339:7554:60;7689:38;339:7554;7689:7;-1:-1:-1;;;;;339:7554:60;7689:38;;;;;;;339:7554;7689:38;;;339:7554;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;339:7554:60;;;;;7818:3;339:7554;;7800:16;;;;;339:7554;;-1:-1:-1;;7863:8:60;339:7554;7863:8;;:::i;:::-;339:7554;;;;7837:37;;;;:::i;:::-;339:7554;;7785:13;;7800:16;;;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;7689:38;;;;;339:7554;7689:38;;;;;;:::i;:::-;;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7689:38;;;;;;339:7554;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;339:7554:60;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;339:7554:60;;-1:-1:-1;;339:7554:60;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;:::o;1846:569::-;;;;339:7554;;:::i;:::-;-1:-1:-1;339:7554:60;;-1:-1:-1;;;2053:13:60;;-1:-1:-1;;;;;339:7554:60;;;;;;2053:13;339:7554;2053:13;339:7554;;2053:13;;;;;;;-1:-1:-1;2053:13:60;;;1846:569;-1:-1:-1;;;;;;339:7554:60;;;;;2032:35;2096:104;;;;339:7554;;-1:-1:-1;;;2121:15:60;;;339:7554;2053:13;339:7554;2121:15;;;;;;;:26;:32;:15;-1:-1:-1;;;;;2121:15:60;-1:-1:-1;2121:15:60;;;2096:104;2121:26;;339:7554;;;2121:32;:::i;:::-;2096:104;;339:7554;;;;;;2251:99;;2053:13;2251:99;;339:7554;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;2251:99;339:7554;-1:-1:-1;339:7554:60;;;;;2251:6;339:7554;2251:99;;;;;;;-1:-1:-1;;;2251:99:60;;;2096:104;339:7554;;;;;;;:::i;:::-;;;2053:13;2379:29;;339:7554;1846:569;:::o;2251:99::-;;;;339:7554;2251:99;;339:7554;2251:99;;;;;;339:7554;2251:99;;;:::i;:::-;;;339:7554;;;;2053:13;339:7554;;;;;2251:99;;;;;;;-1:-1:-1;2251:99:60;;2121:15;;;;;;;;;;;;;;:::i;:::-;;;;2096:104;339:7554;;-1:-1:-1;;;2168:15:60;;;339:7554;2053:13;339:7554;2168:15;;;;;;;:26;:32;:15;-1:-1:-1;;;;;2168:15:60;-1:-1:-1;2168:15:60;;;2096:104;2168:26;;339:7554;;;2168:32;:::i;:::-;2096:104;;;2168:15;;;;;;;;;;;;;;:::i;:::-;;;;2053:13;;;;;;;;;;;;;;:::i;:::-;;;;339:7554;;;;;;;;;:::o;:::-;;;6969:20;339:7554;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;2454:1069::-;;;339:7554;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;-1:-1:-1;339:7554:60;;;;;;;;;:::i;:::-;-1:-1:-1;339:7554:60;;-1:-1:-1;339:7554:60;;;;;;;;2626:18;2660:20;;2656:63;;339:7554;;;;;;;;;2842:13;;339:7554;2842:13;;;;;;;;;;;-1:-1:-1;2842:13:60;;;2454:1069;-1:-1:-1;;;;;;339:7554:60;;;;;2821:35;2884:104;;;;339:7554;;-1:-1:-1;;;2909:15:60;;;339:7554;2842:13;339:7554;2909:15;;;;;;;;:32;:15;:26;:15;-1:-1:-1;2909:15:60;;;:26;;339:7554;;;2909:32;:::i;:::-;2884:104;;3018:9;339:7554;;;;;;;3050:13;3042:21;3050:13;;339:7554;;;4406:39;339:7554;;;;;;;:::i;:::-;;;;4088:187;;339:7554;3050:13;4088:187;;;339:7554;;;;4088:187;;339:7554;;;4363:10;;339:7554;4352:22;;339:7554;;4352:22;;;;;;:::i;:::-;339:7554;;-1:-1:-1;;;4406:39:60;;339:7554;;;;;4363:10;2842:13;4406:39;;;:::i;:::-;;;-1:-1:-1;4406:39:60;;;;;;;;3197:48;4406:39;-1:-1:-1;4406:39:60;;;3038:409;339:7554;;;;3197:48;:::i;:::-;339:7554;3183:11;;:62;3038:409;3485:9;339:7554;;;;;;;;3457:13;;339:7554;2454:1069;:::o;4406:39::-;;;;;339:7554;4406:39;339:7554;4406:39;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3038:409;339:7554;;5361:39;339:7554;;;;;;;;;:::i;:::-;;;;;5040:188;;339:7554;-1:-1:-1;5040:188:60;;;339:7554;;;;5040:188;;339:7554;;;5316:10;;339:7554;5305:22;;339:7554;;5305:22;;;;;;:::i;:::-;339:7554;;-1:-1:-1;;;5361:39:60;;339:7554;;;;;5316:10;2842:13;5361:39;;;:::i;:::-;;;-1:-1:-1;5361:39:60;;;;;;;3395:41;339:7554;-1:-1:-1;5361:39:60;;;3038:409;339:7554;;;3395:41;:::i;:::-;339:7554;3381:11;;:55;3038:409;;5361:39;;;;339:7554;5361:39;339:7554;5361:39;;;;;;;:::i;:::-;;;;;;2884:104;339:7554;;-1:-1:-1;;;2956:15:60;;;339:7554;2842:13;339:7554;2956:15;;;;;;;;:32;:15;:26;:15;-1:-1:-1;2956:15:60;;;:26;;339:7554;;;2956:32;:::i;:::-;2884:104;;;2842:13;;;;339:7554;2842:13;339:7554;2842:13;;;;;;;:::i;:::-;;;;2656:63;2696:12;;;;;;;:::o;339:7554::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;339:7554:60;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;339:7554:60;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;339:7554:60;;;;4917:24:33;339:7554:60;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"66057":[{"start":563,"length":32},{"start":1519,"length":32},{"start":2220,"length":32}],"66060":[{"start":495,"length":32},{"start":3513,"length":32}]}},"methodIdentifiers":{"factory()":"c45a0155","getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","maverickV2SwapCallback(address,uint256,uint256,bytes)":"67ca7c91","price(bytes32,address,address,uint256[])":"aad6e488","priceAt(address,address,uint256)":"212dd070","quoter()":"c6bbd5a7","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_quoter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IMaverickV2Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"maverickV2SwapCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"calculatedPrices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMaverickV2Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"}],\"name\":\"priceAt\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"calculatedPrice\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quoter\",\"outputs\":[{\"internalType\":\"contract IMaverickV2Quoter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_quoter\":\"The address of the MaverickV2 quoter.\",\"factory_\":\"The address of the MaverickV2 factory.\"}},\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"maverickV2SwapCallback(address,uint256,uint256,bytes)\":{\"params\":{\"amountIn\":\"The amount of the token being swapped.\",\"data\":\"The data passed to the callback.\",\"tokenIn\":\"The token being swapped.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"calculatedPrices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"priceAt(address,address,uint256)\":{\"params\":{\"pool\":\"The pool to calculate the price for.\",\"sellAmount\":\"The amount of the token to calculate the price for.\",\"sellToken\":\"The token to calculate the price for.\"},\"returns\":{\"calculatedPrice\":\"The calculated price of the token.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"MaverickV2SwapAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the adapter with factory, quoter, and WETH addresses.\"},\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"maverickV2SwapCallback(address,uint256,uint256,bytes)\":{\"notice\":\"MaverickV2SwapCallback is the callback function for MaverickV2 pools.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"priceAt(address,address,uint256)\":{\"notice\":\"Calculate the price of a token at a specified amount.\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"notice\":\"Adapter for swapping tokens on MaverickV2 pools.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/maverick-v2/MaverickV2SwapAdapter.sol\":\"MaverickV2SwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory_","type":"address"},{"internalType":"address","name":"_quoter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IMaverickV2Factory","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"maverickV2SwapCallback"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"calculatedPrices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"contract IMaverickV2Pool","name":"pool","type":"address"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"uint256","name":"sellAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"priceAt","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"calculatedPrice","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quoter","outputs":[{"internalType":"contract IMaverickV2Quoter","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_quoter":"The address of the MaverickV2 quoter.","factory_":"The address of the MaverickV2 factory."}},"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"maverickV2SwapCallback(address,uint256,uint256,bytes)":{"params":{"amountIn":"The amount of the token being swapped.","data":"The data passed to the callback.","tokenIn":"The token being swapped."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"calculatedPrices":"array of prices as fractions corresponding to the provided amounts."}},"priceAt(address,address,uint256)":{"params":{"pool":"The pool to calculate the price for.","sellAmount":"The amount of the token to calculate the price for.","sellToken":"The token to calculate the price for."},"returns":{"calculatedPrice":"The calculated price of the token."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor to initialize the adapter with factory, quoter, and WETH addresses."},"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"maverickV2SwapCallback(address,uint256,uint256,bytes)":{"notice":"MaverickV2SwapCallback is the callback function for MaverickV2 pools."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"priceAt(address,address,uint256)":{"notice":"Calculate the price of a token at a specified amount."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/maverick-v2/MaverickV2SwapAdapter.sol":"MaverickV2SwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"}},"version":1},"id":60} |