feat(chains): add Arbitrum One (42161) with Aave V3 + Uniswap V3#34
Merged
Conversation
Promotes Arbitrum from a bridge-only destination to a full source chain. The token table (tokens/arbitrum.toml) already existed; this wires up routing + two staple protocols so swap/lending/lp commands work on Arbitrum. chains.toml [chain.arbitrum]: - chain_id 42161, rpc https://arbitrum.drpc.org (matches base's drpc), explorer arbiscan.io, native ETH, wrapped WETH (0x82aF…Bab1), multicall3 canonical - aggregators: kyber + openocean = "arbitrum", lifi/relay = "auto" (LiquidSwap omitted — HyperEVM-only) Protocol configs (addresses verified against official sources): - aave-v3-arbitrum (bgd-labs/aave-address-book AaveV3Arbitrum): pool 0x794a…14aD, addresses-provider 0xa976…3CDb, oracle 0xb56c…C7C7, data-provider 0x243A…c43b - uniswap-v3-arbitrum (developers.uniswap.org v3 deployments): factory 0x1F98…F984, router(SwapRouter02) 0x68b3…5Fc45, quoter(QuoterV2) 0x61fF…0B21e, position-manager 0xC364…1FE88 Live read-only check: `lending rates --protocol aave-v3-arbitrum --asset USDC` returns real market data (supply 2.97% / borrow 3.87% / util 85.53%), confirming the adapter + multicall path resolve against mainnet. (arbitrum.drpc.org showed intermittent "Temporary internal error" — transient RPC flakiness, ~1/3 calls; retryable.) chain-id.test.ts: drop arbitrum from KNOWN_ORPHAN_TOKEN_TABLES (it's now registered) + add arbitrum:42161 to the canonical chain_id map. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Banner count is computed dynamically from the registry, but the README / SKILL.md / protocols.md prose hardcodes the totals. Update all mirrors to 6 chains · 41 protocols (+arbitrum, +2 protocols): - README.md (root + ts/packages): banner line - SKILL.md (both mirrors): header count, --chain flag list, Chains table (+arbitrum 🟡 staged), references count - protocols.md (both mirrors): new Arbitrum section (aave-v3-arbitrum, uniswap-v3-arbitrum) + aggregator support table (kyber/openocean now list arbitrum) Arbitrum is marked 🟡 staged: addresses verified + read path live-confirmed, but no funded broadcast yet (matches monad). The slug-parity test enforces byte-identical ts/root mirrors, so both copies are updated together. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Promotes Arbitrum One (chain_id 42161) from a bridge-only destination to a full source chain. The token table already existed (
tokens/arbitrum.toml); this wires up routing + two staple protocols soswap/lending/lpwork on Arbitrum.Banner: 5 chains · 39 protocols → 6 chains · 41 protocols.
What's added
chains.toml [chain.arbitrum]— rpcarbitrum.drpc.org, explorer arbiscan.io, native ETH / wrapped WETH, multicall3; aggregators kyber + openocean ="arbitrum", lifi/relay ="auto"aave-v3-arbitrum— addresses from bgd-labs/aave-address-book (AaveV3Arbitrum)uniswap-v3-arbitrum— addresses from developers.uniswap.org v3 deploymentschain-id.test.ts: arbitrum removed fromKNOWN_ORPHAN_TOKEN_TABLES, added to canonical chain_id mapVerification
pnpm -r build+pnpm -r lint+pnpm -r test(431 tests) passdefi --chain arbitrum status→ 2 protocols, chain_id 42161lending rates --protocol aave-v3-arbitrum --asset USDCreturns real mainnet data (supply 2.97% / borrow 3.87% / util 85.53%)Notes
arbitrum.drpc.orgshowed intermittent "Temporary internal error" (~1/3 read calls; transient + retryable). Flagging per QA SSOT §6 — no retry shim added. If it proves unreliable, the officialarb1.arbitrum.io/rpcis the fallback.🤖 Generated with Claude Code