Update my staking smart contract
Budget: $10 – $30 USD
I have this staking contract on top my token
im looking for someone who could help me update to these function
1. User will be able to stake for 100 token minimum.
2. Stake token will earn interest after 24 hours on the initial time a user stakes
3. the formula for earning is (token stake / 365 ) * 0.08. approximately 8% APR
4. each earning from staking will vary depending on the time the user stake. basically every stake will earn after 24 hours.
5. stake token will have an unlocked period of 3 days. meaning you can only un-stake after 3 days time
6. Only staked tokens that passed 3 days will be un-stake once a user un-stake his token. Meaning tokens will remain un-stake if they dont pass the 3 days period. unstake tokens before the time it reach 24 hours will not get reward. user can instead wait for 24 hours before unstaking to earn
7. earnings that are stored in the accumulated reward will remain even if the user un-stake his token, it will be only claim using the claimReward function.
8. User can only call claimReward function once every 24 hours.
9. when a user earn from staking it will be added into accumulatedRewards, user can check his accumulated rewards by calling the function and the wallet address. This is where the claimReward function will transfer the token from the contract to its wallet address.
10. accumulatedRewards should be unique to every user and is not pooled across all the stakers in the network
here is my current staking contract. Feel free to suggest if you have different approach on how we can implement this. Currently for testing purposes we can make the earnings from staking set to every 5 minutes instead of 24 hours.
https://pastebin.com/wT8GdqgH
im looking for someone who could help me update to these function
1. User will be able to stake for 100 token minimum.
2. Stake token will earn interest after 24 hours on the initial time a user stakes
3. the formula for earning is (token stake / 365 ) * 0.08. approximately 8% APR
4. each earning from staking will vary depending on the time the user stake. basically every stake will earn after 24 hours.
5. stake token will have an unlocked period of 3 days. meaning you can only un-stake after 3 days time
6. Only staked tokens that passed 3 days will be un-stake once a user un-stake his token. Meaning tokens will remain un-stake if they dont pass the 3 days period. unstake tokens before the time it reach 24 hours will not get reward. user can instead wait for 24 hours before unstaking to earn
7. earnings that are stored in the accumulated reward will remain even if the user un-stake his token, it will be only claim using the claimReward function.
8. User can only call claimReward function once every 24 hours.
9. when a user earn from staking it will be added into accumulatedRewards, user can check his accumulated rewards by calling the function and the wallet address. This is where the claimReward function will transfer the token from the contract to its wallet address.
10. accumulatedRewards should be unique to every user and is not pooled across all the stakers in the network
here is my current staking contract. Feel free to suggest if you have different approach on how we can implement this. Currently for testing purposes we can make the earnings from staking set to every 5 minutes instead of 24 hours.
https://pastebin.com/wT8GdqgH