0 txs
2 calls
constructor
constructor(address _owner, address _rewardsDistribution, address _rewardsToken, address _stakingToken)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
earned
viewfunction earned(address account) view returns (uint256)
getRewardForDuration
viewfunction getRewardForDuration() view returns (uint256)
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable() view returns (uint256)
lastUpdateTime
viewfunction lastUpdateTime() view returns (uint256)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
periodFinish
viewfunction periodFinish() view returns (uint256)
rewardPerToken
viewfunction rewardPerToken() view returns (uint256)
rewardPerTokenStored
viewfunction rewardPerTokenStored() view returns (uint256)
rewardRate
viewfunction rewardRate() view returns (uint256)
rewards
viewfunction rewards(address) view returns (uint256)
rewardsDistribution
viewfunction rewardsDistribution() view returns (address)
rewardsDuration
viewfunction rewardsDuration() view returns (uint256)
rewardsToken
viewfunction rewardsToken() view returns (address)
stakingToken
viewfunction stakingToken() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
userRewardPerTokenPaid
viewfunction userRewardPerTokenPaid(address) view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
exit
nonpayablefunction exit()
getReward
nonpayablefunction getReward()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
notifyRewardAmount
nonpayablefunction notifyRewardAmount(uint256 reward)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, uint256 tokenAmount)
setPaused
nonpayablefunction setPaused(bool _paused)
setRewardsDistribution
nonpayablefunction setRewardsDistribution(address _rewardsDistribution)
setRewardsDuration
nonpayablefunction setRewardsDuration(uint256 _rewardsDuration)
stake
nonpayablefunction stake(uint256 amount, uint16 referral)
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)
Referral
event Referral(uint16 indexed referral, address indexed user, uint256 amount)
RewardAdded
event RewardAdded(uint256 reward)
RewardPaid
event RewardPaid(address indexed user, uint256 reward)
RewardsDistributionUpdated
event RewardsDistributionUpdated(address newRewardsDistribution)
RewardsDurationUpdated
event RewardsDurationUpdated(uint256 newDuration)
Staked
event Staked(address indexed user, uint256 amount)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x60c06040526000600655600060075562093a806008553480156200002257600080fd5b50604051620018b4380380620018b48339810160408190526200004591620001c5565b83806001600160a01b038116620000a35760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1505060016004556001600160a01b0380821690831603620001765760405162461bcd60e51b815260206004820152602f60248201527f5265776172647320616e64207374616b696e6720746f6b656e73206d7573742060448201526e6e6f74206265207468652073616d6560881b60648201526084016200009a565b6001600160a01b03918216608052811660a052600580546001600160a01b031916929091169190911790555062000222565b80516001600160a01b0381168114620001c057600080fd5b919050565b60008060008060808587031215620001dc57600080fd5b620001e785620001a8565b9350620001f760208601620001a8565b92506200020760408601620001a8565b91506200021760608601620001a8565b905092959194509250565b60805160a0516116496200026b600039600081816103580152818161070401528181610c2c0152610e7701526000818161041e015281816108b50152610a6601526116496000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c806372f702f31161010f578063a694fc3a116100a2578063d1af0c7d11610071578063d1af0c7d14610419578063df136d6514610440578063e9fad8ee14610449578063ebe2b12b1461045157600080fd5b8063a694fc3a146103e2578063c8f33c91146103f5578063cc1a378f146103fe578063cd3daf9d1461041157600080fd5b80638980f11f116100de5780638980f11f146103935780638b876347146103a65780638da5cb5b146103c657806391b4ded9146103d957600080fd5b806372f702f31461035357806379ba50971461037a5780637b0a47ee1461038257806380faa57d1461038b57600080fd5b8063386a95251161018757806342ea02c11161015657806342ea02c1146102e757806353a47bb7146102fa5780635c975abb1461030d57806370a082311461032a57600080fd5b8063386a9525146102985780633c6b16ab146102a15780633d18b912146102b45780633fc6df6e146102bc57600080fd5b806318160ddd116101c357806318160ddd14610262578063197621431461026a5780631c1f78eb1461027d5780632e1a7d4d1461028557600080fd5b80628cc262146101f45780630700037d1461021a5780631627540c1461023a57806316c38b3c1461024f575b600080fd5b610207610202366004611426565b61045a565b6040519081526020015b60405180910390f35b610207610228366004611426565b600c6020526000908152604090205481565b61024d610248366004611426565b6104d7565b005b61024d61025d366004611456565b610534565b600d54610207565b61024d610278366004611426565b6105a6565b6102076105fc565b61024d610293366004611473565b610613565b61020760085481565b61024d6102af366004611473565b610774565b61024d6109d7565b6005546102cf906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b61024d6102f536600461148c565b610ad9565b6001546102cf906001600160a01b031681565b60035461031a9060ff1681565b6040519015158152602001610211565b610207610338366004611426565b6001600160a01b03166000908152600e602052604090205490565b6102cf7f000000000000000000000000000000000000000000000000000000000000000081565b61024d610b21565b61020760075481565b610207610c0b565b61024d6103a13660046114c3565b610c22565b6102076103b4366004611426565b600b6020526000908152604090205481565b6000546102cf906001600160a01b031681565b61020760025481565b61024d6103f0366004611473565b610d15565b61020760095481565b61024d61040c366004611473565b610ed9565b610207610fb5565b6102cf7f000000000000000000000000000000000000000000000000000000000000000081565b610207600a5481565b61024d611016565b61020760065481565b6001600160a01b0381166000908152600c6020908152604080832054600b909252822054670de0b6b3a764000090610490610fb5565b61049a9190611503565b6001600160a01b0385166000908152600e60205260409020546104bd9190611516565b6104c79190611535565b6104d19190611557565b92915050565b6104df611037565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b61053c611037565b60035460ff161515811515146105a3576003805460ff191682151590811790915560ff161561056a57426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610529565b50565b6105ae611037565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f1c794a043683a294127c95bc365bae91b63b651eb9884a2c9120afee2bb690b490602001610529565b600060085460075461060e9190611516565b905090565b61061b6110a9565b33610624610fb5565b600a5561062f610c0b565b6009556001600160a01b038116156106765761064a8161045a565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b600082116106bf5760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b60448201526064015b60405180910390fd5b81600d546106cd9190611503565b600d55336000908152600e60205260409020546106eb908390611503565b336000818152600e6020526040902091909155610733907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169084611102565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a2506105a36001600455565b6005546001600160a01b031633146107e15760405162461bcd60e51b815260206004820152602a60248201527f43616c6c6572206973206e6f742052657761726473446973747269627574696f6044820152691b8818dbdb9d1c9858dd60b21b60648201526084016106b6565b60006107eb610fb5565b600a556107f6610c0b565b6009556001600160a01b0381161561083d576108118161045a565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b600654421061085b576008546108539083611535565b60075561089d565b60004260065461086b9190611503565b905060006007548261087d9190611516565b60085490915061088d8286611557565b6108979190611535565b60075550505b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610928919061156a565b9050600854816109389190611535565b60075411156109895760405162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f2068696768000000000000000060448201526064016106b6565b42600981905560085461099b91611557565b6006556040518381527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d906020015b60405180910390a1505050565b6109df6110a9565b336109e8610fb5565b600a556109f3610c0b565b6009556001600160a01b03811615610a3a57610a0e8161045a565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b336000908152600c60205260409020548015610acb57336000818152600c6020526040812055610a95907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169083611102565b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e04869060200160405180910390a25b5050610ad76001600455565b565b610ae282610d15565b604051828152339061ffff8316907f16902e34d01e8d5f80ce64939920a1390ff67f2546ae43ae72ac4820333009689060200160405180910390a35050565b6001546001600160a01b03163314610b995760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016106b6565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006006544210610c1d575060065490565b504290565b610c2a611037565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610cb55760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420776974686472617720746865207374616b696e6720746f6b656044820152603760f91b60648201526084016106b6565b600054610ccf906001600160a01b03848116911683611102565b604080516001600160a01b0384168152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910160405180910390a15050565b610d1d6110a9565b60035460ff1615610d965760405162461bcd60e51b815260206004820152603c60248201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060448201527f7768696c652074686520636f6e7472616374206973207061757365640000000060648201526084016106b6565b33610d9f610fb5565b600a55610daa610c0b565b6009556001600160a01b03811615610df157610dc58161045a565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b60008211610e325760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016106b6565b81600d54610e409190611557565b600d55336000908152600e6020526040902054610e5e908390611557565b336000818152600e6020526040902091909155610ea7907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690308561116a565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610761565b610ee1611037565b6000610eeb610fb5565b600a55610ef6610c0b565b6009556001600160a01b03811615610f3d57610f118161045a565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b60065442811115610f8057600754600090610f584284611503565b610f629190611516565b9050610f6e8482611535565b600755610f7b8442611557565b600655505b60088390556040518381527ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d3906020016109ca565b6000600d54600003610fc85750600a5490565b600d54600754600954610fd9610c0b565b610fe39190611503565b610fed9190611516565b610fff90670de0b6b3a7640000611516565b6110099190611535565b600a5461060e9190611557565b336000908152600e602052604090205461102f90610613565b610ad76109d7565b6000546001600160a01b03163314610ad75760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016106b6565b6002600454036110fb5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106b6565b6002600455565b6040516001600160a01b03831660248201526044810182905261116590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526111a8565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526111a29085906323b872dd60e01b9060840161112e565b50505050565b60006111fd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661127a9092919063ffffffff16565b805190915015611165578080602001905181019061121b9190611583565b6111655760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106b6565b60606112898484600085611291565b949350505050565b6060824710156112f25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106b6565b600080866001600160a01b0316858760405161130e91906115c4565b60006040518083038185875af1925050503d806000811461134b576040519150601f19603f3d011682016040523d82523d6000602084013e611350565b606091505b50915091506113618783838761136c565b979650505050505050565b606083156113db5782516000036113d4576001600160a01b0385163b6113d45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106b6565b5081611289565b61128983838151156113f05781518083602001fd5b8060405162461bcd60e51b81526004016106b691906115e0565b80356001600160a01b038116811461142157600080fd5b919050565b60006020828403121561143857600080fd5b6114418261140a565b9392505050565b80151581146105a357600080fd5b60006020828403121561146857600080fd5b813561144181611448565b60006020828403121561148557600080fd5b5035919050565b6000806040838503121561149f57600080fd5b82359150602083013561ffff811681146114b857600080fd5b809150509250929050565b600080604083850312156114d657600080fd5b6114df8361140a565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104d1576104d16114ed565b6000816000190483118215151615611530576115306114ed565b500290565b60008261155257634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104d1576104d16114ed565b60006020828403121561157c57600080fd5b5051919050565b60006020828403121561159557600080fd5b815161144181611448565b60005b838110156115bb5781810151838201526020016115a3565b50506000910152565b600082516115d68184602087016115a0565b9190910192915050565b60208152600082518060208401526115ff8160408501602087016115a0565b601f01601f1916919091016040019291505056fea2646970667358221220f4b2af5d8fc0126adf021ac5822fdd514a0792bcadfb824a888e5c8d94d8a9aa64736f6c63430008100033000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384f