From b41407cce82fff670ae5b03cb971d42c69304a86 Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:21:12 -0400 Subject: [PATCH 1/7] feat: ci storage diff - Credit where credit is due, modified from Stevens personal implementation. https://github.com/stevennevins/ci-workflows/blob/main/.github/workflows/storage-checker.yml --- .github/workflows/storage-report.yml | 37 +++++++++++++++++++ Makefile | 3 ++ bin/storage-report.sh | 6 +++ docs/storage-report/AVSDirectory.md | 16 ++++++++ docs/storage-report/AVSDirectoryStorage.md | 6 +++ docs/storage-report/BackingEigen.md | 28 ++++++++++++++ docs/storage-report/DelegationManager.md | 24 ++++++++++++ .../DelegationManagerStorage.md | 14 +++++++ docs/storage-report/Eigen.md | 30 +++++++++++++++ docs/storage-report/EigenPod.md | 21 +++++++++++ docs/storage-report/EigenPodManager.md | 19 ++++++++++ docs/storage-report/EigenPodManagerStorage.md | 9 +++++ .../EigenPodPausingConstants.md | 2 + docs/storage-report/EigenPodStorage.md | 17 +++++++++ docs/storage-report/EigenStrategy.md | 12 ++++++ docs/storage-report/Pausable.md | 5 +++ docs/storage-report/PauserRegistry.md | 4 ++ docs/storage-report/RewardsCoordinator.md | 26 +++++++++++++ .../RewardsCoordinatorStorage.md | 16 ++++++++ docs/storage-report/Slasher.md | 10 +++++ docs/storage-report/StrategyBase.md | 10 +++++ docs/storage-report/StrategyBaseTVLLimits.md | 13 +++++++ docs/storage-report/StrategyFactory.md | 14 +++++++ docs/storage-report/StrategyFactoryStorage.md | 6 +++ docs/storage-report/StrategyManager.md | 24 ++++++++++++ docs/storage-report/StrategyManagerStorage.md | 14 +++++++ .../UpgradeableSignatureCheckingUtils.md | 5 +++ 27 files changed, 391 insertions(+) create mode 100644 .github/workflows/storage-report.yml create mode 100644 bin/storage-report.sh create mode 100644 docs/storage-report/AVSDirectory.md create mode 100644 docs/storage-report/AVSDirectoryStorage.md create mode 100644 docs/storage-report/BackingEigen.md create mode 100644 docs/storage-report/DelegationManager.md create mode 100644 docs/storage-report/DelegationManagerStorage.md create mode 100644 docs/storage-report/Eigen.md create mode 100644 docs/storage-report/EigenPod.md create mode 100644 docs/storage-report/EigenPodManager.md create mode 100644 docs/storage-report/EigenPodManagerStorage.md create mode 100644 docs/storage-report/EigenPodPausingConstants.md create mode 100644 docs/storage-report/EigenPodStorage.md create mode 100644 docs/storage-report/EigenStrategy.md create mode 100644 docs/storage-report/Pausable.md create mode 100644 docs/storage-report/PauserRegistry.md create mode 100644 docs/storage-report/RewardsCoordinator.md create mode 100644 docs/storage-report/RewardsCoordinatorStorage.md create mode 100644 docs/storage-report/Slasher.md create mode 100644 docs/storage-report/StrategyBase.md create mode 100644 docs/storage-report/StrategyBaseTVLLimits.md create mode 100644 docs/storage-report/StrategyFactory.md create mode 100644 docs/storage-report/StrategyFactoryStorage.md create mode 100644 docs/storage-report/StrategyManager.md create mode 100644 docs/storage-report/StrategyManagerStorage.md create mode 100644 docs/storage-report/UpgradeableSignatureCheckingUtils.md diff --git a/.github/workflows/storage-report.yml b/.github/workflows/storage-report.yml new file mode 100644 index 000000000..c90aca000 --- /dev/null +++ b/.github/workflows/storage-report.yml @@ -0,0 +1,37 @@ +name: Check Storage Layout +on: + pull_request: + branches: + - main +jobs: + check_storage: + runs-on: "ubuntu-latest" + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: "Generate and prepare the contract artifacts for current branch" + run: | + bash bin/storage-report.sh + + - name: Checkout main + env: + MAIN: ${{ github.event.pull_request.base.sha }} + run: | + git fetch origin $MAIN + git checkout $MAIN + + - name: "Generate and prepare the contract artifacts for main branch" + run: | + bash bin/storage-report.sh + + - name: Compare outputs + run: | + if ! diff --unified pr main; then + echo "::warning::Differences found between PR and main storage layouts" + fi \ No newline at end of file diff --git a/Makefile b/Makefile index f4278d456..bf1420336 100644 --- a/Makefile +++ b/Makefile @@ -43,3 +43,6 @@ all-in-docker: gha-docker: docker run -v $(PWD):/build -w /build --rm -i ${CONTAINER_NAME}:latest bash -c "make gha" + +storage-report: + bash "bin/storage-report.sh" diff --git a/bin/storage-report.sh b/bin/storage-report.sh new file mode 100644 index 000000000..055c59506 --- /dev/null +++ b/bin/storage-report.sh @@ -0,0 +1,6 @@ +#!/bin/sh +mkdir docs/storage-report +for file in $(find src/contracts -name "*.sol" ! -path "src/contracts/interfaces/*" ! -path "src/contracts/libraries/*"); do + contract_name=$(basename "$file" .sol) + forge inspect "$contract_name" storage --pretty > docs/storage-report/"$contract_name".md +done \ No newline at end of file diff --git a/docs/storage-report/AVSDirectory.md b/docs/storage-report/AVSDirectory.md new file mode 100644 index 000000000..cf36169ac --- /dev/null +++ b/docs/storage-report/AVSDirectory.md @@ -0,0 +1,16 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|---------------------|------------------------------------------------------------------------------------------|------|--------|-------|--------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| _initializing | bool | 0 | 1 | 1 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| _owner | address | 51 | 0 | 20 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| _DOMAIN_SEPARATOR | bytes32 | 151 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| avsOperatorStatus | mapping(address => mapping(address => enum IAVSDirectory.OperatorAVSRegistrationStatus)) | 152 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| operatorSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 153 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| __gap | uint256[47] | 154 | 0 | 1504 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| _status | uint256 | 201 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | +| __gap | uint256[49] | 202 | 0 | 1568 | src/contracts/core/AVSDirectory.sol:AVSDirectory | diff --git a/docs/storage-report/AVSDirectoryStorage.md b/docs/storage-report/AVSDirectoryStorage.md new file mode 100644 index 000000000..a337342d0 --- /dev/null +++ b/docs/storage-report/AVSDirectoryStorage.md @@ -0,0 +1,6 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|---------------------|------------------------------------------------------------------------------------------|------|--------|-------|----------------------------------------------------------------| +| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | +| avsOperatorStatus | mapping(address => mapping(address => enum IAVSDirectory.OperatorAVSRegistrationStatus)) | 1 | 0 | 32 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | +| operatorSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 2 | 0 | 32 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | +| __gap | uint256[47] | 3 | 0 | 1504 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | diff --git a/docs/storage-report/BackingEigen.md b/docs/storage-report/BackingEigen.md new file mode 100644 index 000000000..14adcdc6e --- /dev/null +++ b/docs/storage-report/BackingEigen.md @@ -0,0 +1,28 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-----------------------------------|---------------------------------------------------------------|------|--------|-------|---------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _initializing | bool | 0 | 1 | 1 | src/contracts/token/BackingEigen.sol:BackingEigen | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _owner | address | 51 | 0 | 20 | src/contracts/token/BackingEigen.sol:BackingEigen | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _balances | mapping(address => uint256) | 101 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _allowances | mapping(address => mapping(address => uint256)) | 102 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _totalSupply | uint256 | 103 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _name | string | 104 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _symbol | string | 105 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| __gap | uint256[45] | 106 | 0 | 1440 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _hashedName | bytes32 | 151 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _hashedVersion | bytes32 | 152 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _name | string | 153 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _version | string | 154 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| __gap | uint256[48] | 155 | 0 | 1536 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 203 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 204 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| __gap | uint256[49] | 205 | 0 | 1568 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _delegates | mapping(address => address) | 254 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 255 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 256 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| __gap | uint256[47] | 257 | 0 | 1504 | src/contracts/token/BackingEigen.sol:BackingEigen | +| transferRestrictionsDisabledAfter | uint256 | 304 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| allowedFrom | mapping(address => bool) | 305 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | +| allowedTo | mapping(address => bool) | 306 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | diff --git a/docs/storage-report/DelegationManager.md b/docs/storage-report/DelegationManager.md new file mode 100644 index 000000000..61594f32a --- /dev/null +++ b/docs/storage-report/DelegationManager.md @@ -0,0 +1,24 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-------------------------------|---------------------------------------------------------------|------|--------|-------|------------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/DelegationManager.sol:DelegationManager | +| _initializing | bool | 0 | 1 | 1 | src/contracts/core/DelegationManager.sol:DelegationManager | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/DelegationManager.sol:DelegationManager | +| _owner | address | 51 | 0 | 20 | src/contracts/core/DelegationManager.sol:DelegationManager | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/DelegationManager.sol:DelegationManager | +| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/DelegationManager.sol:DelegationManager | +| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/DelegationManager.sol:DelegationManager | +| _DOMAIN_SEPARATOR | bytes32 | 151 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| operatorShares | mapping(address => mapping(contract IStrategy => uint256)) | 152 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| _operatorDetails | mapping(address => struct IDelegationManager.OperatorDetails) | 153 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| delegatedTo | mapping(address => address) | 154 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| stakerNonce | mapping(address => uint256) | 155 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| delegationApproverSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 156 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| minWithdrawalDelayBlocks | uint256 | 157 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| pendingWithdrawals | mapping(bytes32 => bool) | 158 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| cumulativeWithdrawalsQueued | mapping(address => uint256) | 159 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| __deprecated_stakeRegistry | address | 160 | 0 | 20 | src/contracts/core/DelegationManager.sol:DelegationManager | +| strategyWithdrawalDelayBlocks | mapping(contract IStrategy => uint256) | 161 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| __gap | uint256[39] | 162 | 0 | 1248 | src/contracts/core/DelegationManager.sol:DelegationManager | +| _status | uint256 | 201 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | +| __gap | uint256[49] | 202 | 0 | 1568 | src/contracts/core/DelegationManager.sol:DelegationManager | diff --git a/docs/storage-report/DelegationManagerStorage.md b/docs/storage-report/DelegationManagerStorage.md new file mode 100644 index 000000000..2ae1eb04b --- /dev/null +++ b/docs/storage-report/DelegationManagerStorage.md @@ -0,0 +1,14 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-------------------------------|---------------------------------------------------------------|------|--------|-------|--------------------------------------------------------------------------| +| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| operatorShares | mapping(address => mapping(contract IStrategy => uint256)) | 1 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| _operatorDetails | mapping(address => struct IDelegationManager.OperatorDetails) | 2 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| delegatedTo | mapping(address => address) | 3 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| stakerNonce | mapping(address => uint256) | 4 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| delegationApproverSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 5 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| minWithdrawalDelayBlocks | uint256 | 6 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| pendingWithdrawals | mapping(bytes32 => bool) | 7 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| cumulativeWithdrawalsQueued | mapping(address => uint256) | 8 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| __deprecated_stakeRegistry | address | 9 | 0 | 20 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| strategyWithdrawalDelayBlocks | mapping(contract IStrategy => uint256) | 10 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | +| __gap | uint256[39] | 11 | 0 | 1248 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | diff --git a/docs/storage-report/Eigen.md b/docs/storage-report/Eigen.md new file mode 100644 index 000000000..cf8300974 --- /dev/null +++ b/docs/storage-report/Eigen.md @@ -0,0 +1,30 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-----------------------------------|---------------------------------------------------------------|------|--------|-------|-------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/token/Eigen.sol:Eigen | +| _initializing | bool | 0 | 1 | 1 | src/contracts/token/Eigen.sol:Eigen | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/token/Eigen.sol:Eigen | +| _owner | address | 51 | 0 | 20 | src/contracts/token/Eigen.sol:Eigen | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/token/Eigen.sol:Eigen | +| _balances | mapping(address => uint256) | 101 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _allowances | mapping(address => mapping(address => uint256)) | 102 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _totalSupply | uint256 | 103 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _name | string | 104 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _symbol | string | 105 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| __gap | uint256[45] | 106 | 0 | 1440 | src/contracts/token/Eigen.sol:Eigen | +| _hashedName | bytes32 | 151 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _hashedVersion | bytes32 | 152 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _name | string | 153 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _version | string | 154 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| __gap | uint256[48] | 155 | 0 | 1536 | src/contracts/token/Eigen.sol:Eigen | +| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 203 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 204 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| __gap | uint256[49] | 205 | 0 | 1568 | src/contracts/token/Eigen.sol:Eigen | +| _delegates | mapping(address => address) | 254 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 255 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 256 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| __gap | uint256[47] | 257 | 0 | 1504 | src/contracts/token/Eigen.sol:Eigen | +| mintAllowedAfter | mapping(address => uint256) | 304 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| mintingAllowance | mapping(address => uint256) | 305 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| transferRestrictionsDisabledAfter | uint256 | 306 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| allowedFrom | mapping(address => bool) | 307 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | +| allowedTo | mapping(address => bool) | 308 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | diff --git a/docs/storage-report/EigenPod.md b/docs/storage-report/EigenPod.md new file mode 100644 index 000000000..02b88e0c6 --- /dev/null +++ b/docs/storage-report/EigenPod.md @@ -0,0 +1,21 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-------------------------------------------------|----------------------------------------------------|------|--------|-------|------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/pods/EigenPod.sol:EigenPod | +| _initializing | bool | 0 | 1 | 1 | src/contracts/pods/EigenPod.sol:EigenPod | +| _status | uint256 | 1 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | +| __gap | uint256[49] | 2 | 0 | 1568 | src/contracts/pods/EigenPod.sol:EigenPod | +| podOwner | address | 51 | 0 | 20 | src/contracts/pods/EigenPod.sol:EigenPod | +| __deprecated_mostRecentWithdrawalTimestamp | uint64 | 51 | 20 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | +| withdrawableRestakedExecutionLayerGwei | uint64 | 52 | 0 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | +| __deprecated_hasRestaked | bool | 52 | 8 | 1 | src/contracts/pods/EigenPod.sol:EigenPod | +| __deprecated_provenWithdrawal | mapping(bytes32 => mapping(uint64 => bool)) | 53 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | +| _validatorPubkeyHashToInfo | mapping(bytes32 => struct IEigenPod.ValidatorInfo) | 54 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | +| __deprecated_nonBeaconChainETHBalanceWei | uint256 | 55 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | +| __deprecated_sumOfPartialWithdrawalsClaimedGwei | uint64 | 56 | 0 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | +| activeValidatorCount | uint256 | 57 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | +| lastCheckpointTimestamp | uint64 | 58 | 0 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | +| currentCheckpointTimestamp | uint64 | 58 | 8 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | +| checkpointBalanceExitedGwei | mapping(uint64 => uint64) | 59 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | +| _currentCheckpoint | struct IEigenPod.Checkpoint | 60 | 0 | 64 | src/contracts/pods/EigenPod.sol:EigenPod | +| proofSubmitter | address | 62 | 0 | 20 | src/contracts/pods/EigenPod.sol:EigenPod | +| __gap | uint256[36] | 63 | 0 | 1152 | src/contracts/pods/EigenPod.sol:EigenPod | diff --git a/docs/storage-report/EigenPodManager.md b/docs/storage-report/EigenPodManager.md new file mode 100644 index 000000000..e4df1d088 --- /dev/null +++ b/docs/storage-report/EigenPodManager.md @@ -0,0 +1,19 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|---------------------------------|----------------------------------------|------|--------|-------|--------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| _initializing | bool | 0 | 1 | 1 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| _owner | address | 51 | 0 | 20 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| _paused | uint256 | 102 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __deprecated_beaconChainOracle | address | 151 | 0 | 20 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| ownerToPod | mapping(address => contract IEigenPod) | 152 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| numPods | uint256 | 153 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __deprecated_maxPods | uint256 | 154 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| podOwnerShares | mapping(address => int256) | 155 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __deprecated_denebForkTimestamp | uint64 | 156 | 0 | 8 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __gap | uint256[44] | 157 | 0 | 1408 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| _status | uint256 | 201 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | +| __gap | uint256[49] | 202 | 0 | 1568 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | diff --git a/docs/storage-report/EigenPodManagerStorage.md b/docs/storage-report/EigenPodManagerStorage.md new file mode 100644 index 000000000..8ada2fbef --- /dev/null +++ b/docs/storage-report/EigenPodManagerStorage.md @@ -0,0 +1,9 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|---------------------------------|----------------------------------------|------|--------|-------|----------------------------------------------------------------------| +| __deprecated_beaconChainOracle | address | 0 | 0 | 20 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | +| ownerToPod | mapping(address => contract IEigenPod) | 1 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | +| numPods | uint256 | 2 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | +| __deprecated_maxPods | uint256 | 3 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | +| podOwnerShares | mapping(address => int256) | 4 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | +| __deprecated_denebForkTimestamp | uint64 | 5 | 0 | 8 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | +| __gap | uint256[44] | 6 | 0 | 1408 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | diff --git a/docs/storage-report/EigenPodPausingConstants.md b/docs/storage-report/EigenPodPausingConstants.md new file mode 100644 index 000000000..55eed362d --- /dev/null +++ b/docs/storage-report/EigenPodPausingConstants.md @@ -0,0 +1,2 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|------|------|------|--------|-------|----------| diff --git a/docs/storage-report/EigenPodStorage.md b/docs/storage-report/EigenPodStorage.md new file mode 100644 index 000000000..f0ddef8ed --- /dev/null +++ b/docs/storage-report/EigenPodStorage.md @@ -0,0 +1,17 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-------------------------------------------------|----------------------------------------------------|------|--------|-------|--------------------------------------------------------| +| podOwner | address | 0 | 0 | 20 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| __deprecated_mostRecentWithdrawalTimestamp | uint64 | 0 | 20 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| withdrawableRestakedExecutionLayerGwei | uint64 | 1 | 0 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| __deprecated_hasRestaked | bool | 1 | 8 | 1 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| __deprecated_provenWithdrawal | mapping(bytes32 => mapping(uint64 => bool)) | 2 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| _validatorPubkeyHashToInfo | mapping(bytes32 => struct IEigenPod.ValidatorInfo) | 3 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| __deprecated_nonBeaconChainETHBalanceWei | uint256 | 4 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| __deprecated_sumOfPartialWithdrawalsClaimedGwei | uint64 | 5 | 0 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| activeValidatorCount | uint256 | 6 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| lastCheckpointTimestamp | uint64 | 7 | 0 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| currentCheckpointTimestamp | uint64 | 7 | 8 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| checkpointBalanceExitedGwei | mapping(uint64 => uint64) | 8 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| _currentCheckpoint | struct IEigenPod.Checkpoint | 9 | 0 | 64 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| proofSubmitter | address | 11 | 0 | 20 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | +| __gap | uint256[36] | 12 | 0 | 1152 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | diff --git a/docs/storage-report/EigenStrategy.md b/docs/storage-report/EigenStrategy.md new file mode 100644 index 000000000..5ca2fde70 --- /dev/null +++ b/docs/storage-report/EigenStrategy.md @@ -0,0 +1,12 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-----------------|--------------------------|------|--------|-------|----------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| _initializing | bool | 0 | 1 | 1 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| pauserRegistry | contract IPauserRegistry | 0 | 2 | 20 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| _paused | uint256 | 1 | 0 | 32 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| underlyingToken | contract IERC20 | 50 | 0 | 20 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| totalShares | uint256 | 51 | 0 | 32 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| __gap | uint256[48] | 52 | 0 | 1536 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| EIGEN | contract IEigen | 100 | 0 | 20 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | +| __gap | uint256[49] | 101 | 0 | 1568 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | diff --git a/docs/storage-report/Pausable.md b/docs/storage-report/Pausable.md new file mode 100644 index 000000000..8fc12e109 --- /dev/null +++ b/docs/storage-report/Pausable.md @@ -0,0 +1,5 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|----------------|--------------------------|------|--------|-------|-------------------------------------------------| +| pauserRegistry | contract IPauserRegistry | 0 | 0 | 20 | src/contracts/permissions/Pausable.sol:Pausable | +| _paused | uint256 | 1 | 0 | 32 | src/contracts/permissions/Pausable.sol:Pausable | +| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/permissions/Pausable.sol:Pausable | diff --git a/docs/storage-report/PauserRegistry.md b/docs/storage-report/PauserRegistry.md new file mode 100644 index 000000000..fa962f63e --- /dev/null +++ b/docs/storage-report/PauserRegistry.md @@ -0,0 +1,4 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|----------|--------------------------|------|--------|-------|-------------------------------------------------------------| +| isPauser | mapping(address => bool) | 0 | 0 | 32 | src/contracts/permissions/PauserRegistry.sol:PauserRegistry | +| unpauser | address | 1 | 0 | 20 | src/contracts/permissions/PauserRegistry.sol:PauserRegistry | diff --git a/docs/storage-report/RewardsCoordinator.md b/docs/storage-report/RewardsCoordinator.md new file mode 100644 index 000000000..c3ac38649 --- /dev/null +++ b/docs/storage-report/RewardsCoordinator.md @@ -0,0 +1,26 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|--------------------------------------|---------------------------------------------------------|------|--------|-------|--------------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| _initializing | bool | 0 | 1 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| _owner | address | 51 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| _status | uint256 | 151 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| __gap | uint256[49] | 152 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| _DOMAIN_SEPARATOR | bytes32 | 201 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 202 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| rewardsUpdater | address | 203 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| activationDelay | uint32 | 203 | 20 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| currRewardsCalculationEndTimestamp | uint32 | 203 | 24 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| globalOperatorCommissionBips | uint16 | 203 | 28 | 2 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| claimerFor | mapping(address => address) | 204 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 205 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| submissionNonce | mapping(address => uint256) | 206 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 207 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 208 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| isRewardsForAllSubmitter | mapping(address => bool) | 209 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 210 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | +| __gap | uint256[39] | 211 | 0 | 1248 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | diff --git a/docs/storage-report/RewardsCoordinatorStorage.md b/docs/storage-report/RewardsCoordinatorStorage.md new file mode 100644 index 000000000..e5f8f26bc --- /dev/null +++ b/docs/storage-report/RewardsCoordinatorStorage.md @@ -0,0 +1,16 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|--------------------------------------|---------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------| +| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 1 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| rewardsUpdater | address | 2 | 0 | 20 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| activationDelay | uint32 | 2 | 20 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| currRewardsCalculationEndTimestamp | uint32 | 2 | 24 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| globalOperatorCommissionBips | uint16 | 2 | 28 | 2 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| claimerFor | mapping(address => address) | 3 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 4 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| submissionNonce | mapping(address => uint256) | 5 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 6 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 7 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| isRewardsForAllSubmitter | mapping(address => bool) | 8 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 9 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | +| __gap | uint256[39] | 10 | 0 | 1248 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | diff --git a/docs/storage-report/Slasher.md b/docs/storage-report/Slasher.md new file mode 100644 index 000000000..5150b38b5 --- /dev/null +++ b/docs/storage-report/Slasher.md @@ -0,0 +1,10 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|----------------|--------------------------|------|--------|-------|----------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/Slasher.sol:Slasher | +| _initializing | bool | 0 | 1 | 1 | src/contracts/core/Slasher.sol:Slasher | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/Slasher.sol:Slasher | +| _owner | address | 51 | 0 | 20 | src/contracts/core/Slasher.sol:Slasher | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/Slasher.sol:Slasher | +| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/Slasher.sol:Slasher | +| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/Slasher.sol:Slasher | +| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/Slasher.sol:Slasher | diff --git a/docs/storage-report/StrategyBase.md b/docs/storage-report/StrategyBase.md new file mode 100644 index 000000000..0ac0efc41 --- /dev/null +++ b/docs/storage-report/StrategyBase.md @@ -0,0 +1,10 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-----------------|--------------------------|------|--------|-------|--------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| _initializing | bool | 0 | 1 | 1 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| pauserRegistry | contract IPauserRegistry | 0 | 2 | 20 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| _paused | uint256 | 1 | 0 | 32 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| underlyingToken | contract IERC20 | 50 | 0 | 20 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| totalShares | uint256 | 51 | 0 | 32 | src/contracts/strategies/StrategyBase.sol:StrategyBase | +| __gap | uint256[48] | 52 | 0 | 1536 | src/contracts/strategies/StrategyBase.sol:StrategyBase | diff --git a/docs/storage-report/StrategyBaseTVLLimits.md b/docs/storage-report/StrategyBaseTVLLimits.md new file mode 100644 index 000000000..a4bad1456 --- /dev/null +++ b/docs/storage-report/StrategyBaseTVLLimits.md @@ -0,0 +1,13 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|------------------|--------------------------|------|--------|-------|--------------------------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| _initializing | bool | 0 | 1 | 1 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| pauserRegistry | contract IPauserRegistry | 0 | 2 | 20 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| _paused | uint256 | 1 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| underlyingToken | contract IERC20 | 50 | 0 | 20 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| totalShares | uint256 | 51 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| __gap | uint256[48] | 52 | 0 | 1536 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| maxPerDeposit | uint256 | 100 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| maxTotalDeposits | uint256 | 101 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | +| __gap | uint256[48] | 102 | 0 | 1536 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | diff --git a/docs/storage-report/StrategyFactory.md b/docs/storage-report/StrategyFactory.md new file mode 100644 index 000000000..c3a44b912 --- /dev/null +++ b/docs/storage-report/StrategyFactory.md @@ -0,0 +1,14 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|--------------------|------------------------------------------------|------|--------|-------|--------------------------------------------------------------| +| strategyBeacon | contract IBeacon | 0 | 0 | 20 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| deployedStrategies | mapping(contract IERC20 => contract IStrategy) | 1 | 0 | 32 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| isBlacklisted | mapping(contract IERC20 => bool) | 2 | 0 | 32 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| __gap | uint256[48] | 3 | 0 | 1536 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| _initialized | uint8 | 51 | 0 | 1 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| _initializing | bool | 51 | 1 | 1 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| __gap | uint256[50] | 52 | 0 | 1600 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| _owner | address | 102 | 0 | 20 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| __gap | uint256[49] | 103 | 0 | 1568 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| pauserRegistry | contract IPauserRegistry | 152 | 0 | 20 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| _paused | uint256 | 153 | 0 | 32 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | +| __gap | uint256[48] | 154 | 0 | 1536 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | diff --git a/docs/storage-report/StrategyFactoryStorage.md b/docs/storage-report/StrategyFactoryStorage.md new file mode 100644 index 000000000..9832f308b --- /dev/null +++ b/docs/storage-report/StrategyFactoryStorage.md @@ -0,0 +1,6 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|--------------------|------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------| +| strategyBeacon | contract IBeacon | 0 | 0 | 20 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | +| deployedStrategies | mapping(contract IERC20 => contract IStrategy) | 1 | 0 | 32 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | +| isBlacklisted | mapping(contract IERC20 => bool) | 2 | 0 | 32 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | +| __gap | uint256[48] | 3 | 0 | 1536 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | diff --git a/docs/storage-report/StrategyManager.md b/docs/storage-report/StrategyManager.md new file mode 100644 index 000000000..8f7e5cb4b --- /dev/null +++ b/docs/storage-report/StrategyManager.md @@ -0,0 +1,24 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|---------------------------------------------|------------------------------------------------------------|------|--------|-------|--------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/StrategyManager.sol:StrategyManager | +| _initializing | bool | 0 | 1 | 1 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/StrategyManager.sol:StrategyManager | +| _owner | address | 51 | 0 | 20 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/StrategyManager.sol:StrategyManager | +| _status | uint256 | 101 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __gap | uint256[49] | 102 | 0 | 1568 | src/contracts/core/StrategyManager.sol:StrategyManager | +| pauserRegistry | contract IPauserRegistry | 151 | 0 | 20 | src/contracts/core/StrategyManager.sol:StrategyManager | +| _paused | uint256 | 152 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __gap | uint256[48] | 153 | 0 | 1536 | src/contracts/core/StrategyManager.sol:StrategyManager | +| _DOMAIN_SEPARATOR | bytes32 | 201 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| nonces | mapping(address => uint256) | 202 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| strategyWhitelister | address | 203 | 0 | 20 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __deprecated_withdrawalDelayBlocks | uint256 | 204 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| stakerStrategyShares | mapping(address => mapping(contract IStrategy => uint256)) | 205 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| stakerStrategyList | mapping(address => contract IStrategy[]) | 206 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __deprecated_withdrawalRootPending | mapping(bytes32 => bool) | 207 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __deprecated_numWithdrawalsQueued | mapping(address => uint256) | 208 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| strategyIsWhitelistedForDeposit | mapping(contract IStrategy => bool) | 209 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| beaconChainETHSharesToDecrementOnWithdrawal | mapping(address => uint256) | 210 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| thirdPartyTransfersForbidden | mapping(contract IStrategy => bool) | 211 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | +| __gap | uint256[39] | 212 | 0 | 1248 | src/contracts/core/StrategyManager.sol:StrategyManager | diff --git a/docs/storage-report/StrategyManagerStorage.md b/docs/storage-report/StrategyManagerStorage.md new file mode 100644 index 000000000..701045da7 --- /dev/null +++ b/docs/storage-report/StrategyManagerStorage.md @@ -0,0 +1,14 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|---------------------------------------------|------------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------| +| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| nonces | mapping(address => uint256) | 1 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| strategyWhitelister | address | 2 | 0 | 20 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| __deprecated_withdrawalDelayBlocks | uint256 | 3 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| stakerStrategyShares | mapping(address => mapping(contract IStrategy => uint256)) | 4 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| stakerStrategyList | mapping(address => contract IStrategy[]) | 5 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| __deprecated_withdrawalRootPending | mapping(bytes32 => bool) | 6 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| __deprecated_numWithdrawalsQueued | mapping(address => uint256) | 7 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| strategyIsWhitelistedForDeposit | mapping(contract IStrategy => bool) | 8 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| beaconChainETHSharesToDecrementOnWithdrawal | mapping(address => uint256) | 9 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| thirdPartyTransfersForbidden | mapping(contract IStrategy => bool) | 10 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | +| __gap | uint256[39] | 11 | 0 | 1248 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | diff --git a/docs/storage-report/UpgradeableSignatureCheckingUtils.md b/docs/storage-report/UpgradeableSignatureCheckingUtils.md new file mode 100644 index 000000000..ac9b81dd8 --- /dev/null +++ b/docs/storage-report/UpgradeableSignatureCheckingUtils.md @@ -0,0 +1,5 @@ +| Name | Type | Slot | Offset | Bytes | Contract | +|-------------------|---------|------|--------|-------|---------------------------------------------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | src/contracts/utils/UpgradeableSignatureCheckingUtils.sol:UpgradeableSignatureCheckingUtils | +| _initializing | bool | 0 | 1 | 1 | src/contracts/utils/UpgradeableSignatureCheckingUtils.sol:UpgradeableSignatureCheckingUtils | +| _DOMAIN_SEPARATOR | bytes32 | 1 | 0 | 32 | src/contracts/utils/UpgradeableSignatureCheckingUtils.sol:UpgradeableSignatureCheckingUtils | From 19ebb06ef00ced2047127edb0f397bae1e3204d4 Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:33:21 -0400 Subject: [PATCH 2/7] fix: ci --- .github/workflows/storage-report.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/storage-report.yml b/.github/workflows/storage-report.yml index c90aca000..218a2fc9d 100644 --- a/.github/workflows/storage-report.yml +++ b/.github/workflows/storage-report.yml @@ -1,8 +1,10 @@ name: Check Storage Layout on: + workflow_dispatch: pull_request: + push: branches: - - main + - "dev" jobs: check_storage: runs-on: "ubuntu-latest" From 00300b06f5f3b6cde530fcce03de20361754006d Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:09:24 -0400 Subject: [PATCH 3/7] nit: ci name --- .github/workflows/format.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 3c9986211..1869ccf19 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -1,4 +1,4 @@ -name: lint and check format +name: Lint and Check Format on: workflow_dispatch: pull_request: From de2b326ec2965c52d29a8e52206c499ecea37fde Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:33:03 -0400 Subject: [PATCH 4/7] fix: ci --- .github/workflows/storage-report.yml | 4 ++-- Makefile | 2 +- bin/storage-report.sh | 14 +++++++++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/workflows/storage-report.yml b/.github/workflows/storage-report.yml index 218a2fc9d..a4c913daa 100644 --- a/.github/workflows/storage-report.yml +++ b/.github/workflows/storage-report.yml @@ -19,7 +19,7 @@ jobs: - name: "Generate and prepare the contract artifacts for current branch" run: | - bash bin/storage-report.sh + bash bin/storage-report.sh pr - name: Checkout main env: @@ -30,7 +30,7 @@ jobs: - name: "Generate and prepare the contract artifacts for main branch" run: | - bash bin/storage-report.sh + bash bin/storage-report.sh main - name: Compare outputs run: | diff --git a/Makefile b/Makefile index bf1420336..4b68d11c9 100644 --- a/Makefile +++ b/Makefile @@ -45,4 +45,4 @@ gha-docker: docker run -v $(PWD):/build -w /build --rm -i ${CONTAINER_NAME}:latest bash -c "make gha" storage-report: - bash "bin/storage-report.sh" + bash "bin/storage-report.sh" "docs/storage-report/" diff --git a/bin/storage-report.sh b/bin/storage-report.sh index 055c59506..902b63a1e 100644 --- a/bin/storage-report.sh +++ b/bin/storage-report.sh @@ -1,6 +1,14 @@ #!/bin/sh -mkdir docs/storage-report + +# Default output directory +OUTPUT_DIR=${1:-docs/storage-report} + +# Create the output directory if it doesn't exist +mkdir -p "$OUTPUT_DIR" + +# Loop through Solidity files and generate storage report +# NOTE: Ignores `src/contracts/interfaces` & `src/contracts/libraries` since they "should" not contain storage logic. for file in $(find src/contracts -name "*.sol" ! -path "src/contracts/interfaces/*" ! -path "src/contracts/libraries/*"); do contract_name=$(basename "$file" .sol) - forge inspect "$contract_name" storage --pretty > docs/storage-report/"$contract_name".md -done \ No newline at end of file + forge inspect "$contract_name" storage --pretty > "$OUTPUT_DIR/$contract_name.md" +done From a483bc8b3a8b338bccce8c6af024b83d767c9732 Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:44:12 -0400 Subject: [PATCH 5/7] fix: ci --- .github/workflows/storage-report.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/storage-report.yml b/.github/workflows/storage-report.yml index a4c913daa..f99082670 100644 --- a/.github/workflows/storage-report.yml +++ b/.github/workflows/storage-report.yml @@ -17,23 +17,23 @@ jobs: with: version: nightly - - name: "Generate and prepare the contract artifacts for current branch" + - name: "Generate and prepare the storage reports for current branch" run: | bash bin/storage-report.sh pr - - name: Checkout main + - name: Checkout dev env: - MAIN: ${{ github.event.pull_request.base.sha }} + TARGET: ${{ github.event.pull_request.base.sha }} run: | - git fetch origin $MAIN - git checkout $MAIN + git fetch origin $TARGET + git checkout $TARGET - - name: "Generate and prepare the contract artifacts for main branch" + - name: "Generate and prepare the storage reports for target branch" run: | - bash bin/storage-report.sh main + bash bin/storage-report.sh target - name: Compare outputs run: | - if ! diff --unified pr main; then - echo "::warning::Differences found between PR and main storage layouts" + if ! diff --unified pr target; then + echo "::warning::Differences found between PR and target branch storage layouts" fi \ No newline at end of file From 6320651b58e9049fe86a63ffb8689e5f3790fcbf Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:58:34 -0400 Subject: [PATCH 6/7] chore: remove generated report --- docs/storage-report/AVSDirectory.md | 16 ---------- docs/storage-report/AVSDirectoryStorage.md | 6 ---- docs/storage-report/BackingEigen.md | 28 ----------------- docs/storage-report/DelegationManager.md | 24 --------------- .../DelegationManagerStorage.md | 14 --------- docs/storage-report/Eigen.md | 30 ------------------- docs/storage-report/EigenPod.md | 21 ------------- docs/storage-report/EigenPodManager.md | 19 ------------ docs/storage-report/EigenPodManagerStorage.md | 9 ------ .../EigenPodPausingConstants.md | 2 -- docs/storage-report/EigenPodStorage.md | 17 ----------- docs/storage-report/EigenStrategy.md | 12 -------- docs/storage-report/Pausable.md | 5 ---- docs/storage-report/PauserRegistry.md | 4 --- docs/storage-report/RewardsCoordinator.md | 26 ---------------- .../RewardsCoordinatorStorage.md | 16 ---------- docs/storage-report/Slasher.md | 10 ------- docs/storage-report/StrategyBase.md | 10 ------- docs/storage-report/StrategyBaseTVLLimits.md | 13 -------- docs/storage-report/StrategyFactory.md | 14 --------- docs/storage-report/StrategyFactoryStorage.md | 6 ---- docs/storage-report/StrategyManager.md | 24 --------------- docs/storage-report/StrategyManagerStorage.md | 14 --------- .../UpgradeableSignatureCheckingUtils.md | 5 ---- 24 files changed, 345 deletions(-) delete mode 100644 docs/storage-report/AVSDirectory.md delete mode 100644 docs/storage-report/AVSDirectoryStorage.md delete mode 100644 docs/storage-report/BackingEigen.md delete mode 100644 docs/storage-report/DelegationManager.md delete mode 100644 docs/storage-report/DelegationManagerStorage.md delete mode 100644 docs/storage-report/Eigen.md delete mode 100644 docs/storage-report/EigenPod.md delete mode 100644 docs/storage-report/EigenPodManager.md delete mode 100644 docs/storage-report/EigenPodManagerStorage.md delete mode 100644 docs/storage-report/EigenPodPausingConstants.md delete mode 100644 docs/storage-report/EigenPodStorage.md delete mode 100644 docs/storage-report/EigenStrategy.md delete mode 100644 docs/storage-report/Pausable.md delete mode 100644 docs/storage-report/PauserRegistry.md delete mode 100644 docs/storage-report/RewardsCoordinator.md delete mode 100644 docs/storage-report/RewardsCoordinatorStorage.md delete mode 100644 docs/storage-report/Slasher.md delete mode 100644 docs/storage-report/StrategyBase.md delete mode 100644 docs/storage-report/StrategyBaseTVLLimits.md delete mode 100644 docs/storage-report/StrategyFactory.md delete mode 100644 docs/storage-report/StrategyFactoryStorage.md delete mode 100644 docs/storage-report/StrategyManager.md delete mode 100644 docs/storage-report/StrategyManagerStorage.md delete mode 100644 docs/storage-report/UpgradeableSignatureCheckingUtils.md diff --git a/docs/storage-report/AVSDirectory.md b/docs/storage-report/AVSDirectory.md deleted file mode 100644 index cf36169ac..000000000 --- a/docs/storage-report/AVSDirectory.md +++ /dev/null @@ -1,16 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|---------------------|------------------------------------------------------------------------------------------|------|--------|-------|--------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| _initializing | bool | 0 | 1 | 1 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| _owner | address | 51 | 0 | 20 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| _DOMAIN_SEPARATOR | bytes32 | 151 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| avsOperatorStatus | mapping(address => mapping(address => enum IAVSDirectory.OperatorAVSRegistrationStatus)) | 152 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| operatorSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 153 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| __gap | uint256[47] | 154 | 0 | 1504 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| _status | uint256 | 201 | 0 | 32 | src/contracts/core/AVSDirectory.sol:AVSDirectory | -| __gap | uint256[49] | 202 | 0 | 1568 | src/contracts/core/AVSDirectory.sol:AVSDirectory | diff --git a/docs/storage-report/AVSDirectoryStorage.md b/docs/storage-report/AVSDirectoryStorage.md deleted file mode 100644 index a337342d0..000000000 --- a/docs/storage-report/AVSDirectoryStorage.md +++ /dev/null @@ -1,6 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|---------------------|------------------------------------------------------------------------------------------|------|--------|-------|----------------------------------------------------------------| -| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | -| avsOperatorStatus | mapping(address => mapping(address => enum IAVSDirectory.OperatorAVSRegistrationStatus)) | 1 | 0 | 32 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | -| operatorSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 2 | 0 | 32 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | -| __gap | uint256[47] | 3 | 0 | 1504 | src/contracts/core/AVSDirectoryStorage.sol:AVSDirectoryStorage | diff --git a/docs/storage-report/BackingEigen.md b/docs/storage-report/BackingEigen.md deleted file mode 100644 index 14adcdc6e..000000000 --- a/docs/storage-report/BackingEigen.md +++ /dev/null @@ -1,28 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-----------------------------------|---------------------------------------------------------------|------|--------|-------|---------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _initializing | bool | 0 | 1 | 1 | src/contracts/token/BackingEigen.sol:BackingEigen | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _owner | address | 51 | 0 | 20 | src/contracts/token/BackingEigen.sol:BackingEigen | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _balances | mapping(address => uint256) | 101 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _allowances | mapping(address => mapping(address => uint256)) | 102 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _totalSupply | uint256 | 103 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _name | string | 104 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _symbol | string | 105 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| __gap | uint256[45] | 106 | 0 | 1440 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _hashedName | bytes32 | 151 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _hashedVersion | bytes32 | 152 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _name | string | 153 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _version | string | 154 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| __gap | uint256[48] | 155 | 0 | 1536 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 203 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 204 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| __gap | uint256[49] | 205 | 0 | 1568 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _delegates | mapping(address => address) | 254 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 255 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 256 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| __gap | uint256[47] | 257 | 0 | 1504 | src/contracts/token/BackingEigen.sol:BackingEigen | -| transferRestrictionsDisabledAfter | uint256 | 304 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| allowedFrom | mapping(address => bool) | 305 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | -| allowedTo | mapping(address => bool) | 306 | 0 | 32 | src/contracts/token/BackingEigen.sol:BackingEigen | diff --git a/docs/storage-report/DelegationManager.md b/docs/storage-report/DelegationManager.md deleted file mode 100644 index 61594f32a..000000000 --- a/docs/storage-report/DelegationManager.md +++ /dev/null @@ -1,24 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------------|---------------------------------------------------------------|------|--------|-------|------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/DelegationManager.sol:DelegationManager | -| _initializing | bool | 0 | 1 | 1 | src/contracts/core/DelegationManager.sol:DelegationManager | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/DelegationManager.sol:DelegationManager | -| _owner | address | 51 | 0 | 20 | src/contracts/core/DelegationManager.sol:DelegationManager | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/DelegationManager.sol:DelegationManager | -| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/DelegationManager.sol:DelegationManager | -| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/DelegationManager.sol:DelegationManager | -| _DOMAIN_SEPARATOR | bytes32 | 151 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| operatorShares | mapping(address => mapping(contract IStrategy => uint256)) | 152 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| _operatorDetails | mapping(address => struct IDelegationManager.OperatorDetails) | 153 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| delegatedTo | mapping(address => address) | 154 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| stakerNonce | mapping(address => uint256) | 155 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| delegationApproverSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 156 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| minWithdrawalDelayBlocks | uint256 | 157 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| pendingWithdrawals | mapping(bytes32 => bool) | 158 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| cumulativeWithdrawalsQueued | mapping(address => uint256) | 159 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| __deprecated_stakeRegistry | address | 160 | 0 | 20 | src/contracts/core/DelegationManager.sol:DelegationManager | -| strategyWithdrawalDelayBlocks | mapping(contract IStrategy => uint256) | 161 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| __gap | uint256[39] | 162 | 0 | 1248 | src/contracts/core/DelegationManager.sol:DelegationManager | -| _status | uint256 | 201 | 0 | 32 | src/contracts/core/DelegationManager.sol:DelegationManager | -| __gap | uint256[49] | 202 | 0 | 1568 | src/contracts/core/DelegationManager.sol:DelegationManager | diff --git a/docs/storage-report/DelegationManagerStorage.md b/docs/storage-report/DelegationManagerStorage.md deleted file mode 100644 index 2ae1eb04b..000000000 --- a/docs/storage-report/DelegationManagerStorage.md +++ /dev/null @@ -1,14 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------------|---------------------------------------------------------------|------|--------|-------|--------------------------------------------------------------------------| -| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| operatorShares | mapping(address => mapping(contract IStrategy => uint256)) | 1 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| _operatorDetails | mapping(address => struct IDelegationManager.OperatorDetails) | 2 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| delegatedTo | mapping(address => address) | 3 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| stakerNonce | mapping(address => uint256) | 4 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| delegationApproverSaltIsSpent | mapping(address => mapping(bytes32 => bool)) | 5 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| minWithdrawalDelayBlocks | uint256 | 6 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| pendingWithdrawals | mapping(bytes32 => bool) | 7 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| cumulativeWithdrawalsQueued | mapping(address => uint256) | 8 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| __deprecated_stakeRegistry | address | 9 | 0 | 20 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| strategyWithdrawalDelayBlocks | mapping(contract IStrategy => uint256) | 10 | 0 | 32 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | -| __gap | uint256[39] | 11 | 0 | 1248 | src/contracts/core/DelegationManagerStorage.sol:DelegationManagerStorage | diff --git a/docs/storage-report/Eigen.md b/docs/storage-report/Eigen.md deleted file mode 100644 index cf8300974..000000000 --- a/docs/storage-report/Eigen.md +++ /dev/null @@ -1,30 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-----------------------------------|---------------------------------------------------------------|------|--------|-------|-------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/token/Eigen.sol:Eigen | -| _initializing | bool | 0 | 1 | 1 | src/contracts/token/Eigen.sol:Eigen | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/token/Eigen.sol:Eigen | -| _owner | address | 51 | 0 | 20 | src/contracts/token/Eigen.sol:Eigen | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/token/Eigen.sol:Eigen | -| _balances | mapping(address => uint256) | 101 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _allowances | mapping(address => mapping(address => uint256)) | 102 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _totalSupply | uint256 | 103 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _name | string | 104 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _symbol | string | 105 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| __gap | uint256[45] | 106 | 0 | 1440 | src/contracts/token/Eigen.sol:Eigen | -| _hashedName | bytes32 | 151 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _hashedVersion | bytes32 | 152 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _name | string | 153 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _version | string | 154 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| __gap | uint256[48] | 155 | 0 | 1536 | src/contracts/token/Eigen.sol:Eigen | -| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 203 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 204 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| __gap | uint256[49] | 205 | 0 | 1568 | src/contracts/token/Eigen.sol:Eigen | -| _delegates | mapping(address => address) | 254 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 255 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 256 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| __gap | uint256[47] | 257 | 0 | 1504 | src/contracts/token/Eigen.sol:Eigen | -| mintAllowedAfter | mapping(address => uint256) | 304 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| mintingAllowance | mapping(address => uint256) | 305 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| transferRestrictionsDisabledAfter | uint256 | 306 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| allowedFrom | mapping(address => bool) | 307 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | -| allowedTo | mapping(address => bool) | 308 | 0 | 32 | src/contracts/token/Eigen.sol:Eigen | diff --git a/docs/storage-report/EigenPod.md b/docs/storage-report/EigenPod.md deleted file mode 100644 index 02b88e0c6..000000000 --- a/docs/storage-report/EigenPod.md +++ /dev/null @@ -1,21 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------------------------------|----------------------------------------------------|------|--------|-------|------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/pods/EigenPod.sol:EigenPod | -| _initializing | bool | 0 | 1 | 1 | src/contracts/pods/EigenPod.sol:EigenPod | -| _status | uint256 | 1 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | -| __gap | uint256[49] | 2 | 0 | 1568 | src/contracts/pods/EigenPod.sol:EigenPod | -| podOwner | address | 51 | 0 | 20 | src/contracts/pods/EigenPod.sol:EigenPod | -| __deprecated_mostRecentWithdrawalTimestamp | uint64 | 51 | 20 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | -| withdrawableRestakedExecutionLayerGwei | uint64 | 52 | 0 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | -| __deprecated_hasRestaked | bool | 52 | 8 | 1 | src/contracts/pods/EigenPod.sol:EigenPod | -| __deprecated_provenWithdrawal | mapping(bytes32 => mapping(uint64 => bool)) | 53 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | -| _validatorPubkeyHashToInfo | mapping(bytes32 => struct IEigenPod.ValidatorInfo) | 54 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | -| __deprecated_nonBeaconChainETHBalanceWei | uint256 | 55 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | -| __deprecated_sumOfPartialWithdrawalsClaimedGwei | uint64 | 56 | 0 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | -| activeValidatorCount | uint256 | 57 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | -| lastCheckpointTimestamp | uint64 | 58 | 0 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | -| currentCheckpointTimestamp | uint64 | 58 | 8 | 8 | src/contracts/pods/EigenPod.sol:EigenPod | -| checkpointBalanceExitedGwei | mapping(uint64 => uint64) | 59 | 0 | 32 | src/contracts/pods/EigenPod.sol:EigenPod | -| _currentCheckpoint | struct IEigenPod.Checkpoint | 60 | 0 | 64 | src/contracts/pods/EigenPod.sol:EigenPod | -| proofSubmitter | address | 62 | 0 | 20 | src/contracts/pods/EigenPod.sol:EigenPod | -| __gap | uint256[36] | 63 | 0 | 1152 | src/contracts/pods/EigenPod.sol:EigenPod | diff --git a/docs/storage-report/EigenPodManager.md b/docs/storage-report/EigenPodManager.md deleted file mode 100644 index e4df1d088..000000000 --- a/docs/storage-report/EigenPodManager.md +++ /dev/null @@ -1,19 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|---------------------------------|----------------------------------------|------|--------|-------|--------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| _initializing | bool | 0 | 1 | 1 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| _owner | address | 51 | 0 | 20 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| _paused | uint256 | 102 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __deprecated_beaconChainOracle | address | 151 | 0 | 20 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| ownerToPod | mapping(address => contract IEigenPod) | 152 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| numPods | uint256 | 153 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __deprecated_maxPods | uint256 | 154 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| podOwnerShares | mapping(address => int256) | 155 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __deprecated_denebForkTimestamp | uint64 | 156 | 0 | 8 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __gap | uint256[44] | 157 | 0 | 1408 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| _status | uint256 | 201 | 0 | 32 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | -| __gap | uint256[49] | 202 | 0 | 1568 | src/contracts/pods/EigenPodManager.sol:EigenPodManager | diff --git a/docs/storage-report/EigenPodManagerStorage.md b/docs/storage-report/EigenPodManagerStorage.md deleted file mode 100644 index 8ada2fbef..000000000 --- a/docs/storage-report/EigenPodManagerStorage.md +++ /dev/null @@ -1,9 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|---------------------------------|----------------------------------------|------|--------|-------|----------------------------------------------------------------------| -| __deprecated_beaconChainOracle | address | 0 | 0 | 20 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | -| ownerToPod | mapping(address => contract IEigenPod) | 1 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | -| numPods | uint256 | 2 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | -| __deprecated_maxPods | uint256 | 3 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | -| podOwnerShares | mapping(address => int256) | 4 | 0 | 32 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | -| __deprecated_denebForkTimestamp | uint64 | 5 | 0 | 8 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | -| __gap | uint256[44] | 6 | 0 | 1408 | src/contracts/pods/EigenPodManagerStorage.sol:EigenPodManagerStorage | diff --git a/docs/storage-report/EigenPodPausingConstants.md b/docs/storage-report/EigenPodPausingConstants.md deleted file mode 100644 index 55eed362d..000000000 --- a/docs/storage-report/EigenPodPausingConstants.md +++ /dev/null @@ -1,2 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|------|------|------|--------|-------|----------| diff --git a/docs/storage-report/EigenPodStorage.md b/docs/storage-report/EigenPodStorage.md deleted file mode 100644 index f0ddef8ed..000000000 --- a/docs/storage-report/EigenPodStorage.md +++ /dev/null @@ -1,17 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------------------------------|----------------------------------------------------|------|--------|-------|--------------------------------------------------------| -| podOwner | address | 0 | 0 | 20 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| __deprecated_mostRecentWithdrawalTimestamp | uint64 | 0 | 20 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| withdrawableRestakedExecutionLayerGwei | uint64 | 1 | 0 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| __deprecated_hasRestaked | bool | 1 | 8 | 1 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| __deprecated_provenWithdrawal | mapping(bytes32 => mapping(uint64 => bool)) | 2 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| _validatorPubkeyHashToInfo | mapping(bytes32 => struct IEigenPod.ValidatorInfo) | 3 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| __deprecated_nonBeaconChainETHBalanceWei | uint256 | 4 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| __deprecated_sumOfPartialWithdrawalsClaimedGwei | uint64 | 5 | 0 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| activeValidatorCount | uint256 | 6 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| lastCheckpointTimestamp | uint64 | 7 | 0 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| currentCheckpointTimestamp | uint64 | 7 | 8 | 8 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| checkpointBalanceExitedGwei | mapping(uint64 => uint64) | 8 | 0 | 32 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| _currentCheckpoint | struct IEigenPod.Checkpoint | 9 | 0 | 64 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| proofSubmitter | address | 11 | 0 | 20 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | -| __gap | uint256[36] | 12 | 0 | 1152 | src/contracts/pods/EigenPodStorage.sol:EigenPodStorage | diff --git a/docs/storage-report/EigenStrategy.md b/docs/storage-report/EigenStrategy.md deleted file mode 100644 index 5ca2fde70..000000000 --- a/docs/storage-report/EigenStrategy.md +++ /dev/null @@ -1,12 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-----------------|--------------------------|------|--------|-------|----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| _initializing | bool | 0 | 1 | 1 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| pauserRegistry | contract IPauserRegistry | 0 | 2 | 20 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| _paused | uint256 | 1 | 0 | 32 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| underlyingToken | contract IERC20 | 50 | 0 | 20 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| totalShares | uint256 | 51 | 0 | 32 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| __gap | uint256[48] | 52 | 0 | 1536 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| EIGEN | contract IEigen | 100 | 0 | 20 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | -| __gap | uint256[49] | 101 | 0 | 1568 | src/contracts/strategies/EigenStrategy.sol:EigenStrategy | diff --git a/docs/storage-report/Pausable.md b/docs/storage-report/Pausable.md deleted file mode 100644 index 8fc12e109..000000000 --- a/docs/storage-report/Pausable.md +++ /dev/null @@ -1,5 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|--------------------------|------|--------|-------|-------------------------------------------------| -| pauserRegistry | contract IPauserRegistry | 0 | 0 | 20 | src/contracts/permissions/Pausable.sol:Pausable | -| _paused | uint256 | 1 | 0 | 32 | src/contracts/permissions/Pausable.sol:Pausable | -| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/permissions/Pausable.sol:Pausable | diff --git a/docs/storage-report/PauserRegistry.md b/docs/storage-report/PauserRegistry.md deleted file mode 100644 index fa962f63e..000000000 --- a/docs/storage-report/PauserRegistry.md +++ /dev/null @@ -1,4 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|----------|--------------------------|------|--------|-------|-------------------------------------------------------------| -| isPauser | mapping(address => bool) | 0 | 0 | 32 | src/contracts/permissions/PauserRegistry.sol:PauserRegistry | -| unpauser | address | 1 | 0 | 20 | src/contracts/permissions/PauserRegistry.sol:PauserRegistry | diff --git a/docs/storage-report/RewardsCoordinator.md b/docs/storage-report/RewardsCoordinator.md deleted file mode 100644 index c3ac38649..000000000 --- a/docs/storage-report/RewardsCoordinator.md +++ /dev/null @@ -1,26 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------------------------|---------------------------------------------------------|------|--------|-------|--------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| _initializing | bool | 0 | 1 | 1 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| _owner | address | 51 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| _status | uint256 | 151 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| __gap | uint256[49] | 152 | 0 | 1568 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| _DOMAIN_SEPARATOR | bytes32 | 201 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 202 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| rewardsUpdater | address | 203 | 0 | 20 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| activationDelay | uint32 | 203 | 20 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| currRewardsCalculationEndTimestamp | uint32 | 203 | 24 | 4 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| globalOperatorCommissionBips | uint16 | 203 | 28 | 2 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| claimerFor | mapping(address => address) | 204 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 205 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| submissionNonce | mapping(address => uint256) | 206 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 207 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 208 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| isRewardsForAllSubmitter | mapping(address => bool) | 209 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 210 | 0 | 32 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | -| __gap | uint256[39] | 211 | 0 | 1248 | src/contracts/core/RewardsCoordinator.sol:RewardsCoordinator | diff --git a/docs/storage-report/RewardsCoordinatorStorage.md b/docs/storage-report/RewardsCoordinatorStorage.md deleted file mode 100644 index e5f8f26bc..000000000 --- a/docs/storage-report/RewardsCoordinatorStorage.md +++ /dev/null @@ -1,16 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------------------------|---------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------| -| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| _distributionRoots | struct IRewardsCoordinator.DistributionRoot[] | 1 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| rewardsUpdater | address | 2 | 0 | 20 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| activationDelay | uint32 | 2 | 20 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| currRewardsCalculationEndTimestamp | uint32 | 2 | 24 | 4 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| globalOperatorCommissionBips | uint16 | 2 | 28 | 2 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| claimerFor | mapping(address => address) | 3 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| cumulativeClaimed | mapping(address => mapping(contract IERC20 => uint256)) | 4 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| submissionNonce | mapping(address => uint256) | 5 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| isAVSRewardsSubmissionHash | mapping(address => mapping(bytes32 => bool)) | 6 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| isRewardsSubmissionForAllHash | mapping(address => mapping(bytes32 => bool)) | 7 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| isRewardsForAllSubmitter | mapping(address => bool) | 8 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| isRewardsSubmissionForAllEarnersHash | mapping(address => mapping(bytes32 => bool)) | 9 | 0 | 32 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | -| __gap | uint256[39] | 10 | 0 | 1248 | src/contracts/core/RewardsCoordinatorStorage.sol:RewardsCoordinatorStorage | diff --git a/docs/storage-report/Slasher.md b/docs/storage-report/Slasher.md deleted file mode 100644 index 5150b38b5..000000000 --- a/docs/storage-report/Slasher.md +++ /dev/null @@ -1,10 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|--------------------------|------|--------|-------|----------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/Slasher.sol:Slasher | -| _initializing | bool | 0 | 1 | 1 | src/contracts/core/Slasher.sol:Slasher | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/Slasher.sol:Slasher | -| _owner | address | 51 | 0 | 20 | src/contracts/core/Slasher.sol:Slasher | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/Slasher.sol:Slasher | -| pauserRegistry | contract IPauserRegistry | 101 | 0 | 20 | src/contracts/core/Slasher.sol:Slasher | -| _paused | uint256 | 102 | 0 | 32 | src/contracts/core/Slasher.sol:Slasher | -| __gap | uint256[48] | 103 | 0 | 1536 | src/contracts/core/Slasher.sol:Slasher | diff --git a/docs/storage-report/StrategyBase.md b/docs/storage-report/StrategyBase.md deleted file mode 100644 index 0ac0efc41..000000000 --- a/docs/storage-report/StrategyBase.md +++ /dev/null @@ -1,10 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-----------------|--------------------------|------|--------|-------|--------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| _initializing | bool | 0 | 1 | 1 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| pauserRegistry | contract IPauserRegistry | 0 | 2 | 20 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| _paused | uint256 | 1 | 0 | 32 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| underlyingToken | contract IERC20 | 50 | 0 | 20 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| totalShares | uint256 | 51 | 0 | 32 | src/contracts/strategies/StrategyBase.sol:StrategyBase | -| __gap | uint256[48] | 52 | 0 | 1536 | src/contracts/strategies/StrategyBase.sol:StrategyBase | diff --git a/docs/storage-report/StrategyBaseTVLLimits.md b/docs/storage-report/StrategyBaseTVLLimits.md deleted file mode 100644 index a4bad1456..000000000 --- a/docs/storage-report/StrategyBaseTVLLimits.md +++ /dev/null @@ -1,13 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|--------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| _initializing | bool | 0 | 1 | 1 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| pauserRegistry | contract IPauserRegistry | 0 | 2 | 20 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| _paused | uint256 | 1 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| __gap | uint256[48] | 2 | 0 | 1536 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| underlyingToken | contract IERC20 | 50 | 0 | 20 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| totalShares | uint256 | 51 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| __gap | uint256[48] | 52 | 0 | 1536 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| maxPerDeposit | uint256 | 100 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| maxTotalDeposits | uint256 | 101 | 0 | 32 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | -| __gap | uint256[48] | 102 | 0 | 1536 | src/contracts/strategies/StrategyBaseTVLLimits.sol:StrategyBaseTVLLimits | diff --git a/docs/storage-report/StrategyFactory.md b/docs/storage-report/StrategyFactory.md deleted file mode 100644 index c3a44b912..000000000 --- a/docs/storage-report/StrategyFactory.md +++ /dev/null @@ -1,14 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------|------|--------|-------|--------------------------------------------------------------| -| strategyBeacon | contract IBeacon | 0 | 0 | 20 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| deployedStrategies | mapping(contract IERC20 => contract IStrategy) | 1 | 0 | 32 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| isBlacklisted | mapping(contract IERC20 => bool) | 2 | 0 | 32 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| __gap | uint256[48] | 3 | 0 | 1536 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| _initialized | uint8 | 51 | 0 | 1 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| _initializing | bool | 51 | 1 | 1 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| __gap | uint256[50] | 52 | 0 | 1600 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| _owner | address | 102 | 0 | 20 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| __gap | uint256[49] | 103 | 0 | 1568 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| pauserRegistry | contract IPauserRegistry | 152 | 0 | 20 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| _paused | uint256 | 153 | 0 | 32 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | -| __gap | uint256[48] | 154 | 0 | 1536 | src/contracts/strategies/StrategyFactory.sol:StrategyFactory | diff --git a/docs/storage-report/StrategyFactoryStorage.md b/docs/storage-report/StrategyFactoryStorage.md deleted file mode 100644 index 9832f308b..000000000 --- a/docs/storage-report/StrategyFactoryStorage.md +++ /dev/null @@ -1,6 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------| -| strategyBeacon | contract IBeacon | 0 | 0 | 20 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | -| deployedStrategies | mapping(contract IERC20 => contract IStrategy) | 1 | 0 | 32 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | -| isBlacklisted | mapping(contract IERC20 => bool) | 2 | 0 | 32 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | -| __gap | uint256[48] | 3 | 0 | 1536 | src/contracts/strategies/StrategyFactoryStorage.sol:StrategyFactoryStorage | diff --git a/docs/storage-report/StrategyManager.md b/docs/storage-report/StrategyManager.md deleted file mode 100644 index 8f7e5cb4b..000000000 --- a/docs/storage-report/StrategyManager.md +++ /dev/null @@ -1,24 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|---------------------------------------------|------------------------------------------------------------|------|--------|-------|--------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/core/StrategyManager.sol:StrategyManager | -| _initializing | bool | 0 | 1 | 1 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __gap | uint256[50] | 1 | 0 | 1600 | src/contracts/core/StrategyManager.sol:StrategyManager | -| _owner | address | 51 | 0 | 20 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __gap | uint256[49] | 52 | 0 | 1568 | src/contracts/core/StrategyManager.sol:StrategyManager | -| _status | uint256 | 101 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __gap | uint256[49] | 102 | 0 | 1568 | src/contracts/core/StrategyManager.sol:StrategyManager | -| pauserRegistry | contract IPauserRegistry | 151 | 0 | 20 | src/contracts/core/StrategyManager.sol:StrategyManager | -| _paused | uint256 | 152 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __gap | uint256[48] | 153 | 0 | 1536 | src/contracts/core/StrategyManager.sol:StrategyManager | -| _DOMAIN_SEPARATOR | bytes32 | 201 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| nonces | mapping(address => uint256) | 202 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| strategyWhitelister | address | 203 | 0 | 20 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __deprecated_withdrawalDelayBlocks | uint256 | 204 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| stakerStrategyShares | mapping(address => mapping(contract IStrategy => uint256)) | 205 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| stakerStrategyList | mapping(address => contract IStrategy[]) | 206 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __deprecated_withdrawalRootPending | mapping(bytes32 => bool) | 207 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __deprecated_numWithdrawalsQueued | mapping(address => uint256) | 208 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| strategyIsWhitelistedForDeposit | mapping(contract IStrategy => bool) | 209 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| beaconChainETHSharesToDecrementOnWithdrawal | mapping(address => uint256) | 210 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| thirdPartyTransfersForbidden | mapping(contract IStrategy => bool) | 211 | 0 | 32 | src/contracts/core/StrategyManager.sol:StrategyManager | -| __gap | uint256[39] | 212 | 0 | 1248 | src/contracts/core/StrategyManager.sol:StrategyManager | diff --git a/docs/storage-report/StrategyManagerStorage.md b/docs/storage-report/StrategyManagerStorage.md deleted file mode 100644 index 701045da7..000000000 --- a/docs/storage-report/StrategyManagerStorage.md +++ /dev/null @@ -1,14 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|---------------------------------------------|------------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------| -| _DOMAIN_SEPARATOR | bytes32 | 0 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| nonces | mapping(address => uint256) | 1 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| strategyWhitelister | address | 2 | 0 | 20 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| __deprecated_withdrawalDelayBlocks | uint256 | 3 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| stakerStrategyShares | mapping(address => mapping(contract IStrategy => uint256)) | 4 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| stakerStrategyList | mapping(address => contract IStrategy[]) | 5 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| __deprecated_withdrawalRootPending | mapping(bytes32 => bool) | 6 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| __deprecated_numWithdrawalsQueued | mapping(address => uint256) | 7 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| strategyIsWhitelistedForDeposit | mapping(contract IStrategy => bool) | 8 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| beaconChainETHSharesToDecrementOnWithdrawal | mapping(address => uint256) | 9 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| thirdPartyTransfersForbidden | mapping(contract IStrategy => bool) | 10 | 0 | 32 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | -| __gap | uint256[39] | 11 | 0 | 1248 | src/contracts/core/StrategyManagerStorage.sol:StrategyManagerStorage | diff --git a/docs/storage-report/UpgradeableSignatureCheckingUtils.md b/docs/storage-report/UpgradeableSignatureCheckingUtils.md deleted file mode 100644 index ac9b81dd8..000000000 --- a/docs/storage-report/UpgradeableSignatureCheckingUtils.md +++ /dev/null @@ -1,5 +0,0 @@ -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------|---------|------|--------|-------|---------------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | src/contracts/utils/UpgradeableSignatureCheckingUtils.sol:UpgradeableSignatureCheckingUtils | -| _initializing | bool | 0 | 1 | 1 | src/contracts/utils/UpgradeableSignatureCheckingUtils.sol:UpgradeableSignatureCheckingUtils | -| _DOMAIN_SEPARATOR | bytes32 | 1 | 0 | 32 | src/contracts/utils/UpgradeableSignatureCheckingUtils.sol:UpgradeableSignatureCheckingUtils | From ba9445d5c7ca4a4144aed913d43bc8685a99ce92 Mon Sep 17 00:00:00 2001 From: "clandestine.eth" <96172957+0xClandestine@users.noreply.github.com> Date: Mon, 16 Sep 2024 16:03:02 -0400 Subject: [PATCH 7/7] fix: debug ci --- bin/storage-report.sh | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/bin/storage-report.sh b/bin/storage-report.sh index 902b63a1e..642db7236 100644 --- a/bin/storage-report.sh +++ b/bin/storage-report.sh @@ -3,12 +3,43 @@ # Default output directory OUTPUT_DIR=${1:-docs/storage-report} +# Function to print messages +log() { + echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $1" +} + +# Function to print error messages +error() { + echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] $1" >&2 +} + +log "Starting the storage report generation." + # Create the output directory if it doesn't exist -mkdir -p "$OUTPUT_DIR" +if ! mkdir -p "$OUTPUT_DIR"; then + error "Failed to create output directory: $OUTPUT_DIR" + exit 1 +fi + +log "Output directory is set to: $OUTPUT_DIR" # Loop through Solidity files and generate storage report # NOTE: Ignores `src/contracts/interfaces` & `src/contracts/libraries` since they "should" not contain storage logic. for file in $(find src/contracts -name "*.sol" ! -path "src/contracts/interfaces/*" ! -path "src/contracts/libraries/*"); do contract_name=$(basename "$file" .sol) - forge inspect "$contract_name" storage --pretty > "$OUTPUT_DIR/$contract_name.md" -done + + # Check if the file exists and is readable + if [ ! -r "$file" ]; then + error "Cannot read file: $file" + continue + fi + + log "Processing contract: $contract_name" + + # Run forge inspect and capture errors + if ! forge inspect "$contract_name" storage --pretty > "$OUTPUT_DIR/$contract_name.md"; then + error "Failed to generate storage report for contract: $contract_name" + else + log "Storage report generated for contract: $contract_name" + fi +done \ No newline at end of file