diff --git a/script/configs/holesky/eigenlayer_addresses_preprod.config.json b/script/configs/holesky/eigenlayer_addresses_preprod.config.json index 210840fcf..b515f7abc 100644 --- a/script/configs/holesky/eigenlayer_addresses_preprod.config.json +++ b/script/configs/holesky/eigenlayer_addresses_preprod.config.json @@ -11,9 +11,9 @@ "eigenLayerPauserReg": "0x9Ab2FEAf0465f0eD51Fc2b663eF228B418c9Dad1", "eigenLayerProxyAdmin": "0x1BEF05C7303d44e0E2FCD2A19d993eDEd4c51b5B", "eigenPodBeacon": "0x92Cc4a800A1513E85C481dDDf3A06C6921211eaC", - "eigenPodImplementation": "0xcB0858aA14d27FE8D255CF0Fa0b8e8977785169a", + "eigenPodImplementation": "0x8Da4b953cbFb715624D98C0D2b4a7978462eFd38", "eigenPodManager": "0xB8d8952f572e67B11e43bC21250967772fa883Ff", - "eigenPodManagerImplementation": "0xE59f0a991600788E2bc08c31817124be00520F48", + "eigenPodManagerImplementation": "0x10EBa780CCd9E5e9FFBe529C25046c076Be91048", "emptyContract": "0x9690d52B1Ce155DB2ec5eCbF5a262ccCc7B3A6D2", "rewardsCoordinator": "0xb22Ef643e1E067c994019A4C19e403253C05c2B0", "rewardsCoordinatorImplementation": "0x7C80B0d3aFBeF9Bbd03Aab72cD2d90a12c11D394", diff --git a/script/deploy/holesky/v040-rc5-holesky-preprod-pepe.s.sol b/script/deploy/holesky/v040-rc5-holesky-preprod-pepe.s.sol new file mode 100644 index 000000000..1506d96e6 --- /dev/null +++ b/script/deploy/holesky/v040-rc5-holesky-preprod-pepe.s.sol @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.12; + +import "../../utils/ExistingDeploymentParser.sol"; + +/** + * @notice Script used for upgrading EigenPod and EPM Implementation for Holesky preprod + * anvil --fork-url $RPC_HOLESKY + * forge script script/deploy/holesky/v040-rc5-holesky-preprod-pepe.s.sol --rpc-url http://127.0.0.1:8545 --private-key $PRIVATE_KEY --broadcast -vvvv + * forge script script/deploy/holesky/v040-rc5-holesky-preprod-pepe.s.sol --rpc-url $RPC_HOLESKY --private-key $PRIVATE_KEY --verify --broadcast -vvvv + */ +contract EigenPod_Checkpoint_Deploy_Preprod is ExistingDeploymentParser { + + address testAddress = 0xDA29BB71669f46F2a779b4b62f03644A84eE3479; + address initOwner = 0xDA29BB71669f46F2a779b4b62f03644A84eE3479; + + function run() external virtual { + _parseInitialDeploymentParams( + "script/configs/holesky/eigenlayer_preprod.config.json" + ); + _parseDeployedContracts( + "script/configs/holesky/eigenlayer_addresses_preprod.config.json" + ); + + emit log_named_address("Deployer Address", msg.sender); + + // START RECORDING TRANSACTIONS FOR DEPLOYMENT + vm.startBroadcast(); + + _upgradeEigenPods(); + _upgradeEigenPodManager(); + + // STOP RECORDING TRANSACTIONS FOR DEPLOYMENT + vm.stopBroadcast(); + + // Sanity Checks + _verifyContractPointers(); + _verifyImplementations(); + _verifyContractsInitialized(); + _verifyInitializationParams(); + + logAndOutputContractAddresses("script/output/holesky/v040-rc5.output.json"); + } + + /** + * @notice Deploy EigenPod Implementation for Holesky preprod and upgrade the beacon + */ + function _upgradeEigenPods() internal { + // Deploy implementation + eigenPodImplementation = new EigenPod( + IETHPOSDeposit(ETHPOSDepositAddress), + eigenPodManager, + EIGENPOD_GENESIS_TIME + ); + + // upgrade UpgradeableBeacon + eigenPodBeacon.upgradeTo(address(eigenPodImplementation)); + } + + /** + * @notice Deploy EPM Implementation for Holesky preprod and upgrade its proxy + */ + function _upgradeEigenPodManager() internal { + // Deploy implementation + eigenPodManagerImplementation = new EigenPodManager( + IETHPOSDeposit(ETHPOSDepositAddress), + eigenPodBeacon, + strategyManager, + slasher, + delegationManager + ); + + // upgrade TUPS + eigenLayerProxyAdmin.upgrade( + TransparentUpgradeableProxy(payable(address(eigenPodManager))), + address(eigenPodManagerImplementation) + ); + } +} diff --git a/script/output/holesky/v040-rc5.output.json b/script/output/holesky/v040-rc5.output.json new file mode 100644 index 000000000..22835e972 --- /dev/null +++ b/script/output/holesky/v040-rc5.output.json @@ -0,0 +1,34 @@ +{ + "addresses": { + "avsDirectory": "0x141d6995556135D4997b2ff72EB443Be300353bC", + "avsDirectoryImplementation": "0x357978adC03375BD6a3605DE055fABb84695d79A", + "baseStrategyImplementation": "0x62450517EfA1CE60d79801daf8f95973865e8D40", + "delegationManager": "0x75dfE5B44C2E530568001400D3f704bC8AE350CC", + "delegationManagerImplementation": "0x56E88cb4f0136fC27D95499dE4BE2acf47946Fa1", + "eigenLayerPauserReg": "0x9Ab2FEAf0465f0eD51Fc2b663eF228B418c9Dad1", + "eigenLayerProxyAdmin": "0x1BEF05C7303d44e0E2FCD2A19d993eDEd4c51b5B", + "eigenPodBeacon": "0x92Cc4a800A1513E85C481dDDf3A06C6921211eaC", + "eigenPodImplementation": "0x8Da4b953cbFb715624D98C0D2b4a7978462eFd38", + "eigenPodManager": "0xB8d8952f572e67B11e43bC21250967772fa883Ff", + "eigenPodManagerImplementation": "0x10EBa780CCd9E5e9FFBe529C25046c076Be91048", + "emptyContract": "0x9690d52B1Ce155DB2ec5eCbF5a262ccCc7B3A6D2", + "rewardsCoordinator": "0xb22Ef643e1E067c994019A4C19e403253C05c2B0", + "rewardsCoordinatorImplementation": "0x7C80B0d3aFBeF9Bbd03Aab72cD2d90a12c11D394", + "slasher": "0x12699471dF8dca329C76D72823B1b79d55709384", + "slasherImplementation": "0x9460fCe11E1e0365419fa860599903B4E5097cf0", + "strategies": "", + "strategyManager": "0xF9fbF2e35D8803273E214c99BF15174139f4E67a", + "strategyManagerImplementation": "0x1a26B23a004C512350d7Dd89056655A80b850199" + }, + "chainInfo": { + "chainId": 17000, + "deploymentBlock": 2100862 + }, + "parameters": { + "communityMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", + "executorMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", + "operationsMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", + "pauserMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", + "timelock": "0xcF19CE0561052a7A7Ff21156730285997B350A7D" + } +} \ No newline at end of file