Skip to content
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions scenarios/agglayer-upgrade-with-supplied-version/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Agglayer Upgrade/Downgrade Automation

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**.
Comment thread
obynonwane marked this conversation as resolved.
Outdated
- 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

---
Comment thread
obynonwane marked this conversation as resolved.

## Scripts

- `run.sh`
Main orchestration script. Handles bootstrap, upgrade, and optional downgrade.
- **Upgrade usage:**
```bash
./run.sh FROM_TAG TO_TAG
```

example

```bash
./run.sh 0.2.2 0.2.3
```

- **Downgrade usage:**
```bash
./run.sh FROM_TAG TO_TAG downgrade
```
example

```bash
./run.sh 0.2.3 0.2.2 downgrade
```
## Arguments & Descriptions

| Argument | Required | Description |
|------------------------|----------|-------------|
| `<FROM_TAG>` | Yes | Docker image tag to start with (e.g., `0.2.2`)|
| `<TO_TAG>` | Yes | Docker image tag to upgrade to (e.g., `0.2.3`)|
| `[ACTION]` | No | Optional: set to `downgrade` to downgrade back to `<FROM_TAG>` after upgrade |

---



Original file line number Diff line number Diff line change
@@ -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"
}
Original file line number Diff line number Diff line change
@@ -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
Comment thread
jhkimqd marked this conversation as resolved.
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"
Original file line number Diff line number Diff line change
@@ -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
Comment thread
obynonwane marked this conversation as resolved.
Outdated
consensus_contract_type: rollup
sequencer_type: erigon
agglayer_prover_sp1_key: "0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8" # Replace with valid key
Comment thread
jhkimqd marked this conversation as resolved.
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"
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions scenarios/agglayer-upgrade-with-supplied-version/env.example
Original file line number Diff line number Diff line change
@@ -0,0 +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
Comment thread
jhkimqd marked this conversation as resolved.
Outdated
SP1_NETWORK_KEY=0x50630eb71ab68ff812fcb9b9c58859f9e9f70a62b7e9e97c9c1cc09d86c760d8 # Replace with valid key
Comment thread
jhkimqd marked this conversation as resolved.
FROM_TAG=0.3.5
TO_TAG=0.3.0-rc.21
Loading