Add Robinhood Chain support (archive mainnet + testnet)#1618
Draft
cranycrane wants to merge 9 commits into
Draft
Add Robinhood Chain support (archive mainnet + testnet)#1618cranycrane wants to merge 9 commits into
cranycrane wants to merge 9 commits into
Conversation
The checked-in ports.md had drifted from configs/coins: it still listed the removed Ethereum Holesky coins, an 8090 http port that no longer exists in the Tron configs, and rows out of the generator's sort order. Regenerated with `go run contrib/scripts/check-and-generate-port-registry.go -w`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Robinhood Chain is an Arbitrum Orbit (Nitro) L2 with ETH as the native gas token: mainnet chain ID 4663 settles to Ethereum, testnet chain ID 46630 settles to Sepolia. The shim follows the Arbitrum/Base pattern and registers the "Robinhood Archive" and "Robinhood Testnet" factories. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nd packaging Coin definitions modeled on arbitrum_archive with deliberate deviations for the 100 ms block cadence (measured over 100k blocks): - resyncindexdebounce=509 so LastSync stays within the /api in-sync freshness window of 12 x averageBlockTimeMs = 1.2 s (Arbitrum's 1509 would permanently flap the reported sync state) - block_addresses_to_keep=4500, the same 7.5 min wall-clock rollback window as Arbitrum's 1800 x 250 ms - eip1559Fees without alternative_estimate_fee: the Infura gas API does not cover chain 4663; the native eth_feeHistory path takes over - fiat rates via the CoinGecko `robinhood` asset platform Backend packaging runs offchainlabs/nitro-node v3.11.2 (image digest pinned for docker verification). Robinhood Chain is not embedded in the nitro binary and Robinhood publishes no mainnet chain info, so the rollup contract addresses (sourced from on-chain discovery, L2BEAT project `robinhood`) are passed inline via --chain.info-json, with the chain config taken verbatim from the published genesis. The mainnet genesis (626 kB) is vendored and shipped through the server_config_file mechanism; the testnet has an empty genesis alloc (verified via eth_getCode at block 0) and boots with --init.empty using the chain info from Robinhood's published testnet node config. Note nitro v3.11 renamed --execution.tx-lookup-limit to --execution.tx-indexer.tx-lookup-limit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tests.json keys match the config aliases directly (no base variant exists, endpoints.go falls back to the alias when test_name is absent). The archive entry mirrors arbitrum; the testnet entry mirrors sepolia's fiat-less list. Fixtures are built from live chain data: a settled mainnet block with 15 txs including a plain ETH transfer, a settled testnet block, and active ERC-20 contracts (mainnet WETH/USDG/ROBIDY, testnet WETH/TSLA/AMZN) for the EthCallBatch test. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nt PathDB instead of HashDB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Robinhood Chain support: archive mainnet (
robinhood_archive, chain ID 4663) and testnet (robinhood_testnet, chain ID 46630). Robinhood Chain is an Arbitrum Orbit (Nitro) L2 with ETH as the native gas token; mainnet settles to Ethereum, testnet to Sepolia.Production is expected to run against QuickNode via the existing
BB_PROD_RPC_URL_*build overrides; backend debs cover self-hosted nodes per Robinhood's node docs.Changes
bchain/coins/robinhood+ factory registration (no shared-code changes)docs/ports.mdregenerated (a preceding commit drops already-stale entries)tests.jsonentries and rpc fixtures built from live on-chain dataDetails of the individual pieces are in the commit messages.
Verification
Full unit suite (
make test) passes; port registry check and package generation pass for both coins; nitro image digest, layout, and flags verified against the pinned version; fixtures cross-checked against the public RPC.