The strategies' _harvestAndReport
function is supposed to correctly return the vault's total assets but it also includes the vautl's underlying token amount which doesn't have a 1:1 with the asset, resulting on smaller returns.
This is the strategies' _harvestAndReport
function and it is similar throughout the 3 contracts.
As we can see, it is also accounting for "possible dormant WETH
that isn't swapped yet". However, WETH
doesn't have a 1:1 peg to the vault's asset which is alETH
.
Let's consider a scenario where 1 alETH = 0.95 WETH
:
Vault holds 10 alETH
in unexchanged balance.
Vault also has 0.95 WETH
that isn't swapped yet.
_harvestAndReport
will return 10 alETH + 0.95 WETH = 10.95 alETH
total assets.
In reality, _harvestAndReport
should return 11 alETH
total assets, since 1 alETH = 0.95 WETH
.
This function is responsible to accurately update the vault's totalAssets
. The totalAssets
variable is used during the deposits and withdrawals, so any inaccuracy on this will result on innacurate shares
getting minted or assets
getting withdrawn.
Manual review
Consider pulling the alETH-WETH
ratio from an oracle or a DEX and converting the WETH
to alETH
according to that price received.
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.