Function: _vaultUpdate(IVault IVault, UFixed6 UFixed6, UFixed6 UFixed6, UFixed6 UFixed6, bool bool)
Calls vault.update with msg.sender as the account and the specified arguments. Optionally routes and optionally wraps tokens to send to market or receive from market.
Inputs
vaultControl: Arbitrary.
Constraints: None.
Impact: Contract makes a call to
vault.updatewith some attacker-controlled arguments.
depositAssetsControl: Arbitrary.
Constraints: None.
Impact: Argument to
vault.updatecall. Assets are deposited if positive.
redeemSharesControl: Arbitrary.
Constraints: None.
Impact: Argument to
vault.updatecall.
claimAssetsControl: Arbitrary.
Constraints: None.
Impact: Argument to
vault.updatecall. Difference in owned assets is sent to sender if positive.
wrapControl: Arbitrary.
Constraints: None.
Impact: Whether DSU is used directly or USDC is used with this function wrapping/unwrapping it.
Function call analysis
Same as _update. Only calls into USDC/DSU and batcher, both of which do not reasonably reenter. Even if they did, the only potential impact is that DSU may be taken from this contract, and the contract is not meant to hold DSU.