diff --git a/script/configs/holesky/M2_deploy_from_scratch.holesky.config.json b/script/configs/holesky/M2_deploy_from_scratch.holesky.config.json index 6cd5bc2c3..b0cdcc42c 100644 --- a/script/configs/holesky/M2_deploy_from_scratch.holesky.config.json +++ b/script/configs/holesky/M2_deploy_from_scratch.holesky.config.json @@ -10,10 +10,26 @@ "timelock": "0xcF19CE0561052a7A7Ff21156730285997B350A7D" }, "strategies": { - "numStrategies": 0, + "numStrategies": 3, "MAX_PER_DEPOSIT": 115792089237316195423570985008687907853269984665640564039457584007913129639935, "MAX_TOTAL_DEPOSITS": 115792089237316195423570985008687907853269984665640564039457584007913129639935, - "strategiesToDeploy": [] + "strategiesToDeploy": [ + { + "token_address": "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", + "token_name": "Liquid staked Ether 2.0", + "token_symbol": "stETH" + }, + { + "token_address": "0x7322c24752f79c05FFD1E2a6FCB97020C1C264F1", + "token_name": "Rocket Pool ETH", + "token_symbol": "rETH" + }, + { + "token_address": "0x94373a4919B3240D86eA41593D5eBa789FEF3848", + "token_name": "Wrapped Ether", + "token_symbol": "WETH" + } + ] }, "strategyManager": { "init_strategy_whitelister": "0xfaEF7338b7490b9E272d80A1a39f4657cAf2b97d", diff --git a/script/configs/holesky/M2_deploy_preprod.holesky.config.json b/script/configs/holesky/M2_deploy_preprod.holesky.config.json index 469ef613e..498c6c4d4 100644 --- a/script/configs/holesky/M2_deploy_preprod.holesky.config.json +++ b/script/configs/holesky/M2_deploy_preprod.holesky.config.json @@ -9,7 +9,6 @@ "executorMultisig": "0x0000000000000000000000000000000000000000", "timelock": "0x0000000000000000000000000000000000000000" }, - "numStrategies": 2, "strategies": { "numStrategies": 2, "MAX_PER_DEPOSIT": 115792089237316195423570985008687907853269984665640564039457584007913129639935, diff --git a/script/deploy/holesky/M2_Deploy_From_Scratch.s.sol b/script/deploy/holesky/M2_Deploy_From_Scratch.s.sol index 7d66ec162..626626b49 100644 --- a/script/deploy/holesky/M2_Deploy_From_Scratch.s.sol +++ b/script/deploy/holesky/M2_Deploy_From_Scratch.s.sol @@ -128,8 +128,8 @@ contract M2_Deploy_Holesky_From_Scratch is ExistingDeploymentParser { address(strategyManagerImplementation), abi.encodeWithSelector( StrategyManager.initialize.selector, - executorMultisig, //initialOwner - STRATEGY_MANAGER_WHITELISTER, //initial whitelister + msg.sender, //initialOwner, set to executorMultisig later after whitelisting strategies + msg.sender, //initial whitelister, set to STRATEGY_MANAGER_WHITELISTER later eigenLayerPauserReg, STRATEGY_MANAGER_INIT_PAUSED_STATUS ) @@ -173,6 +173,10 @@ contract M2_Deploy_Holesky_From_Scratch is ExistingDeploymentParser { // Deploy Strategies baseStrategyImplementation = new StrategyBaseTVLLimits(strategyManager); uint256 numStrategiesToDeploy = strategiesToDeploy.length; + // whitelist params + IStrategy[] memory strategiesToWhitelist = new IStrategy[](numStrategiesToDeploy); + bool[] memory thirdPartyTransfersForbiddenValues = new bool[](numStrategiesToDeploy); + for (uint256 i = 0; i < numStrategiesToDeploy; i++) { StrategyUnderlyingTokenConfig memory strategyConfig = strategiesToDeploy[i]; @@ -192,13 +196,21 @@ contract M2_Deploy_Holesky_From_Scratch is ExistingDeploymentParser { ) ); + strategiesToWhitelist[i] = strategy; + thirdPartyTransfersForbiddenValues[i] = false; + deployedStrategyArray.push(strategy); } + // Add strategies to whitelist and set whitelister to STRATEGY_MANAGER_WHITELISTER + strategyManager.addStrategiesToDepositWhitelist(strategiesToWhitelist, thirdPartyTransfersForbiddenValues); + strategyManager.setStrategyWhitelister(STRATEGY_MANAGER_WHITELISTER); + // Fork timestamp config eigenPodManager.setDenebForkTimestamp(EIGENPOD_MANAGER_DENEB_FORK_TIMESTAMP); // Transfer ownership + strategyManager.transferOwnership(executorMultisig); eigenLayerProxyAdmin.transferOwnership(executorMultisig); eigenPodManager.transferOwnership(executorMultisig); eigenPodBeacon.transferOwnership(executorMultisig); diff --git a/script/output/holesky/M2_deploy_from_scratch.holesky.config.json b/script/output/holesky/M2_deploy_from_scratch.holesky.config.json new file mode 100644 index 000000000..ab93f31d1 --- /dev/null +++ b/script/output/holesky/M2_deploy_from_scratch.holesky.config.json @@ -0,0 +1,38 @@ +{ + "addresses": { + "avsDirectory": "0x055733000064333CaDDbC92763c58BF0192fFeBf", + "avsDirectoryImplementation": "0xEF5BA995Bc7722fd1e163edF8Dc09375de3d3e3a", + "baseStrategyImplementation": "0xFb83e1D133D0157775eC4F19Ff81478Df1103305", + "beaconOracle": "0x4C116BB629bff7A8373c2378bBd919f8349B8f25", + "delayedWithdrawalRouter": "0x642c646053eaf2254f088e9019ACD73d9AE0FA32", + "delayedWithdrawalRouterImplementation": "0xcE8b8D99773a718423F8040a6e52c06a4ce63407", + "delegationManager": "0xA44151489861Fe9e3055d95adC98FbD462B948e7", + "delegationManagerImplementation": "0x83f8F8f0BB125F7870F6bfCf76853f874C330D76", + "eigenLayerPauserReg": "0x85Ef7299F8311B25642679edBF02B62FA2212F06", + "eigenLayerProxyAdmin": "0xDB023566064246399b4AE851197a97729C93A6cf", + "eigenPodBeacon": "0x7261C2bd75a7ACE1762f6d7FAe8F63215581832D", + "eigenPodImplementation": "0xa6AF55234A9A2B4d4A78d6952cf1Bb216857bE18", + "eigenPodManager": "0x30770d7E3e71112d7A6b7259542D1f680a70e315", + "eigenPodManagerImplementation": "0x5265C162f7d5F3fE3175a78828ab16bf5E324a7B", + "emptyContract": "0x9690d52B1Ce155DB2ec5eCbF5a262ccCc7B3A6D2", + "slasher": "0xcAe751b75833ef09627549868A04E32679386e7C", + "slasherImplementation": "0x99715D255E34a39bE9943b82F281CA734bcF345A", + "strategies": { + "WETH": "0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9", + "rETH": "0x3A8fBdf9e77DFc25d09741f51d3E181b25d0c4E0", + "stETH": "0x7D704507b76571a51d9caE8AdDAbBFd0ba0e63d3" + }, + "strategyManager": "0xdfB5f6CE42aAA7830E94ECFCcAd411beF4d4D5b6", + "strategyManagerImplementation": "0x59f766A603C53f3AC8Be43bBe158c1519b193a18" + }, + "chainInfo": { + "chainId": 17000, + "deploymentBlock": 1167041 + }, + "parameters": { + "communityMultisig": "0xCb8d2f9e55Bc7B1FA9d089f9aC80C583D2BDD5F7", + "executorMultisig": "0x28Ade60640fdBDb2609D8d8734D1b5cBeFc0C348", + "operationsMultisig": "0xfaEF7338b7490b9E272d80A1a39f4657cAf2b97d", + "pauserMultisig": "0x53410249ec7d3a3F9F1ba3912D50D6A3Df6d10A7" + } +} \ No newline at end of file diff --git a/script/utils/ExistingDeploymentParser.sol b/script/utils/ExistingDeploymentParser.sol index ff1c22051..352b6a9db 100644 --- a/script/utils/ExistingDeploymentParser.sol +++ b/script/utils/ExistingDeploymentParser.sol @@ -579,6 +579,10 @@ contract ExistingDeploymentParser is Script, Test { deployedStrategyArray[i].paused() == 0, "StrategyBaseTVLLimits: init paused status set incorrectly" ); + require( + strategyManager.strategyIsWhitelistedForDeposit(deployedStrategyArray[i]), + "StrategyBaseTVLLimits: strategy should be whitelisted" + ); } // Pausing Permissions