The _harvestAndReport()
function in the StrategyMainnet
contract does not currently perform the necessary actions to realize claimable underlying tokens. Although it identifies a claimable amount, the operation to actually claim and then swap these tokens back into the asset
(alETH) is commented out, causing the strategy to underreport its total assets and fail to realize profits accurately.
By not claiming the transmutable (claimable) underlying tokens and not converting them back into the asset
, the strategy’s profit calculation and totalAssets
reporting become unreliable. The function should harvest rewards, perform conversions, and redeploy funds to maintain accurate accounting. Currently, it only calculates claimable amounts but never finalizes that claim process nor reinvests, missing out on actual yield realization.
Inaccurate Profit/Loss Accounting: The strategy will inaccurately report its assets, potentially causing misrepresented gains or losses.
Reduced Yield for Users: Unclaimed and unconverted tokens mean that users do not benefit from the full yield that the underlying source generates.
Potential Fee Misallocation: Performance and management fees may be incorrectly calculated if the actual profits are not realized and reported, impacting both strategists and users.
Manual code review of the StrategyMainnet
contract.
Conceptual analysis of the expected behavior of _harvestAndReport()
and the standard Yearn strategy lifecycle.
Implement Claim Logic: Uncomment and properly implement the code that calls transmuter.claim()
and retrieves the underlying tokens.
Swap Underlying to Asset: Ensure that any claimed underlying tokens are swapped back into the asset
using the configured Curve router parameters.
Redeploy Idle Assets: After conversion, call _deployFunds()
with the updated asset balance to ensure idle funds are reintroduced into the yield source.
Accurate Minimum Outputs: Implement a strategy to determine _minOut
during swaps to protect against unfavorable slippage.
Testing and Validation: Thoroughly test the modified _harvestAndReport()
function to confirm it correctly realizes, reports, and redeploys yield under various conditions.
Corrected Implementation Example:
By following these recommendations, the strategy can accurately harvest, realize, and report yield, ensuring that users and stakeholders receive a fair and accurate representation of the strategy’s performance.
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.