Single orchestrated deployment: BSC-parity 45-tx EVM + ChainRegistry peers (BSC, Terra Classic, Solana) #122

Closed
opened 2026-04-29 06:43:03 +00:00 by PlasticDigits · 11 comments
PlasticDigits commented 2026-04-29 06:43:03 +00:00 (Migrated from gitlab.com)

Summary

Deliver a single orchestrated deployment entrypoint that completes the canonical BSC-equivalent setup on a new EVM chain (e.g. MegaETH):

  1. EVM layer: the full 45 outer transactions in historical BSC order (parity with bsc-parity-golden.json), with only target-chain-specific parameters where appropriate (RPC, tail WETH / CHAIN_IDENTIFIER / THIS_CHAIN_ID, etc.—see GL-121 / docs/deployment-megaeth.md).

  2. Cross-chain registry layer: register all peer networks required for parity with mainnet BSC behavior on the new chain’s ChainRegistry: BSC, Terra Classic, and Solana, using the same string identifiers and bytes4 chain keys as production (not ad hoc MegaETH-only IDs for peers).

This closes the gap after GL-121 (segmented EvmParityReplay + manual step 18) and the gap vs deploy-evm-full.sh Phase 6, which today wires Terra + peer EVM on BSC/opBNB but does not provide one MegaETH-sized single script.

Motivation

  • Operators should not stitch parity-replay segments, manual CREATE2 step 18, and three separate cast send registerChain flows by hand.
  • Production BSC knows Terra Classic and peer EVMs (and Solana is registered via scripts such as scripts/solana/register-chain-evm.sh). A new parity chain must mirror that peer matrix so routing matches BSC, differing only by this chain’s own identifier/bytes4 where applicable.

Relationship to GL-121

  • GL-121: dry-check, golden JSON, runBroadcastHead / runBroadcastFaucet19 / runBroadcastTail, parity-replay.sh.
  • This issue: one operator-facing script (or thin orchestrator) that runs the full EVM sequence and performs peer registration consistent with BSC. GL-121 remains the implementation core; this issue is orchestration + cross-chain parity.

Canonical references

Artifact Role
packages/contracts-evm/script/bsc-parity-golden.json 45-tx order, nonces, golden addresses
packages/contracts-evm/script/EvmParityReplay.s.sol Segmented broadcast (reuse; do not duplicate deploy logic)
docs/deployment-megaeth.md Step 18 Nick CREATE2 note
scripts/deploy-evm-full.sh → register_cross_chains Pattern for registerChain(string,bytes4) on EVM registries (Terra + peer EVM today; extend for MegaETH + Solana on new registry)
scripts/solana/register-chain-evm.sh Registers Solana on an EVM ChainRegistry (solana_mainnet-beta, 0x00000005)
scripts/megaeth/register-megaeth-on-chain-registry.sh Registers MegaETH on an existing network’s registry (inverse direction)
scripts/solana/register-chain-terra.sh Registers Solana on Terra bridge (ExecuteMsg::register_chain) — may be required for full mesh

Cross-chain registration requirements (in scope)

A. On the new chain (after parity deploy exposes ChainRegistry proxy)

From the same scripting surface as the 45-tx deploy (or invoked immediately after with shared env), register peers so they match mainnet BSC’s peer set semantics:

Peer Identifier (string) bytes4 key Reference
BSC evm_56 Same as BSC mainnet V2 id used in prod (BRIDGE_BSC_CHAIN_ID / deployment constants) Align with deploy-evm-full.sh / frozen mainnet docs
Terra Classic terraclassic_columbus-5 Same as BRIDGE_TERRA_CHAIN_ID in prod Same as BSC register_cross_chains
Solana solana_mainnet-beta 0x00000005 Same as scripts/solana/register-chain-evm.sh

Order and admin signing strategy should mirror deploy-evm-full.sh Phase 6 (interactive cast send or documented equivalent). Do not omit Solana or Terra “because this chain is EVM-only”; the product requirement is parity with BSC configuration.

B. Reverse registrations (so existing networks recognize the new chain)

