From f3a729d68f42f59cbc220801b0740a90e49aeeac Mon Sep 17 00:00:00 2001 From: 8sunyuan Date: Thu, 29 Feb 2024 16:29:40 -0500 Subject: [PATCH 1/3] chore: remove maxPods --- certora/specs/pods/EigenPodManager.spec | 1 - script/deploy/mainnet/M2Deploy.s.sol | 6 +- .../utils/validateStorage/validateUpgrade.sh | 4 +- src/contracts/interfaces/IEigenPodManager.sol | 6 -- src/contracts/pods/EigenPodManager.sol | 19 ----- src/contracts/pods/EigenPodManagerStorage.sol | 5 +- src/test/DepositWithdraw.t.sol | 1 - src/test/EigenLayerDeployer.t.sol | 1 - src/test/EigenPod.t.sol | 82 ------------------- src/test/events/IEigenPodManagerEvents.sol | 4 - .../integration/IntegrationDeployer.t.sol | 1 - src/test/mocks/EigenPodManagerMock.sol | 3 - src/test/tree/EigenPodManagerUnit.tree | 7 -- src/test/unit/EigenPod-PodManagerUnit.t.sol | 3 - src/test/unit/EigenPodManagerUnit.t.sol | 44 +--------- 15 files changed, 7 insertions(+), 180 deletions(-) diff --git a/certora/specs/pods/EigenPodManager.spec b/certora/specs/pods/EigenPodManager.spec index 8d405c5fb5..37bdc41827 100644 --- a/certora/specs/pods/EigenPodManager.spec +++ b/certora/specs/pods/EigenPodManager.spec @@ -46,7 +46,6 @@ methods { function slasher() external returns (address) envfree; function hasPod(address podOwner) external returns (bool) envfree; function numPods() external returns (uint256) envfree; - function maxPods() external returns (uint256) envfree; function podOwnerShares(address podOwner) external returns (int256) envfree; function beaconChainETHStrategy() external returns (address) envfree; diff --git a/script/deploy/mainnet/M2Deploy.s.sol b/script/deploy/mainnet/M2Deploy.s.sol index d93455e60e..a39eeb5449 100644 --- a/script/deploy/mainnet/M2Deploy.s.sol +++ b/script/deploy/mainnet/M2Deploy.s.sol @@ -62,7 +62,6 @@ contract M2Deploy is Script, Test { uint256 public withdrawalDelayBlocks; bytes32 public delegationManagerDomainSeparator; uint256 public numPods; - uint256 public maxPods; // Pointers to pre-upgrade values for lstDepositor address public lstDepositor; @@ -122,7 +121,6 @@ contract M2Deploy is Script, Test { withdrawalDelayBlocks = m1StrategyManager(address(strategyManager)).withdrawalDelayBlocks(); delegationManagerDomainSeparator = IDelegationManagerV0(address(delegation)).DOMAIN_SEPARATOR(); numPods = eigenPodManager.numPods(); - maxPods = eigenPodManager.maxPods(); delayedWithdrawalRouter = EigenPod(payable(eigenPodBeacon.implementation())).delayedWithdrawalRouter(); // Set chain-specific values @@ -277,7 +275,7 @@ contract M2Deploy is Script, Test { // Call contracts to ensure that all simple view functions return the same values (e.g. the return value of `StrategyManager.delegation()` hasn’t changed) // StrategyManager: delegation, eigenPodManager, slasher, strategyWhitelister, withdrawalDelayBlocks all unchanged // DelegationManager: DOMAIN_SEPARATOR, strategyManager, slasher, eigenPodManager all unchanged - // EigenPodManager: ethPOS, eigenPodBeacon, strategyManager, slasher, beaconChainOracle, numPods, maxPods all unchanged + // EigenPodManager: ethPOS, eigenPodBeacon, strategyManager, slasher, beaconChainOracle, numPods all unchanged // delegationManager is now correct (added immutable) // Call contracts to make sure they are still “initialized” (ensure that trying to call initializer reverts) function _verifyStorageSlots() internal view { @@ -311,7 +309,6 @@ contract M2Deploy is Script, Test { "eigenPodManager.beaconChainOracle incorrect" ); require(eigenPodManager.numPods() == numPods, "eigenPodManager.numPods incorrect"); - require(eigenPodManager.maxPods() == maxPods, "eigenPodManager.maxPods incorrect"); require(EigenPodManagerStorage(address(eigenPodManager)).delegationManager() == delegation, "eigenPodManager.delegationManager incorrect"); } @@ -339,7 +336,6 @@ contract M2Deploy is Script, Test { cheats.expectRevert(bytes("Initializable: contract is already initialized")); EigenPodManager(address(eigenPodManager)).initialize( - 0, IBeaconChainOracle(address(this)), address(this), PauserRegistry(address(this)), diff --git a/script/utils/validateStorage/validateUpgrade.sh b/script/utils/validateStorage/validateUpgrade.sh index 59a708d72d..943f30f6f4 100644 --- a/script/utils/validateStorage/validateUpgrade.sh +++ b/script/utils/validateStorage/validateUpgrade.sh @@ -69,7 +69,7 @@ echo "Comparing storage layouts..." # Add -k operator if present if [ ! -k "$1" ]; then echo "Keeping old storage layout files" - eval "npx ts-node script/upgrade/validateStorage.ts --old onChainLayout.csv --new localLayout.csv --keep" + eval "npx ts-node script/utils/validateStorage/validateStorage.ts --old onChainLayout.csv --new localLayout.csv --keep" else - eval "npx ts-node script/upgrade/validateStorage.ts --old onChainLayout.csv --new localLayout.csv" + eval "npx ts-node script/utils/validateStorage/validateStorage.ts --old onChainLayout.csv --new localLayout.csv" fi \ No newline at end of file diff --git a/src/contracts/interfaces/IEigenPodManager.sol b/src/contracts/interfaces/IEigenPodManager.sol index 020e0d2d97..4860cff408 100644 --- a/src/contracts/interfaces/IEigenPodManager.sol +++ b/src/contracts/interfaces/IEigenPodManager.sol @@ -26,9 +26,6 @@ interface IEigenPodManager is IPausable { /// @notice Emitted to notify a deposit of beacon chain ETH recorded in the strategy manager event BeaconChainETHDeposited(address indexed podOwner, uint256 amount); - /// @notice Emitted when `maxPods` value is updated from `previousValue` to `newValue` - event MaxPodsUpdated(uint256 previousValue, uint256 newValue); - /// @notice Emitted when the balance of an EigenPod is updated event PodSharesUpdated(address indexed podOwner, int256 sharesDelta); @@ -107,9 +104,6 @@ interface IEigenPodManager is IPausable { /// @notice Returns the number of EigenPods that have been created function numPods() external view returns (uint256); - /// @notice Returns the maximum number of EigenPods that can be created - function maxPods() external view returns (uint256); - /** * @notice Mapping from Pod owner owner to the number of shares they have in the virtual beacon chain ETH strategy. * @dev The share amount can become negative. This is necessary to accommodate the fact that a pod owner's virtual beacon chain ETH shares can diff --git a/src/contracts/pods/EigenPodManager.sol b/src/contracts/pods/EigenPodManager.sol index a90177a136..ce42de5445 100644 --- a/src/contracts/pods/EigenPodManager.sol +++ b/src/contracts/pods/EigenPodManager.sol @@ -55,13 +55,11 @@ contract EigenPodManager is } function initialize( - uint256 _maxPods, IBeaconChainOracle _beaconChainOracle, address initialOwner, IPauserRegistry _pauserRegistry, uint256 _initPausedStatus ) external initializer { - _setMaxPods(_maxPods); _updateBeaconChainOracle(_beaconChainOracle); _transferOwnership(initialOwner); _initializePauser(_pauserRegistry, _initPausedStatus); @@ -223,15 +221,6 @@ contract EigenPodManager is ownerToPod[podOwner].withdrawRestakedBeaconChainETH(destination, shares); } - /** - * Sets the maximum number of pods that can be deployed - * @param newMaxPods The new maximum number of pods that can be deployed - * @dev Callable by the unpauser of this contract - */ - function setMaxPods(uint256 newMaxPods) external onlyUnpauser { - _setMaxPods(newMaxPods); - } - /** * @notice Updates the oracle contract that provides the beacon chain state root * @param newBeaconChainOracle is the new oracle contract being pointed to @@ -256,8 +245,6 @@ contract EigenPodManager is // INTERNAL FUNCTIONS function _deployPod() internal returns (IEigenPod) { - // check that the limit of EigenPods has not been hit, and increment the EigenPod count - require(numPods + 1 <= maxPods, "EigenPodManager._deployPod: pod limit reached"); ++numPods; // create the pod IEigenPod pod = IEigenPod( @@ -281,12 +268,6 @@ contract EigenPodManager is emit BeaconOracleUpdated(address(newBeaconChainOracle)); } - /// @notice Internal setter for `maxPods` that also emits an event - function _setMaxPods(uint256 _maxPods) internal { - emit MaxPodsUpdated(maxPods, _maxPods); - maxPods = _maxPods; - } - /** * @notice Calculates the change in a pod owner's delegateable shares as a result of their beacon chain ETH shares changing * from `sharesBefore` to `sharesAfter`. The key concept here is that negative/"deficit" shares are not delegateable. diff --git a/src/contracts/pods/EigenPodManagerStorage.sol b/src/contracts/pods/EigenPodManagerStorage.sol index 76e687fbd4..7c71126a79 100644 --- a/src/contracts/pods/EigenPodManagerStorage.sol +++ b/src/contracts/pods/EigenPodManagerStorage.sol @@ -50,8 +50,9 @@ abstract contract EigenPodManagerStorage is IEigenPodManager { /// @notice The number of EigenPods that have been deployed uint256 public numPods; - /// @notice The maximum number of EigenPods that can be deployed - uint256 public maxPods; + /// @notice Deprecated from old mainnet release. Was initially used to limit growth early on but there is no longer + /// a maximum number of EigenPods that can be deployed. + uint256 public __deprecated_maxPods; // BEGIN STORAGE VARIABLES ADDED AFTER MAINNET DEPLOYMENT -- DO NOT SUGGEST REORDERING TO CONVENTIONAL ORDER /** diff --git a/src/test/DepositWithdraw.t.sol b/src/test/DepositWithdraw.t.sol index accb90382a..dea978d8d6 100644 --- a/src/test/DepositWithdraw.t.sol +++ b/src/test/DepositWithdraw.t.sol @@ -416,7 +416,6 @@ contract DepositWithdrawTests is EigenLayerTestHelper { address(eigenPodManagerImplementation), abi.encodeWithSelector( EigenPodManager.initialize.selector, - type(uint256).max, beaconChainOracleAddress, eigenLayerReputedMultisig, eigenLayerPauserReg, diff --git a/src/test/EigenLayerDeployer.t.sol b/src/test/EigenLayerDeployer.t.sol index ac28592d2b..8b5ada2a8e 100644 --- a/src/test/EigenLayerDeployer.t.sol +++ b/src/test/EigenLayerDeployer.t.sol @@ -303,7 +303,6 @@ contract EigenLayerDeployer is Operators { address(eigenPodManagerImplementation), abi.encodeWithSelector( EigenPodManager.initialize.selector, - type(uint256).max, // maxPods beaconChainOracleAddress, eigenLayerReputedMultisig, eigenLayerPauserReg, diff --git a/src/test/EigenPod.t.sol b/src/test/EigenPod.t.sol index 56cf277cf6..c991fb6963 100644 --- a/src/test/EigenPod.t.sol +++ b/src/test/EigenPod.t.sol @@ -76,9 +76,6 @@ contract EigenPodTests is ProofParsing, EigenPodPausingConstants { /// @notice Emitted to notify a deposit of beacon chain ETH recorded in the strategy manager event BeaconChainETHDeposited(address indexed podOwner, uint256 amount); - /// @notice Emitted when `maxPods` value is updated from `previousValue` to `newValue` - event MaxPodsUpdated(uint256 previousValue, uint256 newValue); - // EIGENPOD EVENTS /// @notice Emitted when an ETH validator stakes via this eigenPod event EigenPodStaked(bytes pubkey); @@ -238,7 +235,6 @@ contract EigenPodTests is ProofParsing, EigenPodPausingConstants { address(eigenPodManagerImplementation), abi.encodeWithSelector( EigenPodManager.initialize.selector, - type(uint256).max, // maxPods beaconChainOracle, initialOwner, pauserReg, @@ -1334,37 +1330,6 @@ contract EigenPodTests is ProofParsing, EigenPodPausingConstants { require(numPodsAfter == numPodsBefore + 1, "numPods did not increment correctly"); } - // verifies that the `maxPods` variable is enforced on the `EigenPod.stake` function - function test_maxPodsEnforcementOnStake( - bytes calldata _pubkey, - bytes calldata _signature, - bytes32 _depositDataRoot - ) public { - // set pod limit to current number of pods - cheats.startPrank(unpauser); - EigenPodManager(address(eigenPodManager)).setMaxPods(EigenPodManager(address(eigenPodManager)).numPods()); - cheats.stopPrank(); - - cheats.startPrank(podOwner); - cheats.expectRevert("EigenPodManager._deployPod: pod limit reached"); - eigenPodManager.stake{value: 32 ether}(_pubkey, _signature, _depositDataRoot); - cheats.stopPrank(); - - // set pod limit to *one more than* current number of pods - cheats.startPrank(unpauser); - EigenPodManager(address(eigenPodManager)).setMaxPods(EigenPodManager(address(eigenPodManager)).numPods() + 1); - cheats.stopPrank(); - - IEigenPod newPod = eigenPodManager.getPod(podOwner); - - cheats.startPrank(podOwner); - // successful call - cheats.expectEmit(true, true, true, true, address(newPod)); - emit EigenPodStaked(_pubkey); - eigenPodManager.stake{value: 32 ether}(_pubkey, _signature, _depositDataRoot); - cheats.stopPrank(); - } - // verifies that the `numPod` variable increments correctly on a succesful call to the `EigenPod.createPod` function function test_incrementNumPodsOnCreatePod() public { uint256 numPodsBefore = EigenPodManager(address(eigenPodManager)).numPods(); @@ -1379,53 +1344,6 @@ contract EigenPodTests is ProofParsing, EigenPodPausingConstants { eigenPodManager.createPod(); } - // verifies that the `maxPods` variable is enforced on the `EigenPod.createPod` function - function test_maxPodsEnforcementOnCreatePod() public { - // set pod limit to current number of pods - cheats.startPrank(unpauser); - uint256 previousValue = EigenPodManager(address(eigenPodManager)).maxPods(); - uint256 newValue = EigenPodManager(address(eigenPodManager)).numPods(); - cheats.expectEmit(true, true, true, true, address(eigenPodManager)); - emit MaxPodsUpdated(previousValue, newValue); - EigenPodManager(address(eigenPodManager)).setMaxPods(newValue); - cheats.stopPrank(); - - cheats.expectRevert("EigenPodManager._deployPod: pod limit reached"); - eigenPodManager.createPod(); - - // set pod limit to *one more than* current number of pods - cheats.startPrank(unpauser); - previousValue = EigenPodManager(address(eigenPodManager)).maxPods(); - newValue = EigenPodManager(address(eigenPodManager)).numPods() + 1; - cheats.expectEmit(true, true, true, true, address(eigenPodManager)); - emit MaxPodsUpdated(previousValue, newValue); - EigenPodManager(address(eigenPodManager)).setMaxPods(newValue); - cheats.stopPrank(); - - // successful call - eigenPodManager.createPod(); - } - - function test_setMaxPods(uint256 newValue) public { - cheats.startPrank(unpauser); - uint256 previousValue = EigenPodManager(address(eigenPodManager)).maxPods(); - cheats.expectEmit(true, true, true, true, address(eigenPodManager)); - emit MaxPodsUpdated(previousValue, newValue); - EigenPodManager(address(eigenPodManager)).setMaxPods(newValue); - cheats.stopPrank(); - - require(EigenPodManager(address(eigenPodManager)).maxPods() == newValue, "maxPods value not set correctly"); - } - - function test_setMaxPods_RevertsWhenNotCalledByUnpauser(address notUnpauser) public fuzzedAddress(notUnpauser) { - cheats.assume(notUnpauser != unpauser); - uint256 newValue = 0; - cheats.startPrank(notUnpauser); - cheats.expectRevert("msg.sender is not permissioned as unpauser"); - EigenPodManager(address(eigenPodManager)).setMaxPods(newValue); - cheats.stopPrank(); - } - function test_validatorPubkeyToInfo() external { bytes memory _pubkey = hex"93a0dd04ccddf3f1b419fdebf99481a2182c17d67cf14d32d6e50fc4bf8effc8db4a04b7c2f3a5975c1b9b74e2841888"; diff --git a/src/test/events/IEigenPodManagerEvents.sol b/src/test/events/IEigenPodManagerEvents.sol index 2f97966848..d974ce2c94 100644 --- a/src/test/events/IEigenPodManagerEvents.sol +++ b/src/test/events/IEigenPodManagerEvents.sol @@ -8,13 +8,9 @@ interface IEigenPodManagerEvents { /// @notice Emitted to notify that the denebForkTimestamp has been set event DenebForkTimestampUpdated(uint64 denebForkTimestamp); - /// @notice Emitted to notify the deployment of an EigenPod event PodDeployed(address indexed eigenPod, address indexed podOwner); - /// @notice Emitted when `maxPods` value is updated from `previousValue` to `newValue` - event MaxPodsUpdated(uint256 previousValue, uint256 newValue); - /// @notice Emitted when the balance of an EigenPod is updated event PodSharesUpdated(address indexed podOwner, int256 sharesDelta); } \ No newline at end of file diff --git a/src/test/integration/IntegrationDeployer.t.sol b/src/test/integration/IntegrationDeployer.t.sol index 0687a7089f..1be9fdf81a 100644 --- a/src/test/integration/IntegrationDeployer.t.sol +++ b/src/test/integration/IntegrationDeployer.t.sol @@ -235,7 +235,6 @@ abstract contract IntegrationDeployer is Test, IUserDeployer { address(eigenPodManagerImplementation), abi.encodeWithSelector( EigenPodManager.initialize.selector, - type(uint).max, // maxPods address(beaconChainOracle), eigenLayerReputedMultisig, // initialOwner pauserRegistry, diff --git a/src/test/mocks/EigenPodManagerMock.sol b/src/test/mocks/EigenPodManagerMock.sol index e3c2f0e17a..96da69030b 100644 --- a/src/test/mocks/EigenPodManagerMock.sol +++ b/src/test/mocks/EigenPodManagerMock.sol @@ -84,9 +84,6 @@ contract EigenPodManagerMock is IEigenPodManager, Test { function numPods() external view returns (uint256) {} - function maxPods() external view returns (uint256) {} - - function denebForkTimestamp() external pure returns (uint64) { return type(uint64).max; } diff --git a/src/test/tree/EigenPodManagerUnit.tree b/src/test/tree/EigenPodManagerUnit.tree index c8807c2be3..b09fdad3f9 100644 --- a/src/test/tree/EigenPodManagerUnit.tree +++ b/src/test/tree/EigenPodManagerUnit.tree @@ -6,8 +6,6 @@ ├── when createPod called │ ├── given the user has already created a pod │ │ └── it should revert -│ ├── given that the max number of pods has been deployed -│ │ └── it should revert │ └── given the user has not created a pod │ └── it should deploy a pod ├── when stake is called @@ -15,11 +13,6 @@ │ │ └── it should deploy a pod │ └── given the user has already created a pod │ └── it should call stake on the eigenPod -├── when setMaxPods is called -│ ├── given the user is not the pauser -│ │ └── it should revert -│ └── given the user is the pauser -│ └── it should set the max pods ├── when updateBeaconChainOracle is called │ ├── given the user is not the owner │ │ └── it should revert diff --git a/src/test/unit/EigenPod-PodManagerUnit.t.sol b/src/test/unit/EigenPod-PodManagerUnit.t.sol index 7aae852b6d..b0507257b0 100644 --- a/src/test/unit/EigenPod-PodManagerUnit.t.sol +++ b/src/test/unit/EigenPod-PodManagerUnit.t.sol @@ -85,7 +85,6 @@ contract EigenPod_PodManager_UnitTests is EigenLayerUnitTestSetup { address(eigenPodManagerWrapper), abi.encodeWithSelector( EigenPodManager.initialize.selector, - type(uint256).max /*maxPods*/, beaconChainOracle, initialOwner, pauserRegistry, @@ -228,9 +227,7 @@ contract EigenPod_PodManager_UnitTests_EigenPod is EigenPod_PodManager_UnitTests function test_stake_podAlreadyDeployed(bytes memory signature, bytes32 depositDataRoot) public { uint256 stakeAmount = 32e18; - uint256 maxPods = eigenPodManager.maxPods(); uint256 numPods = eigenPodManager.numPods(); - emit log_named_uint("maxPods", maxPods); emit log_named_uint("numPods", numPods); cheats.startPrank(podOwner); diff --git a/src/test/unit/EigenPodManagerUnit.t.sol b/src/test/unit/EigenPodManagerUnit.t.sol index 9e0e3fc3f2..f88697273c 100644 --- a/src/test/unit/EigenPodManagerUnit.t.sol +++ b/src/test/unit/EigenPodManagerUnit.t.sol @@ -53,7 +53,6 @@ contract EigenPodManagerUnitTests is EigenLayerUnitTestSetup { address(eigenLayerProxyAdmin), abi.encodeWithSelector( EigenPodManager.initialize.selector, - type(uint256).max /*maxPods*/, IBeaconChainOracle(address(0)) /*beaconChainOracle*/, initialOwner, pauserRegistry, @@ -111,7 +110,6 @@ contract EigenPodManagerUnitTests_Initialization_Setters is EigenPodManagerUnitT function test_initialization() public { // Check max pods, beacon chain, owner, and pauser - assertEq(eigenPodManager.maxPods(), type(uint256).max, "Initialization: max pods incorrect"); assertEq(address(eigenPodManager.beaconChainOracle()), address(IBeaconChainOracle(address(0))), "Initialization: beacon chain oracle incorrect"); assertEq(eigenPodManager.owner(), initialOwner, "Initialization: owner incorrect"); assertEq(address(eigenPodManager.pauserRegistry()), address(pauserRegistry), "Initialization: pauser registry incorrect"); @@ -127,36 +125,17 @@ contract EigenPodManagerUnitTests_Initialization_Setters is EigenPodManagerUnitT function test_initialize_revert_alreadyInitialized() public { cheats.expectRevert("Initializable: contract is already initialized"); - eigenPodManager.initialize(type(uint256).max /*maxPods*/, + eigenPodManager.initialize( IBeaconChainOracle(address(0)) /*beaconChainOracle*/, initialOwner, pauserRegistry, 0 /*initialPausedStatus*/); } - function testFuzz_setMaxPods_revert_notUnpauser(address notUnpauser) public filterFuzzedAddressInputs(notUnpauser) { - cheats.assume(notUnpauser != unpauser); - cheats.prank(notUnpauser); - cheats.expectRevert("msg.sender is not permissioned as unpauser"); - eigenPodManager.setMaxPods(0); - } - /******************************************************************************* Setters *******************************************************************************/ - function test_setMaxPods() public { - // Set max pods - uint256 newMaxPods = 0; - cheats.expectEmit(true, true, true, true); - emit MaxPodsUpdated(eigenPodManager.maxPods(), newMaxPods); - cheats.prank(unpauser); - eigenPodManager.setMaxPods(newMaxPods); - - // Check storage update - assertEq(eigenPodManager.maxPods(), newMaxPods, "Max pods not updated"); - } - function testFuzz_updateBeaconChainOracle_revert_notOwner(address notOwner) public filterFuzzedAddressInputs(notOwner) { cheats.assume(notOwner != initialOwner); cheats.prank(notOwner); @@ -220,27 +199,6 @@ contract EigenPodManagerUnitTests_CreationTests is EigenPodManagerUnitTests, IEi cheats.expectRevert("EigenPodManager.createPod: Sender already has a pod"); eigenPodManager.createPod(); } - - function test_createPod_revert_maxPodsUint256() public { - // Write numPods into storage. Num pods is at slot 153 - bytes32 slot = bytes32(uint256(153)); - bytes32 value = bytes32(eigenPodManager.maxPods()); - cheats.store(address(eigenPodManager), slot, value); - - // Expect revert on pod creation - cheats.expectRevert(); // Arithmetic overflow/underflow - eigenPodManager.createPod(); - } - - function test_createPod_revert_maxPodsNontUint256() public { - // Set max pods to a small value - 0 - cheats.prank(unpauser); - eigenPodManager.setMaxPods(0); - - // Expect revert on pod creation - cheats.expectRevert("EigenPodManager._deployPod: pod limit reached"); - eigenPodManager.createPod(); - } } contract EigenPodManagerUnitTests_StakeTests is EigenPodManagerUnitTests { From a9ddea098029aae9213c207ea923fd8bdf75f3b2 Mon Sep 17 00:00:00 2001 From: 8sunyuan Date: Thu, 29 Feb 2024 16:43:04 -0500 Subject: [PATCH 2/3] docs: update docs --- docs/core/EigenPodManager.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/docs/core/EigenPodManager.md b/docs/core/EigenPodManager.md index f770782deb..24dabe1f5f 100644 --- a/docs/core/EigenPodManager.md +++ b/docs/core/EigenPodManager.md @@ -527,24 +527,9 @@ This method loops over up to `maxNumberOfDelayedWithdrawalsToClaim` withdrawals, ### System Configuration -* [`EigenPodManager.setMaxPods`](#eigenpodmanagersetmaxpods) * [`EigenPodManager.updateBeaconChainOracle`](#eigenpodmanagerupdatebeaconchainoracle) * [`DelayedWithdrawalRouter.setWithdrawalDelayBlocks`](#delayedwithdrawalroutersetwithdrawaldelayblocks) -#### `EigenPodManager.setMaxPods` - -```solidity -function setMaxPods(uint256 newMaxPods) external onlyUnpauser -``` - -Allows the unpauser to update the maximum number of `EigenPods` that the `EigenPodManager` can create. - -*Effects*: -* Updates `EigenPodManager.maxPods` - -*Requirements*: -* Caller MUST be the unpauser - #### `EigenPodManager.updateBeaconChainOracle` ```solidity From 2bfd51615f42b04397c0f88e13c4498266f76a9d Mon Sep 17 00:00:00 2001 From: 8sunyuan Date: Tue, 12 Mar 2024 12:56:54 -0400 Subject: [PATCH 3/3] refactor: set to private --- src/contracts/pods/EigenPodManagerStorage.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contracts/pods/EigenPodManagerStorage.sol b/src/contracts/pods/EigenPodManagerStorage.sol index 7c71126a79..f637f060ef 100644 --- a/src/contracts/pods/EigenPodManagerStorage.sol +++ b/src/contracts/pods/EigenPodManagerStorage.sol @@ -52,7 +52,7 @@ abstract contract EigenPodManagerStorage is IEigenPodManager { /// @notice Deprecated from old mainnet release. Was initially used to limit growth early on but there is no longer /// a maximum number of EigenPods that can be deployed. - uint256 public __deprecated_maxPods; + uint256 private __deprecated_maxPods; // BEGIN STORAGE VARIABLES ADDED AFTER MAINNET DEPLOYMENT -- DO NOT SUGGEST REORDERING TO CONVENTIONAL ORDER /**