Skip to content

Migrate vault & cross-chain operators to the new Talos signer (+ unpause rebases)#2911

Open
sparrowDom wants to merge 9 commits into
masterfrom
sparrow/talosMigration
Open

Migrate vault & cross-chain operators to the new Talos signer (+ unpause rebases)#2911
sparrowDom wants to merge 9 commits into
masterfrom
sparrow/talosMigration

Conversation

@sparrowDom
Copy link
Copy Markdown
Member

@sparrowDom sparrowDom commented Jun 1, 2026

Overview

Contains migration files to migrate the signer to 0x739212d5bAfE6AAC8Be49a60B7d003bD41DBf38b which is the new Talos Relayer. The migration includes

  • 196 migration. Sets the operator on OETH, OUSD Vaults, unpauses rebases and cross chain master strategy. Executed by OGN governance
  • 197 migration sets the operator on XOGNRewardsModule6. Directly executed by the 5/8
  • 198 migration sets the oprator on 4 modules. Directly executed by the 2/8
  • 051 migration (Base). Sets the operator on the Base CrossChainRemoteStrategy and the OETHBaseVault (operatorAddr), and unpauses OETHb rebases. Executed via the Base Timelock (schedule + execute by the 5/8).
  • 052 migration (Base). Grants OPERATOR_ROLE on the Base MerklPoolBoosterBribesModule. Directly executed by the 2/8.
  • 053 migration (Base). Grants OPERATOR_ROLE on ClaimBribesSafeModule1. Directly executed by the ClaimBribes 2/8 (0xb6D85Ce798660076152d6FD3a484129668839c95).
  • 054 migration (Base). Grants OPERATOR_ROLE on ClaimBribesSafeModule3. Directly executed by the base.strategist 1/2 (0x28bce2eE5775B652D92bB7c2891A89F036619703).
  • 030 migration (Sonic). Sets the operator on the OSonicVault (operatorAddr), unpauses rebases, and sets the registrator on the SonicStakingStrategy. Executed via the Sonic Timelock (schedule + execute by the 5/8). The Sonic OriginARM operator is migrated separately in the arm-oeth repo.
  • 003 migration (HyperEVM). Sets the operator on the HyperEVM CrossChainRemoteStrategy. Executed via the HyperEVM Timelock (schedule + execute by the 5/8).
  • Supporting changes. The directly-executed Safe migrations (197, 198, 052–054) share a new deploymentWithGnosisSafe helper (utils/deploy.js) that writes a Gnosis Safe Transaction Builder JSON and impersonates the Safe on fork; the timelock migrations (051, 030, 003) use deployOnBase/deployOnSonic/deployOnHyperEVM (schedule + execute JSON). Cross-chain fork fixtures now read the operator from the strategy instead of hardcoding the relayer.
  • Collect XOGN Rewards Module a description below of 5 calls needed to be manually created by the 5 different 3/5 safes

Collect XOGN Rewards Module:
Grants OPERATOR_ROLE on CollectXOGNRewardsModule15 to the new Talos signer so it can call collectRewards (ogn_claimAndForwardRewards).

Each module is admined by its own external 3/5 XOGN Safe, so this is **5 separate Safe transactions

Shared call (identical in all 5 transactions)

Field Value
Function grantRole(bytes32 role, address account)
role (OPERATOR_ROLE) 0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929
account (new Talos signer) 0x739212d5bAfE6AAC8Be49a60B7d003bD41DBf38b
ETH value 0
Raw calldata (data)
0x2f2ff15d97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929000000000000000000000000739212d5bafe6aac8be49a60b7d003bd41dbf38b

Only the executing Safe and the target (to) module differ between the five — the function, params, and calldata above are the same in every one.

The 5 transactions

# Execute from Safe (3/5) To — target CollectXOGNRewardsModuleN
1 0x5c8228e709D7F91209DE898F6a7B8c6035A7B78f 0x15228dAE3B228175fBD9639d049265eFb08e60b6
2 0x69497A2A170c138876F05Df01bFfDd5C4b651CF2 0x8e32A930CcFE108DC560eC9e630BA6b5f7E179c9
3 0x684b38997afbBBC055e0BEB6d536686Ebd171bdB 0x460e4a0B14bD3F1e12f0c2194830c0204E5Bb147
4 0xe555EFA16d38747F9e496926b576FD1ebD31DeCa 0xFbBb82c4F3B6f479DE1451C04A76ea80da4ff010
5 0x6E75645EeDCCCAA0f472323Afce8f82B875C8CB9 0xAE67b612bD859378b7d0f6314E7Ee39ad4c6aBE6

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 44.57%. Comparing base (2efa2a3) to head (fbb3b72).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2911      +/-   ##
==========================================
- Coverage   50.83%   44.57%   -6.26%     
==========================================
  Files         110      110              
  Lines        4873     4873              
  Branches     1353     1353              
==========================================
- Hits         2477     2172     -305     
- Misses       2392     2698     +306     
+ Partials        4        3       -1     

☔ View full report in Codecov by Harness.
📢 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.

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.

1 participant