Document and automate where feasible (may be separate substeps with distinct keys/RPCs):

  • BSC (and/or opBNB) ChainRegistry: register the new chain (e.g. MegaETH evm_4326 / 0x000010e6) — pattern in scripts/megaeth/register-megaeth-on-chain-registry.sh.
  • Terra Classic bridge: register_chain for the new EVM identifier + bytes4 (see Terra deployment docs / ExecuteMsg::RegisterChain).
  • Solana program: any required registration of the new EVM peer per docs/deployment-solana-mainnet.md (if applicable).

Exact Terra/Solana message shapes must match existing mainnet scripts; no new identifier schemes unless product explicitly changes.

EVM sequence requirements (unchanged from prior draft)

  1. Single entrypoint runs runDryCheck PASS (or fails first), then nonces 0–17 (runBroadcastHead), step 18 (Nick CREATE2 — strategy documented), nonce 19 (runBroadcastFaucet19), nonces 20–44 (runBroadcastTail).
  2. 45 outer txs, deployer nonce 45 after last tx (or documented equivalence).
  3. Env contract identical to today’s segmented flow + documented .env.example for MegaETH-class runs.

Non-goals (narrow)

  • Changing deployed BSC bytecode or historical txs.
  • Token mapping matrix (TokenRegistry destinations) unless explicitly added as a follow-up—this issue must at minimum cover ChainRegistry peer registration for BSC / Terra / Solana in both directions as required for routing parity.

Acceptance criteria

  • One documented primary script runs EVM parity sequence end-to-end (with explicit handling for step 18).
  • Same script or clearly chained phase registers BSC, Terra Classic, and Solana on the new chain’s ChainRegistry with production-identical (identifier, bytes4) peers.
  • Runbook lists reverse registration steps (MegaETH on BSC, Terra, Solana) with links to existing helper scripts or wrapped calls.
  • Dry-check / golden EOA addresses still pass regression tests.
  • Docs (deployment-megaeth.md, deployment-guide.md §4.2a) updated so operators see one checklist: EVM 45-tx + peer mesh.

Correction note (scope clarification)

Earlier drafts treated Terra/Solana as out of scope. That was wrong. The 45-tx sequence is EVM-only, but full BSC-equivalent setup includes registering BSC, Terra Classic, and Solana as peers—the same cross-chain surface area operators rely on after deploy-evm-full.sh Phase 6.

