0 txs
0 calls
constructor
constructor()
functions
isWhitelistedFunctionSelector
viewfunction isWhitelistedFunctionSelector(bytes4) view returns (bool)
isWhitelistedSwapRouter
viewfunction isWhitelistedSwapRouter(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 _manager)
recoverERC20
nonpayablefunction recoverERC20(address token, address to, uint256 amount)
recoverETH
nonpayablefunction recoverETH(address to, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setWhitelistedAddress
nonpayablefunction setWhitelistedAddress(address swapRouter, bool isWhitelisted)
setWhitelistedFunctionSelectors
nonpayablefunction setWhitelistedFunctionSelectors(bytes4[] selectors, bool isWhitelisted)
swapExactOut
payablefunction swapExactOut(address tokenIn, address tokenOut, uint256 amountOut, uint256 amountInMax, tuple swapCallData, tuple reverseCallData) payable returns (uint256 amountIn)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
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)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
InsufficientAmountOutReceived
error InsufficientAmountOutReceived()
InsufficientEthBalance
error InsufficientEthBalance()
InsufficientTokenBalance
error InsufficientTokenBalance()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
NotWhitelistedFunctionSelector
error NotWhitelistedFunctionSelector(bytes4 selector)
NotWhitelistedSwapRouter
error NotWhitelistedSwapRouter(address target)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051611e236100fd60003960008181610da101528181610dca015261100d0152611e236000f3fe6080604052600436106100dd5760003560e01c80637b337a361161007f578063c4d66de811610059578063c4d66de814610284578063ceed023f146102a4578063f2fde38b146102c4578063fdfc6db9146102e457600080fd5b80637b337a36146101c75780638da5cb5b146101e7578063ad3cb1cc1461022e57600080fd5b806352d1902d116100bb57806352d1902d146101375780635440d2951461015f578063649f469414610172578063715018a6146101b257600080fd5b80631171bda9146100e25780633e0c0629146101045780634f1ef28614610124575b600080fd5b3480156100ee57600080fd5b506101026100fd36600461186f565b610314565b005b34801561011057600080fd5b5061010261011f3660046118ac565b610461565b610102610132366004611905565b61052c565b34801561014357600080fd5b5061014c610547565b6040519081526020015b60405180910390f35b61014c61016d366004611a24565b610576565b34801561017e57600080fd5b506101a261018d366004611ac0565b60016020526000908152604090205460ff1681565b6040519015158152602001610156565b3480156101be57600080fd5b5061010261084a565b3480156101d357600080fd5b506101026101e2366004611b10565b61085e565b3480156101f357600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610156565b34801561023a57600080fd5b506102776040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101569190611b6b565b34801561029057600080fd5b5061010261029f366004611bbc565b610921565b3480156102b057600080fd5b506101026102bf366004611bd7565b610aa9565b3480156102d057600080fd5b506101026102df366004611bbc565b610bc5565b3480156102f057600080fd5b506101a26102ff366004611bbc565b60006020819052908152604090205460ff1681565b61031c610c21565b6040517f24d7806c0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0391909116906324d7806c9060240160006040518083038186803b15801561037657600080fd5b505afa15801561038a573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03861692506370a082319150602401602060405180830381865afa1580156103eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040f9190611c60565b811115610448576040517fe4455cae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61045c6001600160a01b0384168383610c59565b505050565b610469610c21565b6040517f24d7806c0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0391909116906324d7806c9060240160006040518083038186803b1580156104c357600080fd5b505afa1580156104d7573d6000803e3d6000fd5b5050505047811115610515576040517fb6d6e7d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105286001600160a01b03831682610ccd565b5050565b610534610d96565b61053d82610e66565b6105288282610ee3565b6000610551611002565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600061058183611064565b61058a82611064565b336105a06001600160a01b03891682308861118a565b6105c16105b06020860186611bbc565b6001600160a01b038a1690876111c3565b6106266105d16040860186611c79565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505060208701803591506106169088611bbc565b6001600160a01b03169190611281565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab9190611c60565b9050868110156106e7576040517f545831f600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106fb6001600160a01b0389168389610c59565b60006107078883611ce5565b905060008115610831576107326107216020880188611bbc565b6001600160a01b038c169084610c59565b6107936107426040880188611c79565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610784925050506020890189611bbc565b6001600160a01b031690611339565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038c16906370a0823190602401602060405180830381865afa1580156107f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108159190611c60565b90508015610831576108316001600160a01b038c168583610c59565b61083b8189611ce5565b9b9a5050505050505050505050565b610852611350565b61085c60006113c4565b565b610866610c21565b6040517f24d7806c0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0391909116906324d7806c9060240160006040518083038186803b1580156108c057600080fd5b505afa1580156108d4573d6000803e3d6000fd5b505050506001600160a01b0391909116600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561096c5750825b905060008267ffffffffffffffff1660011480156109895750303b155b905081158015610997575080155b156109ce576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610a2f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610a388661144d565b610a4061145e565b8315610aa15784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b610ab1610c21565b6040517f24d7806c0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0391909116906324d7806c9060240160006040518083038186803b158015610b0b57600080fd5b505afa158015610b1f573d6000803e3d6000fd5b5050505060005b82811015610bbf576000848483818110610b4257610b42611d1f565b9050602002016020810190610b579190611ac0565b7fffffffff0000000000000000000000000000000000000000000000000000000016600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016851515179055919091019050610b26565b50505050565b610bcd611350565b6001600160a01b038116610c15576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b610c1e816113c4565b50565b6000610c547f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b905090565b6040516001600160a01b0383811660248301526044820183905261045c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611466565b80471015610d09576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c0c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610d56576040519150601f19603f3d011682016040523d82523d6000602084013e610d5b565b606091505b505090508061045c576040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e2f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b1561085c576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e6e610c21565b6040517f24d7806c0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0391909116906324d7806c9060240160006040518083038186803b158015610ec857600080fd5b505afa158015610edc573d6000803e3d6000fd5b5050505050565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f5b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610f5891810190611c60565b60015b610f9c576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610c0c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610ff8576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610c0c565b61045c83836114e2565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461085c576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806110746020840184611bbc565b6001600160a01b0316815260208101919091526040016000205460ff166110e0576110a26020820182611bbc565b6040517fc50efd890000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602401610c0c565b60006110ef6040830183611c79565b6110f891611d4e565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526001602052604090205490915060ff16610528576040517fd5ee63440000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000082166004820152602401610c0c565b6040516001600160a01b038481166024830152838116604483015260648201839052610bbf9186918216906323b872dd90608401610c86565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526112428482611538565b610bbf576040516001600160a01b0384811660248301526000604483015261127791869182169063095ea7b390606401610c86565b610bbf8482611466565b6060814710156112bf576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c0c565b600080856001600160a01b031684866040516112db9190611db4565b60006040518083038185875af1925050503d8060008114611318576040519150601f19603f3d011682016040523d82523d6000602084013e61131d565b606091505b509150915061132d8683836115e0565b925050505b9392505050565b606061134783836000611281565b90505b92915050565b336113827f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461085c576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610c0c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b611455611655565b610c1e816116bc565b61085c611655565b600061147b6001600160a01b03841683611339565b905080516000141580156114a057508080602001905181019061149e9190611dd0565b155b1561045c576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c0c565b6114eb826116c4565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156115305761045c828261176c565b6105286117d9565b6000806000846001600160a01b0316846040516115559190611db4565b6000604051808303816000865af19150503d8060008114611592576040519150601f19603f3d011682016040523d82523d6000602084013e611597565b606091505b50915091508180156115c15750805115806115c15750808060200190518101906115c19190611dd0565b80156115d757506000856001600160a01b03163b115b95945050505050565b6060826115f5576115f082611811565b611332565b815115801561160c57506001600160a01b0384163b155b1561164e576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c0c565b5080611332565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661085c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bcd611655565b806001600160a01b03163b600003611713576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610c0c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516117899190611db4565b600060405180830381855af49150503d80600081146117c4576040519150601f19603f3d011682016040523d82523d6000602084013e6117c9565b606091505b50915091506115d78583836115e0565b341561085c576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051156118215780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461186a57600080fd5b919050565b60008060006060848603121561188457600080fd5b61188d84611853565b925061189b60208501611853565b929592945050506040919091013590565b600080604083850312156118bf57600080fd5b6118c883611853565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561191857600080fd5b61192183611853565b9150602083013567ffffffffffffffff81111561193d57600080fd5b8301601f8101851361194e57600080fd5b803567ffffffffffffffff811115611968576119686118d6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156119d4576119d46118d6565b6040528181528282016020018710156119ec57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060608284031215611a1e57600080fd5b50919050565b60008060008060008060c08789031215611a3d57600080fd5b611a4687611853565b9550611a5460208801611853565b94506040870135935060608701359250608087013567ffffffffffffffff811115611a7e57600080fd5b611a8a89828a01611a0c565b92505060a087013567ffffffffffffffff811115611aa757600080fd5b611ab389828a01611a0c565b9150509295509295509295565b600060208284031215611ad257600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461133257600080fd5b8015158114610c1e57600080fd5b60008060408385031215611b2357600080fd5b611b2c83611853565b91506020830135611b3c81611b02565b809150509250929050565b60005b83811015611b62578181015183820152602001611b4a565b50506000910152565b6020815260008251806020840152611b8a816040850160208701611b47565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600060208284031215611bce57600080fd5b61134782611853565b600080600060408486031215611bec57600080fd5b833567ffffffffffffffff811115611c0357600080fd5b8401601f81018613611c1457600080fd5b803567ffffffffffffffff811115611c2b57600080fd5b8660208260051b8401011115611c4057600080fd5b602091820194509250840135611c5581611b02565b809150509250925092565b600060208284031215611c7257600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611cae57600080fd5b83018035915067ffffffffffffffff821115611cc957600080fd5b602001915036819003821315611cde57600080fd5b9250929050565b8181038181111561134a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80357fffffffff000000000000000000000000000000000000000000000000000000008116906004841015611dad577fffffffff00000000000000000000000000000000000000000000000000000000808560040360031b1b82161691505b5092915050565b60008251611dc6818460208701611b47565b9190910192915050565b600060208284031215611de257600080fd5b815161133281611b0256fea2646970667358221220e08bd1459d39976d54b541bbe30128231f8dc0d4e392aab66dbdcd00deb5a92964736f6c634300081a0033