Solidity Developer for creating staking smart contract.

Job ID: 32189521

Budget: $250 – $750 USD

You should develop a smart contract in Solidity 0.8.9 to be deployed on the Binance Smart Chain. It should be ready to be audited, thoroughly documented, and have 100% test coverage. Your job will be accepted and the payment made when the pull request is approved and merged. The due date is December 6th.

You are free to reuse other vetted open-source projects in this smart contract, as long as the documentation and testing are provided.

This smart contract should have similar behavior as Pancakeswap's Auto CAKE Syrup Pool (https://docs.pancakeswap.finance/products/syrup-pool/auto-compounding), where users stake their tokens automatically in order to gain more tokens as a staking reward. Instead of staking CAKE, in this smart contract, Mouse Haunt users should be able to stake MHT (BEP-20 token https://bscscan.com/token/0x5Cb2C3Ed882E37DA610f9eF5b0FA25514d7bc85B).

- Users should deposit MHT and forget about it (1). The MHT they stake in this smart contract will be automatically compounded (reinvested) for them, minus a small fee (3).
- The “automatic” compounding function is either triggered by our backend once every 1 hour or whenever a user withdraws their MHT
- Interest is displayed as APY, which includes compounding.
- A small performance fee (3) is subtracted from users' earnings each time the pool is automatically compounded.
- Withdraw: Users can withdraw 50% of their MHT (staked amount and rewards) after 7 days and 50% after 14 days (2). While the users wait for their MHT to be withdrawn, they still stake the part of the MHT that is in the pool (50% for 7 days and 50% for the other 7 days)
- If the user has a pending withdrawal and they stake more tokens, the withdrawal will be canceled
- The MHT available as a staking reward is defined on our Tokenomics (11,750,000 distributed in 48 months, i.e., 244791.666... per month)

Fees

(1) Deposit fee
- 0.1% of MHT to be staked
(2) Unstaking
- 50% after 7 days and 50% after 14 days
(3) Performance fee
- 2%, subtracted automatically from each yield harvest.
For example, if the harvest was 1 MHT, then 0.02 MHT would be subtracted as the performance fee.
- The performance fee should be transferred to the contract owner's wallet
- These variables should be able to be updated by the contract's owner.