## Summary Deliver a **single orchestrated deployment entrypoint** that completes the **canonical BSC-equivalent setup on a new EVM chain** (e.g. MegaETH): 1. **EVM layer:** the **full 45 outer transactions** in historical BSC order (parity with `bsc-parity-golden.json`), with only **target-chain-specific** parameters where appropriate (RPC, tail `WETH` / `CHAIN_IDENTIFIER` / `THIS_CHAIN_ID`, etc.—see GL-121 / `docs/deployment-megaeth.md`). 2. **Cross-chain registry layer:** register **all peer networks required for parity with mainnet BSC behavior** on the **new chain’s `ChainRegistry`**: **BSC**, **Terra Classic**, and **Solana**, using the **same string identifiers and `bytes4` chain keys** as production (not ad hoc MegaETH-only IDs for peers). This closes the gap after **GL-121** (segmented `EvmParityReplay` + manual step 18) and the gap vs **`deploy-evm-full.sh` Phase 6**, which today wires Terra + peer EVM on BSC/opBNB but does **not** provide one MegaETH-sized single script. ## Motivation - Operators should not stitch **parity-replay segments**, **manual CREATE2 step 18**, and **three separate `cast send registerChain` flows** by hand. - Production BSC **knows** Terra Classic and peer EVMs (and Solana is registered via scripts such as `scripts/solana/register-chain-evm.sh`). A new parity chain must **mirror that peer matrix** so routing matches BSC, differing only by **this chain’s** own identifier/bytes4 where applicable. ## Relationship to GL-121 - **GL-121:** dry-check, golden JSON, `runBroadcastHead` / `runBroadcastFaucet19` / `runBroadcastTail`, `parity-replay.sh`. - **This issue:** one **operator-facing** script (or thin orchestrator) that runs the **full EVM sequence** **and** performs **peer registration** consistent with BSC. GL-121 remains the implementation core; this issue is **orchestration + cross-chain parity**. ## Canonical references | Artifact | Role | |----------|------| | `packages/contracts-evm/script/bsc-parity-golden.json` | 45-tx order, nonces, golden addresses | | `packages/contracts-evm/script/EvmParityReplay.s.sol` | Segmented broadcast (reuse; do not duplicate deploy logic) | | `docs/deployment-megaeth.md` | Step 18 Nick CREATE2 note | | `scripts/deploy-evm-full.sh` → `register_cross_chains` | **Pattern** for `registerChain(string,bytes4)` on EVM registries (Terra + peer EVM today; extend for MegaETH + Solana on new registry) | | `scripts/solana/register-chain-evm.sh` | Registers **Solana** on an EVM `ChainRegistry` (`solana_mainnet-beta`, `0x00000005`) | | `scripts/megaeth/register-megaeth-on-chain-registry.sh` | Registers **MegaETH** on an **existing** network’s registry (inverse direction) | | `scripts/solana/register-chain-terra.sh` | Registers **Solana** on **Terra** bridge (`ExecuteMsg::register_chain`) — may be required for full mesh | ## Cross-chain registration requirements (in scope) ### A. On the **new chain** (after parity deploy exposes `ChainRegistry` proxy) From the **same scripting surface** as the 45-tx deploy (or invoked immediately after with shared env), register peers so they match **mainnet BSC’s peer set** semantics: | Peer | Identifier (string) | `bytes4` key | Reference | |------|---------------------|--------------|-----------| | **BSC** | `evm_56` | Same as BSC mainnet V2 id used in prod (`BRIDGE_BSC_CHAIN_ID` / deployment constants) | Align with `deploy-evm-full.sh` / frozen mainnet docs | | **Terra Classic** | `terraclassic_columbus-5` | Same as `BRIDGE_TERRA_CHAIN_ID` in prod | Same as BSC `register_cross_chains` | | **Solana** | `solana_mainnet-beta` | `0x00000005` | Same as `scripts/solana/register-chain-evm.sh` | Order and admin signing strategy should mirror **`deploy-evm-full.sh` Phase 6** (interactive `cast send` or documented equivalent). **Do not** omit Solana or Terra “because this chain is EVM-only”; the product requirement is **parity with BSC configuration**. ### B. **Reverse** registrations (so existing networks recognize the new chain) Document and automate where feasible (may be separate substeps with distinct keys/RPCs): - **BSC (and/or opBNB) `ChainRegistry`:** register the new chain (e.g. MegaETH `evm_4326` / `0x000010e6`) — pattern in `scripts/megaeth/register-megaeth-on-chain-registry.sh`. - **Terra Classic bridge:** `register_chain` for the new EVM identifier + bytes4 (see Terra deployment docs / `ExecuteMsg::RegisterChain`). - **Solana program:** any required registration of the new EVM peer per `docs/deployment-solana-mainnet.md` (if applicable). Exact Terra/Solana message shapes must match existing mainnet scripts; **no new identifier schemes** unless product explicitly changes. ## EVM sequence requirements (unchanged from prior draft) 1. Single entrypoint runs **`runDryCheck` PASS** (or fails first), then **nonces 0–17** (`runBroadcastHead`), **step 18** (Nick CREATE2 — strategy documented), **nonce 19** (`runBroadcastFaucet19`), **nonces 20–44** (`runBroadcastTail`). 2. **45 outer txs**, deployer nonce **45** after last tx (or documented equivalence). 3. Env contract identical to today’s segmented flow + **documented** `.env.example` for MegaETH-class runs. ## Non-goals (narrow) - Changing deployed **BSC** bytecode or historical txs. - Token mapping matrix (`TokenRegistry` destinations) **unless** explicitly added as a follow-up—**this issue** must at minimum cover **ChainRegistry peer registration** for BSC / Terra / Solana in both directions as required for routing parity. ## Acceptance criteria - [ ] One documented primary script runs **EVM parity sequence end-to-end** (with explicit handling for step 18). - [ ] Same script or clearly chained **phase** registers **BSC**, **Terra Classic**, and **Solana** on the **new chain’s** `ChainRegistry` with **production-identical** `(identifier, bytes4)` peers. - [ ] Runbook lists **reverse** registration steps (MegaETH on BSC, Terra, Solana) with links to existing helper scripts or wrapped calls. - [ ] Dry-check / golden EOA addresses still pass regression tests. - [ ] Docs (`deployment-megaeth.md`, `deployment-guide.md` §4.2a) updated so operators see **one** checklist: EVM 45-tx + peer mesh. ## Correction note (scope clarification) Earlier drafts treated Terra/Solana as out of scope. **That was wrong.** The **45-tx sequence is EVM-only**, but **full BSC-equivalent setup** includes registering **BSC, Terra Classic, and Solana** as peers—the same cross-chain surface area operators rely on after `deploy-evm-full.sh` Phase 6.
PlasticDigits commented 2026-04-29 06:43:04 +00:00 (Migrated from gitlab.com)

