diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index db909e62ea..7399aa5704 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -28,7 +28,6 @@ "PRIVATE_KEY": "${localEnv:PRIVATE_KEY}", "PUBLIC_KEY": "${localEnv:PUBLIC_KEY}", "RPC_MAINNET": "${localEnv:RPC_MAINNET}", - "RPC_HOLESKY": "${localEnv:RPC_HOLESKY}" }, // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], diff --git a/.env.example b/.env.example index d7244d2fd5..345b59b95d 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,3 @@ RPC_MAINNET="https://eth.llamarpc.com" -RPC_HOLESKY="" +RPC_HOODI="https://ethereum-hoodi.gateway.tatum.io" ETHERSCAN_API_KEY="API-KEY" diff --git a/.github/workflows/foundry-post-merge.yml b/.github/workflows/foundry-post-merge.yml index 0fd29ae096..5ef8ea91e2 100644 --- a/.github/workflows/foundry-post-merge.yml +++ b/.github/workflows/foundry-post-merge.yml @@ -38,7 +38,6 @@ jobs: github.com:443 release-assets.githubusercontent.com:443 eth-mainnet.g.alchemy.com:443 - powerful-dimensional-season.ethereum-holesky.quiknode.pro:443 # Check out repository with all submodules for complete codebase access. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 diff --git a/.github/workflows/foundry.yml b/.github/workflows/foundry.yml index 3e3a2f7d43..6f6745e3d3 100644 --- a/.github/workflows/foundry.yml +++ b/.github/workflows/foundry.yml @@ -35,7 +35,7 @@ jobs: github.com:443 release-assets.githubusercontent.com:443 eth-mainnet.g.alchemy.com:443 - powerful-dimensional-season.ethereum-holesky.quiknode.pro:443 + fabled-wispy-ensemble.ethereum-hoodi.quiknode.pro:443 objects.githubusercontent.com:443 # Check out repository with all submodules for complete codebase access. @@ -84,7 +84,7 @@ jobs: env: FOUNDRY_PROFILE: ${{ matrix.suite == 'Fork' && 'forktest' || 'medium' }} RPC_MAINNET: ${{ secrets.RPC_MAINNET }} - RPC_HOLESKY: ${{ secrets.RPC_HOLESKY }} + RPC_HOODI: ${{ secrets.RPC_HOODI }} # ----------------------------------------------------------------------- # Forge Storage Diff diff --git a/.github/workflows/validate-deployment-scripts.yml b/.github/workflows/validate-deployment-scripts.yml index 3789f54198..32a4b378be 100644 --- a/.github/workflows/validate-deployment-scripts.yml +++ b/.github/workflows/validate-deployment-scripts.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: true matrix: - env: [preprod, testnet, mainnet, testnet-sepolia, testnet-hoodi, testnet-base-sepolia, base] + env: [mainnet, testnet-sepolia, testnet-hoodi, testnet-base-sepolia, base] steps: - uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 @@ -81,12 +81,10 @@ jobs: fi # Set RPC URL based on environment - if [ "${{ matrix.env }}" = "testnet" ] || [ "${{ matrix.env }}" = "preprod" ]; then - RPC_URL="${{ secrets.RPC_HOLESKY }}" + if [ "${{ matrix.env }}" = "testnet-hoodi" ]; then + RPC_URL="${{ secrets.RPC_HOODI }}" elif [ "${{ matrix.env }}" = "testnet-sepolia" ]; then RPC_URL="${{ secrets.RPC_SEPOLIA }}" - elif [ "${{ matrix.env }}" = "testnet-hoodi" ]; then - RPC_URL="${{ secrets.RPC_HOODI }}" elif [ "${{ matrix.env }}" = "testnet-base-sepolia" ]; then RPC_URL="${{ secrets.RPC_BASE_SEPOLIA }}" elif [ "${{ matrix.env }}" = "mainnet" ]; then diff --git a/MAINTENANCE.md b/MAINTENANCE.md index 6133c7ac50..76cc77413f 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -100,20 +100,6 @@ Regex rules can be changed by modifying `exempt-branches-regex` config in the [y ## Release Management - -### Environment Networks - -Before diving into maintenance details, it's important to understand our environment network structure. - -| Environment | Environment Network | Definition and Practices | -|-------------|---------------------|--------------------------| -| **mainnet** | mainnet-ethereum | - Production environment on Ethereum mainnet
- Single canonical mainnet instance in foreseeable future
- External facing with highest security requirements | -| **testnet** | testnet-holesky
testnet-sepolia
testnet-hoodi | - Test environments on Ethereum testnets (holesky, sepolia, etc.)
- Multiple testnet environments may exist simultaneously
- External facing, long-lived environments for both internal and external developers
- Used for integration testing, AVS onboarding, and community engagement | -| **preprod** | preprod-holesky
preprod-sepolia
preprod-hoodi | - Pre-production environments on Ethereum testnets
- Multiple preprod environments may exist simultaneously
- Internal facing for development team use
- Used for feature verification before promoting to testnet
- Provides safe environment for testing breaking changes | - -For more details on our testing infrastructure strategy, see our blog post: [The Future of EigenLayer Testing: New & Improved Testnets & Tooling Coming Soon](https://www.blog.eigenlayer.xyz/the-future-of-eigenlayer-testing-new-and-improved-testnets-tooling-coming-soon/) - - ### Release Tags and Semver This section defines release tag semver where `` = `..` diff --git a/README.md b/README.md index 322bee3bbc..3d48824ad4 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,12 @@ EigenLayer brings together Restakers, Operators, and Autonomous Verifiable Servi ## Deployments -The deployments on `mainnet`, `base`, `holesky`, `sepolia`, `hoodi`, and `base sepolia` are on the below versions: +The deployments on `mainnet`, `base`, `sepolia`, `hoodi`, and `base sepolia` are on the below versions: | Environment | Version | Core Protocol Deployed | Supports Native Restaking | Supports Multichain | | -------- | -------- | -------- | -------- | -------- | | Mainnet Ethereum | [`v1.8.1`](https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.8.1) | Yes | Yes | Yes (source & destination) | | Base | [`v1.8.1`](https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.8.1) | No | No | Yes (destination) | -| Testnet Holesky | [`v1.8.1`](https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.8.1) | Yes | Yes | No | | Testnet Sepolia | [`v1.8.1`](https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.8.1) | Yes | No | Yes (source & destination) | | Testnet Hoodi | [`v1.8.0`](https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.8.0) | Yes | Yes | No | | Testnet Base Sepolia | [`v1.8.1`](https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.8.1) | No | No | Yes (destination) | @@ -174,88 +173,6 @@ The following contracts are used by AVSs. -
- Testnet Holesky - - -You can view the deployed contract addresses below, or check out the code itself on the [`testnet-holesky`](https://github.com/Layr-Labs/eigenlayer-contracts/tree/testnet-holesky) branch. - -###### Core - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`DelegationManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/core/DelegationManager.sol) | [`0xA44151489861Fe9e3055d95adC98FbD462B948e7`](https://holesky.etherscan.io/address/0xA44151489861Fe9e3055d95adC98FbD462B948e7) | [`0x39F2...b0CF4`](https://holesky.etherscan.io/address/0x39F23a044Ea7DB60b5392b964F2f9261B93b0CF4) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/core/StrategyManager.sol) | [`0xdfB5f6CE42aAA7830E94ECFCcAd411beF4d4D5b6`](https://holesky.etherscan.io/address/0xdfB5f6CE42aAA7830E94ECFCcAd411beF4d4D5b6) | [`0x4870...21a04`](https://holesky.etherscan.io/address/0x4870B0BbDD8360E49A15987B16590Ef917c21a04) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`EigenPodManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/pods/EigenPodManager.sol) | [`0x30770d7E3e71112d7A6b7259542D1f680a70e315`](https://holesky.etherscan.io/address/0x30770d7E3e71112d7A6b7259542D1f680a70e315) | [`0xf889...23AA`](https://holesky.etherscan.io/address/0xf889B045cdE04c9CB22FF0Ead6C66a72f3cb23AA) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`AVSDirectory`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.4.2/src/contracts/core/AVSDirectory.sol) | [`0x055733000064333CaDDbC92763c58BF0192fFeBf`](https://holesky.etherscan.io/address/0x055733000064333CaDDbC92763c58BF0192fFeBf) | [`0x331e...2506`](https://holesky.etherscan.io/address/0x331e3Bd9cf69562f6F9ade72BD3D9f271f1B2506) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`RewardsCoordinator`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.4.2/src/contracts/core/RewardsCoordinator.sol) | [`0xAcc1fb458a1317E886dB376Fc8141540537E68fE`](https://holesky.etherscan.io/address/0xAcc1fb458a1317E886dB376Fc8141540537E68fE) | [`0x4087...d41`](https://holesky.etherscan.io/address/0x40873dddA165258E1c5aE487f4842dac3946Ad41) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`AllocationManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/core/AllocationManager.sol) | [`0x78469728304326CBc65f8f95FA756B0B73164462`](https://holesky.etherscan.io/address/0x78469728304326CBc65f8f95FA756B0B73164462) | [`0x45A1...A591`](https://holesky.etherscan.io/address/0x45A1bb44e2d8d2475185d0bcE480ce2e55c4A591) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`PermissionController`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.4.2/src/contracts/permissions/PermissionController.sol) | [`0x598cb226B591155F767dA17AfE7A2241a68C5C10`](https://holesky.etherscan.io/address/0x598cb226B591155F767dA17AfE7A2241a68C5C10) | [`0x7ab0...a2b9`](https://holesky.etherscan.io/address/0x7ab0ebd25d5ffe7527600ca5b2858c1a3faba2b9#code) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | - -###### Strategies - -Anyone can deploy and whitelist strategies for standard ERC20s by using the `StrategyFactory` deployed to the address below (see [docs](./docs/core/StrategyManager.md#strategyfactorydeploynewstrategy)). Strategies deployed from the `StrategyFactory` are deployed using the beacon proxy pattern: - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`StrategyFactory`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.4.2/src/contracts/strategies/StrategyFactory.sol) | [`0x9c01252B580efD11a05C00Aa42Dd3ac1Ec52DF6d`](https://holesky.etherscan.io/address/0x9c01252B580efD11a05C00Aa42Dd3ac1Ec52DF6d) | [`0x84aa...a7d`](https://holesky.etherscan.io/address/0x84aaD0F753b84Cd68F36Ff207DDfA0f2865b1a7d) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBase.sol) | [`0xd3c6C6BA4E40dB9288c6a2077e5635344F8aFA4F`](https://holesky.etherscan.io/address/0xd3c6C6BA4E40dB9288c6a2077e5635344F8aFA4F) | [`0x62cd...B86d`](https://holesky.etherscan.io/address/0x62cda01F3FbaB32FEe9E08094D9766D77566B86d) | - Beacon: [`BeaconProxy`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/proxy/beacon/BeaconProxy.sol)
- Strategies: [`UpgradeableBeacon`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.1/contracts/proxy/beacon/UpgradeableBeacon.sol) | - -The following strategies were originally deployed and whitelisted outside of the `StrategyFactory`: - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`StrategyBase (stETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x7D704507b76571a51d9caE8AdDAbBFd0ba0e63d3`](https://holesky.etherscan.io/address/0x7D704507b76571a51d9caE8AdDAbBFd0ba0e63d3) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (rETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x3A8fBdf9e77DFc25d09741f51d3E181b25d0c4E0`](https://holesky.etherscan.io/address/0x3A8fBdf9e77DFc25d09741f51d3E181b25d0c4E0) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (WETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9`](https://holesky.etherscan.io/address/0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (lsETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x05037A81BD7B4C9E0F7B430f1F2A22c31a2FD943`](https://holesky.etherscan.io/address/0x05037A81BD7B4C9E0F7B430f1F2A22c31a2FD943) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (sfrxETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x9281ff96637710Cd9A5CAcce9c6FAD8C9F54631c`](https://holesky.etherscan.io/address/0x9281ff96637710Cd9A5CAcce9c6FAD8C9F54631c) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (ETHx)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x31B6F59e1627cEfC9fA174aD03859fC337666af7`](https://holesky.etherscan.io/address/0x31B6F59e1627cEfC9fA174aD03859fC337666af7) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (osETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x46281E3B7fDcACdBa44CADf069a94a588Fd4C6Ef`](https://holesky.etherscan.io/address/0x46281E3B7fDcACdBa44CADf069a94a588Fd4C6Ef) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (cbETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x70EB4D3c164a6B4A5f908D4FBb5a9cAfFb66bAB6`](https://holesky.etherscan.io/address/0x70EB4D3c164a6B4A5f908D4FBb5a9cAfFb66bAB6) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (mETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0xaccc5A86732BE85b5012e8614AF237801636F8e5`](https://holesky.etherscan.io/address/0xaccc5A86732BE85b5012e8614AF237801636F8e5) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (ankrETH)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x7673a47463F80c6a3553Db9E54c8cDcd5313d0ac`](https://holesky.etherscan.io/address/0x7673a47463F80c6a3553Db9E54c8cDcd5313d0ac) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (reALT)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0xAD76D205564f955A9c18103C4422D1Cd94016899`](https://holesky.etherscan.io/address/0xAD76D205564f955A9c18103C4422D1Cd94016899) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`StrategyBase (EO)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/StrategyBaseTVLLimits.sol) | [`0x78dBcbEF8fF94eC7F631c23d38d197744a323868`](https://holesky.etherscan.io/address/0x78dBcbEF8fF94eC7F631c23d38d197744a323868) | [`0x332b...B518`](https://holesky.etherscan.io/address/0x332b384D7100bc8A6D1d1B99fa5D60834ac4B518) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | - -###### Strategies - Special - -The following strategies differ significantly from the other strategies deployed/used above: - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`EigenStrategy (EIGEN)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/strategies/EigenStrategy.sol) | [`0x43252609bff8a13dFe5e057097f2f45A24387a84`](https://holesky.etherscan.io/address/0x43252609bff8a13dFe5e057097f2f45A24387a84) | [`0xd673...2b99`](https://holesky.etherscan.io/address/0xd673a9Ee9DD278aED0705161b9D264e3F2296b99) | Proxy: [`TUP@4.7.1`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| `Beacon Chain ETH` | `0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0` | - | - Used for Beacon Chain ETH shares
- Not a real contract! | - -###### EigenPods - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`EigenPod (beacon)`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.6.0/src/contracts/pods/EigenPod.sol) | [`0x7261C2bd75a7ACE1762f6d7FAe8F63215581832D`](https://holesky.etherscan.io/address/0x7261C2bd75a7ACE1762f6d7FAe8F63215581832D) | [`0x2742...0aD9`](https://holesky.etherscan.io/address/0x2742bd43b254f0199Bb5020CB477Ff9Ad3A80aD9) | - Beacon: [`BeaconProxy`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/proxy/beacon/BeaconProxy.sol)
- Pods: [`UpgradeableBeacon`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.1/contracts/proxy/beacon/UpgradeableBeacon.sol) | - -###### EIGEN/bEIGEN - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`Eigen`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.6.0/src/contracts/token/Eigen.sol) | [`0x3B78576F7D7230049bE2c915629b31122C3FbF88`](https://holesky.etherscan.io/address/0x3B78576F7D7230049bE2c915629b31122C3FbF88) | [`0xfF1e...68F0`](https://holesky.etherscan.io/address/0xfF1e23C37EC543684cf866785c0626c2Ac7468F0) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`Backing Eigen`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.4.2/src/contracts/token/BackingEigen.sol) | [`0x275cCf9Be51f4a6C94aBa6114cdf2a4c45B9cb27`](https://holesky.etherscan.io/address/0x275cCf9Be51f4a6C94aBa6114cdf2a4c45B9cb27) | [`0x05ad...E05c`](https://holesky.etherscan.io/address/0x05adA1C66DdDD7c36705bC23a4d50dBa72E4E05c) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | - -###### Multisigs - -| Name | Proxy | Implementation | Notes | -| -------- | -------- | -------- | -------- | -| [`PauserRegistry`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.4.2/src/contracts/permissions/PauserRegistry.sol) | - | [`0x41Db...ec1D`](https://holesky.etherscan.io/address/0x41Dbe7BbacA97D986FCF6f5203b98Ec02412ec1D) | | -| [`OZ: TimelockController`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.7/contracts/governance/TimelockController.sol) | - | [`0x5e83c7d195318A5acf46B29E5810DdC323b2F6fD`](https://holesky.etherscan.io/address/0x5e83c7d195318A5acf46B29E5810DdC323b2F6fD) | | -| [`OZ: Proxy Admin`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/ProxyAdmin.sol) | - | [`0xDB023566064246399b4AE851197a97729C93A6cf`](https://holesky.etherscan.io/address/0xDB023566064246399b4AE851197a97729C93A6cf) | | -| [`Pauser Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x53410249ec7d3a3F9F1ba3912D50D6A3Df6d10A7`](https://holesky.etherscan.io/address/0x53410249ec7d3a3F9F1ba3912D50D6A3Df6d10A7) | [`0xd9db...9552`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | -| [`Community Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0xCb8d2f9e55Bc7B1FA9d089f9aC80C583D2BDD5F7`](https://holesky.etherscan.io/address/0xCb8d2f9e55Bc7B1FA9d089f9aC80C583D2BDD5F7) | [`0xd9db...9552`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | -| [`Executor Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x28Ade60640fdBDb2609D8d8734D1b5cBeFc0C348`](https://holesky.etherscan.io/address/0x28Ade60640fdBDb2609D8d8734D1b5cBeFc0C348) | [`0xd9db...9552`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | -| [`Operations Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0xfaEF7338b7490b9E272d80A1a39f4657cAf2b97d`](https://holesky.etherscan.io/address/0xfaEF7338b7490b9E272d80A1a39f4657cAf2b97d) | [`0xd9db...9552`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | - -
- - -
Testnet Sepolia @@ -268,7 +185,7 @@ You can view the deployed contract addresses below, or check out the code itself | -------- | -------- | -------- | -------- | | [`DelegationManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/core/DelegationManager.sol) | [`0xD4A7E1Bd8015057293f0D0A557088c286942e84b`](https://sepolia.etherscan.io/address/0xD4A7E1Bd8015057293f0D0A557088c286942e84b) | [`0xa982...1b823`](https://sepolia.etherscan.io/address/0xa9821F0620D347648f375c597761C7FD16C1b823) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | | [`StrategyManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/core/StrategyManager.sol) | [`0x2E3D6c0744b10eb0A4e6F679F71554a39Ec47a5D`](https://sepolia.etherscan.io/address/0x2E3D6c0744b10eb0A4e6F679F71554a39Ec47a5D) | [`0xf0A8...FCB3`](https://sepolia.etherscan.io/address/0xf0A8735c26121e6C488ebac65c8fa3fe37cBFCB3) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | -| [`EigenPodManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/pods/EigenPodManager.sol) | [`0x56BfEb94879F4543E756d26103976c567256034a`](https://sepolia.etherscan.io/address/0x56BfEb94879F4543E756d26103976c567256034a) | [`0x1084...88Ae`](https://sepolia.etherscan.io/address/0x10848d61cE044bcAEE301a28A4C30Ad0a40e88Ae) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | All EigenPod functionality is paused on Holesky | +| [`EigenPodManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/pods/EigenPodManager.sol) | [`0x56BfEb94879F4543E756d26103976c567256034a`](https://sepolia.etherscan.io/address/0x56BfEb94879F4543E756d26103976c567256034a) | [`0x1084...88Ae`](https://sepolia.etherscan.io/address/0x10848d61cE044bcAEE301a28A4C30Ad0a40e88Ae) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | All EigenPod functionality is paused on Sepolia | | [`AVSDirectory`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.3.0/src/contracts/core/AVSDirectory.sol) | [`0xa789c91ECDdae96865913130B786140Ee17aF545`](https://sepolia.etherscan.io/address/0xa789c91ECDdae96865913130B786140Ee17aF545) | [`0xD88b...C188`](https://sepolia.etherscan.io/address/0xD88b96998325c3e74A74a0B0938BBFeA1395C188) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | | [`RewardsCoordinator`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.3.0/src/contracts/core/RewardsCoordinator.sol) | [`0x5ae8152fb88c26ff9ca5C014c94fca3c68029349`](https://sepolia.etherscan.io/address/0x5ae8152fb88c26ff9ca5C014c94fca3c68029349) | [`0xcC30...7940`](https://sepolia.etherscan.io/address/0xcC305562B01bec562D13A40ef8781e313AFE7940) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | | [`AllocationManager`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.5.0/src/contracts/core/AllocationManager.sol) | [`0x42583067658071247ec8CE0A516A58f682002d07`](https://sepolia.etherscan.io/address/0x42583067658071247ec8CE0A516A58f682002d07) | [`0xB87A...7Db7`](https://sepolia.etherscan.io/address/0xB87AeeA46BB3a3050D277272E33b011922537Db7) | Proxy: [`TUP@4.9.0`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.0/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) | @@ -342,10 +259,10 @@ The multichain protocol expects AVSs to register on the source chain. AVS's stak | [`PauserRegistry`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.3.0/src/contracts/permissions/PauserRegistry.sol) | - | [`0x63AA...20f3`](https://sepolia.etherscan.io/address/0x63AAe451780090f50Ad323aAEF155F63a29D20f3) | | | [`OZ: TimelockController`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.7/contracts/governance/TimelockController.sol) | - | [`0x1BEF...1b5B`](https://sepolia.etherscan.io/address/0x1BEF05C7303d44e0E2FCD2A19d993eDEd4c51b5B) | | | [`OZ: Proxy Admin`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/ProxyAdmin.sol) | - | [`0x56E8...6Fa1`](https://sepolia.etherscan.io/address/0x56E88cb4f0136fC27D95499dE4BE2acf47946Fa1) | | -| [`Pauser Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x0B415f75980D863872C3eb8caa76E6eC8Bc81536`](https://sepolia.etherscan.io/address/0x0B415f75980D863872C3eb8caa76E6eC8Bc81536) | [`0x4167...461a`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | -| [`Community Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x6f8459810197cc9fE123BBeB918451757a4fBAc6`](https://sepolia.etherscan.io/address/0x6f8459810197cc9fE123BBeB918451757a4fBAc6) | [`0x4167...461a`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | -| [`Executor Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x4FDA8998EC3b7d4b4A612d45FeB8fB36734470f2`](https://sepolia.etherscan.io/address/0x4FDA8998EC3b7d4b4A612d45FeB8fB36734470f2) | [`0x4167...461a`](https://holesky.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | -| [`Operations Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0xb094Ba769b4976Dc37fC689A76675f31bc4923b0`](https://sepolia.etherscan.io/address/0xb094Ba769b4976Dc37fC689A76675f31bc4923b0) | [`0x4167...461a`](https://holesky.etherscan.io/address/0x41675C099F32341bf84BFc5382aF534df5C7461a) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | +| [`Pauser Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x0B415f75980D863872C3eb8caa76E6eC8Bc81536`](https://sepolia.etherscan.io/address/0x0B415f75980D863872C3eb8caa76E6eC8Bc81536) | [`0x4167...461a`](https://sepolia.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | +| [`Community Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x6f8459810197cc9fE123BBeB918451757a4fBAc6`](https://sepolia.etherscan.io/address/0x6f8459810197cc9fE123BBeB918451757a4fBAc6) | [`0x4167...461a`](https://sepolia.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | +| [`Executor Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0x4FDA8998EC3b7d4b4A612d45FeB8fB36734470f2`](https://sepolia.etherscan.io/address/0x4FDA8998EC3b7d4b4A612d45FeB8fB36734470f2) | [`0x4167...461a`](https://sepolia.etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) | +| [`Operations Multisig`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol) | [`0xb094Ba769b4976Dc37fC689A76675f31bc4923b0`](https://sepolia.etherscan.io/address/0xb094Ba769b4976Dc37fC689A76675f31bc4923b0) | [`0x4167...461a`](https://sepolia.etherscan.io/address/0x41675C099F32341bf84BFc5382aF534df5C7461a) | Proxy: [`Gnosis@1.3.0`](https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/proxies/GnosisSafeProxy.sol) |
diff --git a/foundry.toml b/foundry.toml index 5f939766e9..6a2164514c 100644 --- a/foundry.toml +++ b/foundry.toml @@ -175,4 +175,3 @@ [rpc_endpoints] mainnet = "${RPC_MAINNET}" - holesky = "${RPC_HOLESKY}" \ No newline at end of file diff --git a/script/configs/holesky.json b/script/configs/holesky.json deleted file mode 100644 index b6c35dd065..0000000000 --- a/script/configs/holesky.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "config": { - "environment": { - "chainid": 17000, - "lastUpdated": "v0.4.2-mainnet-pepe", - "name": "testnet-holesky" - }, - "params": { - "ethPOS": "0x4242424242424242424242424242424242424242", - "EIGENPOD_GENESIS_TIME": 1695902400, - "CALCULATION_INTERVAL_SECONDS": 604800, - "MAX_REWARDS_DURATION": 6048000, - "MAX_RETROACTIVE_LENGTH": 7776000, - "MAX_FUTURE_LENGTH": 2592000, - "GENESIS_REWARDS_TIMESTAMP": 1710979200, - "REWARDS_UPDATER_ADDRESS": "0x18a0f92Ad9645385E8A8f3db7d0f6CF7aBBb0aD4", - "ACTIVATION_DELAY": 7200, - "GLOBAL_OPERATOR_COMMISSION_BIPS": 1000 - } - }, - "deployment": { - "admin": { - "communityMultisig": "0xCb8d2f9e55Bc7B1FA9d089f9aC80C583D2BDD5F7", - "executorMultisig": "0x28Ade60640fdBDb2609D8d8734D1b5cBeFc0C348", - "operationsMultisig": "0xfaEF7338b7490b9E272d80A1a39f4657cAf2b97d", - "pauserMultisig": "0x53410249ec7d3a3F9F1ba3912D50D6A3Df6d10A7", - "pauserRegistry": "0x85Ef7299F8311B25642679edBF02B62FA2212F06", - "proxyAdmin": "0xDB023566064246399b4AE851197a97729C93A6cf", - "timelock": "0xcF19CE0561052a7A7Ff21156730285997B350A7D" - }, - "core": { - "avsDirectory": { - "proxy": "0x055733000064333CaDDbC92763c58BF0192fFeBf", - "impl": "0xEF5BA995Bc7722fd1e163edF8Dc09375de3d3e3a", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "delegationManager": { - "proxy": "0xA44151489861Fe9e3055d95adC98FbD462B948e7", - "impl": "0x83f8F8f0BB125F7870F6bfCf76853f874C330D76", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "rewardsCoordinator": { - "proxy": "0xAcc1fb458a1317E886dB376Fc8141540537E68fE", - "impl": "0x1a17df4170099577b79038fd310f3ff62f79752e", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "slasher": { - "proxy": "0xcAe751b75833ef09627549868A04E32679386e7C", - "impl": "0x99715D255E34a39bE9943b82F281CA734bcF345A", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "strategyManager": { - "proxy": "0xdfB5f6CE42aAA7830E94ECFCcAd411beF4d4D5b6", - "impl": "0x59f766A603C53f3AC8Be43bBe158c1519b193a18", - "pendingImpl": "0x0000000000000000000000000000000000000000" - } - }, - "pods": { - "delayedWithdrawalRouter": { - "proxy": "0x642c646053eaf2254f088e9019ACD73d9AE0FA32", - "impl": "0xcE8b8D99773a718423F8040a6e52c06a4ce63407", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "eigenPod": { - "beacon": "0x7261C2bd75a7ACE1762f6d7FAe8F63215581832D", - "impl": "0x10ad7e30e3F52076C8462D573530f4461377319c", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "eigenPodManager": { - "proxy": "0x30770d7E3e71112d7A6b7259542D1f680a70e315", - "impl": "0x91A6525a4a843F5a5B633905300c33F79413CCc5", - "pendingImpl": "0x0000000000000000000000000000000000000000" - } - }, - "strategies": { - "strategyFactory": { - "proxy": "0x9c01252B580efD11a05C00Aa42Dd3ac1Ec52DF6d", - "impl": "0x5E699de7bFc4DD2A5E72EB5a2Ca99651EfdD51CB", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "strategyBeacon": { - "beacon": "0xd3c6C6BA4E40dB9288c6a2077e5635344F8aFA4F", - "impl": "0xb637caeedfCBf88e0d019E7AE4691b554c994A1e", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "preLongtailStrats": { - "impl": "0xFb83e1D133D0157775eC4F19Ff81478Df1103305", - "addrs": [ - "0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9", - "0x3A8fBdf9e77DFc25d09741f51d3E181b25d0c4E0", - "0x7D704507b76571a51d9caE8AdDAbBFd0ba0e63d3", - "0x31B6F59e1627cEfC9fA174aD03859fC337666af7", - "0x70EB4D3c164a6B4A5f908D4FBb5a9cAfFb66bAB6", - "0x9281ff96637710Cd9A5CAcce9c6FAD8C9F54631c", - "0x05037A81BD7B4C9E0F7B430f1F2A22c31a2FD943", - "0x46281E3B7fDcACdBa44CADf069a94a588Fd4C6Ef", - "0xaccc5A86732BE85b5012e8614AF237801636F8e5", - "0x7673a47463F80c6a3553Db9E54c8cDcd5313d0ac", - "0xAD76D205564f955A9c18103C4422D1Cd94016899", - "0x78dBcbEF8fF94eC7F631c23d38d197744a323868" - ] - } - }, - "token": { - "bEIGEN": { - "proxy": "0x275cCf9Be51f4a6C94aBa6114cdf2a4c45B9cb27", - "impl": "0x4500927874Ad41538c1bEF2F5278E7a86DF6bce8", - "pendingImpl": "0x0000000000000000000000000000000000000000", - "proxyAdmin": "0x67482666771e82c9a73bb9e9a22b2b597f448bbf" - }, - "EIGEN": { - "proxy": "0x3B78576F7D6837500bA3De27A60c7f594934027E", - "impl": "0x083bC9e0DCF2C3e13E24686e5202232995578c5a", - "pendingImpl": "0x0000000000000000000000000000000000000000", - "proxyAdmin": "0x67482666771e82c9a73bb9e9a22b2b597f448bbf" - }, - "eigenStrategy": { - "proxy": "0x43252609bff8a13dFe5e057097f2f45A24387a84", - "impl": "0x94650e09a471CEF96e7966cabf26718FBf352697", - "pendingImpl": "0x0000000000000000000000000000000000000000" - } - } - } -} \ No newline at end of file diff --git a/script/configs/preprod.json b/script/configs/preprod.json deleted file mode 100644 index 877caa40ad..0000000000 --- a/script/configs/preprod.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "config": { - "environment": { - "chainid": 17000, - "lastUpdated": "v0.4.2-mainnet-pepe", - "name": "preprod-holesky" - }, - "params": { - "ACTIVATION_DELAY": 7200, - "CALCULATION_INTERVAL_SECONDS": 604800, - "EIGENPOD_GENESIS_TIME": 1695902400, - "GENESIS_REWARDS_TIMESTAMP": 1710979200, - "GLOBAL_OPERATOR_COMMISSION_BIPS": 1000, - "MAX_FUTURE_LENGTH": 2592000, - "MAX_RETROACTIVE_LENGTH": 7776000, - "MAX_REWARDS_DURATION": 6048000, - "REWARDS_UPDATER_ADDRESS": "0x18a0f92Ad9645385E8A8f3db7d0f6CF7aBBb0aD4", - "ethPOS": "0x4242424242424242424242424242424242424242", - "multiSendCallOnly": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" - } - }, - "deployment": { - "admin": { - "communityMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", - "executorMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", - "operationsMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", - "pauserMultisig": "0xDA29BB71669f46F2a779b4b62f03644A84eE3479", - "pauserRegistry": "0x9Ab2FEAf0465f0eD51Fc2b663eF228B418c9Dad1", - "proxyAdmin": "0x1BEF05C7303d44e0E2FCD2A19d993eDEd4c51b5B", - "timelock": "0x0000000000000000000000000000000000000000" - }, - "core": { - "avsDirectory": { - "proxy": "0x141d6995556135D4997b2ff72EB443Be300353bC", - "impl": "0x357978adC03375BD6a3605DE055fABb84695d79A", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "delegationManager": { - "proxy": "0x75dfE5B44C2E530568001400D3f704bC8AE350CC", - "impl": "0x56E88cb4f0136fC27D95499dE4BE2acf47946Fa1", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "rewardsCoordinator": { - "proxy": "0xb22Ef643e1E067c994019A4C19e403253C05c2B0", - "impl": "0x7523b42b081C30fA245AA4039c645e36746fC400", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "slasher": { - "proxy": "0x12699471dF8dca329C76D72823B1b79d55709384", - "impl": "0x9460fCe11E1e0365419fa860599903B4E5097cf0", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "strategyManager": { - "proxy": "0xF9fbF2e35D8803273E214c99BF15174139f4E67a", - "impl": "0x1a26B23a004C512350d7Dd89056655A80b850199", - "pendingImpl": "0x0000000000000000000000000000000000000000" - } - }, - "pods": { - "delayedWithdrawalRouter": { - "proxy": "0xC4BC46a87A67a531eCF7f74338E1FA79533334Fa", - "impl": "0x0011FA2c512063C495f77296Af8d195F33A8Dd38", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "eigenPod": { - "beacon": "0x92Cc4a800A1513E85C481dDDf3A06C6921211eaC", - "impl": "0x8Da4b953cbFb715624D98C0D2b4a7978462eFd38", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "eigenPodManager": { - "proxy": "0xB8d8952f572e67B11e43bC21250967772fa883Ff", - "impl": "0x10EBa780CCd9E5e9FFBe529C25046c076Be91048", - "pendingImpl": "0x0000000000000000000000000000000000000000" - } - }, - "strategies": { - "strategyFactory": { - "proxy": "0xad4A89E3cA9b3dc25AABe0aa7d72E61D2Ec66052", - "impl": "0x7a9478c0AcB819d7c235FbE2a6E13ee1D2fCD862", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "strategyBeacon": { - "beacon": "0xf2c2AcA859C685895E60ca7A14274365b64c0c2a", - "impl": "0xd648792F932FbabcCC80Cd376812074434412685", - "pendingImpl": "0x0000000000000000000000000000000000000000" - }, - "preLongtailStrats": { - "impl": "0x62450517EfA1CE60d79801daf8f95973865e8D40", - "addrs": [ - "0x6e5d5060b33ca2090a78e9cb74fe207453b30e49", - "0xf6a09ae03d7760aecf1626ce7df0f113bec2d9bd", - "0x7fa77c321bf66e42eabc9b10129304f7f90c5585", - "0x24da526f9e465c4fb6bae41e226df8aa5b34eac7", - "0x6dc6ce589f852f96ac86cb160ab0b15b9f56dedd", - "0x3c28437e610fb099cc3d6de4d9c707dfacd308ae", - "0x7b6257f5caf7311b36f7416133a8499c68a83c3a", - "0xc86382179500e8ed3e686fc4a99ed9ec72df3f56", - "0x3cb1fd19cfb178c1098f2fc1e11090a0642b2314", - "0x87f6c7d24b109919eb38295e3f8298425e6331d9", - "0x5c8b55722f421556a2aafb7a3ea63d4c3e514312", - "0xd523267698c81a372191136e477fdebfa33d9fb4", - "0xdccf401fd121d8c542e96bc1d0078884422afad2" - ] - } - }, - "token": { - "bEIGEN": { - "proxy": "0xA72942289a043874249E60469F68f08B8c6ECCe8", - "impl": "0xd5FdabDac3d8ACeAB7BFfDDFA18877A4c5D5Aa82", - "pendingImpl": "0x0000000000000000000000000000000000000000", - "proxyAdmin": "0x1BEF05C7303d44e0E2FCD2A19d993eDEd4c51b5B" - }, - "EIGEN": { - "proxy": "0xD58f6844f79eB1fbd9f7091d05f7cb30d3363926", - "impl": "0x95a7431400F362F3647a69535C5666cA0133CAA0", - "pendingImpl": "0x0000000000000000000000000000000000000000", - "proxyAdmin": "0x1BEF05C7303d44e0E2FCD2A19d993eDEd4c51b5B" - }, - "eigenStrategy": { - "proxy": "0xdcCF401fD121d8C542E96BC1d0078884422aFAD2", - "impl": "0x59D13E7Fb0bC0e57c1fc6594ff701592A6e4dD2B", - "pendingImpl": "0x0000000000000000000000000000000000000000" - } - } - } -} \ No newline at end of file diff --git a/script/utils/ExistingDeploymentParser.sol b/script/utils/ExistingDeploymentParser.sol index cd04ddadf2..239451274c 100644 --- a/script/utils/ExistingDeploymentParser.sol +++ b/script/utils/ExistingDeploymentParser.sol @@ -619,12 +619,6 @@ contract ExistingDeploymentParser is Script, Logger { address(strategyFactory), "strategyManager: strategyWhitelister not set correctly" ); - } else if (block.chainid == 17_000) { - // On holesky, for ease of whitelisting we set to executorMultisig - // assertEq( - // strategyManager.strategyWhitelister(), executorMultisig, - // "strategyManager: strategyWhitelister not set correctly" - // ); } // EigenPodManager assertTrue( diff --git a/src/test/integration/IntegrationDeployer.t.sol b/src/test/integration/IntegrationDeployer.t.sol index 5c978a93c4..dc40b1c87b 100644 --- a/src/test/integration/IntegrationDeployer.t.sol +++ b/src/test/integration/IntegrationDeployer.t.sol @@ -102,18 +102,12 @@ abstract contract IntegrationDeployer is ExistingDeploymentParser { } constructor() { - address stETH_Holesky = 0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034; address stETH_Mainnet = 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84; address OETH_Mainnet = 0x856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3; - address osETH_Holesky = 0xF603c5A3F774F05d4D848A9bB139809790890864; address osETH_Mainnet = 0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38; - address cbETH_Holesky = 0x8720095Fa5739Ab051799211B146a2EEE4Dd8B37; - tokensNotTested[stETH_Holesky] = true; tokensNotTested[stETH_Mainnet] = true; tokensNotTested[OETH_Mainnet] = true; - tokensNotTested[osETH_Holesky] = true; tokensNotTested[osETH_Mainnet] = true; - tokensNotTested[cbETH_Holesky] = true; // Use current contracts by default. Upgrade tests are only run with mainnet fork tests // using the `UpgradeTest.t.sol` mixin. diff --git a/src/test/integration/tests/CrosschainDeployLib.t.sol b/src/test/integration/tests/CrosschainDeployLib.t.sol index c63ef56f59..ab39b0b592 100644 --- a/src/test/integration/tests/CrosschainDeployLib.t.sol +++ b/src/test/integration/tests/CrosschainDeployLib.t.sol @@ -17,24 +17,24 @@ contract Integration_CrosschainDeployLibTest is IntegrationDeployer { vm.startPrank(deployer); // Test empty contract deployment - uint holeskyFork = vm.createSelectFork(vm.envString("RPC_HOLESKY"), 4_089_445); - address holeskyExpected = CrosschainDeployLib.deployEmptyContract(deployer); + uint hoodiFork = vm.createSelectFork(vm.envString("RPC_HOODI"), 1_549_268); + address hoodiExpected = CrosschainDeployLib.deployEmptyContract(deployer); uint mainnetFork = vm.createSelectFork(vm.envString("RPC_MAINNET"), 22_819_288); address mainnetExpected = CrosschainDeployLib.deployEmptyContract(deployer); - assertEq(holeskyExpected, mainnetExpected, "holeskyExpected != mainnetExpected"); + assertEq(hoodiExpected, mainnetExpected, "hoodiExpected != mainnetExpected"); // Test proxy deployment - vm.selectFork(holeskyFork); - address holeskyProxy = address(CrosschainDeployLib.deployCrosschainProxy(deployer, holeskyExpected, "ExampleContract")); + vm.selectFork(hoodiFork); + address hoodiProxy = address(CrosschainDeployLib.deployCrosschainProxy(deployer, hoodiExpected, "ExampleContract")); vm.selectFork(mainnetFork); address mainnetProxy = address(CrosschainDeployLib.deployCrosschainProxy(deployer, mainnetExpected, "ExampleContract")); - assertEq(holeskyProxy, mainnetProxy, "holeskyProxy != mainnetProxy"); + assertEq(hoodiProxy, mainnetProxy, "hoodiProxy != mainnetProxy"); // Test address prediction assertEq( CrosschainDeployLib.computeCrosschainAddress(deployer, keccak256(type(EmptyContract).creationCode), "EmptyContract"), - holeskyExpected + hoodiExpected ); - assertEq(CrosschainDeployLib.computeCrosschainUpgradeableProxyAddress(deployer, holeskyExpected, "ExampleContract"), holeskyProxy); + assertEq(CrosschainDeployLib.computeCrosschainUpgradeableProxyAddress(deployer, hoodiExpected, "ExampleContract"), hoodiProxy); } } diff --git a/src/test/integration/tests/Upgrade_Setup.t.sol b/src/test/integration/tests/Upgrade_Setup.t.sol deleted file mode 100644 index 3823c570dc..0000000000 --- a/src/test/integration/tests/Upgrade_Setup.t.sol +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.27; - -import "src/test/integration/IntegrationChecks.t.sol"; - -contract IntegrationMainnetFork_UpgradeSetup is IntegrationCheckUtils { - // /// @notice Test upgrade setup is correct - // /// forge-config: default.fuzz.runs = 1 - // function test_mainnet_upgrade_setup(uint24 _random) public { - // _configRand({ - // _randomSeed: _random, - // _assetTypes: HOLDS_LST | HOLDS_ETH | HOLDS_ALL, - // _userTypes: DEFAULT | ALT_METHODS - // }); - - // // 1. Check proper state pre-upgrade - // _verifyContractPointers(); - // _verifyImplementations(); - // _verifyContractsInitialized(false); - // _verifyInitializationParams(); - - // // 2. Upgrade mainnet contracts - // _upgradeEigenLayerContracts(); - // _parseInitialDeploymentParams("script/configs/mainnet/M2_mainnet_upgrade.config.json"); - - // // 2. Verify upgrade setup - // _verifyContractPointers(); - // _verifyImplementations(); - // _verifyContractsInitialized(false); - // _verifyInitializationParams(); - // } - - // /// @notice Test upgrade setup is correct - // /// forge-config: default.fuzz.runs = 1 - // function test_holesky_upgrade_setup(uint24 _random) public { - // _configRand({ - // _randomSeed: _random, - // _assetTypes: HOLDS_LST | HOLDS_ETH | HOLDS_ALL, - // _userTypes: DEFAULT | ALT_METHODS, - // _forkTypes: HOLESKY - // }); - - // // // 1. Check proper state pre-upgrade - // // _verifyContractPointers(); - // // _verifyImplementations(); - // // _verifyContractsInitialized(true); - // // _verifyInitializationParams(); - - // // 2. Upgrade holesky contracts - // _upgradeEigenLayerContracts(); - // _parseInitialDeploymentParams("script/configs/holesky/M2_deploy_from_scratch.holesky.config.json"); - - // // 3. Verify upgrade setup - // _verifyContractPointers(); - // _verifyImplementations(); - // _verifyContractsInitialized(true); - // _verifyInitializationParams(); - // } - - /// @notice Ensure contracts point at each other correctly via constructors - /// override to remove ethPOSDeposit contract check - function _verifyContractPointers() internal view virtual override { - // AVSDirectory - require(avsDirectory.delegation() == delegationManager, "avsDirectory: delegationManager address not set correctly"); - // DelegationManager - require(delegationManager.strategyManager() == strategyManager, "delegationManager: strategyManager address not set correctly"); - require(delegationManager.eigenPodManager() == eigenPodManager, "delegationManager: eigenPodManager address not set correctly"); - // StrategyManager - require(strategyManager.delegation() == delegationManager, "strategyManager: delegationManager address not set correctly"); - // EPM - require(eigenPodManager.eigenPodBeacon() == eigenPodBeacon, "eigenPodManager: eigenPodBeacon contract address not set correctly"); - require( - eigenPodManager.delegationManager() == delegationManager, - "eigenPodManager: delegationManager contract address not set correctly" - ); - } -} diff --git a/src/test/unit/EigenPodUnit.t.sol b/src/test/unit/EigenPodUnit.t.sol index 2654fefcd4..4d0adcdf5a 100644 --- a/src/test/unit/EigenPodUnit.t.sol +++ b/src/test/unit/EigenPodUnit.t.sol @@ -1982,7 +1982,7 @@ contract EigenPodHarnessSetup is EigenPodUnitTests { } /// @notice No unit tests as of now but would be good to add specific unit tests using proofs from our proofGen library -/// for a EigenPod on Holesky +/// for a EigenPod on Hoodi contract EigenPodUnitTests_proofParsingTests is EigenPodHarnessSetup, ProofParsing { using BytesLib for bytes; using BeaconChainProofs for *; diff --git a/src/test/utils/Logger.t.sol b/src/test/utils/Logger.t.sol index 9d86400f21..73ab22ba27 100644 --- a/src/test/utils/Logger.t.sol +++ b/src/test/utils/Logger.t.sol @@ -31,7 +31,6 @@ uint constant ALT_METHODS = (FLAG << 1); /// @dev Types representing the different types of forks that can be simulated. uint constant LOCAL = (FLAG << 0); uint constant MAINNET = (FLAG << 1); -uint constant HOLESKY = (FLAG << 2); abstract contract Logger is Test { using StdStyle for *; @@ -227,7 +226,6 @@ library print { function asForkType(uint t) internal pure returns (string memory s) { if (t == LOCAL) s = "LOCAL"; else if (t == MAINNET) s = "MAINNET"; - else if (t == HOLESKY) s = "HOLESKY"; } function asGwei(uint x) internal pure returns (string memory) {