3 txs
280 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
0x60806040523480156200001157600080fd5b5060405162001ad038038062001ad08339810160408190526200003491620001e5565b80620000403362000103565b6040805180820190915260008082526020820152815160005b81811015620000f857838181518110620000775762000077620002d7565b6020908102919091018101518082018051825160009081526002855260409081902080546001600160a01b0319166001600160a01b0393841617905591518351925192835292965091909116917fb8a980ccc5186c15dc94e9f3bf60eff74b64aef1567c97a0524753530607f8fe910160405180910390a260010162000059565b5050505050620002ed565b600180546001600160a01b03191690556200011e8162000121565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620001ac57620001ac62000171565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620001dd57620001dd62000171565b604052919050565b60006020808385031215620001f957600080fd5b82516001600160401b03808211156200021157600080fd5b818501915085601f8301126200022657600080fd5b8151818111156200023b576200023b62000171565b6200024b848260051b01620001b2565b818152848101925060069190911b8301840190878211156200026c57600080fd5b928401925b81841015620002cc57604084890312156200028c5760008081fd5b6200029662000187565b84518152858501516001600160a01b0381168114620002b55760008081fd5b818701528352604093909301929184019162000271565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6117d380620002fd6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063bde0ca4611610076578063e30c39781161005b578063e30c39781461019a578063e66065d4146101b8578063f2fde38b146101cb57600080fd5b8063bde0ca4614610166578063cb518f521461018757600080fd5b8063715018a6116100a7578063715018a61461013857806379ba5097146101405780638da5cb5b1461014857600080fd5b80631b9d082d146100c35780634ef501ac146100d8575b600080fd5b6100d66100d1366004611328565b6101de565b005b61010e6100e63660046113af565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d661023d565b6100d6610277565b60005473ffffffffffffffffffffffffffffffffffffffff1661010e565b6101796101743660046113c8565b610331565b60405190815260200161012f565b6101796101953660046113c8565b6106e8565b60015473ffffffffffffffffffffffffffffffffffffffff1661010e565b6100d66101c6366004611416565b610a94565b6100d66101d936600461148b565b610b7f565b60006101ec828401846114d5565b60408181015160009081526002602052205490915073ffffffffffffffffffffffffffffffffffffffff16331461022257600080fd5b610236816020015182600001518787610c2f565b5050505050565b610245610da8565b6040517fee90c46800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154339073ffffffffffffffffffffffffffffffffffffffff168114610325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61032e81610e2b565b50565b60008160000361036d576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015260009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611564565b9050600061040d888686610e5c565b905060005b815181101561060a57600082828151811061042f5761042f61157d565b602002602001015190506000816000015161ffff169050600082604001519050600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff168152602001848152506040516020016104df9190815173ffffffffffffffffffffffffffffffffffffffff9081168252602080840151909116908201526040918201519181019190915260600190565b604051602081830303815290604052905060006104fb846110fe565b73ffffffffffffffffffffffffffffffffffffffff16632f1ccfbe338f8f896020015188886040518763ffffffff1660e01b8152600401610541969594939291906115d0565b6020604051808303816000875af1158015610560573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105849190611564565b9050610590818a61168f565b6040805160008152602081018790529081018390526060810185905290995073ffffffffffffffffffffffffffffffffffffffff808e1691908f169033907e320d5f3fa77c7e31e1dd53600f224b49e7f1c5205eb063f3e6b6caaa68a00d9060800160405180910390a48560010195505050505050610412565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152829073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190611564565b6106a591906116a2565b84146106dd576040517fdb43a14400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505095945050505050565b600082600003610724576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015260009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa158015610791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b59190611564565b905060006107c4888686610e5c565b905060005b81518110156109c15760008282815181106107e6576107e661157d565b602002602001015190506000816000015161ffff169050600082602001519050600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff168152602001848152506040516020016108969190815173ffffffffffffffffffffffffffffffffffffffff9081168252602080840151909116908201526040918201519181019190915260600190565b604051602081830303815290604052905060006108b2846110fe565b73ffffffffffffffffffffffffffffffffffffffff16637d4f036a338f8f878a60400151886040518763ffffffff1660e01b81526004016108f8969594939291906115d0565b6020604051808303816000875af1158015610917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093b9190611564565b9050610947818a61168f565b6040805160018152602081018790529081018590526060810183905290995073ffffffffffffffffffffffffffffffffffffffff808e1691908f169033907e320d5f3fa77c7e31e1dd53600f224b49e7f1c5205eb063f3e6b6caaa68a00d9060800160405180910390a485600101955050505050506107c9565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152829073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190611564565b610a5c91906116a2565b83146106dd576040517fdb43a14400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a9c610da8565b60408051808201909152600080825260208201528160005b8181101561023657848482818110610ace57610ace61157d565b905060400201803603810190610ae491906116b5565b60208181018051835160009081526002845260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93841617905591518451925192835293965092909216917fb8a980ccc5186c15dc94e9f3bf60eff74b64aef1567c97a0524753530607f8fe910160405180910390a2600101610ab4565b610b87610da8565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610bea60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691610cce9190611730565b6000604051808303816000865af19150503d8060008114610d0b576040519150601f19603f3d011682016040523d82523d6000602084013e610d10565b606091505b5091509150818015610d3a575080511580610d3a575080806020019051810190610d3a919061174c565b610da0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015260640161031c565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161031c565b565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561032e81611160565b606083600003610efb5760408051600180825281830190925290816020015b610ea36040518060600160405280600061ffff16815260200160008152602001600081525090565b815260200190600190039081610e7b5790505090506040518060600160405280600061ffff1681526020018481526020018381525081600081518110610eeb57610eeb61157d565b60200260200101819052506110f7565b600f84166000819003610f3a576040517f0541194800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff811115610f5357610f536114a6565b604051908082528060200260200182016040528015610fac57816020015b610f996040518060600160405280600061ffff16815260200160008152602001600081525090565b815260200190600190039081610f715790505b509150600485901c94506000806000805b8481101561107a57601689901c98623fffff169384019380600183018714600081610ff857610ff38c8461ffff166180006111d5565b610ffc565b868c035b96870196905060008261101f5761101a8c8561ffff166180006111d5565b611023565b868c035b905080870196506040518060600160405280601087901c61ffff168152602001838152602001828152508b878151811061105f5761105f61157d565b60200260200101819052505050505050806001019050610fbd565b506180008361ffff16146110ba576040517f75071ab900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87156110f2576040517f0541194800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505b9392505050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff168061115a576040517f8e5c3a1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8587098587029250828110838203039150508060000361122d578382816112235761122361176e565b04925050506110f7565b808411611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161031c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461132357600080fd5b919050565b6000806000806060858703121561133e57600080fd5b611347856112ff565b935060208501359250604085013567ffffffffffffffff8082111561136b57600080fd5b818701915087601f83011261137f57600080fd5b81358181111561138e57600080fd5b8860208285010111156113a057600080fd5b95989497505060200194505050565b6000602082840312156113c157600080fd5b5035919050565b600080600080600060a086880312156113e057600080fd5b853594506113f0602087016112ff565b93506113fe604087016112ff565b94979396509394606081013594506080013592915050565b6000806020838503121561142957600080fd5b823567ffffffffffffffff8082111561144157600080fd5b818501915085601f83011261145557600080fd5b81358181111561146457600080fd5b8660208260061b850101111561147957600080fd5b60209290920196919550909350505050565b60006020828403121561149d57600080fd5b6110f7826112ff565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000606082840312156114e757600080fd5b6040516060810181811067ffffffffffffffff82111715611531577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405261153d836112ff565b815261154b602084016112ff565b6020820152604083013560408201528091505092915050565b60006020828403121561157657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b838110156115c75781810151838201526020016115af565b50506000910152565b600073ffffffffffffffffffffffffffffffffffffffff8089168352808816602084015280871660408401525084606083015283608083015260c060a083015282518060c08401526116298160e08501602087016115ac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561115a5761115a611660565b8181038181111561115a5761115a611660565b6000604082840312156116c757600080fd5b6040516040810181811067ffffffffffffffff82111715611711577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152611724602084016112ff565b60208201529392505050565b600082516117428184602087016115ac565b9190910192915050565b60006020828403121561175e57600080fd5b815180151581146110f757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212207a88fc21002a188bc3dd5bd33a7f57dd00e6aaea7749bf8a936f6e790aaf41a664736f6c63430008130033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000011000000000000000000000000193e76c78e1c02bf35c1f789ce2a1ae39f865629