marked this issue as related to #121

marked this issue as related to #121
PlasticDigits commented 2026-04-29 06:46:08 +00:00 (Migrated from gitlab.com)

changed title from Single orchestrated EVM deployment script: full BSC-parity 45-tx sequence (target chain identity only) to Single orchestrated deployment: BSC-parity 45-tx EVM + ChainRegistry peers (BSC, Terra Classic, Solana)

<p>changed title from <code class="idiff">Single orchestrated <span class="idiff left deletion">EVM </span>deployment<span class="idiff deletion"> script: full</span> BSC-parity 45-tx <span class="idiff right deletion">sequence (target chain identity only</span>)</code> to <code class="idiff">Single orchestrated deployment<span class="idiff left addition">:</span> BSC-parity 45-tx <span class="idiff right addition">EVM + ChainRegistry peers (BSC, Terra Classic, Solana</span>)</code></p>
PlasticDigits commented 2026-04-29 06:46:08 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-04-29 06:46:12 +00:00 (Migrated from gitlab.com)

Correction: Initial issue text incorrectly scoped out Terra/Solana. Full BSC-equivalent setup includes ChainRegistry registration of peer chains (BSC, Terra Classic, Solana) with production-identical identifiers/bytes4—not only varying target chain id on the 45 EVM txs. Description updated to match.

**Correction:** Initial issue text incorrectly scoped out Terra/Solana. Full BSC-equivalent setup includes **ChainRegistry** registration of peer chains (**BSC**, **Terra Classic**, **Solana**) with production-identical identifiers/bytes4—not only varying target chain id on the 45 EVM txs. Description updated to match.
PlasticDigits commented 2026-04-29 06:48:46 +00:00 (Migrated from gitlab.com)

Addendum: canonical role addresses and gas preflight (product requirement)

The GL-122 single orchestrated deploy must default the following (overridable only for non-production / explicit opt-in):

Role Default address Env
Deployer 0xD699EbC6930F593f0725D2a7dC58ACC65b41a08e DEPLOYER_ADDRESS
Admin / owner 0xCd4Eb82CFC16d5785b4f7E3bFC255E735e79F39c ADMIN_ADDRESS
Operator 0x1d9e02e0e8c000FE4575c4Aaea96B19De00404CD OPERATOR_ADDRESS
Canceler 0x732A65b80F4625658EbD2B4214E4f8Cf3A67AEEB CANCELER_ADDRESS (for preflight; deploy scripts may not consume)

FEE_RECIPIENT_ADDRESS remains org policy (document in runbook; often admin or a fee vault).

Preflight (before any broadcast)

  1. Deployer, operator, and canceler each must have > 0 native balance on target RPC_URL.
  2. Deployer must have enough native balance for the entire 45-tx flow (head + step 18 + tail + any in-script registerChain sends).
    • Repo provides ./scripts/evm/bsc-parity-preflight.sh: enforces (1) and a conservative minimum deployer balance via MIN_FULL_DEPLOY_BALANCE_WEI (default 2e18 wei; operators lower only after gas estimation on that chain).
    • The orchestrator must run this (or equivalent) as the first step and abort on failure.

Docs

  • docs/deployment-megaeth.md §5.0 documents the table and preflight.

Acceptance (append to GL-122)

  • Orchestrated script sets the default role addresses above and documents overrides.
  • Invokes gas preflight before broadcast; exit non-zero if deployer/operator/canceler lack native gas or deployer is below MIN_FULL_DEPLOY_BALANCE_WEI.
