0 txs
196 calls
constructor
constructor((uint256 dexIndex, address adapter)[] _adapters)
functions
adapters
viewfunction adapters(uint256) view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
adapterCallback
nonpayablefunction adapterCallback(address recipient, uint256 amount, bytes _data)
addDexAdapters
nonpayablefunction addDexAdapters(tuple[] _adapters)
renounceOwnership
nonpayablefunction renounceOwnership()
swapExactInput
nonpayablefunction swapExactInput(uint256 swapCalldata, address tokenIn, address tokenOut, uint256 amountIn, uint256 minAmountOut) returns (uint256 amountOut)
swapExactOutput
nonpayablefunction swapExactOutput(uint256 swapCalldata, address tokenIn, address tokenOut, uint256 maxAmountIn, uint256 amountOut) returns (uint256 amountIn)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
NewAdapter
event NewAdapter(uint256 dexIndex, address indexed adapter)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(bool isExactInput, uint256 dexIndex, address indexed receiver, address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut)
errors
Forbidden
error Forbidden()
UnknownDex
error UnknownDex()
WrongAmountOut
error WrongAmountOut()
WrongSwapRatios
error WrongSwapRatios()
WrongSwapsNumber
error WrongSwapsNumber()
ZeroAmount
error ZeroAmount()
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001ad038038062001ad08339810160408190526200003491620001e5565b80620000403362000103565b6040805180820190915260008082526020820152815160005b81811015620000f857838181518110620000775762000077620002d7565b6020908102919091018101518082018051825160009081526002855260409081902080546001600160a01b0319166001600160a01b0393841617905591518351925192835292965091909116917fb8a980ccc5186c15dc94e9f3bf60eff74b64aef1567c97a0524753530607f8fe910160405180910390a260010162000059565b5050505050620002ed565b600180546001600160a01b03191690556200011e8162000121565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620001ac57620001ac62000171565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620001dd57620001dd62000171565b604052919050565b60006020808385031215620001f957600080fd5b82516001600160401b03808211156200021157600080fd5b818501915085601f8301126200022657600080fd5b8151818111156200023b576200023b62000171565b6200024b848260051b01620001b2565b818152848101925060069190911b8301840190878211156200026c57600080fd5b928401925b81841015620002cc57604084890312156200028c5760008081fd5b6200029662000187565b84518152858501516001600160a01b0381168114620002b55760008081fd5b818701528352604093909301929184019162000271565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6117d380620002fd6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063bde0ca4611610076578063e30c39781161005b578063e30c39781461019a578063e66065d4146101b8578063f2fde38b146101cb57600080fd5b8063bde0ca4614610166578063cb518f521461018757600080fd5b8063715018a6116100a7578063715018a61461013857806379ba5097146101405780638da5cb5b1461014857600080fd5b80631b9d082d146100c35780634ef501ac146100d8575b600080fd5b6100d66100d1366004611328565b6101de565b005b61010e6100e63660046113af565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d661023d565b6100d6610277565b60005473ffffffffffffffffffffffffffffffffffffffff1661010e565b6101796101743660046113c8565b610331565b60405190815260200161012f565b6101796101953660046113c8565b6106e8565b60015473ffffffffffffffffffffffffffffffffffffffff1661010e565b6100d66101c6366004611416565b610a94565b6100d66101d936600461148b565b610b7f565b60006101ec828401846114d5565b60408181015160009081526002602052205490915073ffffffffffffffffffffffffffffffffffffffff16331461022257600080fd5b610236816020015182600001518787610c2f565b5050505050565b610245610da8565b6040517fee90c46800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154339073ffffffffffffffffffffffffffffffffffffffff168114610325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61032e81610e2b565b50565b60008160000361036d576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015260009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611564565b9050600061040d888686610e5c565b905060005b815181101561060a57600082828151811061042f5761042f61157d565b602002602001015190506000816000015161ffff169050600082604001519050600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff168152602001848152506040516020016104df9190815173ffffffffffffffffffffffffffffffffffffffff9081168252602080840151909116908201526040918201519181019190915260600190565b604051602081830303815290604052905060006104fb846110fe565b73ffffffffffffffffffffffffffffffffffffffff16632f1ccfbe338f8f896020015188886040518763ffffffff1660e01b8152600401610541969594939291906115d0565b6020604051808303816000875af1158015610560573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105849190611564565b9050610590818a61168f565b6040805160008152602081018790529081018390526060810185905290995073ffffffffffffffffffffffffffffffffffffffff808e1691908f169033907e320d5f3fa77c7e31e1dd53600f224b49e7f1c5205eb063f3e6b6caaa68a00d9060800160405180910390a48560010195505050505050610412565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152829073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190611564565b6106a591906116a2565b84146106dd576040517fdb43a14400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505095945050505050565b600082600003610724576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015260009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa158015610791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b59190611564565b905060006107c4888686610e5c565b905060005b81518110156109c15760008282815181106107e6576107e661157d565b602002602001015190506000816000015161ffff169050600082602001519050600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff168152602001848152506040516020016108969190815173ffffffffffffffffffffffffffffffffffffffff9081168252602080840151909116908201526040918201519181019190915260600190565b604051602081830303815290604052905060006108b2846110fe565b73ffffffffffffffffffffffffffffffffffffffff16637d4f036a338f8f878a60400151886040518763ffffffff1660e01b81526004016108f8969594939291906115d0565b6020604051808303816000875af1158015610917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093b9190611564565b9050610947818a61168f565b6040805160018152602081018790529081018590526060810183905290995073ffffffffffffffffffffffffffffffffffffffff808e1691908f169033907e320d5f3fa77c7e31e1dd53600f224b49e7f1c5205eb063f3e6b6caaa68a00d9060800160405180910390a485600101955050505050506107c9565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152829073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190611564565b610a5c91906116a2565b83146106dd576040517fdb43a14400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a9c610da8565b60408051808201909152600080825260208201528160005b8181101561023657848482818110610ace57610ace61157d565b905060400201803603810190610ae491906116b5565b60208181018051835160009081526002845260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93841617905591518451925192835293965092909216917fb8a980ccc5186c15dc94e9f3bf60eff74b64aef1567c97a0524753530607f8fe910160405180910390a2600101610ab4565b610b87610da8565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610bea60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691610cce9190611730565b6000604051808303816000865af19150503d8060008114610d0b576040519150601f19603f3d011682016040523d82523d6000602084013e610d10565b606091505b5091509150818015610d3a575080511580610d3a575080806020019051810190610d3a919061174c565b610da0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015260640161031c565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161031c565b565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561032e81611160565b606083600003610efb5760408051600180825281830190925290816020015b610ea36040518060600160405280600061ffff16815260200160008152602001600081525090565b815260200190600190039081610e7b5790505090506040518060600160405280600061ffff1681526020018481526020018381525081600081518110610eeb57610eeb61157d565b60200260200101819052506110f7565b600f84166000819003610f3a576040517f0541194800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff811115610f5357610f536114a6565b604051908082528060200260200182016040528015610fac57816020015b610f996040518060600160405280600061ffff16815260200160008152602001600081525090565b815260200190600190039081610f715790505b509150600485901c94506000806000805b8481101561107a57601689901c98623fffff169384019380600183018714600081610ff857610ff38c8461ffff166180006111d5565b610ffc565b868c035b96870196905060008261101f5761101a8c8561ffff166180006111d5565b611023565b868c035b905080870196506040518060600160405280601087901c61ffff168152602001838152602001828152508b878151811061105f5761105f61157d565b60200260200101819052505050505050806001019050610fbd565b506180008361ffff16146110ba576040517f75071ab900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87156110f2576040517f0541194800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505b9392505050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff168061115a576040517f8e5c3a1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8587098587029250828110838203039150508060000361122d578382816112235761122361176e565b04925050506110f7565b808411611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161031c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461132357600080fd5b919050565b6000806000806060858703121561133e57600080fd5b611347856112ff565b935060208501359250604085013567ffffffffffffffff8082111561136b57600080fd5b818701915087601f83011261137f57600080fd5b81358181111561138e57600080fd5b8860208285010111156113a057600080fd5b95989497505060200194505050565b6000602082840312156113c157600080fd5b5035919050565b600080600080600060a086880312156113e057600080fd5b853594506113f0602087016112ff565b93506113fe604087016112ff565b94979396509394606081013594506080013592915050565b6000806020838503121561142957600080fd5b823567ffffffffffffffff8082111561144157600080fd5b818501915085601f83011261145557600080fd5b81358181111561146457600080fd5b8660208260061b850101111561147957600080fd5b60209290920196919550909350505050565b60006020828403121561149d57600080fd5b6110f7826112ff565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000606082840312156114e757600080fd5b6040516060810181811067ffffffffffffffff82111715611531577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405261153d836112ff565b815261154b602084016112ff565b6020820152604083013560408201528091505092915050565b60006020828403121561157657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b838110156115c75781810151838201526020016115af565b50506000910152565b600073ffffffffffffffffffffffffffffffffffffffff8089168352808816602084015280871660408401525084606083015283608083015260c060a083015282518060c08401526116298160e08501602087016115ac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561115a5761115a611660565b8181038181111561115a5761115a611660565b6000604082840312156116c757600080fd5b6040516040810181811067ffffffffffffffff82111715611711577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152611724602084016112ff565b60208201529392505050565b600082516117428184602087016115ac565b9190910192915050565b60006020828403121561175e57600080fd5b815180151581146110f757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212207a88fc21002a188bc3dd5bd33a7f57dd00e6aaea7749bf8a936f6e790aaf41a664736f6c634300081300330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000120000000000000000000000003cc872dba9ee9c0f49946eaea1f68391e12e837f000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000003f9c13369d203e4197baad2391300d54012850c7