From b1c3b5b172357be84e107e014113e1a83a2ea14c Mon Sep 17 00:00:00 2001 From: Nicholas Addison Date: Fri, 23 Jan 2026 10:53:29 +1100 Subject: [PATCH 1/5] Deploy script for gov prop to call resetFirstDeposit on the staking strategy --- .../deploy/mainnet/166_reset_first_deposit.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 contracts/deploy/mainnet/166_reset_first_deposit.js diff --git a/contracts/deploy/mainnet/166_reset_first_deposit.js b/contracts/deploy/mainnet/166_reset_first_deposit.js new file mode 100644 index 0000000000..148e7b40f4 --- /dev/null +++ b/contracts/deploy/mainnet/166_reset_first_deposit.js @@ -0,0 +1,32 @@ +const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); + +module.exports = deploymentWithGovernanceProposal( + { + deployName: "166_reset_first_deposit", + forceDeploy: false, + reduceQueueTime: true, + deployerIsProposer: false, + proposalId: "", + }, + async () => { + // Current contracts + const cStakingStrategyProxy = await ethers.getContract( + "CompoundingStakingSSVStrategyProxy" + ); + const cStakingStrategy = await ethers.getContractAt( + "CompoundingStakingSSVStrategy", + cStakingStrategyProxy.address + ); + + return { + name: `Allow the initial 1 ETH validator deposits to be made two at a time.`, + actions: [ + { + contract: cStakingStrategy, + signature: "resetFirstDeposit()", + args: [], + }, + ], + }; + } +); From f1dc274cc5f809431b4532e47be49bc89e1990f5 Mon Sep 17 00:00:00 2001 From: Nicholas Addison Date: Fri, 23 Jan 2026 15:07:46 +1100 Subject: [PATCH 2/5] Deploy script to create a governance proposal to claim the CVX tokens stuck in the OUSD Vault --- .../deploy/mainnet/166_reset_first_deposit.js | 1 + contracts/deploy/mainnet/167_claim_CVX.js | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 contracts/deploy/mainnet/167_claim_CVX.js diff --git a/contracts/deploy/mainnet/166_reset_first_deposit.js b/contracts/deploy/mainnet/166_reset_first_deposit.js index 148e7b40f4..d9f414ec53 100644 --- a/contracts/deploy/mainnet/166_reset_first_deposit.js +++ b/contracts/deploy/mainnet/166_reset_first_deposit.js @@ -4,6 +4,7 @@ module.exports = deploymentWithGovernanceProposal( { deployName: "166_reset_first_deposit", forceDeploy: false, + // forceSkip: true, reduceQueueTime: true, deployerIsProposer: false, proposalId: "", diff --git a/contracts/deploy/mainnet/167_claim_CVX.js b/contracts/deploy/mainnet/167_claim_CVX.js new file mode 100644 index 0000000000..c63511a60c --- /dev/null +++ b/contracts/deploy/mainnet/167_claim_CVX.js @@ -0,0 +1,32 @@ +const addresses = require("../../utils/addresses"); +const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); + +module.exports = deploymentWithGovernanceProposal( + { + deployName: "167_claim_CVX", + forceDeploy: false, + // forceSkip: true, + reduceQueueTime: true, + deployerIsProposer: false, + proposalId: "", + }, + async () => { + // Current OUSD Vault contracts + const cVaultProxy = await ethers.getContract("VaultProxy"); + const cVaultAdmin = await ethers.getContractAt( + "VaultAdmin", + cVaultProxy.address + ); + + return { + name: `Claim CVX tokens stuck in the OUSD Vault.`, + actions: [ + { + contract: cVaultAdmin, + signature: "transferToken(address,uint256)", + args: [addresses.mainnet.CVX, "805679677566091469209"], + }, + ], + }; + } +); From 105917530f047e0fd036468847ffb0d6dcc21f80 Mon Sep 17 00:00:00 2001 From: Nicholas Addison Date: Sun, 25 Jan 2026 07:21:18 +1100 Subject: [PATCH 3/5] Bumped deploy --- ...66_reset_first_deposit.js => 168_reset_first_deposit.js} | 6 ++++-- .../deploy/mainnet/{167_claim_CVX.js => 169_claim_CVX.js} | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) rename contracts/deploy/mainnet/{166_reset_first_deposit.js => 168_reset_first_deposit.js} (79%) rename contracts/deploy/mainnet/{167_claim_CVX.js => 169_claim_CVX.js} (96%) diff --git a/contracts/deploy/mainnet/166_reset_first_deposit.js b/contracts/deploy/mainnet/168_reset_first_deposit.js similarity index 79% rename from contracts/deploy/mainnet/166_reset_first_deposit.js rename to contracts/deploy/mainnet/168_reset_first_deposit.js index d9f414ec53..afa652c82c 100644 --- a/contracts/deploy/mainnet/166_reset_first_deposit.js +++ b/contracts/deploy/mainnet/168_reset_first_deposit.js @@ -2,9 +2,11 @@ const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); module.exports = deploymentWithGovernanceProposal( { - deployName: "166_reset_first_deposit", + deployName: "168_reset_first_deposit", forceDeploy: false, - // forceSkip: true, + // Skipping as this is run 5 times and doesn't make sense to execute without the validator registrator + // calling stakeEth between each + forceSkip: true, reduceQueueTime: true, deployerIsProposer: false, proposalId: "", diff --git a/contracts/deploy/mainnet/167_claim_CVX.js b/contracts/deploy/mainnet/169_claim_CVX.js similarity index 96% rename from contracts/deploy/mainnet/167_claim_CVX.js rename to contracts/deploy/mainnet/169_claim_CVX.js index c63511a60c..4234a6be71 100644 --- a/contracts/deploy/mainnet/167_claim_CVX.js +++ b/contracts/deploy/mainnet/169_claim_CVX.js @@ -3,7 +3,7 @@ const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); module.exports = deploymentWithGovernanceProposal( { - deployName: "167_claim_CVX", + deployName: "169_claim_CVX", forceDeploy: false, // forceSkip: true, reduceQueueTime: true, From 6e980ae4df17981116f46dcbc260eab306fb7f46 Mon Sep 17 00:00:00 2001 From: Nicholas Addison Date: Tue, 17 Feb 2026 13:37:10 +1100 Subject: [PATCH 4/5] Added transfer of CVX to Guardian --- contracts/deploy/mainnet/169_claim_CVX.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/contracts/deploy/mainnet/169_claim_CVX.js b/contracts/deploy/mainnet/169_claim_CVX.js index 4234a6be71..10905bc885 100644 --- a/contracts/deploy/mainnet/169_claim_CVX.js +++ b/contracts/deploy/mainnet/169_claim_CVX.js @@ -17,6 +17,7 @@ module.exports = deploymentWithGovernanceProposal( "VaultAdmin", cVaultProxy.address ); + const cCVX = await ethers.getContractAt("ERC20", addresses.mainnet.CVX); return { name: `Claim CVX tokens stuck in the OUSD Vault.`, @@ -26,6 +27,11 @@ module.exports = deploymentWithGovernanceProposal( signature: "transferToken(address,uint256)", args: [addresses.mainnet.CVX, "805679677566091469209"], }, + { + contract: cCVX, + signature: "transfer(address,uint256)", + args: [addresses.multichainStrategist, "805679677566091469209"], + }, ], }; } From 54c6a45eff1808eff392ae6e8f63b9e8640bfc91 Mon Sep 17 00:00:00 2001 From: Nicholas Addison Date: Tue, 17 Feb 2026 13:39:39 +1100 Subject: [PATCH 5/5] bumped deploy script numbers --- .../{168_reset_first_deposit.js => 177_reset_first_deposit.js} | 2 +- contracts/deploy/mainnet/{169_claim_CVX.js => 178_claim_CVX.js} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename contracts/deploy/mainnet/{168_reset_first_deposit.js => 177_reset_first_deposit.js} (95%) rename contracts/deploy/mainnet/{169_claim_CVX.js => 178_claim_CVX.js} (97%) diff --git a/contracts/deploy/mainnet/168_reset_first_deposit.js b/contracts/deploy/mainnet/177_reset_first_deposit.js similarity index 95% rename from contracts/deploy/mainnet/168_reset_first_deposit.js rename to contracts/deploy/mainnet/177_reset_first_deposit.js index afa652c82c..e8a8dea55b 100644 --- a/contracts/deploy/mainnet/168_reset_first_deposit.js +++ b/contracts/deploy/mainnet/177_reset_first_deposit.js @@ -2,7 +2,7 @@ const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); module.exports = deploymentWithGovernanceProposal( { - deployName: "168_reset_first_deposit", + deployName: "177_reset_first_deposit", forceDeploy: false, // Skipping as this is run 5 times and doesn't make sense to execute without the validator registrator // calling stakeEth between each diff --git a/contracts/deploy/mainnet/169_claim_CVX.js b/contracts/deploy/mainnet/178_claim_CVX.js similarity index 97% rename from contracts/deploy/mainnet/169_claim_CVX.js rename to contracts/deploy/mainnet/178_claim_CVX.js index 10905bc885..dfdca48117 100644 --- a/contracts/deploy/mainnet/169_claim_CVX.js +++ b/contracts/deploy/mainnet/178_claim_CVX.js @@ -3,7 +3,7 @@ const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); module.exports = deploymentWithGovernanceProposal( { - deployName: "169_claim_CVX", + deployName: "178_claim_CVX", forceDeploy: false, // forceSkip: true, reduceQueueTime: true,