Add Robinhood Chain (4663) and BNB Smart Chain (56) to the supported network set - #161
Conversation
`LibRainDeploy.ROBINHOOD` joins `supportedNetworks()` (eighth entry, after `polygon`), so every consumer's default deploy ships its suite there too and `testZoltuFactoryCodehash` pins the factory on it. The Zoltu factory is live on 4663 with the canonical runtime (verified; the fork test passes against it). Robinhood Chain is an Arbitrum Orbit L2 settling to Ethereum, gas in ETH, EIP-1559 fees. `[rpc_endpoints]` reads `ROBINHOOD_RPC_URL`, which the rainix preflight exports once rainix#371 lands. `[etherscan]` gets an entry because `testSupportedNetworksAreFullyConfigured` requires one per network: Etherscan V2 does not index 4663, so it points at the chain's Blockscout, which speaks the Etherscan API. That explorer has rejected non-browser clients behind a browser challenge, so the entry documents the Sourcify fallback for a failed `--verify`. The key variable `CI_DEPLOY_ROBINHOOD_ETHERSCAN_API_KEY` is exported by the rainix reusables (rainix#371) so config resolution never sees it unset. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe change adds BSC and Robinhood RPC and verification settings. It adds both networks to the deployment library, environment template, and verification workflow. Tests now expect nine supported networks. ChangesNetwork support
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Merge Risk: ⚪ Minimal · up to This change adds BSC and Robinhood to supported deployment and verification configuration, with matching environment aliases and workflow guidance. The supported-network ordering is covered by updated tests, and no merge-blocking risk is evident. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
`LibRainDeploy.BSC` joins `supportedNetworks()` (alphabetical, after `base_sepolia`). The Zoltu factory is live on 56 with the canonical runtime (the fork test pins it). Etherscan V2 covers 56, so the `[etherscan]` entry is the ordinary keyed form with `chain = 56`; the key variable is exported by rainix#371. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3
The same two files #142 touched for HyperEVM and Ethereum: local RPC placeholders for `bsc` and `robinhood`, and `bsc` in `manual-sol-verify`'s default explorer list. Robinhood Chain stays out of that default on purpose (Sourcify-only, see foundry.toml). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3
Adds Robinhood Chain (chain id 4663, an Arbitrum Orbit L2 settling to Ethereum, gas in ETH) to
LibRainDeploy.supportedNetworks(), so every consumer's default deploy ships its suite there andtestZoltuFactoryCodehashpins the factory on it. The Zoltu factory is live on 4663 with the canonical runtime (the fork test passes against it; also verified byte-for-byte against Base on-chain).What changes
ROBINHOOD = "robinhood"constant + eighthsupportedNetworks()entry (afterpolygon);testSupportedNetworkscount/order updated.[rpc_endpoints] robinhood = "${ROBINHOOD_RPC_URL}", exported by the rainix preflight once rainlanguage/rainix#371 lands (it also carries public defaults, so no org secret is required for fork tests).[etherscan] robinhood: required bytestSupportedNetworksAreFullyConfigured. Etherscan V2 does not index 4663, so the entry points at the chain's Blockscout API (Etherscan-compatible, key ignored) withchain = 4663. rainix#371 exportsCI_DEPLOY_ROBINHOOD_ETHERSCAN_API_KEYlike the other keys so a--verifyrun never resolves it unset.Caveat, stated in the toml comment
That Blockscout has answered non-browser clients with a Cloudflare browser challenge from here, so a
--verifymay fail on this network after the broadcast. Sourcify supports 4663 and Blockscout imports Sourcify matches, so the fallback isforge verify-contract --verifier sourcify --chain 4663 …. A dispatch that only needs Robinhood can also run withverify: false.BNB Smart Chain (56), added 2026-09-10
Second commit:
BSC = "bsc", ninthsupportedNetworks()entry (alphabetical, afterbase_sepolia),[rpc_endpoints]+ an ordinary Etherscan V2[etherscan]entry (chain = 56);testZoltuFactoryCodehashpasses on a live 56 fork. Parent RAI-2312.Merge gate — CI is red until the released suites are live on both chains
testSuitesLiveOnEverySupportedNetwork(RainDeployVerifyChain, added in #155 after HyperEVM was onboarded) requires every released suite —address-registry@0_1_7andmigration-registry@0_1_7— to have code on every supported network. Adding a network therefore needs the twomanual-sol-artifactsdispatches run from this branch (workflow_dispatch on ref2026-09-09-robinhood-chain) before the PR can go green: the branch'ssupportedNetworks()carries the new chains,main's does not. Both are Zoltu one-shots from the rainlang key0xf5b3…cce0, which holds 0.036 BNB (enough) and 0 ETH on Robinhood (RAI-2311). Sequence: fund → dispatchaddress-registryandmigration-registryon this ref → re-run CI → merge → tagsol-v0.1.8.The other failure on the first run,
testZoltuFactoryCodehashwithblock not foundon BSC, was publicnode's load balancer disagreeing with itself about the tip; rainix#375 prefers the Binance dataseed.Downstream
Needs a
sol-v0.1.8release; consumers then bump and add the same two rows to their ownfoundry.toml(their inheritedRainDeployVerifySnapshottest requires both): rain.orderbook, rain.math.float (log tables), rain.tofu.erc20-decimals, rain.metadata-deploy, rainlang. Those preconditions must be on 4663 before the orderbook suite (raindexDependencies()); the deploy key0xf5b3fcb6…cce0has 0 ETH there today.Checks
testSupportedNetworks,testSupportedNetworksAreFullyConfigured,testZoltuFactoryCodehash(live forks of all eight) green;forge fmt --checkin the nix shell.Linear: RAI-2291 (parent RAI-2284).
🤖 Generated with Claude Code
https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3
Summary by CodeRabbit
New Features
Documentation