2 txs
165 calls
constructor
constructor(address initialOwner, uint256 initialTimelock, bytes32 initialRoot, bytes32 initialIpfsHash)
functions
authorizedProviders
viewfunction authorizedProviders(address) view returns (bool)
claimed
viewfunction claimed(address account, address reward) view returns (uint256 amount)
incentives
viewfunction incentives(uint256 id) view returns (address gauge, address reward, uint256 duration, uint256 start, uint256 end, uint256 fromChainId, address sender, uint256 amount, address manager)
ipfsHash
viewfunction ipfsHash() view returns (bytes32)
isUpdater
viewfunction isUpdater(address) view returns (bool)
lastSetRoot
viewfunction lastSetRoot() view returns (uint256)
nbIncentives
viewfunction nbIncentives() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingRoot
viewfunction pendingRoot() view returns (bytes32 root, bytes32 ipfsHash, uint256 validAt)
recipients
viewfunction recipients(address account) view returns (address recipient)
root
viewfunction root() view returns (bytes32)
timelock
viewfunction timelock() view returns (uint256)
acceptRoot
nonpayablefunction acceptRoot()
addIncentive
nonpayablefunction addIncentive(address gauge, address reward, uint256 startTimestamp, uint256 duration, uint256 amount, address manager)
addIncentiveBatch
nonpayablefunction addIncentiveBatch(address[] gauges, address[] rewards, uint256 startTimestamp, uint256[] durations, uint256[] amounts, address[] managers)
claim
nonpayablefunction claim(address account, address reward, uint256 claimable, bytes32[] proof) returns (uint256 amount)
multicall
payablefunction multicall(bytes[] data) payable returns (bytes[])
receiveMessage
nonpayablefunction receiveMessage(uint256 chainId, address sender, bytes payload)
revokeAuthorizedProvider
nonpayablefunction revokeAuthorizedProvider(address dataProvider)
revokePendingRoot
nonpayablefunction revokePendingRoot()
setAuthorizedProvider
nonpayablefunction setAuthorizedProvider(address dataProvider)
setOwner
nonpayablefunction setOwner(address newOwner)
setRecipient
nonpayablefunction setRecipient(address account, address recipient)
setRoot
nonpayablefunction setRoot(bytes32 newRoot, bytes32 newIpfsHash)
setRootUpdater
nonpayablefunction setRootUpdater(address updater, bool active)
setTimelock
nonpayablefunction setTimelock(uint256 newTimelock)
submitRoot
nonpayablefunction submitRoot(bytes32 newRoot, bytes32 newIpfsHash)
events
BatchIncentivesAdded
event BatchIncentivesAdded(uint256 indexed chainId, address indexed sender, uint256 count)
Claimed
event Claimed(address indexed account, address indexed recipient, address indexed reward, uint256 amount)
IncentiveAdded
event IncentiveAdded(uint256 indexed id, address indexed gauge, address indexed reward, address manager, uint256 duration, uint256 start, uint256 end, uint256 amount)
OwnerSet
event OwnerSet(address indexed newOwner)
PendingRootRevoked
event PendingRootRevoked(address indexed caller)
PendingRootSet
event PendingRootSet(address indexed caller, bytes32 indexed newRoot, bytes32 indexed newIpfsHash)
RecipientSet
event RecipientSet(address indexed account, address indexed recipient)
RootSet
event RootSet(bytes32 indexed newRoot, bytes32 indexed newIpfsHash)
RootUpdaterSet
event RootUpdaterSet(address indexed rootUpdater, bool active)
TimelockSet
event TimelockSet(uint256 newTimelock)
errors
INVALID_PAYLOAD
error INVALID_PAYLOAD()
NOT_AUTHORIZED_PROVIDER
error NOT_AUTHORIZED_PROVIDER()
creation bytecode
0x608060405234801561000f575f5ffd5b5060405161236738038061236783398101604081905261002e9161012a565b8383838361003b8461005b565b610044836100a4565b61004e82826100df565b5050505050505050610171565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2905f90a250565b60058190556040518181527f980b903efea70e6b1bd235b1fb05f1a5da73cbd478b73c9538053f9eb29f129f9060200160405180910390a150565b5f828155600182905542600655600781905560088190556009819055604051829184917f901232fc92ac16700a7d4b60706cbd27dec177bc85c9c2dbd2e2871d63b22a239190a35050565b5f5f5f5f6080858703121561013d575f5ffd5b84516001600160a01b0381168114610153575f5ffd5b60208601516040870151606090970151919890975090945092505050565b6121e98061017e5f395ff3fe608060405260043610610195575f3560e01c80637ef9faaa116100e7578063d61825ef11610087578063eb82031211610062578063eb82031214610562578063ebf0c71714610596578063ed075ec5146105aa578063fabed412146105be575f5ffd5b8063d61825ef14610469578063e121c10214610488578063e1f967001461054d575f5ffd5b8063974cc646116100c2578063974cc64614610400578063ac9650d81461041f578063c623674f1461043f578063d33219b414610454575f5ffd5b80637ef9faaa146103955780638bc8407a146103aa5780638da5cb5b146103c9575f5ffd5b80634b387053116101525780635e80133e1161012d5780635e80133e146102f057806369dc3ae21461030f578063750588cf1461033d578063756d8f1214610376575f5ffd5b80634b3870531461027f5780634fdfb0861461029357806353739410146102d1575f5ffd5b80630c9cbf0e1461019957806313af4035146101e25780631885c2f9146102035780631b9e3b53146102225780631e891c0a1461024157806342af83fb14610260575b5f5ffd5b3480156101a4575f5ffd5b506101cf6101b3366004611b2a565b600260209081525f928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156101ed575f5ffd5b506102016101fc366004611b5b565b6105dd565b005b34801561020e575f5ffd5b5061020161021d366004611b74565b610692565b34801561022d575f5ffd5b5061020161023c366004611b5b565b610704565b34801561024c575f5ffd5b5061020161025b366004611bf5565b610772565b34801561026b575f5ffd5b5061020161027a366004611c0c565b610812565b34801561028a575f5ffd5b5061020161095f565b34801561029e575f5ffd5b506102c16102ad366004611b5b565b60046020525f908152604090205460ff1681565b60405190151581526020016101d9565b3480156102dc575f5ffd5b506102016102eb366004611c39565b610a5d565b3480156102fb575f5ffd5b5061020161030a366004611cb5565b610b6e565b34801561031a575f5ffd5b506102c1610329366004611b5b565b600d6020525f908152604090205460ff1681565b348015610348575f5ffd5b5060075460085460095461035b92919083565b604080519384526020840192909252908201526060016101d9565b348015610381575f5ffd5b50610201610390366004611b5b565b610dbf565b3480156103a0575f5ffd5b506101cf600c5481565b3480156103b5575f5ffd5b506102016103c4366004611b2a565b610e30565b3480156103d4575f5ffd5b506003546103e8906001600160a01b031681565b6040516001600160a01b0390911681526020016101d9565b34801561040b575f5ffd5b5061020161041a366004611db9565b610edf565b61043261042d366004611e14565b610fb0565b6040516101d99190611e80565b34801561044a575f5ffd5b506101cf60015481565b34801561045f575f5ffd5b506101cf60055481565b348015610474575f5ffd5b50610201610483366004611c0c565b610fd4565b348015610493575f5ffd5b506104fb6104a2366004611bf5565b600b6020525f90815260409020805460018201546002830154600384015460048501546005860154600687015460078801546008909801546001600160a01b039788169896881697959694959394929391821692911689565b604080516001600160a01b039a8b168152988a1660208a01528801969096526060870194909452608086019290925260a0850152841660c084015260e0830152909116610100820152610120016101d9565b348015610558575f5ffd5b506101cf60065481565b34801561056d575f5ffd5b506103e861057c366004611b5b565b600a6020525f90815260409020546001600160a01b031681565b3480156105a1575f5ffd5b506101cf5f5481565b3480156105b5575f5ffd5b50610201611117565b3480156105c9575f5ffd5b506101cf6105d8366004611ee3565b6111ca565b60035460408051808201909152601781525f5160206121655f395f51905f526020820152906001600160a01b031633146106335760405162461bcd60e51b815260040161062a9190611f4c565b60405180910390fd5b5060035460408051808201909152600b81526a185b1c9958591e481cd95d60aa1b6020820152906001600160a01b038381169116036106855760405162461bcd60e51b815260040161062a9190611f4c565b5061068f81611445565b50565b335f908152600d602052604090205460ff166106c157604051633be351d160e01b815260040160405180910390fd5b5f6106ce82840184611fca565b905080515f036106f15760405163258a533d60e11b815260040160405180910390fd5b6106fd8142878761148e565b5050505050565b60035460408051808201909152601781525f5160206121655f395f51905f526020820152906001600160a01b031633146107515760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b03165f908152600d60205260409020805460ff19169055565b60035460408051808201909152601781525f5160206121655f395f51905f526020820152906001600160a01b031633146107bf5760405162461bcd60e51b815260040161062a9190611f4c565b506005548114156040518060400160405280600b81526020016a185b1c9958591e481cd95d60aa1b815250906108085760405162461bcd60e51b815260040161062a9190611f4c565b5061068f816116be565b335f9081526004602052604090205460ff168061083957506003546001600160a01b031633145b6040518060400160405280601f81526020017f63616c6c657220686173206e6f7420746865207570646174657220726f6c65008152509061088d5760405162461bcd60e51b815260040161062a9190611f4c565b505f54821415806108a057506001548114155b6040518060400160405280600b81526020016a185b1c9958591e481cd95d60aa1b815250906108e25760405162461bcd60e51b815260040161062a9190611f4c565b5060055415806108fc57506003546001600160a01b031633145b6040518060400160405280601f81526020017f756e617574686f72697a656420746f206368616e67652074686520726f6f7400815250906109505760405162461bcd60e51b815260040161062a9190611f4c565b5061095b82826116f9565b5050565b335f9081526004602052604090205460ff168061098657506003546001600160a01b031633145b6040518060400160405280601f81526020017f63616c6c657220686173206e6f7420746865207570646174657220726f6c6500815250906109da5760405162461bcd60e51b815260040161062a9190611f4c565b5060095460408051808201909152600f81526e1b9bc81c195b991a5b99c81c9bdbdd608a1b602082015290610a225760405162461bcd60e51b815260040161062a9190611f4c565b505f60078190556008819055600981905560405133917ffc5bc87b2339664e063f6f7cd154075756d9c3b2c38ca2b950fef2f8b3f6dc4091a2565b60035460408051808201909152601781525f5160206121655f395f51905f526020820152906001600160a01b03163314610aaa5760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b0382165f90815260046020908152604091829020548251808401909352600b83526a185b1c9958591e481cd95d60aa1b9183019190915260ff16151582151503610b0f5760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527fefa819ca5209d17f1dfd20e7c0c2100700ae10239d28140f00fa620742b2d842910160405180910390a25050565b895f819003610b905760405163258a533d60e11b815260040160405180910390fd5b8881141580610b9f5750858114155b80610baa5750838114155b80610bb55750818114155b15610bd35760405163258a533d60e11b815260040160405180910390fd5b5f816001600160401b03811115610bec57610bec611f5e565b604051908082528060200260200182016040528015610c4357816020015b6040805160a0810182525f808252602080830182905292820181905260608201819052608082015282525f19909201910181610c0a5790505b5090505f5b82811015610da357610c9a8c8c83818110610c6557610c656120cd565b9050602002016020810190610c7a9190611b5b565b33308a8a86818110610c8e57610c8e6120cd565b90506020020135611744565b6040518060a001604052808f8f84818110610cb757610cb76120cd565b9050602002016020810190610ccc9190611b5b565b6001600160a01b031681526020018d8d84818110610cec57610cec6120cd565b9050602002016020810190610d019190611b5b565b6001600160a01b031681526020018a8a84818110610d2157610d216120cd565b905060200201358152602001888884818110610d3f57610d3f6120cd565b905060200201358152602001868684818110610d5d57610d5d6120cd565b9050602002016020810190610d729190611b5b565b6001600160a01b0316815250828281518110610d9057610d906120cd565b6020908102919091010152600101610c48565b50610db0818a463361148e565b50505050505050505050505050565b60035460408051808201909152601781525f5160206121655f395f51905f526020820152906001600160a01b03163314610e0c5760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b03165f908152600d60205260409020805460ff19166001179055565b6003546001600160a01b0316331480610e515750336001600160a01b038316145b6040518060600160405280602f8152602001612185602f913990610e885760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b038281165f818152600a602052604080822080546001600160a01b0319169486169485179055517fc1416b5cdab50a9fbc872236e1aa54566c6deb40024e63a4b1737ecacf09d6f99190a35050565b610eeb85333085611744565b6040805160018082528183019092525f91816020015b6040805160a0810182525f808252602080830182905292820181905260608201819052608082015282525f19909201910181610f015790505090506040518060a00160405280886001600160a01b03168152602001876001600160a01b03168152602001858152602001848152602001836001600160a01b0316815250815f81518110610f9057610f906120cd565b6020026020010181905250610fa78186463361148e565b50505050505050565b60603415610fbc575f5ffd5b610fce610fc9848461179d565b61182f565b92915050565b335f9081526004602052604090205460ff1680610ffb57506003546001600160a01b031633145b6040518060400160405280601f81526020017f63616c6c657220686173206e6f7420746865207570646174657220726f6c65008152509061104f5760405162461bcd60e51b815260040161062a9190611f4c565b506007548214158061106357506008548114155b6040518060400160405280600f81526020016e616c72656164792070656e64696e6760881b815250906110a95760405162461bcd60e51b815260040161062a9190611f4c565b506040518060600160405280838152602001828152602001600554426110cf91906120f5565b905280516007556020810151600855604090810151600955518190839033907f922a2513428e5d51dd666942f04a14788d1db1ab35373059a8a29f025d6342cb905f90a45050565b60095460408051808201909152600f81526e1b9bc81c195b991a5b99c81c9bdbdd608a1b60208201529061115e5760405162461bcd60e51b815260040161062a9190611f4c565b5060095460408051808201909152601781527f74696d656c6f636b206973206e6f7420657870697265640000000000000000006020820152904210156111b75760405162461bcd60e51b815260040161062a9190611f4c565b506007546008546111c891906116f9565b565b5f805460408051808201909152600f81526e1c9bdbdd081a5cc81b9bdd081cd95d608a1b6020820152906112115760405162461bcd60e51b815260040161062a9190611f4c565b505f54604080516001600160a01b03808a1660208301528816918101919091526060810186905261127c91859185919060800160408051601f19818403018152828252805160209182012090830152016040516020818303038152906040528051906020012061183f565b6040518060400160405280601881526020017f696e76616c69642070726f6f66206f7220657870697265640000000000000000815250906112d05760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b038087165f9081526002602090815260408083209389168352928152908290205482518084019093526011835270636c61696d61626c6520746f6f206c6f7760781b9183019190915285116113405760405162461bcd60e51b815260040161062a9190611f4c565b506001600160a01b038087165f908152600260209081526040808320938916835292905220546113709085612108565b6001600160a01b038088165f8181526002602090815260408083208b8616845282528083208a9055928252600a9052908120549293509116156113cc576001600160a01b038088165f908152600a6020526040902054166113ce565b865b90506113e46001600160a01b0387168284611858565b856001600160a01b0316816001600160a01b0316886001600160a01b03167f913c992353dc81b7a8ba31496c484e9b6306bd2f6c509a649a38fdf5e1c953b28560405161143391815260200190565b60405180910390a45095945050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2905f90a250565b83515f5b81811015611672575f8682815181106114ad576114ad6120cd565b602002602001015190505f604051806101200160405280835f01516001600160a01b0316815260200183602001516001600160a01b031681526020018360400151815260200188815260200183604001518961150991906120f5565b815260208082018990526001600160a01b0380891660408085019190915260608781015181860152608080890151841695810195909552600c80545f908152600b8652839020875181549086166001600160a01b03199182168117835596890151600183018054918816918316821790558986015160028401819055948a015160038401819055988a01516004840181905560a08b0151600585015560c08b0151600685018054918a1691851691909117905560e08b0151600785018190556101008c0151600890950180549986169990941698909817909255925494519899509197959693957f6ff2feb1912bfc5e0f8e6b7e8f9c30db612efb5337419b4da8099d27d2bf88639561164895929493916001600160a01b03959095168552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a4600c8054905f61165f8361211b565b9091555050600190920191506114929050565b50816001600160a01b0316837f1aaff4ec1b83c8c17a0fcd11c5a24abdcac5edef3a00c3bc1afc8b009704010e836040516116af91815260200190565b60405180910390a35050505050565b60058190556040518181527f980b903efea70e6b1bd235b1fb05f1a5da73cbd478b73c9538053f9eb29f129f9060200160405180910390a150565b5f828155600182905542600655600781905560088190556009819055604051829184917f901232fc92ac16700a7d4b60706cbd27dec177bc85c9c2dbd2e2871d63b22a239190a35050565b60405181606052826040528360601b602c526323b872dd60601b600c5260205f6064601c5f895af18060015f51141661178f57803d873b15171061178f57637939f4245f526004601cfd5b505f60605260405250505050565b5f60405190506020815281816020015280604001808360051b808684378201808515611817575b8351870180356020820183375f38823584305af46117e4573d5f873e3d86fd5b5082810384523d815260209384019381013d5f823e5f3d8201523d01601f0167ffffffffffffffe01690508184106117c4575b806040528485820360401b1794505050505092915050565b8060401c816001600160401b0316f35b5f8261184c8686856118af565b1490505b949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526118aa9084906118f0565b505050565b5f81815b848110156118e7576118dd828787848181106118d1576118d16120cd565b905060200201356119c3565b91506001016118b3565b50949350505050565b5f611944826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119f29092919063ffffffff16565b905080515f14806119645750808060200190518101906119649190612133565b6118aa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161062a565b5f8183106119dd575f8281526020849052604090206119eb565b5f8381526020839052604090205b9392505050565b606061185084845f85855f5f866001600160a01b03168587604051611a17919061214e565b5f6040518083038185875af1925050503d805f8114611a51576040519150601f19603f3d011682016040523d82523d5f602084013e611a56565b606091505b5091509150611a6787838387611a72565b979650505050505050565b60608315611ae05782515f03611ad9576001600160a01b0385163b611ad95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161062a565b5081611850565b6118508383815115611af55781518083602001fd5b8060405162461bcd60e51b815260040161062a9190611f4c565b80356001600160a01b0381168114611b25575f5ffd5b919050565b5f5f60408385031215611b3b575f5ffd5b611b4483611b0f565b9150611b5260208401611b0f565b90509250929050565b5f60208284031215611b6b575f5ffd5b6119eb82611b0f565b5f5f5f5f60608587031215611b87575f5ffd5b84359350611b9760208601611b0f565b925060408501356001600160401b03811115611bb1575f5ffd5b8501601f81018713611bc1575f5ffd5b80356001600160401b03811115611bd6575f5ffd5b876020828401011115611be7575f5ffd5b949793965060200194505050565b5f60208284031215611c05575f5ffd5b5035919050565b5f5f60408385031215611c1d575f5ffd5b50508035926020909101359150565b801515811461068f575f5ffd5b5f5f60408385031215611c4a575f5ffd5b611c5383611b0f565b91506020830135611c6381611c2c565b809150509250929050565b5f5f83601f840112611c7e575f5ffd5b5081356001600160401b03811115611c94575f5ffd5b6020830191508360208260051b8501011115611cae575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f5f5f5f60c08c8e031215611ccf575f5ffd5b8b356001600160401b03811115611ce4575f5ffd5b611cf08e828f01611c6e565b909c509a505060208c01356001600160401b03811115611d0e575f5ffd5b611d1a8e828f01611c6e565b909a5098505060408c0135965060608c01356001600160401b03811115611d3f575f5ffd5b611d4b8e828f01611c6e565b90975095505060808c01356001600160401b03811115611d69575f5ffd5b611d758e828f01611c6e565b90955093505060a08c01356001600160401b03811115611d93575f5ffd5b611d9f8e828f01611c6e565b915080935050809150509295989b509295989b9093969950565b5f5f5f5f5f5f60c08789031215611dce575f5ffd5b611dd787611b0f565b9550611de560208801611b0f565b9450604087013593506060870135925060808701359150611e0860a08801611b0f565b90509295509295509295565b5f5f60208385031215611e25575f5ffd5b82356001600160401b03811115611e3a575f5ffd5b611e4685828601611c6e565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611ed757603f19878603018452611ec2858351611e52565b94506020938401939190910190600101611ea6565b50929695505050505050565b5f5f5f5f5f60808688031215611ef7575f5ffd5b611f0086611b0f565b9450611f0e60208701611b0f565b93506040860135925060608601356001600160401b03811115611f2f575f5ffd5b611f3b88828901611c6e565b969995985093965092949392505050565b602081525f6119eb6020830184611e52565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715611f9457611f94611f5e565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611fc257611fc2611f5e565b604052919050565b5f60208284031215611fda575f5ffd5b81356001600160401b03811115611fef575f5ffd5b8201601f81018413611fff575f5ffd5b80356001600160401b0381111561201857612018611f5e565b61202760208260051b01611f9a565b80828252602082019150602060a08402850101925086831115612048575f5ffd5b6020840193505b828410156120c35760a08488031215612066575f5ffd5b61206e611f72565b61207785611b0f565b815261208560208601611b0f565b602082015260408581013590820152606080860135908201526120aa60808601611b0f565b6080820152825260a0939093019260209091019061204f565b9695505050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610fce57610fce6120e1565b81810381811115610fce57610fce6120e1565b5f6001820161212c5761212c6120e1565b5060010190565b5f60208284031215612143575f5ffd5b81516119eb81611c2c565b5f82518060208501845e5f92019182525091905056fe63616c6c6572206973206e6f7420746865206f776e657200000000000000000063616c6c6572206973206e6f7420746865206f776e6572206f72207468652061637475616c20726563697069656e74a264697066735822122016a4b6f79f0a51a74ec50bdd5b6469508e0fbde0d84357c2585b4a05365b56e564736f6c634300081c0033000000000000000000000000428419ad92317b09fe00675f181ac09c87d16450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000