Ask
Make verification cover the networks a consumer actually deploys to, so a repo that broadcasts to a subset of LibRainDeploy.supportedNetworks() can bind RainDeployVerify.
The gap, verified on main (b19a415)
The broadcast side can already be scoped: RainDeployBroadcast.deployNetworks() is virtual (src/abstract/RainDeployBroadcast.sol:62), and its NatSpec names st0x.deploy as the reason. The verification side can't. It reads LibRainDeploy.supportedNetworks() (9 networks) directly, with no hook:
RainDeployVerifyChain: checkDeployedOnSupportedNetworks (:164) and testSupportedNetworkChainIdsAreBound (:278).
RainDeployVerifySnapshot.testSupportedNetworksAreFullyConfigured (:103).
So a consumer that deploys to fewer networks has every release held to networks it never broadcasts to, and its foundry.toml held to exactly the 9.
Consumer hitting it
S01-Issuer/st0x.deploy#379 ports st0x.deploy onto 0.1.11. It deploys to base, ethereum, hyperevm, robinhood and bsc, set through its deployNetworks() override. Binding RainDeployVerify there would:
- require every st0x release to be live on
arbitrum, base_sepolia, flare and polygon;
- fail the config check even across st0x's own five.
robinhood has no [etherscan] entry on purpose: Etherscan v2 doesn't index chain 4663, and it verifies through Sourcify. Several other entries carry neither chain nor url.
#379 therefore binds only RainDeployVerifySnapshotBase plus the frozen-record check, and has no chain group at all.
Ask
Make verification cover the networks a consumer actually deploys to, so a repo that broadcasts to a subset of
LibRainDeploy.supportedNetworks()can bindRainDeployVerify.The gap, verified on
main(b19a415)The broadcast side can already be scoped:
RainDeployBroadcast.deployNetworks()isvirtual(src/abstract/RainDeployBroadcast.sol:62), and its NatSpec names st0x.deploy as the reason. The verification side can't. It readsLibRainDeploy.supportedNetworks()(9 networks) directly, with no hook:RainDeployVerifyChain:checkDeployedOnSupportedNetworks(:164) andtestSupportedNetworkChainIdsAreBound(:278).RainDeployVerifySnapshot.testSupportedNetworksAreFullyConfigured(:103).So a consumer that deploys to fewer networks has every release held to networks it never broadcasts to, and its
foundry.tomlheld to exactly the 9.Consumer hitting it
S01-Issuer/st0x.deploy#379 ports st0x.deploy onto 0.1.11. It deploys to
base,ethereum,hyperevm,robinhoodandbsc, set through itsdeployNetworks()override. BindingRainDeployVerifythere would:arbitrum,base_sepolia,flareandpolygon;robinhoodhas no[etherscan]entry on purpose: Etherscan v2 doesn't index chain 4663, and it verifies through Sourcify. Several other entries carry neitherchainnorurl.#379 therefore binds only
RainDeployVerifySnapshotBaseplus the frozen-record check, and has no chain group at all.