Add Base L2 remote chain support#18
Conversation
Register Chains.Base in RemoteChain, derive NodeRegistry chain_id from diode_client Shell metadata, and bump diode_client for Shell.Base support.
There was a problem hiding this comment.
Code Review
This pull request adds support for the Base L2 chain by introducing the Chains.Base module, updating the remote chains list, and adding corresponding tests. It also refactors Contract.NodeRegistry to dynamically fetch the Moonbeam chain ID. The reviewer noted that a commented-out line in node_registry.ex uses an incorrect module reference (Shell.Base instead of DiodeClient.Shell.Base), which would cause compilation issues if uncommented.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Restore Moonriver for movr_balance, fix Base block interval units, align NodeRegistry chain_id with Chains.Moonbeam, and simplify Base tests.
Summary
Chains.Basewith registry and developer fleet addresses, and register it inRemoteChainproduction chain list.Contract.NodeRegistrychain ID fromDiodeClient.Shell.Moonbeaminstead of a hardcoded constant, with commented post-freeze Base migration addresses.diode_clientto pick upDiodeClient.Shell.Basesupport and add regression tests for Base chain metadata.Test plan
DIODE_MINIMAL_TEST=1 mix test --no-start test/chains/base_test.exsmix compileon a clean checkoutRemoteChain.ChainListin a running node