Skip to content

chore: remove arbitrum nova chain support#11815

Merged
0xApotheosis merged 1 commit intodevelopfrom
chore/remove-arbitrum-nova-update-unchained-urls
Feb 10, 2026
Merged

chore: remove arbitrum nova chain support#11815
0xApotheosis merged 1 commit intodevelopfrom
chore/remove-arbitrum-nova-update-unchained-urls

Conversation

@0xApotheosis
Copy link
Member

@0xApotheosis 0xApotheosis commented Feb 10, 2026

Description

Removes all Arbitrum Nova chain support from the codebase. The upstream unchained repo removed the Arbitrum Nova coinstack in shapeshift/unchained#1258 (merged 2026-02-09) as part of their Railway migration.

This is the follow-up to #11814 which made the minimal fix to unblock yarn generate.

Changes across 77 files (-1,945 lines):

  • Remove arbitrumNova generator from openapitools.json, update cosmos/mayachain spec URLs to develop branch
  • Remove unchained-client ArbitrumNova EVM module, parser, and tests
  • Remove chain-adapters ArbitrumNovaChainAdapter and all type mappings
  • Remove KnownChainIds.ArbitrumNovaMainnet from types package
  • Remove CAIP constants (arbitrumNovaAssetId, arbitrumNovaChainId, etc.) and coingecko adapter mappings
  • Remove utils package helpers (base assets, fee asset mapping, chain short name, etc.)
  • Remove contracts package viem/ethers client entries
  • Remove swapper/swap-widget ArbitrumNova filtering and chain config
  • Remove public-api unchained URL mapping
  • Remove ArbitrumNova feature flag, plugin, and config entries
  • Remove CSP headers, wagmi/WalletConnect config, and all app-layer references
  • Remove asset data generation scripts for ArbitrumNova
  • Clean up all related tests and mocks

Issue (if applicable)

N/A — upstream removal in shapeshift/unchained#1258

Risk

Medium. This touches many files but is purely deletion of a chain that no longer has backend infrastructure. No new code is introduced.

Arbitrum Nova transaction handling, wallet support checks, and market data for eip155:42170 assets will no longer function. This is intentional since the unchained backend no longer exists.

Testing

Engineering

  1. yarn workspace @shapeshiftoss/unchained-client generate — passes with all 18 generators succeeding
  2. yarn type-check — no new type errors (only pre-existing TS6305 stale build artifact warnings)
  3. Grep for arbitrumNova|ArbitrumNova|ARBITRUM_NOVA|arbitrum-nova across *.ts, *.tsx, *.json — zero matches

Operations

  • 🏁 My feature is behind a flag and doesn't require operations testing (yet)

Arbitrum Nova was already behind the ArbitrumNova feature flag (defaulting to false in production), so this removal has no user-facing impact.

Summary by CodeRabbit

  • Refactor

    • Removed Arbitrum Nova network support across the app, simplifying available networks and adapters.
  • Chores

    • Cleared Arbitrum Nova environment variables and feature-flag wiring.
  • Tests

    • Removed Arbitrum Nova test suites, mocks, and related test data.

@0xApotheosis 0xApotheosis requested a review from a team as a code owner February 10, 2026 01:31
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 10, 2026

Warning

Rate limit exceeded

@0xApotheosis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 11 minutes and 1 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

Removed Arbitrum Nova support across the codebase: environment vars, feature flags, type entries, chain adapters, unchained/viem clients, asset data, plugin registration, tests, and UI/wagmi configurations.

Changes

