Function: stake(uint256 amount)
This function stakes a token.
Inputs
amountControl: Fully controlled by the caller.
Constraints: None.
Impact: Amount that will be staked.
Branches and code coverage
Intended branches
Transfer the token from the user.
Mint the token.
Negative behavior
Contract is not paused.