Omniscia Myso Finance Audit
BalancerV2Looping Static Analysis Findings
BalancerV2Looping Static Analysis Findings
BVL-01S: Deprecated Approval Methodology
| Type | Severity | Location |
|---|---|---|
| Standard Conformity | ![]() | BalancerV2Looping.sol:L126 |
Description:
The linked statement invokes the safeApprove function which has been officially deprecated by the OpenZeppelin standard.
Impact:
The safeApprove function indirectly validates that the approval that already exists for the target party has been previously set to zero if being set to a non-zero value. This can cause significant issues in the case of upgrade-able contracts or contracts whose allowance may not be utilized in full as subsequent safeApprove invocations will fail rendering it inoperable.
Example:
126IERC20Metadata(loan.collToken).safeApprove(BALANCER_V2_VAULT, 0);Recommendation:
We advise the code to utilize a safeIncreaseAllowance and / or a safeDecreaseAllowance depending on the execution context and desired result.
Alleviation (c740f7c6b5ebd365618fd2d7ea77370599e1ca11):
A direct ERC20::approve function invocation was instead preferred by the Myso Finance team that alleviates this exhibit. While the bool result is not evaluated in this context, we consider this exhibit alleviated as tokens that yield false during an ERC20::approve call have not been observed in a production environment.
