0 txs
4 calls
constructor
constructor(address _axelarExecutable, address _gaugeController)
functions
activePeriod
viewfunction activePeriod() view returns (uint256)
axelarExecutable
viewfunction axelarExecutable() view returns (address)
extractProofState
viewfunction extractProofState(address _user, address _gauge, bytes _block_header_rlp, bytes _proof_rlp) view returns (tuple point, tuple votedSlope, uint256 lastVote, uint256 blockNumber, bytes32 stateRootHash)
GAUGE_CONTROLLER_HASH
viewfunction GAUGE_CONTROLLER_HASH() view returns (bytes32)
GAUGE_CONTROLLER
viewfunction GAUGE_CONTROLLER() view returns (address)
isUserUpdated
viewfunction isUserUpdated(uint256, address, address) view returns (bool)
last_eth_block_number
viewfunction last_eth_block_number() view returns (uint256)
lastUserVote
viewfunction lastUserVote(uint256, address, address) view returns (uint256)
owner
viewfunction owner() view returns (address)
pointWeights
viewfunction pointWeights(address, uint256) view returns (uint256 bias, uint256 slope)
recipient
viewfunction recipient(address) view returns (address)
voteUserSlope
viewfunction voteUserSlope(uint256, address, address) view returns (uint256 slope, uint256 power, uint256 end)
setAxelarExecutable
nonpayablefunction setAxelarExecutable(address _axelarExecutable)
setEthBlockHash
nonpayablefunction setEthBlockHash(uint256 _eth_block_number, bytes32 __eth_blockhash)
setEthBlockHashEmergency
nonpayablefunction setEthBlockHashEmergency(uint256 _eth_block_number, bytes32 __eth_blockhash)
setRecipient
nonpayablefunction setRecipient(address _sender, address _recipient)
submit_state
nonpayablefunction submit_state(address _user, address _gauge, bytes block_header_rlp_, bytes _proof_rlp)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
SetBlockhash
event SetBlockhash(uint256 _eth_block_number, bytes32 _eth_blockhash)
SetRecipient
event SetRecipient(address indexed _user, address indexed _recipient)
errors
GAUGE_CONTROLLER_NOT_FOUND
error GAUGE_CONTROLLER_NOT_FOUND()
INVALID_BLOCK_HEADER
error INVALID_BLOCK_HEADER()
INVALID_HASH_MISMATCH
error INVALID_HASH_MISMATCH()
INVALID_HASH
error INVALID_HASH()
INVALID_PROOF_LENGTH
error INVALID_PROOF_LENGTH()
NOT_OWNER
error NOT_OWNER()
PERIOD_ALREADY_UPDATED
error PERIOD_ALREADY_UPDATED()
WRONG_CONTEXT
error WRONG_CONTEXT()
WRONG_SOURCE_ADDRESS
error WRONG_SOURCE_ADDRESS()
WRONG_SOURCE_CHAIN
error WRONG_SOURCE_CHAIN()
creation bytecode
0x60c060405234801562000010575f80fd5b506040516200260938038062002609833981016040819052620000339162000176565b5f80546001600160a01b03191633908117825560405184928492918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b038481169190911790915581166080526040516001600160601b0319606083901b16602082015260340160408051808303601f19018152828252805160209182012060a0525f808052600282527fd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa37fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b819055908452908301527fe16e73e811796e9411f8c58ddf002de2c1e383ecaca4d22e1ddb14cdd0e514ab910160405180910390a150505050620001ac565b80516001600160a01b038116811462000171575f80fd5b919050565b5f806040838503121562000188575f80fd5b62000193836200015a565b9150620001a3602084016200015a565b90509250929050565b60805160a051612434620001d55f395f818161018a0152610bab01525f61014b01526124345ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c80638bc8407a1161009e578063aa34453f1161006e578063aa34453f14610330578063b001cf0c14610339578063b3651eea1461037f578063e014c98f146103a7578063f2fde38b146103ba575f80fd5b80638bc8407a146102985780638da5cb5b146102ab5780639a7bc090146102bd578063a851cb32146102ed575f80fd5b806332ca7766116100e457806332ca7766146101ac57806337047bc7146101bf5780634e53c8a7146101d25780634f712f3f146101e557806355a38e0f1461023e575f80fd5b80630a441f7b146101155780630c309d821461013157806322884e2c14610146578063289cd17e14610185575b5f80fd5b61011e60065481565b6040519081526020015b60405180910390f35b61014461013f366004611ed7565b6103cd565b005b61016d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610128565b61011e7f000000000000000000000000000000000000000000000000000000000000000081565b6101446101ba366004611f0d565b6104b3565b60015461016d906001600160a01b031681565b6101446101e0366004611fc3565b6104ff565b6101f86101f3366004611fc3565b6107b3565b6040805186518152602096870151878201528551818301529585015160608701529390930151608085015260a084019190915260c083015260e082015261010001610128565b61027d61024c366004612043565b600b60209081525f938452604080852082529284528284209052825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610128565b6101446102a636600461207c565b6108cc565b5f5461016d906001600160a01b031681565b61011e6102cb366004612043565b600a60209081525f938452604080852082529284528284209052825290205481565b6103206102fb366004612043565b600960209081525f938452604080852082529284528284209052825290205460ff1681565b6040519015158152602001610128565b61011e60055481565b61036a6103473660046120ad565b600860209081525f92835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610128565b61016d61038d366004611f0d565b60076020525f90815260409020546001600160a01b031681565b6101446103b5366004611ed7565b610965565b6101446103c8366004611f0d565b610a03565b5f546001600160a01b031633148015906103f257506001546001600160a01b03163314155b15610410576040516338ebc58960e11b815260040160405180910390fd5b5f61041e62093a80426120fd565b61042b9062093a80612110565b9050806006541061044f576040516318edb2cf60e21b815260040160405180910390fd5b5f83815260026020908152604091829020849055600683905581518581529081018490527fe16e73e811796e9411f8c58ddf002de2c1e383ecaca4d22e1ddb14cdd0e514ab910160405180910390a16005548311156104ae5760058390555b505050565b5f546001600160a01b031633146104dd576040516338ebc58960e11b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6005545f908152600460205260409020805461051a90612127565b90505f0361055f5781515f0361054357604051632c08915360e11b815260040160405180910390fd5b6005545f90815260046020526040902061055d83826121a6565b505b6005545f908152600460205260408120805461057a90612127565b80601f01602080910402602001604051908101604052809291908181526020018280546105a690612127565b80156105f15780601f106105c8576101008083540402835291602001916105f1565b820191905f5260205f20905b8154815290600101906020018083116105d457829003601f168201915b505050505090505f805f805f6106098a8a888a610a99565b945094509450945094508460085f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f8481526020019081526020015f205f820151815f01556020820151816001015590505083600b5f8481526020019081526020015f205f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f0155602082015181600101556040820151816002015590505082600a5f8481526020019081526020015f205f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160095f8481526020019081526020015f205f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060035f8481526020019081526020015f208190555050505050505050505050565b604080518082019091525f80825260208201526107e760405180606001604052805f81526020015f81526020015f81525090565b5f805f8060045f60055481526020019081526020015f20805461080990612127565b905011156108ab576005545f908152600460205260409020805461082c90612127565b80601f016020809104026020016040519081016040528092919081815260200182805461085890612127565b80156108a35780601f1061087a576101008083540402835291602001916108a3565b820191905f5260205f20905b81548152906001019060200180831161088657829003601f168201915b505050505096505b6108b789898989610a99565b94509450945094509450945094509450945094565b5f546001600160a01b031633148015906108f157506001546001600160a01b03163314155b1561090f576040516338ebc58960e11b815260040160405180910390fd5b6001600160a01b038281165f8181526007602052604080822080546001600160a01b0319169486169485179055517ff5aa4a25cf0723515ed5e2f2313756dd44c78ee369f3ab7497a27ed89c2c1f649190a35050565b5f546001600160a01b0316331461098f576040516338ebc58960e11b815260040160405180910390fd5b5f61099d62093a80426120fd565b6109aa9062093a80612110565b5f84815260026020908152604091829020859055600683905581518681529081018590529192507fe16e73e811796e9411f8c58ddf002de2c1e383ecaca4d22e1ddb14cdd0e514ab910160405180910390a15050600555565b5f546001600160a01b03163314610a4f5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015260640160405180910390fd5b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b604080518082019091525f8082526020820152610acd60405180606001604052805f81526020015f81526020015f81525090565b5f805f80610ada88611024565b60408101518151909450909150610b0457604051630d682dad60e21b815260040160405180910390fd5b5f83815260026020526040902054815114610b325760405163a8e6251360e01b815260040160405180910390fd5b5f610b6b610b66896040805180820182525f8082526020918201528151808301909252825182529182019181019190915290565b611119565b9050600781511015610b90576040516307504d7560e41b815260040160405180910390fd5b5f84815260036020526040902054925082610c1f575f610bf67f00000000000000000000000000000000000000000000000000000000000000008460200151610bf1855f81518110610be457610be4612262565b6020026020010151611119565b611229565b8051909150610c18576040516304a5528760e41b815260040160405180910390fd5b6060015192505b610cb5633b9aca0a8c604051602001610c39929190612276565b60408051601f198184030181528282528051602091820120908301526001600160a01b038d169082015260600160408051808303601f19018152828252805160209182012090830152016040516020818303038152906040528051906020012084610cb084600181518110610be457610be4612262565b611386565b602001519450610d4c633b9aca088c604051602001610cd5929190612276565b60408051601f198184030181528282528051602091820120908301526001600160a01b038d169082015260600160408051808303601f19018152828252805160209182012090830152016040516020818303038152906040528051906020012084610cb084600481518110610be457610be4612262565b6020908101518752604051610de791610d6d91633b9aca08918f9101612276565b60408051601f198184030181528282528051602091820120908301526001600160a01b038d169082015260600160408051601f19818403018152828252805160209182012060010190830152016040516020818303038152906040528051906020012084610cb084600581518110610be457610be4612262565b60209081015187820152604051610e8491610e0a91633b9aca08918f9101612276565b60408051601f198184030181528282528051602091820120908301526001600160a01b038d169082015260600160408051601f19818403018152828252805160209182012060020190830152016040516020818303038152906040528051906020012084610cb084600681518110610be457610be4612262565b6020908101516040808901919091526001600160a01b038c165f908152600883528181208782528352818120825180840190935280548084526001909101549383019390935290985003611017575f62093a80836060015181610ee957610ee96120d5565b0462093a80029050610f79633b9aca0b8c604051602001610f0b929190612276565b60408051601f19818403018152828252805160209182012090830152810183905260600160408051808303601f19018152828252805160209182012090830152016040516020818303038152906040528051906020012085610cb085600281518110610be457610be4612262565b602090810151895260405161100b91610f9a91633b9aca0b918f9101612276565b60408051601f19818403018152828252805160209182012090830152810183905260600160408051601f19818403018152828252805160209182012060010190830152016040516020818303038152906040528051906020012085610cb085600381518110610be457610be4612262565b60209081015190890152505b5050945094509450945094565b60408051608080820183525f8083526020808401829052838501829052606080850183905285519384018652828452838201839052838601839052830182905284518086018652828152810182905284518086019095528551855285810190850152919290919061109490611119565b9050600b8151116110a3575f80fd5b6110c6816003815181106110b9576110b9612262565b6020026020010151611410565b602083015280516110e490829060089081106110b9576110b9612262565b60408301528051611102908290600b9081106110b9576110b9612262565b606083015250825160209093019290922082525090565b60606111248261145b565b61112c575f80fd5b5f61113683611492565b90505f8167ffffffffffffffff81111561115257611152611f26565b60405190808252806020026020018201604052801561119657816020015b604080518082019091525f80825260208201528152602001906001900390816111705790505b5090505f6111a78560200151611512565b85602001516111b69190612295565b90505f805b8481101561121e576111cc83611591565b91506040518060400160405280838152602001848152508482815181106111f5576111f5612262565b602090810291909101015261120a8284612295565b925080611216816122a8565b9150506111bb565b509195945050505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091525f611280848660405160200161126b91815260200190565b60405160208183030381529060405285611639565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081019190915290915081515f036112be57915061137f9050565b5f6112f2610b66846040805180820182525f8082526020918201528151808301909252825182529182019181019190915290565b90508051600414611301575f80fd5b60018252805161131b9082905f906110b9576110b9612262565b6020830152805161133990829060019081106110b9576110b9612262565b6040830152805161135790829060029081106110b9576110b9612262565b6060830152805161137590829060039081106110b9576110b9612262565b6080830152509150505b9392505050565b604080518082019091525f80825260208201525f6113b1848660405160200161126b91815260200190565b604080518082019091525f808252602082015290915081511561140757600181526040805180820182525f8082526020918201528151808301909252835182528084019082015261140190611410565b60208201525b95945050505050565b80515f901580159061142457508151602110155b61142c575f80fd5b5f8061143784611a50565b8151919350915060208210156114535760208290036101000a90045b949350505050565b80515f90810361146c57505f919050565b602082015180515f1a9060c082101561148857505f9392505050565b5060019392505050565b80515f9081036114a357505f919050565b5f806114b28460200151611512565b84602001516114c19190612295565b90505f845f015185602001516114d79190612295565b90505b80821015611509576114eb82611591565b6114f59083612295565b915082611501816122a8565b9350506114da565b50909392505050565b80515f90811a608081101561152957505f92915050565b60b8811080611544575060c08110801590611544575060f881105b156115525750600192915050565b60c081101561157f57611567600160b86122c0565b6115749060ff16826122d9565b61137f906001612295565b611567600160f86122c0565b50919050565b80515f908190811a60808110156115ab5760019150611632565b60b88110156115d1576115bf6080826122d9565b6115ca906001612295565b9150611632565b60c08110156115fe5760b78103600185019450806020036101000a85510460018201810193505050611632565b60f8811015611612576115bf60c0826122d9565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b60605f611646845f611a92565b90505f80606061166760405180604001604052805f81526020015f81525090565b86515f036116b5577f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421891461169a575f80fd5b5050604080515f815260208101909152935061137f92505050565b5f5b8751811015611a4357801580156116f657506116f28882815181106116de576116de612262565b602002602001015160208101519051902090565b8a14155b156116ff575f80fd5b801580159061172f575061172b88828151811061171e5761171e612262565b6020026020010151611c2f565b8414155b15611738575f80fd5b61174d888281518110610be457610be4612262565b925082516002036118f1575f6060611785611780865f8151811061177357611773612262565b6020026020010151611c89565b611d04565b90925090505f611796888a84611d97565b90506117a28189612295565b975081518110156118035760018b516117bb91906122d9565b8410156117c6575f80fd5b5f5b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50995050505050505050505061137f565b82156118675760018b5161181791906122d9565b841015611822575f80fd5b8851881015611831575f6117c8565b8560018151811061184457611844612262565b6020026020010151945061185785611c89565b995050505050505050505061137f565b60018b5161187591906122d9565b840361187f575f80fd5b6118a28660018151811061189557611895612262565b602002602001015161145b565b6118d0576118c9866001815181106118bc576118bc612262565b6020026020010151611e21565b96506118e9565b6118e6866001815181106116de576116de612262565b96505b505050611a31565b8251601103611a3157855185146119f6575f86868151811061191557611915612262565b016020015160f81c905061192a600187612295565b955060108160ff161061193b575f80fd5b611960848260ff168151811061195357611953612262565b6020026020010151611e37565b1561199a576001895161197391906122d9565b821461197d575f80fd5b5050604080515f815260208101909152955061137f945050505050565b6119b2848260ff168151811061189557611895612262565b6119d5576119ce848260ff16815181106118bc576118bc612262565b94506119f0565b6119ed848260ff16815181106116de576116de612262565b94505b50611a31565b60018851611a0491906122d9565b8114611a0e575f80fd5b611a248360108151811061177357611773612262565b965050505050505061137f565b80611a3b816122a8565b9150506116b7565b5050505050509392505050565b5f805f611a608460200151611512565b90505f818560200151611a739190612295565b90505f82865f0151611a8591906122d9565b9196919550909350505050565b60605f835111611aa0575f80fd5b5f83516002611aaf9190612110565b905080831115611abd575f80fd5b611ac783826122d9565b90508067ffffffffffffffff811115611ae257611ae2611f26565b6040519080825280601f01601f191660200182016040528015611b0c576020820181803683370190505b5091505f835b611b1c8386612295565b811015611c1657611b2e6002826122ec565b5f03611b9857600486611b426002846120fd565b81518110611b5257611b52612262565b602001015160f81c60f81b60f81c60ff16901c600f1660f81b848381518110611b7d57611b7d612262565b60200101906001600160f81b03191690815f1a905350611bf7565b5f86611ba56002846120fd565b81518110611bb557611bb5612262565b602001015160f81c60f81b60f81c60ff16901c600f1660f81b848381518110611be057611be0612262565b60200101906001600160f81b03191690815f1a9053505b611c02600183612295565b9150611c0f600182612295565b9050611b12565b5082518114611c2757611c276122ff565b505092915050565b5f6020825f01511015611c4c576020820151825190205b92915050565b602082015182519020604051602001611c6791815260200190565b604051602081830303815290604052805190602001209050919050565b919050565b8051606090611c96575f80fd5b5f80611ca184611a50565b915091505f8167ffffffffffffffff811115611cbf57611cbf611f26565b6040519080825280601f01601f191660200182016040528015611ce9576020820181803683370190505b50905060208101611cfb848285611e57565b50949350505050565b5f60605f835111611d13575f80fd5b5f6004845f81518110611d2857611d28612262565b60209101015160f81c901c600f1690505f818103611d4b57505f92506002611d81565b81600103611d5e57505f92506001611d81565b81600203611d725750600192506002611d81565b81600303610111575060019250825b83611d8c8683611a92565b935093505050915091565b5f805b8351611da68683612295565b108015611db35750825181105b1561145357828181518110611dca57611dca612262565b01602001516001600160f81b03191684611de48784612295565b81518110611df457611df4612262565b01602001516001600160f81b03191614611e0f57905061137f565b80611e19816122a8565b915050611d9a565b5f805f611e2d84611a50565b9020949350505050565b80515f90600114611e4957505f919050565b5060200151515f1a60801490565b805f03611e6357505050565b60208110611e9b5782518252611e7a602084612295565b9250611e87602083612295565b9150611e946020826122d9565b9050611e63565b80156104ae575f6001611eaf8360206122d9565b611ebb906101006123f3565b611ec591906122d9565b84518451821691191617835250505050565b5f8060408385031215611ee8575f80fd5b50508035926020909101359150565b80356001600160a01b0381168114611c84575f80fd5b5f60208284031215611f1d575f80fd5b61137f82611ef7565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112611f49575f80fd5b813567ffffffffffffffff80821115611f6457611f64611f26565b604051601f8301601f19908116603f01168101908282118183101715611f8c57611f8c611f26565b81604052838152866020858801011115611fa4575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215611fd6575f80fd5b611fdf85611ef7565b9350611fed60208601611ef7565b9250604085013567ffffffffffffffff80821115612009575f80fd5b61201588838901611f3a565b9350606087013591508082111561202a575f80fd5b5061203787828801611f3a565b91505092959194509250565b5f805f60608486031215612055575f80fd5b8335925061206560208501611ef7565b915061207360408501611ef7565b90509250925092565b5f806040838503121561208d575f80fd5b61209683611ef7565b91506120a460208401611ef7565b90509250929050565b5f80604083850312156120be575f80fd5b6120c783611ef7565b946020939093013593505050565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261210b5761210b6120d5565b500490565b8082028115828204841417611c4657611c466120e9565b600181811c9082168061213b57607f821691505b60208210810361158b57634e487b7160e01b5f52602260045260245ffd5b601f8211156104ae575f81815260208120601f850160051c8101602086101561217f5750805b601f850160051c820191505b8181101561219e5782815560010161218b565b505050505050565b815167ffffffffffffffff8111156121c0576121c0611f26565b6121d4816121ce8454612127565b84612159565b602080601f831160018114612207575f84156121f05750858301515b5f19600386901b1c1916600185901b17855561219e565b5f85815260208120601f198616915b8281101561223557888601518255948401946001909101908401612216565b508582101561225257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b63ffffffff9290921682526001600160a01b0316602082015260400190565b80820180821115611c4657611c466120e9565b5f600182016122b9576122b96120e9565b5060010190565b60ff8281168282160390811115611c4657611c466120e9565b81810381811115611c4657611c466120e9565b5f826122fa576122fa6120d5565b500690565b634e487b7160e01b5f52600160045260245ffd5b600181815b8085111561234d57815f1904821115612333576123336120e9565b8085161561234057918102915b93841c9390800290612318565b509250929050565b5f8261236357506001611c46565b8161236f57505f611c46565b8160018114612385576002811461238f576123ab565b6001915050611c46565b60ff8411156123a0576123a06120e9565b50506001821b611c46565b5060208310610133831016604e8410600b84101617156123ce575081810a611c46565b6123d88383612313565b805f19048211156123eb576123eb6120e9565b029392505050565b5f61137f838361235556fea26469706673582212205a64b921731d4473263bc7f761cc2770fe31c16504a5a62647be29c839b7ec1f64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000003669c421b77340b2979d1a00a792cc2ee0fce737