Commit f409a480 authored by Mark Tyneway's avatar Mark Tyneway

contracts-bedrock: migrate to new storage snapshot

Delete the old storage layout now that https://github.com/ethereum-optimism/optimism/pull/8243
has been merged which adds another snapshots concept of both the abi and
the storage layout.

The old method of keeping the storage layout lockfile around is now
deprecated. Once we delete it, we will no longer be able to track
changes from old versions of the contracts as easily. We can reintroduce
the shell script to a future commit if necessary.
parent a68993e1
...@@ -423,12 +423,6 @@ jobs: ...@@ -423,12 +423,6 @@ jobs:
FOUNDRY_PROFILE: ci FOUNDRY_PROFILE: ci
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
no_output_timeout: 15m no_output_timeout: 15m
- run:
name: storage snapshot
command: |
pnpm storage-snapshot
git diff --exit-code .storage-layout || echo "export STORAGE_SNAPSHOT_STATUS=1" >> "$BASH_ENV"
working_directory: packages/contracts-bedrock
- run: - run:
name: invariant docs name: invariant docs
command: | command: |
...@@ -436,9 +430,9 @@ jobs: ...@@ -436,9 +430,9 @@ jobs:
git diff --exit-code ./invariant-docs/*.md || echo "export INVARIANT_DOCS_STATUS=1" >> "$BASH_ENV" git diff --exit-code ./invariant-docs/*.md || echo "export INVARIANT_DOCS_STATUS=1" >> "$BASH_ENV"
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: abi snapshot name: snapshots
command: | command: |
pnpm abi-snapshot pnpm snapshots
if [ "$(git diff --exit-code snapshots)" ]; then if [ "$(git diff --exit-code snapshots)" ]; then
[ -z "$(git ls-files --others --exclude-standard snapshots)" ] || echo "export ABI_SNAPSHOT_STATUS=1" >> "$BASH_ENV" [ -z "$(git ls-files --others --exclude-standard snapshots)" ] || echo "export ABI_SNAPSHOT_STATUS=1" >> "$BASH_ENV"
else else
......
...@@ -25,8 +25,7 @@ ...@@ -25,8 +25,7 @@
"gas-snapshot:no-build": "forge snapshot --match-contract GasBenchMark", "gas-snapshot:no-build": "forge snapshot --match-contract GasBenchMark",
"statediff": "./scripts/statediff.sh && git diff --exit-code", "statediff": "./scripts/statediff.sh && git diff --exit-code",
"gas-snapshot": "pnpm build:go-ffi && pnpm gas-snapshot:no-build", "gas-snapshot": "pnpm build:go-ffi && pnpm gas-snapshot:no-build",
"storage-snapshot": "./scripts/storage-snapshot.sh", "snapshots": "npx tsx scripts/generate-snapshots.ts",
"abi-snapshot": "npx tsx scripts/generate-snapshots.ts",
"semver-lock": "forge script scripts/SemverLock.s.sol", "semver-lock": "forge script scripts/SemverLock.s.sol",
"validate-deploy-configs": "./scripts/check-deploy-configs.sh", "validate-deploy-configs": "./scripts/check-deploy-configs.sh",
"validate-spacers:no-build": "npx tsx scripts/validate-spacers.ts", "validate-spacers:no-build": "npx tsx scripts/validate-spacers.ts",
......
#!/usr/bin/env bash
set -e
if ! command -v forge &> /dev/null
then
echo "forge could not be found. Please install forge by running:"
echo "curl -L https://foundry.paradigm.xyz | bash"
exit
fi
contracts=(
src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
src/L1/L1StandardBridge.sol:L1StandardBridge
src/L1/L2OutputOracle.sol:L2OutputOracle
src/L1/OptimismPortal.sol:OptimismPortal
src/L1/SystemConfig.sol:SystemConfig
src/L1/L1ERC721Bridge.sol:L1ERC721Bridge
src/legacy/DeployerWhitelist.sol:DeployerWhitelist
src/L2/L1Block.sol:L1Block
src/legacy/L1BlockNumber.sol:L1BlockNumber
src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
src/L2/L2StandardBridge.sol:L2StandardBridge
src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser
src/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
src/L2/SequencerFeeVault.sol:SequencerFeeVault
src/L2/BaseFeeVault.sol:BaseFeeVault
src/L2/L1FeeVault.sol:L1FeeVault
src/L2/L2ERC721Bridge.sol:L2ERC721Bridge
src/vendor/WETH9.sol:WETH9
src/universal/ProxyAdmin.sol:ProxyAdmin
src/universal/Proxy.sol:Proxy
src/legacy/L1ChugSplashProxy.sol:L1ChugSplashProxy
src/universal/OptimismMintableERC20.sol:OptimismMintableERC20
src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory
src/dispute/DisputeGameFactory.sol:DisputeGameFactory
)
dir=$(dirname "$0")
echo "Creating storage layout diagrams.."
echo "=======================" > $dir/../.storage-layout
echo "👁👁 STORAGE LAYOUT snapshot 👁👁" >> $dir/../.storage-layout
echo "=======================" >> $dir/../.storage-layout
for contract in ${contracts[@]}
do
echo -e "\n=======================" >> $dir/../.storage-layout
echo "➡ $contract">> $dir/../.storage-layout
echo -e "=======================\n" >> $dir/../.storage-layout
forge inspect --pretty $contract storage-layout >> $dir/../.storage-layout
done
echo "Storage layout snapshot stored at $dir/../.storage-layout"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment