0 txs
0 calls
constructor
constructor(address _owner, address _entrypoint, address _switchboardRouter, address _swapExecutor, address _calldataRouter, address _permit2)
functions
beneficiarySettlements
viewfunction beneficiarySettlements(address beneficiary, address router, address token) view returns (uint256 amount)
CALLDATA_EXECUTOR
viewfunction CALLDATA_EXECUTOR() view returns (address)
ENTRYPOINT
viewfunction ENTRYPOINT() view returns (address)
FEE_COLLECTOR
viewfunction FEE_COLLECTOR() view returns (address)
getImpl
viewfunction getImpl(uint8 _implId) view returns (address)
getWhitelistedReceiver
viewfunction getWhitelistedReceiver(address router, uint256 destinationChainId) view returns (address)
hasRole
viewfunction hasRole(bytes32 role_, address address_) view returns (bool)
isBungeeRouter
viewfunction isBungeeRouter(address router) view returns (bool)
NATIVE_TOKEN_ADDRESS
viewfunction NATIVE_TOKEN_ADDRESS() view returns (address)
nominee
viewfunction nominee() view returns (address)
owner
viewfunction owner() view returns (address)
PERMIT2
viewfunction PERMIT2() view returns (address)
SWAP_EXECUTOR
viewfunction SWAP_EXECUTOR() view returns (address)
SWITCHBOARD_ROUTER
viewfunction SWITCHBOARD_ROUTER() view returns (address)
withdrawnRequests
viewfunction withdrawnRequests(bytes32 requestHash) view returns (tuple)
addBungeeRouter
nonpayablefunction addBungeeRouter(address _bungeeRouter)
addImpl
nonpayablefunction addImpl(uint8 _implId, address _newImplAddress) returns (uint8, address)
claimOwner
nonpayablefunction claimOwner()
executeImpl
payablefunction executeImpl(uint8 implId, bytes data) payable returns (bytes)
grantRole
nonpayablefunction grantRole(bytes32 role_, address grantee_)
inboundMsgFromSwitchboard
payablefunction inboundMsgFromSwitchboard(uint8 implId, uint32, bytes payload) payable
nominateOwner
nonpayablefunction nominateOwner(address nominee_)
receiveMsg
payablefunction receiveMsg(bytes payload) payable
removeImpl
nonpayablefunction removeImpl(uint8 _implId)
rescue
nonpayablefunction rescue(address token, address to, uint256 amount)
revokeRole
nonpayablefunction revokeRole(bytes32 role_, address revokee_)
setCalldataExecutor
nonpayablefunction setCalldataExecutor(address _calldataExecutor)
setEntrypoint
nonpayablefunction setEntrypoint(address _entrypoint)
setFeeCollector
nonpayablefunction setFeeCollector(address _feeCollector)
setSwapExecutor
nonpayablefunction setSwapExecutor(address _swapExecutor)
setSwitchboardRouter
nonpayablefunction setSwitchboardRouter(address _switchboardRouter)
setWhitelistedReceiver
nonpayablefunction setWhitelistedReceiver(address receiver, uint256 destinationChainId, address router)
withdrawBeneficiarySettlement
nonpayablefunction withdrawBeneficiarySettlement(address beneficiary, address router, address token)
events
CalldataExecutionFailed
event CalldataExecutionFailed(bytes32 requestHash, address to, bytes encodedData, uint256 minDestGasLimit)
ImplAdded
event ImplAdded(uint32 indexed implId, address implAddress)
ImplRemoved
event ImplRemoved(uint32 indexed implId, address prevImplAddress)
OwnerClaimed
event OwnerClaimed(address indexed claimer)
OwnerNominated
event OwnerNominated(address indexed nominee)
RequestCancelled
event RequestCancelled(bytes32 indexed requestHash, address token, uint256 amount, address to)
RequestCancelledOnDestination
event RequestCancelledOnDestination(bytes32 requestHash, uint8 implId, address transmitter, uint256 outboundFees)
RequestExtracted
event RequestExtracted(bytes32 indexed requestHash, uint8 implId, address transmitter, bytes execution)
RequestFulfilled
event RequestFulfilled(bytes32 indexed requestHash, uint8 implId, address fulfiller, bytes execution)
RequestSettled
event RequestSettled(bytes32 indexed requestHash)
RequestSettlementFailed
event RequestSettlementFailed(bytes32 indexed requestHash, bytes4 _error)
RequestsSettledOnDestination
event RequestsSettledOnDestination(bytes32[] requestHashes, uint8 implId, address transmitter, uint256 outboundFees)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed grantee)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed revokee)
errors
ImplAlreadyRegistered
error ImplAlreadyRegistered()
InvalidAddress
error InvalidAddress()
InvalidMsg
error InvalidMsg()
InvalidTokenAddress
error InvalidTokenAddress()
NoPermit
error NoPermit(bytes32 role)
OnlyNominee
error OnlyNominee()
OnlyOwner
error OnlyOwner()
Reentrancy
error Reentrancy()
RouterAlreadyRegistered
error RouterAlreadyRegistered()
ZeroAddress
error ZeroAddress()
creation bytecode
0x60c0604052635ba303c560e11b60a0523480156200001c57600080fd5b5060405162001b3138038062001b318339810160408190526200003f91620001d6565b858181806200004e816200010b565b50506001600160a01b031660805250620000897fc4c453d647953c0fd35db5a34ee76e60fb4abc3a8fb891a25936b70b38f29253876200015e565b620000b57f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f5876200015e565b50600380546001600160a01b039586166001600160a01b03199182161790915560048054948616948216949094179093556005805492851692841692909217909155600680549190931691161790555062000257565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b60008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551909184917f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f39190a35050565b80516001600160a01b0381168114620001d157600080fd5b919050565b60008060008060008060c08789031215620001f057600080fd5b620001fb87620001b9565b95506200020b60208801620001b9565b94506200021b60408801620001b9565b93506200022b60608801620001b9565b92506200023b60808801620001b9565b91506200024b60a08801620001b9565b90509295509295509295565b60805160a0516118b46200027d6000396000610fd6015260006105c501526118b46000f3fe6080604052600436106101f25760003560e01c80636afdd8501161010d578063a42dce80116100a0578063d547741f1161006f578063d547741f1461074e578063df2ebdbb1461076e578063e8eb3cc614610796578063e9899ed2146107b6578063ee512517146107d6576101f9565b8063a42dce80146106e8578063b746078a14610708578063c66eaeb61461071b578063c7bfb9ce1461072e576101f9565b80638da5cb5b116100dc5780638da5cb5b1461066a57806391d148541461068857806397a3deca146106a85780639ed0cb13146106c8576101f9565b80636afdd850146105b3578063733957f8146105e757806374f8d3fd146106075780637f660b011461064a576101f9565b8063276a2ced116101855780633de408a1116101545780633de408a1146104855780635b94db27146104d15780636a0706db146104f15780636a7372da14610511576101f9565b8063276a2ced146104105780632f2ff15d1461043057806331feeadd146104505780633bd1adec14610470576101f9565b80630e4bfd6e116101c15780630e4bfd6e146103675780631e789c361461038757806320f99c0a146103d057806320ff430b146103ee576101f9565b80630341ac35146102905780630472a61d146102d65780630b345879146103275780630cb352e014610347576101f9565b366101f957005b3068929eee149b4bd2126854036102185763ab143c066000526004601cfd5b3068929eee149b4bd21268556000803560e01c60ff168152600860205260409020546001600160a01b0316806102615760405163e6c4247b60e01b815260040160405180910390fd5b6060600436036004600037600080600436036000855af490503d6000803e80801561028b573d6000f35b3d6000fd5b34801561029c57600080fd5b506102b06102ab3660046114c1565b6107f6565b6040805160ff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156102e257600080fd5b5061030f6102f13660046114f4565b60ff166000908152600860205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016102cd565b34801561033357600080fd5b5060055461030f906001600160a01b031681565b34801561035357600080fd5b5060065461030f906001600160a01b031681565b34801561037357600080fd5b5060045461030f906001600160a01b031681565b34801561039357600080fd5b506103c06103a236600461150f565b6001600160a01b03166000908152600b602052604090205460ff1690565b60405190151581526020016102cd565b3480156103dc57600080fd5b506001546001600160a01b031661030f565b3480156103fa57600080fd5b5061040e61040936600461152a565b610912565b005b61042361041e3660046115af565b610997565b6040516102cd9190611626565b34801561043c57600080fd5b5061040e61044b366004611659565b610a83565b34801561045c57600080fd5b5061040e61046b36600461167c565b610abc565b34801561047c57600080fd5b5061040e610bc8565b34801561049157600080fd5b506104c36104a036600461167c565b600d60209081526000938452604080852082529284528284209052825290205481565b6040519081526020016102cd565b3480156104dd57600080fd5b5061040e6104ec36600461150f565b610bfe565b3480156104fd57600080fd5b5061040e61050c36600461150f565b610c73565b34801561051d57600080fd5b5061058361052c3660046116bf565b604080516060808201835260008083526020808401829052928401819052938452600c8252928290208251938401835280546001600160a01b03908116855260018201549285019290925260020154169082015290565b6040805182516001600160a01b0390811682526020808501519083015292820151909216908201526060016102cd565b3480156105bf57600080fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f357600080fd5b5061040e61060236600461150f565b610ce6565b34801561061357600080fd5b5061030f6106223660046116d8565b6001600160a01b039182166000908152600a6020908152604080832093835292905220541690565b34801561065657600080fd5b5060075461030f906001600160a01b031681565b34801561067657600080fd5b506000546001600160a01b031661030f565b34801561069457600080fd5b506103c06106a3366004611659565b610d59565b3480156106b457600080fd5b5061040e6106c336600461150f565b610d87565b3480156106d457600080fd5b5061040e6106e3366004611702565b610e36565b3480156106f457600080fd5b5061040e61070336600461150f565b610ec4565b61040e610716366004611735565b610f37565b61040e610729366004611777565b610f62565b34801561073a57600080fd5b5061040e6107493660046114f4565b6110ad565b34801561075a57600080fd5b5061040e610769366004611659565b611176565b34801561077a57600080fd5b5061030f73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156107a257600080fd5b5060035461030f906001600160a01b031681565b3480156107c257600080fd5b5061040e6107d136600461150f565b6111ab565b3480156107e257600080fd5b5061040e6107f136600461150f565b61121e565b33600090815260008051602061183f8339815191526020526040812054819060008051602061185f8339815191529060ff1661084d5760405163962f633360e01b8152600481018290526024015b60405180910390fd5b60ff85166000908152600860205260409020546001600160a01b031680151580610888575060ff808716600090815260096020526040902054165b156108a6576040516373bfafa960e01b815260040160405180910390fd5b60ff861660008181526008602090815260409182902080546001600160a01b0319166001600160a01b038a1690811790915591519182527f891e2f61914a277b540f6cbff39daf187f334f204a2576ff5e72303d1cf2ce8b910160405180910390a25093949293505050565b3360009081527f4933f7bec34ee32db93e9f5cd7e0519781b395282211f4f6857489046ea38f7660205260409020547fc4c453d647953c0fd35db5a34ee76e60fb4abc3a8fb891a25936b70b38f292539060ff166109865760405163962f633360e01b815260048101829052602401610844565b610991848484611291565b50505050565b60603068929eee149b4bd2126854036109b85763ab143c066000526004601cfd5b3068929eee149b4bd212685560ff84166000908152600860205260409020546001600160a01b0316806109fe5760405163e6c4247b60e01b815260040160405180910390fd5b600080826001600160a01b03168686604051610a1b9291906117e3565b600060405180830381855af49150503d8060008114610a56576040519150601f19603f3d011682016040523d82523d6000602084013e610a5b565b606091505b509150915081610a6d57805160208201fd5b3868929eee149b4bd21268559695505050505050565b6000546001600160a01b03163314610aae57604051635fc483c560e01b815260040160405180910390fd5b610ab88282611322565b5050565b3068929eee149b4bd212685403610adb5763ab143c066000526004601cfd5b3068929eee149b4bd21268556001600160a01b038084166000908152600d6020908152604080832086851684528252808320938516835292905220548015610bb6576001600160a01b038481166000818152600d60209081526040808320888616808552908352818420958816808552959092528083209290925590516362524dd760e01b81526004810193909352602483018490526044830191909152906362524dd790606401600060405180830381600087803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050505b503868929eee149b4bd2126855505050565b6001546001600160a01b03163314610bf357604051637c91ccdd60e01b815260040160405180910390fd5b610bfc3361137d565b565b6000546001600160a01b03163314610c2957604051635fc483c560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff16610cc35760405163962f633360e01b815260048101829052602401610844565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff16610d365760405163962f633360e01b815260048101829052602401610844565b50600680546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff165b9392505050565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff16610dd75760405163962f633360e01b815260048101829052602401610844565b6001600160a01b0382166000908152600b602052604090205460ff1615610e1157604051633ba24ff960e11b815260040160405180910390fd5b506001600160a01b03166000908152600b60205260409020805460ff19166001179055565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff16610e865760405163962f633360e01b815260048101829052602401610844565b506001600160a01b039081166000908152600a60209081526040808320948352939052919091208054919092166001600160a01b0319909116179055565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff16610f145760405163962f633360e01b815260048101829052602401610844565b50600780546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b03163314610ab857604051631bd147a760e01b815260040160405180910390fd5b3068929eee149b4bd212685403610f815763ab143c066000526004601cfd5b3068929eee149b4bd212685560ff84166000908152600860205260409020546001600160a01b031680610fc757604051631bd147a760e01b815260040160405180910390fd5b600080826001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000086866040516024016110089291906117f3565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516110469190611822565b600060405180830381855af49150503d8060008114611081576040519150601f19603f3d011682016040523d82523d6000602084013e611086565b606091505b50915091508161109857805160208201fd5b5050503868929eee149b4bd212685550505050565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff166110fd5760405163962f633360e01b815260048101829052602401610844565b60ff8216600081815260086020908152604080832080546001600160a01b031981169091556009835292819020805460ff19166001179055516001600160a01b0390921680835292917f21f97cc4493d15a39bb3e09017843c80cc31e5f6d3e35769cbde2d51caf993ab910160405180910390a2505050565b6000546001600160a01b031633146111a157604051635fc483c560e01b815260040160405180910390fd5b610ab882826113d0565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff166111fb5760405163962f633360e01b815260048101829052602401610844565b50600480546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260008051602061183f833981519152602052604090205460008051602061185f8339815191529060ff1661126e5760405163962f633360e01b815260048101829052602401610844565b50600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166112b85760405163d92e233d60e01b815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016112ec576112e78282611428565b505050565b826001600160a01b03163b60000361131757604051630f58058360e11b815260040160405180910390fd5b6112e7838383611444565b60008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551909184917f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f39190a35050565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b60008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551909184917f155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a529190a35050565b60003860003884865af1610ab85763b12d13eb6000526004601cfd5b816014528060345263a9059cbb60601b60005260206000604460106000875af1806001600051141661148957803d853b151710611489576390b8ec186000526004601cfd5b506000603452505050565b803560ff811681146114a557600080fd5b919050565b80356001600160a01b03811681146114a557600080fd5b600080604083850312156114d457600080fd5b6114dd83611494565b91506114eb602084016114aa565b90509250929050565b60006020828403121561150657600080fd5b610d8082611494565b60006020828403121561152157600080fd5b610d80826114aa565b60008060006060848603121561153f57600080fd5b611548846114aa565b9250611556602085016114aa565b9150604084013590509250925092565b60008083601f84011261157857600080fd5b50813567ffffffffffffffff81111561159057600080fd5b6020830191508360208285010111156115a857600080fd5b9250929050565b6000806000604084860312156115c457600080fd5b6115cd84611494565b9250602084013567ffffffffffffffff8111156115e957600080fd5b6115f586828701611566565b9497909650939450505050565b60005b8381101561161d578181015183820152602001611605565b50506000910152565b6020815260008251806020840152611645816040850160208701611602565b601f01601f19169190910160400192915050565b6000806040838503121561166c57600080fd5b823591506114eb602084016114aa565b60008060006060848603121561169157600080fd5b61169a846114aa565b92506116a8602085016114aa565b91506116b6604085016114aa565b90509250925092565b6000602082840312156116d157600080fd5b5035919050565b600080604083850312156116eb57600080fd5b6116f4836114aa565b946020939093013593505050565b60008060006060848603121561171757600080fd5b611720846114aa565b9250602084013591506116b6604085016114aa565b6000806020838503121561174857600080fd5b823567ffffffffffffffff81111561175f57600080fd5b61176b85828601611566565b90969095509350505050565b6000806000806060858703121561178d57600080fd5b61179685611494565b9350602085013563ffffffff811681146117af57600080fd5b9250604085013567ffffffffffffffff8111156117cb57600080fd5b6117d787828801611566565b95989497509550505050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60008251611834818460208701611602565b919091019291505056fe01e90903605908818f4785c46825db30465c70bc0545136a320d85d90661836182db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f5a2646970667358221220b708841c09e43c957adf4ea73f6f9dd5c0e23c746d29ae4d6fb20754b1a9191e64736f6c63430008130033000000000000000000000000daee4d2156de6fe6f7d50ca047136d758f96a6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033c7fce03a533ad3f11c4b056553c5ed0cf51a0000000000000000000000000010adcef9619d9c957c54a9dc6091f007fa5532630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3