27 txs
27 calls
constructor
constructor(address _stakingTokenAddress, uint256 _maxStakePerUser)
functions
apyBps
viewfunction apyBps() view returns (uint256)
earned
viewfunction earned(address _account) view returns (uint256)
getRemainingStakingDuration
viewfunction getRemainingStakingDuration(address _account) view returns (uint256)
getStakingPoolInfo
viewfunction getStakingPoolInfo() view returns (tuple)
getUserInfo
viewfunction getUserInfo(address _account) view returns (tuple)
maxStakePerUser
viewfunction maxStakePerUser() view returns (uint256)
minimumStakingDuration
viewfunction minimumStakingDuration() view returns (uint256)
owner
viewfunction owner() view returns (address)
stakers
viewfunction stakers(address) view returns (uint256 amount, uint256 since)
stakingToken
viewfunction stakingToken() view returns (address)
totalStaked
viewfunction totalStaked() view returns (uint256)
claimRewards
nonpayablefunction claimRewards()
fundRewardPool
nonpayablefunction fundRewardPool(uint256 _amount)
setApy
nonpayablefunction setApy(uint256 _newApyBps)
setMaxStakePerUser
nonpayablefunction setMaxStakePerUser(uint256 _newMaxStake)
setMinimumStakingDuration
nonpayablefunction setMinimumStakingDuration(uint256 _durationInSeconds)
stake
nonpayablefunction stake(uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unstake
nonpayablefunction unstake(uint256 _amount)
withdrawStuckTokens
nonpayablefunction withdrawStuckTokens(address _tokenAddress, uint256 _amount)
events
ApyUpdated
event ApyUpdated(uint256 newApyBps)
MaxStakePerUserUpdated
event MaxStakePerUserUpdated(uint256 newMaxStake)
MinDurationUpdated
event MinDurationUpdated(uint256 newDuration)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardClaimed
event RewardClaimed(address indexed user, uint256 rewardAmount)
RewardPoolFunded
event RewardPoolFunded(address indexed funder, uint256 amount)
Staked
event Staked(address indexed user, uint256 amount)
Unstaked
event Unstaked(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x60a060405234801561000f575f5ffd5b506040516124da3803806124da83398181016040528101906100319190610260565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361009f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610096906102f8565b60405180910390fd5b5f81116100e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d890610386565b60405180910390fd5b335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060048190555061c35060018190555062278d0060028190555050506103a4565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101fc826101d3565b9050919050565b61020c816101f2565b8114610216575f5ffd5b50565b5f8151905061022781610203565b92915050565b5f819050919050565b61023f8161022d565b8114610249575f5ffd5b50565b5f8151905061025a81610236565b92915050565b5f5f60408385031215610276576102756101cf565b5b5f61028385828601610219565b92505060206102948582860161024c565b9150509250929050565b5f82825260208201905092915050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f6102e260158361029e565b91506102ed826102ae565b602082019050919050565b5f6020820190508181035f83015261030f816102d6565b9050919050565b7f4d6178207374616b65207065722075736572206d7573742062652067726561745f8201527f6572207468616e20300000000000000000000000000000000000000000000000602082015250565b5f61037060298361029e565b915061037b82610316565b604082019050919050565b5f6020820190508181035f83015261039d81610364565b9050919050565b6080516120e66103f45f395f81816105bd015281816107ae01528181610ac501528181610c5701528181610ea80152818161107c015281816110db015281816113eb015261151701526120e65ff3fe608060405234801561000f575f5ffd5b5060043610610129575f3560e01c806372f702f3116100ab578063b3ac2b171161006f578063b3ac2b171461031a578063bd61f0a614610336578063e7a8e49f14610352578063f2fde38b14610370578063fea285801461038c57610129565b806372f702f314610273578063817b1cd2146102915780638da5cb5b146102af5780639168ae72146102cd578063a694fc3a146102fe57610129565b8063372500ab116100f2578063372500ab146101e35780633b3f5e36146101ed57806351618ed31461020957806357c81b92146102275780636386c1c71461024357610129565b80628cc2621461012d578063011eeb1b1461015d5780630717d0321461018d5780631d583e0d146101ab5780632e17de78146101c7575b5f5ffd5b61014760048036038101906101429190611711565b6103aa565b6040516101549190611754565b60405180910390f35b61017760048036038101906101729190611711565b610453565b6040516101849190611754565b60405180910390f35b6101956104e5565b6040516101a29190611754565b60405180910390f35b6101c560048036038101906101c09190611797565b6104eb565b005b6101e160048036038101906101dc9190611797565b6106aa565b005b6101eb61089a565b005b61020760048036038101906102029190611797565b6108a5565b005b610211610974565b60405161021e9190611754565b60405180910390f35b610241600480360381019061023c9190611797565b61097a565b005b61025d60048036038101906102589190611711565b610a49565b60405161026a9190611811565b60405180910390f35b61027b610ac3565b6040516102889190611885565b60405180910390f35b610299610ae7565b6040516102a69190611754565b60405180910390f35b6102b7610aed565b6040516102c491906118ad565b60405180910390f35b6102e760048036038101906102e29190611711565b610b11565b6040516102f59291906118c6565b60405180910390f35b61031860048036038101906103139190611797565b610b31565b005b610334600480360381019061032f9190611797565b610d45565b005b610350600480360381019061034b91906118ed565b610e14565b005b61035a611067565b60405161036791906119b3565b60405180910390f35b61038a60048036038101906103859190611711565b611183565b005b61039461133b565b6040516103a19190611754565b60405180910390f35b5f5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f0154036103fe575f91505061044e565b5f81600101544261040f91906119f9565b90506301e133806127106104239190611a2c565b81600154845f01546104359190611a2c565b61043f9190611a2c565b6104499190611a9a565b925050505b919050565b5f5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f0154036104a7575f9150506104e0565b5f8160010154426104b891906119f9565b905060025481106104cd575f925050506104e0565b806002546104db91906119f9565b925050505b919050565b60045481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057090611b24565b60405180910390fd5b5f81116105bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b290611b8c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161061893929190611baa565b6020604051808303815f875af1158015610634573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106589190611c14565b503373ffffffffffffffffffffffffffffffffffffffff167fd3c7d1587d8f93bae0fcfc5a820d2187e755a75ec28a06c20a9da047e1b01eb58260405161069f9190611754565b60405180910390a250565b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f821161072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390611c89565b60405180910390fd5b81815f01541015610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990611d17565b60405180910390fd5b61077b33611341565b81815f015f82825461078d91906119f9565b925050819055508160035f8282546107a591906119f9565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610807929190611d35565b6020604051808303815f875af1158015610823573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108479190611c14565b503373ffffffffffffffffffffffffffffffffffffffff167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f758360405161088e9190611754565b60405180910390a25050565b6108a333611341565b565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90611b24565b60405180910390fd5b806001819055507febdc8ce7038cacbcc77a4f91f4844c9dda6c4319afb91ede186f5494420ec8b6816040516109699190611754565b60405180910390a150565b60015481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90611b24565b60405180910390fd5b806004819055507fd684ec3f0b84c709ff5183a96fee86642d3c8addf5b6dc5b4d2c6c4076a4091281604051610a3e9190611754565b60405180910390a150565b610a5161164f565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090506040518060600160405280825f0154815260200182600101548152602001610ab8856103aa565b815250915050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052805f5260405f205f91509050805f0154908060010154905082565b5f8111610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a90611da6565b60405180910390fd5b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905060045482825f0154610bc59190611dc4565b1115610c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfd90611e67565b60405180910390fd5b5f815f01541115610c1b57610c1a33611341565b5b81815f015f828254610c2d9190611dc4565b925050819055504281600101819055508160035f828254610c4e9190611dc4565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401610cb293929190611baa565b6020604051808303815f875af1158015610cce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf29190611c14565b503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610d399190611754565b60405180910390a25050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca90611b24565b60405180910390fd5b806002819055507f049a6934bf12da797a1e19e9f70b578af0fdab9d72c2d4b8d82984a54c9e640081604051610e099190611754565b60405180910390a150565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990611b24565b60405180910390fd5b5f8290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc6575f6003548273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3691906118ad565b602060405180830381865afa158015610f51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f759190611e99565b610f7f91906119f9565b905082811015610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb90611f34565b60405180910390fd5b505b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611021929190611d35565b6020604051808303815f875af115801561103d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110619190611c14565b50505050565b61106f61166d565b6040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16815260200160015481526020016002548152602001600454815260200160035481526020016003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161113291906118ad565b602060405180830381865afa15801561114d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111719190611e99565b61117b91906119f9565b815250905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890611b24565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690611fc2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b5f61134b826103aa565b90505f8111156116055760025460055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154426113a491906119f9565b10156113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc9061202a565b60405180910390fd5b5f6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161144291906118ad565b602060405180830381865afa15801561145d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114819190611e99565b61148b91906119f9565b9050818110156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c790612092565b60405180910390fd5b4260055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401611570929190611d35565b6020604051808303815f875af115801561158c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b09190611c14565b508273ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241836040516115f79190611754565b60405180910390a25061164b565b4260055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055505b5050565b60405180606001604052805f81526020015f81526020015f81525090565b6040518060c001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116e0826116b7565b9050919050565b6116f0816116d6565b81146116fa575f5ffd5b50565b5f8135905061170b816116e7565b92915050565b5f60208284031215611726576117256116b3565b5b5f611733848285016116fd565b91505092915050565b5f819050919050565b61174e8161173c565b82525050565b5f6020820190506117675f830184611745565b92915050565b6117768161173c565b8114611780575f5ffd5b50565b5f813590506117918161176d565b92915050565b5f602082840312156117ac576117ab6116b3565b5b5f6117b984828501611783565b91505092915050565b6117cb8161173c565b82525050565b606082015f8201516117e55f8501826117c2565b5060208201516117f860208501826117c2565b50604082015161180b60408501826117c2565b50505050565b5f6060820190506118245f8301846117d1565b92915050565b5f819050919050565b5f61184d611848611843846116b7565b61182a565b6116b7565b9050919050565b5f61185e82611833565b9050919050565b5f61186f82611854565b9050919050565b61187f81611865565b82525050565b5f6020820190506118985f830184611876565b92915050565b6118a7816116d6565b82525050565b5f6020820190506118c05f83018461189e565b92915050565b5f6040820190506118d95f830185611745565b6118e66020830184611745565b9392505050565b5f5f60408385031215611903576119026116b3565b5b5f611910858286016116fd565b925050602061192185828601611783565b9150509250929050565b611934816116d6565b82525050565b60c082015f82015161194e5f85018261192b565b50602082015161196160208501826117c2565b50604082015161197460408501826117c2565b50606082015161198760608501826117c2565b50608082015161199a60808501826117c2565b5060a08201516119ad60a08501826117c2565b50505050565b5f60c0820190506119c65f83018461193a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a038261173c565b9150611a0e8361173c565b9250828203905081811115611a2657611a256119cc565b5b92915050565b5f611a368261173c565b9150611a418361173c565b9250828202611a4f8161173c565b91508282048414831517611a6657611a656119cc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611aa48261173c565b9150611aaf8361173c565b925082611abf57611abe611a6d565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611b0e602083611aca565b9150611b1982611ada565b602082019050919050565b5f6020820190508181035f830152611b3b81611b02565b9050919050565b7f43616e6e6f742066756e642077697468203020746f6b656e73000000000000005f82015250565b5f611b76601983611aca565b9150611b8182611b42565b602082019050919050565b5f6020820190508181035f830152611ba381611b6a565b9050919050565b5f606082019050611bbd5f83018661189e565b611bca602083018561189e565b611bd76040830184611745565b949350505050565b5f8115159050919050565b611bf381611bdf565b8114611bfd575f5ffd5b50565b5f81519050611c0e81611bea565b92915050565b5f60208284031215611c2957611c286116b3565b5b5f611c3684828501611c00565b91505092915050565b7f43616e6e6f7420756e7374616b65203020746f6b656e730000000000000000005f82015250565b5f611c73601783611aca565b9150611c7e82611c3f565b602082019050919050565b5f6020820190508181035f830152611ca081611c67565b9050919050565b7f556e7374616b6520616d6f756e742065786365656473207374616b65642062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f611d01602583611aca565b9150611d0c82611ca7565b604082019050919050565b5f6020820190508181035f830152611d2e81611cf5565b9050919050565b5f604082019050611d485f83018561189e565b611d556020830184611745565b9392505050565b7f43616e6e6f74207374616b65203020746f6b656e7300000000000000000000005f82015250565b5f611d90601583611aca565b9150611d9b82611d5c565b602082019050919050565b5f6020820190508181035f830152611dbd81611d84565b9050919050565b5f611dce8261173c565b9150611dd98361173c565b9250828201905080821115611df157611df06119cc565b5b92915050565b7f5374616b6520616d6f756e742065786365656473206d6178696d756d207065725f8201527f2075736572000000000000000000000000000000000000000000000000000000602082015250565b5f611e51602583611aca565b9150611e5c82611df7565b604082019050919050565b5f6020820190508181035f830152611e7e81611e45565b9050919050565b5f81519050611e938161176d565b92915050565b5f60208284031215611eae57611ead6116b3565b5b5f611ebb84828501611e85565b91505092915050565b7f5769746864726177616c206578636565647320617661696c61626c65207265775f8201527f61726420746f6b656e7300000000000000000000000000000000000000000000602082015250565b5f611f1e602a83611aca565b9150611f2982611ec4565b604082019050919050565b5f6020820190508181035f830152611f4b81611f12565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611fac602683611aca565b9150611fb782611f52565b604082019050919050565b5f6020820190508181035f830152611fd981611fa0565b9050919050565b7f4d696e696d756d207374616b696e67206475726174696f6e206e6f74206d65745f82015250565b5f612014602083611aca565b915061201f82611fe0565b602082019050919050565b5f6020820190508181035f83015261204181612008565b9050919050565b7f496e73756666696369656e742072657761726420706f6f6c00000000000000005f82015250565b5f61207c601883611aca565b915061208782612048565b602082019050919050565b5f6020820190508181035f8301526120a981612070565b905091905056fea26469706673582212209f7e66079a1d65310182b50b74cebddb52dd7ded8d47aa37811ff8526652e51564736f6c634300081e003300000000000000000000000032c1b3c43317cba8185d65227a54ae416dacc3380000000000000000000000000000000000000000000069e10de76676d0800000