- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains - Omit embedded publish git dirs and empty placeholders from index Made-with: Cursor
8.6 KiB
Gas-Native c* / cW* Rollout Runbook
Purpose: Safely activate the Wave 1 gas-native compliant families without breaking existing live corridors. This runbook covers the operator sequence for registry, env, API publication, bridge readiness, and venue exposure.
1. Scope
Wave 1 families:
eth_mainneton Ethereum Mainneteth_l2on Optimism, Arbitrum One, and Basebnbon BSCpolon Polygonavaxon Avalanche C-Chaincroon Cronosxdaion Gnosis Chainceloon Celowemixon Wemix
Canonical gas-family assets live on Chain 138 as c*. Mirrored assets live on destination chains as cW*. DODO PMM is the compliant edge venue; Uniswap v3 is the mandatory reference venue; Balancer and Curve are same-window only where the protocol exists and the basket design is valid; 1inch is routing exposure only after underlying venues are live.
2. Safety Rules
- Do not overwrite working bridge env or live pool addresses with placeholders.
- Do not mark Balancer, Curve, or 1inch live until the required DODO and Uniswap lanes are already funded and indexed.
- Do not promote a lane from
hybrid_captostrict_escrowby renaming symbols or swapping token identities. Promotion is policy and verifier wiring, not a registry rename. - Keep
eth_mainnetandeth_l2isolated. Cross-lane redemption is only allowed inside theeth_l2family.
3. Config Sources
- Registry:
config/token-mapping-multichain.json - Runtime transport overlay:
config/gru-transport-active.json - Public deployment graph:
cross-chain-pmm-lps/config/deployment-status.json - Publication runtime:
smom-dbis-138/services/token-aggregation/.env.example
4. Operator Sequence
- Confirm config integrity.
bash scripts/validation/validate-config-files.sh
node cross-chain-pmm-lps/scripts/validate-deployment-status.cjs
- Sync publication env for token-aggregation without touching live operator RPCs.
bash scripts/deploy-token-aggregation-for-publication.sh /tmp/token-aggregation-gas-rollout
The deploy helper now reads config/gru-transport-active.json and syncs every referenced env key into the published .env, including the gas-family CW_GAS_* and CW_MAX_OUTSTANDING_* keys.
It also publishes CW_ASSET_RESERVE_VERIFIER_DEPLOYED_CHAIN138 as a neutral reference to the deployed generic gas verifier without auto-activating the live gas-verifier envs.
When you want the non-secret gas runtime scaffold locally, run bash scripts/verify/print-gas-runtime-env-canonical.sh. It derives per-lane caps from the registry and uses the live canonical totalSupply() as the zero-supply baseline for outstanding / escrowed defaults.
- Verify the explorer-facing publication surface.
SKIP_BRIDGE_ROUTES=0 SKIP_BRIDGE_PREFLIGHT=0 SKIP_GAS_REGISTRY=0 \
bash scripts/verify/check-public-report-api.sh https://explorer.d-bis.org
bash scripts/verify/check-token-aggregation-chain138-api.sh
ALLOW_BLOCKED=1 bash scripts/verify/check-gru-transport-preflight.sh https://explorer.d-bis.org
- Inspect gas-lane deployment state before activating routing.
bash scripts/verify/check-gas-public-pool-status.sh
bash scripts/verify/check-gas-rollout-deployment-matrix.sh
The gas rollout verifier summarizes:
- runtime-ready vs blocked gas transport pairs
- strict-escrow vs hybrid-cap lanes
- DODO wrapped-native and stable-quote pool coverage
- Uniswap v3 reference visibility
- Balancer / Curve support flags
- 1inch routing visibility
- missing env refs or supply-accounting blockers per lane
The deployment matrix adds the contract-level audit:
- whether the canonical gas token actually exists on Chain 138
- whether the mirrored gas token actually exists on the destination chain
- whether the currently loaded L1/L2 bridge refs resolve to bytecode
- whether the gas verifier and vault refs resolve to bytecode
- the next deploy or config command for each blocked lane
Current live baseline as of 2026-04-05:
CWAssetReserveVerifieris deployed on Chain 138 at0xbf26a679586663f87f3bf3f52c79479b8aa8d854, but it is not attached to the live L1 bridge yet.- All 9 Wave 1 canonical gas-family tokens are deployed on Chain 138.
- 10 of 11 public mirrors are deployed and have bridge
MINTER_ROLE/BURNER_ROLEgranted. - The only undeployed mirror is
cWWEMIXon chain1111. wemixis now carried as deferred staged metadata in the registry, not an active transport lane. The active gas rollout matrix therefore covers10active transport pairs and1deferred pair.scripts/verify/check-gas-rollout-deployment-matrix.shnow also probes each active lane's destination CCIP selector on the live Chain 138 bridge. Current live status is0/10destinations wired and the observed Chain 138 bridge exposes onlyadmin+destinations(...)read paths, so it is reported aspartial_destination_onlyrather than full accounting introspection.scripts/deployment/print-gas-l1-destination-wiring-commands.shprints the exactconfigureDestination(address,uint64,address,bool)commands still needed for the 10 active non-Wemix gas lanes, using the selector metadata resolved from the active GRU transport overlay.scripts/deployment/run-gas-l1-destination-wiring.shwraps those same 10 commands into a single operator-ready runner. It is echo-only by default and only broadcasts whenEXECUTE_GAS_L1_DESTINATIONS=1is set.
-
Only after the verifier is clean for a lane, activate public routing in this order:
-
DODO wrapped-native pool live
-
DODO stable-quote pool live
-
Uniswap v3 reference live
-
Balancer and Curve when supported and funded
-
1inch routing visibility
5. Required Env Groups
Publication and operator surfaces should provide:
CHAIN138_L1_BRIDGECW_BRIDGE_*for every enabled destination, includingCW_BRIDGE_WEMIXCW_RESERVE_VERIFIER_CHAIN138CW_STABLECOIN_RESERVE_VAULTCW_RESERVE_SYSTEMCW_GAS_STRICT_ESCROW_VERIFIER_CHAIN138CW_GAS_HYBRID_CAP_VERIFIER_CHAIN138CW_GAS_ESCROW_VAULT_CHAIN138CW_GAS_TREASURY_SYSTEMCW_MAX_OUTSTANDING_*CW_GAS_OUTSTANDING_*CW_GAS_ESCROWED_*CW_GAS_TREASURY_BACKED_*CW_GAS_TREASURY_CAP_*
For publication-only environments, zero-valued gas accounting is acceptable when the lane has no outstanding supply yet. Live operators should replace those zeros with authoritative values before enabling routing or claiming runtime readiness.
CW_ASSET_RESERVE_VERIFIER_DEPLOYED_CHAIN138 is safe to publish as a neutral reference, but it does not mean the live bridge has been attached to that verifier yet.
6. Lane Promotion Checklist
To promote a gas lane from hybrid_cap to strict_escrow:
- Deploy or confirm the strict escrow verifier.
- Confirm wrapped-native custody or equivalent escrow source.
- Update the verifier and accounting env refs.
- Keep the same
familyKey, canonical symbol, mirrored symbol, and pool addresses. - If you use the generic verifier path, it is valid to point both
CW_GAS_STRICT_ESCROW_VERIFIER_CHAIN138andCW_GAS_HYBRID_CAP_VERIFIER_CHAIN138at the same deployedCWAssetReserveVerifierinstance and configure the token-specific rules inside that verifier. - Re-run:
bash scripts/validation/validate-config-files.sh
node cross-chain-pmm-lps/scripts/validate-deployment-status.cjs
bash scripts/verify/check-gas-public-pool-status.sh
bash scripts/verify/check-gru-transport-preflight.sh https://explorer.d-bis.org
7. Manual / Live-Only Steps
The repo and live deploys now cover the token-contract layer. These steps still require operator execution:
- fund DODO and Uniswap lanes
- fund the deployer with at least
0.4 WEMIX, deploy the Wemix CCIP bridges, and setCW_BRIDGE_WEMIXbefore deploying the Wemix mirror - replace the remaining Wemix placeholder mirror address
- decide when to attach the generic gas verifier to the live L1 bridge
- promote Balancer / Curve / 1inch only after venue proof
- wire live treasury and escrow accounting feeds
- perform fork or live-dry-run execution for each new lane
8. Related Commands
# Local rollout integrity
bash scripts/validation/validate-config-files.sh
node cross-chain-pmm-lps/scripts/validate-deployment-status.cjs
# Publication health
SKIP_BRIDGE_ROUTES=0 SKIP_BRIDGE_PREFLIGHT=0 SKIP_GAS_REGISTRY=0 \
bash scripts/verify/check-public-report-api.sh https://explorer.d-bis.org
# Runtime readiness
bash scripts/verify/check-gru-transport-preflight.sh https://explorer.d-bis.org
bash scripts/verify/check-gas-public-pool-status.sh