78 txs
465 calls
constructor
constructor(address _locator, uint256 _secondsPerSlot, uint256 _genesisTime, address _owner)
functions
GENESIS_TIME
viewfunction GENESIS_TIME() view returns (uint256)
getConsensusContract
viewfunction getConsensusContract() view returns (address)
getConsensusReport
viewfunction getConsensusReport() view returns (bytes32 hash, uint256 refSlot, uint256 processingDeadlineTime, bool processingStarted)
getConsensusVersion
viewfunction getConsensusVersion() view returns (uint256)
getLastProcessingRefSlot
viewfunction getLastProcessingRefSlot() view returns (uint256)
getProcessingState
viewfunction getProcessingState() view returns (tuple result)
LOCATOR
viewfunction LOCATOR() view returns (address)
owner
viewfunction owner() view returns (address)
SECONDS_PER_SLOT
viewfunction SECONDS_PER_SLOT() view returns (uint256)
discardConsensusReport
nonpayablefunction discardConsensusReport(uint256 refSlot)
initialize
nonpayablefunction initialize(address consensusContract, uint256 consensusVersion, uint256 lastProcessingRefSlot)
renounceOwnership
nonpayablefunction renounceOwnership()
setConsensusContract
nonpayablefunction setConsensusContract(address addr)
setConsensusVersion
nonpayablefunction setConsensusVersion(uint256 version)
submitConsensusReport
nonpayablefunction submitConsensusReport(bytes32 reportHash, uint256 refSlot, uint256 deadline)
submitReportData
nonpayablefunction submitReportData(tuple data)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ConsensusHashContractSet
event ConsensusHashContractSet(address indexed addr, address indexed prevAddr)
ConsensusVersionSet
event ConsensusVersionSet(uint256 indexed version, uint256 indexed prevVersion)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProcessingStarted
event ProcessingStarted(uint256 indexed refSlot, bytes32 hash)
ReportDiscarded
event ReportDiscarded(uint256 indexed refSlot, bytes32 hash)
ReportSubmitted
event ReportSubmitted(uint256 indexed refSlot, bytes32 hash, uint256 processingDeadlineTime)
WarnProcessingMissed
event WarnProcessingMissed(uint256 indexed refSlot)
errors
AddressCannotBeSame
error AddressCannotBeSame()
AddressCannotBeZero
error AddressCannotBeZero()
HashCannotBeZero
error HashCannotBeZero()
InitialRefSlotCannotBeLessThanProcessingOne
error InitialRefSlotCannotBeLessThanProcessingOne(uint256 initialRefSlot, uint256 processingRefSlot)
InvalidInitialization
error InvalidInitialization()
LocatorCannotBeZero
error LocatorCannotBeZero()
NoConsensusReportToProcess
error NoConsensusReportToProcess()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ProcessingDeadlineMissed
error ProcessingDeadlineMissed(uint256 deadline)
RefSlotAlreadyProcessing
error RefSlotAlreadyProcessing()
RefSlotCannotDecrease
error RefSlotCannotDecrease(uint256 refSlot, uint256 prevRefSlot)
RefSlotMustBeGreaterThanProcessingOne
error RefSlotMustBeGreaterThanProcessingOne(uint256 refSlot, uint256 processingRefSlot)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SecondsPerSlotCannotBeZero
error SecondsPerSlotCannotBeZero()
SenderIsNotTheConsensusContract
error SenderIsNotTheConsensusContract()
SenderNotAllowed
error SenderNotAllowed()
UnexpectedChainConfig
error UnexpectedChainConfig()
UnexpectedConsensusVersion
error UnexpectedConsensusVersion(uint256 expectedVersion, uint256 receivedVersion)
UnexpectedDataHash
error UnexpectedDataHash(bytes32 consensusHash, bytes32 receivedHash)
UnexpectedRefSlot
error UnexpectedRefSlot(uint256 consensusRefSlot, uint256 dataRefSlot)
VersionCannotBeSame
error VersionCannotBeSame()
creation bytecode
0x60e06040523480156200001157600080fd5b50604051620020c6380380620020c6833981016040819052620000349162000148565b828282806001600160a01b0381166200006757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007281620000db565b50826000036200009557604051636ed243a560e01b815260040160405180910390fd5b5060809190915260a0526001600160a01b038416620000c657604051626a44df60e41b815260040160405180910390fd5b5050506001600160a01b031660c05262000193565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014357600080fd5b919050565b600080600080608085870312156200015f57600080fd5b6200016a856200012b565b9350602085015192506040850151915062000188606086016200012b565b905092959194509250565b60805160a05160c051611eb6620002106000396000818161017c015281816112ec01526114af0152600081816102aa015281816113bb0152818161141301528181611571015261179901526000818161013a01528181611390015281816113e4015281816115420152818161159a015261176f0152611eb66000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638d591474116100b2578063c365939511610081578063d438121711610066578063d438121714610292578063f2882461146102a5578063f2fde38b146102cc57600080fd5b8063c36593951461026c578063c469c3071461027f57600080fd5b80638d591474146102035780638da5cb5b146102165780638f55b571146102275780638f7797c21461022f57600080fd5b80635be20425116100ee5780635be20425146101b657806360d64d38146101be578063715018a6146101e85780637a1ac61e146101f057600080fd5b8063063f36ad14610120578063304b9071146101355780633584d59c1461016f57806357a7828914610177575b600080fd5b61013361012e366004611a04565b6102df565b005b61015c7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61015c610594565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610166565b61015c6105c3565b6101c66105ed565b6040805194855260208501939093529183015215156060820152608001610166565b6101336106c1565b6101336101fe366004611a45565b6106d5565b610133610211366004611a7a565b610816565b6000546001600160a01b031661019e565b61019e61082a565b610237610854565b604051610166919081518152602080830151908201526040808301519082015260609182015115159181019190915260800190565b61013361027a366004611a93565b610966565b61013361028d366004611acf565b6109c1565b6101336102a0366004611a7a565b6109fa565b61015c7f000000000000000000000000000000000000000000000000000000000000000081565b6101336102da366004611acf565b610bc1565b6102e7610c15565b7f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141da5467ffffffffffffffff168083101561035c576040517f863a602e00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044015b60405180910390fd5b60006103867f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b90508084116103cb576040517f60a41e490000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610353565b82421115610408576040517fa6f759be00000000000000000000000000000000000000000000000000000000815260048101849052602401610353565b8184141580156104185750818114155b156104495760405182907f800b849c8bf80718cf786c99d1091c079fe2c5e420a3ba7ba9b0ef8179ef2c3890600090a25b84610480576040517fb6314d3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518681526020810185905285917faed7d1a7a1831158dcda1e4214f5862f450bd3eb5721a5f322bf8c9fe1790b0a910160405180910390a2600060405180606001604052808781526020016104d787610c81565b67ffffffffffffffff1681526020016104ef86610c81565b67ffffffffffffffff90811690915281517f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d95560208201517f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141da8054604090940151831668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190921617919091179055505050505050565b60006105be7f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b905090565b60006105be7f546f36fe074693948f76112fbfe4e6d5861fba51d56048264dfb37b08bbeef8a5490565b6000808080807f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d9604080516060810182528254815260019092015467ffffffffffffffff8082166020850152680100000000000000009091041690820152905060006106777f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b825160208401516040850151929350909182158015906106a4575083856020015167ffffffffffffffff16145b929967ffffffffffffffff92831699509116965090945092505050565b6106c9610cd5565b6106d36000610d1b565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107205750825b905060008267ffffffffffffffff16600114801561073d5750303b155b90508115801561074b575080155b15610782576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107b657845468ff00000000000000001916680100000000000000001785555b6107c1888888610d83565b831561080c57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b61081e610cd5565b61082781610e11565b50565b60006105be7f42fa21fb4fa6aa65f3ce8763fcf99c7bc97ea65a72d1be7b00a0596797ec87be5490565b6040805160808101825260008082526020820181905291810182905260608101829052907f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d9604080516060810182528254815260019092015467ffffffffffffffff808216602085015268010000000000000000909104169082015290506108da610ed0565b8252805115806108fc5750806020015167ffffffffffffffff16826000015114155b15610905575090565b60408082015167ffffffffffffffff166020840152815190830152600061094a7f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b60209092015167ffffffffffffffff1690911460608301525090565b61096e610f68565b6109a7816020013582600001358360405160200161098c9190611b55565b60405160208183030381529060405280519060200120610fa8565b60006109b161112f565b90506109bd82826112d8565b5050565b6109c9610cd5565b610827816109f57f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b61164c565b610a02610c15565b604080516060810182527f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d95481527f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141da5467ffffffffffffffff8082166020840181905268010000000000000000909204169282019290925290821015610acd5760208101516040517f863a602e0000000000000000000000000000000000000000000000000000000081526004810184905267ffffffffffffffff9091166024820152604401610353565b806020015167ffffffffffffffff16821115610ae7575050565b6000610b117f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b9050808311610b4c576040517f052e2c9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d955816020015167ffffffffffffffff167fe21266bc27ee721ac10034efaf7fd724656ef471c75b8402cd8f07850af6b6768360000151604051610bb491815260200190565b60405180910390a2505050565b610bc9610cd5565b6001600160a01b038116610c0c576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610353565b61082781610d1b565b7f42fa21fb4fa6aa65f3ce8763fcf99c7bc97ea65a72d1be7b00a0596797ec87be546001600160a01b0316336001600160a01b0316146106d3576040517ffef4d83100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600067ffffffffffffffff821115610cd157604080517f6dfcc650000000000000000000000000000000000000000000000000000000008152600481019190915260248101839052604401610353565b5090565b6000546001600160a01b031633146106d3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610353565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d8d838261164c565b610d9682610e11565b610dbf7f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a9829055565b610dc881610c81565b7f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d9600101805467ffffffffffffffff191667ffffffffffffffff92909216919091179055505050565b6000610e3b7f546f36fe074693948f76112fbfe4e6d5861fba51d56048264dfb37b08bbeef8a5490565b9050808203610e76576040517f75f1d86c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e9f7f546f36fe074693948f76112fbfe4e6d5861fba51d56048264dfb37b08bbeef8a839055565b604051819083907ffa5304972d4ec3e3207f0bbf91155a49d0dfa62488f9529403a2a49e4b29a89590600090a35050565b600080610efb7f42fa21fb4fa6aa65f3ce8763fcf99c7bc97ea65a72d1be7b00a0596797ec87be5490565b90506000816001600160a01b03166372f79b136040518163ffffffff1660e01b81526004016040805180830381865afa158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190611c0f565b509392505050565b33610f728161190e565b610827576040517f23dada5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516060810182527f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d95481527f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141da5467ffffffffffffffff808216602084018190526801000000000000000090920416928201929092529084146110725760208101516040517f92171a8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101859052604401610353565b600061109c7f546f36fe074693948f76112fbfe4e6d5861fba51d56048264dfb37b08bbeef8a5490565b90508084146110e1576040517f546fba7a0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610353565b815183146111285781516040517fc858eb8e000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052604401610353565b5050505050565b604080516060810182527f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141d9548082527f58c286eb31c6430362979be63786d419587c6a3bf55cd483f074c652405141da5467ffffffffffffffff80821660208501526801000000000000000090910416928201929092526000916111df576040517f64dfc18f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111f6816040015167ffffffffffffffff166119c7565b60006112207f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a95490565b9050816020015167ffffffffffffffff168103611269576040517f052e2c9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208281015167ffffffffffffffff167f2dbbdb5a4e4a444c75c0eb67608c10a6f7e8621893b8bbaa23ed9d35e8d010a9819055835160405190815290917ff73febded7d4502284718948a3e1d75406151c6326bde069424a584a4f6af87a910160405180910390a292915050565b60006112e8826020850135611c62565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351a2d6d16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136c9190611c7b565b6001600160a01b03166396992fed61138b610100860160e08701611c98565b6113b57f000000000000000000000000000000000000000000000000000000000000000086611cb5565b6113df907f0000000000000000000000000000000000000000000000000000000000000000611ccc565b61140d7f00000000000000000000000000000000000000000000000000000000000000006020890135611cb5565b611437907f0000000000000000000000000000000000000000000000000000000000000000611ccc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152921515600484015260248301919091526044820152606401600060405180830381600087803b15801561149557600080fd5b505af11580156114a9573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b6443e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152f9190611c7b565b6001600160a01b031663b823fba261156b7f00000000000000000000000000000000000000000000000000000000000000006020870135611cb5565b611595907f0000000000000000000000000000000000000000000000000000000000000000611ccc565b6115bf7f000000000000000000000000000000000000000000000000000000000000000085611cb5565b6040870135606088013560808901356115db60a08b018b611cdf565b8b60c001356040518963ffffffff1660e01b8152600401611603989796959493929190611d30565b6060604051808303816000875af1158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116469190611d77565b50505050565b6001600160a01b03821661168c576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116b67f42fa21fb4fa6aa65f3ce8763fcf99c7bc97ea65a72d1be7b00a0596797ec87be5490565b9050806001600160a01b0316836001600160a01b031603611703576040517f434ab9c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080846001600160a01b031663606c0c946040518163ffffffff1660e01b8152600401606060405180830381865afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117689190611e1c565b92509250507f0000000000000000000000000000000000000000000000000000000000000000821415806117bc57507f00000000000000000000000000000000000000000000000000000000000000008114155b156117f3576040517fa803a14200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000856001600160a01b0316636095012f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611e4a565b90508481101561189d576040517f3cef35a20000000000000000000000000000000000000000000000000000000081526004810182905260248101869052604401610353565b6118c67f42fa21fb4fa6aa65f3ce8763fcf99c7bc97ea65a72d1be7b00a0596797ec87be879055565b836001600160a01b0316866001600160a01b03167f25421480fb7f52d18947876279a213696b58d7e0e5416ce5e2c9f9942661c34c60405160405180910390a3505050505050565b6000806119397f42fa21fb4fa6aa65f3ce8763fcf99c7bc97ea65a72d1be7b00a0596797ec87be5490565b6040517f1951c0370000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015291925090821690631951c03790602401602060405180830381865afa15801561199c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c09190611e63565b9392505050565b80421115610827576040517fa6f759be00000000000000000000000000000000000000000000000000000000815260048101829052602401610353565b600080600060608486031215611a1957600080fd5b505081359360208301359350604090920135919050565b6001600160a01b038116811461082757600080fd5b600080600060608486031215611a5a57600080fd5b8335611a6581611a30565b95602085013595506040909401359392505050565b600060208284031215611a8c57600080fd5b5035919050565b600060208284031215611aa557600080fd5b813567ffffffffffffffff811115611abc57600080fd5b820161010081850312156119c057600080fd5b600060208284031215611ae157600080fd5b81356119c081611a30565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611b1e57600080fd5b8260051b80836020870137939093016020019392505050565b801515811461082757600080fd5b8035611b5081611b37565b919050565b6020815281356020820152602082013560408201526040820135606082015260608201356080820152608082013560a0820152600060a0830135601e19843603018112611ba157600080fd5b830160208101903567ffffffffffffffff811115611bbe57600080fd5b8060051b3603821315611bd057600080fd5b6101008060c0860152611be861012086018385611aec565b925060c086013560e0860152611c0060e08701611b45565b15159401939093529392505050565b60008060408385031215611c2257600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611c7557611c75611c33565b92915050565b600060208284031215611c8d57600080fd5b81516119c081611a30565b600060208284031215611caa57600080fd5b81356119c081611b37565b8082028115828204841417611c7557611c75611c33565b80820180821115611c7557611c75611c33565b6000808335601e19843603018112611cf657600080fd5b83018035915067ffffffffffffffff821115611d1157600080fd5b6020019150600581901b3603821315611d2957600080fd5b9250929050565b88815287602082015286604082015285606082015284608082015260e060a08201526000611d6260e083018587611aec565b90508260c08301529998505050505050505050565b600060608284031215611d8957600080fd5b82601f830112611d9857600080fd5b6040516060810181811067ffffffffffffffff82111715611de2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052806060840185811115611df757600080fd5b845b81811015611e11578051835260209283019201611df9565b509195945050505050565b600080600060608486031215611e3157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e5c57600080fd5b5051919050565b600060208284031215611e7557600080fd5b81516119c081611b3756fea2646970667358221220933440db5370565a1dc36aad796e135e29c0a88952347937c19f66e8be0a13f864736f6c634300081400330000000000000000000000002492d71a11410e23d0f5251793d8f058a6ba7d08000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000065d35ee0000000000000000000000000fecab866b450b97db38500898e9272c1d18918b7