Files
smom-dbis-138/docs/deployment/MIRROR_REGISTRY_DEPLOYMENT.md
2026-03-02 12:14:09 -08:00

1.2 KiB

MirrorRegistry Deployment

Purpose: Deploy MirrorRegistry to public mainnets for Merkle commitment mirroring (DBIS 138 / Alltra 651940 → public).

Contract

  • File: contracts/mirror/MirrorRegistry.sol
  • Interface: submitCommit(uint256 sourceChainId, uint64 startBlock, uint64 endBlock, bytes32 root, string calldata uri, uint64 ts)
  • Event: CommitSubmitted(sourceChainId, startBlock, endBlock, root, uri, ts)
  • Access: Publisher allowlist; admin can set publishers and pause.

Deploy (one mainnet)

cd smom-dbis-138
export PRIVATE_KEY=0x...
export MIRROR_ADMIN=0x...   # or DEPLOYER

forge script script/DeployMirrorRegistry.s.sol \
  --rpc-url $ETH_MAINNET_RPC_URL \
  --broadcast \
  --verify

Post-deploy

  1. Set publisher address(es) for the Mirroring Service warm key: setPublisher(publisher, true).
  2. Document deployed address per chain in DEPLOYED_ADDRESSES or this doc.
  3. Mirroring Service calls submitCommit(...) with root from Merkle commitment builder.

Multi-mainnet (Phase 3)

Repeat deploy with same admin/publisher pattern on Arbitrum, Base, Polygon, BSC using respective RPC and chain IDs. MS can post the same root to multiple MirrorRegistry instances for redundancy.