1 line
60 KiB
JSON
1 line
60 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"relayer_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"","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":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"_sellToken","type":"address","internalType":"address"},{"name":"_buyToken","type":"address","internalType":"address"},{"name":"_specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"_prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","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":"0x60a03461008857601f61148e38819003918201601f19168301916001600160401b0383118484101761008c5780849260209460405283398101031261008857516001600160a01b03811690819003610088576080526040516113ed90816100a1823960805181818161036a015281816105b9015281816109f901528181610bd10152610e230152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146105905750806348bd7dfd146104b95780638307c65514610456578063a9270fbe14610322578063aad6e488146101b15763ecbbc0331461005e575f80fd5b346101ad5760203660031901126101ad5760405161007d60608261089f565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610185576004926020925f91610190575b506100c486610926565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610185575f91610156575b506100ff839293610933565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610134575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610126565b610178915060203d60201161017e575b610170818361089f565b8101906108d9565b5f6100f3565b503d610166565b6040513d5f823e3d90fd5b6101a79150833d851161017e57610170818361089f565b5f6100ba565b5f80fd5b346101ad5760803660031901126101ad576101ca6107ed565b6101d2610803565b6064359067ffffffffffffffff82116101ad57366023830112156101ad578160040135916101ff836108c1565b9261020d604051948561089f565b8084526024602085019160051b830101913683116101ad57602401905b82821061031257505050815192610240846108c1565b9361024e604051958661089f565b80855261025d601f19916108c1565b015f5b8181106102ef5750509061027391610def565b5f5b825181101561029e57808261028c60019387610943565b526102978186610943565b5001610275565b836040518091602082016020835281518091526020604084019201905f5b8181106102ca575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102bc565b6020906040516102fe81610853565b5f81525f8382015282828901015201610260565b813581526020918201910161022a565b346101ad5761036660c061033536610819565b60405163abc27eed60e01b81526001600160a01b039283166004820152911660248201529283915081906044820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f905f92610419575b5090604051906103b560608361089f565b60028252602082019260403685376103cc83610926565b526103d682610933565b52604051918291602083019060208452518091526040830191905f5b818110610400575050500390f35b82518452859450602093840193909201916001016103f2565b91505060c0813d60c01161044e575b8161043560c0938361089f565b810103126101ad5760a0606082015191015190826103a4565b3d9150610428565b346101ad5760a03660031901126101ad5761046f6107ed565b610477610803565b6064359160028310156101ad57608092610494926084359261096f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101ad576104c736610819565b5050506040516104d860a08261089f565b6004815260208101608036823760016104f083610926565b5260026104fc83610933565b5281516002101561057c576003606083015281516003101561057c5760056080830152604051906020820192602083525180935260408201905f935b8085106105455783830384f35b9091825190600a8210156105685760208160019382935201930194019390610538565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101ad5760403660031901126101ad5763c45a015560e01b81526004803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f916107ce575b506001600160a01b031690610608602435826108f8565b60405163574f2ba360e01b8152602081600481875afa80156101855783915f91610799575b508211610735575b61063e91610919565b61066061064a826108c1565b91610658604051938461089f565b8083526108c1565b602082019290601f19013684375f5b82518110156106f15761068281836108f8565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610185576001925f916106d3575b5060601b6bffffffffffffffffffffffff19166106cc8286610943565b520161066f565b6106eb915060203d811161017e57610170818361089f565b876106af565b8383604051918291602083019060208452518091526040830191905f5b81811061071c575050500390f35b825184528594506020938401939092019160010161070e565b505060405163574f2ba360e01b8152602081600481865afa80156101855782905f90610763575b9150610635565b50506020813d602011610791575b8161077e6020938361089f565b810103126101ad578161063e915161075c565b3d9150610771565b9150506020813d6020116107c6575b816107b56020938361089f565b810103126101ad578290518561062d565b3d91506107a8565b6107e7915060203d60201161017e57610170818361089f565b826105f1565b602435906001600160a01b03821682036101ad57565b604435906001600160a01b03821682036101ad57565b60609060031901126101ad57600435906024356001600160a01b03811681036101ad57906044356001600160a01b03811681036101ad5790565b6040810190811067ffffffffffffffff82111761086f57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff82111761086f57604052565b90601f8019910116810190811067ffffffffffffffff82111761086f57604052565b67ffffffffffffffff811161086f5760051b60200190565b908160209103126101ad57516001600160a01b03811681036101ad5790565b9190820180921161090557565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161090557565b80511561057c5760200190565b80516001101561057c5760400190565b805182101561057c5760209160051b010190565b6040519061096482610853565b5f6020838281520152565b6040519493926060860167ffffffffffffffff81118782101761086f576040525f86525f60208701526040516109a481610853565b5f81525f60208201526040870152858415610d6457505a90600281101561056857610ba157604051634cc0eb1960e11b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610b6d575b508515610b32576001600160a01b03841690610a51813033856110fc565b610a5c818484611147565b6103e842018042116109055760209263ffffffff60e492610acd9460405193610a8485610883565b845260018060a01b038b168785015260408401528a60608401525f60808401523360a08401521660c08201525f60405195869485936358d30ac960e01b85526004850190610d6c565b5af1801561018557610afe575b50610aed90610af79487525b5a90610919565b6020860152610def565b6040830152565b906020823d602011610b2a575b81610b186020938361089f565b810103126101ad579050610aed610ada565b3d9150610b0b565b60405163643c60f360e01b8152602060048201526012602482015271416d6f756e744f7574206973207a65726f2160701b6044820152606490fd5b9095506020813d602011610b99575b81610b896020938361089f565b810103126101ad5751945f610a33565b3d9150610b7c565b6040516334259b1b60e01b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610d30575b508515610cf6576001600160a01b03841690610c29873033856110fc565b610c34878484611147565b6103e842018042116109055760209263ffffffff60e492610ca59460405193610c5c85610883565b845260018060a01b038b16878501528b604085015260608401525f60808401523360a08401521660c08201525f60405195869485936316c0a75160e11b85526004850190610d6c565b5af1801561018557610cc2575b50610aed90610af7948752610ae6565b906020823d602011610cee575b81610cdc6020938361089f565b810103126101ad579050610aed610cb2565b3d9150610ccf565b60405163643c60f360e01b8152602060048201526011602482015270416d6f756e74496e206973207a65726f2160781b6044820152606490fd5b9095506020813d602011610d5c575b81610d4c6020938361089f565b810103126101ad5751945f610c0b565b3d9150610d3f565b955050505050565b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260808083015115159084015260a0808301519091169083015260c09081015163ffffffff16910152565b908160209103126101ad575160ff811681036101ad5790565b60ff16604d811161090557600a0a90565b90610df8610957565b50604051637516644b60e11b81526001600160a01b03838116600483015282811660248301529092907f000000000000000000000000000000000000000000000000000000000000000016602084604481845afa938415610185575f946110c8575b5060405163c45a015560e01b8152602081600481855afa908115610185575f916110a9575b5060405163e6a4390560e01b81526001600160a01b0384811660048301528581166024830152909160209183916044918391165afa8015610185576020915f9161108c575b50604051635357407160e11b81526001600160a01b03909116600482015291829060249082905afa908115610185575f9161105a575b50670de0b6b3a76400000390670de0b6b3a764000082116109055760405163313ce56760e01b815290602090829060049082906001600160a01b03165afa801561018557610f546020916004935f91611043575b50610dde565b60405163313ce56760e01b815290949092839182906001600160a01b03165afa801561018557610f8a915f916110145750610dde565b91670de0b6b3a7640000840293808504670de0b6b3a764000014901517156109055780670de0b6b3a76400000290670de0b6b3a764000082048103610905578202670de0b6b3a7640000029181159183041417156109055781156110005760405192610ff584610853565b835204602082015290565b634e487b7160e01b5f52601260045260245ffd5b611036915060203d60201161103c575b61102e818361089f565b810190610dc5565b5f610f4e565b503d611024565b6110369150833d851161103c5761102e818361089f565b90506020813d602011611084575b816110756020938361089f565b810103126101ad57515f610efa565b3d9150611068565b6110a39150823d841161017e57610170818361089f565b5f610ec4565b6110c2915060203d60201161017e57610170818361089f565b5f610e7f565b9093506020813d6020116110f4575b816110e46020938361089f565b810103126101ad5751925f610e5a565b3d91506110d7565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526111459161114060848361089f565b6112af565b565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152821693602082604481885afa8015610185575f90611263575b61118d92506108f8565b925f8060405194602086019063095ea7b360e01b825260018060a01b0316968760248801526044870152604486526111c660648761089f565b85519082855af1906111d661131a565b82611231575b5081611226575b50156111ee57505050565b611140611145936040519063095ea7b360e01b602083015260248201525f60448201526044815261122060648261089f565b826112af565b90503b15155f6111e3565b80519192508115918215611249575b5050905f6111dc565b61125c9250602080918301019101611297565b5f80611240565b506020823d60201161128f575b8161127d6020938361089f565b810103126101ad5761118d9151611183565b3d9150611270565b908160209103126101ad575180151581036101ad5790565b5f806112d79260018060a01b03169360208151910182865af16112d061131a565b9083611359565b80519081151591826112ff575b50506112ed5750565b635274afe760e01b5f5260045260245ffd5b6113129250602080918301019101611297565b155f806112e4565b3d15611354573d9067ffffffffffffffff821161086f5760405191611349601f8201601f19166020018461089f565b82523d5f602084013e565b606090565b9061137d575080511561136e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806113ae575b61138e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561138656fea2646970667358221220b526040f16c74de5eea30b9fb08eebd9f9f9fb64cd3f9acd318a3c89d26ae38064736f6c634300081b0033","sourceMap":"708:8151:52:-:0;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;;869:32;;708:8151;;;;;;;;869:32;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;-1:-1:-1;708:8151:52;;;;;-1:-1:-1;708:8151:52","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146105905750806348bd7dfd146104b95780638307c65514610456578063a9270fbe14610322578063aad6e488146101b15763ecbbc0331461005e575f80fd5b346101ad5760203660031901126101ad5760405161007d60608261089f565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610185576004926020925f91610190575b506100c486610926565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610185575f91610156575b506100ff839293610933565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610134575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610126565b610178915060203d60201161017e575b610170818361089f565b8101906108d9565b5f6100f3565b503d610166565b6040513d5f823e3d90fd5b6101a79150833d851161017e57610170818361089f565b5f6100ba565b5f80fd5b346101ad5760803660031901126101ad576101ca6107ed565b6101d2610803565b6064359067ffffffffffffffff82116101ad57366023830112156101ad578160040135916101ff836108c1565b9261020d604051948561089f565b8084526024602085019160051b830101913683116101ad57602401905b82821061031257505050815192610240846108c1565b9361024e604051958661089f565b80855261025d601f19916108c1565b015f5b8181106102ef5750509061027391610def565b5f5b825181101561029e57808261028c60019387610943565b526102978186610943565b5001610275565b836040518091602082016020835281518091526020604084019201905f5b8181106102ca575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102bc565b6020906040516102fe81610853565b5f81525f8382015282828901015201610260565b813581526020918201910161022a565b346101ad5761036660c061033536610819565b60405163abc27eed60e01b81526001600160a01b039283166004820152911660248201529283915081906044820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f905f92610419575b5090604051906103b560608361089f565b60028252602082019260403685376103cc83610926565b526103d682610933565b52604051918291602083019060208452518091526040830191905f5b818110610400575050500390f35b82518452859450602093840193909201916001016103f2565b91505060c0813d60c01161044e575b8161043560c0938361089f565b810103126101ad5760a0606082015191015190826103a4565b3d9150610428565b346101ad5760a03660031901126101ad5761046f6107ed565b610477610803565b6064359160028310156101ad57608092610494926084359261096f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101ad576104c736610819565b5050506040516104d860a08261089f565b6004815260208101608036823760016104f083610926565b5260026104fc83610933565b5281516002101561057c576003606083015281516003101561057c5760056080830152604051906020820192602083525180935260408201905f935b8085106105455783830384f35b9091825190600a8210156105685760208160019382935201930194019390610538565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101ad5760403660031901126101ad5763c45a015560e01b81526004803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f916107ce575b506001600160a01b031690610608602435826108f8565b60405163574f2ba360e01b8152602081600481875afa80156101855783915f91610799575b508211610735575b61063e91610919565b61066061064a826108c1565b91610658604051938461089f565b8083526108c1565b602082019290601f19013684375f5b82518110156106f15761068281836108f8565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610185576001925f916106d3575b5060601b6bffffffffffffffffffffffff19166106cc8286610943565b520161066f565b6106eb915060203d811161017e57610170818361089f565b876106af565b8383604051918291602083019060208452518091526040830191905f5b81811061071c575050500390f35b825184528594506020938401939092019160010161070e565b505060405163574f2ba360e01b8152602081600481865afa80156101855782905f90610763575b9150610635565b50506020813d602011610791575b8161077e6020938361089f565b810103126101ad578161063e915161075c565b3d9150610771565b9150506020813d6020116107c6575b816107b56020938361089f565b810103126101ad578290518561062d565b3d91506107a8565b6107e7915060203d60201161017e57610170818361089f565b826105f1565b602435906001600160a01b03821682036101ad57565b604435906001600160a01b03821682036101ad57565b60609060031901126101ad57600435906024356001600160a01b03811681036101ad57906044356001600160a01b03811681036101ad5790565b6040810190811067ffffffffffffffff82111761086f57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff82111761086f57604052565b90601f8019910116810190811067ffffffffffffffff82111761086f57604052565b67ffffffffffffffff811161086f5760051b60200190565b908160209103126101ad57516001600160a01b03811681036101ad5790565b9190820180921161090557565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161090557565b80511561057c5760200190565b80516001101561057c5760400190565b805182101561057c5760209160051b010190565b6040519061096482610853565b5f6020838281520152565b6040519493926060860167ffffffffffffffff81118782101761086f576040525f86525f60208701526040516109a481610853565b5f81525f60208201526040870152858415610d6457505a90600281101561056857610ba157604051634cc0eb1960e11b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610b6d575b508515610b32576001600160a01b03841690610a51813033856110fc565b610a5c818484611147565b6103e842018042116109055760209263ffffffff60e492610acd9460405193610a8485610883565b845260018060a01b038b168785015260408401528a60608401525f60808401523360a08401521660c08201525f60405195869485936358d30ac960e01b85526004850190610d6c565b5af1801561018557610afe575b50610aed90610af79487525b5a90610919565b6020860152610def565b6040830152565b906020823d602011610b2a575b81610b186020938361089f565b810103126101ad579050610aed610ada565b3d9150610b0b565b60405163643c60f360e01b8152602060048201526012602482015271416d6f756e744f7574206973207a65726f2160701b6044820152606490fd5b9095506020813d602011610b99575b81610b896020938361089f565b810103126101ad5751945f610a33565b3d9150610b7c565b6040516334259b1b60e01b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610d30575b508515610cf6576001600160a01b03841690610c29873033856110fc565b610c34878484611147565b6103e842018042116109055760209263ffffffff60e492610ca59460405193610c5c85610883565b845260018060a01b038b16878501528b604085015260608401525f60808401523360a08401521660c08201525f60405195869485936316c0a75160e11b85526004850190610d6c565b5af1801561018557610cc2575b50610aed90610af7948752610ae6565b906020823d602011610cee575b81610cdc6020938361089f565b810103126101ad579050610aed610cb2565b3d9150610ccf565b60405163643c60f360e01b8152602060048201526011602482015270416d6f756e74496e206973207a65726f2160781b6044820152606490fd5b9095506020813d602011610d5c575b81610d4c6020938361089f565b810103126101ad5751945f610c0b565b3d9150610d3f565b955050505050565b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260808083015115159084015260a0808301519091169083015260c09081015163ffffffff16910152565b908160209103126101ad575160ff811681036101ad5790565b60ff16604d811161090557600a0a90565b90610df8610957565b50604051637516644b60e11b81526001600160a01b03838116600483015282811660248301529092907f000000000000000000000000000000000000000000000000000000000000000016602084604481845afa938415610185575f946110c8575b5060405163c45a015560e01b8152602081600481855afa908115610185575f916110a9575b5060405163e6a4390560e01b81526001600160a01b0384811660048301528581166024830152909160209183916044918391165afa8015610185576020915f9161108c575b50604051635357407160e11b81526001600160a01b03909116600482015291829060249082905afa908115610185575f9161105a575b50670de0b6b3a76400000390670de0b6b3a764000082116109055760405163313ce56760e01b815290602090829060049082906001600160a01b03165afa801561018557610f546020916004935f91611043575b50610dde565b60405163313ce56760e01b815290949092839182906001600160a01b03165afa801561018557610f8a915f916110145750610dde565b91670de0b6b3a7640000840293808504670de0b6b3a764000014901517156109055780670de0b6b3a76400000290670de0b6b3a764000082048103610905578202670de0b6b3a7640000029181159183041417156109055781156110005760405192610ff584610853565b835204602082015290565b634e487b7160e01b5f52601260045260245ffd5b611036915060203d60201161103c575b61102e818361089f565b810190610dc5565b5f610f4e565b503d611024565b6110369150833d851161103c5761102e818361089f565b90506020813d602011611084575b816110756020938361089f565b810103126101ad57515f610efa565b3d9150611068565b6110a39150823d841161017e57610170818361089f565b5f610ec4565b6110c2915060203d60201161017e57610170818361089f565b5f610e7f565b9093506020813d6020116110f4575b816110e46020938361089f565b810103126101ad5751925f610e5a565b3d91506110d7565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526111459161114060848361089f565b6112af565b565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152821693602082604481885afa8015610185575f90611263575b61118d92506108f8565b925f8060405194602086019063095ea7b360e01b825260018060a01b0316968760248801526044870152604486526111c660648761089f565b85519082855af1906111d661131a565b82611231575b5081611226575b50156111ee57505050565b611140611145936040519063095ea7b360e01b602083015260248201525f60448201526044815261122060648261089f565b826112af565b90503b15155f6111e3565b80519192508115918215611249575b5050905f6111dc565b61125c9250602080918301019101611297565b5f80611240565b506020823d60201161128f575b8161127d6020938361089f565b810103126101ad5761118d9151611183565b3d9150611270565b908160209103126101ad575180151581036101ad5790565b5f806112d79260018060a01b03169360208151910182865af16112d061131a565b9083611359565b80519081151591826112ff575b50506112ed5750565b635274afe760e01b5f5260045260245ffd5b6113129250602080918301019101611297565b155f806112e4565b3d15611354573d9067ffffffffffffffff821161086f5760405191611349601f8201601f19166020018461089f565b82523d5f602084013e565b606090565b9061137d575080511561136e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806113ae575b61138e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561138656fea2646970667358221220b526040f16c74de5eea30b9fb08eebd9f9f9fb64cd3f9acd318a3c89d26ae38064736f6c634300081b0033","sourceMap":"708:8151:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;;;;;;;:::i;:::-;4207:1;708:8151;;;;;;;;;;;;;;;;;;4293:13;;708:8151;4293:13;708:8151;4293:13;;;;;;;;;708:8151;4293:13;708:8151;4293:13;708:8151;4293:13;;;708:8151;4281:25;;;;:::i;:::-;-1:-1:-1;;;;;708:8151:52;;;;;;;-1:-1:-1;;;4328:13:52;;708:8151;;;;;4328:13;;;;;;;708:8151;4328:13;;;708:8151;4316:25;;;;;;:::i;:::-;-1:-1:-1;;;;;708:8151:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;4328:13;;;;708:8151;4328:13;708:8151;4328:13;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;708:8151;;;;;;;;;4293:13;;;;;;;;;;;;;;:::i;:::-;;;;708:8151;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;1944:33;;;;;;:::i;:::-;708:8151;2038:3;708:8151;;2008:28;;;;;2057:25;;;708:8151;2057:25;;;:::i;:::-;;;;;;:::i;:::-;;708:8151;1993:13;;2008:28;;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;708:8151:52;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3083:41;;708:8151;;;:::i;:::-;;;-1:-1:-1;;;3083:41:52;;-1:-1:-1;;;;;708:8151:52;;;;3083:41;;708:8151;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;3083:41;;708:8151;3083:7;-1:-1:-1;;;;;708:8151:52;3083:41;;;;;;;708:8151;;;3083:41;;;708:8151;;;;;;;;;;:::i;:::-;3158:1;708:8151;;;;;;;;;;3170:21;;;:::i;:::-;708:8151;3201:21;;;:::i;:::-;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;3208:1;708:8151;;;3083:41;;;;;;;;;;;;;;;;;;:::i;:::-;;;708:8151;;;;;;;;;;;;3083:41;;;;;;;-1:-1:-1;3083:41:52;;708:8151;;;;;;-1:-1:-1;;708:8151:52;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;3829:20;3811:38;;;:::i;:::-;708:8151;3877:19;3859:37;;;:::i;:::-;708:8151;;;3877:19;708:8151;;;;3924:24;708:8151;;;;;;3924:24;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3829:20;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;-1:-1:-1;;;4574:17:52;;708:8151;;;;;;;;;;4574:7;-1:-1:-1;;;;;708:8151:52;4574:17;;;;;;;708:8151;4574:17;;;708:8151;-1:-1:-1;;;;;;708:8151:52;;4619:14;708:8151;;;4619:14;:::i;:::-;708:8151;;-1:-1:-1;;;4656:24:52;;708:8151;;;;4656:24;;;;;;;;;708:8151;4656:24;;;708:8151;4647:33;;;4643:97;;708:8151;4769:15;;;:::i;:::-;708:8151;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;708:8151:52;;;;;4831:3;708:8151;;4815:14;;;;;4884:10;;;;:::i;:::-;708:8151;;;;;;;4867:28;;708:8151;4867:28;;708:8151;;4867:28;708:8151;4867:28;;;;;;;;708:8151;4867:28;708:8151;4867:28;;;4831:3;-1:-1:-1;708:8151:52;;-1:-1:-1;;708:8151:52;4850:46;;;;:::i;:::-;708:8151;;4800:13;;4867:28;;;;708:8151;4867:28;;;;;;;;;:::i;:::-;;;;4815:14;;;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;4643:97;-1:-1:-1;;708:8151:52;;-1:-1:-1;;;4705:24:52;;708:8151;;;;4705:24;;;;;;;;;708:8151;4705:24;;;4643:97;;-1:-1:-1;4643:97:52;;4705:24;;;708:8151;4705:24;;708:8151;4705:24;;;;;;708:8151;4705:24;;;:::i;:::-;;;708:8151;;;;;4769:15;708:8151;;4705:24;;;;;-1:-1:-1;4705:24:52;;4656;;;;708:8151;4656:24;;708:8151;4656:24;;;;;;708:8151;4656:24;;;:::i;:::-;;;708:8151;;;;;;;4656:24;;;;;;-1:-1:-1;4656:24:52;;4574:17;;;;708:8151;4574:17;708:8151;4574:17;;;;;;;:::i;:::-;;;;708:8151;;;;-1:-1:-1;;;;;708:8151:52;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;708:8151:52;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;708:8151:52;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;3829:20;708:8151;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;708:8151:52;;;;;;;:::o;2138:680::-;708:8151;;;2138:680;;708:8151;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;-1:-1:-1;708:8151:52;;;;;;;;;:::i;:::-;-1:-1:-1;708:8151:52;;-1:-1:-1;708:8151:52;;;;;;;;2312:18;2346:20;;2342:63;;2435:9;;708:8151;;;;;;;2458:22;;708:8151;;-1:-1:-1;;;5345:46:52;;-1:-1:-1;;;;;708:8151:52;;;5345:46;;;708:8151;;;;;;;;;;;;;;;;5345:7;708:8151;;;;;;;;;5345:46;;;;;;;-1:-1:-1;5345:46:52;;;2454:256;5405:14;;;5401:85;;-1:-1:-1;;;;;708:8151:52;;;5558:6;5551:4;;5531:10;708:8151;5558:6;:::i;:::-;5633;;;;;:::i;:::-;615:4;5881:15;708:8151;5881:15;;708:8151;;;;;615:4;5651:366;708:8151;615:4;708:8151;;;;;;;:::i;:::-;;;;;;;;;;5677:330;;;708:8151;;5677:330;;708:8151;5677:330;708:8151;5677:330;;708:8151;-1:-1:-1;5677:330:52;;;615:4;5531:10;5677:330;;;708:8151;615:4;5677:330;;;615:4;-1:-1:-1;708:8151:52;;;;;;;;;;5651:366;;5345:46;5651:366;;615:4;;:::i;:::-;5651:366;;;;;;;;2454:256;708:8151;2735:21;708:8151;2780:31;708:8151;;;2454:256;2747:9;2735:21;;:::i;:::-;708:8151;2719:13;;708:8151;2780:31;:::i;:::-;708:8151;2766:11;;:45;2138:680::o;5651:366::-;;708:8151;5651:366;;708:8151;5651:366;;;;;;708:8151;5651:366;;;:::i;:::-;;;708:8151;;;;5651:366;-1:-1:-1;2735:21:52;5651:366;;;;;-1:-1:-1;5651:366:52;;5401:85;708:8151;;-1:-1:-1;;;5442:33:52;;708:8151;5345:46;5442:33;;708:8151;;;;;;-1:-1:-1;;;708:8151:52;;;;5442:33;;;5345:46;;;;708:8151;5345:46;;708:8151;5345:46;;;;;;708:8151;5345:46;;;:::i;:::-;;;708:8151;;;;;5345:46;;;;;;;-1:-1:-1;5345:46:52;;2454:256;708:8151;;-1:-1:-1;;;6505:51:52;;-1:-1:-1;;;;;708:8151:52;;;6505:51;;;708:8151;;;;;;;;;;;;;;;;6505:7;708:8151;;;;;;;;;6505:51;;;;;;;-1:-1:-1;6505:51:52;;;2454:256;6570:13;;;6566:83;;-1:-1:-1;;;;;708:8151:52;;;6721:8;6714:4;;6694:10;708:8151;6721:8;:::i;:::-;6798;;;;;:::i;:::-;615:4;7046:15;708:8151;7046:15;;708:8151;;;;;615:4;6818:369;708:8151;615:4;708:8151;;;;;;;:::i;:::-;;;;;;;;;;6843:334;;;708:8151;6843:334;708:8151;6843:334;;708:8151;;6843:334;;708:8151;-1:-1:-1;6843:334:52;;;615:4;6694:10;6843:334;;;708:8151;615:4;6843:334;;;615:4;-1:-1:-1;708:8151:52;;;;;;;;;;6818:369;;6505:51;6818:369;;615:4;;:::i;:::-;6818:369;;;;;;;;2454:256;708:8151;2735:21;708:8151;2780:31;708:8151;;;2454:256;;6818:369;;708:8151;6818:369;;708:8151;6818:369;;;;;;708:8151;6818:369;;;:::i;:::-;;;708:8151;;;;6818:369;-1:-1:-1;2735:21:52;6818:369;;;;;-1:-1:-1;6818:369:52;;6566:83;708:8151;;-1:-1:-1;;;6606:32:52;;708:8151;6505:51;6606:32;;708:8151;;;;;;-1:-1:-1;;;708:8151:52;;;;6606:32;;;6505:51;;;;708:8151;6505:51;;708:8151;6505:51;;;;;;708:8151;6505:51;;;:::i;:::-;;;708:8151;;;;;6505:51;;;;;;;-1:-1:-1;6505:51:52;;2342:63;2382:12;-1:-1:-1;;;;;2382:12:52:o;615:4::-;;;-1:-1:-1;;;;;708:8151:52;;;;;615:4;;;;;708:8151;;615:4;;;708:8151;615:4;;;;;;;;708:8151;615:4;;;;;;;;708:8151;615:4;;;;;;;;;;;708:8151;615:4;;;;708:8151;;;615:4;;;708:8151;615:4;;;;;;;;;;:::o;664:8::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;7347:1510::-;;708:8151;;:::i;:::-;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7520:53:52;;-1:-1:-1;;;;;708:8151:52;;;7520:53;;;708:8151;;;;;;;;;;;7520:7;708:8151;7520:53;708:8151;;;;7520:53;;;;;;;-1:-1:-1;7520:53:52;;;7347:1510;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7619:17:52;;7520:53;708:8151;7520:53;708:8151;7619:17;;;;;;;;-1:-1:-1;7619:17:52;;;7347:1510;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7669:36:52;;-1:-1:-1;;;;;708:8151:52;;;7520:53;7669:36;;708:8151;;;;;;;;;;7520:53;;708:8151;;;;;;;7669:36;;;;;;7520:53;7669:36;-1:-1:-1;7669:36:52;;;7347:1510;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7838:28:52;;-1:-1:-1;;;;;708:8151:52;;;7520:53;7838:28;;708:8151;;;;7838:28;;708:8151;;7838:28;;;;;;;-1:-1:-1;7838:28:52;;;7347:1510;708:8151;664:8;708:8151;;664:8;708:8151;;;;;;-1:-1:-1;;;7942:36:52;;708:8151;7520:53;;708:8151;;7520:53;;708:8151;;-1:-1:-1;;;;;708:8151:52;7942:36;;;;;;7936:42;7520:53;7942:36;7520:53;7942:36;-1:-1:-1;7942:36:52;;;7347:1510;7936:42;;:::i;:::-;708:8151;;-1:-1:-1;;;8021:35:52;;708:8151;;;;;;;;-1:-1:-1;;;;;708:8151:52;8021:35;;;;;;8015:41;8021:35;-1:-1:-1;8021:35:52;;;8015:41;;:::i;:::-;664:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;708:8151;;;;;;:::i;:::-;;;664:8;7520:53;8666:184;;708:8151;7347:1510;:::o;664:8::-;708:8151;;;-1:-1:-1;664:8:52;;7520:53;664:8;7838:28;-1:-1:-1;664:8:52;8021:35;;;;7520:53;8021:35;7520:53;8021:35;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7942:36;;;;;;;;;;;;;;:::i;7838:28::-;;;7520:53;7838:28;;7520:53;7838:28;;;;;;708:8151;7838:28;;;:::i;:::-;;;708:8151;;;;;7838:28;;;;;;-1:-1:-1;7838:28:52;;7669:36;;;;;;;;;;;;;;:::i;:::-;;;;7619:17;;;;7520:53;7619:17;7520:53;7619:17;;;;;;;:::i;:::-;;;;7520:53;;;;;;;;;;;;;;708:8151;7520:53;;;:::i;:::-;;;708:8151;;;;;7520:53;;;;;;;-1:-1:-1;7520:53:52;;1702:188:32;708:8151:52;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;708:8151:52;;;1829:53:32;;;708:8151:52;;;;;;;;;;;;;;;;;1829:53:32;;;;;;708:8151:52;;1829:53:32;:::i;:::-;;:::i;:::-;1702:188::o;2081:225::-;708:8151:52;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;708:8151:52;-1:-1:-1;;;;;708:8151:52;;;;;;;;;;2200:39:32;708:8151:52;;;;2200:39:32;;;;;;-1:-1:-1;2200:39:32;;;2081:225;2278:20;;;;:::i;:::-;708:8151:52;-1:-1:-1;708:8151:52;;;3411:47:32;2200:39;3411:47;;708:8151:52;;;;3411:47:32;;708:8151:52;;;;;;3411:47:32;;;;;708:8151:52;;;;;;3411:47:32;;;;;;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;708:8151:52;;;;;;;2200:39:32;3561:43;;;3411:47;3561:43;;708:8151:52;-1:-1:-1;708:8151:52;;;;;3561:43:32;;;3411:47;3561:43;;:::i;:::-;;;:::i;8066:103::-;8139:26;;;:30;;8066:103;;;:69;708:8151:52;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;2200:39;8104:30;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;;;;;;;;;;;708:8151:52;2200:39:32;;;:::i;:::-;;;708:8151:52;;;;2278:20:32;708:8151:52;;2200:39:32;;;;;-1:-1:-1;2200:39:32;;708:8151:52;;;;;;;;;;615:4;;;708:8151;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;708:8151:52;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;708:8151:52;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;708:8151:52;664:8;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;708:8151:52;;;;;;;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;;:::i;:::-;;;;-1:-1:-1;708:8151:52;;;;:::o;:::-;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;708:8151:52;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;708:8151:52;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;708:8151:52;;;;4917:24:33;708:8151:52;664:8;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"63742":[{"start":874,"length":32},{"start":1465,"length":32},{"start":2553,"length":32},{"start":3025,"length":32},{"start":3619,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer_\",\"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\":[{\"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\":\"\",\"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\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_buyToken\",\"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\":\"_prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"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\"}],\"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\":{\"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.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"Integral always relies on a single pool linked to the factory to map two pairs, and does not use routing we can then use getPriceByTokenAddresses() instead of getPriceByPairAddresses() as they both return the same value and the first also handles the order of tokens inside.Since the price of a token is determined externally by Integral Oracles and not by reserves it will always be the same (pre and post trade) and independent of the amounts swapped, but we still return an array of length=specifiedAmounts.length with same values to make sure the return value is the expected from caller.\",\"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\":{\"_prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"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\":\"Integral Swap Adapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"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.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"IntegralSwapAdapter\"},\"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/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"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/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"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\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"relayer_","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":[{"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":"","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":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"_sellToken","type":"address"},{"internalType":"address","name":"_buyToken","type":"address"},{"internalType":"uint256[]","name":"_specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"_prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","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"}]}]}]}],"devdoc":{"kind":"dev","methods":{"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."}},"price(bytes32,address,address,uint256[])":{"details":"Integral always relies on a single pool linked to the factory to map two pairs, and does not use routing we can then use getPriceByTokenAddresses() instead of getPriceByPairAddresses() as they both return the same value and the first also handles the order of tokens inside.Since the price of a token is determined externally by Integral Oracles and not by reserves it will always be the same (pre and post trade) and independent of the amounts swapped, but we still return an array of length=specifiedAmounts.length with same values to make sure the return value is the expected from caller.","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":{"_prices":"array of prices as fractions corresponding to the provided amounts."}},"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":{"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."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"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/integral/IntegralSwapAdapter.sol":"IntegralSwapAdapter"},"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/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"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/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"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"}},"version":1},"id":52} |