This contract would reward user for staking token A by sending token A to them, this minium staking period is to be defined on deployment. If the minimum staking period is not met, the user would not be able to unstake token.
Try running some of the following tasks:
npx hardhat install
read through the contract modifer and use as you wish