0 txs
16 calls
constructor
constructor()
functions
allEarned
viewfunction allEarned(address _account) view returns (uint256[] pendingBonusRewards)
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
duration
viewfunction duration() view returns (uint256)
earned
viewfunction earned(address _account, address _rewardToken) view returns (uint256)
getRewardLength
viewfunction getRewardLength() view returns (uint256)
getUserAmountTime
viewfunction getUserAmountTime(address _account) view returns (uint256)
isRewardQueuer
viewfunction isRewardQueuer(address) view returns (bool)
isRewardToken
viewfunction isRewardToken(address) view returns (bool)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable(address _rewardToken) view returns (uint256)
owner
viewfunction owner() view returns (address)
receipTokenDecimal
viewfunction receipTokenDecimal() view returns (uint256)
rewardPerToken
viewfunction rewardPerToken(address _rewardToken) view returns (uint256)
rewards
viewfunction rewards(address) view returns (uint256 periodFinish, uint256 rewardRate, uint256 lastUpdateTime, uint256 rewardPerTokenStored, uint256 queuedRewards)
rewardTokenInfos
viewfunction rewardTokenInfos() view returns (address[] bonusTokenAddresses, string[] bonusTokenSymbols)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
totalStaked
viewfunction totalStaked() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
userAmountTime
viewfunction userAmountTime(address) view returns (uint256)
userLastTime
viewfunction userLastTime(address) view returns (uint256)
userRewards
viewfunction userRewards(address, address) view returns (uint256 userRewardPerTokenPaid, uint256 rewards)
vlToken
viewfunction vlToken() view returns (address)
donateRewards
nonpayablefunction donateRewards(address _rewardToken, uint256 _rewards)
getReward
nonpayablefunction getReward(address _account, address[] _rewardTokens) returns (bool)
initialize
nonpayablefunction initialize(address _rewardQueuer, address _vlToken, address _underlying, uint256 _duration)
queueNewRewards
nonpayablefunction queueNewRewards(uint256 _rewards, address _rewardToken) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
setDuration
nonpayablefunction setDuration(uint256 _duration)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateFor
nonpayablefunction updateFor(address _account)
updateRewardQueuer
nonpayablefunction updateRewardQueuer(address _rewardManager, bool _allowed)
events
DurationUpdated
event DurationUpdated(uint256 oldDuration, uint256 newDuration)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardPaid
event RewardPaid(address indexed _user, address indexed _receiver, uint256 _reward, address indexed _rewardToken)
RewardQueued
event RewardQueued(address rewardToken, uint256 rewardAmount)
RewardQueuerUpdated
event RewardQueuerUpdated(address _manager, bool _allowed)
RewardTokenAdded
event RewardTokenAdded(address indexed _rewardToken)
errors
InvalidRewardableAmount
error InvalidRewardableAmount()
InvalidToken
error InvalidToken()
OnlyRewardQueuer
error OnlyRewardQueuer()
onlyVLEigenpie
error onlyVLEigenpie()
ZeroAddress
error ZeroAddress()
creation bytecode
0x608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6122c380620000e75f395ff3fe608060405234801561000f575f80fd5b50600436106101dc575f3560e01c8063817b1cd211610109578063b65a7ea51161009e578063f12297771161006e578063f1229777146104aa578063f12f0f39146104bd578063f2fde38b146104d0578063f6be71d1146104e3575f80fd5b8063b65a7ea514610451578063cf756fdf14610470578063d47c3bf814610483578063e18b7029146104a2575f80fd5b8063918f8674116100d9578063918f8674146103d4578063a980356a146103e0578063b1f7772214610426578063b5fd73f81461042f575f80fd5b8063817b1cd21461039557806386b8ea201461039d5780638da5cb5b146103b05780638fcf4822146103c1575f80fd5b806345b507e31161017f57806370a082311161014f57806370a0823114610354578063715018a61461036757806371daff751461036f5780637bb7bed114610382575f80fd5b806345b507e3146102e057806352146cdb146102f6578063638634ee146103165780636f307dc314610329575f80fd5b80630fb5a6b4116101ba5780630fb5a6b414610290578063211dc32d146102a757806331279d3d146102ba57806334a887bc146102cd575f80fd5b80630700037d146101e05780630970491e146102495780630e0a59681461027b575b5f80fd5b61021c6101ee366004611bd4565b609a6020525f9081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0015b60405180910390f35b61026b610257366004611bd4565b609f6020525f908152604090205460ff1681565b6040519015158152602001610240565b61028e610289366004611bd4565b6104f6565b005b61029960985481565b604051908152602001610240565b6102996102b5366004611bed565b61056d565b61026b6102c8366004611c7c565b61060f565b61028e6102db366004611d37565b6106b8565b6102e86107c8565b604051610240929190611dac565b610309610304366004611bd4565b61097f565b6040516102409190611e4b565b610299610324366004611bd4565b610a3a565b60a15461033c906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b610299610362366004611bd4565b610a5d565b61028e610ae2565b61028e61037d366004611e9b565b610af5565b61033c610390366004611ed0565b610b7e565b610299610ba6565b6102996103ab366004611bd4565b610c2f565b6033546001600160a01b031661033c565b61026b6103cf366004611ee7565b610cc5565b61029964e8d4a5100081565b6104116103ee366004611bed565b609c60209081525f92835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610240565b61029960995481565b61026b61043d366004611bd4565b609b6020525f908152604090205460ff1681565b61029961045f366004611bd4565b609d6020525f908152604090205481565b61028e61047e366004611f08565b610d8d565b610299610491366004611bd4565b609e6020525f908152604090205481565b609754610299565b6102996104b8366004611bd4565b61102e565b60a05461033c906001600160a01b031681565b61028e6104de366004611bd4565b6110fe565b61028e6104f1366004611ed0565b6111a5565b6104fe6111eb565b61056081609780548060200260200160405190810160405280929190818152602001828054801561055657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610538575b505050505061125e565b61056a6001606555565b50565b6001600160a01b038082165f908152609c602090815260408083209386168352928152828220835180850190945280548452600101549083018190526099549192916105ba90600a61209b565b6105c99064e8d4a510006120a6565b82516105d48661102e565b6105de91906120bd565b6105e787610a5d565b6105f191906120a6565b6105fb91906120d0565b6106059190612108565b9150505b92915050565b5f6106186111eb565b60a0546001600160a01b0316331461065c576040517f8ea9c0e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610666838361125e565b5f5b82518110156106a9575f8382815181106106845761068461211b565b602002602001015190506106988582611364565b506106a281612148565b9050610668565b50600190506106096001606555565b6106c06111eb565b335f908152609f602052604090205460ff16610708576040517f64af410500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f908152609b602052604090205460ff16610759576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61076e6001600160a01b038316333084611409565b61077881836114c0565b604080516001600160a01b0384168152602081018390527f66de3649755ba0fe643a161cef203044bdd37f1b2c8b778d821b25e8044a2667910160405180910390a16107c46001606555565b5050565b60975460609081908067ffffffffffffffff8111156107e9576107e9611c1e565b604051908082528060200260200182016040528015610812578160200160208202803683370190505b5092508067ffffffffffffffff81111561082e5761082e611c1e565b60405190808252806020026020018201604052801561086157816020015b606081526020019060019003908161084c5790505b5091505f5b8181101561097957609781815481106108815761088161211b565b905f5260205f20015f9054906101000a90046001600160a01b03168482815181106108ae576108ae61211b565b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106108e0576108e061211b565b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610922573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610949919081019061217f565b83828151811061095b5761095b61211b565b6020026020010181905250808061097190612148565b915050610866565b50509091565b6097546060908067ffffffffffffffff81111561099e5761099e611c1e565b6040519080825280602002602001820160405280156109c7578160200160208202803683370190505b5091505f5b81811015610a3357610a0484609783815481106109eb576109eb61211b565b5f918252602090912001546001600160a01b031661056d565b838281518110610a1657610a1661211b565b602090810291909101015280610a2b81612148565b9150506109cc565b5050919050565b6001600160a01b0381165f908152609a60205260408120546106099042906115c9565b60a0546040517f22607c610000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f9216906322607c6190602401602060405180830381865afa158015610abe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610609919061220e565b610aea6115de565b610af35f611652565b565b610afd6115de565b6001600160a01b0382165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527fd1269d6e6064774f319a3f68b7b15e10b2de0d64c216895a92f6cffe162e8a0a91015b60405180910390a15050565b60978181548110610b8d575f80fd5b5f918252602090912001546001600160a01b0316905081565b60a054604080517f5689141200000000000000000000000000000000000000000000000000000000815290515f926001600160a01b03169163568914129160048083019260209291908290030181865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a919061220e565b905090565b6001600160a01b0381165f908152609d6020526040812054808203610c5657505f92915050565b5f610c6084610a5d565b9050805f03610c86575050506001600160a01b03165f908152609e602052604090205490565b80610c9183426120bd565b610c9b91906120a6565b6001600160a01b0385165f908152609e6020526040902054610cbd9190612108565b949350505050565b5f610cce6111eb565b335f908152609f602052604090205460ff16610d16576040517f64af410500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1f826116bb565b610d346001600160a01b038316333086611409565b610d3e83836114c0565b604080516001600160a01b0384168152602081018590527f66de3649755ba0fe643a161cef203044bdd37f1b2c8b778d821b25e8044a2667910160405180910390a15060016106096001606555565b5f54610100900460ff1615808015610dab57505f54600160ff909116105b80610dc45750303b158015610dc457505f5460ff166001145b610e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610eb1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610eb96117e2565b6001600160a01b038086165f908152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905581517f313ce56700000000000000000000000000000000000000000000000000000000815291519287169263313ce5679260048082019392918290030181865afa158015610f4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f729190612225565b60ff16609955609882905560a080546001600160a01b038087167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560a18054928616929091169190911790558015611027575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0381165f908152609a60209081526040808320815160a0810183528154815260018201549381019390935260028101549183019190915260038101546060830152600401546080820152611087610ba6565b5f03611097576060015192915050565b61109f610ba6565b60208201516099546110b290600a61209b565b83604001516110c087610a3a565b6110ca91906120bd565b6110d491906120a6565b6110de91906120a6565b6110e891906120d0565b81606001516110f79190612108565b9392505050565b6111066115de565b6001600160a01b03811661119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610e4c565b61056a81611652565b6111ad6115de565b609880549082905560408051828152602081018490527ff899c6d536e6cda78c5f4dce43ca0e8c47167deb2875ea8b777f21cc85899b1f9101610b72565b600260655403611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610e4c565b6002606555565b5f5b815181101561132d575f82828151811061127c5761127c61211b565b602002602001015190505f609a5f836001600160a01b03166001600160a01b031681526020019081526020015f2090506112b58261102e565b60038201556112c382610a3a565b60028201556001600160a01b038083165f908152609c602090815260408083209389168352929052206112f6868461056d565b60018201556001600160a01b039092165f908152609a6020526040902060030154909155508061132581612148565b915050611260565b5061133782610c2f565b6001600160a01b039092165f908152609e6020908152604080832094909455609d90529190912042905550565b6001600160a01b038181165f908152609c60209081526040808320938616835292905290812060010180549190558015611404576113ac6001600160a01b0383168483611880565b816001600160a01b0316836001600160a01b0316846001600160a01b03167f7fe1dfb5fd2a01640e1b559e082ce63e369d4d61e01dc0caec9521e55a8d1e4f846040516113fb91815260200190565b60405180910390a45b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526114ba9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526118c9565b50505050565b6114cf64e8d4a51000836120a6565b6001600160a01b0382165f908152609a602052604090209092506114f1610ba6565b5f03611524578281600401546115079190612108565b6004820181905560985461151a916120d0565b6001909101555050565b61152d8261102e565b600382015560048101546115419084612108565b5f6004830155815490935042106115695760985461155f90846120d0565b60018201556115af565b80545f906115789042906120bd565b90505f82600101548261158b91906120a6565b90506115978186612108565b9450609854856115a791906120d0565b600184015550505b42600282018190556098546115c391612108565b90555050565b5f8183106115d757816110f7565b5090919050565b6033546001600160a01b03163314610af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e4c565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0381166116fb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381165f908152609b602052604090205460ff161561171e5750565b6097805460018082019092557f354a83ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff90180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091555f818152609b602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909417909355915190917ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf82691a250565b5f54610100900460ff16611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e4c565b610af36119c9565b6040516001600160a01b0383166024820152604481018290526114049084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611456565b5f61191d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a689092919063ffffffff16565b905080515f148061193d57508080602001905181019061193d9190612245565b611404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e4c565b5f54610100900460ff16611a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610e4c565b610af333611652565b6060610cbd84845f85855f80866001600160a01b03168587604051611a8d9190612260565b5f6040518083038185875af1925050503d805f8114611ac7576040519150601f19603f3d011682016040523d82523d5f602084013e611acc565b606091505b5091509150611add87838387611ae8565b979650505050505050565b60608315611b705782515f03611b69576001600160a01b0385163b611b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e4c565b5081610cbd565b610cbd8383815115611b855781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c919061227b565b80356001600160a01b0381168114611bcf575f80fd5b919050565b5f60208284031215611be4575f80fd5b6110f782611bb9565b5f8060408385031215611bfe575f80fd5b611c0783611bb9565b9150611c1560208401611bb9565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7457611c74611c1e565b604052919050565b5f8060408385031215611c8d575f80fd5b611c9683611bb9565b915060208084013567ffffffffffffffff80821115611cb3575f80fd5b818601915086601f830112611cc6575f80fd5b813581811115611cd857611cd8611c1e565b8060051b9150611ce9848301611c4b565b8181529183018401918481019089841115611d02575f80fd5b938501935b83851015611d2757611d1885611bb9565b82529385019390850190611d07565b8096505050505050509250929050565b5f8060408385031215611d48575f80fd5b611d5183611bb9565b946020939093013593505050565b5f5b83811015611d79578181015183820152602001611d61565b50505f910152565b5f8151808452611d98816020860160208601611d5f565b601f01601f19169290920160200192915050565b604080825283519082018190525f906020906060840190828701845b82811015611ded5781516001600160a01b031684529284019290840190600101611dc8565b50505083810382850152845180825282820190600581901b830184018785015f5b83811015611e3c57601f19868403018552611e2a838351611d81565b94870194925090860190600101611e0e565b50909998505050505050505050565b602080825282518282018190525f9190848201906040850190845b81811015611e8257835183529284019291840191600101611e66565b50909695505050505050565b801515811461056a575f80fd5b5f8060408385031215611eac575f80fd5b611eb583611bb9565b91506020830135611ec581611e8e565b809150509250929050565b5f60208284031215611ee0575f80fd5b5035919050565b5f8060408385031215611ef8575f80fd5b82359150611c1560208401611bb9565b5f805f8060808587031215611f1b575f80fd5b611f2485611bb9565b9350611f3260208601611bb9565b9250611f4060408601611bb9565b9396929550929360600135925050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611fd657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611fbc57611fbc611f50565b80851615611fc957918102915b93841c9390800290611f82565b509250929050565b5f82611fec57506001610609565b81611ff857505f610609565b816001811461200e576002811461201857612034565b6001915050610609565b60ff84111561202957612029611f50565b50506001821b610609565b5060208310610133831016604e8410600b8410161715612057575081810a610609565b6120618383611f7d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561209357612093611f50565b029392505050565b5f6110f78383611fde565b808202811582820484141761060957610609611f50565b8181038181111561060957610609611f50565b5f82612103577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8082018082111561060957610609611f50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361217857612178611f50565b5060010190565b5f6020828403121561218f575f80fd5b815167ffffffffffffffff808211156121a6575f80fd5b818401915084601f8301126121b9575f80fd5b8151818111156121cb576121cb611c1e565b6121de6020601f19601f84011601611c4b565b91508082528560208285010111156121f4575f80fd5b612205816020840160208601611d5f565b50949350505050565b5f6020828403121561221e575f80fd5b5051919050565b5f60208284031215612235575f80fd5b815160ff811681146110f7575f80fd5b5f60208284031215612255575f80fd5b81516110f781611e8e565b5f8251612271818460208701611d5f565b9190910192915050565b602081525f6110f76020830184611d8156fea2646970667358221220fbe7cf3ef71af88ca91b0037becb140e55d110a43d1cadfd23a4049e31e429de64736f6c63430008150033