## Addendum: canonical role addresses and gas preflight (product requirement) The **GL-122** single orchestrated deploy must **default** the following (overridable only for non-production / explicit opt-in): | Role | Default address | Env | |------|------------------|-----| | Deployer | `0xD699EbC6930F593f0725D2a7dC58ACC65b41a08e` | `DEPLOYER_ADDRESS` | | Admin / owner | `0xCd4Eb82CFC16d5785b4f7E3bFC255E735e79F39c` | `ADMIN_ADDRESS` | | Operator | `0x1d9e02e0e8c000FE4575c4Aaea96B19De00404CD` | `OPERATOR_ADDRESS` | | Canceler | `0x732A65b80F4625658EbD2B4214E4f8Cf3A67AEEB` | `CANCELER_ADDRESS` (for preflight; deploy scripts may not consume) | `FEE_RECIPIENT_ADDRESS` remains org policy (document in runbook; often admin or a fee vault). ### Preflight (before any broadcast) 1. **Deployer, operator, and canceler** each must have **> 0** native balance on **target `RPC_URL`**. 2. **Deployer** must have **enough** native balance for the **entire** 45-tx flow (head + step 18 + tail + any in-script registerChain sends). - Repo provides **`./scripts/evm/bsc-parity-preflight.sh`**: enforces (1) and a conservative **minimum deployer balance** via `MIN_FULL_DEPLOY_BALANCE_WEI` (default `2e18` wei; operators lower only after gas estimation on that chain). - The **orchestrator** must run this (or equivalent) as the **first** step and **abort** on failure. ### Docs - `docs/deployment-megaeth.md` §5.0 documents the table and preflight. ### Acceptance (append to GL-122) - [ ] Orchestrated script sets the **default role addresses** above and documents overrides. - [ ] Invokes **gas preflight** before broadcast; exit non-zero if deployer/operator/canceler lack native gas or deployer is below `MIN_FULL_DEPLOY_BALANCE_WEI`.
PlasticDigits commented 2026-04-29 06:53:12 +00:00 (Migrated from gitlab.com)

Registering the new chain (eg megaeth) on other evm (eg bsc), terraclassic, solana, should be through seperate one run scripts for each

Registering the new chain (eg megaeth) on other evm (eg bsc), terraclassic, solana, should be through seperate one run scripts for each
PlasticDigits commented 2026-04-29 07:09:15 +00:00 (Migrated from gitlab.com)

mentioned in commit 566d0db854

mentioned in commit 566d0db854618a9a38cc8d5671ff3b0b4d8fe294
PlasticDigits commented 2026-04-29 07:09:32 +00:00 (Migrated from gitlab.com)

Implemented (main 566d0db)

Orchestration

  • scripts/evm/deploy-bsc-parity-orchestrate.sh — canonical defaults for DEPLOYER_ADDRESS, ADMIN_ADDRESS, OPERATOR_ADDRESS, CANCELER_ADDRESS; Phase 0 preflight → Phase 1 runDryCheck → Phase 2 runBroadcastHead → Phase 3 guided Nick CREATE2 step 18 (nonce 18→19) → Phase 4 runBroadcastFaucet19 → Phase 5 runBroadcastTail → Phase 6 optional peer registration when CHAIN_REGISTRY_ADDRESS is set.

Preflight & peers

  • scripts/evm/bsc-parity-preflight.sh — balance gates (MIN_FULL_DEPLOY_BALANCE_WEI, deployer/operator/canceler > 0).
  • scripts/evm/register-parity-peers-on-registry.sh — registers evm_56 / terraclassic_columbus-5 / solana_mainnet-beta with production bytes4 values (PEER_* override supported).

Docs / agents

  • docs/deployment-megaeth.md — §5.0 roles/preflight, §5.2a orchestrator + INV-GL122-*, §5.5 reverse registration (separate scripts per destination).
  • docs/deployment-guide.md §4.2a cross-linked.
  • skills/agent-evm-bsc-parity-replay.md — GL-122 workflows + INV refs.

Tests: forge test --match-contract BscParityReplayDryRun PASS.


Verification checklist

  • Read §5.0 / §5.2a in docs/deployment-megaeth.md; confirm peer tuples match prod (deploy-evm-full.sh / Solana helper semantics).
  • Dry-run: ./scripts/evm/parity-replay.sh dry-check → PARITY_CHECK: PASS with historical deployer.
  • On funded RPC: ./scripts/evm/bsc-parity-preflight.sh exits 0 with sane balances.
  • Orchestrator runs phases until CREATE2 pause (step 18); after replay tx 0xb55a..., nonce 19 → tail completes (with correct forge env for legacy/tail).
  • register-parity-peers-on-registry.sh or orchestrator Phase 6 registers three peers; isChainRegistered(bytes4) true for 0x00000038, 0x00000001, 0x00000005.
  • Reverse registrations executed separately per §5.5 (MegaETH-on-BSC script pattern, Terra, Solana docs).

