Skip to content

Standardize post-deploy verification across LibRainDeploy / rainix #126

@thedavidmeister

Description

@thedavidmeister

The rain.extrospection deploy workflow currently bolts on a post-deploy verification step that re-implements:

  • per-chain loop over the 5 Rain-supported networks
  • forge chain-alias gotcha (underscore form rejected, hyphen form accepted)
  • explicit --etherscan-api-key plumbing per chain
  • "already verified" exit-code handling
  • a tiny forge helper (PrintExtrospectAddress.sol) to extract the pinned Zoltu address constant out of source so the workflow YAML doesn't hardcode it

The current ad-hoc implementation lives at rainlanguage/rain.extrospection — see .github/workflows/manual-sol-artifacts.yaml and script/PrintExtrospectAddress.sol on main (introduced in commits 1a48acf, 94c3d4f, 9ce7049).

Each new repo that consumes LibRainDeploy.deployAndBroadcast will need to re-do this. Standardize by either:

  1. Extending LibRainDeploy.deployToNetworks to run the verify step inline (instead of just printing the manual command) using the etherscan keys it already has access to via foundry config.
  2. Adding a verify command in rainix that takes a contract path + address and loops the verify across the supported networks.

Option 1 keeps the verification co-located with the broadcast and codehash check. Option 2 lets users verify pre-existing deploys without re-running the broadcast script.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions