Function: unstake(uint256 amount)
This function unstakes the staked token.
Inputs
amountControl: Fully controlled by the caller.
Constraints: Must be less than the balance of the caller.
Impact: Amount that will be unstaked.
Branches and code coverage
Intended branches
Increase the cooldown amount of the caller.
Update the cooldown timestamp of the caller.
Burn the tokens of the caller.
Negative behavior
Contract is not paused.
Amount is nonzero.
Amount is less than the balance of the user.