Function: redeemUnderlying(uint256 shares, uint256[] minAmounts, address receiver, address _owner)
This redeems multiple underlying assets for a given number of shares.
Inputs
sharesControl: Full.
Constraints: Must be less than or equal to the owner's vault-share balance.
Impact: The number of the owner's shares that will be burned.
minAmountsControl: Full.
Constraints: N/A.
Impact:
minAmounts.
receiverControl: Full.
Constraints: Needs to be a valid, nonzero address.
Impact: Address to receive underlying assets.
_ownerControl: Full.
Constraints: Must have share balance greater than or equal to shares.
Impact: Accounts whose shares will be burned in exchange for the asset.
Branches and code coverage (including function calls)
Intended branches
Should burn shares when invoking
redeemUnderlying()with LP tokens.
Negative behavior
redeemUnderlying()should NOT revert when in safe harbor mode.previewRedeem()should not revert when in safe harbor mode.maxRedeem()should not revert when in safe harbor mode.
Function call analysis
rootFunction -> maxRedeem(address)What is controllable? N/A.
If return value controllable, how is it used and how can it go wrong? N/A.
What happens if it reverts, reenters, or does other unusual control flow? N/A.
rootFunction -> previewRedeem(uint256)What is controllable? N/A.
If return value controllable, how is it used and how can it go wrong? N/A.
What happens if it reverts, reenters, or does other unusual control flow? N/A.