Closing per GL-122 acceptance.

## Implemented (main `566d0db`) **Orchestration** - `scripts/evm/deploy-bsc-parity-orchestrate.sh` — canonical defaults for `DEPLOYER_ADDRESS`, `ADMIN_ADDRESS`, `OPERATOR_ADDRESS`, `CANCELER_ADDRESS`; Phase 0 preflight → Phase 1 `runDryCheck` → Phase 2 `runBroadcastHead` → Phase 3 guided Nick CREATE2 step 18 (nonce 18→19) → Phase 4 `runBroadcastFaucet19` → Phase 5 `runBroadcastTail` → Phase 6 optional peer registration when `CHAIN_REGISTRY_ADDRESS` is set. **Preflight & peers** - `scripts/evm/bsc-parity-preflight.sh` — balance gates (`MIN_FULL_DEPLOY_BALANCE_WEI`, deployer/operator/canceler &gt; 0). - `scripts/evm/register-parity-peers-on-registry.sh` — registers **evm_56** / **terraclassic_columbus-5** / **solana_mainnet-beta** with production bytes4 values (`PEER_*` override supported). **Docs / agents** - `docs/deployment-megaeth.md` — §5.0 roles/preflight, §5.2a orchestrator + INV-GL122-\*, §5.5 reverse registration (separate scripts per destination). - `docs/deployment-guide.md` §4.2a cross-linked. - `skills/agent-evm-bsc-parity-replay.md` — GL-122 workflows + INV refs. **Tests:** `forge test --match-contract BscParityReplayDryRun` PASS. --- ## Verification checklist - [ ] Read §5.0 / §5.2a in `docs/deployment-megaeth.md`; confirm peer tuples match prod (`deploy-evm-full.sh` / Solana helper semantics). - [ ] Dry-run: `./scripts/evm/parity-replay.sh dry-check` → **PARITY_CHECK: PASS** with historical deployer. - [ ] On funded RPC: `./scripts/evm/bsc-parity-preflight.sh` exits 0 with sane balances. - [ ] Orchestrator runs phases until CREATE2 pause (step 18); after replay tx `0xb55a...`, nonce 19 → tail completes (with correct forge env for legacy/tail). - [ ] `register-parity-peers-on-registry.sh` or orchestrator Phase 6 registers three peers; `isChainRegistered(bytes4)` true for `0x00000038`, `0x00000001`, `0x00000005`. - [ ] Reverse registrations executed separately per §5.5 (MegaETH-on-BSC script pattern, Terra, Solana docs). Closing per GL-122 acceptance.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-04-29 07:09:40 +00:00
PlasticDigits commented 2026-04-29 07:11:23 +00:00 (Migrated from gitlab.com)

mentioned in commit 125fcc118b

mentioned in commit 125fcc118b0a69bf118f54d1348ac28b6003fcc1
PlasticDigits commented 2026-04-29 09:05:26 +00:00 (Migrated from gitlab.com)

Implemented (main 566d0db)

Orchestration

  • scripts/evm/deploy-bsc-parity-orchestrate.sh — canonical defaults for DEPLOYER_ADDRESS, ADMIN_ADDRESS, OPERATOR_ADDRESS, CANCELER_ADDRESS; Phase 0 preflight → Phase 1 runDryCheck → Phase 2 runBroadcastHead → Phase 3 guided Nick CREATE2 step 18 (nonce 18→19) → Phase 4 runBroadcastFaucet19 → Phase 5 runBroadcastTail → Phase 6 optional peer registration when CHAIN_REGISTRY_ADDRESS is set.

Preflight & peers

  • scripts/evm/bsc-parity-preflight.sh — balance gates (MIN_FULL_DEPLOY_BALANCE_WEI, deployer/operator/canceler native balance > 0).
  • scripts/evm/register-parity-peers-on-registry.sh — registers evm_56 / terraclassic_columbus-5 / solana_mainnet-beta with production bytes4 values (PEER_* override supported).