Cohort / File(s) Summary
Environment & Env Types
.env, .env.development, .env.test, src/vite-env.d.ts, src/config.ts
Deleted Arbitrum Nova env vars and feature flag declarations and validators.
Types & Constants
packages/types/src/base.ts, packages/caip/src/constants.ts, src/constants/chains.ts, src/lib/getTxLink.ts, packages/utils/src/chainIdToFeeAssetId.ts
Removed KnownChainIds.ArbitrumNovaMainnet, related CAIP constants (assetId/chainId), fee-asset and short-name mappings.
Chain Adapters & EVM infra
packages/chain-adapters/src/evm/EvmBaseAdapter.ts, packages/chain-adapters/src/evm/...arbitrumNova/*, packages/chain-adapters/src/evm/index.ts, packages/chain-adapters/src/types.ts
Deleted Arbitrum Nova adapter, tests, exports, and removed case handling/support checks across evm adapters/types.
Unchained Client & Parser
packages/unchained-client/src/evm/arbitrumNova/..., packages/unchained-client/openapitools.json, packages/unchained-client/src/evm/index.ts, packages/unchained-client/src/index.ts
Removed generated/un-chained Arbitrum Nova client, parser class, tests, mock data, and OpenAPI generator entry; removed public exports.
Viem / RPC / Contracts
packages/contracts/src/viemClient.ts, packages/contracts/src/ethersProviderSingleton.ts, src/context/WalletProvider/WalletConnectV2/config.ts
Removed viem Arbitrum Nova client, RPC/network mappings, and WalletConnect RPC entry and optional chain.
Asset Data & Coingecko
packages/caip/src/adapters/coingecko/*, packages/caip/src/adapters/coingecko/utils.ts, src/lib/coingecko/utils.ts, scripts/generateAssetData/*, packages/utils/src/assetData/*
Removed Arbitrum Nova platform mappings, asset fetcher, base asset, coingecko supported chain inclusion, and related-index/color-map references.
Swap / Wagmi / UI
packages/swap-widget/src/..., src/lib/wagmi-config.ts, src/pages/Markets/components/MarketsRow.tsx, packages/public-api/src/swapperDeps.ts
Excluded arbitrumNova from EVM network lists, SUPPORTED_CHAINS, base-asset maps, wagmi chain list, and unchained URL/fee-asset mappings.
App State, Feature Flags & Plugins
src/state/slices/preferencesSlice/preferencesSlice.ts, src/context/PluginProvider/PluginProvider.tsx, src/plugins/arbitrumNova/index.ts, src/plugins/activePlugins.ts
Removed ArbitrumNova feature flag from state, removed feature-flag gating and removed plugin registration and active plugin entry.
Wallet / Account / Support Checks
src/hooks/useWalletSupportsChain/useWalletSupportsChain.ts, src/lib/account/evm.ts, src/state/slices/portfolioSlice/utils/index.ts, src/lib/asset-service/service/AssetService.ts
Removed Arbitrum Nova-specific wallet support checks, derivation paths, account/label handling, and asset filtering guard.
Swapper Utilities & Filters
packages/swapper/src/swappers/utils/filterBuyAssetsBySellAssetId/...
Removed special-case exclusion for Arbitrum Nova in buy-asset filtering; simplified EVM predicate logic.
Tests & Mocks
packages/caip/src/adapters/coingecko/index.test.ts, packages/unchained-client/src/evm/arbitrumNova/parser/__tests__/*, src/test/mocks/*, src/components/.../useFormSend.test.tsx, src/lib/market-service/coingecko/coingecko.test.ts, src/state/slices/portfolioSlice/utils/index.test.ts
Deleted Arbitrum Nova test suites, mock data, and adjusted tests/mocks to remove Nova expectations.
CSP & Headers
headers/csps/chains/arbitrumNova.ts, headers/csps/index.ts
Removed Arbitrum Nova CSP module and its registration entry.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

high risk

Poem

🐰 I hopped through code with nimble paws,
Nova leaves the tree without a cause,
Flags and chains now swept away,
Tests and maps have had their day,
Forward we go—lighter paths to cross. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: remove arbitrum nova chain support' clearly and specifically summarizes the main change: removal of Arbitrum Nova support across the codebase, which aligns with the extensive deletions throughout 77 modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/remove-arbitrum-nova-update-unchained-urls

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 and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/lib/market-service/coingecko/coingecko.test.ts (1)

169-197: ⚠️ Potential issue | 🔴 Critical

Test count assertions not updated after Arbitrum Nova removal.

Line 224 destructures 5 keys (1 BTC + 4 ETH), confirming ethereum now maps to 4 asset IDs. But:

  • Line 172 still expects 6 (should be 5)
  • Line 196 still expects 5 (should be 4)

These tests will fail.

Proposed fix
     it('can flatten multiple responses', async () => {
       mocks.get.mockResolvedValueOnce({ data: [eth] }).mockResolvedValue({ data: [btc] })
       const result = await coinGeckoMarketService.findAll()
-      expect(Object.keys(result).length).toEqual(6)
+      expect(Object.keys(result).length).toEqual(5)
     })
     it('can return some results if partially rate limited', async () => {
       mocks.get.mockResolvedValueOnce({ status: 429 }).mockResolvedValue({ data: [eth] })
       const result = await coinGeckoMarketService.findAll()
-      expect(Object.keys(result).length).toEqual(5)
+      expect(Object.keys(result).length).toEqual(4)
     })

@0xApotheosis 0xApotheosis force-pushed the chore/remove-arbitrum-nova-update-unchained-urls branch from 4301b05 to 41e41c4 Compare February 10, 2026 01:39
Copy link
Collaborator

@premiumjibles premiumjibles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thorough and works well 👌 . Confirmed build works and did my own analysis to check and make sure all arbitrum nova stuff has been ripped out

@0xApotheosis 0xApotheosis force-pushed the chore/remove-arbitrum-nova-update-unchained-urls branch 2 times, most recently from d467235 to 7810362 Compare February 10, 2026 02:53
Arbitrum Nova coinstack was removed from the upstream unchained repo
in shapeshift/unchained#1258. This removes all ArbitrumNova references
across the entire codebase including chain adapters, CAIP constants,
types, plugins, feature flags, config, CSP headers, wagmi/viem clients,
coingecko adapters, asset data generation scripts, and tests.
@0xApotheosis 0xApotheosis force-pushed the chore/remove-arbitrum-nova-update-unchained-urls branch from 7810362 to 3b103e1 Compare February 10, 2026 03:05
@0xApotheosis 0xApotheosis merged commit 73043b8 into develop Feb 10, 2026
4 checks passed
@0xApotheosis 0xApotheosis deleted the chore/remove-arbitrum-nova-update-unchained-urls branch February 10, 2026 03:20
0xApotheosis added a commit that referenced this pull request Feb 10, 2026
Arbitrum Nova coinstack was removed from the upstream unchained repo
in shapeshift/unchained#1258. This removes all ArbitrumNova references
across the entire codebase including chain adapters, CAIP constants,
types, plugins, feature flags, config, CSP headers, wagmi/viem clients,
coingecko adapters, asset data generation scripts, and tests.
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.

2 participants