Function: redeem(TokenType tokenType, uint256 depositAmount, uint256 minAmount, uint256 deadline, address onBehalfOf)
This function is used to redeem bond or leverage tokens for reserve tokens. The function calculates the amount of reserve tokens to receive based on the current pool state and oracle price. The function also allows for additional parameters for the deadline and onBehalfOf
for router support.
Inputs
tokenType
Control: Arbitrary.
Constraints: Bond or leverage token.
Impact: Type of token to redeem.
depositAmount
Control: Arbitrary.
Constraints: None.
Impact: The amount of derivative tokens to redeem.
minAmount
Control: Arbitrary.
Constraints: None.
Impact: The minimum amount of reserve tokens to receive.
deadline
Control: Arbitrary.
Constraints: Bigger than the current block timestamp.
Impact: The deadline timestamp.
onBehalfOf
Control: Arbitrary.
Constraints: None.
Impact: Address to receive the reserve tokens.
Branches and code coverage
Intended branches
Invoke the
_redeem
function.
Negative behavior
Revert if the contract is paused.
Revert if the function is reentrant.
Revert if the deadline has passed.