From 0de7365b48690e436eac80e3ab5575f6ab4676c6 Mon Sep 17 00:00:00 2001 From: prathamesh0 Date: Tue, 4 Apr 2023 18:13:59 +0530 Subject: [PATCH] Cross check existing L2 config against L1 deployment config --- .../fixturenet-optimism/generate-l2-config.sh | 23 +++++++++++++++---- .../optimism-contracts/run.sh | 3 ++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/data/config/fixturenet-optimism/generate-l2-config.sh b/app/data/config/fixturenet-optimism/generate-l2-config.sh index 9e4b53fd..9c439f32 100755 --- a/app/data/config/fixturenet-optimism/generate-l2-config.sh +++ b/app/data/config/fixturenet-optimism/generate-l2-config.sh @@ -4,10 +4,25 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi -# Skip if /app/jwt.txt exists -if [ -f /app/jwt.txt ]; then - echo "Found existing config, exiting" - exit 0 +# Check existing config if it exists +if [ -f /app/jwt.txt ] && [ -f /app/rollup.json ]; then + echo "Found existing L2 config, cross-checking with L1 deployment config" + + SOURCE_L1_CONF=$(cat /contracts-bedrock/deploy-config/getting-started.json) + EXP_L1_BLOCKHASH=$(echo "$SOURCE_L1_CONF" | jq -r '.l1StartingBlockTag') + EXP_BATCHER=$(echo "$SOURCE_L1_CONF" | jq -r '.batchSenderAddress') + + GEN_L2_CONF=$(cat /app/rollup.json) + GEN_L1_BLOCKHASH=$(echo "$GEN_L2_CONF" | jq -r '.genesis.l1.hash') + GEN_BATCHER=$(echo "$GEN_L2_CONF" | jq -r '.genesis.system_config.batcherAddr') + + if [ "$EXP_L1_BLOCKHASH" = "$GEN_L1_BLOCKHASH" ] && [ "$EXP_BATCHER" = "$GEN_BATCHER" ]; then + echo "Config cross-checked, exiting" + exit 0 + fi + + echo "Existing L2 config doesn't match the L1 deployment config, please clear L2 config volume before starting" + exit 1 fi op-node genesis l2 \ diff --git a/app/data/config/fixturenet-optimism/optimism-contracts/run.sh b/app/data/config/fixturenet-optimism/optimism-contracts/run.sh index 411eabf1..d4585d4a 100755 --- a/app/data/config/fixturenet-optimism/optimism-contracts/run.sh +++ b/app/data/config/fixturenet-optimism/optimism-contracts/run.sh @@ -36,7 +36,8 @@ if [ -d "deployments/getting-started" ]; then echo "Deployment verfication successful, exiting" exit 0 else - echo "Deployment verfication failed" + echo "Deployment verfication failed, please clear L1 deployment volume before starting" + exit 1 fi fi