Documentation states that keepers cannot swap for a loss when converting claimed WETH into alETH however the proper checks are not enforced. The only checks in place are related to slippage to ensure the minimum amount of tokens are received
Lets take the claimAndSwap function in the mainnet strategy as an example. The keeper claims the underlying WETH then swaps it to alETH through the chosen route. It checks that the minimum amount of alETH is received and then deposits it into the transmuter contract. However there are no checks that the swap was done at a premium.
Take the following example:
Strategy claims 1 WETH
Current ETH price is $2000
alETH is trading at 0.99 ETH ($1980)
Keeper sets minOut to 1.01 alETH
The transaction would pass the check (1.01 > 1.0) but we're actually trading at a loss because we're getting 1980 worth of alETH for 2000 worth of ETH
Keeper can swap at a loss
Manual Review
Implement price oracle checks to ensure that alETH is trading at the intended price target
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.