Category: Coding Mistakes
Invalid business logic in Batcher.sol
Medium Severity
Medium Impact
N/A Likelihood
Description
The depositFunds() function of the Batcher contract contains this incorrect require statement at L94:
require(
IERC20(vaultInfo.vaultAddress).totalSupply() -
pendingDeposit +
pendingWithdrawal +
amountIn <=
vaultInfo.maxAmount,
"MAX_LIMIT_EXCEEDED"
);The correct require statement should contain - pendingWithdrawal + pendingDeposit instead of - pendingDeposit + pendingWithdrawal.
Impact
The incorrect require statement fails to properly enforce the "users can deposit only up to vaultInfo.maxAmount of stakeable tokens" invariant.
Recommendations
Consider changing - pendingDeposit + pendingWithdrawal to - pendingWithdrawal + pendingDeposit in the require statement.
Remediation
The issue has been mitigated and fixed accordingly in commit 0c2c815↗.