Docs / agents

  • docs/deployment-megaeth.md — §5.0 roles/preflight, §5.2a orchestrator + INV-GL122-*, §5.5 reverse registration (separate scripts per destination).
  • docs/deployment-guide.md §4.2a cross-linked.
  • skills/agent-evm-bsc-parity-replay.md — GL-122 workflows + INV refs.

Tests: forge test --match-contract BscParityReplayDryRun PASS.


Verification checklist

  • Read §5.0 / §5.2a in docs/deployment-megaeth.md; confirm peer tuples match prod (deploy-evm-full.sh / Solana helper semantics).
  • Dry-run: ./scripts/evm/parity-replay.sh dry-check → PARITY_CHECK: PASS with historical deployer.
  • On funded RPC: ./scripts/evm/bsc-parity-preflight.sh exits 0 with sane balances.
  • Orchestrator runs phases until CREATE2 pause (step 18); after replay tx 0xb55a2348487d743bad8d1e4484e31ebebab2c1ee2b75dd17fb1e3b2d20036dfb, nonce 19 → tail completes (with correct forge env for legacy/tail).
  • register-parity-peers-on-registry.sh or orchestrator Phase 6 registers three peers; isChainRegistered(bytes4) true for 0x00000038, 0x00000001, 0x00000005.
  • Reverse registrations executed separately per §5.5 (MegaETH-on-BSC script pattern, Terra, Solana docs).

Closing per GL-122 acceptance.

## Implemented (main `566d0db`) **Orchestration** - `scripts/evm/deploy-bsc-parity-orchestrate.sh` — canonical defaults for `DEPLOYER_ADDRESS`, `ADMIN_ADDRESS`, `OPERATOR_ADDRESS`, `CANCELER_ADDRESS`; Phase 0 preflight → Phase 1 `runDryCheck` → Phase 2 `runBroadcastHead` → Phase 3 guided Nick CREATE2 step 18 (nonce 18→19) → Phase 4 `runBroadcastFaucet19` → Phase 5 `runBroadcastTail` → Phase 6 optional peer registration when `CHAIN_REGISTRY_ADDRESS` is set. **Preflight & peers** - `scripts/evm/bsc-parity-preflight.sh` — balance gates (`MIN_FULL_DEPLOY_BALANCE_WEI`, deployer/operator/canceler native balance > 0). - `scripts/evm/register-parity-peers-on-registry.sh` — registers **evm_56** / **terraclassic_columbus-5** / **solana_mainnet-beta** with production bytes4 values (`PEER_*` override supported). **Docs / agents** - `docs/deployment-megaeth.md` — §5.0 roles/preflight, §5.2a orchestrator + INV-GL122-\*, §5.5 reverse registration (separate scripts per destination). - `docs/deployment-guide.md` §4.2a cross-linked. - `skills/agent-evm-bsc-parity-replay.md` — GL-122 workflows + INV refs. **Tests:** `forge test --match-contract BscParityReplayDryRun` PASS. --- ## Verification checklist - [ ] Read §5.0 / §5.2a in `docs/deployment-megaeth.md`; confirm peer tuples match prod (`deploy-evm-full.sh` / Solana helper semantics). - [ ] Dry-run: `./scripts/evm/parity-replay.sh dry-check` → **PARITY_CHECK: PASS** with historical deployer. - [ ] On funded RPC: `./scripts/evm/bsc-parity-preflight.sh` exits 0 with sane balances. - [ ] Orchestrator runs phases until CREATE2 pause (step 18); after replay tx `0xb55a2348487d743bad8d1e4484e31ebebab2c1ee2b75dd17fb1e3b2d20036dfb`, nonce 19 → tail completes (with correct forge env for legacy/tail). - [ ] `register-parity-peers-on-registry.sh` or orchestrator Phase 6 registers three peers; `isChainRegistered(bytes4)` true for `0x00000038`, `0x00000001`, `0x00000005`. - [ ] Reverse registrations executed separately per §5.5 (MegaETH-on-BSC script pattern, Terra, Solana docs). Closing per GL-122 acceptance.
PlasticDigits commented 2026-04-29 13:06:45 +00:00 (Migrated from gitlab.com)

mentioned in commit a4063d368c

mentioned in commit a4063d368c501ecf9cd99f10aa308f232a0bc65d
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-bridge-monorepo#122
No description provided.