From 9a767dc83e070812c175848bd7e75a561a5acbc0 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:50:41 +0200 Subject: [PATCH 01/16] refactor: rm SVData struct --- src/ISuperVault.sol | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/ISuperVault.sol b/src/ISuperVault.sol index ceb7a53..02674cf 100644 --- a/src/ISuperVault.sol +++ b/src/ISuperVault.sol @@ -10,15 +10,6 @@ interface ISuperVault is IERC1155Receiver { // STRUCTS // ////////////////////////////////////////////////////////////// - /// @notice Struct to hold SuperVault strategy data - struct SuperVaultStrategyData { - address vaultManager; - uint256 numberOfSuperforms; - uint256 depositLimit; - uint256[] superformIds; - uint256[] weights; - } - /// @notice Struct to hold rebalance arguments /// @notice superformIdsRebalanceFrom must be an ordered array of superform IDs with no duplicates /// @param superformIdsRebalanceFrom Array of superform IDs to rebalance from From a52dcb065a27d50fa4d60c084c92d9cc9545fd3d Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:51:01 +0200 Subject: [PATCH 02/16] refactor: add state vars from old SV struct --- src/SuperVault.sol | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/SuperVault.sol b/src/SuperVault.sol index 5ac4045..2997e15 100644 --- a/src/SuperVault.sol +++ b/src/SuperVault.sol @@ -52,6 +52,12 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @notice The maximum allowed slippage (1% = 100) uint256 public constant MAX_SLIPPAGE = 100; + /// @notice The number of superforms in the vault + uint256 numberOfSuperforms; + + /// @notice The deposit limit for the vault + uint256 depositLimit; + /// @notice Struct containing SuperVault strategy data SuperVaultStrategyData private SV; @@ -61,6 +67,12 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @notice Array of whitelisted Superform IDs for easy access uint256[] public whitelistedSuperformIdArray; + /// @notice Array of superform IDs in the vault + uint256[] superformIds; + + /// @notice Array of weights for each superform in the vault + uint256[] weights; + ////////////////////////////////////////////////////////////// // MODIFIERS // ////////////////////////////////////////////////////////////// From 99caac84955884a909d3f1c21e00aa5fd165dd6f Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:04:18 +0200 Subject: [PATCH 03/16] fix: update function params that use SV data struct --- src/SuperVault.sol | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/SuperVault.sol b/src/SuperVault.sol index 2997e15..072ecc9 100644 --- a/src/SuperVault.sol +++ b/src/SuperVault.sol @@ -107,7 +107,6 @@ contract SuperVault is BaseStrategy, ISuperVault { address superRegistry_, address asset_, address strategist_, - address vaultManager_, string memory name_, uint256 depositLimit_, uint256[] memory superformIds_, @@ -115,7 +114,7 @@ contract SuperVault is BaseStrategy, ISuperVault { ) BaseStrategy(asset_, name_) { - uint256 numberOfSuperforms = superformIds_.length; + numberOfSuperforms = superformIds_.length; if (numberOfSuperforms == 0) { revert ZERO_SUPERFORMS(); @@ -168,11 +167,11 @@ contract SuperVault is BaseStrategy, ISuperVault { if (totalWeight != TOTAL_WEIGHT) revert INVALID_WEIGHTS(); strategist = strategist_; - SV.vaultManager = vaultManager_; - SV.numberOfSuperforms = numberOfSuperforms; - SV.superformIds = superformIds_; - SV.weights = startingWeights_; - SV.depositLimit = depositLimit_; + for (uint256 i; i < numberOfSuperforms; ++i) { + superformIds[i] = superformIds_[i]; + weights[i] = startingWeights_[i]; + } + depositLimit = depositLimit_; } ////////////////////////////////////////////////////////////// @@ -181,7 +180,7 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @inheritdoc ISuperVault function setDepositLimit(uint256 depositLimit_) external override onlyVaultManager { - SV.depositLimit = depositLimit_; + depositLimit = depositLimit_; emit DepositLimitSet(depositLimit_); } @@ -210,12 +209,11 @@ contract SuperVault is BaseStrategy, ISuperVault { { /// @dev caching to avoid multiple SLOADs - uint256 numberOfSuperforms = SV.numberOfSuperforms; uint256 foundCount; for (uint256 i; i < lenRebalanceFrom; ++i) { for (uint256 j; j < numberOfSuperforms; ++j) { - if (rebalanceArgs.superformIdsRebalanceFrom[i] == SV.superformIds[j]) { + if (rebalanceArgs.superformIdsRebalanceFrom[i] == superformIds[j]) { foundCount++; break; } @@ -258,9 +256,9 @@ contract SuperVault is BaseStrategy, ISuperVault { ISuperformRouterPlus(routerPlus).rebalanceMultiPositions(args); - /// @dev step 3: update SV data + /// @dev step 3: update data /// @notice no issue about reentrancy as the external contracts are trusted - /// @notice updateSV emits rebalance event + /// @notice updateSVData emits rebalance event _updateSVData(superPositions, rebalanceArgs.finalSuperformIds); } @@ -652,7 +650,7 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @notice Updates the SuperVault data after rebalancing /// @param superPositions Address of the SuperPositions contract /// @param finalSuperformIds Array of Superform IDs to rebalance to - function _updateSVData(address superPositions, uint256[] memory finalSuperformIds) internal { + function _updatSVData(address superPositions, uint256[] memory finalSuperformIds) internal { uint256 totalWeight; uint256 length = finalSuperformIds.length; @@ -696,9 +694,9 @@ contract SuperVault is BaseStrategy, ISuperVault { newWeights[length - 1] = TOTAL_WEIGHT - totalAssignedWeight; /// @dev update SV weights - SV.weights = newWeights; - SV.superformIds = finalSuperformIds; - SV.numberOfSuperforms = length; + weights = newWeights; + superformIds = finalSuperformIds; + numberOfSuperforms = length; emit RebalanceComplete(finalSuperformIds, newWeights); } From f1ee5ee7e84a3cd45212a192e5cd3b790c6dab22 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:04:54 +0200 Subject: [PATCH 04/16] fix: update onlyVaultManager implementation --- src/SuperVault.sol | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/SuperVault.sol b/src/SuperVault.sol index 072ecc9..4f4cc4d 100644 --- a/src/SuperVault.sol +++ b/src/SuperVault.sol @@ -85,14 +85,6 @@ contract SuperVault is BaseStrategy, ISuperVault { _; } - /// @notice Ensures that only the Vault Manager can call the function - modifier onlyVaultManager() { - if (SV.vaultManager != msg.sender) { - revert NOT_VAULT_MANAGER(); - } - _; - } - ////////////////////////////////////////////////////////////// // CONSTRUCTOR // ////////////////////////////////////////////////////////////// @@ -179,7 +171,7 @@ contract SuperVault is BaseStrategy, ISuperVault { ////////////////////////////////////////////////////////////// /// @inheritdoc ISuperVault - function setDepositLimit(uint256 depositLimit_) external override onlyVaultManager { + function setDepositLimit(uint256 depositLimit_) external override onlyManagement { depositLimit = depositLimit_; emit DepositLimitSet(depositLimit_); @@ -281,7 +273,7 @@ contract SuperVault is BaseStrategy, ISuperVault { ) external override - onlyVaultManager + onlyManagement { uint256 length = superformIds.length; if (length != isWhitelisted.length) revert ARRAY_LENGTH_MISMATCH(); From f18d331158e13d109452cf021f83cab8606d7c89 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:10:17 +0200 Subject: [PATCH 05/16] fix: implement onlyManagement() modifier --- src/SuperVault.sol | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/SuperVault.sol b/src/SuperVault.sol index 4f4cc4d..9ea53a3 100644 --- a/src/SuperVault.sol +++ b/src/SuperVault.sol @@ -58,9 +58,6 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @notice The deposit limit for the vault uint256 depositLimit; - /// @notice Struct containing SuperVault strategy data - SuperVaultStrategyData private SV; - /// @notice Mapping to track whitelisted Superform IDs mapping(uint256 => bool) public whitelistedSuperformIds; @@ -301,7 +298,7 @@ contract SuperVault is BaseStrategy, ISuperVault { view returns (uint256 numberOfSuperforms, uint256[] memory superformIds, uint256[] memory weights) { - return (SV.numberOfSuperforms, SV.superformIds, SV.weights); + return (numberOfSuperforms, superformIds, weights); } /// @inheritdoc ISuperVault @@ -363,7 +360,6 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @inheritdoc BaseStrategy function availableDepositLimit(address /*_owner*/ ) public view override returns (uint256) { uint256 totalAssets = TokenizedStrategy.totalAssets(); - uint256 depositLimit = SV.depositLimit; return totalAssets >= depositLimit ? 0 : depositLimit - totalAssets; } @@ -414,8 +410,7 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @return totalAssets The total assets of the vault function _harvestAndReport() internal view override returns (uint256 totalAssets) { uint256 totalAssetsInVaults; - uint256 numberOfSuperforms = SV.numberOfSuperforms; - uint256[] memory superformIds = SV.superformIds; + uint256[] memory superformIds = superformIds; address superPositions = _getAddress(keccak256("SUPER_POSITIONS")); @@ -446,9 +441,8 @@ contract SuperVault is BaseStrategy, ISuperVault { view returns (MultiVaultSFData memory mvData) { - uint256 numberOfSuperforms = SV.numberOfSuperforms; - mvData.superformIds = SV.superformIds; + mvData.superformIds = superformIds; mvData.amounts = new uint256[](numberOfSuperforms); mvData.maxSlippages = new uint256[](numberOfSuperforms); mvData.liqRequests = new LiqRequest[](numberOfSuperforms); @@ -470,11 +464,11 @@ contract SuperVault is BaseStrategy, ISuperVault { if (isDeposit) { /// @notice rounding down to avoid one-off issue - mvData.amounts[i] = amount_.mulDiv(SV.weights[i], TOTAL_WEIGHT, Math.Rounding.Down); + mvData.amounts[i] = amount_.mulDiv(weights[i], TOTAL_WEIGHT, Math.Rounding.Down); mvData.outputAmounts[i] = superformContract.previewDepositTo(mvData.amounts[i]); } else { /// @dev assets - mvData.outputAmounts[i] = amount_.mulDiv(SV.weights[i], TOTAL_WEIGHT, Math.Rounding.Down); + mvData.outputAmounts[i] = amount_.mulDiv(weights[i], TOTAL_WEIGHT, Math.Rounding.Down); /// @dev shares - in 4626Form this uses convertToShares in 5115Form this uses previewDeposit mvData.amounts[i] = superformContract.previewDepositTo(mvData.outputAmounts[i]); } From 0a472f0c7537d37ba7b63e7a340d3ea4f9a6f42b Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:12:19 +0200 Subject: [PATCH 06/16] refactor: rm setVaultManager() --- src/ISuperVault.sol | 7 ------- src/SuperVault.sol | 8 -------- 2 files changed, 15 deletions(-) diff --git a/src/ISuperVault.sol b/src/ISuperVault.sol index 02674cf..97ed1c9 100644 --- a/src/ISuperVault.sol +++ b/src/ISuperVault.sol @@ -74,9 +74,6 @@ interface ISuperVault is IERC1155Receiver { /// @notice Error thrown when the caller is not the pending management error NOT_PENDING_MANAGEMENT(); - /// @notice Error thrown when the caller is not the vault manager - error NOT_VAULT_MANAGER(); - /// @notice Error thrown when a superform ID is not whitelisted error SUPERFORM_NOT_WHITELISTED(); @@ -134,10 +131,6 @@ interface ISuperVault is IERC1155Receiver { /// @param isWhitelisted Array of booleans indicating whether to whitelist or blacklist function setWhitelist(uint256[] memory superformIds, bool[] memory isWhitelisted) external; - /// @notice Sets the vault manager - /// @param vaultManager_ The new vault manager - function setVaultManager(address vaultManager_) external; - /// @notice Returns the SuperVault data /// @return numberOfSuperforms The number of Superforms /// @return superformIds Array of Superform IDs diff --git a/src/SuperVault.sol b/src/SuperVault.sol index 9ea53a3..af09b84 100644 --- a/src/SuperVault.sol +++ b/src/SuperVault.sol @@ -280,14 +280,6 @@ contract SuperVault is BaseStrategy, ISuperVault { } } - /// @inheritdoc ISuperVault - function setVaultManager(address vaultManager_) external override onlyManagement { - if (vaultManager_ == address(0)) revert ZERO_ADDRESS(); - SV.vaultManager = vaultManager_; - - emit VaultManagerSet(vaultManager_); - } - ////////////////////////////////////////////////////////////// // EXTERNAL VIEW/PURE FUNCTIONS // ////////////////////////////////////////////////////////////// From 9c7cf98d7730a16c63c409d3e421dd1bb367c964 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:14:03 +0200 Subject: [PATCH 07/16] fix: typo --- src/SuperVault.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SuperVault.sol b/src/SuperVault.sol index af09b84..56e2028 100644 --- a/src/SuperVault.sol +++ b/src/SuperVault.sol @@ -113,7 +113,7 @@ contract SuperVault is BaseStrategy, ISuperVault { revert ARRAY_LENGTH_MISMATCH(); } - if (superRegistry_ == address(0) || strategist_ == address(0) || vaultManager_ == address(0)) { + if (superRegistry_ == address(0) || strategist_ == address(0)) { revert ZERO_ADDRESS(); } @@ -628,7 +628,7 @@ contract SuperVault is BaseStrategy, ISuperVault { /// @notice Updates the SuperVault data after rebalancing /// @param superPositions Address of the SuperPositions contract /// @param finalSuperformIds Array of Superform IDs to rebalance to - function _updatSVData(address superPositions, uint256[] memory finalSuperformIds) internal { + function _updateSVData(address superPositions, uint256[] memory finalSuperformIds) internal { uint256 totalWeight; uint256 length = finalSuperformIds.length; From 4feb2d0dd25b6017fa06cc501d0d632a99f0bdf0 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:15:48 +0200 Subject: [PATCH 08/16] fix: update SuperVault constructor params --- lib/superform-core | 2 +- test/SuperVault.t.sol | 17 +++++------------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/lib/superform-core b/lib/superform-core index a4f65be..52cbfbb 160000 --- a/lib/superform-core +++ b/lib/superform-core @@ -1 +1 @@ -Subproject commit a4f65beecbee272b9aa3a9f4078369286e97c5a2 +Subproject commit 52cbfbb86561a072ebf3334828fc40912e53b315 diff --git a/test/SuperVault.t.sol b/test/SuperVault.t.sol index 3c5594f..4688c03 100644 --- a/test/SuperVault.t.sol +++ b/test/SuperVault.t.sol @@ -131,7 +131,6 @@ contract SuperVaultTest is ProtocolActions { getContract(ETH, "SuperRegistry"), getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -281,7 +280,6 @@ contract SuperVaultTest is ProtocolActions { getContract(ETH, "SuperRegistry"), getContract(ETH, "USDC"), deployer, - deployer, "TestSuperVault", type(uint256).max, superformIds, @@ -311,20 +309,16 @@ contract SuperVaultTest is ProtocolActions { // Test 1: ZERO_SUPERFORMS revert vm.expectRevert(abi.encodeWithSignature("ZERO_SUPERFORMS()")); - new SuperVault(superRegistry, asset, deployer, deployer, name, depositLimit, superformIds, startingWeights); + new SuperVault(superRegistry, asset, deployer, name, depositLimit, superformIds, startingWeights); superformIds = underlyingSuperformIds; // Test 2.1: ZERO_ADDRESS revert vm.expectRevert(abi.encodeWithSignature("ZERO_ADDRESS()")); - new SuperVault(address(0), asset, deployer, deployer, name, depositLimit, superformIds, startingWeights); + new SuperVault(address(0), asset, deployer, name, depositLimit, superformIds, startingWeights); - // Test 2.2: ZERO_ADDRESS revert + // Test 2: ZERO_ADDRESS revert vm.expectRevert(abi.encodeWithSignature("ZERO_ADDRESS()")); - new SuperVault(superRegistry, asset, address(0), deployer, name, depositLimit, superformIds, startingWeights); - - // Test 2.3: ZERO_ADDRESS revert - vm.expectRevert(abi.encodeWithSignature("ZERO_ADDRESS()")); - new SuperVault(superRegistry, asset, deployer, address(0), name, depositLimit, superformIds, startingWeights); + new SuperVault(superRegistry, asset, address(0), name, depositLimit, superformIds, startingWeights); // Test 3: ARRAY_LENGTH_MISMATCH revert uint256[] memory mismatchedWeights = new uint256[](2); @@ -340,7 +334,6 @@ contract SuperVaultTest is ProtocolActions { superRegistry, getContract(ETH, "DAI"), deployer, - deployer, name, depositLimit, superformIds, @@ -354,7 +347,7 @@ contract SuperVaultTest is ProtocolActions { invalidWeights[2] = 3000; vm.expectRevert(abi.encodeWithSignature("INVALID_WEIGHTS()")); - new SuperVault(superRegistry, asset, deployer, deployer, name, depositLimit, superformIds, invalidWeights); + new SuperVault(superRegistry, asset, deployer, name, depositLimit, superformIds, invalidWeights); } function test_superVault_assertSuperPositions_splitAccordingToWeights() public { From a4c06bb19ee194bc0ab49c131aa9b70598c98060 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:24:07 +0200 Subject: [PATCH 09/16] fix: update test_setVaultManager() --- test/SuperVault.t.sol | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/SuperVault.t.sol b/test/SuperVault.t.sol index 4688c03..181aff4 100644 --- a/test/SuperVault.t.sol +++ b/test/SuperVault.t.sol @@ -26,7 +26,6 @@ contract SuperVaultHarness is SuperVault { superRegistry_, asset_, strategist_, - vaultManager_, name_, depositLimit_, superformIds_, @@ -209,16 +208,17 @@ contract SuperVaultTest is ProtocolActions { function test_setVaultManager() public { address newVaultManager = address(0xDEAD); + // Test successful vault manager update vm.prank(deployer); - superVault.setVaultManager(newVaultManager); - } + address(superVault).call(abi.encodeWithSignature("setPendingManagement(address)", newVaultManager)); - function test_setVaultManager_zeroAddress() public { - // Test that zero address is rejected - vm.prank(deployer); - vm.expectRevert(abi.encodeWithSignature("ZERO_ADDRESS()")); - superVault.setVaultManager(address(0)); + vm.startPrank(newVaultManager); + address(superVault).call(abi.encodeWithSelector(ITokenizedStrategy.acceptManagement.selector)); + + superVault.setStrategist(newVaultManager); + assertEq(superVault.strategist(), newVaultManager, "Strategist should be updated"); + vm.stopPrank(); } function test_setWhitelist_RemoveElements() public { From 196ddfb782cf56ceebf23c441c7884488254ac45 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:26:56 +0200 Subject: [PATCH 10/16] fix: update SuperVault constructor params --- test/SuperVault.t.sol | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/SuperVault.t.sol b/test/SuperVault.t.sol index 181aff4..57607fa 100644 --- a/test/SuperVault.t.sol +++ b/test/SuperVault.t.sol @@ -179,8 +179,6 @@ contract SuperVaultTest is ProtocolActions { SuperRegistry(getContract(ETH, "SuperRegistry")).setAddress(keccak256("SUPER_VAULTS_STRATEGIST"), deployer, ETH); - SuperRegistry(getContract(ETH, "SuperRegistry")).setAddress(keccak256("VAULT_MANAGER"), deployer, ETH); - vm.stopPrank(); } @@ -289,7 +287,7 @@ contract SuperVaultTest is ProtocolActions { function test_onlyVaultManagerCanCall() public { vm.startPrank(address(0xdead)); - vm.expectRevert(ISuperVault.NOT_VAULT_MANAGER.selector); + vm.expectRevert("!management"); SuperVault(address(superVault)).setDepositLimit(type(uint256).max); vm.stopPrank(); } @@ -326,7 +324,7 @@ contract SuperVaultTest is ProtocolActions { mismatchedWeights[1] = 5000; vm.expectRevert(abi.encodeWithSignature("ARRAY_LENGTH_MISMATCH()")); - new SuperVault(superRegistry, asset, deployer, deployer, name, depositLimit, superformIds, mismatchedWeights); + new SuperVault(superRegistry, asset, deployer, name, depositLimit, superformIds, mismatchedWeights); // Test 4: SUPERFORM_DOES_NOT_SUPPORT_ASSET revert vm.expectRevert(abi.encodeWithSignature("SUPERFORM_DOES_NOT_SUPPORT_ASSET()")); From 8f356110cba2548dcf8146c1b7a886f645c14259 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:28:54 +0200 Subject: [PATCH 11/16] fix: update SuperVault constructor params --- src/SuperVaultFactory.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/SuperVaultFactory.sol b/src/SuperVaultFactory.sol index e7111ce..78c93e8 100644 --- a/src/SuperVaultFactory.sol +++ b/src/SuperVaultFactory.sol @@ -74,7 +74,6 @@ contract SuperVaultFactory is ISuperVaultFactory, AccessControl { function createSuperVault( address asset_, address strategist_, - address vaultManager_, string memory name_, uint256 depositLimit_, uint256[] memory superformIds_, @@ -105,7 +104,6 @@ contract SuperVaultFactory is ISuperVaultFactory, AccessControl { address(superRegistry), asset_, strategist_, - vaultManager_, name_, depositLimit_, superformIds_, From c97ebc24ec80b7d08e4dbda6d4f6d4358040284c Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:29:10 +0200 Subject: [PATCH 12/16] fix: update SuperVault constructor params --- script/forge-scripts/Deploy.SuperVault.s.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/forge-scripts/Deploy.SuperVault.s.sol b/script/forge-scripts/Deploy.SuperVault.s.sol index d7e4d21..6a1d3f3 100644 --- a/script/forge-scripts/Deploy.SuperVault.s.sol +++ b/script/forge-scripts/Deploy.SuperVault.s.sol @@ -41,14 +41,12 @@ contract MainnetDeploySuperVault is Script { /// @dev TODO set later the correct address, as this is currently rewards admin address REWARDS_ADMIN = isStaging ? 0x1F05a8Ff6d895Ba04C84c5031c5d63FA1afCDA6F : 0xf82F3D7Df94FC2994315c32322DA6238cA2A2f7f; - address VAULT_MANAGER = address(0xDEAD); address superVault = address( new SuperVault( superRegistry, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, // USDC REWARDS_ADMIN, - VAULT_MANAGER, "USDCSuperVaultMoonwellFlagship", type(uint256).max, superformIds, From d9e2afac6cf0a9e64028dcf25379ab4887869b0c Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:29:36 +0200 Subject: [PATCH 13/16] fix: update SuperVault constructor params --- src/ISuperVaultFactory.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ISuperVaultFactory.sol b/src/ISuperVaultFactory.sol index 999461c..d167747 100644 --- a/src/ISuperVaultFactory.sol +++ b/src/ISuperVaultFactory.sol @@ -95,7 +95,6 @@ interface ISuperVaultFactory { /// @dev Sets pending management to deployer, deployer will have to accept management in SuperVault /// @param asset_ Address of the asset token /// @param strategist_ Address of the strategist - /// @param vaultManager_ Address of the vault manager /// @param name_ Name of the strategy /// @param depositLimit_ Maximum deposit limit /// @param superformIds_ Array of Superform IDs @@ -103,7 +102,6 @@ interface ISuperVaultFactory { function createSuperVault( address asset_, address strategist_, - address vaultManager_, string memory name_, uint256 depositLimit_, uint256[] memory superformIds_, From a33f741445b629f697d8c7d8a8a0a6e65b70b406 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:30:43 +0200 Subject: [PATCH 14/16] fix: set strategist in createSuperVault() --- src/SuperVaultFactory.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SuperVaultFactory.sol b/src/SuperVaultFactory.sol index 78c93e8..7e93fcc 100644 --- a/src/SuperVaultFactory.sol +++ b/src/SuperVaultFactory.sol @@ -111,6 +111,8 @@ contract SuperVaultFactory is ISuperVaultFactory, AccessControl { ) ); + superVault.setStrategist(strategist_); + /// @dev set pending management to deployer /// @dev deployer will have to accept management in SuperVault (bool success,) = address(superVault).call( From 682fbf7159fdbaaee047cd04aebe862b8b0d8e6b Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:32:14 +0200 Subject: [PATCH 15/16] fix: update createSuperVault() params --- src/SuperVaultFactory.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/SuperVaultFactory.sol b/src/SuperVaultFactory.sol index 7e93fcc..78c93e8 100644 --- a/src/SuperVaultFactory.sol +++ b/src/SuperVaultFactory.sol @@ -111,8 +111,6 @@ contract SuperVaultFactory is ISuperVaultFactory, AccessControl { ) ); - superVault.setStrategist(strategist_); - /// @dev set pending management to deployer /// @dev deployer will have to accept management in SuperVault (bool success,) = address(superVault).call( From 55cbbdc8aa3ac12cf1d7bf9d8a1497b87dd58dc3 Mon Sep 17 00:00:00 2001 From: Tamara Ringas <69479754+TamaraRingas@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:35:00 +0200 Subject: [PATCH 16/16] fix: update createSuperVault() params --- test/SuperVaultFactory.t.sol | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/test/SuperVaultFactory.t.sol b/test/SuperVaultFactory.t.sol index 781050c..36d2b46 100644 --- a/test/SuperVaultFactory.t.sol +++ b/test/SuperVaultFactory.t.sol @@ -86,7 +86,6 @@ contract SuperVaultFactoryTest is ProtocolActions { address superVaultTest = factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -105,7 +104,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( address(0), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -117,7 +115,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), address(0), - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -129,7 +126,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -141,7 +137,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, new uint256[](0), @@ -155,7 +150,6 @@ contract SuperVaultFactoryTest is ProtocolActions { address superVaultTest = factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -177,7 +171,6 @@ contract SuperVaultFactoryTest is ProtocolActions { address superVaultTest = factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -195,7 +188,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -204,7 +196,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), address(12_345), - address(12_345), "TestSuperVault", 100e18, underlyingSuperformIds, @@ -219,7 +210,6 @@ contract SuperVaultFactoryTest is ProtocolActions { address superVaultTest = factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -236,7 +226,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds, @@ -246,7 +235,6 @@ contract SuperVaultFactoryTest is ProtocolActions { factory.createSuperVault( getContract(ETH, "USDC"), deployer, - deployer, "USDCSuperVaultMorphoEulerAave", type(uint256).max, underlyingSuperformIds,