Staking Smart Contract update (Ethereum - Solidity)

Job ID: 31291271

Budget: $10 – $30 USD

I want to develop a Staking Smart Contract for a ERC20 token. This token is already created in the main and test net.The contract will be required to pass an audit.

Staking contract must work like that:

- One user sends to the staking contract 100 tokens, then one "deposit fee" will be charged, lets say that 1%. So if one user Stake 100 tokens, 1 token will be charged as deposit fee and 99 will arrive to the smart contract.

- That 1% deposit fee (1 token) will be sent to the users already staked (a proportional part of the staked amount of one userof the total staked pool)

- Once one user wants to unstake, another "withdrawal fee" will be charged, lets say that 1%. So if the user who staked at the beginign 100 tokens, now has 99 tokens discounting the "deposit fee", so he will be able to unstake 99 tokens - withdrawal fee (1% = 0.99 tokens), then after unstaking we will get back to his wallet 98.01 tokens

- That 1% withdrawal fee (0.99 tokens) will be sent to the users already staked (a proportional part of the staked amount of one userof the total staked pool)

I have a staking contract similar to this one but is going to need some changes. Is not needed to develop the contract from scratch, just to update my current version.
Related categories: JavaScript Blockchain Ethereum Solidity