0 txs
2.5k calls
constructor
constructor()
functions
checkProof
viewfunction checkProof(bytes32 _payloadHash, bytes _proof) view
curEpoch
viewfunction curEpoch() view returns (uint256)
getValidatorSet
viewfunction getValidatorSet(uint256 epoch) view returns (tuple)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address _owner)
renounceOwnership
nonpayablefunction renounceOwnership()
setInitialValidatorSet
nonpayablefunction setInitialValidatorSet(bytes _initialValSet)
setNextValidatorSet
nonpayablefunction setNextValidatorSet(bytes payload, bytes proof)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
ValidatorSetUpdated
event ValidatorSetUpdated(uint256 indexed epoch, address[] validators, uint256[] weights, uint256 threshold)
errors
Actions_LengthMismatch
error Actions_LengthMismatch()
InvalidEpoch
error InvalidEpoch()
InvalidInitialization
error InvalidInitialization()
InvalidPayloadSize
error InvalidPayloadSize(uint256 expected, uint256 actual)
InvalidPublicKey
error InvalidPublicKey(bytes pubKey)
InvalidThreshold
error InvalidThreshold()
InvalidValidatorSetSize
error InvalidValidatorSetSize()
LengthMismatch
error LengthMismatch()
NotEnoughSignatures
error NotEnoughSignatures()
NotInitializing
error NotInitializing()
NoValidatorSet
error NoValidatorSet()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PayloadAlreadyUsed
error PayloadAlreadyUsed()
UnexpectedAction
error UnexpectedAction(bytes4 action)
ValSetAlreadySet
error ValSetAlreadySet()
ZeroWeight
error ZeroWeight()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611935806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063a2f09d0611610071578063a2f09d0614610118578063c4d66de81461012b578063d88873151461013e578063e30c39781461015c578063f2fde38b14610164578063f5213bc11461017757600080fd5b80633ed18bea146100ae578063715018a6146100c357806379ba5097146100cb5780638da5cb5b146100d3578063a04e8293146100f8575b600080fd5b6100c16100bc366004611155565b61018a565b005b6100c161019a565b6100c16101ae565b6100db6101fb565b6040516001600160a01b0390911681526020015b60405180910390f35b61010b6101063660046111a0565b610230565b6040516100ef91906111b9565b6100c1610126366004611263565b61034f565b6100c16101393660046112a4565b610449565b6000805160206118e0833981519152546040519081526020016100ef565b6100db610567565b6100c16101723660046112a4565b610590565b6100c16101853660046112d4565b610615565b61019583838361071b565b505050565b6101a2610962565b6101ac6000610994565b565b33806101b8610567565b6001600160a01b0316146101ef5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6101f881610994565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b61025460405180606001604052806060815260200160608152602001600081525090565b60008281527fbac09a3ab0e06910f94a49c10c16eb53146536ec1a9e948951735cde3a58b5016020908152604091829020825181546080938102820184019094526060810184815290939192849284918401828280156102dd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102bf575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561033557602002820191906000526020600020905b815481526020019060010190808311610321575b505050505081526020016002820154815250509050919050565b610357610962565b634aab1d6f60e01b610369828461133f565b6001600160e01b031916146103a857610382818361133f565b60405163f3c2729f60e01b81526001600160e01b031990911660048201526024016101e6565b6000805160206118e083398151915260006104036103c9846004818861136f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b825490915015610426576040516304641ce760e01b815260040160405180910390fd5b610443828260200151836040015184606001518560000151610bcb565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561048e5750825b90506000826001600160401b031660011480156104aa5750303b155b9050811580156104b8575080155b156104d65760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050057845460ff60401b1916600160401b1785555b61050986610ca9565b610511610cba565b610519610cba565b831561055f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610220565b610598610962565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105dc6101fb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b634aab1d6f60e01b610627848661133f565b6001600160e01b0319161461064057610382838561133f565b60006106526103c9856004818961136f565b905060006000805160206118e0833981519152905060006002878760405161067b929190611399565b602060405180830381855afa158015610698573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106bb91906113a9565b90506106c881868661018a565b81546106d59060016113d8565b8351146106f55760405163d5b25b6360e01b815260040160405180910390fd5b610712828460200151856040015186606001518760000151610bcb565b50505050505050565b6000805160206118e0833981519152805460000361074c57604051632df8ced160e11b815260040160405180910390fd5b600061075a83850185611481565b8254600090815260018401602052604090208054825192935090918114610797576040516001621398b960e31b0319815260040160405180910390fd5b8354600090815260018086016020526040822001815b83811015610920578581815181106107c7576107c7611575565b6020026020010151516040036109185760008682815181106107eb576107eb611575565b60209081029190910181015190810151604082015191925090811580159061081257508015155b15610914576000806108278f601b8686610cc2565b50909250905060008160038111156108415761084161158b565b14610850575050505050610918565b89868154811061086257610862611575565b6000918252602090912001546001600160a01b038381169116146108f05761088d8f601c8686610cc2565b50909250905060008160038111156108a7576108a761158b565b146108b6575050505050610918565b8986815481106108c8576108c8611575565b6000918252602090912001546001600160a01b038381169116146108f0575050505050610918565b86868154811061090257610902611575565b90600052602060002001548801975050505b5050505b6001016107ad565b50855460009081526001870160205260409020600201548210156109575760405163e246dc6360e01b815260040160405180910390fd5b505050505050505050565b3361096b6101fb565b6001600160a01b0316146101ac5760405163118cdaa760e01b81523360048201526024016101e6565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556109cc82610d91565b5050565b610a026040518060a0016040528060008152602001606081526020016060815260200160008152602001600081525090565b600080600080600086806020019051810190610a1e919061162f565b9450945094509450945060008585858585604051602001610a439594939291906117c6565b60405160208183030381529060405290508751815114610a8357875181516040516371cccdf360e11b8152600481019290925260248201526044016101e6565b600185511080610a94575060668551115b15610ab25760405163ca0cef7960e01b815260040160405180910390fd5b8351855114610ad4576040516344a7120b60e01b815260040160405180910390fd5b82600003610af55760405163aabd5a0960e01b815260040160405180910390fd5b6000805b8551811015610b6b57858181518110610b1457610b14611575565b6020026020010151600003610b3c576040516319a2a9bd60e01b815260040160405180910390fd5b858181518110610b4e57610b4e611575565b602002602001015182610b6191906113d8565b9150600101610af9565b5083811015610b8d5760405163aabd5a0960e01b815260040160405180910390fd5b6000610b9887610e02565b6040805160a081018252998a5260208a019190915288019590955250506060850191909152608084015250909392505050565b600081815260018601602052604090206002015415610bfd5760405163d5b25b6360e01b815260040160405180910390fd5b8085556040805160608101825285815260208082018690528183018590526000848152600189018252929092208151805192939192610c3f9284920190611058565b506020828101518051610c5892600185019201906110bd565b5060408201518160020155905050807ff401f5a770121fc0f928a49d6d2bbd6210392212fde4d7421059b944afba5165858585604051610c9a93929190611850565b60405180910390a25050505050565b610cb1610fdd565b6101f881611026565b6101ac610fdd565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610cfd5750600091506003905082610d87565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610d51573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610d7d57506000925060019150829050610d87565b9250600091508190505b9450945094915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6060600082516001600160401b03811115610e1f57610e1f6113f1565b604051908082528060200260200182016040528015610e48578160200160208202803683370190505b50905060005b8351811015610fd657838181518110610e6957610e69611575565b602002602001015151604103610fbc576000848281518110610e8d57610e8d611575565b60200260200101519050848281518110610ea957610ea9611575565b6020026020010151600081518110610ec357610ec3611575565b6020910101516001600160f81b031916600160fa1b14610f1157848281518110610eef57610eef611575565b6020026020010151604051635f475a1760e01b81526004016101e691906118b9565b600060018251610f2191906118cc565b6001600160401b03811115610f3857610f386113f1565b6040519080825280601f01601f191660200182016040528015610f62576020820181803683370190505b506021830151602082019081526041840151604083015281519020855191925090859085908110610f9557610f95611575565b60200260200101906001600160a01b031690816001600160a01b0316815250505050610fce565b838181518110610eef57610eef611575565b600101610e4e565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166101ac57604051631afcd79f60e31b815260040160405180910390fd5b61102e610fdd565b6001600160a01b0381166101ef57604051631e4fbdf760e01b8152600060048201526024016101e6565b8280548282559060005260206000209081019282156110ad579160200282015b828111156110ad57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611078565b506110b99291506110f8565b5090565b8280548282559060005260206000209081019282156110ad579160200282015b828111156110ad5782518255916020019190600101906110dd565b5b808211156110b957600081556001016110f9565b60008083601f84011261111f57600080fd5b5081356001600160401b0381111561113657600080fd5b60208301915083602082850101111561114e57600080fd5b9250929050565b60008060006040848603121561116a57600080fd5b8335925060208401356001600160401b0381111561118757600080fd5b6111938682870161110d565b9497909650939450505050565b6000602082840312156111b257600080fd5b5035919050565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156112075783516001600160a01b031682529284019260019290920191908401906111de565b5086840151868203601f190160408801528051808352908501935090840191506000905b8082101561124b578351835292840192918401916001919091019061122b565b50506040860151606086015280935050505092915050565b6000806020838503121561127657600080fd5b82356001600160401b0381111561128c57600080fd5b6112988582860161110d565b90969095509350505050565b6000602082840312156112b657600080fd5b81356001600160a01b03811681146112cd57600080fd5b9392505050565b600080600080604085870312156112ea57600080fd5b84356001600160401b038082111561130157600080fd5b61130d8883890161110d565b9096509450602087013591508082111561132657600080fd5b506113338782880161110d565b95989497509550505050565b6001600160e01b031981358181169160048510156113675780818660040360031b1b83161692505b505092915050565b6000808585111561137f57600080fd5b8386111561138c57600080fd5b5050820193919092039150565b8183823760009101908152919050565b6000602082840312156113bb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156113eb576113eb6113c2565b92915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561142f5761142f6113f1565b604052919050565b60006001600160401b03821115611450576114506113f1565b5060051b60200190565b60006001600160401b03821115611473576114736113f1565b50601f01601f191660200190565b6000602080838503121561149457600080fd5b82356001600160401b03808211156114ab57600080fd5b818501915085601f8301126114bf57600080fd5b81356114d26114cd82611437565b611407565b81815260059190911b830184019084810190888311156114f157600080fd5b8585015b838110156115685780358581111561150d5760008081fd5b8601603f81018b1361151f5760008081fd5b8781013560406115316114cd8361145a565b8281528d828486010111156115465760008081fd5b828285018c83013760009281018b0192909252508452509186019186016114f5565b5098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156115bc5781810151838201526020016115a4565b50506000910152565b600082601f8301126115d657600080fd5b815160206115e66114cd83611437565b8083825260208201915060208460051b87010193508684111561160857600080fd5b602086015b84811015611624578051835291830191830161160d565b509695505050505050565b600080600080600060a0868803121561164757600080fd5b8551945060208601516001600160401b038082111561166557600080fd5b818801915088601f83011261167957600080fd5b81516116876114cd82611437565b8082825260208201915060208360051b86010192508b8311156116a957600080fd5b602085015b8381101561171d578051858111156116c557600080fd5b8601603f81018e136116d657600080fd5b60208101516116e76114cd8261145a565b8181528f60408385010111156116fc57600080fd5b61170d8260208301604086016115a1565b85525050602092830192016116ae565b5060408b0151909850935050508082111561173757600080fd5b50611744888289016115c5565b606088015160809098015196999598509695949350505050565b600081518084526117768160208601602086016115a1565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b838110156117bb5781518752958201959082019060010161179f565b509495945050505050565b600060a08201878352602060a0602085015281885180845260c08601915060c08160051b870101935060208a0160005b828110156118245760bf1988870301845261181286835161175e565b955092840192908401906001016117f6565b5050505050828103604084015261183b818761178a565b60608401959095525050608001529392505050565b606080825284519082018190526000906020906080840190828801845b828110156118925781516001600160a01b03168452928401929084019060010161186d565b50505083810360208501526118a7818761178a565b92505050826040830152949350505050565b6020815260006112cd602083018461175e565b818103818111156113eb576113eb6113c256febac09a3ab0e06910f94a49c10c16eb53146536ec1a9e948951735cde3a58b500a2646970667358221220d1a4576808cb704b9b059b61664d2947fef526f6ee1edd706479dea334a8deb864736f6c63430008180033