0 txs
0 calls
constructor
constructor()
functions
EVERCLEAR_GATEWAY
viewfunction EVERCLEAR_GATEWAY() view returns (bytes32)
EVERCLEAR_ID
viewfunction EVERCLEAR_ID() view returns (uint32)
interchainSecurityModule
viewfunction interchainSecurityModule() view returns (address)
isAuthorizedGasReceiver
viewfunction isAuthorizedGasReceiver(address _address) view returns (bool)
mailbox
viewfunction mailbox() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
quoteMessage
viewfunction quoteMessage(uint32 _chainId, bytes _message, uint256 _gasLimit) view returns (uint256 _fee)
receiver
viewfunction receiver() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
authorizeGasReceiver
nonpayablefunction authorizeGasReceiver(address _receiver, bool _authorized)
handle
payablefunction handle(uint32 _origin, bytes32 _sender, bytes _message) payable
initialize
nonpayablefunction initialize(address _owner, address _mailbox, address _receiver, address _interchainSecurityModule, uint32 _everclearId, bytes32 _hubGateway)
renounceOwnership
nonpayablefunction renounceOwnership()
sendMessage
nonpayablefunction sendMessage(uint32 _chainId, bytes _message, uint256 _fee, uint256 _gasLimit) returns (bytes32 _messageId, uint256 _feeSpent)
sendMessage
payablefunction sendMessage(uint32 _chainId, bytes _message, uint256 _gasLimit) payable returns (bytes32 _messageId, uint256 _feeSpent)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateMailbox
nonpayablefunction updateMailbox(address _newMailbox)
updateSecurityModule
nonpayablefunction updateSecurityModule(address _newSecurityModule)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdrawGas
nonpayablefunction withdrawGas(uint256 _amount)
events
GasReceiverAuthorized
event GasReceiverAuthorized(address indexed _address, bool _authorized)
GasTankDeposited
event GasTankDeposited(address indexed _sender, uint256 _amount)
GasTankSpent
event GasTankSpent(uint256 indexed _amount)
GasTankWithdrawn
event GasTankWithdrawn(address indexed _sender, uint256 _amount)
Initialized
event Initialized(uint64 version)
MailboxUpdated
event MailboxUpdated(address _oldMailbox, address _newMailbox)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SecurityModuleUpdated
event SecurityModuleUpdated(address _oldSecurityModule, address _newSecurityModule)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
GasTank_CallFailed
error GasTank_CallFailed()
GasTank_InsufficientFunds
error GasTank_InsufficientFunds()
GasTank_NotAuthorized
error GasTank_NotAuthorized()
Gateway_Handle_InvalidOriginDomain
error Gateway_Handle_InvalidOriginDomain()
Gateway_Handle_InvalidSender
error Gateway_Handle_InvalidSender()
Gateway_Handle_NotCalledByMailbox
error Gateway_Handle_NotCalledByMailbox()
Gateway_SendMessage_InsufficientBalance
error Gateway_SendMessage_InsufficientBalance()
Gateway_SendMessage_UnauthorizedCaller
error Gateway_SendMessage_UnauthorizedCaller()
Gateway_SendMessage_UnsuccessfulRebate
error Gateway_SendMessage_UnsuccessfulRebate()
Gateway_ZeroAddress
error Gateway_ZeroAddress()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015610013575f80fd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516121b36100f95f395f818161117f015281816111a801526113c901526121b35ff3fe608060405260043610610165575f3560e01c80638a901b9f116100c6578063a197da4d1161007c578063de523cf311610057578063de523cf3146104a6578063f2fde38b146104d2578063f7260d3e146104f1575f80fd5b8063a197da4d14610410578063ad3cb1cc14610425578063d5438eae1461047a575f80fd5b80638e06fb01116100ac5780638e06fb01146103b357806391657544146103d257806391a3ef8e146103f1575f80fd5b80638a901b9f1461032a5780638da5cb5b14610349575f80fd5b80634f1ef2861161011b57806356d5d4751161010157806356d5d475146102ba5780635ff9a874146102cd578063715018a614610316575f80fd5b80634f1ef2861461029357806352d1902d146102a6575f80fd5b806325ce64d41161014b57806325ce64d41461020b5780633e8c42941461025f5780634c21304614610272575f80fd5b80630278681b146101a557806304e77a66146101d7575f80fd5b366101a15760405134815233907f8437e9071307a6ed5c1b1507bf6386fd36cc68f2353e96746596c0faa2b3d2b29060200160405180910390a2005b5f80fd5b3480156101b0575f80fd5b506101c46101bf366004611c94565b61051d565b6040519081526020015b60405180910390f35b3480156101e2575f80fd5b506101f66101f1366004611cea565b6105ee565b604080519283526020830191909152016101ce565b348015610216575f80fd5b5061024f610225366004611d6d565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205460ff1690565b60405190151581526020016101ce565b6101f661026d366004611c94565b610790565b34801561027d575f80fd5b5061029161028c366004611d86565b610961565b005b6102916102a1366004611dec565b6109f1565b3480156102b1575f80fd5b506101c4610a10565b6102916102c8366004611ec6565b610a3e565b3480156102d8575f80fd5b506003546103019074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016101ce565b348015610321575f80fd5b50610291610b24565b348015610335575f80fd5b50610291610344366004611d6d565b610b37565b348015610354575f80fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ce565b3480156103be575f80fd5b506102916103cd366004611f1c565b610c60565b3480156103dd575f80fd5b506102916103ec366004611f85565b610e32565b3480156103fc575f80fd5b5061029161040b366004611d6d565b610f65565b34801561041b575f80fd5b506101c460045481565b348015610430575f80fd5b5061046d6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101ce9190611fe8565b348015610485575f80fd5b5060015461038e9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104b1575f80fd5b5060035461038e9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104dd575f80fd5b506102916104ec366004611d6d565b61103c565b3480156104fc575f80fd5b5060025461038e9073ffffffffffffffffffffffffffffffffffffffff1681565b5f806105395f843060405180602001604052805f8152506110a4565b90505f61054560045490565b6001546040517ff7ccd32100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063f7ccd321906105a4908a9085908b908b908990600401612041565b602060405180830381865afa1580156105bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e39190612084565b979650505050505050565b6002545f90819073ffffffffffffffffffffffffffffffffffffffff163314610643576040517f1d5ae81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61064d60045490565b905047851115610689576040517fe996a60000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790505f6106a85f873060405180602001604052805f8152506110a4565b6001546040517f48aee8d400000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff16906348aee8d4908990610709908e9088908f908f908990600401612041565b60206040518083038185885af1158015610725573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074a9190612084565b9450610756478361209b565b60405190945084907fe50b75e9bedca4a9e31f6eeea1c322891458504a214bc78a388efafa091b53e5905f90a25050509550959350505050565b6002545f90819073ffffffffffffffffffffffffffffffffffffffff1633146107e5576040517f1d5ae81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107ef60045490565b90505f4790505f6108105f873060405180602001604052805f8152506110a4565b6001546040517f48aee8d400000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff16906348aee8d4903490610871908d9088908e908e908990600401612041565b60206040518083038185885af115801561088d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108b29190612084565b94506108be478361209b565b93505f6108cb853461209b565b90508015610954576040515f90329083908381818185875af1925050503d805f8114610912576040519150601f19603f3d011682016040523d82523d5f602084013e610917565b606091505b5050905080610952576040517f303a6d6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b5050505094509492505050565b6109696110d9565b73ffffffffffffffffffffffffffffffffffffffff82165f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f1655281a93906ab6c6bc320eaf893bb592ab753f9279358d763c17a7589d46b491015b60405180910390a25050565b6109f9611167565b610a028261126b565b610a0c8282611273565b5050565b5f610a196113b1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a8f576040517f4b46abf500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a998484611420565b6002546040517ff953cec700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063f953cec790610af190859085906004016120d3565b5f604051808303815f87803b158015610b08575f80fd5b505af1158015610b1a573d5f803e3d5ffd5b5050505050505050565b610b2c6110d9565b610b355f6114b7565b565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b88576040517f1d5ae81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f819003610bd9576040517fa006155600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8481167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527fc9f808ed2d4877daa57900b86147cc4d4c05e37ac36bc6d417d387dfc3f3e6a7910160405180910390a1505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610caa5750825b90505f8267ffffffffffffffff166001148015610cc65750303b155b905081158015610cd4575080155b15610d0b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610d6c5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610d788b8b8b8b61154c565b600380547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8a160217905560048690558315610e255784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b335f9081526020819052604090205460ff16610e7a576040517f4785376100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b47811115610eb4576040517fc83517b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040515f90339083908381818185875af1925050503d805f8114610ef3576040519150601f19603f3d011682016040523d82523d5f602084013e610ef8565b606091505b5050905080610f33576040517fce6c5c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405182815233907f7bfcd5a30e8ef1d41d21d17f77f4ed8ca27269ce7ead40296c8f0934f4f61b6e906020016109e5565b60025473ffffffffffffffffffffffffffffffffffffffff163314610fb6576040517f1d5ae81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f9261756417ba2a99d4ba8e96f1e45b7b17e5ebeee305c9d44945ce6f46d73734910160405180910390a15050565b6110446110d9565b73ffffffffffffffffffffffffffffffffffffffff8116611098576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b6110a1816114b7565b50565b60606001858585856040516020016110c0959493929190612105565b6040516020818303038152906040529050949350505050565b336111187f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161108f565b3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148061123457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661121b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610b35576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110a16110d9565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112f8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526112f591810190612084565b60015b611346576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260240161108f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146113a2576040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004810182905260240161108f565b6113ac838361172f565b505050565b3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b35576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035463ffffffff83811674010000000000000000000000000000000000000000909204161461147c576040517f4808c18100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004548114610a0c576040517f4da19d7000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156115965750825b90505f8267ffffffffffffffff1660011480156115b25750303b155b9050811580156115c0575080155b156115f7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156116585784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001805473ffffffffffffffffffffffffffffffffffffffff808b167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255600280548a841690831617905560038054928916929091169190911790556116c389611791565b83156117245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6117388261195c565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611789576113ac8282611a2a565b610a0c611aab565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156117db5750825b90505f8267ffffffffffffffff1660011480156117f75750303b155b905081158015611805575080155b1561183c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561189d5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6118a686611ae3565b73ffffffffffffffffffffffffffffffffffffffff86165f90815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905583156119545784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b8073ffffffffffffffffffffffffffffffffffffffff163b5f036119c4576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260240161108f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60605f808473ffffffffffffffffffffffffffffffffffffffff1684604051611a539190612172565b5f60405180830381855af49150503d805f8114611a8b576040519150601f19603f3d011682016040523d82523d5f602084013e611a90565b606091505b5091509150611aa0858383611af4565b925050505b92915050565b3415610b35576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611aeb611b86565b6110a181611bed565b606082611b0957611b0482611bf5565b611b7f565b8151158015611b2d575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611b7c576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161108f565b50805b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610b35576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611044611b86565b805115611c055780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803563ffffffff81168114611c4a575f80fd5b919050565b5f8083601f840112611c5f575f80fd5b50813567ffffffffffffffff811115611c76575f80fd5b602083019150836020828501011115611c8d575f80fd5b9250929050565b5f805f8060608587031215611ca7575f80fd5b611cb085611c37565b9350602085013567ffffffffffffffff811115611ccb575f80fd5b611cd787828801611c4f565b9598909750949560400135949350505050565b5f805f805f60808688031215611cfe575f80fd5b611d0786611c37565b9450602086013567ffffffffffffffff811115611d22575f80fd5b611d2e88828901611c4f565b9699909850959660408101359660609091013595509350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c4a575f80fd5b5f60208284031215611d7d575f80fd5b611b7f82611d4a565b5f8060408385031215611d97575f80fd5b611da083611d4a565b915060208301358015158114611db4575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8060408385031215611dfd575f80fd5b611e0683611d4a565b9150602083013567ffffffffffffffff80821115611e22575f80fd5b818501915085601f830112611e35575f80fd5b813581811115611e4757611e47611dbf565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611e8d57611e8d611dbf565b81604052828152886020848701011115611ea5575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f805f8060608587031215611ed9575f80fd5b611ee285611c37565b935060208501359250604085013567ffffffffffffffff811115611f04575f80fd5b611f1087828801611c4f565b95989497509550505050565b5f805f805f8060c08789031215611f31575f80fd5b611f3a87611d4a565b9550611f4860208801611d4a565b9450611f5660408801611d4a565b9350611f6460608801611d4a565b9250611f7260808801611c37565b915060a087013590509295509295509295565b5f60208284031215611f95575f80fd5b5035919050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f611b7f6020830184611f9c565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff86168152846020820152608060408201525f612066608083018587611ffa565b82810360608401526120788185611f9c565b98975050505050505050565b5f60208284031215612094575f80fd5b5051919050565b81810381811115611aa5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b602081525f6120e6602083018486611ffa565b949350505050565b5f81518060208401855e5f93019283525090919050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b1660428201525f6105e360568301846120ee565b5f611b7f82846120ee56fea2646970667358221220d8c438241856f1058e9936b6a05c7cbf06624d30062986854ea205329e8a77da64736f6c63430008190033