Function: withdraw(address token, uint256 amount)
This function withdraws a token after the cooldown period elapsed.
Inputs
tokenControl: Fully controlled by the caller.
Constraints: None.
Impact: Specifies the token to be withdrawn.
amountControl: Fully controlled by the caller.
Constraints: Must be less than the cooldown amount of the caller.
Impact: Specifies the amount of tokens to be withdrawn.
Branches and code coverage
Intended branches
Decrease the cooldown amount of the caller.
Transfer the tokens to the caller.
Negative behavior
Contract is not paused.
The cooldown period has passed.
The caller has enough of a cooldown amount to withdraw.