0 txs
0 calls
constructor
constructor(address token_, address owner_, address plug_)
functions
getCurrentLockLimit
viewfunction getCurrentLockLimit(uint32 siblingChainSlug_) view returns (uint256)
getCurrentUnlockLimit
viewfunction getCurrentUnlockLimit(uint32 siblingChainSlug_) view returns (uint256)
getLockLimitParams
viewfunction getLockLimitParams(uint32 siblingChainSlug_) view returns (tuple)
getUnlockLimitParams
viewfunction getUnlockLimitParams(uint32 siblingChainSlug_) view returns (tuple)
hasRole
viewfunction hasRole(bytes32 role_, address address_) view returns (bool)
nominee
viewfunction nominee() view returns (address)
owner
viewfunction owner() view returns (address)
pendingUnlocks
viewfunction pendingUnlocks(uint32, address) view returns (uint256)
plug__
viewfunction plug__() view returns (address)
siblingPendingUnlocks
viewfunction siblingPendingUnlocks(uint32) view returns (uint256)
token__
viewfunction token__() view returns (address)
bridge
payablefunction bridge(address receiver_, uint32 siblingChainSlug_, uint256 amount_, uint256 msgGasLimit_) payable
claimOwner
nonpayablefunction claimOwner()
grantRole
nonpayablefunction grantRole(bytes32 role_, address grantee_)
inbound
payablefunction inbound(uint32 siblingChainSlug_, bytes payload_) payable
nominateOwner
nonpayablefunction nominateOwner(address nominee_)
rescueFunds
nonpayablefunction rescueFunds(address token_, address rescueTo_, uint256 amount_)
revokeRole
nonpayablefunction revokeRole(bytes32 role_, address revokee_)
unlockPendingFor
nonpayablefunction unlockPendingFor(address receiver_, uint32 siblingChainSlug_)
updateLimitParams
nonpayablefunction updateLimitParams(tuple[] updates_)
events
LimitParamsUpdated
event LimitParamsUpdated((bool isLock, uint32 siblingChainSlug, uint256 maxLimit, uint256 ratePerSecond)[] updates)
OwnerClaimed
event OwnerClaimed(address indexed claimer)
OwnerNominated
event OwnerNominated(address indexed nominee)
PendingTokensTransferred
event PendingTokensTransferred(uint32 siblingChainSlug, address receiver, uint256 unlockedAmount, uint256 pendingAmount)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed grantee)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed revokee)
TokensDeposited
event TokensDeposited(uint32 siblingChainSlug, address depositor, address receiver, uint256 depositAmount)
TokensPending
event TokensPending(uint32 siblingChainSlug, address receiver, uint256 pendingAmount, uint256 totalPendingAmount)
TokensUnlocked
event TokensUnlocked(uint32 siblingChainSlug, address receiver, uint256 unlockedAmount)
errors
AmountOutsideLimit
error AmountOutsideLimit()
InvalidTokenAddress
error InvalidTokenAddress()
NoPermit
error NoPermit(bytes32 role)
NotPlug
error NotPlug()
OnlyNominee
error OnlyNominee()
OnlyOwner
error OnlyOwner()
SiblingChainSlugUnavailable
error SiblingChainSlugUnavailable()
ZeroAddress
error ZeroAddress()
ZeroAmount
error ZeroAmount()
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162001f3738038062001f378339810160408190526200003491620000de565b818062000041816200006e565b50506001600160a01b03928316608052600380546001600160a01b03191691909316179091555062000128565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b80516001600160a01b0381168114620000d957600080fd5b919050565b600080600060608486031215620000f457600080fd5b620000ff84620000c1565b92506200010f60208501620000c1565b91506200011f60408501620000c1565b90509250925092565b608051611dde62000159600039600081816102cf0152818161068d01528181610f4f01526110f10152611dde6000f3fe60806040526004361061015e5760003560e01c80636ccae054116100c0578063c41f1f6c11610074578063d547741f11610059578063d547741f14610437578063d584c34014610457578063d894c2921461047757600080fd5b8063c41f1f6c14610404578063cfeac8211461041757600080fd5b806391d14854116100a557806391d1485414610394578063a1284a47146103c4578063b8857ce2146103e457600080fd5b80636ccae054146103495780638da5cb5b1461036957600080fd5b806340f9606b1161011757806349eec51e116100fc57806349eec51e146102bd5780635b94db27146102f1578063650bba191461031157600080fd5b806340f9606b1461027d578063424ad5881461029057600080fd5b806320f99c0a1161014857806320f99c0a146101fa5780632f2ff15d146102465780633bd1adec1461026857600080fd5b8062fbc84e14610163578063090e7ec7146101bf575b600080fd5b34801561016f57600080fd5b5061018361017e366004611844565b610497565b6040516101b691908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b60405180910390f35b3480156101cb57600080fd5b506101ec6101da366004611844565b60056020526000908152604090205481565b6040519081526020016101b6565b34801561020657600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b6565b34801561025257600080fd5b50610266610261366004611884565b61050d565b005b34801561027457600080fd5b5061026661056c565b61026661028b3660046118b4565b6105c8565b34801561029c57600080fd5b506003546102219073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102c957600080fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b3480156102fd57600080fd5b5061026661030c3660046118f8565b610871565b34801561031d57600080fd5b506101ec61032c366004611915565b600460209081526000928352604080842090915290825290205481565b34801561035557600080fd5b50610266610364366004611941565b610931565b34801561037557600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610221565b3480156103a057600080fd5b506103b46103af366004611884565b6109d4565b60405190151581526020016101b6565b3480156103d057600080fd5b506102666103df366004611982565b610a0f565b3480156103f057600080fd5b506101ec6103ff366004611844565b610d2c565b610266610412366004611a26565b610d50565b34801561042357600080fd5b50610266610432366004611b06565b610fda565b34801561044357600080fd5b50610266610452366004611884565b611178565b34801561046357600080fd5b50610183610472366004611844565b6111d3565b34801561048357600080fd5b506101ec610492366004611844565b611249565b6104c26040518060800160405280600081526020016000815260200160008152602001600081525090565b5063ffffffff16600090815260076020908152604091829020825160808101845281548152600182015492810192909252600281015492820192909252600390910154606082015290565b60005473ffffffffffffffffffffffffffffffffffffffff16331461055e576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105688282611267565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146105bd576040517f7c91ccdd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c6336112ed565b565b81600003610602576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff83166000908152600660205260408120600201549003610653576040517f8b04816f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff83166000908152600660205260409020610673908390611365565b6106b573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163330856113c7565b6003546040517f9dc1128900000000000000000000000000000000000000000000000000000000815263ffffffff8516600482015260009173ffffffffffffffffffffffffffffffffffffffff1690639dc1128990602401602060405180830381865afa15801561072a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074e9190611b3b565b6003546040805173ffffffffffffffffffffffffffffffffffffffff8981166020830152918101879052606081018490529293501690630293f697903490879086906080016040516020818303038152906040526040518563ffffffff1660e01b81526004016107c093929190611b54565b60206040518083038185885af11580156107de573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108039190611b3b565b506040805163ffffffff8616815233602082015273ffffffffffffffffffffffffffffffffffffffff871691810191909152606081018490527f13cedfbc9c8d30b828db5da4f362ad73d7150f7c2dd18ff2e6b6db381b5791d5906080015b60405180910390a15050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108c2576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b3360009081527f4933f7bec34ee32db93e9f5cd7e0519781b395282211f4f6857489046ea38f7660205260409020547fc4c453d647953c0fd35db5a34ee76e60fb4abc3a8fb891a25936b70b38f292539060ff166109c3576040517f962f6333000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6109ce8484846114b9565b50505050565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff165b9392505050565b3360009081527f8a0dbd5ffccaf9b33baf3aaeaaf3c77993199b58909387c6f407879aae37e7ad60205260409020547f129109734c476f17817fbe7bcf461de566dcce58e4c0cb61b62d1b9af26fe47f9060ff16610a9c576040517f962f6333000000000000000000000000000000000000000000000000000000008152600481018290526024016109ba565b60005b82811015610ced57838382818110610ab957610ab9611bdc565b610acf9260206080909202019081019150611c1b565b15610bf557610b26600060066000878786818110610aef57610aef611bdc565b9050608002016020016020810190610b079190611844565b63ffffffff1663ffffffff1681526020019081526020016000206115a9565b5050838382818110610b3a57610b3a611bdc565b9050608002016040013560066000868685818110610b5a57610b5a611bdc565b9050608002016020016020810190610b729190611844565b63ffffffff168152602081019190915260400160002060020155838382818110610b9e57610b9e611bdc565b9050608002016060013560066000868685818110610bbe57610bbe611bdc565b9050608002016020016020810190610bd69190611844565b63ffffffff168152602081019190915260400160002060010155610cdb565b610c10600060076000878786818110610aef57610aef611bdc565b5050838382818110610c2457610c24611bdc565b9050608002016040013560076000868685818110610c4457610c44611bdc565b9050608002016020016020810190610c5c9190611844565b63ffffffff168152602081019190915260400160002060020155838382818110610c8857610c88611bdc565b9050608002016060013560076000868685818110610ca857610ca8611bdc565b9050608002016020016020810190610cc09190611844565b63ffffffff1681526020810191909152604001600020600101555b80610ce581611c65565b915050610a9f565b507f443adfdab30667bb36a851e5758d544ef4e1d7ac911e59dab256cbe38545468b8383604051610d1f929190611c9d565b60405180910390a1505050565b63ffffffff81166000908152600760205260408120610d4a906115fd565b92915050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610da1576040517f525a992d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff82166000908152600760205260408120600201549003610df2576040517f8b04816f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008082806020019051810190610e099190611d0e565b91509150600080610e3883600760008963ffffffff1663ffffffff1681526020019081526020016000206115a9565b90925090508015610f355763ffffffff8616600090815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845290915281208054839290610e89908490611d3c565b909155505063ffffffff861660009081526005602052604081208054839290610eb3908490611d3c565b909155505063ffffffff8616600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855290835292819020548151948552918401929092528282018490526060830152517f22faad1ba5b30179faee981fdfb2bd0f66e8803d395850eb1ccc14ab1096b6b09181900360800190a15b610f7673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168584611664565b6040805163ffffffff8816815273ffffffffffffffffffffffffffffffffffffffff861660208201529081018390527fd51eeb6fb9746cdb37cbac90d4e706b8c6263b987b3de67d1339bac3b9ae14549060600160405180910390a1505050505050565b63ffffffff8116600090815260076020526040812060020154900361102b576040517f8b04816f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8116600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320549383526007909152812081906110799084906115a9565b63ffffffff8616600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452825280832085905592825260059052908120805493955091935084926110d1908490611d54565b90915550611118905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168684611664565b6040805163ffffffff8616815273ffffffffffffffffffffffffffffffffffffffff87166020820152908101839052606081018290527faebec32bf9185c1b4017d38861a7d014ec7a51ce0ec223b2b9714681ea42d18b90608001610862565b60005473ffffffffffffffffffffffffffffffffffffffff1633146111c9576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105688282611733565b6111fe6040518060800160405280600081526020016000815260200160008152602001600081525090565b5063ffffffff16600090815260066020908152604091829020825160808101845281548152600182015492810192909252600281015492820192909252600390910154606082015290565b63ffffffff81166000908152600660205260408120610d4a906115fd565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909184917f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f39190a35050565b6000805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b6000611370826115fd565b9050828110611390574282556113868382611d54565b6003830155505050565b6040517f47ebad2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60006040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff841660248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806114b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c454400000000000000000000000060448201526064016109ba565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611506576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff84160161154d576113c282826117b6565b8273ffffffffffffffffffffffffffffffffffffffff163b60000361159e576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113c2838383611664565b60008060006115b7846115fd565b42855590508481106115de576115cd8582611d54565b6003850155849250600091506115f5565b600060038501559150816115f28186611d54565b91505b509250929050565b8054600090819061160e9042611d54565b905060008360010154826116229190611d6b565b905083600201548460030154826116399190611d3c565b111561164b578360020154925061165d565b600384015461165a9082611d3c565b92505b5050919050565b60006040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806109ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016109ba565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909184917f155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a529190a35050565b600080600080600085875af19050806113c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c45440000000000000000000000000060448201526064016109ba565b803563ffffffff8116811461183f57600080fd5b919050565b60006020828403121561185657600080fd5b610a088261182b565b73ffffffffffffffffffffffffffffffffffffffff8116811461188157600080fd5b50565b6000806040838503121561189757600080fd5b8235915060208301356118a98161185f565b809150509250929050565b600080600080608085870312156118ca57600080fd5b84356118d58161185f565b93506118e36020860161182b565b93969395505050506040820135916060013590565b60006020828403121561190a57600080fd5b8135610a088161185f565b6000806040838503121561192857600080fd5b6119318361182b565b915060208301356118a98161185f565b60008060006060848603121561195657600080fd5b83356119618161185f565b925060208401356119718161185f565b929592945050506040919091013590565b6000806020838503121561199557600080fd5b823567ffffffffffffffff808211156119ad57600080fd5b818501915085601f8301126119c157600080fd5b8135818111156119d057600080fd5b8660208260071b85010111156119e557600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215611a3957600080fd5b611a428361182b565b9150602083013567ffffffffffffffff80821115611a5f57600080fd5b818501915085601f830112611a7357600080fd5b813581811115611a8557611a856119f7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611acb57611acb6119f7565b81604052828152886020848701011115611ae457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060408385031215611b1957600080fd5b8235611b248161185f565b9150611b326020840161182b565b90509250929050565b600060208284031215611b4d57600080fd5b5051919050565b63ffffffff8416815260006020848184015260606040840152835180606085015260005b81811015611b9457858101830151858201608001528201611b78565b81811115611ba6576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160800195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8035801515811461183f57600080fd5b600060208284031215611c2d57600080fd5b610a0882611c0b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c9657611c96611c36565b5060010190565b6020808252818101839052600090604080840186845b87811015611d0157611cc482611c0b565b1515835263ffffffff611cd886840161182b565b168386015281840135848401526060808301359084015260809283019290910190600101611cb3565b5090979650505050505050565b60008060408385031215611d2157600080fd5b8251611d2c8161185f565b6020939093015192949293505050565b60008219821115611d4f57611d4f611c36565b500190565b600082821015611d6657611d66611c36565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611da357611da3611c36565b50029056fea26469706673582212206e28ef50ebe9a91182c15f3c7f60f648b898274e9a8462875dfc62b357af888664736f6c634300080d00330000000000000000000000007ae121f6c05057e23f4d7700e596c2a19469452900000000000000000000000086ab95d2c6200b798ca382740597ce715ad0d7270000000000000000000000005ac0ce1752e927d8fade7405082e3b67a213aa72