0 txs
0 calls
constructor
constructor(address _guardian, address[] _swapProtocols, address[] _mayanProtocols)
functions
guardian
viewfunction guardian() view returns (address)
mayanProtocols
viewfunction mayanProtocols(address) view returns (bool)
nextGuardian
viewfunction nextGuardian() view returns (address)
swapProtocols
viewfunction swapProtocols(address) view returns (bool)
changeGuardian
nonpayablefunction changeGuardian(address newGuardian)
claimGuardian
nonpayablefunction claimGuardian()
forwardERC20
payablefunction forwardERC20(address tokenIn, uint256 amountIn, tuple permitParams, address mayanProtocol, bytes protocolData) payable
forwardEth
payablefunction forwardEth(address mayanProtocol, bytes protocolData) payable
rescueEth
nonpayablefunction rescueEth(uint256 amount, address to)
rescueToken
nonpayablefunction rescueToken(address token, uint256 amount, address to)
setMayanProtocol
nonpayablefunction setMayanProtocol(address mayanProtocol, bool enabled)
setSwapProtocol
nonpayablefunction setSwapProtocol(address swapProtocol, bool enabled)
swapAndForwardERC20
payablefunction swapAndForwardERC20(address tokenIn, uint256 amountIn, tuple permitParams, address swapProtocol, bytes swapData, address middleToken, uint256 minMiddleAmount, address mayanProtocol, bytes mayanData) payable
swapAndForwardEth
payablefunction swapAndForwardEth(uint256 amountIn, address swapProtocol, bytes swapData, address middleToken, uint256 minMiddleAmount, address mayanProtocol, bytes mayanData) payable
events
ForwardedERC20
event ForwardedERC20(address token, uint256 amount, address mayanProtocol, bytes protocolData)
ForwardedEth
event ForwardedEth(address mayanProtocol, bytes protocolData)
SwapAndForwarded
event SwapAndForwarded(uint256 amount)
SwapAndForwardedERC20
event SwapAndForwardedERC20(address tokenIn, uint256 amountIn, address swapProtocol, address middleToken, uint256 middleAmount, address mayanProtocol, bytes mayanData)
SwapAndForwardedEth
event SwapAndForwardedEth(uint256 amountIn, address swapProtocol, address middleToken, uint256 middleAmount, address mayanProtocol, bytes mayanData)
errors
UnsupportedProtocol
error UnsupportedProtocol()
creation bytecode
0x60806040523480156200001157600080fd5b50604051620025253803806200252583398101604081905262000034916200021b565b600080546001600160a01b0319166001600160a01b0385161781555b8251811015620000c8576001600260008584815181106200008157634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000bf8162000295565b91505062000050565b5060005b81518110156200014457600160036000848481518110620000fd57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200013b8162000295565b915050620000cc565b50505050620002d3565b80516001600160a01b03811681146200016657600080fd5b919050565b600082601f8301126200017c578081fd5b815160206001600160401b03808311156200019b576200019b620002bd565b8260051b604051601f19603f83011681018181108482111715620001c357620001c3620002bd565b60405284815283810192508684018288018501891015620001e2578687fd5b8692505b858310156200020f57620001fa816200014e565b845292840192600192909201918401620001e6565b50979650505050505050565b60008060006060848603121562000230578283fd5b6200023b846200014e565b60208501519093506001600160401b038082111562000258578384fd5b62000266878388016200016b565b935060408601519150808211156200027c578283fd5b506200028b868287016200016b565b9150509250925092565b6000600019821415620002b657634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b61224280620002e36000396000f3fe6080604052600436106100e15760003560e01c8063af56ca031161007f578063e4269fc411610059578063e4269fc414610247578063f8a67a621461025a578063fa74fd431461027a578063ffe805411461028d57600080fd5b8063af56ca03146101d4578063b0f584ff14610214578063b25ea8fb1461022757600080fd5b8063459656ee116100bb578063459656ee1461015f5780634818e84d146101745780637fc920eb14610194578063a44382fe146101b457600080fd5b80632fcb4f04146100ed57806330dedc571461010f578063452a93201461012257600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004611c3a565b6102bd565b005b61010d61011d366004611dad565b61033b565b34801561012e57600080fd5b50600054610142906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016b57600080fd5b5061010d610830565b34801561018057600080fd5b50600154610142906001600160a01b031681565b3480156101a057600080fd5b5061010d6101af366004611c5d565b6108bb565b3480156101c057600080fd5b5061010d6101cf366004611c5d565b610930565b3480156101e057600080fd5b506102046101ef366004611c3a565b60036020526000908152604090205460ff1681565b6040519015158152602001610156565b61010d610222366004611c95565b6109a5565b34801561023357600080fd5b5061010d610242366004611ecb565b610acf565b61010d610255366004611d29565b610c17565b34801561026657600080fd5b5061010d610275366004611ce8565b610d5e565b61010d610288366004611eef565b610dbc565b34801561029957600080fd5b506102046102a8366004611c3a565b60026020526000908152604090205460ff1681565b6000546001600160a01b0316331461030c5760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9033bab0b93234b0b760991b60448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b03881660009081526002602052604090205460ff16158061037c57506001600160a01b03831660009081526003602052604090205460ff16155b1561039a5760405163743f26e160e01b815260040160405180910390fd5b846001600160a01b03168b6001600160a01b031614156104225760405162461bcd60e51b815260206004820152602660248201527f746f6b656e496e20616e6420746f6b656e4f7574206d7573742062652064696660448201527f666572656e7400000000000000000000000000000000000000000000000000006064820152608401610303565b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a082319060240160206040518083038186803b15801561046457600080fd5b505afa158015610478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049c9190611eb3565b90506104a98c8c8c6111ef565b60006001600160a01b03871615610538576040516370a0823160e01b81523060048201526001600160a01b038816906370a082319060240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190611eb3565b905061053b565b50475b6105468d8b8e61129f565b60008a6001600160a01b031660008b8b604051610564929190611ff7565b60006040518083038185875af1925050503d80600081146105a1576040519150601f19603f3d011682016040523d82523d6000602084013e6105a6565b606091505b50509050806105f75760405162461bcd60e51b815260206004820152601960248201527f737761702070726f746f636f6c2063616c6c206661696c6564000000000000006044820152606401610303565b6001600160a01b03881615610690576040516370a0823160e01b815230600482015282906001600160a01b038a16906370a082319060240160206040518083038186803b15801561064757600080fd5b505afa15801561065b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067f9190611eb3565b6106899190612172565b915061069d565b61069a8247612172565b91505b868210156106ed5760405162461bcd60e51b815260206004820152601960248201527f696e73756666696369656e74206d6964646c6520746f6b656e000000000000006044820152606401610303565b346001600160a01b03891661070d57610706838261215a565b9050610718565b61071889888561129f565b866001600160a01b03168161072e88888761135f565b60405161073b9190612007565b60006040518083038185875af1925050503d8060008114610778576040519150601f19603f3d011682016040523d82523d6000602084013e61077d565b606091505b505080925050816107d05760405162461bcd60e51b815260206004820152601a60248201527f6d6179616e2070726f746f636f6c2063616c6c206661696c65640000000000006044820152606401610303565b6107da8f856115de565b7f23278f58875126c795a4072b98b5851fe9b21cea19895b02a6224fefbb1e32988f8f8e8c878c8c8c60405161081798979695949392919061204f565b60405180910390a1505050505050505050505050505050565b6001546001600160a01b0316331461088a5760405162461bcd60e51b815260206004820152601260248201527f6f6e6c79206e65787420677561726469616e00000000000000000000000000006044820152606401610303565b6001546000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b6000546001600160a01b031633146109055760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9033bab0b93234b0b760991b6044820152606401610303565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461097a5760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9033bab0b93234b0b760991b6044820152606401610303565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602052604090205460ff166109de5760405163743f26e160e01b815260040160405180910390fd5b6000836001600160a01b03163484846040516109fb929190611ff7565b60006040518083038185875af1925050503d8060008114610a38576040519150601f19603f3d011682016040523d82523d6000602084013e610a3d565b606091505b5050905080610a8e5760405162461bcd60e51b815260206004820152601a60248201527f6d6179616e2070726f746f636f6c2063616c6c206661696c65640000000000006044820152606401610303565b7fb8543d214cab9591941648db8d40126a163bfd0db4a865678320b921e1398043848484604051610ac193929190612023565b60405180910390a150505050565b6000546001600160a01b03163314610b195760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9033bab0b93234b0b760991b6044820152606401610303565b6001600160a01b038116610b6f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610303565b6000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114610bbc576040519150601f19603f3d011682016040523d82523d6000602084013e610bc1565b606091505b5050905080610c125760405162461bcd60e51b815260206004820152600e60248201527f7061796d656e74206661696c65640000000000000000000000000000000000006044820152606401610303565b505050565b6001600160a01b03831660009081526003602052604090205460ff16610c505760405163743f26e160e01b815260040160405180910390fd5b610c5b8686866111ef565b610c6686848761129f565b6000836001600160a01b0316348484604051610c83929190611ff7565b60006040518083038185875af1925050503d8060008114610cc0576040519150601f19603f3d011682016040523d82523d6000602084013e610cc5565b606091505b5050905080610d165760405162461bcd60e51b815260206004820152601a60248201527f6d6179616e2070726f746f636f6c2063616c6c206661696c65640000000000006044820152606401610303565b7fbf150db6b4a14b084f7346b4bc300f552ce867afe55be27bce2d6b37e3307cda8787868686604051610d4d9594939291906120a6565b60405180910390a150505050505050565b6000546001600160a01b03163314610da85760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9033bab0b93234b0b760991b6044820152606401610303565b610c126001600160a01b038416828461167d565b6001600160a01b03881660009081526002602052604090205460ff161580610dfd57506001600160a01b03831660009081526003602052604090205460ff16155b15610e1b5760405163743f26e160e01b815260040160405180910390fd5b6001600160a01b038516610e7c5760405162461bcd60e51b815260206004820152602260248201527f6d6964646c65546f6b656e2063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610303565b88341015610ecc5760405162461bcd60e51b815260206004820152601560248201527f696e73756666696369656e7420616d6f756e74496e00000000000000000000006044820152606401610303565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a082319060240160206040518083038186803b158015610f0e57600080fd5b505afa158015610f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f469190611eb3565b90506000896001600160a01b03168b8a8a604051610f65929190611ff7565b60006040518083038185875af1925050503d8060008114610fa2576040519150601f19603f3d011682016040523d82523d6000602084013e610fa7565b606091505b5050905080610ff85760405162461bcd60e51b815260206004820152601060248201527f737761702063616c6c206661696c6564000000000000000000000000000000006044820152606401610303565b6040516370a0823160e01b815230600482015282906001600160a01b038916906370a082319060240160206040518083038186803b15801561103957600080fd5b505afa15801561104d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110719190611eb3565b61107b9190612172565b9150858210156110cd5760405162461bcd60e51b815260206004820152601960248201527f696e73756666696369656e74206d6964646c6520746f6b656e000000000000006044820152606401610303565b6110d887868461129f565b60006110e585858561135f565b90506001600160a01b0386166110fb8d34612172565b826040516111099190612007565b60006040518083038185875af1925050503d8060008114611146576040519150601f19603f3d011682016040523d82523d6000602084013e61114b565b606091505b5050809250508161119e5760405162461bcd60e51b815260206004820152601a60248201527f6d6179616e2070726f746f636f6c2063616c6c206661696c65640000000000006044820152606401610303565b7f7cbff921ae1f3ea71284120d2aabde13587df067f2bb5c831ea6e35d7a9242ac8c8c8a868a8a8a6040516111d9979695949392919061210c565b60405180910390a1505050505050505050505050565b604051636eb1769f60e11b81523360048201523060248201526000906001600160a01b0385169063dd62ed3e9060440160206040518083038186803b15801561123757600080fd5b505afa15801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190611eb3565b9050828110156112845761128484338461170d565b6112996001600160a01b0385163330866117dd565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152849160009183169063dd62ed3e9060440160206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113239190611eb3565b905082811015611358576113426001600160a01b038316856000611815565b6113586001600160a01b03831685600019611815565b5050505050565b606060448310156113b25760405162461bcd60e51b815260206004820152601460248201527f4d6179616e206461746120746f6f2073686f72740000000000000000000000006044820152606401610303565b60008367ffffffffffffffff8111156113db57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611405576020820181803683370190505b50905060005b60248110156114875785858281811061143457634e487b7160e01b600052603260045260246000fd5b9050013560f81c60f81b82828151811061145e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053508061147f816121b5565b91505061140b565b5060008360405160200161149d91815260200190565b604051602081830303815290604052905060005b6020811015611554578181815181106114da57634e487b7160e01b600052603260045260246000fd5b01602001517fff00000000000000000000000000000000000000000000000000000000000000168361150d83602461215a565b8151811061152b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053508061154c816121b5565b9150506114b1565b5060445b858110156115d35786868281811061158057634e487b7160e01b600052603260045260246000fd5b9050013560f81c60f81b8382815181106115aa57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350806115cb816121b5565b915050611558565b509095945050505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561162057600080fd5b505afa158015611634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116589190611eb3565b905081811115610c1257610c12336116708484612172565b6001600160a01b03861691905b6040516001600160a01b038316602482015260448101829052610c1290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611940565b6001600160a01b03831663d505accf8330843560208601356117356060880160408901611fad565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b1681526001600160a01b0395861660048201529490931660248501526044840191909152606483015260ff166084820152606084013560a4820152608084013560c482015260e401600060405180830381600087803b1580156117c057600080fd5b505af11580156117d4573d6000803e3d6000fd5b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526112999085906323b872dd60e01b906084016116a9565b80158061189e5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b15801561186457600080fd5b505afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190611eb3565b155b6119105760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610303565b6040516001600160a01b038316602482015260448101829052610c1290849063095ea7b360e01b906064016116a9565b6000611995826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a289092919063ffffffff16565b90508051600014806119b65750808060200190518101906119b69190611e97565b610c125760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610303565b6060611a378484600085611a3f565b949350505050565b606082471015611ab75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610303565b600080866001600160a01b03168587604051611ad39190612007565b60006040518083038185875af1925050503d8060008114611b10576040519150601f19603f3d011682016040523d82523d6000602084013e611b15565b606091505b5091509150611b2687838387611b31565b979650505050505050565b60608315611b9d578251611b96576001600160a01b0385163b611b965760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610303565b5081611a37565b611a378383815115611bb25781518083602001fd5b8060405162461bcd60e51b815260040161030391906120d9565b8035611bd7816121e6565b919050565b60008083601f840112611bed578182fd5b50813567ffffffffffffffff811115611c04578182fd5b602083019150836020828501011115611c1c57600080fd5b9250929050565b600060a08284031215611c34578081fd5b50919050565b600060208284031215611c4b578081fd5b8135611c56816121e6565b9392505050565b60008060408385031215611c6f578081fd5b8235611c7a816121e6565b91506020830135611c8a816121fe565b809150509250929050565b600080600060408486031215611ca9578081fd5b8335611cb4816121e6565b9250602084013567ffffffffffffffff811115611ccf578182fd5b611cdb86828701611bdc565b9497909650939450505050565b600080600060608486031215611cfc578283fd5b8335611d07816121e6565b9250602084013591506040840135611d1e816121e6565b809150509250925092565b6000806000806000806101208789031215611d42578182fd5b8635611d4d816121e6565b955060208701359450611d638860408901611c23565b935060e0870135611d73816121e6565b925061010087013567ffffffffffffffff811115611d8f578283fd5b611d9b89828a01611bdc565b979a9699509497509295939492505050565b60008060008060008060008060008060006101a08c8e031215611dce578485fd5b611dd88c356121e6565b8b359a5060208c01359950611df08d60408e01611c23565b9850611dff60e08d01356121e6565b60e08c0135975067ffffffffffffffff806101008e01351115611e20578586fd5b611e318e6101008f01358f01611bdc565b9098509650611e436101208e01611bcc565b95506101408d01359450611e5a6101608e01611bcc565b9350806101808e01351115611e6d578283fd5b50611e7f8d6101808e01358e01611bdc565b81935080925050509295989b509295989b9093969950565b600060208284031215611ea8578081fd5b8151611c56816121fe565b600060208284031215611ec4578081fd5b5051919050565b60008060408385031215611edd578182fd5b823591506020830135611c8a816121e6565b600080600080600080600080600060e08a8c031215611f0c578485fd5b8935985060208a0135611f1e816121e6565b975060408a013567ffffffffffffffff80821115611f3a578687fd5b611f468d838e01611bdc565b909950975060608c01359150611f5b826121e6565b90955060808b0135945060a08b013590611f74826121e6565b90935060c08b01359080821115611f89578384fd5b50611f968c828d01611bdc565b915080935050809150509295985092959850929598565b600060208284031215611fbe578081fd5b813560ff81168114611c56578182fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8183823760009101908152919050565b60008251612019818460208701612189565b9190910192915050565b6001600160a01b0384168152604060208201526000612046604083018486611fce565b95945050505050565b60006001600160a01b03808b1683528960208401528089166040840152808816606084015286608084015280861660a08401525060e060c083015261209860e083018486611fce565b9a9950505050505050505050565b60006001600160a01b03808816835286602084015280861660408401525060806060830152611b26608083018486611fce565b60208152600082518060208401526120f8816040850160208701612189565b601f01601f19169190910160400192915050565b87815260006001600160a01b038089166020840152808816604084015286606084015280861660808401525060c060a083015261214d60c083018486611fce565b9998505050505050505050565b6000821982111561216d5761216d6121d0565b500190565b600082821015612184576121846121d0565b500390565b60005b838110156121a457818101518382015260200161218c565b838111156112995750506000910152565b60006000198214156121c9576121c96121d0565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146121fb57600080fd5b50565b80151581146121fb57600080fdfea2646970667358221220aa760ac7a9842d8e53d45ecce4b79b9527bc3c56e2c857ddd8285f6735bd7a7764736f6c63430008040033000000000000000000000000933e3922e04d47a466e60a20e486b372b64f1ea8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000111111125421ca6dc452d289314280a0f8842a650000000000000000000000005e18824bb0e73bb9bd78e7b2d38a3289bccdee1d0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000875d6d37ec55c8cf220b9e5080717549d8aa8eca000000000000000000000000c38e4e6a15593f908255214653d3d947ca1c2338000000000000000000000000cbe9186a89db78714785765055e09dd6166e0833000000000000000000000000bf5f3f65102ae745a48bd521d10bab5bf02a9ef4