1.1k txs
1k calls
constructor
constructor(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)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable() view returns (uint256)
lastUpdateTime
viewfunction lastUpdateTime() view returns (uint256)
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)
exit
nonpayablefunction exit()
getReward
nonpayablefunction getReward()
notifyRewardAmount
nonpayablefunction notifyRewardAmount(uint256 reward)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, uint256 tokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setPaused
nonpayablefunction setPaused(bool _paused)
setRewardsDistribution
nonpayablefunction setRewardsDistribution(address _rewardsDistribution)
setRewardsDuration
nonpayablefunction setRewardsDuration(uint256 _rewardsDuration)
stake
nonpayablefunction stake(uint256 amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 amount)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Recovered
event Recovered(address token, uint256 amount)
RewardAdded
event RewardAdded(uint256 reward)
RewardPaid
event RewardPaid(address indexed user, uint256 reward)
RewardsDurationUpdated
event RewardsDurationUpdated(uint256 newDuration)
Staked
event Staked(address indexed user, uint256 amount)
Unpaused
event Unpaused(address account)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x60803461010657601f6114d738819003918201601f19168301916001600160401b0383118484101761010a57808492606094604052833981010312610106576100478161011e565b9061006060406100596020840161011e565b920161011e565b5f80546001600160a01b03198082163390811784556040519691956001600160a01b0395929486949192918516907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001600255600354905f6005555f60065562093a80600755610100600160a81b039060081b169060018060a81b0319161760035516836004541617600455169060015416176001556113a490816101338239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101065756fe604060808152600480361015610013575f80fd5b5f3560e01c80628cc26214610ec45780630700037d14610e8d57806316c38b3c14610da757806318160ddd14610d895780631976214314610d465780631c1f78eb14610d235780632e1a7d4d14610c1f578063386a952514610c015780633c6b16ab14610a215780633d18b9121461095a5780633fc6df6e146109325780635c975abb1461090f57806370a08231146108d8578063715018a61461088157806372f702f3146108595780637b0a47ee1461083b57806380faa57d1461081f5780638980f11f1461073b5780638b876347146107045780638da5cb5b146106dd578063a694fc3a14610578578063c8f33c911461055a578063cc1a378f14610474578063cd3daf9d14610451578063d1af0c7d14610425578063df136d6514610407578063e9fad8ee14610242578063ebe2b12b146102245763f2fde38b14610159575f80fd5b3461022057602036600319011261022057610172610ee9565b9061017b61105c565b6001600160a01b039182169283156101ce5750505f54826bffffffffffffffffffffffff60a01b8216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b5f80fd5b8234610220575f366003190112610220576020906005549051908152f35b509034610220575f36600319011261022057335f526020600d8152815f20546102696110b3565b610271611005565b60095561027c610ff4565b60085533151590816103e3575b80156103ac5761029b81600c54610eff565b600c55335f52600d83526102b281855f2054610eff565b335f52600d8452845f20556102d38160018060a01b03968733915416611107565b83519081527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5833392a2600160025561030a6110b3565b610312611005565b60095561031d610ff4565b600855610388575b335f52600b8152815f209182549384610340575b6001600255005b84610377915f7fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e04869655339060035460081c16611107565b519283523392a25f80808080610339565b61039133610f5e565b335f52600b8252825f2055600954600a8252825f2055610325565b835162461bcd60e51b81528086018490526011602482015270043616e6e6f74207769746864726177203607c1b6044820152606490fd5b6103ec33610f5e565b335f52600b8452845f2055600954600a8452845f2055610289565b8234610220575f366003190112610220576020906009549051908152f35b8234610220575f36600319011261022057600354905160089190911c6001600160a01b03168152602090f35b8234610220575f3660031901126102205760209061046d611005565b9051908152f35b50346102205760203660031901126102205780359061049161105c565b6005544211156104cb577ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d3602083858160075551908152a1005b60a490602084519162461bcd60e51b8352820152605860248201527f50726576696f7573207265776172647320706572696f64206d7573742062652060448201527f636f6d706c657465206265666f7265206368616e67696e67207468652064757260648201527f6174696f6e20666f7220746865206e657720706572696f6400000000000000006084820152fd5b8234610220575f366003190112610220576020906008549051908152f35b50903461022057602080600319360112610220578235916105976110b3565b61059f61114a565b6105a7611005565b6009556105b2610ff4565b600855336106b9575b8215610687576105cd83600c54610f51565b600c55335f52600d82526105e483825f2054610f51565b335f52600d8352815f205560018060a01b038454168151946323b872dd60e01b848701523360248701523060448701528460648701526064865260a086019086821067ffffffffffffffff831117610674575094610666917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9596845261118e565b519283523392a26001600255005b604190634e487b7160e01b5f525260245ffd5b5162461bcd60e51b81529283015250600e60248201526d043616e6e6f74207374616b6520360941b6044820152606490fd5b6106c233610f5e565b335f52600b8352815f2055600954600a8352815f20556105bb565b8234610220575f366003190112610220575f5490516001600160a01b039091168152602090f35b8234610220576020366003190112610220576020906001600160a01b03610729610ee9565b165f52600a8252805f20549051908152f35b5034610220578160031936011261022057610754610ee9565b6024359161076061105c565b80546001600160a01b03838116929091821683146107d25750936107ad846107cd937f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28975f541690611107565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1005b608490602087519162461bcd60e51b8352820152602160248201527f43616e6e6f7420776974686472617720746865207374616b696e6720746f6b656044820152603760f91b6064820152fd5b8234610220575f3660031901126102205760209061046d610ff4565b8234610220575f366003190112610220576020906006549051908152f35b509034610220575f36600319011261022057905490516001600160a01b039091168152602090f35b34610220575f3660031901126102205761089961105c565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b8234610220576020366003190112610220576020906001600160a01b036108fd610ee9565b165f52600d8252805f20549051908152f35b8234610220575f3660031901126102205760209060ff6003541690519015158152f35b8234610220575f3660031901126102205760015490516001600160a01b039091168152602090f35b8234610220575f366003190112610220576109736110b3565b61097b611005565b600955610986610ff4565b600855336109fb575b335f52600b602052805f2090815491826109aa576001600255005b5f90556003546109c9908390339060081c6001600160a01b0316611107565b519081527fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e048660203392a2808080610339565b610a0433610f5e565b335f52600b602052815f2055600954600a602052815f205561098f565b5090346102205760209081600319360112610220576001546001600160a01b03938035929185163303610bad5783602495610a5a611005565b600955610a65610ff4565b600855600554428111610b795750610a7f60075486610f33565b6006555b60035460081c168351968780926370a0823160e01b825230868301525afa948515610b6f575f95610b40575b50600654610ac06007548097610f33565b10610aff5750610af57fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d944260085542610f51565b60055551908152a1005b83606492519162461bcd60e51b8352820152601860248201527f50726f76696465642072657761726420746f6f206869676800000000000000006044820152fd5b9094508381813d8311610b68575b610b588183610fbe565b810103126102205751935f610aaf565b503d610b4e565b82513d5f823e3d90fd5b610b9c610b96610b8d610ba5934290610eff565b60065490610f20565b87610f51565b60075490610f33565b600655610a83565b83608492519162461bcd60e51b8352820152602a60248201527f43616c6c6572206973206e6f742052657761726473446973747269627574696f6044820152691b8818dbdb9d1c9858dd60b21b6064820152fd5b8234610220575f366003190112610220576020906007549051908152f35b5090346102205760208060031936011261022057823591610c3e6110b3565b610c46611005565b600955610c51610ff4565b60085533610cff575b8215610cca57610666838095610c937f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d596600c54610eff565b600c55335f52600d8552610caa82855f2054610eff565b335f818152600d88528690209190915590546001600160a01b0316611107565b5162461bcd60e51b815292830152506011602482015270043616e6e6f74207769746864726177203607c1b6044820152606490fd5b610d0833610f5e565b335f52600b8352815f2055600954600a8352815f2055610c5a565b8234610220575f3660031901126102205760209061046d60065460075490610f20565b3461022057602036600319011261022057610d5f610ee9565b610d6761105c565b600180546001600160a01b0319166001600160a01b0392909216919091179055005b8234610220575f36600319011261022057602090600c549051908152f35b5034610220576020366003190112610220578035801515810361022057610dcc61105c565b15610e12575060207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891610dfe61114a565b600160ff19600354161760035551338152a1005b6003549060ff821615610e53575060ff1916600355513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b606490602084519162461bcd60e51b8352820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152fd5b8234610220576020366003190112610220576020906001600160a01b03610eb2610ee9565b165f52600b8252805f20549051908152f35b82346102205760203660031901126102205760209061046d610ee4610ee9565b610f5e565b600435906001600160a01b038216820361022057565b91908203918211610f0c57565b634e487b7160e01b5f52601160045260245ffd5b81810292918115918404141715610f0c57565b8115610f3d570490565b634e487b7160e01b5f52601260045260245ffd5b91908201809211610f0c57565b610fbb9060018060a01b0316805f52600d602052670de0b6b3a7640000610fa760405f2054610fa1610f8e611005565b855f52600a60205260405f205490610eff565b90610f20565b04905f52600b60205260405f205490610f51565b90565b90601f8019910116810190811067ffffffffffffffff821117610fe057604052565b634e487b7160e01b5f52604160045260245ffd5b6005548042105f14610fbb57504290565b600c54801561105557600954611028610b8d61101f610ff4565b60085490610eff565b670de0b6b3a764000090818102918183041490151715610f0c57610fbb9261104f91610f33565b90610f51565b5060095490565b5f546001600160a01b0316330361106f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60028054146110c25760028055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261114891611143606483610fbe565b61118e565b565b60ff6003541661115657565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b60018060a01b03166040516040810167ffffffffffffffff9082811082821117610fe0576040525f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182875af13d156112b1573d918211610fe057611221936040519261121487601f19601f8401160185610fbe565b83523d5f8785013e6112ba565b8051828115918215611291575b505090501561123a5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b83809293500103126102205781015180151581036102205780825f61122e565b61122193606092505b9192901561131c57508151156112ce575090565b3b156112d75790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b82519091501561132f5750805190602001fd5b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfea26469706673582212208516f815f68ab2fce8600e5119c7229dc170d0b63fb7b0ccf1005b9737d4207e64736f6c634300081900330000000000000000000000001e278e13de40398b3356bcb6db05098ed5d2d22400000000000000000000000021cfcfc3d8f98fc728f48341d10ad8283f6eb7ab00000000000000000000000021cfcfc3d8f98fc728f48341d10ad8283f6eb7ab