## Summary
The claimAndSwap()
is designed to allow keepers to claim WETH from the transmuter and swap it to alETH. However, the implementation in @src/StrategyMainnet.sol
, @src/StrategyArb.sol
and @src/StrategyOp.sol
only swaps the newly claimed WETH amount from transmuter and ignores any existing WETH balance in the strategy. This creates a situation where WETH that accumulates in the strategy from previous operations cannot be swapped to alETH, effectively trapping these funds.
The issue stems from the router.exchange()
call using _amountClaim
as the amount to swap, rather than the strategy's total WETH balance. The _amountClaim
parameter only represents the amount being claimed from the Transmuter in the current transaction, excluding any pre-existing WETH balance in the strategy.
e.g from the @src/StrategyMainnet.sol
## Recommended mitigation steps
Modify the `claimAndSwap()` function to use the total WETH balance for the swap operation instead of just the claimed amount.
This is how the fix could look like in `@src/StrategyMainnet.sol` :
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.