Function: withdraw(uint256 amount)
This function withdraws the unstaked tokens.
Inputs
amountControl: Fully controlled by the caller.
Constraints: Must be less than the amount under the cooldown period.
Impact: Amount of tokens that would be transferred to the caller.
Branches and code coverage
Intended branches
Decrease the cooldown amount of user.
Transfer the tokens to the user.
Negative behavior
Contract is not paused.
Amount is nonzero.
Amount is less than the cooldown amount of the user.
Cooldown period has passed.