0 txs
12 calls
constructor
constructor()
functions
exchangeAllowlist
viewfunction exchangeAllowlist(address) view returns (bool)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
initialize
nonpayablefunction initialize(address owner)
renounceOwnership
nonpayablefunction renounceOwnership()
swap
nonpayablefunction swap(tuple[] swapArgs, address tokenOut) returns (uint256 tokenOutAmount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateExchangeAllowlist
nonpayablefunction updateExchangeAllowlist(tuple[] exchangeArgs)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
ExchangeAllowlistUpdated
event ExchangeAllowlistUpdated(address indexed exchange, bool isAllowed)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExchangeNotAllowed
error ExchangeNotAllowed(address exchange)
FailedCall
error FailedCall()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidInitialization
error InvalidInitialization()
NothingSwapped
error NothingSwapped(address tokenOut)
NothingToSwap
error NothingToSwap(address tokenIn)
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516119c06100f95f395f8181610ada01528181610b030152610d1f01526119c05ff3fe6080604052600436106100ad575f3560e01c80638da5cb5b11610066578063c4d66de81161004c578063c4d66de8146101e7578063cc00f58014610206578063f2fde38b14610244575f5ffd5b80638da5cb5b1461013f578063ad3cb1cc14610192575f5ffd5b8063715018a611610096578063715018a6146100ed5780637a923159146101015780638961ca5b14610120575f5ffd5b80634f1ef286146100b157806352d1902d146100c6575b5f5ffd5b6100c46100bf366004611691565b610263565b005b3480156100d1575f5ffd5b506100da610282565b6040519081526020015b60405180910390f35b3480156100f8575f5ffd5b506100c46102b0565b34801561010c575f5ffd5b506100c461011b3660046116dc565b6102c3565b34801561012b575f5ffd5b506100da61013a36600461174d565b610424565b34801561014a575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e4565b34801561019d575f5ffd5b506101da6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100e491906118a5565b3480156101f2575f5ffd5b506100c46102013660046118f8565b6108e1565b348015610211575f5ffd5b506102346102203660046118f8565b5f6020819052908152604090205460ff1681565b60405190151581526020016100e4565b34801561024f575f5ffd5b506100c461025e3660046118f8565b610a5f565b61026b610ac2565b61027482610bc6565b61027e8282610bce565b5050565b5f61028b610d07565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6102b8610d76565b6102c15f610e04565b565b6102cb610d76565b5f5b8181101561041f578282828181106102e7576102e7611911565b90506040020160200160208101906102ff919061193e565b5f5f85858581811061031357610313611911565b61032992602060409092020190810191506118f8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905582828281811061038d5761038d611911565b6103a392602060409092020190810191506118f8565b73ffffffffffffffffffffffffffffffffffffffff167f627cd1344146c37272a586e0d2cce7d499f8d0c9d40756a50c8e45ef46a4e5bc8484848181106103ec576103ec611911565b9050604002016020016020810190610404919061193e565b604051901515815260200160405180910390a26001016102cd565b505050565b5f5f5b83518110156108b9575f5f85838151811061044457610444611911565b60200260200101516020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168482815181106104a8576104a8611911565b60200260200101516020015190610509576040517fb867b38700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b505f84828151811061051d5761051d611911565b6020908102919091010151516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b6919061195d565b90505f81118583815181106105cd576105cd611911565b60200260200101515f015190610628576040517f4506c0f700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610500565b5061066c85838151811061063e5761063e611911565b60200260200101515f015186848151811061065b5761065b611911565b602002602001015160200151610e99565b6106cf85838151811061068157610681611911565b60200260200101516040015186848151811061069f5761069f611911565b60200260200101516020015173ffffffffffffffffffffffffffffffffffffffff16610f7490919063ffffffff16565b508482815181106106e2576106e2611911565b6020908102919091010151516040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610757573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077b919061195d565b905080156107ca576107ca338287858151811061079a5761079a611911565b60200260200101515f015173ffffffffffffffffffffffffffffffffffffffff16610f889092919063ffffffff16565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa158015610834573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610858919061195d565b9050848482116108ad576040517f3e69e3ba00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610500565b50925050600101610427565b506108db73ffffffffffffffffffffffffffffffffffffffff83163383610f88565b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f8115801561092b5750825b90505f8267ffffffffffffffff1660011480156109475750303b155b905081158015610955575080155b1561098c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156109ed5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6109f686611065565b8315610a575784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b610a67610d76565b73ffffffffffffffffffffffffffffffffffffffff8116610ab6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610500565b610abf81610e04565b50565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610b8f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b767f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614155b156102c1576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610abf610d76565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c53575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610c509181019061195d565b60015b610ca1576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610500565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610cfd576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610500565b61041f8383611076565b3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102c1576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610db57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146102c1576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610500565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff828116602483015283169063dd62ed3e90604401602060405180830381865afa158015610f09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2d919061195d565b5f0361027e5761027e73ffffffffffffffffffffffffffffffffffffffff8316827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6110d8565b6060610f8183835f6111af565b9392505050565b5f6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af191505080601f3d1160015f511416151615610ff85750823b153d17155b8061105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610500565b50505050565b61106d611275565b610abf816112dc565b61107f826112e4565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156110d05761041f82826113b2565b61027e611431565b5f6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af191505080601f3d1160015f5114161516156111485750823b153d17155b8061105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610500565b6060814710156111f4576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101839052604401610500565b5f5f8573ffffffffffffffffffffffffffffffffffffffff16848660405161121c9190611974565b5f6040518083038185875af1925050503d805f8114611256576040519150601f19603f3d011682016040523d82523d5f602084013e61125b565b606091505b509150915061126b868383611469565b9695505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166102c1576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a67611275565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361134c576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610500565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516113db9190611974565b5f60405180830381855af49150503d805f8114611413576040519150601f19603f3d011682016040523d82523d5f602084013e611418565b606091505b5091509150611428858383611469565b95945050505050565b34156102c1576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608261147e57611479826114f8565b610f81565b81511580156114a2575073ffffffffffffffffffffffffffffffffffffffff84163b155b156114f1576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610500565b5080610f81565b8051156115085780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461155d575f5ffd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156115b2576115b2611562565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156115ff576115ff611562565b604052919050565b5f82601f830112611616575f5ffd5b813567ffffffffffffffff81111561163057611630611562565b61166160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016115b8565b818152846020838601011115611675575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156116a2575f5ffd5b6116ab8361153a565b9150602083013567ffffffffffffffff8111156116c6575f5ffd5b6116d285828601611607565b9150509250929050565b5f5f602083850312156116ed575f5ffd5b823567ffffffffffffffff811115611703575f5ffd5b8301601f81018513611713575f5ffd5b803567ffffffffffffffff811115611729575f5ffd5b8560208260061b840101111561173d575f5ffd5b6020919091019590945092505050565b5f5f6040838503121561175e575f5ffd5b823567ffffffffffffffff811115611774575f5ffd5b8301601f81018513611784575f5ffd5b803567ffffffffffffffff81111561179e5761179e611562565b8060051b6117ae602082016115b8565b918252602081840181019290810190888411156117c9575f5ffd5b6020850192505b8383101561188857823567ffffffffffffffff8111156117ee575f5ffd5b85016060818b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215611821575f5ffd5b61182961158f565b6118356020830161153a565b81526118436040830161153a565b6020820152606082013567ffffffffffffffff811115611861575f5ffd5b6118708c602083860101611607565b604083015250835250602092830192909101906117d0565b809650505050505061189c6020840161153a565b90509250929050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f60208284031215611908575f5ffd5b610f818261153a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561194e575f5ffd5b81358015158114610f81575f5ffd5b5f6020828403121561196d575f5ffd5b5051919050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220c90febe2728d4c012858b1b9f6a8db025533ec4fc1e8f434c3de5bb42a61160064736f6c634300081c0033