Issue:
The _harvestAndReport
function calculates the strategy’s total assets but does not claim or convert WETH into the asset
(e.g., alETH). This causes profits generated as claimable WETH to remain unrealized unless a Keeper explicitly calls claimAndSwap
. Consequently:
Unrealized Yield: The share price does not reflect yield derived from claimable WETH, potentially underrepresenting the strategy’s profitability.
Time Dependency: The realization of profits becomes entirely dependent on timely Keeper interventions.
Delayed Yield Realization:
Yield remains unconverted and unrealized, leading to share prices that do not accurately reflect the strategy’s performance.
Operational Inefficiency:
If Keepers fail to call claimAndSwap
at optimal times, potential profits may not be reflected in the strategy, resulting in missed opportunities for compounding.
User Frustration:
Users may perceive the strategy as underperforming because yields are not reflected in their shares, even though the claimable WETH exists.
Evidence from Code:
The function acknowledges claimable WETH but does not process or realize it.
Yield Underreporting:
The strategy generates claimable WETH, but _harvestAndReport
does not claim or swap it, causing the share price to underreport the actual value of the strategy.
Keeper Dependency:
If Keepers fail to call claimAndSwap
on time, users may not see realized yield in their shares. This adds operational complexity and risks underperformance.
Missed Compounding:
Without timely claiming and swapping, WETH cannot be converted into asset
and redeployed for compounding.
Enhance _harvestAndReport
to include the logic for claiming and converting WETH to asset
. This ensures that all yield is realized and reflected in the share price.
_harvestAndReport
Function:Automate Claiming:
Integrate WETH claiming and swapping into _harvestAndReport
to avoid relying solely on Keeper calls.
Oracle-Based Pricing:
Use on-chain oracles to calculate minOut
dynamically for swaps, ensuring efficient and secure conversions.
Fallback Pathing:
Ensure robust swap path validation to handle different token pairs and routing configurations.
Scenario:
The strategy has 100 asset
in “unexchanged” balance and 50 WETH in “claimable” balance.
Execution:
_harvestAndReport
is called.
The function claims 50 WETH, swaps it into asset
, and adds it to the total assets.
Expected Outcome:
totalAssets
now reflects the combined value of unexchanged assets and realized claimable WETH.
The share price increases, accurately reflecting the strategy’s yield.
Conclusion:
By incorporating claimable WETH into _harvestAndReport
, the strategy can fully realize profits and reflect them in the share price. This modification eliminates Keeper dependency, ensures efficient utilization of assets, and aligns user expectations with actual strategy 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.