diff --git a/contracts/deploy/mainnet/162_remove_morpho_gauntlet_strat.js b/contracts/deploy/mainnet/162_remove_morpho_gauntlet_strat.js new file mode 100644 index 0000000000..2925e1c670 --- /dev/null +++ b/contracts/deploy/mainnet/162_remove_morpho_gauntlet_strat.js @@ -0,0 +1,38 @@ +const { deploymentWithGovernanceProposal } = require("../../utils/deploy"); + +module.exports = deploymentWithGovernanceProposal( + { + deployName: "162_remove_morpho_gauntlet_strat", + forceDeploy: false, + // forceSkip: true, + // reduceQueueTime: true, + deployerIsProposer: false, + proposalId: + "60184014889309972284258308471504854673823844252496292291463084114846234193707", + }, + async () => { + // Current OUSD Vault contracts + const cVaultProxy = await ethers.getContract("VaultProxy"); + const cVaultAdmin = await ethers.getContractAt( + "VaultAdmin", + cVaultProxy.address + ); + const cStrategyProxy = await ethers.getContract( + "MorphoGauntletPrimeUSDCStrategyProxy" + ); + + // Governance Actions + // ---------------- + return { + name: `Remove the Morpho Gauntlet Prime USDC Strategy from the OUSD Vault`, + actions: [ + { + // 1. Remove the Morpho Gauntlet strategy + contract: cVaultAdmin, + signature: "removeStrategy(address)", + args: [cStrategyProxy.address], + }, + ], + }; + } +); diff --git a/contracts/deployments/mainnet/.migrations.json b/contracts/deployments/mainnet/.migrations.json index 0e7fd02f27..7a4c823802 100644 --- a/contracts/deployments/mainnet/.migrations.json +++ b/contracts/deployments/mainnet/.migrations.json @@ -55,5 +55,6 @@ "158_deploy_xogn_rewards_module": 1764146932, "159_ousd_morpho_v2_proxy": 1765998626, "160_upgrade_morpho_strategies": 1766168031, - "161_add_morpho_rewards": 1767070523 + "161_add_morpho_rewards": 1767070523, + "162_remove_morpho_gauntlet_strat": 1767659015 } diff --git a/contracts/docs/plantuml/ousdContracts.png b/contracts/docs/plantuml/ousdContracts.png index d62487d136..e58e9cae3e 100644 Binary files a/contracts/docs/plantuml/ousdContracts.png and b/contracts/docs/plantuml/ousdContracts.png differ diff --git a/contracts/docs/plantuml/ousdContracts.puml b/contracts/docs/plantuml/ousdContracts.puml index d8fc7044ea..59be157672 100644 --- a/contracts/docs/plantuml/ousdContracts.puml +++ b/contracts/docs/plantuml/ousdContracts.puml @@ -21,11 +21,6 @@ object "Vault" as vault <><> #DeepSkyBlue { } ' Strategies -object "Morpho Gauntlet Prime USDC\nStrategy" as gtUSDC <><> #DeepSkyBlue { - asset: USDC - Morpho vault: gtUSDC - rewards: MORPHO -} object "Morpho OUSD v2\nStrategy" as musd <><> #DeepSkyBlue { asset: USDC Morpho vault: mUSD @@ -51,7 +46,6 @@ ousd <.> vault vault ..> oracle ' Strategies -vault <...> gtUSDC vault <...> musd vault <...> curveAmoStrat diff --git a/contracts/test/strategies/ousd-morpho-guantlet-prime-usdc.mainnet.fork-test.js b/contracts/test/strategies/ousd-morpho-guantlet-prime-usdc.mainnet.fork-test.js index 845f060cde..d384715dd3 100644 --- a/contracts/test/strategies/ousd-morpho-guantlet-prime-usdc.mainnet.fork-test.js +++ b/contracts/test/strategies/ousd-morpho-guantlet-prime-usdc.mainnet.fork-test.js @@ -14,7 +14,7 @@ const log = require("../../utils/logger")( "test:fork:ousd-morpho-gauntlet-usdc" ); -describe("ForkTest: Morpho Gauntlet Prime USDC Strategy", function () { +describe.skip("ForkTest: Morpho Gauntlet Prime USDC Strategy", function () { this.timeout(0); // Retry up to 3 times on CI diff --git a/contracts/test/vault/vault.mainnet.fork-test.js b/contracts/test/vault/vault.mainnet.fork-test.js index d9570c59e2..d56eaf534f 100644 --- a/contracts/test/vault/vault.mainnet.fork-test.js +++ b/contracts/test/vault/vault.mainnet.fork-test.js @@ -156,7 +156,7 @@ describe("ForkTest: Vault", function () { }); it("should withdraw from and deposit to strategy", async () => { - const { vault, josh, usdc, morphoGauntletPrimeUSDCStrategy } = fixture; + const { vault, josh, usdc, morphoOUSDv2Strategy } = fixture; await vault.connect(josh).mint(usdc.address, usdcUnits("90"), 0); const strategistSigner = await impersonateAndFund( await vault.strategistAddr() @@ -170,12 +170,12 @@ describe("ForkTest: Vault", function () { async () => { [usdcStratDiff] = await differenceInStrategyBalance( [usdc.address], - [morphoGauntletPrimeUSDCStrategy], + [morphoOUSDv2Strategy], async () => { await vault .connect(strategistSigner) .depositToStrategy( - morphoGauntletPrimeUSDCStrategy.address, + morphoOUSDv2Strategy.address, [usdc.address], [usdcUnits("90")] ); @@ -194,12 +194,12 @@ describe("ForkTest: Vault", function () { async () => { [usdcStratDiff] = await differenceInStrategyBalance( [usdc.address], - [morphoGauntletPrimeUSDCStrategy], + [morphoOUSDv2Strategy], async () => { await vault .connect(strategistSigner) .withdrawFromStrategy( - morphoGauntletPrimeUSDCStrategy.address, + morphoOUSDv2Strategy.address, [usdc.address], [usdcUnits("90")] ); @@ -272,7 +272,6 @@ describe("ForkTest: Vault", function () { const knownStrategies = [ // Update this every time a new strategy is added. Below are mainnet addresses - "0x2B8f37893EE713A4E9fF0cEb79F27539f20a32a1", // Morpho Gauntlet Prime USDC "0x26a02ec47ACC2A3442b757F45E0A82B8e993Ce11", // Curve AMO OUSD/USDC "0x3643cafA6eF3dd7Fcc2ADaD1cabf708075AFFf6e", // Morpho OUSD v2 Strategy ]; @@ -296,7 +295,7 @@ describe("ForkTest: Vault", function () { const { vault, usdc } = fixture; expect([ - "0x2B8f37893EE713A4E9fF0cEb79F27539f20a32a1", //Morpho Gauntlet Prime USDC + "0x3643cafA6eF3dd7Fcc2ADaD1cabf708075AFFf6e", //Morpho OUSD v2 Strategy ]).to.include(await vault.assetDefaultStrategies(usdc.address)); });