From 7c511da2606e65181a729881d21c4b3a084cb53b Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 14 Aug 2025 10:25:35 +0000 Subject: [PATCH 01/39] fix upgrade agglayer with specified version using kurtosis service update --- .../README.md | 41 +++ .../assets/add_rollup_type.json | 17 + .../assets/cdk-erigon-pp.yml | 66 ++++ .../assets/cdk-erigon-rollup.yml | 63 ++++ .../assets/cdk-erigon-validium.yml | 9 + .../env.example | 13 + .../run.sh | 291 ++++++++++++++++++ 7 files changed, 500 insertions(+) create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/README.md create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/add_rollup_type.json create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/env.example create mode 100755 scenarios/agglayer-upgrade-with-supplied-version/run.sh diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md new file mode 100644 index 000000000..a78dfc2dc --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -0,0 +1,41 @@ +# Agglayer Upgrade/Downgrade Automation + +This repo contains shell scripts to automate **Agglayer image upgrades and downgrades** while running rollup testnets inside **Kurtosis** and attaching Agglayer services via **Docker Compose**. + +It is designed to: + +- Bootstrap multiple rollup flavors (Validium, Rollup, PP) into the **same Kurtosis enclave**. +- Start Agglayer at a **FROM_TAG** version. +- Upgrade Agglayer to a **TO_TAG** version. +- Optionally downgrade back to the original **FROM_TAG** for validation. +- Cleanly tear down the setup using: + ```bash + kurtosis enclave rm cdk --force + +--- + +## Scripts + +- `run.sh` + Main orchestration script. Handles bootstrap, upgrade, and optional downgrade. + - **Upgrade usage:** + ```bash + ./run.sh FROM_TAG TO_TAG + ``` + - **Downgrade usage:** + ```bash + ./run.sh FROM_TAG TO_TAG true + ``` + +## Arguments & Descriptions + +| Argument | Required | Description | +|------------------------|----------|-------------| +| `` | Yes | Docker image tag to start with (e.g., `0.3.0-rc.21`)| +| `` | Yes | Docker image tag to upgrade to (e.g., `0.3.5`)| +| `[OPTION]` | No | Optional: set to `true` to downgrade back to `` after upgrade | + +--- + + + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/add_rollup_type.json b/scenarios/agglayer-upgrade-with-supplied-version/assets/add_rollup_type.json new file mode 100644 index 000000000..6fb808903 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/add_rollup_type.json @@ -0,0 +1,17 @@ +{ + "type": "EOA", + "consensusContract": "PolygonPessimisticConsensus", + "consensusContractAddress": "0xAC77A07dD1683DeA96c08F286b67783fB1e4B583", + "polygonRollupManagerAddress": "0x2F50ef6b8e8Ee4E579B17619A92dE3E2ffbD8AD2", + "verifierAddress": "0xf22E2B040B639180557745F47aB97dFA95B1e22a", + "description": "Type: Pessimistic, Upgrade v0.2.x to v0.3.x", + "forkID": 12, + "timelockDelay": 0, + "timelockSalt": "", + "deployerPvtKey": "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625", + "maxFeePerGas": "", + "maxPriorityFeePerGas": "", + "multiplierGas": "", + "genesisRoot": "0xd9c8633088ce212acd9280c5f64623add99871234145a808ab6fbdbac5659a87", + "programVKey": "0x00e60517ac96bf6255d81083269e72c14ad006e5f336f852f7ee3efb91b966be" +} diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml new file mode 100644 index 000000000..c000e6ee5 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml @@ -0,0 +1,66 @@ +# This file has been generated automatically. +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_cdk_bridge_ui: false +args: + deployment_suffix: "-003" + zkevm_rollup_chain_id: 30303 + zkevm_rollup_id: 3 + verbosity: debug + zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 + zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + additional_services: + - tx_spammer + consensus_contract_type: pessimistic + erigon_strict_mode: false + gas_token_enabled: false + zkevm_use_real_verifier: false + enable_normalcy: true + agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key + agglayer_prover_primary_prover: network-prover + sequencer_type: erigon + + # sequencer + zkevm_l2_sequencer_address: "0x0d59BC8C02A089D48d9Cd465b74Cb6E23dEB950D" + zkevm_l2_sequencer_private_key: "0xf6385a27e7710349617340c6f9310e88f0aad10d01646a9bb204177431babcd8" + + # aggregator + zkevm_l2_aggregator_address: "0x2D20D9081fb403E856355F2cddd1C4863D0109cb" + zkevm_l2_aggregator_private_key: "0x2cb77c2cca48d3fee64c14d73564fd6e90676a4f6da6545681e10c8b9b22fce2" + + # claimtxmanager + zkevm_l2_claimtxmanager_address: "0x1359D1eAf25aADaA04304Ee7EFC5b94C43e0e1D5" + zkevm_l2_claimtxmanager_private_key: "0xb0244fcbf83d7aaa2d51dc78a55233058af31797a974d25f724de041f3484418" + + # timelock + zkevm_l2_timelock_address: "0x7803E33388C695E7cbd85eD55f4abe6455E9ce2e" + zkevm_l2_timelock_private_key: "0xe12e739b58489a2c2f49c472169ba20eb89d039e71f04d5342ab645dc3fb6540" + + # admin + # zkevm_l2_admin_address: "0x5666Cc6B46ad32b469D9Aec7C1eE6d02f7312759" + # zkevm_l2_admin_private_key: "0xd2ee309113fc97bed6030201fea0d1234d6b4acbc47b9a4fe12a8fa5270052aa" + + # loadtest + zkevm_l2_loadtest_address: "0x5198d92d278Fd36e5745C308F728d256198A0e3d" + zkevm_l2_loadtest_private_key: "0xcc594c53eca19f9e56200cadf60c94757b0bdee1fc4bc73552ba879d51fd82b3" + + # agglayer + zkevm_l2_agglayer_address: "0x9b5A1f2bC7bb48419d9f6407CFcA454F87884072" + zkevm_l2_agglayer_private_key: "0x7b1164f53f633e940089031a3c265c308d2bcf4756bc8dcf9046bf00e21ec3b1" + + # dac + zkevm_l2_dac_address: "0xA9875E9B9FE3BD46da758ba69a5d4B9dFCA6F133" + zkevm_l2_dac_private_key: "0x5d1a923f60e2423932f782dab9510e1c2fd64b0f29b0893978864191ecdd6f4f" + + # proofsigner + zkevm_l2_proofsigner_address: "0x3AA075513578d86dC63f9344cD9489b948d7686a" + zkevm_l2_proofsigner_private_key: "0xfd402dcc8c7fc7ce0df59fe12f33da7ac2ed760a619188ff16974fde16f9b00e" + + # l1testing + zkevm_l2_l1testing_address: "0x943413d3b2E1B6aF09a758c35b6F5d23a4d6d262" + zkevm_l2_l1testing_private_key: "0x27d8ab2d65296d0da072b172ca9ca874583f9930adb6ac3222fd9494ae7c7f0d" + + # claimsponsor + zkevm_l2_claimsponsor_address: "0xeA06890A8A547aDd71f98A6845542eb3B63C2862" + zkevm_l2_claimsponsor_private_key: "0xb97112e36cfcde131faa110430eed6593b75406e5d6991d8db3ed0f492a73b6f" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml new file mode 100644 index 000000000..3b3bb2784 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml @@ -0,0 +1,63 @@ +# This file has been generated automatically. +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_cdk_bridge_ui: false +args: + verbosity: debug + zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 + zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + additional_services: + - tx_spammer + consensus_contract_type: rollup + sequencer_type: erigon + agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key + deployment_suffix: "-002" + zkevm_rollup_chain_id: 20202 + zkevm_rollup_id: 2 + + # polycli wallet inspect --mnemonic 'tennis coconut priority easy toward lava lake cigar address private visit purity' --addresses 11 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac,proofsigner,l1testing,claimsponsor",roles,",")} {print "# " roles[NR] "\nzkevm_l2_" roles[NR] "_address: " $1 ""; print "zkevm_l2_" roles[NR] "_private_key: 0x" $2 "\n"}' + + # sequencer + zkevm_l2_sequencer_address: "0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8" + zkevm_l2_sequencer_private_key: "0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3" + + # aggregator + zkevm_l2_aggregator_address: "0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286" + zkevm_l2_aggregator_private_key: "0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9" + + # claimtxmanager + zkevm_l2_claimtxmanager_address: "0x1a1C53bA714643B53b39D82409915b513349a1ff" + zkevm_l2_claimtxmanager_private_key: "0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676" + + # timelock + zkevm_l2_timelock_address: "0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82" + zkevm_l2_timelock_private_key: "0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3" + + # # admin + # zkevm_l2_admin_address: "0x78770Cc5Bd03F93B8B401Ea91B77DF544Deb2265" + # zkevm_l2_admin_private_key: "0x6048871542899ff1d8ef8e2efc8037115676b083f1fcc680b995f3bb9470bcf6" + + # loadtest + zkevm_l2_loadtest_address: "0x51406206342270c822b5d9dfb261279eEdF0Af20" + zkevm_l2_loadtest_private_key: "0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c" + + # agglayer + zkevm_l2_agglayer_address: "0xB8b680902bba8e04C78660D33a97a87E4CC4e797" + zkevm_l2_agglayer_private_key: "0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81" + + # dac + zkevm_l2_dac_address: "0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1" + zkevm_l2_dac_private_key: "0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47" + + # proofsigner + zkevm_l2_proofsigner_address: "0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3" + zkevm_l2_proofsigner_private_key: "0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b" + + # l1testing + zkevm_l2_l1testing_address: "0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D" + zkevm_l2_l1testing_private_key: "0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea" + + # claimsponsor + zkevm_l2_claimsponsor_address: "0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886" + zkevm_l2_claimsponsor_private_key: "0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml new file mode 100644 index 000000000..42e944445 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml @@ -0,0 +1,9 @@ +args: + verbosity: debug + agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" + zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 + zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + additional_services: + - tx_spammer + sequencer_type: erigon + agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/env.example b/scenarios/agglayer-upgrade-with-supplied-version/env.example new file mode 100644 index 000000000..472c098b3 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/env.example @@ -0,0 +1,13 @@ +ENCLAVE_NAME=cdk +KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default +AGGLAYER_CONTRACTS_VERSION=feature/tools-fixes +SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key +NETWORK_RPC_URL=https://rpc.production.succinct.xyz + +# Image versions +AGGLAYER_IMAGE=ghcr.io/agglayer/agglayer:0.3.0-rc.21 + + + +FROM_TAG=0.3.0-rc.21 +TO_TAG=0.3.5 \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh new file mode 100755 index 000000000..d5508cbf7 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -0,0 +1,291 @@ +#!/bin/env bash +source ../common/load-env.sh +load_env + + +# ────────────────────────────────────────────────────────────────────────────── +# Usage: ./run.sh [true] +# e.g. 0.3.0-rc.21 +# e.g. 0.3.5 +# [1] optional: perform upgrade from kurtosis base image (either 1(kurtosis base image) or 2(base image from cli)) +# [true] optional: perform downgrade back to +# Exit immediately if no args provided +if [[ $# -lt 2 ]]; then + echo "Error: Missing required arguments." + echo "Usage: $0 [true]" + exit 1 +fi + + +PREV_FROM_TAG="$FROM_TAG" +PREV_TO_TAG="$TO_TAG" + + + +FROM_TAG="$1" +TO_TAG="$2" +DOWNGRADE="${3:-false}" + + +if [[ "$DOWNGRADE" == "true" ]]; then + if [[ "$TO_TAG" == "$PREV_FROM_TAG" && "$FROM_TAG" == "$PREV_TO_TAG" ]]; then + echo "✅ Downgrade tags match previous upgrade." + else + echo "❌ Downgrade tag mismatch!" + echo "Expected FROM_TAG=$PREV_TO_TAG, TO_TAG=$PREV_FROM_TAG" + echo "Got FROM_TAG=$FROM_TAG, TO_TAG=$TO_TAG" + exit 1 + fi +fi + +# Compose full image references +IMAGE_BASE="ghcr.io/agglayer/agglayer" +FROM_IMAGE="${IMAGE_BASE}:${FROM_TAG}" +TO_IMAGE="${IMAGE_BASE}:${TO_TAG}" + + + +sed -i "s#^FROM_IMAGE=.*#FROM_IMAGE=$FROM_IMAGE#" .env +sed -i "s#^TO_IMAGE=.*#TO_IMAGE=$TO_IMAGE#" .env +sed -i "s#^FROM_TAG=.*#FROM_TAG=$FROM_TAG#" .env +sed -i "s#^TO_TAG=.*#TO_TAG=$TO_TAG#" .env + + +kurtosis_hash="$KURTOSIS_PACKAGE_HASH" +kurtosis_enclave_name="$ENCLAVE_NAME" +contracts_version="$AGGLAYER_CONTRACTS_VERSION" + +echo ":-kurtosis hash:= $kurtosis_hash" +echo ":-enclave name:= $kurtosis_enclave_name" +echo ":-contract version:= $contracts_version" +echo ":-from image:= $FROM_IMAGE" +echo ":-to image:= $TO_IMAGE" +echo ":-from tag:= $FROM_TAG" +echo ":-to tag:= $TO_TAG" +echo ":-downgrade:= $DOWNGRADE" +echo ":-sp1 network key:= $SP1_NETWORK_KEY" + + +# Create a yml files with a real SP1 keys if needed +yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.agglayer_prover_sp1_key = $sp1key +' ./assets/cdk-erigon-validium.yml > initial-cdk-erigon-validium.yml + +yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.agglayer_prover_sp1_key = $sp1key +' ./assets/cdk-erigon-rollup.yml > initial-cdk-erigon-rollup.yml + +yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.agglayer_prover_sp1_key = $sp1key +' ./assets/cdk-erigon-pp.yml > initial-cdk-erigon-pp.yml + + + + +# checks if the user is requesting for downgrade +if [[ "$DOWNGRADE" == "true" ]]; then + +# check if there is a running enclave +enclaveExist=$(kurtosis enclave ls | awk '$3 == "RUNNING" {print $2; exit}') +if [[ "$enclaveExist" != "$kurtosis_enclave_name" ]]; then + echo "Enclave name is not $kurtosis_enclave_name. Exiting...OR No Running enclave " + exit 1 +fi + + +prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') +echo "$prev_aglr_readrpc - Current agglayer node rpc port" +if [[ "$prev_aglr_readrpc" == "9090" ]]; then + prev_aglr_readrpc="4444" +else + prev_aglr_readrpc="9090" +fi + +echo "$prev_aglr_readrpc - agglayer node rpc port to be used" + +echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ R U N N I N G D O W N G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' +echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$FROM_IMAGE" \ + --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 +sleep 10 +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$FROM_IMAGE" \ + --ports api=4445,prometheus=9093 + +echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M B A S E V E R S I O N: $FROM_TAG " +echo "======================================================================================================" +kurtosis service inspect cdk agglayer --output json +echo "======================================================================================================" + + +sleep 15 +prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$TO_IMAGE" \ + --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 +sleep 10 +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$TO_IMAGE" \ + --ports api=4445,prometheus=9093 + +echo "DOWNGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D T A R G E T V E R S I O N: $TO_TAG " +echo "=====================================================================================================================================" +kurtosis service inspect cdk agglayer --output json +echo "=====================================================================================================================================" + + +echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ 🎉 💃💃💃💃💃 D O W N G R A D I N G A G G L A Y E R S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' +echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' + +else + +echo '╔═══════════════════════════════════════════════════════════════╗' +echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M ║' +echo '╚═══════════════════════════════════════════════════════════════╝' + + +kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-validium.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + +contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') +contracts_container_name=contracts-001--$contracts_uuid + +# Get the deployment details +docker cp $contracts_container_name:/opt/zkevm/combined.json . +rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) +l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) +l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + +L1_BRIDGE_ADDR=$l1_bridge_address +L2_BRIDGE_ADDR=$l2_bridge_address +export L1_BRIDGE_ADDR +export L2_BRIDGE_ADDR + +echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' +echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' +echo "=======================================================================================================================" +sleep 10 + +prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') +echo $prev_aglr_readrpc + + + + + +echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' +echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' + +prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$FROM_IMAGE" \ + --ports aglr-readrpc=9090,prometheus=9092 +sleep 10 +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$FROM_IMAGE" \ + --ports api=4445,prometheus=9093 + + +echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $FROM_TAG " +echo "========================================================================================================================" +kurtosis service inspect cdk agglayer --output json +echo "========================================================================================================================" + +sleep 15 +prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$TO_IMAGE" \ + --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 +sleep 10 +kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$TO_IMAGE" \ + --ports api=4445,prometheus=9093 + +prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') +echo "UPGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D T A R G E T V E R S I O N: $TO_TAG " +echo "=====================================================================================================================================" +kurtosis service inspect cdk agglayer --output json +echo "=====================================================================================================================================" + +echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ 🎉 💃💃💃💃💃 U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' +echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + + + +echo "=====================================================================================================================================" +echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' +echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + + + +kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-rollup.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + + + +echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' +echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' +echo "=====================================================================================================================================" +sleep 10 + +echo "=====================================================================================================================================" +echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) ║' +echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + +# Spin up cdk-erigon pp +kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-pp.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + +contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') +contracts_container_name=contracts-001--$contracts_uuid + +# Get the deployment details +docker cp $contracts_container_name:/opt/zkevm/combined.json . +rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) +l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) +l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + +L1_BRIDGE_ADDR=$l1_bridge_address +L2_BRIDGE_ADDR=$l2_bridge_address +export L1_BRIDGE_ADDR +export L2_BRIDGE_ADDR + +echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' +echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) S U C C E S S F U L L ║' +echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' +echo "=============================================================================================================================================" +sleep 10 + +fi \ No newline at end of file From 7503396da1cb87769a76bf7263e27c9bbeadb6b7 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 18 Aug 2025 07:41:34 +0000 Subject: [PATCH 02/39] fixed misconfiguration --- .../README.md | 17 +- .../env.example | 12 +- .../run.sh | 358 +++++++++--------- 3 files changed, 194 insertions(+), 193 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index a78dfc2dc..2e5d947ed 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -1,6 +1,6 @@ # Agglayer Upgrade/Downgrade Automation -This repo contains shell scripts to automate **Agglayer image upgrades and downgrades** while running rollup testnets inside **Kurtosis** and attaching Agglayer services via **Docker Compose**. +This repo contains e2e test scenario to automate **Agglayer image upgrade and downgrade** while running rollup testnets inside **Kurtosis**. It is designed to: @@ -22,18 +22,29 @@ It is designed to: ```bash ./run.sh FROM_TAG TO_TAG ``` + + example + + ```bash + ./run.sh 0.3.0-rc.21 0.3.5 + ``` + - **Downgrade usage:** ```bash - ./run.sh FROM_TAG TO_TAG true + ./run.sh FROM_TAG TO_TAG downgrade ``` + example + ```bash + ./run.sh 0.3.5 0.3.0-rc.21 downgrade + ``` ## Arguments & Descriptions | Argument | Required | Description | |------------------------|----------|-------------| | `` | Yes | Docker image tag to start with (e.g., `0.3.0-rc.21`)| | `` | Yes | Docker image tag to upgrade to (e.g., `0.3.5`)| -| `[OPTION]` | No | Optional: set to `true` to downgrade back to `` after upgrade | +| `[ACTION]` | No | Optional: set to `downgrade` to downgrade back to `` after upgrade | --- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/env.example b/scenarios/agglayer-upgrade-with-supplied-version/env.example index 472c098b3..774fda897 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/env.example +++ b/scenarios/agglayer-upgrade-with-supplied-version/env.example @@ -1,13 +1,5 @@ ENCLAVE_NAME=cdk KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default -AGGLAYER_CONTRACTS_VERSION=feature/tools-fixes SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key -NETWORK_RPC_URL=https://rpc.production.succinct.xyz - -# Image versions -AGGLAYER_IMAGE=ghcr.io/agglayer/agglayer:0.3.0-rc.21 - - - -FROM_TAG=0.3.0-rc.21 -TO_TAG=0.3.5 \ No newline at end of file +FROM_TAG=0.3.5 +TO_TAG=0.3.0-rc.21 \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index d5508cbf7..604cfe994 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -1,18 +1,31 @@ #!/bin/env bash -source ../common/load-env.sh -load_env +set -e +# Check before sourcing +if [ -f ../common/load-env.sh ]; then + source ../common/load-env.sh +else + echo "load-env.sh not found!" + exit 1 +fi + +if [ -f .env ]; then + source .env +else + echo ".env not found — shell exiting." + exit 1 +fi # ────────────────────────────────────────────────────────────────────────────── -# Usage: ./run.sh [true] +# Usage: ./run.sh [action] # e.g. 0.3.0-rc.21 # e.g. 0.3.5 # [1] optional: perform upgrade from kurtosis base image (either 1(kurtosis base image) or 2(base image from cli)) -# [true] optional: perform downgrade back to +# [action] optional: perform downgrade back to # Exit immediately if no args provided if [[ $# -lt 2 ]]; then echo "Error: Missing required arguments." - echo "Usage: $0 [true]" + echo "Usage: $0 [action]" exit 1 fi @@ -24,10 +37,10 @@ PREV_TO_TAG="$TO_TAG" FROM_TAG="$1" TO_TAG="$2" -DOWNGRADE="${3:-false}" +ACTION="${3:-upgrade}" -if [[ "$DOWNGRADE" == "true" ]]; then +if [[ "$ACTION" == "downgrade" ]]; then if [[ "$TO_TAG" == "$PREV_FROM_TAG" && "$FROM_TAG" == "$PREV_TO_TAG" ]]; then echo "✅ Downgrade tags match previous upgrade." else @@ -53,17 +66,16 @@ sed -i "s#^TO_TAG=.*#TO_TAG=$TO_TAG#" .env kurtosis_hash="$KURTOSIS_PACKAGE_HASH" kurtosis_enclave_name="$ENCLAVE_NAME" -contracts_version="$AGGLAYER_CONTRACTS_VERSION" + echo ":-kurtosis hash:= $kurtosis_hash" echo ":-enclave name:= $kurtosis_enclave_name" -echo ":-contract version:= $contracts_version" echo ":-from image:= $FROM_IMAGE" echo ":-to image:= $TO_IMAGE" echo ":-from tag:= $FROM_TAG" echo ":-to tag:= $TO_TAG" -echo ":-downgrade:= $DOWNGRADE" -echo ":-sp1 network key:= $SP1_NETWORK_KEY" +echo ":-action:= $ACTION" + # Create a yml files with a real SP1 keys if needed @@ -80,212 +92,198 @@ yq -y --arg sp1key "$SP1_NETWORK_KEY" ' ' ./assets/cdk-erigon-pp.yml > initial-cdk-erigon-pp.yml +# checks if the user is requesting for downgrade +if [[ "$ACTION" == "downgrade" ]]; then + # check if there is a running enclave + enclaveExist=$(kurtosis enclave ls | awk '$3 == "RUNNING" {print $2; exit}') + if [[ "$enclaveExist" != "$kurtosis_enclave_name" ]]; then + echo "Enclave name is not $kurtosis_enclave_name. Exiting...OR No Running enclave " + exit 1 + fi -# checks if the user is requesting for downgrade -if [[ "$DOWNGRADE" == "true" ]]; then -# check if there is a running enclave -enclaveExist=$(kurtosis enclave ls | awk '$3 == "RUNNING" {print $2; exit}') -if [[ "$enclaveExist" != "$kurtosis_enclave_name" ]]; then - echo "Enclave name is not $kurtosis_enclave_name. Exiting...OR No Running enclave " - exit 1 -fi + prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') + if [[ "$prev_aglr_readrpc" == "9090" ]]; then + prev_aglr_readrpc="4444" + else + prev_aglr_readrpc="9090" + fi -prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -echo "$prev_aglr_readrpc - Current agglayer node rpc port" -if [[ "$prev_aglr_readrpc" == "9090" ]]; then - prev_aglr_readrpc="4444" -else - prev_aglr_readrpc="9090" -fi + + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ R U N N I N G D O W N G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' -echo "$prev_aglr_readrpc - agglayer node rpc port to be used" - -echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ R U N N I N G D O W N G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' -echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$FROM_IMAGE" \ - --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 -sleep 10 -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$FROM_IMAGE" \ - --ports api=4445,prometheus=9093 - -echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M B A S E V E R S I O N: $FROM_TAG " -echo "======================================================================================================" -kurtosis service inspect cdk agglayer --output json -echo "======================================================================================================" - - -sleep 15 -prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$TO_IMAGE" \ - --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 -sleep 10 -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$TO_IMAGE" \ - --ports api=4445,prometheus=9093 - -echo "DOWNGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D T A R G E T V E R S I O N: $TO_TAG " -echo "=====================================================================================================================================" -kurtosis service inspect cdk agglayer --output json -echo "=====================================================================================================================================" - - -echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ 🎉 💃💃💃💃💃 D O W N G R A D I N G A G G L A Y E R S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' -echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' + kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$TO_IMAGE" \ + --ports aglr-readrpc=9090,prometheus=9092 + + + sleep 10 + + kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$TO_IMAGE" \ + --ports api=4445,prometheus=9093 + + + + + + + + echo "DOWNGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R W I T H T A R G E T D O W N G R A D E V E R S I O N: $TO_TAG " + echo "==========================================================================================================================================" + kurtosis service inspect cdk agglayer --output json + echo "==========================================================================================================================================" + + + echo '╔════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ 🎉 💃💃💃💃💃 D O W N G R A D I N G A G G L A Y E R S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' + echo '╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' else + echo '╔═══════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M ║' + echo '╚═══════════════════════════════════════════════════════════════╝' + + + kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-validium.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + + + contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') + contracts_container_name=contracts-001--$contracts_uuid + + # Get the deployment details + docker cp $contracts_container_name:/opt/zkevm/combined.json . + rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) + l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) + l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + + L1_BRIDGE_ADDR=$l1_bridge_address + L2_BRIDGE_ADDR=$l2_bridge_address -echo '╔═══════════════════════════════════════════════════════════════╗' -echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M ║' -echo '╚═══════════════════════════════════════════════════════════════╝' + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "=======================================================================================================================" + sleep 10 -kurtosis run \ - --enclave "$kurtosis_enclave_name" \ - --args-file ./initial-cdk-erigon-validium.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') + -contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') -contracts_container_name=contracts-001--$contracts_uuid + echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' + echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' -# Get the deployment details -docker cp $contracts_container_name:/opt/zkevm/combined.json . -rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) -l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) -l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -L1_BRIDGE_ADDR=$l1_bridge_address -L2_BRIDGE_ADDR=$l2_bridge_address -export L1_BRIDGE_ADDR -export L2_BRIDGE_ADDR + kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$FROM_IMAGE" \ + --ports aglr-readrpc=9090,prometheus=9092 -echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' -echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' -echo "=======================================================================================================================" -sleep 10 + sleep 10 -prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -echo $prev_aglr_readrpc + kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$FROM_IMAGE" \ + --ports api=4445,prometheus=9093 + echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $FROM_TAG " + echo "========================================================================================================================" + kurtosis service inspect cdk agglayer --output json + echo "========================================================================================================================" + sleep 15 + prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' -echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' + kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer \ + --image "$TO_IMAGE" \ + --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 -prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$FROM_IMAGE" \ - --ports aglr-readrpc=9090,prometheus=9092 -sleep 10 -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$FROM_IMAGE" \ - --ports api=4445,prometheus=9093 + sleep 10 + kurtosis service update \ + "$kurtosis_enclave_name" \ + agglayer-prover \ + --image "$TO_IMAGE" \ + --ports api=4445,prometheus=9093 -echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $FROM_TAG " -echo "========================================================================================================================" -kurtosis service inspect cdk agglayer --output json -echo "========================================================================================================================" + prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -sleep 15 -prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$TO_IMAGE" \ - --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 -sleep 10 -kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$TO_IMAGE" \ - --ports api=4445,prometheus=9093 + echo "UPGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D T A R G E T V E R S I O N: $TO_TAG " + echo "======================================================================================================================================================" + kurtosis service inspect cdk agglayer --output json + echo "======================================================================================================================================================" -prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') -echo "UPGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D T A R G E T V E R S I O N: $TO_TAG " -echo "=====================================================================================================================================" -kurtosis service inspect cdk agglayer --output json -echo "=====================================================================================================================================" + echo '╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ 🎉 💃💃💃💃💃 U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' + echo '╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' -echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ 🎉 💃💃💃💃💃 U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' -echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "======================================================================================================================================================" + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-rollup.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + + -echo "=====================================================================================================================================" -echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' -echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "=====================================================================================================================================" + sleep 10 + echo "=====================================================================================================================================" + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + Spin up cdk-erigon pp + kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-pp.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" -kurtosis run \ - --enclave "$kurtosis_enclave_name" \ - --args-file ./initial-cdk-erigon-rollup.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') + contracts_container_name=contracts-001--$contracts_uuid + # Get the deployment details + docker cp $contracts_container_name:/opt/zkevm/combined.json . + rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) + l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) + l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) -echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' -echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' -echo "=====================================================================================================================================" -sleep 10 - -echo "=====================================================================================================================================" -echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) ║' -echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' - -# Spin up cdk-erigon pp -kurtosis run \ - --enclave "$kurtosis_enclave_name" \ - --args-file ./initial-cdk-erigon-pp.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" - -contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') -contracts_container_name=contracts-001--$contracts_uuid - -# Get the deployment details -docker cp $contracts_container_name:/opt/zkevm/combined.json . -rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) -l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) -l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + L1_BRIDGE_ADDR=$l1_bridge_address + L2_BRIDGE_ADDR=$l2_bridge_address -L1_BRIDGE_ADDR=$l1_bridge_address -L2_BRIDGE_ADDR=$l2_bridge_address -export L1_BRIDGE_ADDR -export L2_BRIDGE_ADDR -echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' -echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) S U C C E S S F U L L ║' -echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' -echo "=============================================================================================================================================" -sleep 10 + echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) S U C C E S S F U L L ║' + echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "=============================================================================================================================================" + sleep 10 fi \ No newline at end of file From cacc990646b2b9f18ee8ba0ea276c72f1e82fd19 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Tue, 19 Aug 2025 12:58:12 +0000 Subject: [PATCH 03/39] fixes to run using closer agglayer version --- .../README.md | 8 +- .../run.sh | 169 ++++++++++-------- 2 files changed, 95 insertions(+), 82 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index 2e5d947ed..9074a2d39 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -26,7 +26,7 @@ It is designed to: example ```bash - ./run.sh 0.3.0-rc.21 0.3.5 + ./run.sh 0.2.2 0.2.3 ``` - **Downgrade usage:** @@ -36,14 +36,14 @@ It is designed to: example ```bash - ./run.sh 0.3.5 0.3.0-rc.21 downgrade + ./run.sh 0.2.3 0.2.2 downgrade ``` ## Arguments & Descriptions | Argument | Required | Description | |------------------------|----------|-------------| -| `` | Yes | Docker image tag to start with (e.g., `0.3.0-rc.21`)| -| `` | Yes | Docker image tag to upgrade to (e.g., `0.3.5`)| +| `` | Yes | Docker image tag to start with (e.g., `0.2.2`)| +| `` | Yes | Docker image tag to upgrade to (e.g., `0.2.3`)| | `[ACTION]` | No | Optional: set to `downgrade` to downgrade back to `` after upgrade | --- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 604cfe994..e1c05a25e 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -101,43 +101,37 @@ if [[ "$ACTION" == "downgrade" ]]; then echo "Enclave name is not $kurtosis_enclave_name. Exiting...OR No Running enclave " exit 1 fi - - - prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') - - if [[ "$prev_aglr_readrpc" == "9090" ]]; then - prev_aglr_readrpc="4444" - else - prev_aglr_readrpc="9090" - fi - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ R U N N I N G D O W N G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$TO_IMAGE" \ - --ports aglr-readrpc=9090,prometheus=9092 + + TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - sleep 10 + kurtosis service inspect cdk agglayer --output json \ + | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" + + echo $TO_IMAGE_SERVICE_CONFIG_FILE + cat "$TO_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$TO_IMAGE" \ - --ports api=4445,prometheus=9093 + kurtosis service rm "$kurtosis_enclave_name" agglayer + kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" + rm "$TO_IMAGE_SERVICE_CONFIG_FILE" - + sleep 10 + + TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + kurtosis service inspect cdk agglayer-prover --output json \ + | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service add cdk agglayer-prover --json-service-config "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + rm "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - - echo "DOWNGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R W I T H T A R G E T D O W N G R A D E V E R S I O N: $TO_TAG " + echo "D O W N G R A D E D: C O N F I R M I N G R U N N I N G A G G L A Y E R W I T H T A R G E T D O W N G R A D E V E R S I O N: $TO_TAG " echo "==========================================================================================================================================" kurtosis service inspect cdk agglayer --output json echo "==========================================================================================================================================" @@ -159,17 +153,17 @@ else "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" - contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') - contracts_container_name=contracts-001--$contracts_uuid + contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') + contracts_container_name=contracts-001--$contracts_uuid - # Get the deployment details - docker cp $contracts_container_name:/opt/zkevm/combined.json . - rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) - l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) - l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + # Get the deployment details + docker cp $contracts_container_name:/opt/zkevm/combined.json . + rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) + l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) + l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) - L1_BRIDGE_ADDR=$l1_bridge_address - L2_BRIDGE_ADDR=$l2_bridge_address + L1_BRIDGE_ADDR=$l1_bridge_address + L2_BRIDGE_ADDR=$l2_bridge_address echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' @@ -178,6 +172,7 @@ else echo "=======================================================================================================================" sleep 10 + prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') @@ -185,57 +180,76 @@ else echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' - prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') + # kurtosis service inspect cdk agglayer --output json + echo "=======================================================================================================================" - kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$FROM_IMAGE" \ - --ports aglr-readrpc=9090,prometheus=9092 - sleep 10 + echo "==================== R U N N I N G K U R T O R S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" + # 1. Create a temporary file to hold the config json of the current kurtosis base image + FROM_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$FROM_IMAGE" \ - --ports api=4445,prometheus=9093 + # 2. Dump the inspected JSON, update the image, and save to the temp file + kurtosis service inspect cdk agglayer --output json \ + | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_IMAGE_SERVICE_CONFIG_FILE" + + echo $FROM_IMAGE_SERVICE_CONFIG_FILE + cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service rm "$kurtosis_enclave_name" agglayer + kurtosis service add cdk agglayer --json-service-config "$FROM_IMAGE_SERVICE_CONFIG_FILE" - echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $FROM_TAG " - echo "========================================================================================================================" - kurtosis service inspect cdk agglayer --output json - echo "========================================================================================================================" + rm "$FROM_IMAGE_SERVICE_CONFIG_FILE" - sleep 15 + sleep 10 - prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') - kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer \ - --image "$TO_IMAGE" \ - --ports aglr-readrpc="$prev_aglr_readrpc",prometheus=9092 + FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + echo "AGGLAYER - PROVER CONFIG JSON" + kurtosis service inspect cdk agglayer-prover --output json \ + | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service add cdk agglayer-prover --json-service-config "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + rm "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - sleep 10 + + sleep 20 + echo "==================== R U N N I N G K U R T O R S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" + # 1. Create a temporary file to hold the config json of the current service + TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + + # 2. Dump the inspected JSON, update the image, and save to the temp file + kurtosis service inspect cdk agglayer --output json \ + | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" + + echo $TO_IMAGE_SERVICE_CONFIG_FILE + cat "$TO_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service update \ - "$kurtosis_enclave_name" \ - agglayer-prover \ - --image "$TO_IMAGE" \ - --ports api=4445,prometheus=9093 + kurtosis service rm "$kurtosis_enclave_name" agglayer + kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" - prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') + rm "$TO_IMAGE_SERVICE_CONFIG_FILE" - echo "UPGRADED: C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D T A R G E T V E R S I O N: $TO_TAG " - echo "======================================================================================================================================================" + + TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + kurtosis service inspect cdk agglayer-prover --output json \ + | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service add cdk agglayer-prover --json-service-config "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + rm "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + + + + echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $TO_TAG " + echo "========================================================================================================================" kurtosis service inspect cdk agglayer --output json - echo "======================================================================================================================================================" + echo "========================================================================================================================" + + sleep 15 echo '╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ 🎉 💃💃💃💃💃 U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' echo '╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + + echo "======================================================================================================================================================" echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' @@ -255,35 +269,34 @@ else echo "=====================================================================================================================================" sleep 10 + echo "=====================================================================================================================================" echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) ║' echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' - Spin up cdk-erigon pp kurtosis run \ --enclave "$kurtosis_enclave_name" \ --args-file ./initial-cdk-erigon-pp.yml \ "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" - contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') - contracts_container_name=contracts-001--$contracts_uuid + contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') + contracts_container_name=contracts-001--$contracts_uuid - # Get the deployment details - docker cp $contracts_container_name:/opt/zkevm/combined.json . - rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) - l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) - l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + # Get the deployment details + docker cp $contracts_container_name:/opt/zkevm/combined.json . + rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) + l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) + l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) - L1_BRIDGE_ADDR=$l1_bridge_address - L2_BRIDGE_ADDR=$l2_bridge_address + L1_BRIDGE_ADDR=$l1_bridge_address + L2_BRIDGE_ADDR=$l2_bridge_address echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) S U C C E S S F U L L ║' echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "=============================================================================================================================================" - sleep 10 + echo "=============================================================================================================================================" fi \ No newline at end of file From 2818409276f80b1f384a28c00530dc4aa4e2c6e1 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 21 Aug 2025 07:58:09 +0000 Subject: [PATCH 04/39] updated the agglayer version from the initial config file when creating --- scenarios/agglayer-upgrade-with-supplied-version/run.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index e1c05a25e..5a2c5247b 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -79,8 +79,9 @@ echo ":-action:= $ACTION" # Create a yml files with a real SP1 keys if needed -yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key +yq -y --arg sp1key "$SP1_NETWORK_KEY" --arg newImage "$FROM_IMAGE" ' + .args.agglayer_prover_sp1_key = $sp1key | + .args.agglayer_image = $newImage ' ./assets/cdk-erigon-validium.yml > initial-cdk-erigon-validium.yml yq -y --arg sp1key "$SP1_NETWORK_KEY" ' @@ -109,7 +110,6 @@ if [[ "$ACTION" == "downgrade" ]]; then TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - kurtosis service inspect cdk agglayer --output json \ | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" From 64a77d97d1219929659ad44bcc9cb3fdee0003c3 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 21 Aug 2025 12:02:01 +0000 Subject: [PATCH 05/39] removed tx_spammer param from config --- .../assets/cdk-erigon-pp.yml | 3 +-- .../assets/cdk-erigon-rollup.yml | 3 +-- .../assets/cdk-erigon-validium.yml | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml index c000e6ee5..d124ac881 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml @@ -10,8 +10,7 @@ args: verbosity: debug zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 - additional_services: - - tx_spammer + additional_services: [] consensus_contract_type: pessimistic erigon_strict_mode: false gas_token_enabled: false diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml index 3b3bb2784..a7fb6fd46 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml @@ -7,8 +7,7 @@ args: verbosity: debug zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 - additional_services: - - tx_spammer + additional_services: [] consensus_contract_type: rollup sequencer_type: erigon agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml index 42e944445..6180041b4 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml @@ -3,7 +3,6 @@ args: agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 - additional_services: - - tx_spammer + additional_services: [] sequencer_type: erigon agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key \ No newline at end of file From 3f50f4461e8b9c56fb4ebc9ada216c873f22ddbc Mon Sep 17 00:00:00 2001 From: obynonwane Date: Tue, 26 Aug 2025 13:16:09 +0000 Subject: [PATCH 06/39] working latest commit --- .../README.md | 9 +++- .../assets/cdk-erigon-pp.yml | 43 ++++++++++++++++- .../assets/cdk-erigon-rollup.yml | 32 ++++++++++++- .../assets/cdk-erigon-validium.yml | 30 ++++++++++-- .../env.example | 5 +- .../run.sh | 48 +++++++++---------- 6 files changed, 131 insertions(+), 36 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index 9074a2d39..8c6c2496e 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -11,7 +11,14 @@ It is designed to: - Cleanly tear down the setup using: ```bash kurtosis enclave rm cdk --force - +--- +- List running services in the cdk enclave: +```bash + kurtosis enclave inspect cdk +--- +- View the logs of a service: +```bash + kurtosis service logs cdk --- ## Scripts diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml index d124ac881..b4aaa290d 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml @@ -1,24 +1,63 @@ +# # This file has been generated automatically. +# deployment_stages: +# deploy_l1: false +# deploy_agglayer: false +# deploy_cdk_bridge_ui: false +# args: +# deployment_suffix: "-003" +# zkevm_rollup_chain_id: 30303 +# zkevm_rollup_id: 3 +# verbosity: debug +# zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 +# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 +# additional_services: [] +# consensus_contract_type: pessimistic +# erigon_strict_mode: false +# gas_token_enabled: false +# zkevm_use_real_verifier: false +# enable_normalcy: true +# agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key +# agglayer_prover_primary_prover: network-prover +# sequencer_type: erigon + + + + + + # This file has been generated automatically. deployment_stages: deploy_l1: false deploy_agglayer: false deploy_cdk_bridge_ui: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false args: deployment_suffix: "-003" zkevm_rollup_chain_id: 30303 zkevm_rollup_id: 3 verbosity: debug - zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 + zkevm_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/agglayer-contracts:v11.0.0-rc.2-fork.12 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 additional_services: [] consensus_contract_type: pessimistic + sp1_prover_key: '' + agglayer_prover_primary_prover: mock-prover erigon_strict_mode: false gas_token_enabled: false zkevm_use_real_verifier: false enable_normalcy: true agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - agglayer_prover_primary_prover: network-prover + # aggkit_components: aggsender,bridge sequencer_type: erigon + cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.63.0-rc4 + + + + + + # sequencer zkevm_l2_sequencer_address: "0x0d59BC8C02A089D48d9Cd465b74Cb6E23dEB950D" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml index a7fb6fd46..2717bc18a 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml @@ -1,11 +1,35 @@ -# This file has been generated automatically. +# # This file has been generated automatically. +# deployment_stages: +# deploy_l1: false +# deploy_agglayer: false +# deploy_cdk_bridge_ui: false +# args: +# verbosity: debug +# zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 +# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 +# additional_services: [] +# consensus_contract_type: rollup +# sequencer_type: erigon +# agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key +# deployment_suffix: "-002" +# zkevm_rollup_chain_id: 20202 +# zkevm_rollup_id: 2 + + + + + + # This file has been generated automatically. deployment_stages: deploy_l1: false deploy_agglayer: false deploy_cdk_bridge_ui: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false args: verbosity: debug - zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 + zkevm_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/agglayer-contracts:v11.0.0-rc.2-fork.12 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 additional_services: [] consensus_contract_type: rollup @@ -15,6 +39,10 @@ args: zkevm_rollup_chain_id: 20202 zkevm_rollup_id: 2 + + + + # polycli wallet inspect --mnemonic 'tennis coconut priority easy toward lava lake cigar address private visit purity' --addresses 11 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac,proofsigner,l1testing,claimsponsor",roles,",")} {print "# " roles[NR] "\nzkevm_l2_" roles[NR] "_address: " $1 ""; print "zkevm_l2_" roles[NR] "_private_key: 0x" $2 "\n"}' # sequencer diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml index 6180041b4..b99acc11b 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml @@ -1,8 +1,30 @@ +# args: +# verbosity: debug +# agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" +# zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 +# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 +# additional_services: [] +# sequencer_type: erigon +# agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key + + + + + +deployment_stages: + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false args: verbosity: debug - agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" - zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 + # agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" + zkevm_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/agglayer-contracts:v11.0.0-rc.2-fork.12 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 - additional_services: [] + consensus_contract_type: cdk_validium + # additional_services: [] sequencer_type: erigon - agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key \ No newline at end of file + agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key + + + + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/env.example b/scenarios/agglayer-upgrade-with-supplied-version/env.example index 774fda897..dd85d7f53 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/env.example +++ b/scenarios/agglayer-upgrade-with-supplied-version/env.example @@ -1,5 +1,6 @@ ENCLAVE_NAME=cdk -KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default +KURTOSIS_PACKAGE_HASH=be8cab2e9ed799ab91319fee0f488fab04a393ac # Latest commit +# KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key FROM_TAG=0.3.5 -TO_TAG=0.3.0-rc.21 \ No newline at end of file +TO_TAG=0.3.4 \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 5a2c5247b..7e62b94fb 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -89,7 +89,8 @@ yq -y --arg sp1key "$SP1_NETWORK_KEY" ' ' ./assets/cdk-erigon-rollup.yml > initial-cdk-erigon-rollup.yml yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key +.args.agglayer_prover_sp1_key = $sp1key | +.args.sp1_prover_key = $sp1key ' ./assets/cdk-erigon-pp.yml > initial-cdk-erigon-pp.yml @@ -250,26 +251,6 @@ else - echo "======================================================================================================================================================" - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' - - - kurtosis run \ - --enclave "$kurtosis_enclave_name" \ - --args-file ./initial-cdk-erigon-rollup.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" - - - - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "=====================================================================================================================================" - sleep 10 - - echo "=====================================================================================================================================" echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) ║' @@ -293,10 +274,27 @@ else L1_BRIDGE_ADDR=$l1_bridge_address L2_BRIDGE_ADDR=$l2_bridge_address + + + echo "======================================================================================================================================================" + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + + + kurtosis run \ + --enclave "$kurtosis_enclave_name" \ + --args-file ./initial-cdk-erigon-rollup.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + + + + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "=====================================================================================================================================" + sleep 10 + - echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) S U C C E S S F U L L ║' - echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "=============================================================================================================================================" fi \ No newline at end of file From 26da2b9af249dcba230822cf193ac8535bd3de5e Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 1 Sep 2025 18:13:39 +0000 Subject: [PATCH 07/39] fixed issue with roolup registration on agglayer --- .../README.md | 13 +++- .../assets/cdk-erigon-pp.yml | 38 +--------- .../assets/cdk-erigon-rollup-003.yml | 69 +++++++++++++++++++ .../assets/cdk-erigon-rollup.yml | 27 +------- .../assets/cdk-erigon-validium.yml | 20 +----- .../run.sh | 64 ++++++++--------- .../script.js | 32 +++++++++ 7 files changed, 148 insertions(+), 115 deletions(-) create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/script.js diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index 8c6c2496e..93f948d2d 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -20,6 +20,15 @@ It is designed to: ```bash kurtosis service logs cdk --- +- Shell into a service: +```bash + kurtosis service shell cdk +--- +--- +- Inspect a service +```bash +kurtosis service inspect cdk +--- ## Scripts @@ -33,7 +42,7 @@ It is designed to: example ```bash - ./run.sh 0.2.2 0.2.3 + ./run.sh 0.3.4 0.3.5 ``` - **Downgrade usage:** @@ -43,7 +52,7 @@ It is designed to: example ```bash - ./run.sh 0.2.3 0.2.2 downgrade + ./run.sh 0.3.5 0.3.4 downgrade ``` ## Arguments & Descriptions diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml index b4aaa290d..c16f97604 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml @@ -1,30 +1,3 @@ -# # This file has been generated automatically. -# deployment_stages: -# deploy_l1: false -# deploy_agglayer: false -# deploy_cdk_bridge_ui: false -# args: -# deployment_suffix: "-003" -# zkevm_rollup_chain_id: 30303 -# zkevm_rollup_id: 3 -# verbosity: debug -# zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 -# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 -# additional_services: [] -# consensus_contract_type: pessimistic -# erigon_strict_mode: false -# gas_token_enabled: false -# zkevm_use_real_verifier: false -# enable_normalcy: true -# agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key -# agglayer_prover_primary_prover: network-prover -# sequencer_type: erigon - - - - - - # This file has been generated automatically. deployment_stages: deploy_l1: false @@ -38,8 +11,8 @@ args: zkevm_rollup_chain_id: 30303 zkevm_rollup_id: 3 verbosity: debug - zkevm_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/agglayer-contracts:v11.0.0-rc.2-fork.12 - zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 additional_services: [] consensus_contract_type: pessimistic sp1_prover_key: '' @@ -49,16 +22,11 @@ args: zkevm_use_real_verifier: false enable_normalcy: true agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - # aggkit_components: aggsender,bridge + aggkit_components: aggsender,bridge sequencer_type: erigon cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.63.0-rc4 - - - - - # sequencer zkevm_l2_sequencer_address: "0x0d59BC8C02A089D48d9Cd465b74Cb6E23dEB950D" zkevm_l2_sequencer_private_key: "0xf6385a27e7710349617340c6f9310e88f0aad10d01646a9bb204177431babcd8" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml new file mode 100644 index 000000000..0d9eb4f12 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml @@ -0,0 +1,69 @@ +# This file has been generated automatically. +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_cdk_bridge_ui: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false +args: + verbosity: debug + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 + additional_services: [] + consensus_contract_type: rollup + sequencer_type: erigon + agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key + deployment_suffix: "-003" + zkevm_rollup_chain_id: 20203 + zkevm_rollup_id: 3 + + + + + + # polycli wallet inspect --mnemonic 'tennis coconut priority easy toward lava lake cigar address private visit purity' --addresses 11 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac,proofsigner,l1testing,claimsponsor",roles,",")} {print "# " roles[NR] "\nzkevm_l2_" roles[NR] "_address: " $1 ""; print "zkevm_l2_" roles[NR] "_private_key: 0x" $2 "\n"}' + + # sequencer + zkevm_l2_sequencer_address: "0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8" + zkevm_l2_sequencer_private_key: "0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3" + + # aggregator + zkevm_l2_aggregator_address: "0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286" + zkevm_l2_aggregator_private_key: "0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9" + + # claimtxmanager + zkevm_l2_claimtxmanager_address: "0x1a1C53bA714643B53b39D82409915b513349a1ff" + zkevm_l2_claimtxmanager_private_key: "0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676" + + # timelock + zkevm_l2_timelock_address: "0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82" + zkevm_l2_timelock_private_key: "0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3" + + # # admin + # zkevm_l2_admin_address: "0x78770Cc5Bd03F93B8B401Ea91B77DF544Deb2265" + # zkevm_l2_admin_private_key: "0x6048871542899ff1d8ef8e2efc8037115676b083f1fcc680b995f3bb9470bcf6" + + # loadtest + zkevm_l2_loadtest_address: "0x51406206342270c822b5d9dfb261279eEdF0Af20" + zkevm_l2_loadtest_private_key: "0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c" + + # agglayer + zkevm_l2_agglayer_address: "0xB8b680902bba8e04C78660D33a97a87E4CC4e797" + zkevm_l2_agglayer_private_key: "0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81" + + # dac + zkevm_l2_dac_address: "0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1" + zkevm_l2_dac_private_key: "0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47" + + # proofsigner + zkevm_l2_proofsigner_address: "0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3" + zkevm_l2_proofsigner_private_key: "0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b" + + # l1testing + zkevm_l2_l1testing_address: "0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D" + zkevm_l2_l1testing_private_key: "0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea" + + # claimsponsor + zkevm_l2_claimsponsor_address: "0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886" + zkevm_l2_claimsponsor_private_key: "0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml index 2717bc18a..14daa090d 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml @@ -1,25 +1,4 @@ -# # This file has been generated automatically. -# deployment_stages: -# deploy_l1: false -# deploy_agglayer: false -# deploy_cdk_bridge_ui: false -# args: -# verbosity: debug -# zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 -# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 -# additional_services: [] -# consensus_contract_type: rollup -# sequencer_type: erigon -# agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key -# deployment_suffix: "-002" -# zkevm_rollup_chain_id: 20202 -# zkevm_rollup_id: 2 - - - - - - # This file has been generated automatically. +# This file has been generated automatically. deployment_stages: deploy_l1: false deploy_agglayer: false @@ -29,8 +8,8 @@ deployment_stages: deploy_op_succinct: false args: verbosity: debug - zkevm_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/agglayer-contracts:v11.0.0-rc.2-fork.12 - zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 additional_services: [] consensus_contract_type: rollup sequencer_type: erigon diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml index b99acc11b..1e015e2ac 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml @@ -1,27 +1,13 @@ -# args: -# verbosity: debug -# agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" -# zkevm_contracts_image: leovct/zkevm-contracts:v9.0.0-rc.6-pp-fork.12 -# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 -# additional_services: [] -# sequencer_type: erigon -# agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - - - - - deployment_stages: deploy_l2_contracts: true deploy_optimism_rollup: false deploy_op_succinct: false args: verbosity: debug - # agglayer_image: "ghcr.io/agglayer/agglayer:0.2.5" - zkevm_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/agglayer-contracts:v11.0.0-rc.2-fork.12 - zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 consensus_contract_type: cdk_validium - # additional_services: [] + additional_services: [] sequencer_type: erigon agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 7e62b94fb..a772ba49a 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -88,10 +88,12 @@ yq -y --arg sp1key "$SP1_NETWORK_KEY" ' .args.agglayer_prover_sp1_key = $sp1key ' ./assets/cdk-erigon-rollup.yml > initial-cdk-erigon-rollup.yml + yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key | -.args.sp1_prover_key = $sp1key -' ./assets/cdk-erigon-pp.yml > initial-cdk-erigon-pp.yml +.args.agglayer_prover_sp1_key = $sp1key +' ./assets/cdk-erigon-rollup-003.yml > initial-cdk-erigon-rollup-003.yml + + # checks if the user is requesting for downgrade @@ -142,6 +144,9 @@ if [[ "$ACTION" == "downgrade" ]]; then echo '║ 🎉 💃💃💃💃💃 D O W N G R A D I N G A G G L A Y E R S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' echo '╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "🔧 Running Updating Agglayer with Rollup ERIGON ROLLUP RPC NODE" + node script.js + else echo '╔═══════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M ║' @@ -154,27 +159,12 @@ else "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" - contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') - contracts_container_name=contracts-001--$contracts_uuid - - # Get the deployment details - docker cp $contracts_container_name:/opt/zkevm/combined.json . - rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) - l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) - l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) - - L1_BRIDGE_ADDR=$l1_bridge_address - L2_BRIDGE_ADDR=$l2_bridge_address - - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' echo "=======================================================================================================================" sleep 10 - - prev_aglr_readrpc=$(kurtosis service inspect cdk agglayer --output json | jq -r '.ports["aglr-readrpc"].number') echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' @@ -251,40 +241,37 @@ else - echo "=====================================================================================================================================" + + + echo "======================================================================================================================================================" echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N P E R S I M I S T I C P R O O F (P P) ║' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T W O ║' echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + kurtosis run \ --enclave "$kurtosis_enclave_name" \ - --args-file ./initial-cdk-erigon-pp.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" - - - contracts_uuid=$(kurtosis enclave inspect --full-uuids $kurtosis_enclave_name | grep contracts-001 | awk '{print $1}') - contracts_container_name=contracts-001--$contracts_uuid - - # Get the deployment details - docker cp $contracts_container_name:/opt/zkevm/combined.json . - rollup_manager_address=$(jq -r '.polygonRollupManagerAddress' combined.json) - l1_bridge_address=$(jq -r '.polygonZkEVMBridgeAddress' combined.json) - l2_bridge_address=$(jq -r '.polygonZkEVML2BridgeAddress' combined.json) + --args-file ./initial-cdk-erigon-rollup.yml \ + "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + + - L1_BRIDGE_ADDR=$l1_bridge_address - L2_BRIDGE_ADDR=$l2_bridge_address + echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' + echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo "=====================================================================================================================================" + sleep 10 - echo "======================================================================================================================================================" echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P ║' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E ║' echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' kurtosis run \ --enclave "$kurtosis_enclave_name" \ - --args-file ./initial-cdk-erigon-rollup.yml \ + --args-file ./initial-cdk-erigon-rollup-003.yml \ "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" @@ -296,5 +283,8 @@ else sleep 10 + echo "🔧 Running Updating Agglayer with Rollup ERIGON ROLLUP RPC NODE" + node script.js > script.log 2>&1 & + fi \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/script.js b/scenarios/agglayer-upgrade-with-supplied-version/script.js new file mode 100644 index 000000000..10cd134ad --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/script.js @@ -0,0 +1,32 @@ +// This cript add rollup rpc to agglayer +const { execSync } = require("child_process"); + + +function run(cmd, opts = {}) { + console.log(`$ ${cmd}`); + execSync(cmd, { stdio: "inherit", ...opts }); +} + + +try { +const editCmd = `kurtosis service exec cdk agglayer ' +set -eu +file=/etc/zkevm/agglayer-config.toml +if ! grep -q "2 = http://cdk-erigon-rpc-002:8123" "$file"; then + sed -i "/1 = \\"http:\\/\\/cdk-erigon-rpc-001:8123\\"/a 2 = \\"http://cdk-erigon-rpc-002:8123\\"" "$file" + sed -i "/2 = \\"http:\\/\\/cdk-erigon-rpc-002:8123\\"/a 3 = \\"http://cdk-erigon-rpc-003:8123\\"" "$file" +fi +'`; + run(editCmd); +} catch (e) { + console.warn( + `error updating agglayer toml file` + ); + process.exit(1); +} + +// 5) Restart the agglayer service via Kurtosis +run(`kurtosis service stop cdk agglayer`) +run(`kurtosis service start cdk agglayer`) +console.log("Done."); + From fe22bcae3538cd0b030323db79a94051b7af3982 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 4 Sep 2025 14:53:52 +0000 Subject: [PATCH 08/39] removed docker secret from the agglayer-upgrade-with-supplied-version branch so as to enable the docker build workflow to pass since the branch is built from a fork --- .github/workflows/docker-build.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 418876959..485a897af 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -14,10 +14,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 - - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 - with: - username: ${{ vars.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - name: Get short commit id run: | @@ -28,5 +24,4 @@ jobs: - name: Build image uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0 with: - tags: ${{ vars.DOCKER_USERNAME }}/e2e:${{ env.SHORT_COMMIT_ID }} push: false From 93244be441ae6518cb6324fcfcfcee7096e5dc6c Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sun, 7 Sep 2025 13:38:38 +0000 Subject: [PATCH 09/39] added script to check for event logs to determine deployment success --- .../README.md | 43 ++-- .../check_verification.sh | 63 +++++ .../run.sh | 242 +++++++++++++----- .../script.js | 32 --- 4 files changed, 260 insertions(+), 120 deletions(-) create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/script.js diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index 93f948d2d..2c8c4570a 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -1,40 +1,30 @@ # Agglayer Upgrade/Downgrade Automation -This repo contains e2e test scenario to automate **Agglayer image upgrade and downgrade** while running rollup testnets inside **Kurtosis**. +This repo contains e2e test scenario to automate **Agglayer image upgrade and downgrade** while running rollup testnets inside **Kurtosis**. It is designed to: -- Bootstrap multiple rollup flavors (Validium, Rollup, PP) into the **same Kurtosis enclave**. -- Start Agglayer at a **FROM_TAG** version. +- Bootstrap multiple rollup flavors ( e.g 1 Validium and 2 Rollup ) into the **same Kurtosis enclave**. +- Start Agglayer using a **FROM_TAG** version. - Upgrade Agglayer to a **TO_TAG** version. - Optionally downgrade back to the original **FROM_TAG** for validation. - Cleanly tear down the setup using: ```bash kurtosis enclave rm cdk --force ---- -- List running services in the cdk enclave: -```bash - kurtosis enclave inspect cdk ---- -- View the logs of a service: -```bash - kurtosis service logs cdk ---- -- Shell into a service: -```bash - kurtosis service shell cdk ---- ---- -- Inspect a service -```bash -kurtosis service inspect cdk + ``` + --- ## Scripts -- `run.sh` - Main orchestration script. Handles bootstrap, upgrade, and optional downgrade. - - **Upgrade usage:** +- `run.sh` + Main orchestration script. Handles bootstrap, upgrade, and optional downgrade. + - **Create the .env file:** + ```bash + cp env.example .env + ``` + + - **Upgrade usage:** ```bash ./run.sh FROM_TAG TO_TAG ``` @@ -45,7 +35,7 @@ kurtosis service inspect cdk ./run.sh 0.3.4 0.3.5 ``` - - **Downgrade usage:** + - **Downgrade usage:** ```bash ./run.sh FROM_TAG TO_TAG downgrade ``` @@ -58,11 +48,12 @@ kurtosis service inspect cdk | Argument | Required | Description | |------------------------|----------|-------------| -| `` | Yes | Docker image tag to start with (e.g., `0.2.2`)| -| `` | Yes | Docker image tag to upgrade to (e.g., `0.2.3`)| +| `` | Yes | Docker image tag to start with (e.g., `0.3.4`)| +| `` | Yes | Docker image tag to upgrade to (e.g., `0.3.5`)| | `[ACTION]` | No | Optional: set to `downgrade` to downgrade back to `` after upgrade | --- +```` diff --git a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh new file mode 100644 index 000000000..144384a7d --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +set -euo pipefail + +# These get replaced by the host helper script +ROLLUP_MANAGER="__ROLLUP_MANAGER__" # from combined.json: polygonRollupManagerAddress +ROLLUP_ADDRESS="__ROLLUP_ADDRESS__" # from combined.json: rollupAddress (L2), if you need it + +RPC_URL="${RPC_URL:-http://el-1-geth-lighthouse:8545}" +LOOKBACK="${LOOKBACK:-100}" # set the look back for event to be 100 blocks + +EVENT="VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address)" + +CURRENT="$(cast block-number --rpc-url "$RPC_URL")" # gets the lates blocknumber captured by CURRENT variable +FROM=$(( CURRENT - LOOKBACK )) # set the start of scan window +if (( FROM < 0 )); then FROM=0; fi # if the scan range is less than 0 we set it to begin from 0 + +echo "Scanning blocks $FROM → $CURRENT on $RPC_URL" +echo " contract (rollup manager): $ROLLUP_MANAGER" +echo " event: $EVENT" +echo " lookback: $LOOKBACK blocks" + +TMP_JSON="$(mktemp -t verify-logs.XXXXXX.json)" + +# Stream logs as pretty JSON to terminal (if jq is installed) and save raw JSON to file +if command -v jq >/dev/null 2>&1; then + cast logs \ + --address "$ROLLUP_MANAGER" "$EVENT" \ + --from-block "$FROM" --to-block "$CURRENT" \ + --rpc-url "$RPC_URL" \ + --json \ + | tee "$TMP_JSON" | jq -C . +else + echo "(jq not found — showing raw JSON)" + cast logs \ + --address "$ROLLUP_MANAGER" "$EVENT" \ + --from-block "$FROM" --to-block "$CURRENT" \ + --rpc-url "$RPC_URL" \ + --json | tee "$TMP_JSON" +fi + +FOUND=0 +if command -v jq >/dev/null 2>&1; then + FOUND="$(jq 'length' "$TMP_JSON")" # count how many item are in the json file +else + # crude fallback: count '[' then subtract brackets; if it's "[]", FOUND stays 0 + # (safe enough for our purpose when jq isn't available) + if grep -q '"address"' "$TMP_JSON"; then # checks is tem_json contains substring address + FOUND="$(grep -c '"address"' "$TMP_JSON" || true)" # counts lines that contains the address substring + fi +fi + +if (( FOUND > 0 )); then + echo "[SUCCESS---] Found ${FOUND} verification event(s) for $ROLLUP_MANAGER in the last $LOOKBACK blocks." + if command -v jq >/dev/null 2>&1; then + echo "--- summary ---" + # Show a compact, human-readable list + jq -r '.[] | "block=\(.blockNumber) tx=\(.transactionHash) logIndex=\(.logIndex) rollupIdTopic=\(.topics[1]) aggregatorTopic=\(.topics[2])"' "$TMP_JSON" + fi + exit 0 +else + echo "[ERROR---] No verification events found for $ROLLUP_MANAGER in the last $LOOKBACK blocks." + exit 2 +fi diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index a772ba49a..11d391551 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -1,8 +1,118 @@ #!/bin/env bash set -e -# Check before sourcing -if [ -f ../common/load-env.sh ]; then + +# ---------------------------------------------------------------------- +# Function: Adds rollup RPCs to agglayer and restarts the service +# ---------------------------------------------------------------------- +add_rollup_rpc_to_agglayer() { + echo "Updating agglayer config..." + + kurtosis service exec cdk agglayer ' + set -eu + file=/etc/zkevm/agglayer-config.toml + if ! grep -q "2 = http://cdk-erigon-rpc-002:8123" "$file"; then + sed -i "/1 = \"http:\/\/cdk-erigon-rpc-001:8123\"/a 2 = \"http://cdk-erigon-rpc-002:8123\"" "$file" + sed -i "/2 = \"http:\/\/cdk-erigon-rpc-002:8123\"/a 3 = \"http://cdk-erigon-rpc-003:8123\"" "$file" + fi + ' + + echo "Restarting agglayer..." + kurtosis service stop cdk agglayer + kurtosis service start cdk agglayer + + echo "Done." +} + + + +# ----------------------------------------------------------------------------------------------------------------- +# Function: to verify deployment by checking for events VerifyBatchesTrustedAggregator in the contract deployments +# ------------------------------------------------------------------------------------------------------------------ +run_verification_in_container() ( + set -euo pipefail + set -o pipefail + + SERVICE_NAME="${1:?Usage: run_verification_in_container [LOCAL_SCRIPT] [RPC_URL]}" + LOCAL_SCRIPT="${2:-./check_verification.sh}" + RPC_URL="${3:-http://el-1-geth-lighthouse:8545}" + + LOG_DIR="${LOG_DIR:-./logs}" + mkdir -p "$LOG_DIR" + LOG_FILE="${LOG_DIR}/${SERVICE_NAME}.log" + + START_TS="$(date -Is)" # current timestamp + echo "[START ${START_TS}] ${SERVICE_NAME}" + + # Find the kurtosis container for the service + # It finds the most recent container whose name starts with ${SERVICE_NAME}-- and stores its name in CONTAINER + CONTAINER="$(docker ps -a --format '{{.Names}}' | grep -E "^${SERVICE_NAME}--" | head -n1 || true)" + + # Run and stream output to both terminal and log + { + echo "---- ${START_TS} BEGIN ${SERVICE_NAME} ----" + # checks if no service was found and exits + if [[ -z "${CONTAINER}" ]]; then + echo "No container found matching \"${SERVICE_NAME}--*\"" >&2 + echo "---- $(date -Is) END ${SERVICE_NAME} rc=127 ----" + exit 127 + fi + + # continues execution if service was found + echo "Using container: ${CONTAINER}" + + # Copy local script into the container + REMOTE_SCRIPT="/tmp/check_verification.sh" + echo "Copying ${LOCAL_SCRIPT} -> ${CONTAINER}:${REMOTE_SCRIPT}" + docker cp "${LOCAL_SCRIPT}" "${CONTAINER}:${REMOTE_SCRIPT}" + + # Patch placeholders from combined.json and execute + docker exec -e RPC_URL="${RPC_URL}" "${CONTAINER}" bash -lc ' + set -euo pipefail + FILE=/opt/zkevm/combined.json + [[ -f "$FILE" ]] || { echo "Missing $FILE"; exit 1; } + + if command -v jq >/dev/null 2>&1; then + ROLLUP_MANAGER=$(jq -r ".polygonRollupManagerAddress" "$FILE") + ROLLUP_ADDRESS=$(jq -r ".rollupAddress" "$FILE") + else + ROLLUP_MANAGER=$(grep -oP "\"polygonRollupManagerAddress\"\\s*:\\s*\"\\K0x[0-9a-fA-F]+" "$FILE") + ROLLUP_ADDRESS=$(grep -oP "\"rollupAddress\"\\s*:\\s*\"\\K0x[0-9a-fA-F]+" "$FILE") + fi + + [[ -n "$ROLLUP_MANAGER" ]] || { echo "Could not parse polygonRollupManagerAddress"; exit 1; } + [[ -n "$ROLLUP_ADDRESS" ]] || { echo "Could not parse rollupAddress"; exit 1; } + + echo "ROLLUP_MANAGER=$ROLLUP_MANAGER" + echo "ROLLUP_ADDRESS=$ROLLUP_ADDRESS" + + sed -i "s/__ROLLUP_MANAGER__/$ROLLUP_MANAGER/g; s/__ROLLUP_ADDRESS__/$ROLLUP_ADDRESS/g" "'"$REMOTE_SCRIPT"'" + chmod +x "'"$REMOTE_SCRIPT"'" + "'"$REMOTE_SCRIPT"'" + ' + RC=$? # saves exits status of prev execution + echo "---- $(date -Is) END ${SERVICE_NAME} rc=${RC} ----" + exit $RC + } 2>&1 | tee -a "$LOG_FILE". # stdout & stderr from the prev cmd, pipes it & appends to log file shows also on terminal. + + # Preserve the exit code of the block (left side of the pipe) + RC=${PIPESTATUS[0]} # captures the exit code of the first command in the pipeline + END_TS="$(date -Is)" + if [[ $RC -eq 0 ]]; then + echo "[FINISH ${END_TS}] ${SERVICE_NAME} ✅ (rc=0) | log: ${LOG_FILE}" + elif [[ $RC -eq 2 ]]; then + echo "[FINISH ${END_TS}] ${SERVICE_NAME} ⚠️ No verification events (rc=2) | log: ${LOG_FILE}" + else + echo "[FINISH ${END_TS}] ${SERVICE_NAME} ❌ (rc=${RC}) | log: ${LOG_FILE}" + fi + exit $RC +) + + +# ---------------------------------------------------------------------- +# Load environment +# ---------------------------------------------------------------------- +if [[ -f ../common/load-env.sh ]]; then source ../common/load-env.sh else echo "load-env.sh not found!" @@ -16,6 +126,9 @@ else exit 1 fi + +# ------------------------------------------------------------------------------ +# CLI Arguments # ────────────────────────────────────────────────────────────────────────────── # Usage: ./run.sh [action] # e.g. 0.3.0-rc.21 @@ -42,9 +155,9 @@ ACTION="${3:-upgrade}" if [[ "$ACTION" == "downgrade" ]]; then if [[ "$TO_TAG" == "$PREV_FROM_TAG" && "$FROM_TAG" == "$PREV_TO_TAG" ]]; then - echo "✅ Downgrade tags match previous upgrade." + echo "Downgrade tags match previous upgrade." else - echo "❌ Downgrade tag mismatch!" + echo "Downgrade tag mismatch!" echo "Expected FROM_TAG=$PREV_TO_TAG, TO_TAG=$PREV_FROM_TAG" echo "Got FROM_TAG=$FROM_TAG, TO_TAG=$TO_TAG" exit 1 @@ -58,18 +171,18 @@ TO_IMAGE="${IMAGE_BASE}:${TO_TAG}" -sed -i "s#^FROM_IMAGE=.*#FROM_IMAGE=$FROM_IMAGE#" .env -sed -i "s#^TO_IMAGE=.*#TO_IMAGE=$TO_IMAGE#" .env + sed -i "s#^FROM_TAG=.*#FROM_TAG=$FROM_TAG#" .env sed -i "s#^TO_TAG=.*#TO_TAG=$TO_TAG#" .env -kurtosis_hash="$KURTOSIS_PACKAGE_HASH" -kurtosis_enclave_name="$ENCLAVE_NAME" +KURTOSIS_HASH="$KURTOSIS_PACKAGE_HASH" +KURTOSIS_ENCLAVE_NAME="$ENCLAVE_NAME" + -echo ":-kurtosis hash:= $kurtosis_hash" -echo ":-enclave name:= $kurtosis_enclave_name" +echo ":-kurtosis hash:= $KURTOSIS_HASH" +echo ":-enclave name:= $KURTOSIS_ENCLAVE_NAME" echo ":-from image:= $FROM_IMAGE" echo ":-to image:= $TO_IMAGE" echo ":-from tag:= $FROM_TAG" @@ -100,9 +213,9 @@ yq -y --arg sp1key "$SP1_NETWORK_KEY" ' if [[ "$ACTION" == "downgrade" ]]; then # check if there is a running enclave - enclaveExist=$(kurtosis enclave ls | awk '$3 == "RUNNING" {print $2; exit}') - if [[ "$enclaveExist" != "$kurtosis_enclave_name" ]]; then - echo "Enclave name is not $kurtosis_enclave_name. Exiting...OR No Running enclave " + ENCLAVE_EXIST=$(kurtosis enclave ls | awk '$3 == "RUNNING" {print $2; exit}') + if [[ "$ENCLAVE_EXIST" != "$KURTOSIS_ENCLAVE_NAME" ]]; then + echo "Enclave name is not $KURTOSIS_ENCLAVE_NAME. Exiting...OR No Running enclave " exit 1 fi @@ -119,12 +232,12 @@ if [[ "$ACTION" == "downgrade" ]]; then echo $TO_IMAGE_SERVICE_CONFIG_FILE cat "$TO_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service rm "$kurtosis_enclave_name" agglayer + kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" rm "$TO_IMAGE_SERVICE_CONFIG_FILE" - sleep 10 + TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) kurtosis service inspect cdk agglayer-prover --output json \ @@ -141,11 +254,11 @@ if [[ "$ACTION" == "downgrade" ]]; then echo '╔════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ 🎉 💃💃💃💃💃 D O W N G R A D I N G A G G L A Y E R S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' + echo '║ D O W N G R A D I N G A G G L A Y E R S U C C E S S F U L L ║' echo '╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "🔧 Running Updating Agglayer with Rollup ERIGON ROLLUP RPC NODE" - node script.js + echo " Running Updating Agglayer with Rollup ERIGON ROLLUP RPC NODE" + add_rollup_rpc_to_agglayer else echo '╔═══════════════════════════════════════════════════════════════╗' @@ -154,28 +267,24 @@ else kurtosis run \ - --enclave "$kurtosis_enclave_name" \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ --args-file ./initial-cdk-erigon-validium.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "=======================================================================================================================" - sleep 10 + echo '╔══════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' + echo '╚══════════════════════════════════════════════════════════════════════════════════════════════╝' + - echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' - # kurtosis service inspect cdk agglayer --output json - echo "=======================================================================================================================" + - - echo "==================== R U N N I N G K U R T O R S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" + echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" # 1. Create a temporary file to hold the config json of the current kurtosis base image FROM_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) @@ -186,12 +295,11 @@ else echo $FROM_IMAGE_SERVICE_CONFIG_FILE cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service rm "$kurtosis_enclave_name" agglayer + kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer kurtosis service add cdk agglayer --json-service-config "$FROM_IMAGE_SERVICE_CONFIG_FILE" rm "$FROM_IMAGE_SERVICE_CONFIG_FILE" - sleep 10 FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) @@ -202,8 +310,8 @@ else rm "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - sleep 20 - echo "==================== R U N N I N G K U R T O R S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" + + echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" # 1. Create a temporary file to hold the config json of the current service TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) @@ -214,7 +322,7 @@ else echo $TO_IMAGE_SERVICE_CONFIG_FILE cat "$TO_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service rm "$kurtosis_enclave_name" agglayer + kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" rm "$TO_IMAGE_SERVICE_CONFIG_FILE" @@ -233,58 +341,68 @@ else kurtosis service inspect cdk agglayer --output json echo "========================================================================================================================" - sleep 15 + - echo '╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ 🎉 💃💃💃💃💃 U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L 🎉 💃💃💃💃💃 ║' - echo '╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L ║' + echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "======================================================================================================================================================" - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T W O ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + echo '╔═════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T W O ║' + echo '╚═════════════════════════════════════════════════════════════════════════╝' kurtosis run \ - --enclave "$kurtosis_enclave_name" \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ --args-file ./initial-cdk-erigon-rollup.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "=====================================================================================================================================" - sleep 10 + echo '╔═════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' + echo '╚═════════════════════════════════════════════════════════════════════════════════════════╝' + - echo "======================================================================================================================================================" - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════╝' + echo '╔═════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E ║' + echo '╚═════════════════════════════════════════════════════════════════════════════╝' kurtosis run \ - --enclave "$kurtosis_enclave_name" \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ --args-file ./initial-cdk-erigon-rollup-003.yml \ - "github.com/0xPolygon/kurtosis-cdk@$kurtosis_hash" + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' + echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E S U C C E S S F U L L ║' echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "=====================================================================================================================================" - sleep 10 - echo "🔧 Running Updating Agglayer with Rollup ERIGON ROLLUP RPC NODE" - node script.js > script.log 2>&1 & + + echo "Modifying agglayer configuration to include new rollup" + add_rollup_rpc_to_agglayer + + + + # live countdown for 3 minutes + for ((s=180; s>0; s--)); do + printf "\rWaiting 3 min to verify deployment - will execute VerifyBatchesTrustedAggregator event… %02d:%02d" $((s/60)) $((s%60)) + sleep 1 + done + printf "\r✓ done. \n" + + for n in 001 002 003; do + run_verification_in_container "contracts-$n" || true + done +fi + -fi \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/script.js b/scenarios/agglayer-upgrade-with-supplied-version/script.js deleted file mode 100644 index 10cd134ad..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/script.js +++ /dev/null @@ -1,32 +0,0 @@ -// This cript add rollup rpc to agglayer -const { execSync } = require("child_process"); - - -function run(cmd, opts = {}) { - console.log(`$ ${cmd}`); - execSync(cmd, { stdio: "inherit", ...opts }); -} - - -try { -const editCmd = `kurtosis service exec cdk agglayer ' -set -eu -file=/etc/zkevm/agglayer-config.toml -if ! grep -q "2 = http://cdk-erigon-rpc-002:8123" "$file"; then - sed -i "/1 = \\"http:\\/\\/cdk-erigon-rpc-001:8123\\"/a 2 = \\"http://cdk-erigon-rpc-002:8123\\"" "$file" - sed -i "/2 = \\"http:\\/\\/cdk-erigon-rpc-002:8123\\"/a 3 = \\"http://cdk-erigon-rpc-003:8123\\"" "$file" -fi -'`; - run(editCmd); -} catch (e) { - console.warn( - `error updating agglayer toml file` - ); - process.exit(1); -} - -// 5) Restart the agglayer service via Kurtosis -run(`kurtosis service stop cdk agglayer`) -run(`kurtosis service start cdk agglayer`) -console.log("Done."); - From 68ffb86fe3f17b397439c3474344ac4cee6e8675 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 8 Sep 2025 11:36:43 +0000 Subject: [PATCH 10/39] removed unused shell variable --- .../check_verification.sh | 2 +- scenarios/agglayer-upgrade-with-supplied-version/run.sh | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh index 144384a7d..aae73df54 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh @@ -3,7 +3,7 @@ set -euo pipefail # These get replaced by the host helper script ROLLUP_MANAGER="__ROLLUP_MANAGER__" # from combined.json: polygonRollupManagerAddress -ROLLUP_ADDRESS="__ROLLUP_ADDRESS__" # from combined.json: rollupAddress (L2), if you need it + RPC_URL="${RPC_URL:-http://el-1-geth-lighthouse:8545}" LOOKBACK="${LOOKBACK:-100}" # set the look back for event to be 100 blocks diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 11d391551..db530f9a4 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -74,19 +74,16 @@ run_verification_in_container() ( if command -v jq >/dev/null 2>&1; then ROLLUP_MANAGER=$(jq -r ".polygonRollupManagerAddress" "$FILE") - ROLLUP_ADDRESS=$(jq -r ".rollupAddress" "$FILE") else ROLLUP_MANAGER=$(grep -oP "\"polygonRollupManagerAddress\"\\s*:\\s*\"\\K0x[0-9a-fA-F]+" "$FILE") - ROLLUP_ADDRESS=$(grep -oP "\"rollupAddress\"\\s*:\\s*\"\\K0x[0-9a-fA-F]+" "$FILE") fi [[ -n "$ROLLUP_MANAGER" ]] || { echo "Could not parse polygonRollupManagerAddress"; exit 1; } - [[ -n "$ROLLUP_ADDRESS" ]] || { echo "Could not parse rollupAddress"; exit 1; } + echo "ROLLUP_MANAGER=$ROLLUP_MANAGER" - echo "ROLLUP_ADDRESS=$ROLLUP_ADDRESS" - sed -i "s/__ROLLUP_MANAGER__/$ROLLUP_MANAGER/g; s/__ROLLUP_ADDRESS__/$ROLLUP_ADDRESS/g" "'"$REMOTE_SCRIPT"'" + sed -i "s|__ROLLUP_MANAGER__|$ROLLUP_MANAGER|g" "'"$REMOTE_SCRIPT"'" chmod +x "'"$REMOTE_SCRIPT"'" "'"$REMOTE_SCRIPT"'" ' From 2cd8f6898b55b2a4516c48745c0f7c417377a6a6 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 8 Sep 2025 12:08:49 +0000 Subject: [PATCH 11/39] update remove tmp file after execution --- .../agglayer-upgrade-with-supplied-version/check_verification.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh index aae73df54..dba586953 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh @@ -20,6 +20,7 @@ echo " event: $EVENT" echo " lookback: $LOOKBACK blocks" TMP_JSON="$(mktemp -t verify-logs.XXXXXX.json)" +trap 'rm -f "$TMP_JSON"' EXIT # Stream logs as pretty JSON to terminal (if jq is installed) and save raw JSON to file if command -v jq >/dev/null 2>&1; then From cb870d5f29241a0b1b2575e0760fc4f2b0bb9564 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 8 Sep 2025 12:45:53 +0000 Subject: [PATCH 12/39] cleaned up using shellcheck --- .../agglayer-upgrade-with-supplied-version/run.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index db530f9a4..ad8cbeae9 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -89,7 +89,7 @@ run_verification_in_container() ( ' RC=$? # saves exits status of prev execution echo "---- $(date -Is) END ${SERVICE_NAME} rc=${RC} ----" - exit $RC + exit "$RC" } 2>&1 | tee -a "$LOG_FILE". # stdout & stderr from the prev cmd, pipes it & appends to log file shows also on terminal. # Preserve the exit code of the block (left side of the pipe) @@ -102,7 +102,7 @@ run_verification_in_container() ( else echo "[FINISH ${END_TS}] ${SERVICE_NAME} ❌ (rc=${RC}) | log: ${LOG_FILE}" fi - exit $RC + exit "$RC" ) @@ -226,7 +226,7 @@ if [[ "$ACTION" == "downgrade" ]]; then kurtosis service inspect cdk agglayer --output json \ | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" - echo $TO_IMAGE_SERVICE_CONFIG_FILE + echo "$TO_IMAGE_SERVICE_CONFIG_FILE" cat "$TO_IMAGE_SERVICE_CONFIG_FILE" kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer @@ -289,7 +289,7 @@ else kurtosis service inspect cdk agglayer --output json \ | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_IMAGE_SERVICE_CONFIG_FILE" - echo $FROM_IMAGE_SERVICE_CONFIG_FILE + echo "$FROM_IMAGE_SERVICE_CONFIG_FILE" cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer @@ -316,7 +316,7 @@ else kurtosis service inspect cdk agglayer --output json \ | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" - echo $TO_IMAGE_SERVICE_CONFIG_FILE + echo "$TO_IMAGE_SERVICE_CONFIG_FILE" cat "$TO_IMAGE_SERVICE_CONFIG_FILE" kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer From 9fe791aa9ca2f34cfaa1d65fd300a4d7060b20f6 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 8 Sep 2025 16:37:07 +0000 Subject: [PATCH 13/39] updated scriptformat to be consistent across board --- .../check_verification.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh index dba586953..fde18a26a 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/check_verification.sh @@ -50,7 +50,7 @@ else fi fi -if (( FOUND > 0 )); then +if [[ $FOUND -gt 0 ]]; then echo "[SUCCESS---] Found ${FOUND} verification event(s) for $ROLLUP_MANAGER in the last $LOOKBACK blocks." if command -v jq >/dev/null 2>&1; then echo "--- summary ---" From dd672eb04918c39398dbed4d662ece5f323bbc97 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Wed, 17 Sep 2025 05:06:03 +0000 Subject: [PATCH 14/39] Initial commit --- .../.env | 8 + .../assets/cdk-erigon-rollup.yml | 4 +- .../assets/cdk-erigon-validium.yml | 3 +- .../assets/cdk-opgeth-fep.yml | 105 ++++++++++ .../assets/cdk-opgeth-pp.yml | 101 +++++++++ .../initial-cdk-erigon-rollup-003.yml | 38 ++++ .../initial-cdk-erigon-rollup.yml | 38 ++++ .../initial-cdk-erigon-validium.yml | 14 ++ .../initial-cdk-opgeth-fep.yml | 38 ++++ .../initial-cdk-opgeth-pp.yml | 37 ++++ .../run.sh | 193 +++++++++++------- 11 files changed, 500 insertions(+), 79 deletions(-) create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/.env create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml diff --git a/scenarios/agglayer-upgrade-with-supplied-version/.env b/scenarios/agglayer-upgrade-with-supplied-version/.env new file mode 100644 index 000000000..6d11f4153 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/.env @@ -0,0 +1,8 @@ +ENCLAVE_NAME=cdk +KURTOSIS_PACKAGE_HASH=8413b7a2026e02b24db7ecccf6a70f1c242df437 # Obinna commit +# KURTOSIS_PACKAGE_HASH=61e84fc62460673e1ca13b90407010688b763a9b # Latest commit +# KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default +SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key +FROM_TAG=0.3.4 +TO_TAG=0.3.5 + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml index 14daa090d..86d908e52 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml @@ -14,7 +14,7 @@ args: consensus_contract_type: rollup sequencer_type: erigon agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - deployment_suffix: "-002" + deployment_suffix: "-003" zkevm_rollup_chain_id: 20202 zkevm_rollup_id: 2 @@ -66,4 +66,4 @@ args: # claimsponsor zkevm_l2_claimsponsor_address: "0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886" - zkevm_l2_claimsponsor_private_key: "0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a" + zkevm_l2_claimsponsor_private_key: "0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a" \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml index 1e015e2ac..cb7591956 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml @@ -4,13 +4,14 @@ deployment_stages: deploy_op_succinct: false args: verbosity: debug + deployment_suffix: "-001" agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 consensus_contract_type: cdk_validium additional_services: [] sequencer_type: erigon agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - + # l1_rpc_url: "http://op-el-1-op-geth-op-node-001:8545" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml new file mode 100644 index 000000000..e57f609d2 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml @@ -0,0 +1,105 @@ +# # This args-file deploys the OP Succinct chain. +# deployment_stages: +# deploy_l1: false +# # deploy_op_succinct: true +# deploy_optimism_rollup: true + +# args: +# deployment_suffix: "-002" +# consensus_contract_type: pessimistic +# # Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet. +# # A mock verifier is used otherwise. +# op_succinct_mock: true +# # Enable the integration with the Agglayer +# op_succinct_agglayer: true +# # Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core" +# op_succinct_agg_proof_mode: "compressed" +# # The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval. +# op_succinct_submission_interval: "1" +# # The maximum number of concurrent proof requests to send to the `op-succinct-server` +# op_succinct_max_concurrent_proof_requests: "1" +# # The maximum number of concurrent witness generation processes to run on the `op-succinct-server` +# op_succinct_max_concurrent_witness_gen: "1" +# # Size of the range proof. +# op_succinct_range_proof_interval: "60" + +# op_el_rpc_url: "http://op-el-1-op-geth-op-node-001:8545" +# # OP Stack CL Node URL. Will be dynamically updated by args_sanity_check(). +# op_cl_rpc_url: "http://op-cl-1-op-node-op-geth-001:8547" + +# # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. +# # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. +# # Note this will noticeably increase the deployment time because of the increased L1 finality. +# l1_seconds_per_slot: 2 # TEMPORARY - DO NOT MERGE + +# optimism_package: +# chains: +# - proposer_params: +# enabled: false +# challenger_params: +# enabled: false +# network_params: +# name: "002" +# network_id: "2151908" +# seconds_per_slot: 1 +# observability: +# enabled: false + +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_optimism_rollup: true +args: + zkevm_rollup_chain_id: 2151909 + deployment_suffix: "-002" + zkevm_rollup_id: 2 + consensus_contract_type: pessimistic + # OP Stack EL RPC URL. Will be dynamically updated by args_sanity_check(). + op_el_rpc_url: "http://op-el-1-op-geth-op-node-001:8545" + # OP Stack CL Node URL. Will be dynamically updated by args_sanity_check(). + op_cl_rpc_url: "http://op-cl-1-op-node-op-geth-001:8547" + # Arbitrary key for the SP1 prover. Replace with a valid SPN key if you want to use the network provers. + # cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete" + # NOTE: for sp1 early version the network prover key not support '0x' prefix + sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" + # Valid values are: "network-prover", "mock-prover" + agglayer_prover_primary_prover: "mock-prover" + # Valid values are: "network-prover", "mock-prover" + aggkit_prover_primary_prover: "mock-prover" + + # zkevm_l2_aggoracle_address: "0x8F43d25C7aA610A762AC59670b5FFf010a21DB5F" + # zkevm_l2_aggoracle_private_key: "0x781a3735faba4bf257f3d97b641f66e29a3a89d74178eaeac2e44614b2e066a5" + # zkevm_l2_sovereignadmin_address: "0x4C9fC4485ca332eAA1B0f621E6e7B5A1c336d3eE" + # zkevm_l2_sovereignadmin_private_key: "0x719f7a806a2d34f22ed95b460e4fd2d983837e8f63980125adc809eab60151c1" + # op_succinct_max_concurrent_proof_requests: "1" + # op_succinct_max_concurrent_witness_gen: "1" + # op_succinct_agg_proof_mode: "compressed" + # op_succinct_range_proof_interval: "1800" + +optimism_package: + # We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235 + # "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90", + source: "github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce" + predeployed_contracts: true + chains: + - participants: + - el_type: op-geth + el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03" + cl_type: op-node + cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d" + count: 1 + batcher_params: + image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3" + proposer_params: + image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825" + network_params: + name: "002" + network_id: "2151909" + seconds_per_slot: 1 + op_contract_deployer_params: + # image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12" + image: "xavierromero/op-deployer:20250314" + l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" + l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" + observability: + enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml new file mode 100644 index 000000000..8c785d948 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml @@ -0,0 +1,101 @@ +# # This args-file deploys the OP Succinct chain. +# deployment_stages: +# # deploy_optimism_rollup: true +# deploy_op_succinct: true +# deploy_agglayer: true +# args: +# sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" # XXX: Replace with an active key +# # Valid values are: "network-prover", "mock-prover" +# agglayer_prover_primary_prover: "network-prover" +# # Valid values are: "network-prover", "mock-prover" +# aggkit_prover_primary_prover: "network-prover" +# consensus_contract_type: pessimistic +# # aggkit_prover_image: "ghcr.io/agglayer/aggkit-prover:feat-rust-proposer" +# # false = network +# # Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet. +# # A mock verifier is used otherwise. +# op_succinct_mock: false +# # Enable real (non-mock) verifier on contracts +# zkevm_use_real_verifier: true +# # Enable the integration with the Agglayer +# op_succinct_agglayer: true +# # Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core" +# op_succinct_agg_proof_mode: "compressed" +# # The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval. +# op_succinct_submission_interval: "1" +# # The maximum number of concurrent proof requests to send to the `op-succinct-server` +# op_succinct_max_concurrent_proof_requests: "1" +# # The maximum number of concurrent witness generation processes to run on the `op-succinct-server` +# op_succinct_max_concurrent_witness_gen: "1" +# # Must match network_id field in network_params.network_id +# # zkevm_rollup_chain_id: 2151908 +# # The number following the "-" should be identical to network_params.name +# deployment_suffix: "-001" +# zkevm_rollup_id: 1 +# # Size of the range proof. +# op_succinct_range_proof_interval: "1800" +# # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. +# # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. +# # Note this will noticeably increase the deployment time because of the increased L1 finality. +# l1_seconds_per_slot: 12 + +# optimism_package: +# observability: +# enabled: true + +deployment_stages: + deploy_l1: true + deploy_agglayer: true + deploy_optimism_rollup: true + +args: + l1_custom_genesis: true + zkevm_rollup_chain_id: 2151909 + deployment_suffix: "-001" + zkevm_rollup_id: 2 + consensus_contract_type: pessimistic + # OP Stack EL RPC URL. Will be dynamically updated by args_sanity_check(). + # op_el_rpc_url: "http://op-el-1-op-geth-op-node-002:8545" + # OP Stack CL Node URL. Will be dynamically updated by args_sanity_check(). + # op_cl_rpc_url: "http://op-cl-1-op-node-op-geth-002:8547" + # Arbitrary key for the SP1 prover. Replace with a valid SPN key if you want to use the network provers. + # cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete" + # NOTE: for sp1 early version the network prover key not support '0x' prefix + sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" + # Valid values are: "network-prover", "mock-prover" + agglayer_prover_primary_prover: "mock-prover" + # Valid values are: "network-prover", "mock-prover" + aggkit_prover_primary_prover: "mock-prover" + + # zkevm_l2_aggoracle_address: "0x8F43d25C7aA610A762AC59670b5FFf010a21DB5F" + # zkevm_l2_aggoracle_private_key: "0x781a3735faba4bf257f3d97b641f66e29a3a89d74178eaeac2e44614b2e066a5" + # zkevm_l2_sovereignadmin_address: "0x4C9fC4485ca332eAA1B0f621E6e7B5A1c336d3eE" + # zkevm_l2_sovereignadmin_private_key: "0x719f7a806a2d34f22ed95b460e4fd2d983837e8f63980125adc809eab60151c1" + +optimism_package: + # We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235 + # "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90", + source: "github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce" + predeployed_contracts: true + chains: + - participants: + - el_type: op-geth + el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03" + cl_type: op-node + cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d" + count: 1 + batcher_params: + image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3" + proposer_params: + image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825" + network_params: + name: "001" + network_id: "2151909" + seconds_per_slot: 1 + op_contract_deployer_params: + # image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12" + image: "xavierromero/op-deployer:20250314" + l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" + l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" + observability: + enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml new file mode 100644 index 000000000..3e1734bd8 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml @@ -0,0 +1,38 @@ +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_cdk_bridge_ui: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false +args: + verbosity: debug + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 + additional_services: [] + consensus_contract_type: rollup + sequencer_type: erigon + agglayer_prover_sp1_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' + deployment_suffix: '-003' + zkevm_rollup_chain_id: 20203 + zkevm_rollup_id: 3 + zkevm_l2_sequencer_address: '0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8' + zkevm_l2_sequencer_private_key: '0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3' + zkevm_l2_aggregator_address: '0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286' + zkevm_l2_aggregator_private_key: '0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9' + zkevm_l2_claimtxmanager_address: '0x1a1C53bA714643B53b39D82409915b513349a1ff' + zkevm_l2_claimtxmanager_private_key: '0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676' + zkevm_l2_timelock_address: '0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82' + zkevm_l2_timelock_private_key: '0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3' + zkevm_l2_loadtest_address: '0x51406206342270c822b5d9dfb261279eEdF0Af20' + zkevm_l2_loadtest_private_key: '0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c' + zkevm_l2_agglayer_address: '0xB8b680902bba8e04C78660D33a97a87E4CC4e797' + zkevm_l2_agglayer_private_key: '0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81' + zkevm_l2_dac_address: '0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1' + zkevm_l2_dac_private_key: '0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47' + zkevm_l2_proofsigner_address: '0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3' + zkevm_l2_proofsigner_private_key: '0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b' + zkevm_l2_l1testing_address: '0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D' + zkevm_l2_l1testing_private_key: '0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea' + zkevm_l2_claimsponsor_address: '0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886' + zkevm_l2_claimsponsor_private_key: '0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a' diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml new file mode 100644 index 000000000..8111d32d4 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml @@ -0,0 +1,38 @@ +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_cdk_bridge_ui: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false +args: + verbosity: debug + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 + additional_services: [] + consensus_contract_type: rollup + sequencer_type: erigon + agglayer_prover_sp1_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' + deployment_suffix: '-003' + zkevm_rollup_chain_id: 20202 + zkevm_rollup_id: 2 + zkevm_l2_sequencer_address: '0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8' + zkevm_l2_sequencer_private_key: '0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3' + zkevm_l2_aggregator_address: '0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286' + zkevm_l2_aggregator_private_key: '0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9' + zkevm_l2_claimtxmanager_address: '0x1a1C53bA714643B53b39D82409915b513349a1ff' + zkevm_l2_claimtxmanager_private_key: '0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676' + zkevm_l2_timelock_address: '0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82' + zkevm_l2_timelock_private_key: '0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3' + zkevm_l2_loadtest_address: '0x51406206342270c822b5d9dfb261279eEdF0Af20' + zkevm_l2_loadtest_private_key: '0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c' + zkevm_l2_agglayer_address: '0xB8b680902bba8e04C78660D33a97a87E4CC4e797' + zkevm_l2_agglayer_private_key: '0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81' + zkevm_l2_dac_address: '0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1' + zkevm_l2_dac_private_key: '0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47' + zkevm_l2_proofsigner_address: '0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3' + zkevm_l2_proofsigner_private_key: '0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b' + zkevm_l2_l1testing_address: '0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D' + zkevm_l2_l1testing_private_key: '0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea' + zkevm_l2_claimsponsor_address: '0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886' + zkevm_l2_claimsponsor_private_key: '0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a' diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml new file mode 100644 index 000000000..a77a0ad05 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml @@ -0,0 +1,14 @@ +deployment_stages: + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false +args: + verbosity: debug + deployment_suffix: '-001' + agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 + consensus_contract_type: cdk_validium + additional_services: [] + sequencer_type: erigon + agglayer_prover_sp1_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' + agglayer_image: ghcr.io/agglayer/agglayer:0.3.4 diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml new file mode 100644 index 000000000..bf9b52f7b --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml @@ -0,0 +1,38 @@ +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_optimism_rollup: true +args: + zkevm_rollup_chain_id: 2151909 + deployment_suffix: '-002' + zkevm_rollup_id: 2 + consensus_contract_type: pessimistic + op_el_rpc_url: http://op-el-1-op-geth-op-node-001:8545 + op_cl_rpc_url: http://op-cl-1-op-node-op-geth-001:8547 + sp1_prover_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' + agglayer_prover_primary_prover: mock-prover + aggkit_prover_primary_prover: mock-prover +optimism_package: + source: github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce + predeployed_contracts: true + chains: + - participants: + - el_type: op-geth + el_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03 + cl_type: op-node + cl_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d + count: 1 + batcher_params: + image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3 + proposer_params: + image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825 + network_params: + name: '002' + network_id: '2151909' + seconds_per_slot: 1 + op_contract_deployer_params: + image: xavierromero/op-deployer:20250314 + l1_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz + l2_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz + observability: + enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml new file mode 100644 index 000000000..4b36ffa89 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml @@ -0,0 +1,37 @@ +deployment_stages: + deploy_l1: true + deploy_agglayer: true + deploy_optimism_rollup: true +args: + l1_custom_genesis: true + zkevm_rollup_chain_id: 2151909 + deployment_suffix: '-001' + zkevm_rollup_id: 2 + consensus_contract_type: pessimistic + sp1_prover_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' + agglayer_prover_primary_prover: mock-prover + aggkit_prover_primary_prover: mock-prover +optimism_package: + source: github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce + predeployed_contracts: true + chains: + - participants: + - el_type: op-geth + el_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03 + cl_type: op-node + cl_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d + count: 1 + batcher_params: + image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3 + proposer_params: + image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825 + network_params: + name: '001' + network_id: '2151909' + seconds_per_slot: 1 + op_contract_deployer_params: + image: xavierromero/op-deployer:20250314 + l1_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz + l2_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz + observability: + enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index ad8cbeae9..b7ecfe3e1 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -204,6 +204,14 @@ yq -y --arg sp1key "$SP1_NETWORK_KEY" ' ' ./assets/cdk-erigon-rollup-003.yml > initial-cdk-erigon-rollup-003.yml +yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.sp1_prover_key = $sp1key +' ./assets/cdk-opgeth-fep.yml > initial-cdk-opgeth-fep.yml + + +yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.sp1_prover_key = $sp1key +' ./assets/cdk-opgeth-pp.yml > initial-cdk-opgeth-pp.yml # checks if the user is requesting for downgrade @@ -258,10 +266,44 @@ if [[ "$ACTION" == "downgrade" ]]; then add_rollup_rpc_to_agglayer else + + # echo '╔═════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K - O P G E T H P P - R O L L U P ║' + # echo '╚═════════════════════════════════════════════════════════════════════════════╝' + + + # kurtosis run \ + # --enclave "$KURTOSIS_ENCLAVE_NAME" \ + # --args-file ./initial-cdk-opgeth-pp.yml \ + # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + + + # echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K - O P G E T H P P - R O L L U P S U C C E S S F U L L ║' + # echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + + + # echo '╔═════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K - O P G E T H - R O L L U P T W O ║' + # echo '╚═════════════════════════════════════════════════════════════════════════════╝' + + + # kurtosis run \ + # --enclave "$KURTOSIS_ENCLAVE_NAME" \ + # --args-file ./initial-cdk-opgeth-fep.yml \ + # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + + + # echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K - O P G E T H F E P - R O L L U P S U C C E S S F U L L ║' + # echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + + echo '╔═══════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M ║' echo '╚═══════════════════════════════════════════════════════════════╝' + # sleep 60 kurtosis run \ --enclave "$KURTOSIS_ENCLAVE_NAME" \ @@ -272,133 +314,132 @@ else echo '╔══════════════════════════════════════════════════════════════════════════════════════════════╗' echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' echo '╚══════════════════════════════════════════════════════════════════════════════════════════════╝' - - - echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' - echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' + # echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' + # echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' + # echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" - # 1. Create a temporary file to hold the config json of the current kurtosis base image - FROM_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + # echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" + # # 1. Create a temporary file to hold the config json of the current kurtosis base image + # FROM_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - # 2. Dump the inspected JSON, update the image, and save to the temp file - kurtosis service inspect cdk agglayer --output json \ - | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_IMAGE_SERVICE_CONFIG_FILE" + # # 2. Dump the inspected JSON, update the image, and save to the temp file + # kurtosis service inspect cdk agglayer --output json \ + # | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_IMAGE_SERVICE_CONFIG_FILE" - echo "$FROM_IMAGE_SERVICE_CONFIG_FILE" - cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" + # echo "$FROM_IMAGE_SERVICE_CONFIG_FILE" + # cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer - kurtosis service add cdk agglayer --json-service-config "$FROM_IMAGE_SERVICE_CONFIG_FILE" + # kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer + # kurtosis service add cdk agglayer --json-service-config "$FROM_IMAGE_SERVICE_CONFIG_FILE" - rm "$FROM_IMAGE_SERVICE_CONFIG_FILE" + # rm "$FROM_IMAGE_SERVICE_CONFIG_FILE" - FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - echo "AGGLAYER - PROVER CONFIG JSON" - kurtosis service inspect cdk agglayer-prover --output json \ - | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service add cdk agglayer-prover --json-service-config "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - rm "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + # FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + # echo "AGGLAYER - PROVER CONFIG JSON" + # kurtosis service inspect cdk agglayer-prover --output json \ + # | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + # kurtosis service add cdk agglayer-prover --json-service-config "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + # rm "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" - # 1. Create a temporary file to hold the config json of the current service - TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + # echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" + # # 1. Create a temporary file to hold the config json of the current service + # TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - # 2. Dump the inspected JSON, update the image, and save to the temp file - kurtosis service inspect cdk agglayer --output json \ - | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" + # # 2. Dump the inspected JSON, update the image, and save to the temp file + # kurtosis service inspect cdk agglayer --output json \ + # | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" - echo "$TO_IMAGE_SERVICE_CONFIG_FILE" - cat "$TO_IMAGE_SERVICE_CONFIG_FILE" + # echo "$TO_IMAGE_SERVICE_CONFIG_FILE" + # cat "$TO_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer - kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" + # kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer + # kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" - rm "$TO_IMAGE_SERVICE_CONFIG_FILE" + # rm "$TO_IMAGE_SERVICE_CONFIG_FILE" - TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - kurtosis service inspect cdk agglayer-prover --output json \ - | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - kurtosis service add cdk agglayer-prover --json-service-config "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - rm "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + # TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + # kurtosis service inspect cdk agglayer-prover --output json \ + # | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + # kurtosis service add cdk agglayer-prover --json-service-config "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + # rm "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $TO_TAG " - echo "========================================================================================================================" - kurtosis service inspect cdk agglayer --output json - echo "========================================================================================================================" + # echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $TO_TAG " + # echo "========================================================================================================================" + # kurtosis service inspect cdk agglayer --output json + # echo "========================================================================================================================" - echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L ║' - echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════╝' + # echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════╗' + # echo '║ U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L ║' + # echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo '╔═════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T W O ║' - echo '╚═════════════════════════════════════════════════════════════════════════╝' + # echo '╔═════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T W O ║' + # echo '╚═════════════════════════════════════════════════════════════════════════╝' - kurtosis run \ - --enclave "$KURTOSIS_ENCLAVE_NAME" \ - --args-file ./initial-cdk-erigon-rollup.yml \ - "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + # kurtosis run \ + # --enclave "$KURTOSIS_ENCLAVE_NAME" \ + # --args-file ./initial-cdk-erigon-rollup.yml \ + # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - echo '╔═════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' - echo '╚═════════════════════════════════════════════════════════════════════════════════════════╝' + # echo '╔═════════════════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' + # echo '╚═════════════════════════════════════════════════════════════════════════════════════════╝' - echo '╔═════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E ║' - echo '╚═════════════════════════════════════════════════════════════════════════════╝' + # echo '╔═════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E ║' + # echo '╚═════════════════════════════════════════════════════════════════════════════╝' - kurtosis run \ - --enclave "$KURTOSIS_ENCLAVE_NAME" \ - --args-file ./initial-cdk-erigon-rollup-003.yml \ - "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + # kurtosis run \ + # --enclave "$KURTOSIS_ENCLAVE_NAME" \ + # --args-file ./initial-cdk-erigon-rollup-003.yml \ + # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E S U C C E S S F U L L ║' - echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + # echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' + # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E S U C C E S S F U L L ║' + # echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - echo "Modifying agglayer configuration to include new rollup" - add_rollup_rpc_to_agglayer + + # echo "Modifying agglayer configuration to include new rollup" + # add_rollup_rpc_to_agglayer - # live countdown for 3 minutes - for ((s=180; s>0; s--)); do - printf "\rWaiting 3 min to verify deployment - will execute VerifyBatchesTrustedAggregator event… %02d:%02d" $((s/60)) $((s%60)) - sleep 1 - done - printf "\r✓ done. \n" + # # live countdown for 3 minutes + # for ((s=180; s>0; s--)); do + # printf "\rWaiting 3 min to verify deployment - will execute VerifyBatchesTrustedAggregator event… %02d:%02d" $((s/60)) $((s%60)) + # sleep 1 + # done + # printf "\r✓ done. \n" - for n in 001 002 003; do - run_verification_in_container "contracts-$n" || true - done + # for n in 001 002 003 004; do + # run_verification_in_container "contracts-$n" || true + # done fi From 341413903c2b99bb91c4b0140e60e17f77b59d38 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Mon, 22 Sep 2025 06:33:44 +0000 Subject: [PATCH 15/39] initial commit attaching both opgeth and cdk stack kurtosis deployment --- .../.env | 8 - .../README.md | 2 +- .../assets/cdk-erigon-pp.yml | 72 ----- .../assets/cdk-erigon-rollup-003.yml | 69 ----- .../assets/cdk-erigon-rollup.yml | 69 ----- .../assets/cdk-opgeth-fep.yml | 105 -------- .../assets/cdk-opgeth-pp.yml | 101 ------- .../assets/erigon-rollup.yml | 15 ++ .../assets/erigon-sovereign.yml | 26 ++ ...rigon-validium.yml => erigon-validium.yml} | 10 +- .../assets/opgeth-ecdsa.yml | 35 +++ .../assets/opgeth-soverign.yml | 57 ++++ .../env.example | 1 - .../initial-cdk-erigon-rollup-003.yml | 38 --- .../initial-cdk-erigon-rollup.yml | 38 --- .../initial-cdk-erigon-validium.yml | 14 - .../initial-cdk-opgeth-fep.yml | 38 --- .../initial-cdk-opgeth-pp.yml | 37 --- .../run.sh | 246 ++++++++---------- 19 files changed, 251 insertions(+), 730 deletions(-) delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/.env delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml rename scenarios/agglayer-upgrade-with-supplied-version/assets/{cdk-erigon-validium.yml => erigon-validium.yml} (65%) create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml diff --git a/scenarios/agglayer-upgrade-with-supplied-version/.env b/scenarios/agglayer-upgrade-with-supplied-version/.env deleted file mode 100644 index 6d11f4153..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/.env +++ /dev/null @@ -1,8 +0,0 @@ -ENCLAVE_NAME=cdk -KURTOSIS_PACKAGE_HASH=8413b7a2026e02b24db7ecccf6a70f1c242df437 # Obinna commit -# KURTOSIS_PACKAGE_HASH=61e84fc62460673e1ca13b90407010688b763a9b # Latest commit -# KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default -SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key -FROM_TAG=0.3.4 -TO_TAG=0.3.5 - diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index 2c8c4570a..d346a1e72 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -4,7 +4,7 @@ This repo contains e2e test scenario to automate **Agglayer image upgrade and do It is designed to: -- Bootstrap multiple rollup flavors ( e.g 1 Validium and 2 Rollup ) into the **same Kurtosis enclave**. +- Bootstrap multiple rollup flavors ( e.g both opgeth and erigon stack ) into the **same Kurtosis enclave**. - Start Agglayer using a **FROM_TAG** version. - Upgrade Agglayer to a **TO_TAG** version. - Optionally downgrade back to the original **FROM_TAG** for validation. diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml deleted file mode 100644 index c16f97604..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-pp.yml +++ /dev/null @@ -1,72 +0,0 @@ -# This file has been generated automatically. -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_cdk_bridge_ui: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - deployment_suffix: "-003" - zkevm_rollup_chain_id: 30303 - zkevm_rollup_id: 3 - verbosity: debug - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - additional_services: [] - consensus_contract_type: pessimistic - sp1_prover_key: '' - agglayer_prover_primary_prover: mock-prover - erigon_strict_mode: false - gas_token_enabled: false - zkevm_use_real_verifier: false - enable_normalcy: true - agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - aggkit_components: aggsender,bridge - sequencer_type: erigon - cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.63.0-rc4 - - - # sequencer - zkevm_l2_sequencer_address: "0x0d59BC8C02A089D48d9Cd465b74Cb6E23dEB950D" - zkevm_l2_sequencer_private_key: "0xf6385a27e7710349617340c6f9310e88f0aad10d01646a9bb204177431babcd8" - - # aggregator - zkevm_l2_aggregator_address: "0x2D20D9081fb403E856355F2cddd1C4863D0109cb" - zkevm_l2_aggregator_private_key: "0x2cb77c2cca48d3fee64c14d73564fd6e90676a4f6da6545681e10c8b9b22fce2" - - # claimtxmanager - zkevm_l2_claimtxmanager_address: "0x1359D1eAf25aADaA04304Ee7EFC5b94C43e0e1D5" - zkevm_l2_claimtxmanager_private_key: "0xb0244fcbf83d7aaa2d51dc78a55233058af31797a974d25f724de041f3484418" - - # timelock - zkevm_l2_timelock_address: "0x7803E33388C695E7cbd85eD55f4abe6455E9ce2e" - zkevm_l2_timelock_private_key: "0xe12e739b58489a2c2f49c472169ba20eb89d039e71f04d5342ab645dc3fb6540" - - # admin - # zkevm_l2_admin_address: "0x5666Cc6B46ad32b469D9Aec7C1eE6d02f7312759" - # zkevm_l2_admin_private_key: "0xd2ee309113fc97bed6030201fea0d1234d6b4acbc47b9a4fe12a8fa5270052aa" - - # loadtest - zkevm_l2_loadtest_address: "0x5198d92d278Fd36e5745C308F728d256198A0e3d" - zkevm_l2_loadtest_private_key: "0xcc594c53eca19f9e56200cadf60c94757b0bdee1fc4bc73552ba879d51fd82b3" - - # agglayer - zkevm_l2_agglayer_address: "0x9b5A1f2bC7bb48419d9f6407CFcA454F87884072" - zkevm_l2_agglayer_private_key: "0x7b1164f53f633e940089031a3c265c308d2bcf4756bc8dcf9046bf00e21ec3b1" - - # dac - zkevm_l2_dac_address: "0xA9875E9B9FE3BD46da758ba69a5d4B9dFCA6F133" - zkevm_l2_dac_private_key: "0x5d1a923f60e2423932f782dab9510e1c2fd64b0f29b0893978864191ecdd6f4f" - - # proofsigner - zkevm_l2_proofsigner_address: "0x3AA075513578d86dC63f9344cD9489b948d7686a" - zkevm_l2_proofsigner_private_key: "0xfd402dcc8c7fc7ce0df59fe12f33da7ac2ed760a619188ff16974fde16f9b00e" - - # l1testing - zkevm_l2_l1testing_address: "0x943413d3b2E1B6aF09a758c35b6F5d23a4d6d262" - zkevm_l2_l1testing_private_key: "0x27d8ab2d65296d0da072b172ca9ca874583f9930adb6ac3222fd9494ae7c7f0d" - - # claimsponsor - zkevm_l2_claimsponsor_address: "0xeA06890A8A547aDd71f98A6845542eb3B63C2862" - zkevm_l2_claimsponsor_private_key: "0xb97112e36cfcde131faa110430eed6593b75406e5d6991d8db3ed0f492a73b6f" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml deleted file mode 100644 index 0d9eb4f12..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup-003.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This file has been generated automatically. -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_cdk_bridge_ui: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - verbosity: debug - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - additional_services: [] - consensus_contract_type: rollup - sequencer_type: erigon - agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - deployment_suffix: "-003" - zkevm_rollup_chain_id: 20203 - zkevm_rollup_id: 3 - - - - - - # polycli wallet inspect --mnemonic 'tennis coconut priority easy toward lava lake cigar address private visit purity' --addresses 11 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac,proofsigner,l1testing,claimsponsor",roles,",")} {print "# " roles[NR] "\nzkevm_l2_" roles[NR] "_address: " $1 ""; print "zkevm_l2_" roles[NR] "_private_key: 0x" $2 "\n"}' - - # sequencer - zkevm_l2_sequencer_address: "0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8" - zkevm_l2_sequencer_private_key: "0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3" - - # aggregator - zkevm_l2_aggregator_address: "0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286" - zkevm_l2_aggregator_private_key: "0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9" - - # claimtxmanager - zkevm_l2_claimtxmanager_address: "0x1a1C53bA714643B53b39D82409915b513349a1ff" - zkevm_l2_claimtxmanager_private_key: "0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676" - - # timelock - zkevm_l2_timelock_address: "0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82" - zkevm_l2_timelock_private_key: "0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3" - - # # admin - # zkevm_l2_admin_address: "0x78770Cc5Bd03F93B8B401Ea91B77DF544Deb2265" - # zkevm_l2_admin_private_key: "0x6048871542899ff1d8ef8e2efc8037115676b083f1fcc680b995f3bb9470bcf6" - - # loadtest - zkevm_l2_loadtest_address: "0x51406206342270c822b5d9dfb261279eEdF0Af20" - zkevm_l2_loadtest_private_key: "0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c" - - # agglayer - zkevm_l2_agglayer_address: "0xB8b680902bba8e04C78660D33a97a87E4CC4e797" - zkevm_l2_agglayer_private_key: "0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81" - - # dac - zkevm_l2_dac_address: "0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1" - zkevm_l2_dac_private_key: "0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47" - - # proofsigner - zkevm_l2_proofsigner_address: "0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3" - zkevm_l2_proofsigner_private_key: "0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b" - - # l1testing - zkevm_l2_l1testing_address: "0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D" - zkevm_l2_l1testing_private_key: "0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea" - - # claimsponsor - zkevm_l2_claimsponsor_address: "0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886" - zkevm_l2_claimsponsor_private_key: "0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml deleted file mode 100644 index 86d908e52..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-rollup.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This file has been generated automatically. -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_cdk_bridge_ui: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - verbosity: debug - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - additional_services: [] - consensus_contract_type: rollup - sequencer_type: erigon - agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - deployment_suffix: "-003" - zkevm_rollup_chain_id: 20202 - zkevm_rollup_id: 2 - - - - - - # polycli wallet inspect --mnemonic 'tennis coconut priority easy toward lava lake cigar address private visit purity' --addresses 11 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac,proofsigner,l1testing,claimsponsor",roles,",")} {print "# " roles[NR] "\nzkevm_l2_" roles[NR] "_address: " $1 ""; print "zkevm_l2_" roles[NR] "_private_key: 0x" $2 "\n"}' - - # sequencer - zkevm_l2_sequencer_address: "0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8" - zkevm_l2_sequencer_private_key: "0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3" - - # aggregator - zkevm_l2_aggregator_address: "0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286" - zkevm_l2_aggregator_private_key: "0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9" - - # claimtxmanager - zkevm_l2_claimtxmanager_address: "0x1a1C53bA714643B53b39D82409915b513349a1ff" - zkevm_l2_claimtxmanager_private_key: "0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676" - - # timelock - zkevm_l2_timelock_address: "0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82" - zkevm_l2_timelock_private_key: "0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3" - - # # admin - # zkevm_l2_admin_address: "0x78770Cc5Bd03F93B8B401Ea91B77DF544Deb2265" - # zkevm_l2_admin_private_key: "0x6048871542899ff1d8ef8e2efc8037115676b083f1fcc680b995f3bb9470bcf6" - - # loadtest - zkevm_l2_loadtest_address: "0x51406206342270c822b5d9dfb261279eEdF0Af20" - zkevm_l2_loadtest_private_key: "0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c" - - # agglayer - zkevm_l2_agglayer_address: "0xB8b680902bba8e04C78660D33a97a87E4CC4e797" - zkevm_l2_agglayer_private_key: "0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81" - - # dac - zkevm_l2_dac_address: "0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1" - zkevm_l2_dac_private_key: "0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47" - - # proofsigner - zkevm_l2_proofsigner_address: "0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3" - zkevm_l2_proofsigner_private_key: "0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b" - - # l1testing - zkevm_l2_l1testing_address: "0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D" - zkevm_l2_l1testing_private_key: "0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea" - - # claimsponsor - zkevm_l2_claimsponsor_address: "0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886" - zkevm_l2_claimsponsor_private_key: "0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a" \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml deleted file mode 100644 index e57f609d2..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-fep.yml +++ /dev/null @@ -1,105 +0,0 @@ -# # This args-file deploys the OP Succinct chain. -# deployment_stages: -# deploy_l1: false -# # deploy_op_succinct: true -# deploy_optimism_rollup: true - -# args: -# deployment_suffix: "-002" -# consensus_contract_type: pessimistic -# # Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet. -# # A mock verifier is used otherwise. -# op_succinct_mock: true -# # Enable the integration with the Agglayer -# op_succinct_agglayer: true -# # Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core" -# op_succinct_agg_proof_mode: "compressed" -# # The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval. -# op_succinct_submission_interval: "1" -# # The maximum number of concurrent proof requests to send to the `op-succinct-server` -# op_succinct_max_concurrent_proof_requests: "1" -# # The maximum number of concurrent witness generation processes to run on the `op-succinct-server` -# op_succinct_max_concurrent_witness_gen: "1" -# # Size of the range proof. -# op_succinct_range_proof_interval: "60" - -# op_el_rpc_url: "http://op-el-1-op-geth-op-node-001:8545" -# # OP Stack CL Node URL. Will be dynamically updated by args_sanity_check(). -# op_cl_rpc_url: "http://op-cl-1-op-node-op-geth-001:8547" - -# # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. -# # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. -# # Note this will noticeably increase the deployment time because of the increased L1 finality. -# l1_seconds_per_slot: 2 # TEMPORARY - DO NOT MERGE - -# optimism_package: -# chains: -# - proposer_params: -# enabled: false -# challenger_params: -# enabled: false -# network_params: -# name: "002" -# network_id: "2151908" -# seconds_per_slot: 1 -# observability: -# enabled: false - -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_optimism_rollup: true -args: - zkevm_rollup_chain_id: 2151909 - deployment_suffix: "-002" - zkevm_rollup_id: 2 - consensus_contract_type: pessimistic - # OP Stack EL RPC URL. Will be dynamically updated by args_sanity_check(). - op_el_rpc_url: "http://op-el-1-op-geth-op-node-001:8545" - # OP Stack CL Node URL. Will be dynamically updated by args_sanity_check(). - op_cl_rpc_url: "http://op-cl-1-op-node-op-geth-001:8547" - # Arbitrary key for the SP1 prover. Replace with a valid SPN key if you want to use the network provers. - # cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete" - # NOTE: for sp1 early version the network prover key not support '0x' prefix - sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" - # Valid values are: "network-prover", "mock-prover" - agglayer_prover_primary_prover: "mock-prover" - # Valid values are: "network-prover", "mock-prover" - aggkit_prover_primary_prover: "mock-prover" - - # zkevm_l2_aggoracle_address: "0x8F43d25C7aA610A762AC59670b5FFf010a21DB5F" - # zkevm_l2_aggoracle_private_key: "0x781a3735faba4bf257f3d97b641f66e29a3a89d74178eaeac2e44614b2e066a5" - # zkevm_l2_sovereignadmin_address: "0x4C9fC4485ca332eAA1B0f621E6e7B5A1c336d3eE" - # zkevm_l2_sovereignadmin_private_key: "0x719f7a806a2d34f22ed95b460e4fd2d983837e8f63980125adc809eab60151c1" - # op_succinct_max_concurrent_proof_requests: "1" - # op_succinct_max_concurrent_witness_gen: "1" - # op_succinct_agg_proof_mode: "compressed" - # op_succinct_range_proof_interval: "1800" - -optimism_package: - # We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235 - # "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90", - source: "github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce" - predeployed_contracts: true - chains: - - participants: - - el_type: op-geth - el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03" - cl_type: op-node - cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d" - count: 1 - batcher_params: - image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3" - proposer_params: - image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825" - network_params: - name: "002" - network_id: "2151909" - seconds_per_slot: 1 - op_contract_deployer_params: - # image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12" - image: "xavierromero/op-deployer:20250314" - l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" - l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" - observability: - enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml deleted file mode 100644 index 8c785d948..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-opgeth-pp.yml +++ /dev/null @@ -1,101 +0,0 @@ -# # This args-file deploys the OP Succinct chain. -# deployment_stages: -# # deploy_optimism_rollup: true -# deploy_op_succinct: true -# deploy_agglayer: true -# args: -# sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" # XXX: Replace with an active key -# # Valid values are: "network-prover", "mock-prover" -# agglayer_prover_primary_prover: "network-prover" -# # Valid values are: "network-prover", "mock-prover" -# aggkit_prover_primary_prover: "network-prover" -# consensus_contract_type: pessimistic -# # aggkit_prover_image: "ghcr.io/agglayer/aggkit-prover:feat-rust-proposer" -# # false = network -# # Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet. -# # A mock verifier is used otherwise. -# op_succinct_mock: false -# # Enable real (non-mock) verifier on contracts -# zkevm_use_real_verifier: true -# # Enable the integration with the Agglayer -# op_succinct_agglayer: true -# # Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core" -# op_succinct_agg_proof_mode: "compressed" -# # The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval. -# op_succinct_submission_interval: "1" -# # The maximum number of concurrent proof requests to send to the `op-succinct-server` -# op_succinct_max_concurrent_proof_requests: "1" -# # The maximum number of concurrent witness generation processes to run on the `op-succinct-server` -# op_succinct_max_concurrent_witness_gen: "1" -# # Must match network_id field in network_params.network_id -# # zkevm_rollup_chain_id: 2151908 -# # The number following the "-" should be identical to network_params.name -# deployment_suffix: "-001" -# zkevm_rollup_id: 1 -# # Size of the range proof. -# op_succinct_range_proof_interval: "1800" -# # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. -# # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. -# # Note this will noticeably increase the deployment time because of the increased L1 finality. -# l1_seconds_per_slot: 12 - -# optimism_package: -# observability: -# enabled: true - -deployment_stages: - deploy_l1: true - deploy_agglayer: true - deploy_optimism_rollup: true - -args: - l1_custom_genesis: true - zkevm_rollup_chain_id: 2151909 - deployment_suffix: "-001" - zkevm_rollup_id: 2 - consensus_contract_type: pessimistic - # OP Stack EL RPC URL. Will be dynamically updated by args_sanity_check(). - # op_el_rpc_url: "http://op-el-1-op-geth-op-node-002:8545" - # OP Stack CL Node URL. Will be dynamically updated by args_sanity_check(). - # op_cl_rpc_url: "http://op-cl-1-op-node-op-geth-002:8547" - # Arbitrary key for the SP1 prover. Replace with a valid SPN key if you want to use the network provers. - # cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete" - # NOTE: for sp1 early version the network prover key not support '0x' prefix - sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" - # Valid values are: "network-prover", "mock-prover" - agglayer_prover_primary_prover: "mock-prover" - # Valid values are: "network-prover", "mock-prover" - aggkit_prover_primary_prover: "mock-prover" - - # zkevm_l2_aggoracle_address: "0x8F43d25C7aA610A762AC59670b5FFf010a21DB5F" - # zkevm_l2_aggoracle_private_key: "0x781a3735faba4bf257f3d97b641f66e29a3a89d74178eaeac2e44614b2e066a5" - # zkevm_l2_sovereignadmin_address: "0x4C9fC4485ca332eAA1B0f621E6e7B5A1c336d3eE" - # zkevm_l2_sovereignadmin_private_key: "0x719f7a806a2d34f22ed95b460e4fd2d983837e8f63980125adc809eab60151c1" - -optimism_package: - # We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235 - # "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90", - source: "github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce" - predeployed_contracts: true - chains: - - participants: - - el_type: op-geth - el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03" - cl_type: op-node - cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d" - count: 1 - batcher_params: - image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3" - proposer_params: - image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825" - network_params: - name: "001" - network_id: "2151909" - seconds_per_slot: 1 - op_contract_deployer_params: - # image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12" - image: "xavierromero/op-deployer:20250314" - l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" - l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz" - observability: - enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml new file mode 100644 index 000000000..d9627f630 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml @@ -0,0 +1,15 @@ +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false + +args: + sequencer_type: erigon + consensus_contract_type: rollup + zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + deployment_suffix: "-004" + zkevm_rollup_chain_id: 2151911 + zkevm_rollup_id: 4 + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml new file mode 100644 index 000000000..e6e0326cf --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml @@ -0,0 +1,26 @@ +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_l2_contracts: true + deploy_optimism_rollup: false + deploy_op_succinct: false + +args: + sequencer_type: erigon + consensus_contract_type: pessimistic + + aggkit_image: ghcr.io/agglayer/aggkit:0.5.0-beta4 + zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 + cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.63.0-rc4 + + sp1_prover_key: "" + agglayer_prover_primary_prover: mock-prover + erigon_strict_mode: false + gas_token_enabled: false + zkevm_use_real_verifier: false + enable_normalcy: true + aggkit_components: aggsender,bridge + + zkevm_rollup_chain_id: 2151910 + deployment_suffix: "-003" + zkevm_rollup_id: 3 \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml similarity index 65% rename from scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml rename to scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml index cb7591956..89137fa07 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/cdk-erigon-validium.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml @@ -1,17 +1,21 @@ deployment_stages: + deploy_l1: false + deploy_agglayer: false deploy_l2_contracts: true deploy_optimism_rollup: false deploy_op_succinct: false args: verbosity: debug - deployment_suffix: "-001" - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 + zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 consensus_contract_type: cdk_validium additional_services: [] sequencer_type: erigon agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - # l1_rpc_url: "http://op-el-1-op-geth-op-node-001:8545" + + zkevm_rollup_chain_id: 2151912 + deployment_suffix: "-005" + zkevm_rollup_id: 5 diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml new file mode 100644 index 000000000..64116e704 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml @@ -0,0 +1,35 @@ +# This args-file deploys the OP Succinct chain. +deployment_stages: + deploy_l1: false + deploy_agglayer: false + deploy_op_succinct: false + +args: + aggkit_image: "ghcr.io/agglayer/aggkit:0.7.0-beta3" # https://github.com/agglayer/aggkit/tree/v0.7.0-beta3 + # Agghcain ecdsa_multisig consensus. + consensus_contract_type: ecdsa_multisig + use_agg_sender_validator: True + # The below parameter will be used for aggsender multisig to have "agg_sender_validator_total_number" aggsender validators. + agg_sender_validator_total_number: 1 + agg_sender_multisig_threshold: 1 + zkevm_rollup_chain_id: 2151909 + deployment_suffix: "-002" + zkevm_rollup_id: 2 + # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. + # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. + # Note this will noticeably increase the deployment time because of the increased L1 finality. + l1_seconds_per_slot: 2 # TEMPORARY - DO NOT MERGE + +optimism_package: + chains: + - proposer_params: + enabled: false + challenger_params: + enabled: false + network_params: + name: "002" + network_id: "2151909" + seconds_per_slot: 1 + observability: + enabled: false + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml new file mode 100644 index 000000000..0f11283f1 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml @@ -0,0 +1,57 @@ +# This args-file deploys the OP Succinct chain. +deployment_stages: + deploy_optimism_rollup: true + # deploy_op_succinct: true + deploy_agglayer: true +args: + sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" # XXX: Replace with an active key + # Valid values are: "network-prover", "mock-prover" + agglayer_prover_primary_prover: "network-prover" + # Valid values are: "network-prover", "mock-prover" + aggkit_prover_primary_prover: "network-prover" + consensus_contract_type: pessimistic + # aggkit_prover_image: "ghcr.io/agglayer/aggkit-prover:feat-rust-proposer" + # false = network + # Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet. + # A mock verifier is used otherwise. + op_succinct_mock: false + # Enable real (non-mock) verifier on contracts + zkevm_use_real_verifier: true + # Enable the integration with the Agglayer + op_succinct_agglayer: true + # Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core" + op_succinct_agg_proof_mode: "compressed" + # The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval. + op_succinct_submission_interval: "1" + # The maximum number of concurrent proof requests to send to the `op-succinct-server` + op_succinct_max_concurrent_proof_requests: "1" + # The maximum number of concurrent witness generation processes to run on the `op-succinct-server` + op_succinct_max_concurrent_witness_gen: "1" + # Must match network_id field in network_params.network_id + # The number following the "-" should be identical to network_params.name + deployment_suffix: "-001" + zkevm_rollup_id: 1 + zkevm_rollup_chain_id: 2151908 + # Size of the range proof. + op_succinct_range_proof_interval: "1800" + # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. + # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. + # Note this will noticeably increase the deployment time because of the increased L1 finality. + l1_seconds_per_slot: 12 + +optimism_package: + chains: + - proposer_params: + enabled: false + challenger_params: + enabled: false + network_params: + name: "001" + network_id: "2151908" + seconds_per_slot: 1 + observability: + enabled: true + +# optimism_package: +# observability: +# enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/env.example b/scenarios/agglayer-upgrade-with-supplied-version/env.example index dd85d7f53..ec4da5888 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/env.example +++ b/scenarios/agglayer-upgrade-with-supplied-version/env.example @@ -1,6 +1,5 @@ ENCLAVE_NAME=cdk KURTOSIS_PACKAGE_HASH=be8cab2e9ed799ab91319fee0f488fab04a393ac # Latest commit -# KURTOSIS_PACKAGE_HASH=e05e8cdcfee52a106ec6850b8956b77171cdd948 # Kurtosis tag v0.3.4 + v9.0.0-rc.2-pp contracts + CDK-Erigon Validium by default SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key FROM_TAG=0.3.5 TO_TAG=0.3.4 \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml deleted file mode 100644 index 3e1734bd8..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup-003.yml +++ /dev/null @@ -1,38 +0,0 @@ -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_cdk_bridge_ui: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - verbosity: debug - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - additional_services: [] - consensus_contract_type: rollup - sequencer_type: erigon - agglayer_prover_sp1_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' - deployment_suffix: '-003' - zkevm_rollup_chain_id: 20203 - zkevm_rollup_id: 3 - zkevm_l2_sequencer_address: '0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8' - zkevm_l2_sequencer_private_key: '0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3' - zkevm_l2_aggregator_address: '0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286' - zkevm_l2_aggregator_private_key: '0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9' - zkevm_l2_claimtxmanager_address: '0x1a1C53bA714643B53b39D82409915b513349a1ff' - zkevm_l2_claimtxmanager_private_key: '0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676' - zkevm_l2_timelock_address: '0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82' - zkevm_l2_timelock_private_key: '0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3' - zkevm_l2_loadtest_address: '0x51406206342270c822b5d9dfb261279eEdF0Af20' - zkevm_l2_loadtest_private_key: '0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c' - zkevm_l2_agglayer_address: '0xB8b680902bba8e04C78660D33a97a87E4CC4e797' - zkevm_l2_agglayer_private_key: '0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81' - zkevm_l2_dac_address: '0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1' - zkevm_l2_dac_private_key: '0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47' - zkevm_l2_proofsigner_address: '0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3' - zkevm_l2_proofsigner_private_key: '0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b' - zkevm_l2_l1testing_address: '0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D' - zkevm_l2_l1testing_private_key: '0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea' - zkevm_l2_claimsponsor_address: '0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886' - zkevm_l2_claimsponsor_private_key: '0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a' diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml deleted file mode 100644 index 8111d32d4..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-rollup.yml +++ /dev/null @@ -1,38 +0,0 @@ -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_cdk_bridge_ui: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - verbosity: debug - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - additional_services: [] - consensus_contract_type: rollup - sequencer_type: erigon - agglayer_prover_sp1_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' - deployment_suffix: '-003' - zkevm_rollup_chain_id: 20202 - zkevm_rollup_id: 2 - zkevm_l2_sequencer_address: '0x3bd49B59d0d61e83FA5C7856312b9bfEddbCbDA8' - zkevm_l2_sequencer_private_key: '0xf1b0412da5d68afa81e8301d93c56b125ee764e2fab4e919afb81ae14babc5e3' - zkevm_l2_aggregator_address: '0x3BAEE05bd44f4Ee84709C7Df6861A3528f4c8286' - zkevm_l2_aggregator_private_key: '0x8bcbeae7253c993102e8269f2b48639a832095e0a0235b609472b7b9286290b9' - zkevm_l2_claimtxmanager_address: '0x1a1C53bA714643B53b39D82409915b513349a1ff' - zkevm_l2_claimtxmanager_private_key: '0xcc8de19498a724ec38c7c774d447a51e629ee947ec360f16913ab3000f5ad676' - zkevm_l2_timelock_address: '0xb2BCBC707c88f1a41d3DBb982b9A8996cA83Df82' - zkevm_l2_timelock_private_key: '0xfbfd097f603d5ed2f1bf79a756d021e8c2a1771bb13ea42a36f534ac731739d3' - zkevm_l2_loadtest_address: '0x51406206342270c822b5d9dfb261279eEdF0Af20' - zkevm_l2_loadtest_private_key: '0x72e05c95e8c0b0380c1353dbfd50d1d8a762861ac008b8c270963f81abf4304c' - zkevm_l2_agglayer_address: '0xB8b680902bba8e04C78660D33a97a87E4CC4e797' - zkevm_l2_agglayer_private_key: '0x6fadecf5f47e84428042d36ecbfb1d05c587d658cb0d66e10151561e74340e81' - zkevm_l2_dac_address: '0x64a19B5D36664fa68dc8bAC6574A5B272F08ACc1' - zkevm_l2_dac_private_key: '0x29506f6abfd8ff62b29af422c4a0af1dbc989d7154220da916e565c8cc04ce47' - zkevm_l2_proofsigner_address: '0xD3F0C080A75f537B361A3Eadf24EE5d6F72a15B3' - zkevm_l2_proofsigner_private_key: '0x89ac1075d2f7c27ba296fb4d625b0e10f272f8f7fa96320f7f0832a41b18e54b' - zkevm_l2_l1testing_address: '0xcd9Ac30C72a8757F446F814aFfbc32847c2CD17D' - zkevm_l2_l1testing_private_key: '0xbdbfded25015702c72558c5a3cea747713734d3535fe832b4cd4f1bb882977ea' - zkevm_l2_claimsponsor_address: '0xB2c5d585cc8c1f9FC51035941CFdA42DB83E9886' - zkevm_l2_claimsponsor_private_key: '0x4c545e05d1e85a36d316b92a4de4588c60fe3c5dbb2c235306d1ce4e439b751a' diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml deleted file mode 100644 index a77a0ad05..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-erigon-validium.yml +++ /dev/null @@ -1,14 +0,0 @@ -deployment_stages: - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - verbosity: debug - deployment_suffix: '-001' - agglayer_contracts_image: europe-west2-docker.pkg.dev/prj-polygonlabs-devtools-dev/public/zkevm-contracts:v8.1.0-rc.2-fork.13 - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - consensus_contract_type: cdk_validium - additional_services: [] - sequencer_type: erigon - agglayer_prover_sp1_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' - agglayer_image: ghcr.io/agglayer/agglayer:0.3.4 diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml deleted file mode 100644 index bf9b52f7b..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-fep.yml +++ /dev/null @@ -1,38 +0,0 @@ -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_optimism_rollup: true -args: - zkevm_rollup_chain_id: 2151909 - deployment_suffix: '-002' - zkevm_rollup_id: 2 - consensus_contract_type: pessimistic - op_el_rpc_url: http://op-el-1-op-geth-op-node-001:8545 - op_cl_rpc_url: http://op-cl-1-op-node-op-geth-001:8547 - sp1_prover_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' - agglayer_prover_primary_prover: mock-prover - aggkit_prover_primary_prover: mock-prover -optimism_package: - source: github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce - predeployed_contracts: true - chains: - - participants: - - el_type: op-geth - el_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03 - cl_type: op-node - cl_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d - count: 1 - batcher_params: - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3 - proposer_params: - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825 - network_params: - name: '002' - network_id: '2151909' - seconds_per_slot: 1 - op_contract_deployer_params: - image: xavierromero/op-deployer:20250314 - l1_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz - l2_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz - observability: - enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml b/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml deleted file mode 100644 index 4b36ffa89..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/initial-cdk-opgeth-pp.yml +++ /dev/null @@ -1,37 +0,0 @@ -deployment_stages: - deploy_l1: true - deploy_agglayer: true - deploy_optimism_rollup: true -args: - l1_custom_genesis: true - zkevm_rollup_chain_id: 2151909 - deployment_suffix: '-001' - zkevm_rollup_id: 2 - consensus_contract_type: pessimistic - sp1_prover_key: '0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8' - agglayer_prover_primary_prover: mock-prover - aggkit_prover_primary_prover: mock-prover -optimism_package: - source: github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce - predeployed_contracts: true - chains: - - participants: - - el_type: op-geth - el_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03 - cl_type: op-node - cl_image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d - count: 1 - batcher_params: - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3 - proposer_params: - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825 - network_params: - name: '001' - network_id: '2151909' - seconds_per_slot: 1 - op_contract_deployer_params: - image: xavierromero/op-deployer:20250314 - l1_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz - l2_artifacts_locator: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz - observability: - enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index b7ecfe3e1..6bc4bd513 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -11,9 +11,11 @@ add_rollup_rpc_to_agglayer() { kurtosis service exec cdk agglayer ' set -eu file=/etc/zkevm/agglayer-config.toml - if ! grep -q "2 = http://cdk-erigon-rpc-002:8123" "$file"; then - sed -i "/1 = \"http:\/\/cdk-erigon-rpc-001:8123\"/a 2 = \"http://cdk-erigon-rpc-002:8123\"" "$file" - sed -i "/2 = \"http:\/\/cdk-erigon-rpc-002:8123\"/a 3 = \"http://cdk-erigon-rpc-003:8123\"" "$file" + if ! grep -q "2 = http://op-el-1-op-geth-op-node-002:8545" "$file"; then + sed -i "/1 = \"http:\/\/op-el-1-op-geth-op-node-001:8545\"/a 2 = \"http://op-el-1-op-geth-op-node-002:8545\"" "$file" + sed -i "/2 = \"http:\/\/op-el-1-op-geth-op-node-002:8545\"/a 3 = \"http://cdk-erigon-rpc-003:8123\"" "$file" + sed -i "/3 = \"http:\/\/cdk-erigon-rpc-003:8123\"/a 4 = \"http://cdk-erigon-rpc-004:8123\"" "$file" + sed -i "/4 = \"http:\/\/cdk-erigon-rpc-004:8123\"/a 5 = \"http://cdk-erigon-rpc-005:8123\"" "$file" fi ' @@ -188,30 +190,34 @@ echo ":-action:= $ACTION" -# Create a yml files with a real SP1 keys if needed -yq -y --arg sp1key "$SP1_NETWORK_KEY" --arg newImage "$FROM_IMAGE" ' - .args.agglayer_prover_sp1_key = $sp1key | - .args.agglayer_image = $newImage -' ./assets/cdk-erigon-validium.yml > initial-cdk-erigon-validium.yml + + + yq -y --arg sp1key "$SP1_NETWORK_KEY" ' .args.agglayer_prover_sp1_key = $sp1key -' ./assets/cdk-erigon-rollup.yml > initial-cdk-erigon-rollup.yml - +' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml yq -y --arg sp1key "$SP1_NETWORK_KEY" ' .args.agglayer_prover_sp1_key = $sp1key -' ./assets/cdk-erigon-rollup-003.yml > initial-cdk-erigon-rollup-003.yml +' ./assets/opgeth-ecdsa.yml > initial-opgeth-ecdsa.yml yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.agglayer_prover_sp1_key = $sp1key | .args.sp1_prover_key = $sp1key -' ./assets/cdk-opgeth-fep.yml > initial-cdk-opgeth-fep.yml +' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.sp1_prover_key = $sp1key -' ./assets/cdk-opgeth-pp.yml > initial-cdk-opgeth-pp.yml +.args.agglayer_prover_sp1_key = $sp1key +' ./assets/erigon-rollup.yml > initial-erigon-rollup.yml + +yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +.args.agglayer_prover_sp1_key = $sp1key +' ./assets/erigon-validium.yml > initial-erigon-validium.yml + + # checks if the user is requesting for downgrade @@ -267,179 +273,147 @@ if [[ "$ACTION" == "downgrade" ]]; then else - # echo '╔═════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K - O P G E T H P P - R O L L U P ║' - # echo '╚═════════════════════════════════════════════════════════════════════════════╝' - - - # kurtosis run \ - # --enclave "$KURTOSIS_ENCLAVE_NAME" \ - # --args-file ./initial-cdk-opgeth-pp.yml \ - # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - - - # echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K - O P G E T H P P - R O L L U P S U C C E S S F U L L ║' - # echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - - - # echo '╔═════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K - O P G E T H - R O L L U P T W O ║' - # echo '╚═════════════════════════════════════════════════════════════════════════════╝' - - - # kurtosis run \ - # --enclave "$KURTOSIS_ENCLAVE_NAME" \ - # --args-file ./initial-cdk-opgeth-fep.yml \ - # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - - - # echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K - O P G E T H F E P - R O L L U P S U C C E S S F U L L ║' - # echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' - - - echo '╔═══════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M ║' - echo '╚═══════════════════════════════════════════════════════════════╝' + echo '╔═════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K - O P G E T H P E R S S I M I S T I C ║' + echo '╚═════════════════════════════════════════════════════════════════════════════╝' - # sleep 60 kurtosis run \ --enclave "$KURTOSIS_ENCLAVE_NAME" \ - --args-file ./initial-cdk-erigon-validium.yml \ - "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - + --args-file ./initial-opgeth-soverign.yml \ + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + - echo '╔══════════════════════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K E R I G O N V A L I D I U M S U C C E S S F U L L ║' - echo '╚══════════════════════════════════════════════════════════════════════════════════════════════╝' - # echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' - # echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' - # echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' + + echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ R U N N I N G U P G R A D E F O R A G G L A Y E R F R O M S U P L I E D T A G ║' + echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════╝' - # echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" - # # 1. Create a temporary file to hold the config json of the current kurtosis base image - # FROM_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R F R O M I M A G E: $FROM_IMAGE ============" + # 1. Create a temporary file to hold the config json of the current kurtosis base image + FROM_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - # # 2. Dump the inspected JSON, update the image, and save to the temp file - # kurtosis service inspect cdk agglayer --output json \ - # | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_IMAGE_SERVICE_CONFIG_FILE" + # 2. Dump the inspected JSON, update the image, and save to the temp file + kurtosis service inspect cdk agglayer --output json \ + | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_IMAGE_SERVICE_CONFIG_FILE" - # echo "$FROM_IMAGE_SERVICE_CONFIG_FILE" - # cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" + echo "$FROM_IMAGE_SERVICE_CONFIG_FILE" + cat "$FROM_IMAGE_SERVICE_CONFIG_FILE" - # kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer - # kurtosis service add cdk agglayer --json-service-config "$FROM_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer + kurtosis service add cdk agglayer --json-service-config "$FROM_IMAGE_SERVICE_CONFIG_FILE" - # rm "$FROM_IMAGE_SERVICE_CONFIG_FILE" + rm "$FROM_IMAGE_SERVICE_CONFIG_FILE" - # FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - # echo "AGGLAYER - PROVER CONFIG JSON" - # kurtosis service inspect cdk agglayer-prover --output json \ - # | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - # kurtosis service add cdk agglayer-prover --json-service-config "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - # rm "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + echo "AGGLAYER - PROVER CONFIG JSON" + kurtosis service inspect cdk agglayer-prover --output json \ + | jq --arg img "$FROM_IMAGE" '.image = $img' > "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service add cdk agglayer-prover --json-service-config "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" + rm "$FROM_PROVER_IMAGE_SERVICE_CONFIG_FILE" - # echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" - # # 1. Create a temporary file to hold the config json of the current service - # TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + echo "==================== R U N N I N G K U R T O S I S W I T H A G G L A Y E R T O I M A G E: $TO_IMAGE =================" + # 1. Create a temporary file to hold the config json of the current service + TO_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - # # 2. Dump the inspected JSON, update the image, and save to the temp file - # kurtosis service inspect cdk agglayer --output json \ - # | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" + # 2. Dump the inspected JSON, update the image, and save to the temp file + kurtosis service inspect cdk agglayer --output json \ + | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_IMAGE_SERVICE_CONFIG_FILE" - # echo "$TO_IMAGE_SERVICE_CONFIG_FILE" - # cat "$TO_IMAGE_SERVICE_CONFIG_FILE" + echo "$TO_IMAGE_SERVICE_CONFIG_FILE" + cat "$TO_IMAGE_SERVICE_CONFIG_FILE" - # kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer - # kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service rm "$KURTOSIS_ENCLAVE_NAME" agglayer + kurtosis service add cdk agglayer --json-service-config "$TO_IMAGE_SERVICE_CONFIG_FILE" - # rm "$TO_IMAGE_SERVICE_CONFIG_FILE" + rm "$TO_IMAGE_SERVICE_CONFIG_FILE" - # TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) - # kurtosis service inspect cdk agglayer-prover --output json \ - # | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - # kurtosis service add cdk agglayer-prover --json-service-config "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - # rm "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + TO_PROVER_IMAGE_SERVICE_CONFIG_FILE=$(mktemp) + kurtosis service inspect cdk agglayer-prover --output json \ + | jq --arg img "$TO_IMAGE" '.image = $img' > "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + kurtosis service add cdk agglayer-prover --json-service-config "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" + rm "$TO_PROVER_IMAGE_SERVICE_CONFIG_FILE" - # echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $TO_TAG " - # echo "========================================================================================================================" - # kurtosis service inspect cdk agglayer --output json - # echo "========================================================================================================================" + echo "C O N F I R M I N G R U N N I N G A G G L A Y E R F R O M S U P P L I E D B A S E V E R S I O N: $TO_TAG " + echo "========================================================================================================================" + kurtosis service inspect cdk agglayer --output json + echo "========================================================================================================================" - # echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════╗' - # echo '║ U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L ║' - # echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - + echo '╔══════════════════════════════════════════════════════════════════════════════════════════════════════════╗' + echo '║ U P G R A D I N G A G G L A Y E R T O T A R G E T V E R S I O N S U C C E S S F U L L ║' + echo '╚══════════════════════════════════════════════════════════════════════════════════════════════════════════╝' - - # echo '╔═════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T W O ║' - # echo '╚═════════════════════════════════════════════════════════════════════════╝' + echo '╔═════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K - O P G E T H E C D S A ║' + echo '╚═════════════════════════════════════════════════════════════════════════════╝' - # kurtosis run \ - # --enclave "$KURTOSIS_ENCLAVE_NAME" \ - # --args-file ./initial-cdk-erigon-rollup.yml \ - # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - - + kurtosis run \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ + --args-file ./initial-opgeth-ecdsa.yml \ + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - # echo '╔═════════════════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P S U C C E S S F U L L ║' - # echo '╚═════════════════════════════════════════════════════════════════════════════════════════╝' - + echo '╔═════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K - E R I G O N S O V E R E I G N ║' + echo '╚═════════════════════════════════════════════════════════════════════════════╝' - # echo '╔═════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E ║' - # echo '╚═════════════════════════════════════════════════════════════════════════════╝' + kurtosis run \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ + --args-file ./initial-erigon-sovereign.yml \ + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - # kurtosis run \ - # --enclave "$KURTOSIS_ENCLAVE_NAME" \ - # --args-file ./initial-cdk-erigon-rollup-003.yml \ - # "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - + echo '╔═════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K - E R I G O N R O L L U P ║' + echo '╚═════════════════════════════════════════════════════════════════════════════╝' - # echo '╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗' - # echo '║ A T T A C H I N G C D K E R I G O N R O L L U P T H R E E S U C C E S S F U L L ║' - # echo '╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝' + kurtosis run \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ + --args-file ./initial-erigon-rollup.yml \ + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + echo '╔═════════════════════════════════════════════════════════════════════════════╗' + echo '║ A T T A C H I N G C D K - E R I G O N V A L I D I U M ║' + echo '╚═════════════════════════════════════════════════════════════════════════════╝' + kurtosis run \ + --enclave "$KURTOSIS_ENCLAVE_NAME" \ + --args-file ./initial-erigon-validium.yml \ + "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" + - # echo "Modifying agglayer configuration to include new rollup" - # add_rollup_rpc_to_agglayer + echo "Modifying agglayer configuration to include new rollup" + add_rollup_rpc_to_agglayer - # # live countdown for 3 minutes - # for ((s=180; s>0; s--)); do - # printf "\rWaiting 3 min to verify deployment - will execute VerifyBatchesTrustedAggregator event… %02d:%02d" $((s/60)) $((s%60)) - # sleep 1 - # done - # printf "\r✓ done. \n" + # live countdown for 3 minutes + for ((s=180; s>0; s--)); do + printf "\rWaiting 3 min to verify deployment - will execute VerifyBatchesTrustedAggregator event… %02d:%02d" $((s/60)) $((s%60)) + sleep 1 + done + printf "\r✓ done. \n" - # for n in 001 002 003 004; do - # run_verification_in_container "contracts-$n" || true - # done + for n in 001 002 003 004 005; do + run_verification_in_container "contracts-$n" || true + done fi From 7af290b5c9b0e2c51b11effbbce449040f369266 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Wed, 24 Sep 2025 06:59:56 +0000 Subject: [PATCH 16/39] fixed issue with errors on aggkit --- .../assets/erigon-rollup.yml | 15 -- .../assets/erigon-validium.yml | 21 -- .../assets/opgeth-ecdsa.yml | 1 - .../assets/opgeth-soverign.yml | 9 +- .../logs/contracts-001.log. | 219 ++++++++++++++++++ .../logs/contracts-002.log. | 219 ++++++++++++++++++ .../logs/contracts-003.log. | 128 ++++++++++ .../run.sh | 41 +--- 8 files changed, 575 insertions(+), 78 deletions(-) delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. create mode 100644 scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml deleted file mode 100644 index d9627f630..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-rollup.yml +++ /dev/null @@ -1,15 +0,0 @@ -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false - -args: - sequencer_type: erigon - consensus_contract_type: rollup - zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 - deployment_suffix: "-004" - zkevm_rollup_chain_id: 2151911 - zkevm_rollup_id: 4 - diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml deleted file mode 100644 index 89137fa07..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-validium.yml +++ /dev/null @@ -1,21 +0,0 @@ -deployment_stages: - deploy_l1: false - deploy_agglayer: false - deploy_l2_contracts: true - deploy_optimism_rollup: false - deploy_op_succinct: false -args: - verbosity: debug - - zkevm_prover_image: hermeznetwork/zkevm-prover:v9.0.0-RC3-fork.13 - consensus_contract_type: cdk_validium - additional_services: [] - sequencer_type: erigon - agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key - - - - zkevm_rollup_chain_id: 2151912 - deployment_suffix: "-005" - zkevm_rollup_id: 5 - diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml index 64116e704..270974aea 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml @@ -32,4 +32,3 @@ optimism_package: seconds_per_slot: 1 observability: enabled: false - diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml index 0f11283f1..ceb3bfca5 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-soverign.yml @@ -6,9 +6,9 @@ deployment_stages: args: sp1_prover_key: "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" # XXX: Replace with an active key # Valid values are: "network-prover", "mock-prover" - agglayer_prover_primary_prover: "network-prover" + agglayer_prover_primary_prover: "mock-prover" # Valid values are: "network-prover", "mock-prover" - aggkit_prover_primary_prover: "network-prover" + aggkit_prover_primary_prover: "mock-prover" consensus_contract_type: pessimistic # aggkit_prover_image: "ghcr.io/agglayer/aggkit-prover:feat-rust-proposer" # false = network @@ -16,7 +16,7 @@ args: # A mock verifier is used otherwise. op_succinct_mock: false # Enable real (non-mock) verifier on contracts - zkevm_use_real_verifier: true + zkevm_use_real_verifier: false # Enable the integration with the Agglayer op_succinct_agglayer: true # Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core" @@ -31,7 +31,7 @@ args: # The number following the "-" should be identical to network_params.name deployment_suffix: "-001" zkevm_rollup_id: 1 - zkevm_rollup_chain_id: 2151908 + zkevm_rollup_chain_id: 2151908 # Size of the range proof. op_succinct_range_proof_interval: "1800" # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. @@ -51,7 +51,6 @@ optimism_package: seconds_per_slot: 1 observability: enabled: true - # optimism_package: # observability: # enabled: true diff --git a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. new file mode 100644 index 000000000..60febfa4b --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. @@ -0,0 +1,219 @@ +---- 2025-09-22T16:27:58+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--db63b5fb0c7143f0b1085adbb5b9f74b +Copying ./check_verification.sh -> contracts-001--db63b5fb0c7143f0b1085adbb5b9f74b:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T16:27:58+00:00 END contracts-001 rc=2 ---- +---- 2025-09-22T17:12:41+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--34cd99c2e8ed4054836bdeba22b9e395 +Copying ./check_verification.sh -> contracts-001--34cd99c2e8ed4054836bdeba22b9e395:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T17:12:41+00:00 END contracts-001 rc=2 ---- +---- 2025-09-22T18:36:21+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--e4f9ff698b4441519ded2cf6f4a403f4 +Copying ./check_verification.sh -> contracts-001--e4f9ff698b4441519ded2cf6f4a403f4:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T18:36:21+00:00 END contracts-001 rc=2 ---- +---- 2025-09-22T19:28:35+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--173171d380ed47fc8f6929431151f96e +Copying ./check_verification.sh -> contracts-001--173171d380ed47fc8f6929431151f96e:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T19:28:36+00:00 END contracts-001 rc=2 ---- +---- 2025-09-23T14:30:37+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--4b956655909d47669f47f741458582d1 +Copying ./check_verification.sh -> contracts-001--4b956655909d47669f47f741458582d1:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 102 → 202 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b85ba937b03ee0b826bc0a9ccd5a23f665ba603f185028a10b211171d3bdf3a", + "blockHash": "0x05ff7bec970d0fe05db4e348b7a80eb190c885153da6a8da69e67342a78e1997", + "blockNumber": "0x98", + "blockTimestamp": "0x68d2acb0", + "transactionHash": "0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000638d03cd50645788edc81674490b123ea410842e470cbf022589befee930077b", + "blockHash": "0x624305e1c2e1df8ccb86073d80f264d9d962d84801ea080e62bafbcf55c2b89b", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d2aecc", + "transactionHash": "0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 2 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0x98 tx=0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xc5 tx=0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-23T14:30:38+00:00 END contracts-001 rc=0 ---- +---- 2025-09-23T16:11:06+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--3feff59bb16442e8bfa7825e808f0020 +Copying ./check_verification.sh -> contracts-001--3feff59bb16442e8bfa7825e808f0020:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dd8bc6c72fd1910ad800274ed44c796e040d524d349a62715824d577e44fd43", + "blockHash": "0x7a2f36be88fab7cc90eff8b8f3b63e995515d54c18bccf46e0e0035b1214c074", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d2c378", + "transactionHash": "0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ef19b52065e4b20ce075f025939a704d804781050b2521123da1faa5a3a906", + "blockHash": "0xb79859348277c3fc07b18f3f148a697770d5ad5493f72c61614b9a2b5accbcbe", + "blockNumber": "0xe3", + "blockTimestamp": "0x68d2c4e0", + "transactionHash": "0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a031700cbbf70a13b29fd4093d221889462e7af08d4ea3165f1358fef49cd35c", + "blockHash": "0x8d1335f9386e13395a3b10c5c6c0891b2ac6d864e53c8ebbf0c2217fea7fb456", + "blockNumber": "0x101", + "blockTimestamp": "0x68d2c648", + "transactionHash": "0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0xc5 tx=0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xe3 tx=0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0x101 tx=0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-23T16:11:07+00:00 END contracts-001 rc=0 ---- +---- 2025-09-24T06:56:30+00:00 BEGIN contracts-001 ---- +Using container: contracts-001--6d179d4b65544a429d0d06a3f2b1f724 +Copying ./check_verification.sh -> contracts-001--6d179d4b65544a429d0d06a3f2b1f724:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceb7f6e62944637164dfcf1717119149da86828ffd6eab32e5432cdd97a9102f", + "blockHash": "0xc48801012e400c7688793707d7a82af19756f0436567f285cece59fff628b955", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d392fe", + "transactionHash": "0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7e01fb909c32fe365d8ffab46287d516bf21bf80ef359eb2dfd35fa9de8b0a", + "blockHash": "0x39766577d8929e8a5d549f88135816676834335a30404c43d3bc351b59290e08", + "blockNumber": "0xe3", + "blockTimestamp": "0x68d39466", + "transactionHash": "0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d517fc20741bb180598a0d5e1da4cd6aaead79bc9c2376b9ef3e6211f097f53", + "blockHash": "0x74410cbbf1b672971dc240bd90c49c9e9f872162d5159f67af3a7ce21ec09145", + "blockNumber": "0x101", + "blockTimestamp": "0x68d395ce", + "transactionHash": "0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0xc5 tx=0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xe3 tx=0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0x101 tx=0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-24T06:56:31+00:00 END contracts-001 rc=0 ---- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. new file mode 100644 index 000000000..74aac9103 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. @@ -0,0 +1,219 @@ +---- 2025-09-22T16:27:58+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--db9231cc2069486fac328e93818762bf +Copying ./check_verification.sh -> contracts-002--db9231cc2069486fac328e93818762bf:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T16:27:58+00:00 END contracts-002 rc=2 ---- +---- 2025-09-22T17:12:41+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--08b7c8256689455abe5876f5c0c285d8 +Copying ./check_verification.sh -> contracts-002--08b7c8256689455abe5876f5c0c285d8:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T17:12:41+00:00 END contracts-002 rc=2 ---- +---- 2025-09-22T18:36:21+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--64fc71c7058e40108fdbc008df242388 +Copying ./check_verification.sh -> contracts-002--64fc71c7058e40108fdbc008df242388:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T18:36:21+00:00 END contracts-002 rc=2 ---- +---- 2025-09-22T19:28:36+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--6357bb9eb2ba4b408b2bd926d4eee079 +Copying ./check_verification.sh -> contracts-002--6357bb9eb2ba4b408b2bd926d4eee079:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[] +[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +---- 2025-09-22T19:28:36+00:00 END contracts-002 rc=2 ---- +---- 2025-09-23T14:30:38+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--2a1b865ca6b24d0dabd133234f1f8c61 +Copying ./check_verification.sh -> contracts-002--2a1b865ca6b24d0dabd133234f1f8c61:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 102 → 202 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b85ba937b03ee0b826bc0a9ccd5a23f665ba603f185028a10b211171d3bdf3a", + "blockHash": "0x05ff7bec970d0fe05db4e348b7a80eb190c885153da6a8da69e67342a78e1997", + "blockNumber": "0x98", + "blockTimestamp": "0x68d2acb0", + "transactionHash": "0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000638d03cd50645788edc81674490b123ea410842e470cbf022589befee930077b", + "blockHash": "0x624305e1c2e1df8ccb86073d80f264d9d962d84801ea080e62bafbcf55c2b89b", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d2aecc", + "transactionHash": "0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 2 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0x98 tx=0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xc5 tx=0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-23T14:30:38+00:00 END contracts-002 rc=0 ---- +---- 2025-09-23T16:11:07+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--bc2c5ddfdc604341babd35bc965344a4 +Copying ./check_verification.sh -> contracts-002--bc2c5ddfdc604341babd35bc965344a4:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dd8bc6c72fd1910ad800274ed44c796e040d524d349a62715824d577e44fd43", + "blockHash": "0x7a2f36be88fab7cc90eff8b8f3b63e995515d54c18bccf46e0e0035b1214c074", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d2c378", + "transactionHash": "0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ef19b52065e4b20ce075f025939a704d804781050b2521123da1faa5a3a906", + "blockHash": "0xb79859348277c3fc07b18f3f148a697770d5ad5493f72c61614b9a2b5accbcbe", + "blockNumber": "0xe3", + "blockTimestamp": "0x68d2c4e0", + "transactionHash": "0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a031700cbbf70a13b29fd4093d221889462e7af08d4ea3165f1358fef49cd35c", + "blockHash": "0x8d1335f9386e13395a3b10c5c6c0891b2ac6d864e53c8ebbf0c2217fea7fb456", + "blockNumber": "0x101", + "blockTimestamp": "0x68d2c648", + "transactionHash": "0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0xc5 tx=0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xe3 tx=0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0x101 tx=0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-23T16:11:07+00:00 END contracts-002 rc=0 ---- +---- 2025-09-24T06:56:31+00:00 BEGIN contracts-002 ---- +Using container: contracts-002--6e9d2260fe06421b9f25b8e757f22543 +Copying ./check_verification.sh -> contracts-002--6e9d2260fe06421b9f25b8e757f22543:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceb7f6e62944637164dfcf1717119149da86828ffd6eab32e5432cdd97a9102f", + "blockHash": "0xc48801012e400c7688793707d7a82af19756f0436567f285cece59fff628b955", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d392fe", + "transactionHash": "0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7e01fb909c32fe365d8ffab46287d516bf21bf80ef359eb2dfd35fa9de8b0a", + "blockHash": "0x39766577d8929e8a5d549f88135816676834335a30404c43d3bc351b59290e08", + "blockNumber": "0xe3", + "blockTimestamp": "0x68d39466", + "transactionHash": "0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d517fc20741bb180598a0d5e1da4cd6aaead79bc9c2376b9ef3e6211f097f53", + "blockHash": "0x74410cbbf1b672971dc240bd90c49c9e9f872162d5159f67af3a7ce21ec09145", + "blockNumber": "0x101", + "blockTimestamp": "0x68d395ce", + "transactionHash": "0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0xc5 tx=0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xe3 tx=0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0x101 tx=0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-24T06:56:31+00:00 END contracts-002 rc=0 ---- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. new file mode 100644 index 000000000..c75e07250 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. @@ -0,0 +1,128 @@ +---- 2025-09-23T16:11:07+00:00 BEGIN contracts-003 ---- +Using container: contracts-003--6f988b6066ee474c89dcf8242f092595 +Copying ./check_verification.sh -> contracts-003--6f988b6066ee474c89dcf8242f092595:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dd8bc6c72fd1910ad800274ed44c796e040d524d349a62715824d577e44fd43", + "blockHash": "0x7a2f36be88fab7cc90eff8b8f3b63e995515d54c18bccf46e0e0035b1214c074", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d2c378", + "transactionHash": "0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ef19b52065e4b20ce075f025939a704d804781050b2521123da1faa5a3a906", + "blockHash": "0xb79859348277c3fc07b18f3f148a697770d5ad5493f72c61614b9a2b5accbcbe", + "blockNumber": "0xe3", + "blockTimestamp": "0x68d2c4e0", + "transactionHash": "0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a031700cbbf70a13b29fd4093d221889462e7af08d4ea3165f1358fef49cd35c", + "blockHash": "0x8d1335f9386e13395a3b10c5c6c0891b2ac6d864e53c8ebbf0c2217fea7fb456", + "blockNumber": "0x101", + "blockTimestamp": "0x68d2c648", + "transactionHash": "0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0xc5 tx=0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xe3 tx=0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0x101 tx=0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-23T16:11:07+00:00 END contracts-003 rc=0 ---- +---- 2025-09-24T06:56:31+00:00 BEGIN contracts-003 ---- +Using container: contracts-003--9809788ac95e4e6985ae668f77bfe5f3 +Copying ./check_verification.sh -> contracts-003--9809788ac95e4e6985ae668f77bfe5f3:/tmp/check_verification.sh +ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 +Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 + contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 + event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) + lookback: 100 blocks +[ + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceb7f6e62944637164dfcf1717119149da86828ffd6eab32e5432cdd97a9102f", + "blockHash": "0xc48801012e400c7688793707d7a82af19756f0436567f285cece59fff628b955", + "blockNumber": "0xc5", + "blockTimestamp": "0x68d392fe", + "transactionHash": "0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7e01fb909c32fe365d8ffab46287d516bf21bf80ef359eb2dfd35fa9de8b0a", + "blockHash": "0x39766577d8929e8a5d549f88135816676834335a30404c43d3bc351b59290e08", + "blockNumber": "0xe3", + "blockTimestamp": "0x68d39466", + "transactionHash": "0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", + "topics": [ + "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d517fc20741bb180598a0d5e1da4cd6aaead79bc9c2376b9ef3e6211f097f53", + "blockHash": "0x74410cbbf1b672971dc240bd90c49c9e9f872162d5159f67af3a7ce21ec09145", + "blockNumber": "0x101", + "blockTimestamp": "0x68d395ce", + "transactionHash": "0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + } +] +[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. +--- summary --- +block=0xc5 tx=0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0xe3 tx=0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +block=0x101 tx=0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d +---- 2025-09-24T06:56:31+00:00 END contracts-003 rc=0 ---- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 6bc4bd513..1ddc83f68 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -10,12 +10,12 @@ add_rollup_rpc_to_agglayer() { kurtosis service exec cdk agglayer ' set -eu - file=/etc/zkevm/agglayer-config.toml + file=/etc/agglayer/agglayer-config.toml if ! grep -q "2 = http://op-el-1-op-geth-op-node-002:8545" "$file"; then sed -i "/1 = \"http:\/\/op-el-1-op-geth-op-node-001:8545\"/a 2 = \"http://op-el-1-op-geth-op-node-002:8545\"" "$file" sed -i "/2 = \"http:\/\/op-el-1-op-geth-op-node-002:8545\"/a 3 = \"http://cdk-erigon-rpc-003:8123\"" "$file" - sed -i "/3 = \"http:\/\/cdk-erigon-rpc-003:8123\"/a 4 = \"http://cdk-erigon-rpc-004:8123\"" "$file" - sed -i "/4 = \"http:\/\/cdk-erigon-rpc-004:8123\"/a 5 = \"http://cdk-erigon-rpc-005:8123\"" "$file" + + fi ' @@ -195,7 +195,7 @@ echo ":-action:= $ACTION" yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key +.args.sp1_prover_key = $sp1key ' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml yq -y --arg sp1key "$SP1_NETWORK_KEY" ' @@ -209,15 +209,6 @@ yq -y --arg sp1key "$SP1_NETWORK_KEY" ' ' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml -yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key -' ./assets/erigon-rollup.yml > initial-erigon-rollup.yml - -yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key -' ./assets/erigon-validium.yml > initial-erigon-validium.yml - - # checks if the user is requesting for downgrade @@ -379,27 +370,6 @@ else - echo '╔═════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K - E R I G O N R O L L U P ║' - echo '╚═════════════════════════════════════════════════════════════════════════════╝' - - kurtosis run \ - --enclave "$KURTOSIS_ENCLAVE_NAME" \ - --args-file ./initial-erigon-rollup.yml \ - "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - - - echo '╔═════════════════════════════════════════════════════════════════════════════╗' - echo '║ A T T A C H I N G C D K - E R I G O N V A L I D I U M ║' - echo '╚═════════════════════════════════════════════════════════════════════════════╝' - kurtosis run \ - --enclave "$KURTOSIS_ENCLAVE_NAME" \ - --args-file ./initial-erigon-validium.yml \ - "github.com/0xPolygon/kurtosis-cdk@$KURTOSIS_HASH" - - - - echo "Modifying agglayer configuration to include new rollup" add_rollup_rpc_to_agglayer @@ -411,10 +381,9 @@ else done printf "\r✓ done. \n" - for n in 001 002 003 004 005; do + for n in 001 002 003; do run_verification_in_container "contracts-$n" || true done fi - From ce25379543d36fabda59477cbab2692b7433b2e4 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sun, 28 Sep 2025 09:48:06 +0000 Subject: [PATCH 17/39] fixed issues with agglayer config --- .../env.example | 9 +- .../logs/contracts-001.log. | 219 ------------------ .../logs/contracts-002.log. | 219 ------------------ .../logs/contracts-003.log. | 128 ---------- .../run.sh | 2 +- 5 files changed, 7 insertions(+), 570 deletions(-) delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. delete mode 100644 scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. diff --git a/scenarios/agglayer-upgrade-with-supplied-version/env.example b/scenarios/agglayer-upgrade-with-supplied-version/env.example index ec4da5888..8175f03fd 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/env.example +++ b/scenarios/agglayer-upgrade-with-supplied-version/env.example @@ -1,5 +1,8 @@ ENCLAVE_NAME=cdk -KURTOSIS_PACKAGE_HASH=be8cab2e9ed799ab91319fee0f488fab04a393ac # Latest commit +KURTOSIS_PACKAGE_HASH=c5309bd43c15094baa4427d8c04bf441f59edca7 # Latest commit +# KURTOSIS_PACKAGE_HASH=08225fbfb036f8269eaae4a3eae3d67d2904f76a # Latest commit SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key -FROM_TAG=0.3.5 -TO_TAG=0.3.4 \ No newline at end of file +FROM_TAG=0.3.4 +TO_TAG=0.3.5 + + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. deleted file mode 100644 index 60febfa4b..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-001.log. +++ /dev/null @@ -1,219 +0,0 @@ ----- 2025-09-22T16:27:58+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--db63b5fb0c7143f0b1085adbb5b9f74b -Copying ./check_verification.sh -> contracts-001--db63b5fb0c7143f0b1085adbb5b9f74b:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T16:27:58+00:00 END contracts-001 rc=2 ---- ----- 2025-09-22T17:12:41+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--34cd99c2e8ed4054836bdeba22b9e395 -Copying ./check_verification.sh -> contracts-001--34cd99c2e8ed4054836bdeba22b9e395:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T17:12:41+00:00 END contracts-001 rc=2 ---- ----- 2025-09-22T18:36:21+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--e4f9ff698b4441519ded2cf6f4a403f4 -Copying ./check_verification.sh -> contracts-001--e4f9ff698b4441519ded2cf6f4a403f4:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T18:36:21+00:00 END contracts-001 rc=2 ---- ----- 2025-09-22T19:28:35+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--173171d380ed47fc8f6929431151f96e -Copying ./check_verification.sh -> contracts-001--173171d380ed47fc8f6929431151f96e:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T19:28:36+00:00 END contracts-001 rc=2 ---- ----- 2025-09-23T14:30:37+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--4b956655909d47669f47f741458582d1 -Copying ./check_verification.sh -> contracts-001--4b956655909d47669f47f741458582d1:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 102 → 202 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b85ba937b03ee0b826bc0a9ccd5a23f665ba603f185028a10b211171d3bdf3a", - "blockHash": "0x05ff7bec970d0fe05db4e348b7a80eb190c885153da6a8da69e67342a78e1997", - "blockNumber": "0x98", - "blockTimestamp": "0x68d2acb0", - "transactionHash": "0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000638d03cd50645788edc81674490b123ea410842e470cbf022589befee930077b", - "blockHash": "0x624305e1c2e1df8ccb86073d80f264d9d962d84801ea080e62bafbcf55c2b89b", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d2aecc", - "transactionHash": "0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 2 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0x98 tx=0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xc5 tx=0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-23T14:30:38+00:00 END contracts-001 rc=0 ---- ----- 2025-09-23T16:11:06+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--3feff59bb16442e8bfa7825e808f0020 -Copying ./check_verification.sh -> contracts-001--3feff59bb16442e8bfa7825e808f0020:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dd8bc6c72fd1910ad800274ed44c796e040d524d349a62715824d577e44fd43", - "blockHash": "0x7a2f36be88fab7cc90eff8b8f3b63e995515d54c18bccf46e0e0035b1214c074", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d2c378", - "transactionHash": "0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ef19b52065e4b20ce075f025939a704d804781050b2521123da1faa5a3a906", - "blockHash": "0xb79859348277c3fc07b18f3f148a697770d5ad5493f72c61614b9a2b5accbcbe", - "blockNumber": "0xe3", - "blockTimestamp": "0x68d2c4e0", - "transactionHash": "0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a031700cbbf70a13b29fd4093d221889462e7af08d4ea3165f1358fef49cd35c", - "blockHash": "0x8d1335f9386e13395a3b10c5c6c0891b2ac6d864e53c8ebbf0c2217fea7fb456", - "blockNumber": "0x101", - "blockTimestamp": "0x68d2c648", - "transactionHash": "0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0xc5 tx=0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xe3 tx=0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0x101 tx=0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-23T16:11:07+00:00 END contracts-001 rc=0 ---- ----- 2025-09-24T06:56:30+00:00 BEGIN contracts-001 ---- -Using container: contracts-001--6d179d4b65544a429d0d06a3f2b1f724 -Copying ./check_verification.sh -> contracts-001--6d179d4b65544a429d0d06a3f2b1f724:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceb7f6e62944637164dfcf1717119149da86828ffd6eab32e5432cdd97a9102f", - "blockHash": "0xc48801012e400c7688793707d7a82af19756f0436567f285cece59fff628b955", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d392fe", - "transactionHash": "0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7e01fb909c32fe365d8ffab46287d516bf21bf80ef359eb2dfd35fa9de8b0a", - "blockHash": "0x39766577d8929e8a5d549f88135816676834335a30404c43d3bc351b59290e08", - "blockNumber": "0xe3", - "blockTimestamp": "0x68d39466", - "transactionHash": "0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d517fc20741bb180598a0d5e1da4cd6aaead79bc9c2376b9ef3e6211f097f53", - "blockHash": "0x74410cbbf1b672971dc240bd90c49c9e9f872162d5159f67af3a7ce21ec09145", - "blockNumber": "0x101", - "blockTimestamp": "0x68d395ce", - "transactionHash": "0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0xc5 tx=0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xe3 tx=0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0x101 tx=0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-24T06:56:31+00:00 END contracts-001 rc=0 ---- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. deleted file mode 100644 index 74aac9103..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-002.log. +++ /dev/null @@ -1,219 +0,0 @@ ----- 2025-09-22T16:27:58+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--db9231cc2069486fac328e93818762bf -Copying ./check_verification.sh -> contracts-002--db9231cc2069486fac328e93818762bf:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T16:27:58+00:00 END contracts-002 rc=2 ---- ----- 2025-09-22T17:12:41+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--08b7c8256689455abe5876f5c0c285d8 -Copying ./check_verification.sh -> contracts-002--08b7c8256689455abe5876f5c0c285d8:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T17:12:41+00:00 END contracts-002 rc=2 ---- ----- 2025-09-22T18:36:21+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--64fc71c7058e40108fdbc008df242388 -Copying ./check_verification.sh -> contracts-002--64fc71c7058e40108fdbc008df242388:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 99 → 199 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T18:36:21+00:00 END contracts-002 rc=2 ---- ----- 2025-09-22T19:28:36+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--6357bb9eb2ba4b408b2bd926d4eee079 -Copying ./check_verification.sh -> contracts-002--6357bb9eb2ba4b408b2bd926d4eee079:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 98 → 198 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[] -[ERROR---] No verification events found for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ----- 2025-09-22T19:28:36+00:00 END contracts-002 rc=2 ---- ----- 2025-09-23T14:30:38+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--2a1b865ca6b24d0dabd133234f1f8c61 -Copying ./check_verification.sh -> contracts-002--2a1b865ca6b24d0dabd133234f1f8c61:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 102 → 202 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b85ba937b03ee0b826bc0a9ccd5a23f665ba603f185028a10b211171d3bdf3a", - "blockHash": "0x05ff7bec970d0fe05db4e348b7a80eb190c885153da6a8da69e67342a78e1997", - "blockNumber": "0x98", - "blockTimestamp": "0x68d2acb0", - "transactionHash": "0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000638d03cd50645788edc81674490b123ea410842e470cbf022589befee930077b", - "blockHash": "0x624305e1c2e1df8ccb86073d80f264d9d962d84801ea080e62bafbcf55c2b89b", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d2aecc", - "transactionHash": "0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 2 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0x98 tx=0x9c35e69b6f8a525315ee00bed915b4f44344214c153fc2c4b804a003fbce0bc3 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xc5 tx=0x9025d7de2cc0416f4f501bbf25232cc0ffe1302f2c9f18b59048c68fe8103ead logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-23T14:30:38+00:00 END contracts-002 rc=0 ---- ----- 2025-09-23T16:11:07+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--bc2c5ddfdc604341babd35bc965344a4 -Copying ./check_verification.sh -> contracts-002--bc2c5ddfdc604341babd35bc965344a4:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dd8bc6c72fd1910ad800274ed44c796e040d524d349a62715824d577e44fd43", - "blockHash": "0x7a2f36be88fab7cc90eff8b8f3b63e995515d54c18bccf46e0e0035b1214c074", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d2c378", - "transactionHash": "0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ef19b52065e4b20ce075f025939a704d804781050b2521123da1faa5a3a906", - "blockHash": "0xb79859348277c3fc07b18f3f148a697770d5ad5493f72c61614b9a2b5accbcbe", - "blockNumber": "0xe3", - "blockTimestamp": "0x68d2c4e0", - "transactionHash": "0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a031700cbbf70a13b29fd4093d221889462e7af08d4ea3165f1358fef49cd35c", - "blockHash": "0x8d1335f9386e13395a3b10c5c6c0891b2ac6d864e53c8ebbf0c2217fea7fb456", - "blockNumber": "0x101", - "blockTimestamp": "0x68d2c648", - "transactionHash": "0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0xc5 tx=0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xe3 tx=0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0x101 tx=0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-23T16:11:07+00:00 END contracts-002 rc=0 ---- ----- 2025-09-24T06:56:31+00:00 BEGIN contracts-002 ---- -Using container: contracts-002--6e9d2260fe06421b9f25b8e757f22543 -Copying ./check_verification.sh -> contracts-002--6e9d2260fe06421b9f25b8e757f22543:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceb7f6e62944637164dfcf1717119149da86828ffd6eab32e5432cdd97a9102f", - "blockHash": "0xc48801012e400c7688793707d7a82af19756f0436567f285cece59fff628b955", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d392fe", - "transactionHash": "0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7e01fb909c32fe365d8ffab46287d516bf21bf80ef359eb2dfd35fa9de8b0a", - "blockHash": "0x39766577d8929e8a5d549f88135816676834335a30404c43d3bc351b59290e08", - "blockNumber": "0xe3", - "blockTimestamp": "0x68d39466", - "transactionHash": "0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d517fc20741bb180598a0d5e1da4cd6aaead79bc9c2376b9ef3e6211f097f53", - "blockHash": "0x74410cbbf1b672971dc240bd90c49c9e9f872162d5159f67af3a7ce21ec09145", - "blockNumber": "0x101", - "blockTimestamp": "0x68d395ce", - "transactionHash": "0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0xc5 tx=0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xe3 tx=0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0x101 tx=0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-24T06:56:31+00:00 END contracts-002 rc=0 ---- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. b/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. deleted file mode 100644 index c75e07250..000000000 --- a/scenarios/agglayer-upgrade-with-supplied-version/logs/contracts-003.log. +++ /dev/null @@ -1,128 +0,0 @@ ----- 2025-09-23T16:11:07+00:00 BEGIN contracts-003 ---- -Using container: contracts-003--6f988b6066ee474c89dcf8242f092595 -Copying ./check_verification.sh -> contracts-003--6f988b6066ee474c89dcf8242f092595:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dd8bc6c72fd1910ad800274ed44c796e040d524d349a62715824d577e44fd43", - "blockHash": "0x7a2f36be88fab7cc90eff8b8f3b63e995515d54c18bccf46e0e0035b1214c074", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d2c378", - "transactionHash": "0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ef19b52065e4b20ce075f025939a704d804781050b2521123da1faa5a3a906", - "blockHash": "0xb79859348277c3fc07b18f3f148a697770d5ad5493f72c61614b9a2b5accbcbe", - "blockNumber": "0xe3", - "blockTimestamp": "0x68d2c4e0", - "transactionHash": "0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a031700cbbf70a13b29fd4093d221889462e7af08d4ea3165f1358fef49cd35c", - "blockHash": "0x8d1335f9386e13395a3b10c5c6c0891b2ac6d864e53c8ebbf0c2217fea7fb456", - "blockNumber": "0x101", - "blockTimestamp": "0x68d2c648", - "transactionHash": "0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0xc5 tx=0x77bae77c05dfaed1ebd2bdab009d7e461187e92e3ae54d99d3ecb99ff5dba74a logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xe3 tx=0xdfdf757bc314035e278d57be3500f04b0cb946cf66919ed3d609647b089f9312 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0x101 tx=0xb2c917bde93079154b66dfe3778d70e19f283a25cfdd952cff667990ba2bad13 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-23T16:11:07+00:00 END contracts-003 rc=0 ---- ----- 2025-09-24T06:56:31+00:00 BEGIN contracts-003 ---- -Using container: contracts-003--9809788ac95e4e6985ae668f77bfe5f3 -Copying ./check_verification.sh -> contracts-003--9809788ac95e4e6985ae668f77bfe5f3:/tmp/check_verification.sh -ROLLUP_MANAGER=0x6c6c009cC348976dB4A908c92B24433d4F6edA43 -Scanning blocks 163 → 263 on http://el-1-geth-lighthouse:8545 - contract (rollup manager): 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 - event: VerifyBatchesTrustedAggregator(uint32,uint64,bytes32,bytes32,address) - lookback: 100 blocks -[ - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceb7f6e62944637164dfcf1717119149da86828ffd6eab32e5432cdd97a9102f", - "blockHash": "0xc48801012e400c7688793707d7a82af19756f0436567f285cece59fff628b955", - "blockNumber": "0xc5", - "blockTimestamp": "0x68d392fe", - "transactionHash": "0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7e01fb909c32fe365d8ffab46287d516bf21bf80ef359eb2dfd35fa9de8b0a", - "blockHash": "0x39766577d8929e8a5d549f88135816676834335a30404c43d3bc351b59290e08", - "blockNumber": "0xe3", - "blockTimestamp": "0x68d39466", - "transactionHash": "0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x6c6c009cc348976db4a908c92b24433d4f6eda43", - "topics": [ - "0xd1ec3a1216f08b6eff72e169ceb548b782db18a6614852618d86bb19f3f9b0d3", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d517fc20741bb180598a0d5e1da4cd6aaead79bc9c2376b9ef3e6211f097f53", - "blockHash": "0x74410cbbf1b672971dc240bd90c49c9e9f872162d5159f67af3a7ce21ec09145", - "blockNumber": "0x101", - "blockTimestamp": "0x68d395ce", - "transactionHash": "0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - } -] -[SUCCESS---] Found 3 verification event(s) for 0x6c6c009cC348976dB4A908c92B24433d4F6edA43 in the last 100 blocks. ---- summary --- -block=0xc5 tx=0x82fbf9b2010a65945a652947ca0877d1006a91240d4a5b2d855561df1935fe94 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0xe3 tx=0x56fa7ced88c6e382df0bf4eee820b08c0dc2801d904761f731dfcb3aab6e5254 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d -block=0x101 tx=0x120cd8bcabc14c0de41c32fc28934c375999f5c024bb6688bdb940df7a6840a8 logIndex=0x2 rollupIdTopic=0x0000000000000000000000000000000000000000000000000000000000000001 aggregatorTopic=0x000000000000000000000000cae5b68ff783594bde1b93cde627c741722c4d4d ----- 2025-09-24T06:56:31+00:00 END contracts-003 rc=0 ---- diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 1ddc83f68..45b498562 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -10,7 +10,7 @@ add_rollup_rpc_to_agglayer() { kurtosis service exec cdk agglayer ' set -eu - file=/etc/agglayer/agglayer-config.toml + file=/etc/zkevm/agglayer-config.toml if ! grep -q "2 = http://op-el-1-op-geth-op-node-002:8545" "$file"; then sed -i "/1 = \"http:\/\/op-el-1-op-geth-op-node-001:8545\"/a 2 = \"http://op-el-1-op-geth-op-node-002:8545\"" "$file" sed -i "/2 = \"http:\/\/op-el-1-op-geth-op-node-002:8545\"/a 3 = \"http://cdk-erigon-rpc-003:8123\"" "$file" From 24bb5bfb7b61cbe859f6c42a5acef4b2746763dd Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 9 Oct 2025 12:24:40 +0000 Subject: [PATCH 18/39] update --- .../README.md | 10 + .../assets/erigon-sovereign.yml | 7 +- .../assets/opgeth-ecdsa.yml | 4 +- .../common.sh | 242 ++++++++++++++ .../lxly.sh | 303 ++++++++++++++++++ 5 files changed, 562 insertions(+), 4 deletions(-) create mode 100755 scenarios/agglayer-upgrade-with-supplied-version/common.sh create mode 100755 scenarios/agglayer-upgrade-with-supplied-version/lxly.sh diff --git a/scenarios/agglayer-upgrade-with-supplied-version/README.md b/scenarios/agglayer-upgrade-with-supplied-version/README.md index d346a1e72..8d433b7fe 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/README.md +++ b/scenarios/agglayer-upgrade-with-supplied-version/README.md @@ -13,6 +13,16 @@ It is designed to: kurtosis enclave rm cdk --force ``` +- Test file: https://github.com/agglayer/e2e/actions/runs/17996146694/workflow?pr=168 +- Reference: https://github.com/agglayer/e2e/blob/main/tests/lxly/lxly.bats +- Branch-seen: (https://github.com/agglayer/e2e/blob/jihwan/multi-chain-bridge-workflow/tests/lxly/multi-chain-bridge.bats) +- Branch-sug: https://github.com/agglayer/e2e/blob/main/tests/lxly/lxly.bats +- Branch-seen: jihwan/multi-chain-bridge-workflow +- Kurtosis-branch: jhilliard/aggsender-validator-committee +- . ./common.sh && _setup_vars +# shellcheck source=./lxly.sh +# source "$SCRIPT_DIR/lxly.sh" +# main native --- ## Scripts diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml index e6e0326cf..ba3e186ea 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/erigon-sovereign.yml @@ -9,7 +9,8 @@ args: sequencer_type: erigon consensus_contract_type: pessimistic - aggkit_image: ghcr.io/agglayer/aggkit:0.5.0-beta4 + # aggkit_image: ghcr.io/agglayer/aggkit:0.5.0-beta4 + aggkit_image: ghcr.io/agglayer/aggkit:0.7.0-beta6 zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC16-fork.12 cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.63.0-rc4 @@ -22,5 +23,5 @@ args: aggkit_components: aggsender,bridge zkevm_rollup_chain_id: 2151910 - deployment_suffix: "-003" - zkevm_rollup_id: 3 \ No newline at end of file + deployment_suffix: "-003" + zkevm_rollup_id: 3 diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml index 270974aea..f6a1ef5b6 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml @@ -5,10 +5,12 @@ deployment_stages: deploy_op_succinct: false args: - aggkit_image: "ghcr.io/agglayer/aggkit:0.7.0-beta3" # https://github.com/agglayer/aggkit/tree/v0.7.0-beta3 + # aggkit_image: "ghcr.io/agglayer/aggkit:0.7.0-beta3" # https://github.com/agglayer/aggkit/tree/v0.7.0-beta3 + aggkit_image: "ghcr.io/agglayer/aggkit:0.7.0-beta6" # Agghcain ecdsa_multisig consensus. consensus_contract_type: ecdsa_multisig use_agg_sender_validator: True + aggkit_prover_primary_prover: "mock-prover" # The below parameter will be used for aggsender multisig to have "agg_sender_validator_total_number" aggsender validators. agg_sender_validator_total_number: 1 agg_sender_multisig_threshold: 1 diff --git a/scenarios/agglayer-upgrade-with-supplied-version/common.sh b/scenarios/agglayer-upgrade-with-supplied-version/common.sh new file mode 100755 index 000000000..b19bca433 --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/common.sh @@ -0,0 +1,242 @@ +#!/usr/bin/env bash +# common.sh — standalone version of common.bash (no Bats). +# Usage: +# source ./common.sh && _setup_vars # to use from another script +# ./common.sh # to run once and print vars + +set -euo pipefail + +# Quiet shellcheck about variables we set later +# shellcheck disable=SC2034 +declare status output || true + +log() { echo "[$(date -Is)] $*" >&2; } + +function _setup_vars() { + # These vars are set when calling this function: + # l2_rpc_url, l1_rpc_url, l2_private_key, l1_private_key, + # l1_eth_address, l2_eth_address, l2_chain_id, l1_chain_id, + # l2_type, l2_node_url, l1_system_config_addr, l1_optimism_portal_addr, + # kurtosis_enclave_name, l1_bridge_addr, l2_bridge_addr, + # l1_network_id, l2_network_id + + # + # Paths for libs, etc + # + HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + + + # Keep this for compatibility; harmless if Bats isn't used. + export BATS_LIB_PATH="${BATS_LIB_PATH:-}:$HERE/lib" + export PROJECT_ROOT="${PROJECT_ROOT:-$HERE/../..}" + log "PROJECT_ROOT=$PROJECT_ROOT BATS_LIB_PATH=$BATS_LIB_PATH" + + # + # L2 RPC URL + # + l2_rpc_url="${L2_RPC_URL:-}" + if [[ -z "${ENCLAVE_NAME:-}" && -z "$l2_rpc_url" ]]; then + # If no L2_RPC_URL and no ENCLAVE_NAME, try default enclave "cdk" + ENCLAVE_NAME="cdk" + fi + + if [[ -n "${ENCLAVE_NAME:-}" ]]; then + export kurtosis_enclave_name="$ENCLAVE_NAME" + if kurtosis_l2_rpc_url="$(kurtosis port print "$kurtosis_enclave_name" op-el-1-op-geth-op-node-001 rpc 2>/dev/null)"; then + l2_type="op-geth" + elif kurtosis_l2_rpc_url="$(kurtosis port print "$kurtosis_enclave_name" cdk-erigon-rpc-001 rpc 2>/dev/null)"; then + l2_type="cdk-erigon" + else + unset kurtosis_l2_rpc_url + fi + fi + + # If both are set, enforce they match + if [[ -n "${l2_rpc_url:-}" && -n "${kurtosis_l2_rpc_url:-}" && "$l2_rpc_url" != "$kurtosis_l2_rpc_url" ]]; then + log "L2_RPC_URL ($l2_rpc_url) != Kurtosis L2 RPC ($kurtosis_l2_rpc_url). Omit one of L2_RPC_URL or ENCLAVE_NAME." + exit 1 + fi + if [[ -z "${l2_rpc_url:-}" && -n "${kurtosis_l2_rpc_url:-}" ]]; then + l2_rpc_url="$kurtosis_l2_rpc_url" + fi + + if [[ -n "${l2_rpc_url:-}" ]]; then + l2_chain_id="$(cast chain-id --rpc-url "$l2_rpc_url" 2>/dev/null || echo "")" + if [[ -n "${L2_CHAIN_ID:-}" && -n "$l2_chain_id" && "$L2_CHAIN_ID" != "$l2_chain_id" ]]; then + log "L2_CHAIN_ID ($L2_CHAIN_ID) != chain id from $l2_rpc_url ($l2_chain_id)." + exit 1 + fi + log "l2_rpc_url=$l2_rpc_url l2_chain_id=$l2_chain_id" + export l2_rpc_url l2_chain_id + fi + + # + # L1 RPC URL + # + l1_rpc_url="${L1_RPC_URL:-}" + + if [[ -n "${kurtosis_enclave_name:-}" ]]; then + if kurtosis_l1_rpc_url="$(kurtosis port print "$kurtosis_enclave_name" el-1-geth-lighthouse rpc 2>/dev/null)"; then + true + else + unset kurtosis_l1_rpc_url + fi + fi + + # Enforce match if both are set (note: Kurtosis returns host:port) + if [[ -n "${l1_rpc_url:-}" && -n "${kurtosis_l1_rpc_url:-}" && "$l1_rpc_url" != "http://${kurtosis_l1_rpc_url}" ]]; then + log "L1_RPC_URL ($l1_rpc_url) != Kurtosis L1 RPC (http://${kurtosis_l1_rpc_url}). Omit one of L1_RPC_URL or ENCLAVE_NAME." + exit 1 + fi + if [[ -z "${l1_rpc_url:-}" && -n "${kurtosis_l1_rpc_url:-}" ]]; then + l1_rpc_url="http://${kurtosis_l1_rpc_url}" + fi + + if [[ -n "${l1_rpc_url:-}" ]]; then + l1_chain_id="$(cast chain-id --rpc-url "$l1_rpc_url" 2>/dev/null || echo "")" + if [[ -n "${L1_CHAIN_ID:-}" && -n "$l1_chain_id" && "$L1_CHAIN_ID" != "$l1_chain_id" ]]; then + log "L1_CHAIN_ID ($L1_CHAIN_ID) != chain id from $l1_rpc_url ($l1_chain_id)." + exit 1 + fi + log "l1_rpc_url=$l1_rpc_url l1_chain_id=$l1_chain_id" + export l1_rpc_url l1_chain_id + fi + + # + # Default private keys & addresses (TEST ONLY) + # + l1_private_key="${L1_PRIVATE_KEY:-12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625}" + l2_private_key="${L2_PRIVATE_KEY:-12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625}" + l1_eth_address="$(cast wallet address --private-key "$l1_private_key")" + l2_eth_address="$(cast wallet address --private-key "$l2_private_key")" + export l1_private_key l2_private_key l1_eth_address l2_eth_address + log "l1_eth_address=$l1_eth_address l1_private_key=$l1_private_key" + log "l2_eth_address=$l2_eth_address l2_private_key=$l2_private_key" + + # + # OP Stack–specific vars (only if op-geth + Kurtosis) + # + if [[ "${l2_type:-}" == "op-geth" && -n "${kurtosis_enclave_name:-}" ]]; then + l2_node_url="${L2_NODE_URL:-"$(kurtosis port print "$kurtosis_enclave_name" op-cl-1-op-node-op-geth-001 http 2>/dev/null || true)"}" + if [[ -n "${l2_node_url:-}" ]]; then + if output="$(cast rpc --rpc-url "$l2_node_url" optimism_rollupConfig 2>/dev/null)"; then + l1_system_config_addr="$(echo "$output" | jq -r '.l1_system_config_address')" + if [[ -n "$l1_system_config_addr" && -n "${l1_rpc_url:-}" ]]; then + if l1_optimism_portal_addr="$(cast call "$l1_system_config_addr" "optimismPortal()(address)" --rpc-url "$l1_rpc_url" 2>/dev/null)"; then + export l1_optimism_portal_addr + log "l2_node_url=$l2_node_url l1_system_config_addr=$l1_system_config_addr l1_optimism_portal_addr=$l1_optimism_portal_addr" + else + log "l2_node_url=$l2_node_url l1_system_config_addr=$l1_system_config_addr" + fi + else + log "l2_node_url=$l2_node_url" + fi + else + log "l2_node_url=$l2_node_url" + fi + else + log "Could not determine L2 node URL" + fi + fi + + # + # Kurtosis combined.json (for bridge addresses) + # + if [[ -n "${kurtosis_enclave_name:-}" ]]; then + combined_url="$(kurtosis port print "$kurtosis_enclave_name" contracts-001 http 2>/dev/null || true)" + combined_json_data="" + if [[ -n "$combined_url" ]]; then + combined_json_data="$(curl -s "$combined_url/opt/zkevm/combined-001.json" || true)" + fi + if [[ -z "${combined_json_data:-}" ]] || ! echo "$combined_json_data" | jq empty >/dev/null 2>&1; then + unset combined_json_data + fi + fi + + # + # Bridge addresses (env overrides, else from combined.json) + # + l1_bridge_addr="${L1_BRIDGE_ADDR:-}" + l2_bridge_addr="${L2_BRIDGE_ADDR:-}" + + if [[ -n "${combined_json_data:-}" ]]; then + kurtosis_l1_bridge_addr="$(echo "$combined_json_data" | jq -r .polygonZkEVMBridgeAddress)" + kurtosis_l2_bridge_addr="$(echo "$combined_json_data" | jq -r .polygonZkEVML2BridgeAddress)" + + if [[ -z "$l1_bridge_addr" ]]; then + l1_bridge_addr="$kurtosis_l1_bridge_addr" + elif [[ "$l1_bridge_addr" != "$kurtosis_l1_bridge_addr" ]]; then + log "L1_BRIDGE_ADDR ($l1_bridge_addr) != Kurtosis ($kurtosis_l1_bridge_addr)." + exit 1 + fi + + if [[ -z "$l2_bridge_addr" ]]; then + l2_bridge_addr="$kurtosis_l2_bridge_addr" + elif [[ "$l2_bridge_addr" != "$kurtosis_l2_bridge_addr" ]]; then + log "L2_BRIDGE_ADDR ($l2_bridge_addr) != Kurtosis ($kurtosis_l2_bridge_addr)." + exit 1 + fi + fi + + if [[ -n "${l1_bridge_addr:-}" && -n "${l2_bridge_addr:-}" ]]; then + export l1_bridge_addr l2_bridge_addr + log "l1_bridge_addr=$l1_bridge_addr l2_bridge_addr=$l2_bridge_addr" + elif [[ -n "${l1_bridge_addr:-}" ]]; then + export l1_bridge_addr + log "l1_bridge_addr=$l1_bridge_addr" + elif [[ -n "${l2_bridge_addr:-}" ]]; then + export l2_bridge_addr + log "l2_bridge_addr=$l2_bridge_addr" + fi + + # + # Network IDs (via bridge contracts) + # + if [[ -n "${l1_rpc_url:-}" && -n "${l1_bridge_addr:-}" ]]; then + l1_network_id="$(cast call --rpc-url "$l1_rpc_url" "$l1_bridge_addr" 'networkID()(uint32)')" + fi + if [[ -n "${l2_rpc_url:-}" && -n "${l2_bridge_addr:-}" ]]; then + l2_network_id="$(cast call --rpc-url "$l2_rpc_url" "$l2_bridge_addr" 'networkID()(uint32)')" + fi + + if [[ -n "${l1_network_id:-}" && -n "${l2_network_id:-}" ]]; then + export l1_network_id l2_network_id + log "l1_network_id=$l1_network_id l2_network_id=$l2_network_id" + elif [[ -n "${l1_network_id:-}" ]]; then + export l1_network_id + log "l1_network_id=$l1_network_id" + elif [[ -n "${l2_network_id:-}" ]]; then + export l2_network_id + log "l2_network_id=$l2_network_id" + fi +} + +# If executed directly, run setup and print a concise summary +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + _setup_vars + echo + echo "=== common.sh initialized ===" + echo "PROJECT_ROOT=$PROJECT_ROOT" + echo "l1_rpc_url=${l1_rpc_url:-}" + echo "l2_rpc_url=${l2_rpc_url:-}" + echo "l1_chain_id=${l1_chain_id:-}" + echo "l2_chain_id=${l2_chain_id:-}" + echo "l1_eth_address=${l1_eth_address:-}" + echo "l2_eth_address=${l2_eth_address:-}" + echo "l1_bridge_addr=${l1_bridge_addr:-}" + echo "l2_bridge_addr=${l2_bridge_addr:-}" + echo "l1_network_id=${l1_network_id:-}" + echo "l2_network_id=${l2_network_id:-}" + echo "l2_type=${l2_type:-}" + echo "l2_node_url=${l2_node_url:-}" + echo "l1_system_config_addr=${l1_system_config_addr:-}" + echo "l1_optimism_portal_addr=${l1_optimism_portal_addr:-}" + echo "l1_private_key=${l1_private_key:-}" + echo "l2_private_key=${l2_private_key:-}" +fi + + + + + + diff --git a/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh b/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh new file mode 100755 index 000000000..5e3d1115b --- /dev/null +++ b/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh @@ -0,0 +1,303 @@ +#!/usr/bin/env bash +# lxly.sh — standalone replacement for lxly.bats +# Usage: +# ./lxly.sh native +# ./lxly.sh erc20-roundtrip +# Env (optional): +# ENCLAVE_NAME, L1_RPC_URL, L2_RPC_URL, L1_BRIDGE_ADDR, L2_BRIDGE_ADDR +# BRIDGE_SERVICE_URL, CLAIMTXMANAGER_ADDR, CLAIM_WAIT_DURATION +# TRANSACTION_RECEIPT_TIMEOUT, ERC20_TOKEN_NAME, ERC20_TOKEN_SYMBOL +# +# Notes: +# - This version removes --wait (unsupported in your polycli) and uses a retry loop. +# - It passes --transaction-receipt-timeout consistently to bridge/claim. +# - It computes depositCount safely (pre/post) to pick the correct index to claim. + +set -euo pipefail + +HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# --- config defaults (override via env) --- +: "${CLAIMTXMANAGER_ADDR:=0x5f5dB0D4D58310F53713eF4Df80ba6717868A9f8}" +: "${CLAIM_WAIT_DURATION:=10m}" # e.g., 10m, 120s, or just 600 +: "${TRANSACTION_RECEIPT_TIMEOUT:=60}" # seconds +: "${ERC20_TOKEN_NAME:=e2e test}" +: "${ERC20_TOKEN_SYMBOL:=E2E}" + +log() { echo "[$(date -Is)] $*" >&2; } + +need() { + command -v "$1" >/dev/null 2>&1 || { echo "Missing dependency: $1" >&2; exit 127; } +} + +preflight() { + need cast + need jq + need kurtosis + need polycli + need curl +} + +# Parse CLAIM_WAIT_DURATION into seconds (supports Xm, Xs, or plain X) +duration_to_seconds() { + local d="${1:-600}" + if [[ "$d" =~ ^[0-9]+m$ ]]; then + echo $(( ${d%m} * 60 )) + elif [[ "$d" =~ ^[0-9]+s$ ]]; then + echo "${d%s}" + elif [[ "$d" =~ ^[0-9]+$ ]]; then + echo "$d" + else + # fallback: 10 minutes + echo 600 + fi +} + +# Retry wrapper around `polycli ulxly claim asset` +# Args: bridge_addr priv_key rpc_url deposit_count deposit_network bridge_service_url timeout_secs +claim_with_retry() { + local bridge_addr="$1" priv="$2" rpc="$3" dep_count="$4" dep_net="$5" svc="$6" timeout_secs="$7" + local start rc now + start="$(date +%s)" + while :; do + set +e + polycli ulxly claim asset \ + --bridge-address "$bridge_addr" \ + --private-key "$priv" \ + --rpc-url "$rpc" \ + --deposit-count "$dep_count" \ + --deposit-network "$dep_net" \ + --bridge-service-url "$svc" \ + --transaction-receipt-timeout "$TRANSACTION_RECEIPT_TIMEOUT" + rc=$? + set -e + if (( rc == 0 )); then + log "Claim succeeded (deposit_count=$dep_count deposit_network=$dep_net)" + return 0 + fi + now="$(date +%s)" + if (( now - start >= timeout_secs )); then + log "Claim timed out after ${timeout_secs}s (last rc=$rc). Auto-claimer may have handled it." + return $rc + fi + log "Claim not ready yet; retrying in 10s..." + sleep 10 + done +} + +# shellcheck source=common.sh +load_common() { + if [[ -f "$HERE/common.sh" ]]; then + # shellcheck source=/dev/null + source "$HERE/common.sh" + else + # shellcheck source=/dev/null + source "$HERE/../../core/helpers/common.bash" + fi + _setup_vars + : "${BRIDGE_SERVICE_URL:="$(kurtosis port print "${kurtosis_enclave_name:-cdk}" zkevm-bridge-service-001 rpc)"}" + log "using BRIDGE_SERVICE_URL=$BRIDGE_SERVICE_URL" +} + +# Fund the claim_tx_manager so the bridge service can pay gas for claims (devnets) +fund_claim_tx_manager() { + local balance + balance="$(cast balance --rpc-url "$l2_rpc_url" "$CLAIMTXMANAGER_ADDR")" + if [[ "$balance" != "0" ]]; then + log "ClaimTxManager already funded on L2 (balance=$balance)" + return + fi + log "Funding ClaimTxManager on L2 with 1 ether" + cast send --legacy --value 1ether \ + --rpc-url "$l2_rpc_url" \ + --private-key "$l2_private_key" \ + "$CLAIMTXMANAGER_ADDR" +} + +native() { + preflight + load_common + fund_claim_tx_manager + + local pre_dc post_dc deposit_count bridge_amount claim_secs + claim_secs="$(duration_to_seconds "$CLAIM_WAIT_DURATION")" + + # L1 -> L2 native + pre_dc="$(cast call --rpc-url "$l1_rpc_url" "$l1_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + bridge_amount="$(date +%s)" + + log "Bridging native ETH L1 -> L2 amount=$bridge_amount" + polycli ulxly bridge asset \ + --bridge-address "$l1_bridge_addr" \ + --destination-address "$l2_eth_address" \ + --destination-network "$l2_network_id" \ + --private-key "$l1_private_key" \ + --rpc-url "$l1_rpc_url" \ + --transaction-receipt-timeout "$TRANSACTION_RECEIPT_TIMEOUT" \ + --value "$bridge_amount" + + post_dc="$(cast call --rpc-url "$l1_rpc_url" "$l1_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + if [[ "$post_dc" == "$pre_dc" ]]; then + echo "Deposit count did not increase on L1" >&2 + exit 1 + fi + # The deposit we just made corresponds to the *previous* counter value. + deposit_count="$pre_dc" + + # Claim on L2 + claim_with_retry "$l2_bridge_addr" "$l2_private_key" "$l2_rpc_url" \ + "$deposit_count" "0" "$BRIDGE_SERVICE_URL" "$claim_secs" \ + || log "Claim did not complete within ${claim_secs}s (auto-claimer may have handled it)." +} + +erc20_roundtrip() { + preflight + load_common + fund_claim_tx_manager + + local claim_secs + claim_secs="$(duration_to_seconds "$CLAIM_WAIT_DURATION")" + + # Ensure deterministic deployer is present on L2 + local salt deterministic_deployer_addr deterministic_deployer_code + salt="0x0000000000000000000000000000000000000000000000000000000000000000" + deterministic_deployer_addr=0x4e59b44847b379578588920ca78fbf26c0b4956c + deterministic_deployer_code="$(cast code --rpc-url "$l2_rpc_url" "$deterministic_deployer_addr")" + + if [[ "$deterministic_deployer_code" == "0x" ]]; then + log "Publishing deterministic deployer bytecode on L2" + cast send --legacy --value 0.1ether --rpc-url "$l2_rpc_url" --private-key "$l2_private_key" 0x3fab184622dc19b6109349b94811493bf2a45362 + cast publish --rpc-url "$l2_rpc_url" 0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222 + fi + + # Deploy ERC20 via CREATE2 if missing + local erc_20_bytecode constructor_args test_erc20_addr + erc_20_bytecode="$(cat "$HERE/../../core/contracts/bin/erc20permitmock.bin" 2>/dev/null || cat core/contracts/bin/erc20permitmock.bin)" + erc_20_bytecode="${erc_20_bytecode#0x}" # safety: strip accidental 0x + + constructor_args="$(cast abi-encode 'f(string,string,address,uint256)' "$ERC20_TOKEN_NAME" "$ERC20_TOKEN_SYMBOL" "$l2_eth_address" 100000000000000000000)" + constructor_args="${constructor_args#0x}" + + test_erc20_addr="$(cast create2 --deployer 0x4e59b44847b379578588920ca78fbf26c0b4956c --salt "$salt" --init-code "$erc_20_bytecode$constructor_args")" + + if [[ "$(cast code --rpc-url "$l2_rpc_url" "$test_erc20_addr")" == "0x" ]]; then + log "Deploying ERC20 to $test_erc20_addr via CREATE2 and approving bridge" + cast send --legacy --rpc-url "$l2_rpc_url" --private-key "$l2_private_key" \ + "$deterministic_deployer_addr" "$salt$erc_20_bytecode$constructor_args" + cast send --legacy --rpc-url "$l2_rpc_url" --private-key "$l2_private_key" \ + "$test_erc20_addr" 'approve(address,uint256)' "$l2_bridge_addr" "$(cast max-uint)" + else + log "ERC20 already present at $test_erc20_addr" + fi + + # --- L2 -> L1 (ERC20) --- + local pre_dc_l2 post_dc_l2 deposit_count_l2 bridge_amount token_hash wrapped_token_addr + pre_dc_l2="$(cast call --rpc-url "$l2_rpc_url" "$l2_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + bridge_amount="$(date +%s)" + + log "Bridging ERC20 L2 -> L1 amount=$bridge_amount token=$test_erc20_addr" + polycli ulxly bridge asset \ + --destination-network 0 \ + --destination-address "$l1_eth_address" \ + --token-address "$test_erc20_addr" \ + --value "$bridge_amount" \ + --bridge-address "$l2_bridge_addr" \ + --rpc-url "$l2_rpc_url" \ + --private-key "$l2_private_key" \ + --transaction-receipt-timeout "$TRANSACTION_RECEIPT_TIMEOUT" + + post_dc_l2="$(cast call --rpc-url "$l2_rpc_url" "$l2_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + if [[ "$post_dc_l2" == "$pre_dc_l2" ]]; then + echo "Deposit count did not increase on L2" >&2 + exit 1 + fi + deposit_count_l2="$pre_dc_l2" + + log "Claiming on L1 for L2 depositCount=$deposit_count_l2" + claim_with_retry "$l1_bridge_addr" "$l1_private_key" "$l1_rpc_url" \ + "$deposit_count_l2" "$l2_network_id" "$BRIDGE_SERVICE_URL" "$(duration_to_seconds "$CLAIM_WAIT_DURATION")" + + # Find wrapped token on L1 + token_hash="$(cast keccak "$(cast abi-encode --packed 'f(uint32, address)' "$l2_network_id" "$test_erc20_addr")")" + wrapped_token_addr="$(cast call --rpc-url "$l1_rpc_url" "$l1_bridge_addr" 'tokenInfoToWrappedToken(bytes32)(address)' "$token_hash")" + + # --- L1 -> L2 (wrapped token) --- + local pre_dc_l1 post_dc_l1 deposit_count_l1 + pre_dc_l1="$(cast call --rpc-url "$l1_rpc_url" "$l1_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + + log "Bridging wrapped L1 token -> L2 amount=$bridge_amount token=$wrapped_token_addr" + polycli ulxly bridge asset \ + --destination-network "$l2_network_id" \ + --destination-address "$l2_eth_address" \ + --token-address "$wrapped_token_addr" \ + --value "$bridge_amount" \ + --bridge-address "$l1_bridge_addr" \ + --rpc-url "$l1_rpc_url" \ + --private-key "$l1_private_key" \ + --transaction-receipt-timeout "$TRANSACTION_RECEIPT_TIMEOUT" + + post_dc_l1="$(cast call --rpc-url "$l1_rpc_url" "$l1_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + if [[ "$post_dc_l1" == "$pre_dc_l1" ]]; then + echo "Deposit count did not increase on L1 (wrapped hop)" >&2 + exit 1 + fi + deposit_count_l1="$pre_dc_l1" + + # Claim on L2 (for the L1->L2 deposit) + claim_with_retry "$l2_bridge_addr" "$l2_private_key" "$l2_rpc_url" \ + "$deposit_count_l1" "0" "$BRIDGE_SERVICE_URL" "$(duration_to_seconds "$CLAIM_WAIT_DURATION")" \ + || log "L2 claim may have been handled by auto-claimer." + + # --- Repeat another L2 -> L1 (ERC20) and claim on L1 --- + local pre_dc_l2_b post_dc_l2_b deposit_count_l2_b + pre_dc_l2_b="$(cast call --rpc-url "$l2_rpc_url" "$l2_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + bridge_amount="$(date +%s)" + + log "Bridging ERC20 again L2 -> L1 amount=$bridge_amount" + polycli ulxly bridge asset \ + --destination-network 0 \ + --token-address "$test_erc20_addr" \ + --value "$bridge_amount" \ + --bridge-address "$l2_bridge_addr" \ + --rpc-url "$l2_rpc_url" \ + --private-key "$l2_private_key" \ + --transaction-receipt-timeout "$TRANSACTION_RECEIPT_TIMEOUT" + + post_dc_l2_b="$(cast call --rpc-url "$l2_rpc_url" "$l2_bridge_addr" 'depositCount()(uint256)' | awk '{print $1}')" + if [[ "$post_dc_l2_b" == "$pre_dc_l2_b" ]]; then + echo "Deposit count did not increase on L2 (second hop)" >&2 + exit 1 + fi + deposit_count_l2_b="$pre_dc_l2_b" + + log "Claiming on L1 for depositCount=$deposit_count_l2_b" + claim_with_retry "$l1_bridge_addr" "$l1_private_key" "$l1_rpc_url" \ + "$deposit_count_l2_b" "$l2_network_id" "$BRIDGE_SERVICE_URL" "$(duration_to_seconds "$CLAIM_WAIT_DURATION")" + + log "ERC20 roundtrip complete." +} + +usage() { + cat >&2 < + +Examples: + ENCLAVE_NAME=cdk $0 native + ENCLAVE_NAME=cdk $0 erc20-roundtrip + +Optionally set: + L1_RPC_URL, L2_RPC_URL, L1_BRIDGE_ADDR, L2_BRIDGE_ADDR, + BRIDGE_SERVICE_URL, CLAIMTXMANAGER_ADDR, CLAIM_WAIT_DURATION, + TRANSACTION_RECEIPT_TIMEOUT, ERC20_TOKEN_NAME, ERC20_TOKEN_SYMBOL +EOF +} + +main() { + case "${1:-}" in + native) native ;; + erc20-roundtrip) erc20_roundtrip ;; + *) usage; exit 2 ;; + esac +} + +main "$@" From 2412f649363f24f0dc868d00d8403a8febd4babb Mon Sep 17 00:00:00 2001 From: obynonwane Date: Tue, 14 Oct 2025 19:40:35 +0000 Subject: [PATCH 19/39] tested bridging --- .../common.sh | 8 +------ .../lxly.sh | 4 ++-- .../run.sh | 21 +++++++++++++++++++ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/common.sh b/scenarios/agglayer-upgrade-with-supplied-version/common.sh index b19bca433..6c5726a65 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/common.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/common.sh @@ -233,10 +233,4 @@ if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then echo "l1_optimism_portal_addr=${l1_optimism_portal_addr:-}" echo "l1_private_key=${l1_private_key:-}" echo "l2_private_key=${l2_private_key:-}" -fi - - - - - - +fi \ No newline at end of file diff --git a/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh b/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh index 5e3d1115b..6ab9ed5bf 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/lxly.sh @@ -19,8 +19,8 @@ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # --- config defaults (override via env) --- : "${CLAIMTXMANAGER_ADDR:=0x5f5dB0D4D58310F53713eF4Df80ba6717868A9f8}" -: "${CLAIM_WAIT_DURATION:=10m}" # e.g., 10m, 120s, or just 600 -: "${TRANSACTION_RECEIPT_TIMEOUT:=60}" # seconds +: "${CLAIM_WAIT_DURATION:=1h}" # e.g., 10m, 120s, or just 600 also 1h +: "${TRANSACTION_RECEIPT_TIMEOUT:=3600}" # 1h = 3600 or 60 seconds : "${ERC20_TOKEN_NAME:=e2e test}" : "${ERC20_TOKEN_SYMBOL:=E2E}" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 45b498562..d03b5fecf 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -387,3 +387,24 @@ else fi + + +# native run +LOG_FILE="logs/run_native_bridging_$(date +%F).log" +PID_FILE="logs/run_native_bridging.pid" + +nohup ./lxly.sh native >>"$LOG_FILE" 2>&1 & +echo "Started native → $LOG_FILE (PID $(cat logs/run_native_bridging.pid))" +echo $! > "$PID_FILE" +echo "Started ./lxly.sh native (PID $(cat "$PID_FILE")) → $LOG_FILE" + +# erc20 roundtrip +LOG_FILE="logs/run_roundtrip_bridging_$(date +%F).log" +PID_FILE="logs/run_roundtrip_bridging.pid" + +nohup ./lxly.sh erc20-roundtrip >>"$LOG_FILE" 2>&1 & +echo "Started erc20-roundtrip → $LOG_FILE_RT (PID $(cat logs/run_roundtrip_bridging.pid))" +echo $! > "$PID_FILE" +echo "Started ./lxly.sh erc20-roundtrip (PID $(cat "$PID_FILE")) → $LOG_FILE" + +echo "Output of bridging can be found in teh /logs folder you need to wait for it to finish executing" \ No newline at end of file From 638138266f2e69530b7201fec6c35d8c63a23ab9 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 11:41:43 +0000 Subject: [PATCH 20/39] added nightly build --- .github/workflows/upgrade-agglayer-e2e.yml | 146 ++++++++++++++++++ .../run.sh | 7 - 2 files changed, 146 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/upgrade-agglayer-e2e.yml diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml new file mode 100644 index 000000000..186bb8050 --- /dev/null +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -0,0 +1,146 @@ +name: Nightly Agglayer Build + +on: + schedule: + - cron: "0 1 * * *" # 01:00 UTC nightly + workflow_dispatch: + inputs: + FROM_TAG: { description: "From version tag", required: false } + TO_TAG: { description: "To version tag", required: false } + ACTION: + description: "Action to perform" + required: false + default: "upgrade" + type: choice + options: [upgrade, downgrade] + KURTOSIS_PACKAGE_HASH: { description: "Kurtosis package hash", required: false } + ENCLAVE_NAME: { description: "Enclave name", required: false } + SP1_NETWORK_KEY: { description: "SP1 network key", required: false } + push: + branches: [ upgrade-agglayer-cdk-opgeth ] + +jobs: + run-nightly: + runs-on: ubuntu-latest + timeout-minutes: 180 + + # Defaults for scheduled runs; inputs override on manual runs + env: + FROM_TAG: ${{ inputs.FROM_TAG || vars.NIGHTLY_FROM_TAG }} + TO_TAG: ${{ inputs.TO_TAG || vars.NIGHTLY_TO_TAG }} + ACTION: ${{ inputs.ACTION || vars.NIGHTLY_ACTION || 'upgrade' }} + KURTOSIS_PACKAGE_HASH: ${{ inputs.KURTOSIS_PACKAGE_HASH || vars.KURTOSIS_PACKAGE_HASH }} + ENCLAVE_NAME: ${{ inputs.ENCLAVE_NAME || vars.KURTOSIS_ENCLAVE_NAME }} + SP1_NETWORK_KEY: ${{ inputs.SP1_NETWORK_KEY || secrets.SP1_NETWORK_KEY }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME || '' }} + DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN || '' }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + # If we pull private GHCR images, need this login; else no need + - name: Login to GHCR + if: ${{ env.DOCKER_USERNAME != '' && env.DOCKER_TOKEN != '' }} + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ env.DOCKER_USERNAME }} + password: ${{ env.DOCKER_TOKEN }} + + # Install kurtosis + - name: Install Kurtosis + run: | + set -euxo pipefail + curl -fsSL https://get.kurtosis.com | bash + echo "$HOME/.kurtosis/bin" >> "$GITHUB_PATH" + kurtosis --version || kurtosis version + + # Install foundry + - name: Install Foundry (forge/cast/anvil) + run: | + set -euxo pipefail + curl -L https://foundry.paradigm.xyz | bash + echo "$HOME/.foundry/bin" >> "$GITHUB_PATH" + "$HOME/.foundry/bin/foundryup" + forge --version + cast --version + anvil --version + + # Install polycli + - name: Install polycli + run: | + polycli_version="${{ env.POLYCLI_VERSION }}" + pushd $(mktemp -d) || exit 1 + curl -s -L "https://github.com/0xPolygon/polygon-cli/releases/download/${polycli_version}/polycli_${polycli_version}_linux_amd64.tar.gz" > polycli.tar.gz + tar xf polycli.tar.gz + mv polycli_* /usr/local/bin/polycli + polycli version + popd + + # Install yq & jq + - name: Install yq + run: | + # Remove any existing yq installations to avoid conflicts + sudo pip3 uninstall -y yq || true + # Remove any yq in /usr/local/bin that might be from pip + sudo rm -f /usr/local/bin/yq + # Install the Go version of yq + sudo wget https://github.com/mikefarah/yq/releases/download/v4.35.2/yq_linux_amd64 -O /usr/bin/yq + sudo chmod +x /usr/bin/yq + # Make sure /usr/bin comes before /usr/local/bin in PATH + export PATH="/usr/bin:$PATH" + # Verify it's the correct version and test the syntax + yq --version + + + - name: Prepare /tmp run folder + run: | + set -euxo pipefail + mkdir -p /tmp/agglayer-run + rsync -a scenarios/agglayer-upgrade-with-supplied/ /tmp/agglayer-run/ + chmod +x /tmp/agglayer-run/run.sh || true + chmod +x /tmp/agglayer-run/lxly.sh || true + chmod +x /tmp/agglayer-run/check_verification.sh || true + + - name: Create .env from env.example + working-directory: /tmp/agglayer-run + run: | + set -euxo pipefail + cp env.example .env + sed -i "s|{{KURTOSIS_PACKAGE_HASH}}|${KURTOSIS_PACKAGE_HASH}|g" .env + sed -i "s|{{ENCLAVE_NAME}}|${ENCLAVE_NAME}|g" .env + sed -i "s|{{SP1_NETWORK_KEY}}|${SP1_NETWORK_KEY}|g" .env + sed -i "s|{{FROM_TAG}}|${FROM_TAG}|g" .env + sed -i "s|{{TO_TAG}}|${TO_TAG}|g" .env + sed -i "s|{{ACTION}}|${ACTION}|g" .env + + - name: Sanity check + working-directory: /tmp/agglayer-run + run: | + set -euxo pipefail + ls -la + test -f .env + test -f run.sh + test -f lxly.sh + test -d assets + + - name: Run nightly + working-directory: /tmp/agglayer-run + env: + FROM_TAG: ${{ env.FROM_TAG }} + TO_TAG: ${{ env.TO_TAG }} + ACTION: ${{ env.ACTION }} + run: | + set -euxo pipefail + : "${FROM_TAG:?FROM_TAG missing}" + : "${TO_TAG:?TO_TAG missing}" + ./run.sh "$FROM_TAG" "$TO_TAG" "$ACTION" + + - name: Upload outputs + if: always() + uses: actions/upload-artifact@v4 + with: + name: agglayer-run-outputs + path: /tmp/agglayer-run/ + if-no-files-found: warn diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index d03b5fecf..53cc3e731 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -111,13 +111,6 @@ run_verification_in_container() ( # ---------------------------------------------------------------------- # Load environment # ---------------------------------------------------------------------- -if [[ -f ../common/load-env.sh ]]; then - source ../common/load-env.sh -else - echo "load-env.sh not found!" - exit 1 -fi - if [ -f .env ]; then source .env else From 33fae52bc8710fa42d37d0f40aaefb7acadec416 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 11:53:07 +0000 Subject: [PATCH 21/39] fixing issues with kurtosis installation --- .github/workflows/upgrade-agglayer-e2e.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 186bb8050..b87d0267b 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -49,12 +49,14 @@ jobs: password: ${{ env.DOCKER_TOKEN }} # Install kurtosis - - name: Install Kurtosis + - name: Install Kurtosis (fallback) run: | - set -euxo pipefail - curl -fsSL https://get.kurtosis.com | bash - echo "$HOME/.kurtosis/bin" >> "$GITHUB_PATH" - kurtosis --version || kurtosis version + set -euxo pipefail + KURTOSIS_VERSION="1.1.6" # or the latest stable + curl -L "https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/kurtosis_${KURTOSIS_VERSION}_linux_amd64.tar.gz" -o kurtosis.tar.gz + tar -xzf kurtosis.tar.gz + sudo mv kurtosis /usr/local/bin/ + kurtosis version # Install foundry - name: Install Foundry (forge/cast/anvil) From 41a187a99c5d4e043c841337f715f7734d8ae57b Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 11:56:57 +0000 Subject: [PATCH 22/39] fixed kurtursis version prefix --- .github/workflows/upgrade-agglayer-e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index b87d0267b..ba973a1f7 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -52,7 +52,7 @@ jobs: - name: Install Kurtosis (fallback) run: | set -euxo pipefail - KURTOSIS_VERSION="1.1.6" # or the latest stable + KURTOSIS_VERSION="v1.1.6" # or the latest stable curl -L "https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/kurtosis_${KURTOSIS_VERSION}_linux_amd64.tar.gz" -o kurtosis.tar.gz tar -xzf kurtosis.tar.gz sudo mv kurtosis /usr/local/bin/ From 40a662cd29a9966dfd3de35891c34c4fed5357c8 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 12:14:54 +0000 Subject: [PATCH 23/39] fixing kutosis install --- .github/workflows/upgrade-agglayer-e2e.yml | 39 +++++++++++++--------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index ba973a1f7..998e28b9f 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -49,25 +49,32 @@ jobs: password: ${{ env.DOCKER_TOKEN }} # Install kurtosis - - name: Install Kurtosis (fallback) + - name: Install Kurtosis (retry + fallback) + env: + KURTOSIS_VERSION: v1.1.6 run: | set -euxo pipefail - KURTOSIS_VERSION="v1.1.6" # or the latest stable - curl -L "https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/kurtosis_${KURTOSIS_VERSION}_linux_amd64.tar.gz" -o kurtosis.tar.gz - tar -xzf kurtosis.tar.gz - sudo mv kurtosis /usr/local/bin/ - kurtosis version + # Try the official installer (with retries) + for i in {1..5}; do + if curl -fsSL https://get.kurtosis.com | bash; then + echo "$HOME/.kurtosis/bin" >> "$GITHUB_PATH" + kurtosis version || kurtosis --version + exit 0 + fi + echo "Attempt $i failed, retrying in 10s..." + sleep 10 + done - # Install foundry - - name: Install Foundry (forge/cast/anvil) - run: | - set -euxo pipefail - curl -L https://foundry.paradigm.xyz | bash - echo "$HOME/.foundry/bin" >> "$GITHUB_PATH" - "$HOME/.foundry/bin/foundryup" - forge --version - cast --version - anvil --version + # Fallback to GitHub release asset + VER_NO_V="${KURTOSIS_VERSION#v}" + ASSET="kurtosis_${VER_NO_V}_linux_amd64.tar.gz" + URL="https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/${ASSET}" + curl -fsSLI "$URL" | head -n 1 + curl -fsSL -o "$ASSET" "$URL" + tar -tzf "$ASSET" >/dev/null + tar -xzf "$ASSET" + sudo install -m 0755 kurtosis /usr/local/bin/kurtosis + kurtosis version || kurtosis --version # Install polycli - name: Install polycli From 0b939d885768384b2b971be6f78dc7cbfcf30d49 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 12:21:09 +0000 Subject: [PATCH 24/39] using the doc kurtosis install step --- .github/workflows/upgrade-agglayer-e2e.yml | 27 ++++------------------ 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 998e28b9f..75053ebea 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -49,31 +49,12 @@ jobs: password: ${{ env.DOCKER_TOKEN }} # Install kurtosis - - name: Install Kurtosis (retry + fallback) - env: - KURTOSIS_VERSION: v1.1.6 + - name: Install Kurtosis (via apt.fury.io) run: | set -euxo pipefail - # Try the official installer (with retries) - for i in {1..5}; do - if curl -fsSL https://get.kurtosis.com | bash; then - echo "$HOME/.kurtosis/bin" >> "$GITHUB_PATH" - kurtosis version || kurtosis --version - exit 0 - fi - echo "Attempt $i failed, retrying in 10s..." - sleep 10 - done - - # Fallback to GitHub release asset - VER_NO_V="${KURTOSIS_VERSION#v}" - ASSET="kurtosis_${VER_NO_V}_linux_amd64.tar.gz" - URL="https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/${ASSET}" - curl -fsSLI "$URL" | head -n 1 - curl -fsSL -o "$ASSET" "$URL" - tar -tzf "$ASSET" >/dev/null - tar -xzf "$ASSET" - sudo install -m 0755 kurtosis /usr/local/bin/kurtosis + echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list + sudo apt update + sudo apt install -y kurtosis-cli kurtosis version || kurtosis --version # Install polycli From 4a8abc034b59c18b0c2c679c38df40c19e5f91a1 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 12:23:38 +0000 Subject: [PATCH 25/39] fixed polycli version missing in env --- .github/workflows/upgrade-agglayer-e2e.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 75053ebea..34936ec4b 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -34,6 +34,7 @@ jobs: SP1_NETWORK_KEY: ${{ inputs.SP1_NETWORK_KEY || secrets.SP1_NETWORK_KEY }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME || '' }} DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN || '' }} + POLYCLI_VERSION: v0.1.84 steps: - name: Checkout From 4a91f7695ede8b3ce4c5737e741406cbae8a5516 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 12:33:40 +0000 Subject: [PATCH 26/39] fixed file path incomplete naming in preparint tmp folder --- .github/workflows/upgrade-agglayer-e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 34936ec4b..00102dd53 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -89,7 +89,7 @@ jobs: run: | set -euxo pipefail mkdir -p /tmp/agglayer-run - rsync -a scenarios/agglayer-upgrade-with-supplied/ /tmp/agglayer-run/ + rsync -a scenarios/agglayer-upgrade-with-supplied-version/ /tmp/agglayer-run/ chmod +x /tmp/agglayer-run/run.sh || true chmod +x /tmp/agglayer-run/lxly.sh || true chmod +x /tmp/agglayer-run/check_verification.sh || true From 35d1a3849175c18d020bcf2f63ae184667c348df Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 13:13:17 +0000 Subject: [PATCH 27/39] added defaults for from_tag and to_tag --- .github/workflows/upgrade-agglayer-e2e.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 00102dd53..c1565f8b6 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -26,12 +26,13 @@ jobs: # Defaults for scheduled runs; inputs override on manual runs env: - FROM_TAG: ${{ inputs.FROM_TAG || vars.NIGHTLY_FROM_TAG }} - TO_TAG: ${{ inputs.TO_TAG || vars.NIGHTLY_TO_TAG }} - ACTION: ${{ inputs.ACTION || vars.NIGHTLY_ACTION || 'upgrade' }} - KURTOSIS_PACKAGE_HASH: ${{ inputs.KURTOSIS_PACKAGE_HASH || vars.KURTOSIS_PACKAGE_HASH }} - ENCLAVE_NAME: ${{ inputs.ENCLAVE_NAME || vars.KURTOSIS_ENCLAVE_NAME }} - SP1_NETWORK_KEY: ${{ inputs.SP1_NETWORK_KEY || secrets.SP1_NETWORK_KEY }} + # Inputs (manual) → Repo Variables (nightly) → hard default (always) + FROM_TAG: ${{ inputs.FROM_TAG || vars.NIGHTLY_FROM_TAG || '0.3.0-rc.21' }} + TO_TAG: ${{ inputs.TO_TAG || vars.NIGHTLY_TO_TAG || '0.3.5' }} + ACTION: ${{ inputs.ACTION || vars.NIGHTLY_ACTION || 'upgrade' }} + KURTOSIS_PACKAGE_HASH: ${{ inputs.KURTOSIS_PACKAGE_HASH || vars.KURTOSIS_PACKAGE_HASH || '' }} + ENCLAVE_NAME: ${{ inputs.ENCLAVE_NAME || vars.KURTOSIS_ENCLAVE_NAME || 'cdk' }} + SP1_NETWORK_KEY: ${{ inputs.SP1_NETWORK_KEY || secrets.SP1_NETWORK_KEY || '' }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME || '' }} DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN || '' }} POLYCLI_VERSION: v0.1.84 From 50179707fbeca2055d09cb81521dfa4a2ed654b5 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 15:41:25 +0000 Subject: [PATCH 28/39] finding right yq version --- .github/workflows/upgrade-agglayer-e2e.yml | 34 +++++++++++++++------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index c1565f8b6..e44e891b5 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -71,19 +71,31 @@ jobs: popd # Install yq & jq - - name: Install yq + - name: Install jq 1.6 and yq 3.4.3 run: | - # Remove any existing yq installations to avoid conflicts + set -euxo pipefail + + # jq 1.6 (Ubuntu runners already have it, but ensure it) + sudo apt-get update -y + sudo apt-get install -y jq + jq --version # -> jq-1.6 + + # Remove any conflicting yq (pip/python or v4 binaries) sudo pip3 uninstall -y yq || true - # Remove any yq in /usr/local/bin that might be from pip - sudo rm -f /usr/local/bin/yq - # Install the Go version of yq - sudo wget https://github.com/mikefarah/yq/releases/download/v4.35.2/yq_linux_amd64 -O /usr/bin/yq + sudo rm -f /usr/local/bin/yq /usr/bin/yq || true + + # Install Mike Farah yq v3.4.3 (older releases sometimes omit the 'v' in the tag) + url1="https://github.com/mikefarah/yq/releases/download/3.4.3/yq_linux_amd64" + url2="https://github.com/mikefarah/yq/releases/download/v3.4.3/yq_linux_amd64" + + if curl -fsSLI "$url1" >/dev/null 2>&1; then + sudo wget -qO /usr/bin/yq "$url1" + else + sudo wget -qO /usr/bin/yq "$url2" + fi + sudo chmod +x /usr/bin/yq - # Make sure /usr/bin comes before /usr/local/bin in PATH - export PATH="/usr/bin:$PATH" - # Verify it's the correct version and test the syntax - yq --version + yq --version # -> yq 3.4.3 - name: Prepare /tmp run folder @@ -116,6 +128,8 @@ jobs: test -f run.sh test -f lxly.sh test -d assets + jq --version + yq --version - name: Run nightly working-directory: /tmp/agglayer-run From d98e3357f73bf6e41f1f1fcfebd07e04af4987cf Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 15:50:12 +0000 Subject: [PATCH 29/39] fixing yq --- .github/workflows/upgrade-agglayer-e2e.yml | 40 +++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index e44e891b5..40cb59928 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -71,32 +71,40 @@ jobs: popd # Install yq & jq - - name: Install jq 1.6 and yq 3.4.3 + - name: Install jq 1.6 and yq 3.4.3 (pinned) run: | set -euxo pipefail - # jq 1.6 (Ubuntu runners already have it, but ensure it) - sudo apt-get update -y - sudo apt-get install -y jq - jq --version # -> jq-1.6 - - # Remove any conflicting yq (pip/python or v4 binaries) + # --- jq 1.6 --- + # Get the official static binary from the jqlang release + tmpdir="$(mktemp -d)" + curl -fsSL -o "$tmpdir/jq" \ + https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 + echo "Installing jq 1.6 to /usr/local/bin" + sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq + jq --version # expect: jq-1.6 + + # --- yq 3.4.3 --- + # Remove any conflicting yq (pip v3 wrapper or v4 binary) so we control the version sudo pip3 uninstall -y yq || true - sudo rm -f /usr/local/bin/yq /usr/bin/yq || true + sudo rm -f /usr/bin/yq /usr/local/bin/yq || true - # Install Mike Farah yq v3.4.3 (older releases sometimes omit the 'v' in the tag) - url1="https://github.com/mikefarah/yq/releases/download/3.4.3/yq_linux_amd64" - url2="https://github.com/mikefarah/yq/releases/download/v3.4.3/yq_linux_amd64" + # Download yq v3.4.3 (older release line). Some tags omit the 'v', try both. + YQ_URL_A="https://github.com/mikefarah/yq/releases/download/3.4.3/yq_linux_amd64" + YQ_URL_B="https://github.com/mikefarah/yq/releases/download/v3.4.3/yq_linux_amd64" - if curl -fsSLI "$url1" >/dev/null 2>&1; then - sudo wget -qO /usr/bin/yq "$url1" + # Probe which URL exists, then download with curl to avoid wget exit 8 issues + if curl -fsSLI "$YQ_URL_A" >/dev/null 2>&1; then + curl -fsSL -o "$tmpdir/yq" "$YQ_URL_A" else - sudo wget -qO /usr/bin/yq "$url2" + curl -fsSL -o "$tmpdir/yq" "$YQ_URL_B" fi - sudo chmod +x /usr/bin/yq - yq --version # -> yq 3.4.3 + echo "Installing yq 3.4.3 to /usr/local/bin" + sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq + yq --version # expect: yq 3.4.3 + rm -rf "$tmpdir" - name: Prepare /tmp run folder run: | From 7152640b36998f376d3b39137fd8935b1139bbdb Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 15:53:34 +0000 Subject: [PATCH 30/39] update finding right yq version --- .github/workflows/upgrade-agglayer-e2e.yml | 26 +++++++--------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 40cb59928..8fca79b2f 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -71,38 +71,28 @@ jobs: popd # Install yq & jq - - name: Install jq 1.6 and yq 3.4.3 (pinned) + - name: Install jq 1.6 and yq 3.3.4 (stable legacy version) run: | set -euxo pipefail - # --- jq 1.6 --- - # Get the official static binary from the jqlang release tmpdir="$(mktemp -d)" + + # --- jq 1.6 --- curl -fsSL -o "$tmpdir/jq" \ https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 echo "Installing jq 1.6 to /usr/local/bin" sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq jq --version # expect: jq-1.6 - # --- yq 3.4.3 --- - # Remove any conflicting yq (pip v3 wrapper or v4 binary) so we control the version + # --- yq 3.3.4 --- sudo pip3 uninstall -y yq || true sudo rm -f /usr/bin/yq /usr/local/bin/yq || true - # Download yq v3.4.3 (older release line). Some tags omit the 'v', try both. - YQ_URL_A="https://github.com/mikefarah/yq/releases/download/3.4.3/yq_linux_amd64" - YQ_URL_B="https://github.com/mikefarah/yq/releases/download/v3.4.3/yq_linux_amd64" - - # Probe which URL exists, then download with curl to avoid wget exit 8 issues - if curl -fsSLI "$YQ_URL_A" >/dev/null 2>&1; then - curl -fsSL -o "$tmpdir/yq" "$YQ_URL_A" - else - curl -fsSL -o "$tmpdir/yq" "$YQ_URL_B" - fi - - echo "Installing yq 3.4.3 to /usr/local/bin" + YQ_URL="https://github.com/mikefarah/yq/releases/download/3.3.4/yq_linux_amd64" + curl -fsSL -o "$tmpdir/yq" "$YQ_URL" + echo "Installing yq 3.3.4 to /usr/local/bin" sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq - yq --version # expect: yq 3.4.3 + yq --version # expect: yq version 3.3.4 rm -rf "$tmpdir" From 48a2a3026806a1d701189b68301917f77b9e1998 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 16:09:07 +0000 Subject: [PATCH 31/39] updating yq to use v4 --- .github/workflows/upgrade-agglayer-e2e.yml | 59 +++++++++++++++------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 8fca79b2f..61d17d37d 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -71,30 +71,55 @@ jobs: popd # Install yq & jq - - name: Install jq 1.6 and yq 3.3.4 (stable legacy version) + # - name: Install jq 1.6 and yq 3.3.4 (stable legacy version) + # run: | + # set -euxo pipefail + + # tmpdir="$(mktemp -d)" + + # # --- jq 1.6 --- + # curl -fsSL -o "$tmpdir/jq" \ + # https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 + # echo "Installing jq 1.6 to /usr/local/bin" + # sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq + # jq --version # expect: jq-1.6 + + # # --- yq 3.3.4 --- + # sudo pip3 uninstall -y yq || true + # sudo rm -f /usr/bin/yq /usr/local/bin/yq || true + + # YQ_URL="https://github.com/mikefarah/yq/releases/download/3.3.4/yq_linux_amd64" + # curl -fsSL -o "$tmpdir/yq" "$YQ_URL" + # echo "Installing yq 3.3.4 to /usr/local/bin" + # sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq + # yq --version # expect: yq version 3.3.4 + + # rm -rf "$tmpdir" + + + - name: Install jq 1.6 and yq v4.43.1 run: | - set -euxo pipefail + set -euxo pipefail - tmpdir="$(mktemp -d)" + tmpdir="$(mktemp -d)" - # --- jq 1.6 --- - curl -fsSL -o "$tmpdir/jq" \ + # --- jq 1.6 --- + curl -fsSL -o "$tmpdir/jq" \ https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 - echo "Installing jq 1.6 to /usr/local/bin" - sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq - jq --version # expect: jq-1.6 + echo "Installing jq 1.6 to /usr/local/bin" + sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq + jq --version # expect: jq-1.6 - # --- yq 3.3.4 --- - sudo pip3 uninstall -y yq || true - sudo rm -f /usr/bin/yq /usr/local/bin/yq || true + # --- yq v4.43.1 --- + sudo rm -f /usr/bin/yq /usr/local/bin/yq || true - YQ_URL="https://github.com/mikefarah/yq/releases/download/3.3.4/yq_linux_amd64" - curl -fsSL -o "$tmpdir/yq" "$YQ_URL" - echo "Installing yq 3.3.4 to /usr/local/bin" - sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq - yq --version # expect: yq version 3.3.4 + YQ_URL="https://github.com/mikefarah/yq/releases/download/v4.43.1/yq_linux_amd64" + curl -fsSL -o "$tmpdir/yq" "$YQ_URL" + echo "Installing yq v4.43.1 to /usr/local/bin" + sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq + yq --version # expect: yq (https://github.com/mikefarah/yq/) version 4.43.1 - rm -rf "$tmpdir" + rm -rf "$tmpdir" - name: Prepare /tmp run folder run: | From 150a44fcef64812656548169ba786fc20f4cb470 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 16:14:23 +0000 Subject: [PATCH 32/39] issues with yq version --- .github/workflows/upgrade-agglayer-e2e.yml | 32 +++++++++------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index 61d17d37d..e5e660624 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -97,29 +97,23 @@ jobs: # rm -rf "$tmpdir" - - name: Install jq 1.6 and yq v4.43.1 + - name: Install jq 1.6 and yq 3.4.1 (legacy syntax support) run: | - set -euxo pipefail - - tmpdir="$(mktemp -d)" - - # --- jq 1.6 --- - curl -fsSL -o "$tmpdir/jq" \ - https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 - echo "Installing jq 1.6 to /usr/local/bin" - sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq - jq --version # expect: jq-1.6 + set -euxo pipefail + tmpdir="$(mktemp -d)" - # --- yq v4.43.1 --- - sudo rm -f /usr/bin/yq /usr/local/bin/yq || true + # --- jq 1.6 --- + curl -fsSL -o "$tmpdir/jq" https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 + sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq + jq --version # expect: jq-1.6 - YQ_URL="https://github.com/mikefarah/yq/releases/download/v4.43.1/yq_linux_amd64" - curl -fsSL -o "$tmpdir/yq" "$YQ_URL" - echo "Installing yq v4.43.1 to /usr/local/bin" - sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq - yq --version # expect: yq (https://github.com/mikefarah/yq/) version 4.43.1 + # --- yq 3.4.1 --- + sudo rm -f /usr/local/bin/yq /usr/bin/yq || true + curl -fsSL -o "$tmpdir/yq" https://github.com/mikefarah/yq/releases/download/3.4.1/yq_linux_amd64 + sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq + yq --version # expect: yq version 3.4.1 - rm -rf "$tmpdir" + rm -rf "$tmpdir" - name: Prepare /tmp run folder run: | From b905c66dace4ee07ffc147e532a140c0895982ea Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 16:21:21 +0000 Subject: [PATCH 33/39] update to fixing yq --- .github/workflows/upgrade-agglayer-e2e.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index e5e660624..af6db512a 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -97,21 +97,26 @@ jobs: # rm -rf "$tmpdir" - - name: Install jq 1.6 and yq 3.4.1 (legacy syntax support) + - name: Install jq 1.6 and yq v4 (compatible with your script) run: | set -euxo pipefail tmpdir="$(mktemp -d)" - # --- jq 1.6 --- - curl -fsSL -o "$tmpdir/jq" https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 + # --- jq 1.6 (override Ubuntu's jq 1.7) --- + curl -fsSL -o "$tmpdir/jq" \ + https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq - jq --version # expect: jq-1.6 + jq --version # -> jq-1.6 - # --- yq 3.4.1 --- + # --- yq v4.x (Mike Farah) --- + # remove any older yq (v3) so the right one is used sudo rm -f /usr/local/bin/yq /usr/bin/yq || true - curl -fsSL -o "$tmpdir/yq" https://github.com/mikefarah/yq/releases/download/3.4.1/yq_linux_amd64 + + YQ_VERSION="v4.44.3" # pick a specific v4 version + curl -fsSL -o "$tmpdir/yq" \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq - yq --version # expect: yq version 3.4.1 + yq --version # -> yq 4.44.3 (or your chosen v4) rm -rf "$tmpdir" From d800408101a0f78333a63da15787b38ed6f0672f Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 16:26:58 +0000 Subject: [PATCH 34/39] yq issues --- .github/workflows/upgrade-agglayer-e2e.yml | 26 ++++++++++------------ 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index af6db512a..a08653441 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -96,30 +96,28 @@ jobs: # rm -rf "$tmpdir" - - - name: Install jq 1.6 and yq v4 (compatible with your script) + - name: Force install yq 3.4.3 (legacy) run: | set -euxo pipefail tmpdir="$(mktemp -d)" - # --- jq 1.6 (override Ubuntu's jq 1.7) --- - curl -fsSL -o "$tmpdir/jq" \ - https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 - sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq - jq --version # -> jq-1.6 + echo "Removing any existing yq installation" + sudo rm -f /usr/bin/yq /usr/local/bin/yq || true - # --- yq v4.x (Mike Farah) --- - # remove any older yq (v3) so the right one is used - sudo rm -f /usr/local/bin/yq /usr/bin/yq || true + echo "Downloading yq 3.4.3 binary from mikefarah/yq" + curl -fsSL -o "$tmpdir/yq" https://github.com/mikefarah/yq/releases/download/3.4.3/yq_linux_amd64 - YQ_VERSION="v4.44.3" # pick a specific v4 version - curl -fsSL -o "$tmpdir/yq" \ - "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" + echo "Installing yq 3.4.3 to /usr/local/bin" sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq - yq --version # -> yq 4.44.3 (or your chosen v4) + echo "Checking yq version" + which yq + yq --version + + echo "Cleaning up temp dir" rm -rf "$tmpdir" + - name: Prepare /tmp run folder run: | set -euxo pipefail From 1680806a2b6f1a5c90e67ae83c591bb23e38b4af Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 16:34:14 +0000 Subject: [PATCH 35/39] updating yq to v4 --- .github/workflows/upgrade-agglayer-e2e.yml | 24 +++++++-------- .../run.sh | 30 ++++++++++++------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index a08653441..efb855159 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -96,25 +96,25 @@ jobs: # rm -rf "$tmpdir" - - name: Force install yq 3.4.3 (legacy) + - name: Install jq 1.6 and yq v4 run: | set -euxo pipefail - tmpdir="$(mktemp -d)" - echo "Removing any existing yq installation" - sudo rm -f /usr/bin/yq /usr/local/bin/yq || true + # Create a temp directory + tmpdir="$(mktemp -d)" - echo "Downloading yq 3.4.3 binary from mikefarah/yq" - curl -fsSL -o "$tmpdir/yq" https://github.com/mikefarah/yq/releases/download/3.4.3/yq_linux_amd64 + # Install jq 1.6 + curl -L -o "$tmpdir/jq" "https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64" + sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq + jq --version # should print jq-1.6 - echo "Installing yq 3.4.3 to /usr/local/bin" + # Install yq v4 (example version v4.43.1, change if needed) + YQ_VERSION="v4.43.1" + curl -L -o "$tmpdir/yq" "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq + yq --version # should print yq version 4.x - echo "Checking yq version" - which yq - yq --version - - echo "Cleaning up temp dir" + # Clean up temp dir rm -rf "$tmpdir" diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index 53cc3e731..f9035d657 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -187,20 +187,30 @@ echo ":-action:= $ACTION" -yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.sp1_prover_key = $sp1key -' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml +# yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +# .args.sp1_prover_key = $sp1key +# ' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml -yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key -' ./assets/opgeth-ecdsa.yml > initial-opgeth-ecdsa.yml +# yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +# .args.agglayer_prover_sp1_key = $sp1key +# ' ./assets/opgeth-ecdsa.yml > initial-opgeth-ecdsa.yml + + +# yq -y --arg sp1key "$SP1_NETWORK_KEY" ' +# .args.agglayer_prover_sp1_key = $sp1key | +# .args.sp1_prover_key = $sp1key +# ' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml -yq -y --arg sp1key "$SP1_NETWORK_KEY" ' -.args.agglayer_prover_sp1_key = $sp1key | -.args.sp1_prover_key = $sp1key -' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml +yq eval --arg sp1key "$SP1_NETWORK_KEY" '.args.sp1_prover_key = $sp1key' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml + +yq eval --arg sp1key "$SP1_NETWORK_KEY" '.args.agglayer_prover_sp1_key = $sp1key' ./assets/opgeth-ecdsa.yml > initial-opgeth-ecdsa.yml + +yq eval --arg sp1key "$SP1_NETWORK_KEY" ' + .args.agglayer_prover_sp1_key = $sp1key | + .args.sp1_prover_key = $sp1key +' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml From 27eb68529067d20456880c45d5be2a089bf9a02a Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 16:39:43 +0000 Subject: [PATCH 36/39] yq challenges --- .../agglayer-upgrade-with-supplied-version/run.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/run.sh b/scenarios/agglayer-upgrade-with-supplied-version/run.sh index f9035d657..f4a80dc8d 100755 --- a/scenarios/agglayer-upgrade-with-supplied-version/run.sh +++ b/scenarios/agglayer-upgrade-with-supplied-version/run.sh @@ -111,6 +111,7 @@ run_verification_in_container() ( # ---------------------------------------------------------------------- # Load environment # ---------------------------------------------------------------------- + if [ -f .env ]; then source .env else @@ -202,15 +203,13 @@ echo ":-action:= $ACTION" # ' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml +export SP1_NETWORK_KEY="$SP1_NETWORK_KEY" +yq e '.args.sp1_prover_key = strenv(SP1_NETWORK_KEY)' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml -yq eval --arg sp1key "$SP1_NETWORK_KEY" '.args.sp1_prover_key = $sp1key' ./assets/opgeth-soverign.yml > initial-opgeth-soverign.yml +yq e '.args.agglayer_prover_sp1_key = strenv(SP1_NETWORK_KEY)' ./assets/opgeth-ecdsa.yml > initial-opgeth-ecdsa.yml -yq eval --arg sp1key "$SP1_NETWORK_KEY" '.args.agglayer_prover_sp1_key = $sp1key' ./assets/opgeth-ecdsa.yml > initial-opgeth-ecdsa.yml +yq e '.args.agglayer_prover_sp1_key = strenv(SP1_NETWORK_KEY) | .args.sp1_prover_key = strenv(SP1_NETWORK_KEY)' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml -yq eval --arg sp1key "$SP1_NETWORK_KEY" ' - .args.agglayer_prover_sp1_key = $sp1key | - .args.sp1_prover_key = $sp1key -' ./assets/erigon-sovereign.yml > initial-erigon-sovereign.yml From fce04e36ca998f171b4bfd5aff089605c8a1235d Mon Sep 17 00:00:00 2001 From: obynonwane Date: Sat, 18 Oct 2025 18:09:27 +0000 Subject: [PATCH 37/39] removing comments --- .github/workflows/upgrade-agglayer-e2e.yml | 25 ---------------------- 1 file changed, 25 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index efb855159..fa5993370 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -70,31 +70,6 @@ jobs: polycli version popd - # Install yq & jq - # - name: Install jq 1.6 and yq 3.3.4 (stable legacy version) - # run: | - # set -euxo pipefail - - # tmpdir="$(mktemp -d)" - - # # --- jq 1.6 --- - # curl -fsSL -o "$tmpdir/jq" \ - # https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 - # echo "Installing jq 1.6 to /usr/local/bin" - # sudo install -m 0755 "$tmpdir/jq" /usr/local/bin/jq - # jq --version # expect: jq-1.6 - - # # --- yq 3.3.4 --- - # sudo pip3 uninstall -y yq || true - # sudo rm -f /usr/bin/yq /usr/local/bin/yq || true - - # YQ_URL="https://github.com/mikefarah/yq/releases/download/3.3.4/yq_linux_amd64" - # curl -fsSL -o "$tmpdir/yq" "$YQ_URL" - # echo "Installing yq 3.3.4 to /usr/local/bin" - # sudo install -m 0755 "$tmpdir/yq" /usr/local/bin/yq - # yq --version # expect: yq version 3.3.4 - - # rm -rf "$tmpdir" - name: Install jq 1.6 and yq v4 run: | From 6f7b0d7ead7f785682a156e2fe741bdfd799fcfc Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 4 Dec 2025 10:10:04 +0000 Subject: [PATCH 38/39] retrying --- .../assets/opgeth-ecdsa.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml index f6a1ef5b6..fd7dbb59a 100644 --- a/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml +++ b/scenarios/agglayer-upgrade-with-supplied-version/assets/opgeth-ecdsa.yml @@ -17,7 +17,7 @@ args: zkevm_rollup_chain_id: 2151909 deployment_suffix: "-002" zkevm_rollup_id: 2 - # OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. + # OP Networks rely on L1 blocks to have finalisation on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof. # This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s. # Note this will noticeably increase the deployment time because of the increased L1 finality. l1_seconds_per_slot: 2 # TEMPORARY - DO NOT MERGE From 5cb2f67f415ff49803ea90dfed603bfd3e792639 Mon Sep 17 00:00:00 2001 From: obynonwane Date: Thu, 4 Dec 2025 10:59:24 +0000 Subject: [PATCH 39/39] reworked the ghcr login --- .github/workflows/upgrade-agglayer-e2e.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/upgrade-agglayer-e2e.yml b/.github/workflows/upgrade-agglayer-e2e.yml index fa5993370..c2e466794 100644 --- a/.github/workflows/upgrade-agglayer-e2e.yml +++ b/.github/workflows/upgrade-agglayer-e2e.yml @@ -41,15 +41,21 @@ jobs: - name: Checkout uses: actions/checkout@v4 - # If we pull private GHCR images, need this login; else no need - - name: Login to GHCR + - name: Login to Docker Hub if: ${{ env.DOCKER_USERNAME != '' && env.DOCKER_TOKEN != '' }} uses: docker/login-action@v3 with: - registry: ghcr.io username: ${{ env.DOCKER_USERNAME }} password: ${{ env.DOCKER_TOKEN }} + # GHCR login + - name: Login to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + # Install kurtosis - name: Install Kurtosis (via apt.fury.io) run: |