0 txs
116.7k calls
constructor
constructor()
functions
decodeParams
purefunction decodeParams(bytes data) pure returns (tuple metaSwapParams)
owner
viewfunction owner() view returns (address)
whitelistedSwapContracts
viewfunction whitelistedSwapContracts(address) view returns (bool)
addToWhitelist
nonpayablefunction addToWhitelist(address[] contracts)
initialize
nonpayablefunction initialize(address owner, address[] whitelistedContracts)
removeFromWhitelist
nonpayablefunction removeFromWhitelist(address[] contracts)
renounceOwnership
nonpayablefunction renounceOwnership()
swapCall
payablefunction swapCall(tuple params) payable returns (uint256, address)
swapDelegate
payablefunction swapDelegate(tuple params) payable returns (uint256, address)
swapUsingValidatedPathCall
payablefunction swapUsingValidatedPathCall(tuple params) payable returns (uint256, address)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address indexed actor, address indexed inputToken, uint256 inputAmount, address indexed outputToken, uint256 outputAmount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyInitialized
error AlreadyInitialized()
FailedInnerCall
error FailedInnerCall()
InvalidDestinationSwapper
error InvalidDestinationSwapper()
InvalidERC20Address
error InvalidERC20Address()
InvalidExecutedOutputAmount
error InvalidExecutedOutputAmount()
InvalidMsgValue
error InvalidMsgValue()
InvalidSwapInputAmount
error InvalidSwapInputAmount()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SwapDeadlineExceeded
error SwapDeadlineExceeded()
creation bytecode
0x60a060405234801561001057600080fd5b506001600055338061003c57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100458161004f565b50306080526100a1565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6080516116166100ca600039600081816108a7015281816108ef0152610cf401526116166000f3fe6080604052600436106100b05760003560e01c80637f64978311610074578063acd082de1161004e578063acd082de146101e3578063edfd6d0014610210578063f2fde38b1461022357600080fd5b80637f6497831461017b5780638da5cb5b1461019b578063946d9204146101c357600080fd5b806340eb4409146100bc578063548db174146100f15780635ee54d80146101135780636a89cd4914610153578063715018a61461016657600080fd5b366100b757005b600080fd5b6100cf6100ca3660046110d9565b610243565b604080519283526001600160a01b039091166020830152015b60405180910390f35b3480156100fd57600080fd5b5061011161010c366004611159565b610274565b005b34801561011f57600080fd5b5061014361012e3660046111bb565b60026020526000908152604090205460ff1681565b60405190151581526020016100e8565b6100cf6101613660046110d9565b6102bc565b34801561017257600080fd5b506101116102da565b34801561018757600080fd5b50610111610196366004611159565b6102ee565b3480156101a757600080fd5b506001546040516001600160a01b0390911681526020016100e8565b3480156101cf57600080fd5b506101116101de3660046111d8565b610335565b3480156101ef57600080fd5b506102036101fe36600461133e565b6103bf565b6040516100e8919061139f565b6100cf61021e3660046110d9565b6103f5565b34801561022f57600080fd5b5061011161023e3660046111bb565b610413565b60008061024e610456565b61026161025a846113f8565b6001610480565b9150915061026f6001600055565b915091565b61027c61060f565b6102b88282808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925061063c915050565b5050565b6000806102c7610456565b6102616102d3846113f8565b60006106a0565b6102e261060f565b6102ec600061070b565b565b6102f661060f565b6102b88282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506001925061063c915050565b600154600160a01b900460ff161561035f5760405162dc149f60e41b815260040160405180910390fd5b6001805460ff60a01b1916600160a01b17905561037b83610413565b6103ba8282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506001925061063c915050565b505050565b60408051606080820183526000808352602083015291810191909152818060200190518101906103ef919061149b565b92915050565b600080610400610456565b61026161040c846113f8565b6000610480565b61041b61060f565b6001600160a01b03811661044a57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6104538161070b565b50565b60026000540361047957604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b8151602083015160009182916001600160a01b039190911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14908180156104ba575080155b156104d85760405163e9152f6360e01b815260040160405180910390fd5b8180156104e55750348114155b1561050357604051631841b4e160e01b815260040160405180910390fd5b8115801561051057503415155b1561052e57604051631841b4e160e01b815260040160405180910390fd5b600081116105465785516105419061076a565b610548565b805b602087015285516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461058f5761058f33602088015188516001600160a01b031691903090610826565b6105988661087e565b6105a1866109c5565b508094505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b031686604001516001600160a01b0316036105e6576105e13385610ae0565b6105ff565b6105ff3360408801516001600160a01b03169086610af0565b50505060408301515b9250929050565b6001546001600160a01b031633146102ec5760405163118cdaa760e01b8152336004820152602401610441565b815160005b8181101561069a57826002600086848151811061066057610660611560565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610641565b50505050565b6020820151600090819081816106c05785516106bb90610b40565b6106c2565b815b9050806000036106e55760405163e9152f6360e01b815260040160405180910390fd5b602086018190526106f58661087e565b6106fe866109c5565b9350935050509250929050565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806001600160a01b03831663dd62ed3e336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156107df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108039190611576565b9050806000036103ef5760405163e9152f6360e01b815260040160405180910390fd5b8373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601610865576040516376fe282b60e11b815260040160405180910390fd5b81156108775761087785858585610bf8565b5050505050565b60008160800151806020019051810190610898919061149b565b90506000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461096157602082015160405162bdca9b60e71b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690635ee54d8090602401602060405180830381865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c919061158f565b610983565b6020808301516001600160a01b031660009081526002909152604090205460ff165b9050806109a357604051633dfd115d60e01b815260040160405180910390fd5b81514211156103ba57604051637617263160e01b815260040160405180910390fd5b805160009081906001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610a1657610a166109ff8460800151610c5f565b602085015185516001600160a01b03169190610c81565b6000610a258460400151610b40565b9050610a3084610ccb565b80610a3e8560400151610b40565b610a4891906115c7565b90508360600151811015610a6f576040516331cee32f60e21b815260040160405180910390fd5b604084015184516001600160a01b039182169116336001600160a01b03167f5380cf97d8f645d3c4896da60c053458dca03a3a31cec642ac80e1ddf0d8d02a876020015185604051610acb929190918252602082015260400190565b60405180910390a46040909301519293915050565b80156102b8576102b88282610d80565b8273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601610b2f576040516376fe282b60e11b815260040160405180910390fd5b811561069a5761069a848484610ddb565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03831601610b6e575047919050565b630defdeac196001600160a01b03831601610b8b57506000919050565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef9190611576565b919050565b6040516001600160a01b03848116602483015283811660448301526064820183905261069a9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610e0c565b60008082806020019051810190610c76919061149b565b602001519392505050565b8273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601610cc0576040516376fe282b60e11b815260040160405180910390fd5b61069a848484610e6f565b805160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0391821614907f0000000000000000000000000000000000000000000000000000000000000000163014610d3d5780610d26576000610d2c565b82602001515b610d3690346115da565b9150610d51565b80610d485734610d4e565b82602001515b91505b60008360800151806020019051810190610d6b919061149b565b90506108778160200151826040015185610eff565b600080600080600085875af19050806103ba5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610441565b6040516001600160a01b038381166024830152604482018390526103ba91859182169063a9059cbb90606401610c2d565b6000610e216001600160a01b03841683610f9e565b90508051600014158015610e46575080806020019051810190610e44919061158f565b155b156103ba57604051635274afe760e01b81526001600160a01b0384166004820152602401610441565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610ec08482610fac565b61069a576040516001600160a01b03848116602483015260006044830152610ef591869182169063095ea7b390606401610c2d565b61069a8482610e0c565b606081471015610f245760405163cd78605960e01b8152306004820152602401610441565b600080856001600160a01b03168486604051610f4091906115ed565b60006040518083038185875af1925050503d8060008114610f7d576040519150601f19603f3d011682016040523d82523d6000602084013e610f82565b606091505b5091509150610f92868383611054565b925050505b9392505050565b6060610f9783836000610eff565b6000806000846001600160a01b031684604051610fc991906115ed565b6000604051808303816000865af19150503d8060008114611006576040519150601f19603f3d011682016040523d82523d6000602084013e61100b565b606091505b5091509150818015611035575080511580611035575080806020019051810190611035919061158f565b801561104b57506000856001600160a01b03163b115b95945050505050565b60608261106957611064826110b0565b610f97565b815115801561108057506001600160a01b0384163b155b156110a957604051639996b31560e01b81526001600160a01b0385166004820152602401610441565b5080610f97565b8051156110c05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000602082840312156110eb57600080fd5b813567ffffffffffffffff81111561110257600080fd5b820160c08185031215610f9757600080fd5b60008083601f84011261112657600080fd5b50813567ffffffffffffffff81111561113e57600080fd5b6020830191508360208260051b850101111561060857600080fd5b6000806020838503121561116c57600080fd5b823567ffffffffffffffff81111561118357600080fd5b61118f85828601611114565b90969095509350505050565b6001600160a01b038116811461045357600080fd5b8035610bf38161119b565b6000602082840312156111cd57600080fd5b8135610f978161119b565b6000806000604084860312156111ed57600080fd5b83356111f88161119b565b9250602084013567ffffffffffffffff81111561121457600080fd5b61122086828701611114565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff811182821017156112665761126661122d565b60405290565b6040516060810167ffffffffffffffff811182821017156112665761126661122d565b604051601f8201601f1916810167ffffffffffffffff811182821017156112b8576112b861122d565b604052919050565b600067ffffffffffffffff8211156112da576112da61122d565b50601f01601f191660200190565b600082601f8301126112f957600080fd5b813561130c611307826112c0565b61128f565b81815284602083860101111561132157600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561135057600080fd5b813567ffffffffffffffff81111561136757600080fd5b611373848285016112e8565b949350505050565b60005b8381101561139657818101518382015260200161137e565b50506000910152565b60208152815160208201526001600160a01b0360208301511660408201526000604083015160608084015280518060808501526113e38160a086016020850161137b565b601f01601f19169290920160a0019392505050565b600060c0823603121561140a57600080fd5b611412611243565b61141b836111b0565b815260208301356020820152611433604084016111b0565b604082015260608301356060820152608083013567ffffffffffffffff8082111561145d57600080fd5b611469368387016112e8565b608084015260a085013591508082111561148257600080fd5b5061148f368286016112e8565b60a08301525092915050565b600060208083850312156114ae57600080fd5b825167ffffffffffffffff808211156114c657600080fd5b90840190606082870312156114da57600080fd5b6114e261126c565b82518152838301516114f38161119b565b8185015260408301518281111561150957600080fd5b80840193505086601f84011261151e57600080fd5b8251915061152e611307836112c0565b828152878584860101111561154257600080fd5b6115518386830187870161137b565b60408201529695505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561158857600080fd5b5051919050565b6000602082840312156115a157600080fd5b81518015158114610f9757600080fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156103ef576103ef6115b1565b808201808211156103ef576103ef6115b1565b600082516115ff81846020870161137b565b919091019291505056fea164736f6c6343000814000a