Split out of #246, which is the roster hook. This is the other half and does not
follow from it.
The gap
RainDeployVerifySnapshot.testSupportedNetworksAreFullyConfigured requires an
[etherscan] entry for every network in the set it checks. #246 makes that set
the consumer's own roster rather than the org's nine, which is right for
[rpc_endpoints] and does not help here.
A network with no Etherscan deployment is a fact about the NETWORK, not about
any consumer. st0x.deploy deliberately has no [etherscan] entry for
Robinhood: chain 4663 is not indexed by Etherscan's v2 API, its own comment
records that an entry "would only make foundry demand an API key it cannot use",
and it verifies with --verifier sourcify. So even scoped to st0x's own five
networks, the assertion fails on a config that is correct.
Shape of a fix
The [etherscan] requirement wants its own set — the networks that HAVE an
Etherscan deployment — rather than a scoping of the deploy roster. That set is a
property of the networks, so it belongs beside supportedNetworks() in
LibRainDeploy rather than being overridable per consumer.
Interaction with #237
Open PR #237 (fix-233) generates [rpc_endpoints] and [etherscan] from
LibRainDeploy.supportedNetworkConfigs() and DELETES both
testSupportedNetworksAreFullyConfigured and checkNetworksConfigured. If that
lands, this assertion goes with it and this issue is moot — the generator then
has to know which networks carry an Etherscan entry, which is the same fact
stated once in the roster instead of asserted against it.
So the answer here may be "wait for #237" rather than a separate mechanism. #237
is out of scope for the Protofire round and ordered after it, which is why this
is filed rather than folded into that PR.
Split out of #246, which is the roster hook. This is the other half and does not
follow from it.
The gap
RainDeployVerifySnapshot.testSupportedNetworksAreFullyConfiguredrequires an[etherscan]entry for every network in the set it checks. #246 makes that setthe consumer's own roster rather than the org's nine, which is right for
[rpc_endpoints]and does not help here.A network with no Etherscan deployment is a fact about the NETWORK, not about
any consumer.
st0x.deploydeliberately has no[etherscan]entry forRobinhood: chain 4663 is not indexed by Etherscan's v2 API, its own comment
records that an entry "would only make foundry demand an API key it cannot use",
and it verifies with
--verifier sourcify. So even scoped to st0x's own fivenetworks, the assertion fails on a config that is correct.
Shape of a fix
The
[etherscan]requirement wants its own set — the networks that HAVE anEtherscan deployment — rather than a scoping of the deploy roster. That set is a
property of the networks, so it belongs beside
supportedNetworks()inLibRainDeployrather than being overridable per consumer.Interaction with #237
Open PR #237 (
fix-233) generates[rpc_endpoints]and[etherscan]fromLibRainDeploy.supportedNetworkConfigs()and DELETES bothtestSupportedNetworksAreFullyConfiguredandcheckNetworksConfigured. If thatlands, this assertion goes with it and this issue is moot — the generator then
has to know which networks carry an Etherscan entry, which is the same fact
stated once in the roster instead of asserted against it.
So the answer here may be "wait for #237" rather than a separate mechanism. #237
is out of scope for the Protofire round and ordered after it, which is why this
is filed rather than folded into that PR.