0 txs
1 call
constructor
constructor(address _owner, address _stakingToken)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
earned
viewfunction earned(address account, address _rewardsToken) view returns (uint256)
getRewardForDuration
viewfunction getRewardForDuration(address _rewardsToken) view returns (uint256)
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable(address _rewardsToken) view returns (uint256)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
rewardData
viewfunction rewardData(address) view returns (address rewardsDistributor, uint256 rewardsDuration, uint256 periodFinish, uint256 rewardRate, uint256 lastUpdateTime, uint256 rewardPerTokenStored)
rewardPerToken
viewfunction rewardPerToken(address _rewardsToken) view returns (uint256)
rewards
viewfunction rewards(address, address) view returns (uint256)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
stakingToken
viewfunction stakingToken() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
userRewardPerTokenPaid
viewfunction userRewardPerTokenPaid(address, address) view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
addReward
nonpayablefunction addReward(address _rewardsToken, address _rewardsDistributor, uint256 _rewardsDuration)
exit
nonpayablefunction exit()
getReward
nonpayablefunction getReward()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
notifyRewardAmount
nonpayablefunction notifyRewardAmount(address _rewardsToken, uint256 reward)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, uint256 tokenAmount)
setPaused
nonpayablefunction setPaused(bool _paused)
setRewardsDistributor
nonpayablefunction setRewardsDistributor(address _rewardsToken, address _rewardsDistributor)
setRewardsDuration
nonpayablefunction setRewardsDuration(address _rewardsToken, uint256 _rewardsDuration)
stake
nonpayablefunction stake(uint256 amount)
withdraw
nonpayablefunction withdraw(uint256 amount)
events
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
Recovered
event Recovered(address token, uint256 amount)
RewardAdded
event RewardAdded(uint256 reward)
RewardPaid
event RewardPaid(address indexed user, address indexed rewardsToken, uint256 reward)
RewardsDurationUpdated
event RewardsDurationUpdated(address token, uint256 newDuration)
Staked
event Staked(address indexed user, uint256 amount)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50604051611ccd380380611ccd8339818101604052604081101561003357600080fd5b5080516020909101516001600055816001600160a01b03811661009d576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805160008152602081019290925280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506001546001600160a01b0316610149576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600480546001600160a01b0390921661010002610100600160a81b031990921691909117905550611b4e8061017f6000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c80631627540c1461014e57806316c38b3c1461017657806318160ddd14610195578063211dc32d146101af5780632378bea6146101dd5780632e1a7d4d146102095780633d18b912146102265780633f695b451461022e57806348e5d9f81461025c57806353a47bb7146102bf5780635c975abb146102e3578063638634ee146102ff5780637035ab981461032557806370a082311461035357806372f702f31461037957806379ba5097146103815780637bb7bed1146103895780638980f11f146103a65780638da5cb5b146103d257806391b4ded9146103da578063a694fc3a146103e2578063b66503cf146103ff578063bcd110141461042b578063d0ed26ae14610451578063e70b9e2714610487578063e9fad8ee146104b5578063f1229777146104bd575b600080fd5b6101746004803603602081101561016457600080fd5b50356001600160a01b03166104e3565b005b6101746004803603602081101561018c57600080fd5b5035151561053f565b61019d6105b9565b60408051918252519081900360200190f35b61019d600480360360408110156101c557600080fd5b506001600160a01b03813581169160200135166105bf565b610174600480360360408110156101f357600080fd5b506001600160a01b038135169060200135610672565b6101746004803603602081101561021f57600080fd5b50356107b5565b6101746109dd565b6101746004803603604081101561024457600080fd5b506001600160a01b0381358116916020013516610bed565b6102826004803603602081101561027257600080fd5b50356001600160a01b0316610c23565b604080516001600160a01b0390971687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b6102c7610c62565b604080516001600160a01b039092168252519081900360200190f35b6102eb610c71565b604080519115158252519081900360200190f35b61019d6004803603602081101561031557600080fd5b50356001600160a01b0316610c7a565b61019d6004803603604081101561033b57600080fd5b506001600160a01b0381358116916020013516610ca9565b61019d6004803603602081101561036957600080fd5b50356001600160a01b0316610cc6565b6102c7610ce1565b610174610cf5565b6102c76004803603602081101561039f57600080fd5b5035610db1565b610174600480360360408110156103bc57600080fd5b506001600160a01b038135169060200135610dd8565b6102c7610eb0565b61019d610ebf565b610174600480360360208110156103f857600080fd5b5035610ec5565b6101746004803603604081101561041557600080fd5b506001600160a01b03813516906020013561112a565b61019d6004803603602081101561044157600080fd5b50356001600160a01b0316611404565b6101746004803603606081101561046757600080fd5b506001600160a01b03813581169160208101359091169060400135611436565b61019d6004803603604081101561049d57600080fd5b506001600160a01b03813581169160200135166114d2565b6101746114ef565b61019d600480360360208110156104d357600080fd5b50356001600160a01b0316611512565b6104eb6115c5565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6105476115c5565b60045460ff161515811515141561055d576105b6565b6004805460ff1916821515179081905560ff161561057a57426003555b6004546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60095490565b6001600160a01b038083166000818152600860209081526040808320948616808452948252808320549383526007825280832094835293905291822054610669919061065d90670de0b6b3a7640000906106519061062c9061062089611512565b9063ffffffff61160e16565b6001600160a01b0389166000908152600a60205260409020549063ffffffff61166b16565b9063ffffffff6116c416565b9063ffffffff61172b16565b90505b92915050565b6001600160a01b03821660009081526005602052604090206002015442116106de576040805162461bcd60e51b815260206004820152601a60248201527952657761726420706572696f64207374696c6c2061637469766560301b604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416331461070457600080fd5b60008111610759576040805162461bcd60e51b815260206004820181905260248201527f526577617264206475726174696f6e206d757374206265206e6f6e2d7a65726f604482015290519081900360640190fd5b6001600160a01b0382166000818152600560209081526040918290206001018490558151928352820183905280517fad2f86b01ed93b4b3a150d448c61a4f5d8d38075d3c0c64cc0a26fd6e1f495459281900390910190a15050565b600080546001018082559033905b6006548110156108a8576000600682815481106107dc57fe5b6000918252602090912001546001600160a01b031690506107fc81611512565b6001600160a01b0382166000908152600560208190526040909120015561082281610c7a565b6001600160a01b0380831660009081526005602052604090206004019190915583161561089f5761085383826105bf565b6001600160a01b03808516600081815260086020908152604080832094871680845294825280832095909555600580825285832001549282526007815284822093825292909252919020555b506001016107c3565b50600083116108f2576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b600954610905908463ffffffff61160e16565b600955336000908152600a6020526040902054610928908463ffffffff61160e16565b336000818152600a602052604090209190915560045461095e916101009091046001600160a01b0316908563ffffffff61178316565b60408051848152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25060005481146109d9576040805162461bcd60e51b815260206004820152601f6024820152600080516020611a0f833981519152604482015290519081900360640190fd5b5050565b600080546001018082559033905b600654811015610ad057600060068281548110610a0457fe5b6000918252602090912001546001600160a01b03169050610a2481611512565b6001600160a01b03821660009081526005602081905260409091200155610a4a81610c7a565b6001600160a01b03808316600090815260056020526040902060040191909155831615610ac757610a7b83826105bf565b6001600160a01b03808516600081815260086020908152604080832094871680845294825280832095909555600580825285832001549282526007815284822093825292909252919020555b506001016109eb565b5060005b600654811015610ba757600060068281548110610aed57fe5b60009182526020808320909101543383526008825260408084206001600160a01b03909216808552919092529120549091508015610b9d573360008181526008602090815260408083206001600160a01b0387168085529252822091909155610b5c918363ffffffff61178316565b6040805182815290516001600160a01b0384169133917f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e9181900360200190a35b5050600101610ad4565b505060005481146105b6576040805162461bcd60e51b815260206004820152601f6024820152600080516020611a0f833981519152604482015290519081900360640190fd5b610bf56115c5565b6001600160a01b03918216600090815260056020526040902080546001600160a01b03191691909216179055565b60056020819052600091825260409091208054600182015460028301546003840154600485015494909501546001600160a01b03909316949193909286565b6002546001600160a01b031681565b60045460ff1681565b6001600160a01b038116600090815260056020526040812060020154610ca19042906117da565b90505b919050565b600760209081526000928352604080842090915290825290205481565b6001600160a01b03166000908152600a602052604090205490565b60045461010090046001600160a01b031681565b6002546001600160a01b03163314610d3e5760405162461bcd60e51b8152600401808060200182810382526035815260200180611a2f6035913960400191505060405180910390fd5b600154600254604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160028054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60068181548110610dbe57fe5b6000918252602090912001546001600160a01b0316905081565b610de06115c5565b6004546001600160a01b03838116610100909204161415610e48576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207769746864726177207374616b696e6720746f6b656e000000604482015290519081900360640190fd5b600154610e68906001600160a01b0384811691168363ffffffff61178316565b604080516001600160a01b03841681526020810183905281517f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28929181900390910190a15050565b6001546001600160a01b031681565b60035481565b600080546001019081905560045460ff1615610f125760405162461bcd60e51b815260040180806020018281038252603c815260200180611ab4603c913960400191505060405180910390fd5b3360005b600654811015610ffb57600060068281548110610f2f57fe5b6000918252602090912001546001600160a01b03169050610f4f81611512565b6001600160a01b03821660009081526005602081905260409091200155610f7581610c7a565b6001600160a01b03808316600090815260056020526040902060040191909155831615610ff257610fa683826105bf565b6001600160a01b03808516600081815260086020908152604080832094871680845294825280832095909555600580825285832001549282526007815284822093825292909252919020555b50600101610f16565b5060008311611042576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b600954611055908463ffffffff61172b16565b600955336000908152600a6020526040902054611078908463ffffffff61172b16565b336000818152600a60205260409020919091556004546110af916101009091046001600160a01b031690308663ffffffff6117f016565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25060005481146109d9576040805162461bcd60e51b815260206004820152601f6024820152600080516020611a0f833981519152604482015290519081900360640190fd5b6000805b6006548110156112135760006006828154811061114757fe5b6000918252602090912001546001600160a01b0316905061116781611512565b6001600160a01b0382166000908152600560208190526040909120015561118d81610c7a565b6001600160a01b0380831660009081526005602052604090206004019190915583161561120a576111be83826105bf565b6001600160a01b03808516600081815260086020908152604080832094871680845294825280832095909555600580825285832001549282526007815284822093825292909252919020555b5060010161112e565b506001600160a01b0383811660009081526005602052604090205416331461123a57600080fd5b6112556001600160a01b03841633308563ffffffff6117f016565b6001600160a01b03831660009081526005602052604090206002015442106112c5576001600160a01b0383166000908152600560205260409020600101546112a490839063ffffffff6116c416565b6001600160a01b038416600090815260056020526040902060030155611374565b6001600160a01b0383166000908152600560205260408120600201546112f1904263ffffffff61160e16565b6001600160a01b0385166000908152600560205260408120600301549192509061132290839063ffffffff61166b16565b6001600160a01b03861660009081526005602052604090206001015490915061135590610651868463ffffffff61172b16565b6001600160a01b03861660009081526005602052604090206003015550505b6001600160a01b038316600090815260056020526040902042600482018190556001909101546113aa919063ffffffff61172b16565b6001600160a01b03841660009081526005602090815260409182902060020192909255805184815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d929181900390910190a1505050565b6001600160a01b03811660009081526005602052604081206001810154600390910154610ca19163ffffffff61166b16565b61143e6115c5565b6001600160a01b0383166000908152600560205260409020600101541561146457600080fd5b6006805460018181019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b039586166001600160a01b031991821681179092556000918252600560205260409091208054949095169316929092178355910155565b600860209081526000928352604080842090915290825290205481565b336000908152600a6020526040902054611508906107b5565b6115106109dd565b565b60006009546000141561154257506001600160a01b03811660009081526005602081905260409091200154610ca4565b6009546001600160a01b03831660009081526005602052604090206003810154600490910154610ca19261159c92909161065191670de0b6b3a764000091611590919082906106208b610c7a565b9063ffffffff61166b16565b6001600160a01b038416600090815260056020819052604090912001549063ffffffff61172b16565b6001546001600160a01b031633146115105760405162461bcd60e51b815260040180806020018281038252602f815260200180611a64602f913960400191505060405180910390fd5b600082821115611665576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261167a5750600061066c565b8282028284828161168757fe5b04146106695760405162461bcd60e51b8152600401808060200182810382526021815260200180611a936021913960400191505060405180910390fd5b6000808211611717576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b600082848161172257fe5b04949350505050565b600082820183811015610669576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526117d5908490611850565b505050565b60008183106117e95781610669565b5090919050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261184a908590611850565b50505050565b611862826001600160a01b0316611a08565b6118b3576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106118f15780518252601f1990920191602091820191016118d2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611953576040519150601f19603f3d011682016040523d82523d6000602084013e611958565b606091505b5091509150816119af576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b80511561184a578080602001905160208110156119cb57600080fd5b505161184a5760405162461bcd60e51b815260040180806020018281038252602a815260200180611af0602a913960400191505060405180910390fd5b3b15159056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e7472616374206973207061757365645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158207532194569f821aeba5c5e876321de038fc2b462afde7930d46087db3c7d365b64736f6c6343000511003200000000000000000000000017c9ba3fda7ec71ccfd75f978ef31e21927aff3d0000000000000000000000003520e1a10038131a3c00bf2158835a75e929642d