Skip to content

Add Robinhood Chain (4663) and BNB Smart Chain (56) to the supported network set - #161

Merged
hardyjosh merged 3 commits into
mainfrom
2026-09-09-robinhood-chain
Sep 10, 2026
Merged

Add Robinhood Chain (4663) and BNB Smart Chain (56) to the supported network set#161
hardyjosh merged 3 commits into
mainfrom
2026-09-09-robinhood-chain

Conversation

@hardyjosh

@hardyjosh hardyjosh commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

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 and testZoltuFactoryCodehash pins 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 + eighth supportedNetworks() entry (after polygon); testSupportedNetworks count/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 by testSupportedNetworksAreFullyConfigured. Etherscan V2 does not index 4663, so the entry points at the chain's Blockscout API (Etherscan-compatible, key ignored) with chain = 4663. rainix#371 exports CI_DEPLOY_ROBINHOOD_ETHERSCAN_API_KEY like the other keys so a --verify run 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 --verify may fail on this network after the broadcast. Sourcify supports 4663 and Blockscout imports Sourcify matches, so the fallback is forge verify-contract --verifier sourcify --chain 4663 …. A dispatch that only needs Robinhood can also run with verify: false.

BNB Smart Chain (56), added 2026-09-10

Second commit: BSC = "bsc", ninth supportedNetworks() entry (alphabetical, after base_sepolia), [rpc_endpoints] + an ordinary Etherscan V2 [etherscan] entry (chain = 56); testZoltuFactoryCodehash passes 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_7 and migration-registry@0_1_7 — to have code on every supported network. Adding a network therefore needs the two manual-sol-artifacts dispatches run from this branch (workflow_dispatch on ref 2026-09-09-robinhood-chain) before the PR can go green: the branch's supportedNetworks() carries the new chains, main's does not. Both are Zoltu one-shots from the rainlang key 0xf5b3…cce0, which holds 0.036 BNB (enough) and 0 ETH on Robinhood (RAI-2311). Sequence: fund → dispatch address-registry and migration-registry on this ref → re-run CI → merge → tag sol-v0.1.8.

The other failure on the first run, testZoltuFactoryCodehash with block not found on BSC, was publicnode's load balancer disagreeing with itself about the tip; rainix#375 prefers the Binance dataseed.

Downstream

Needs a sol-v0.1.8 release; consumers then bump and add the same two rows to their own foundry.toml (their inherited RainDeployVerifySnapshot test 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 key 0xf5b3fcb6…cce0 has 0 ETH there today.

Checks

testSupportedNetworks, testSupportedNetworksAreFullyConfigured, testZoltuFactoryCodehash (live forks of all eight) green; forge fmt --check in the nix shell.

Linear: RAI-2291 (parent RAI-2284).

🤖 Generated with Claude Code

https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3

Summary by CodeRabbit

  • New Features

    • Added BSC and Robinhood Chain to the supported deployment networks.
    • Added configuration placeholders for BSC and Robinhood RPC endpoints.
    • Added Robinhood Chain verification settings using its Blockscout-compatible API, with Sourcify as a fallback.
  • Documentation

    • Updated manual verification guidance to explain Robinhood’s exclusion from default verification and recommend Sourcify.

`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
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 7e8a9405-81e2-492a-a713-7dd5d9755913

📥 Commits

Reviewing files that changed from the base of the PR and between 4b70cb4 and f208af4.

📒 Files selected for processing (2)
  • .env.example
  • .github/workflows/manual-sol-verify.yaml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The 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.

Changes

Network support

Layer / File(s) Summary
RPC and verification configuration
foundry.toml, .env.example
Adds BSC and Robinhood RPC aliases and Etherscan-compatible verification settings. Robinhood uses Blockscout with chain ID 4663 and documents Sourcify as a fallback.
Supported network registry and validation
src/lib/LibRainDeploy.sol, test/src/lib/LibRainDeploy.t.sol
Adds the BSC and ROBINHOOD constants, returns both networks in order, and updates test assertions for nine networks.
Manual verification network selection
.github/workflows/manual-sol-verify.yaml
Adds BSC to the default network list and documents Robinhood's manual Sourcify verification path.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: thedavidmeister

Merge Risk: ⚪ Minimal · up to f208a

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)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding Robinhood Chain and BNB Smart Chain to the supported network set.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-09-09-robinhood-chain

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

`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
@hardyjosh hardyjosh changed the title Add Robinhood Chain (4663) to the supported network set Add Robinhood Chain (4663) and BNB Smart Chain (56) to the supported network set Sep 10, 2026
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant