- 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
5.1 KiB
All-Network Contract Verification And Publication Runbook
Last updated: 2026-04-10
Scope: Chain 138, Ethereum mainnet, and every cross-chain deployment currently tracked in the repo inventories.
Purpose
This runbook defines the repo-standard meaning of verified and published for deployed contracts on all tracked networks.
Use it together with:
- CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS
- PUBLICATION_PACK_EXPLORER_STATUS
- PUBLICATION_ACTIONABLE_BACKLOG
reports/status/contract_verification_publish_matrix.json
Definition of done
A deployment is only considered closed when all of the following are true:
- The contract address is present in the correct repo inventory.
- The deployed runtime exists on the target chain.
- Source code or equivalent explorer verification is completed on the target chain explorer.
- The address is published in every required repo-facing surface:
config/smart-contracts-master.jsonwhen canonicalcross-chain-pmm-lps/config/deployment-status.jsonwhen part of PMM/cW rollout- token list or mapping docs when user-facing
- deployment/status docs where operators rely on them
Chain 138
Canonical verification
Run from a host that can reach Blockscout and the Chain 138 RPC:
bash scripts/verify/run-contract-verification-with-proxy.sh
bash scripts/verify/check-contracts-on-chain-138.sh
DODO v3 / pilot verification
bash scripts/verify/verify-dodo-v3-chain138-blockscout.sh
Publication
After Blockscout verification completes:
- Confirm the address set in
config/smart-contracts-master.json - Confirm the route/token/pool surfaces that depend on it
- Regenerate the all-network matrix:
node scripts/verify/generate-contract-verification-publish-matrix.mjs
Other EVM chains
The repo currently tracks cross-chain deployments and inventory on:
- Ethereum mainnet (
1) - Optimism (
10) - Cronos (
25) - BSC (
56) - Gnosis (
100) - Polygon (
137) - Wemix (
1111) - Arbitrum (
42161) - Celo (
42220) - Avalanche (
43114) - Base (
8453)
Required steps
- Open the chain explorer shown in the generated matrix.
- Verify source or deployment metadata for repo-owned contracts.
- If the address is an external anchor/reference venue, mark it as reference-only in operator notes rather than pretending the repo owns verification.
- Regenerate the matrix and update the chain-specific runbook or token mapping if anything changed.
Ethereum mainnet historical-source example
DODOPMMIntegration (Mainnet) at 0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84 was closed on 2026-04-11 by verifying against the historical smom-dbis-138 source snapshot that actually matches the deployed bytecode, not current HEAD. Keep the provenance note in ETHEREUM_MAINNET_DODOPMMINTEGRATION_VERIFICATION.md with the matching commit, constructor arguments, and create transaction. Explorer-side public name tags remain a manual Etherscan account workflow after source verification passes.
Requested publication packs
For the current execution pass, the requested packs are:
- Ethereum mainnet
- Optimism
- BSC
- Polygon
- Base
Use the generated artifacts to distinguish what is actually closable from the repo:
ETHERSCAN_API_KEY=... node scripts/verify/check-publication-pack-explorer-status.mjs
node scripts/verify/generate-publication-actionable-backlog.mjs
Closure rule for these five packs:
- Auto-submittable backlog empty in
PUBLICATION_ACTIONABLE_BACKLOG.mdmeans the repo-owned automatic submission pass is complete. - Remaining
manual-or-externalrows are not honest candidates for automatic closure until source provenance or explorer ownership is established. inventory-onlyandreference-onlyrows must stay aligned in repo inventories, but should not be misrepresented as repo-owned verification work.
ALL Mainnet / non-EVM adjacent inventories
Not every tracked address lands on a conventional EVM verification path.
651940(ALL Mainnet) still needs publication and documentation closure even where explorer verification is manual or non-standard.- Non-EVM reference inventories should still be published consistently in the repo, even when source verification uses a different platform.
Canonical inventory refresh
Regenerate the repo-wide matrix after any deployment or publication sweep:
node scripts/verify/generate-contract-verification-publish-matrix.mjs
This writes:
reports/status/contract_verification_publish_matrix.jsondocs/11-references/CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS.md
Honest limits
This runbook improves closure and removes ambiguity, but it does not magically invent missing constructor arguments, compiler settings, or third-party explorer API credentials. Where those are missing, the matrix should remain pending until the source bundle is assembled and the publication step is actually completed.