Skip to content

Conversation

@naddison36
Copy link
Collaborator

@naddison36 naddison36 commented Dec 16, 2025

Changes

  • Added claimMerklRewards to Generalized4626Strategy
  • Added claimMorphoRewards Hardhat task
  • Added new deployment file to upgrade the three OUSD Morpho strategies
  • Added fork tests to claim and collect MORPHO rewards from the Gauntlet Prime USDC strategy
  • Add deploy of new Morpho OUSD v2 strategy
  • Fork test of new Morpho OUSD v2 strategy

Rewards

Strategy MORPHO Rewards Current balance
Gauntlet Prime USDC 2.752k (3.13k USD) 4.9m USDC
Gauntlet Prime USDT 2.207k (2.51k USD) 0 USDT
Steakhouse USDC 88.064 (100.32 USD) 85k USDC

Claim and harvest Process

  1. Anyone can call claimMerklRewards on the Morpho strategies which will claim MORPHO tokens to the strategy contract.
  2. The multi-chain guardian (2/8) Safe calls collectRewardTokens() on the Morpho strategies.

Hardhat task to claim the MORPHO rewards

pnpm hardhat claimMorphoRewards --network mainnet

Code Change Checklist

To be completed before internal review begins:

  • The contract code is complete
  • Executable deployment file
  • Fork tests that test after the deployment file runs
  • Unit tests *if needed
  • The owner has done a full checklist review of the code + tests

Internal review:

  • Two approvals by internal reviewers

@codecov
Copy link

codecov bot commented Dec 16, 2025

Codecov Report

❌ Patch coverage is 0% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 39.07%. Comparing base (b72a152) to head (87533ef).

Files with missing lines Patch % Lines
...s/contracts/strategies/Generalized4626Strategy.sol 0.00% 11 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2716      +/-   ##
==========================================
- Coverage   41.10%   39.07%   -2.04%     
==========================================
  Files         126      126              
  Lines        5778     5789      +11     
  Branches     1537     1537              
==========================================
- Hits         2375     2262     -113     
- Misses       3401     3525     +124     
  Partials        2        2              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.


contract Generalized4626Strategy is InitializableAbstractStrategy {
/// @notice The address of the Merkle Distributor contract.
IDistributor public constant merkleDistributor =
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It feels to me that all these changes should fit into a new contract smth like 4626MerklStrategy.sol. There might be strategies where Generalized4626 would be used (e.g. for Yearn 3 vaults) that won't be using the Merkl rewards distribution.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's what I originally did but then realised Generalized4626USDTStrategy would also have to change it's inheritance. Given the addition was small, I decided to just add merkleClaim to Generalized4626Strategy

Copy link
Member

@sparrowDom sparrowDom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, left 1 comment inline regarding if a new strategy contract should be made for this added functionality

@naddison36 naddison36 changed the title Morpho strategies can now claim MORPHO rewards using Merkl Upgrade Morpho strategies for MORPHO rewards and deploy new OUSD v2 strategy Dec 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants