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:
- 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.
- 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.
The rain.extrospection deploy workflow currently bolts on a post-deploy verification step that re-implements:
--etherscan-api-keyplumbing per chainPrintExtrospectAddress.sol) to extract the pinned Zoltu address constant out of source so the workflow YAML doesn't hardcode itThe current ad-hoc implementation lives at
rainlanguage/rain.extrospection— see.github/workflows/manual-sol-artifacts.yamlandscript/PrintExtrospectAddress.solonmain(introduced in commits1a48acf,94c3d4f,9ce7049).Each new repo that consumes
LibRainDeploy.deployAndBroadcastwill need to re-do this. Standardize by either:LibRainDeploy.deployToNetworksto run the verify step inline (instead of just printing the manual command) using the etherscan keys it already has access to via foundry config.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.