Skip to content

chore: release v1.1009.0#11981

Merged
0xApotheosis merged 26 commits intomainfrom
release
Feb 23, 2026
Merged

chore: release v1.1009.0#11981
0xApotheosis merged 26 commits intomainfrom
release

Conversation

@0xApotheosis
Copy link
Member

Release Notes - v1.1009.0

New second-class EVM chains

Adds 15 new second-class EVM chains via Relay, plus a fix for swap status polling on second-class chains. Test by connecting a wallet, selecting any of the new chains (Plume, Story, zkSync Era, Blast, World Chain, Hemi, Soneium, Mode, BOB, Unichain, Sonic, Cronos, Mantle, Linea, Berachain), verifying balances load, and executing a swap. Ink is under flag, no testing required.

Trade and UI fixes

Fixes a crash in limit orders and prevents trade tab overflow on mobile in non-English locales. Test limit order creation end-to-end, and verify trade tabs render correctly on mobile in a few translated locales (e.g. Spanish, German).

BigAmount migration

Continues the BigAmount migration across internal selectors, utilities, and swapper packages. Regression testing only - sanity-check that swap quotes, portfolio balances, and trade amounts display correctly.

Asset and chain updates

Removes native Binance BEP2 chain support and updates the rFOX icon. Verify BEP2 assets no longer appear in the asset list and the rFOX icon renders correctly in staking/rewards views.

Fixes, deps, and infra

No testing required.

gomes-bot and others added 26 commits February 20, 2026 10:26
* feat: add Linea chain integration (WIP - packages only)

* feat: add Linea chain integration (WIP - web app + review fixes)

* feat: complete Linea chain integration (web app + coingecko + scripts)

* fix: add native ETH mapping to adapter.json and fix prettier formatting

* fix: correct ethereum assetId ordering and market-service counts for Linea

Linea (eip155:59144) sorts before MegaEth (eip155:4326) in coingeckoToAssetIds results.
Update test expectations to match actual ordering and bump counts for the additional ETH-native chain.

* chore: add bead context files (ss-dx5.6 + master ss-dx5)

* fix: add missing Linea feature flag gate in walletSupportsChain

Without this, walletSupportsChain returns true for Linea even when the
feature flag is disabled, causing the chain to appear as supported in
production where VITE_FEATURE_LINEA=false.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: add yarn generate:chain for per-chain asset regeneration

Adds a fast per-chain alternative to generate:all that only regenerates
assets for a single chain (~30s vs 30min). Reads existing generated data,
replaces target chain entries, runs incremental related asset index, and
recompresses.

Usage: ZERION_API_KEY=$ZERION_API_KEY yarn generate:chain <chain-name>
Example: ZERION_API_KEY=$ZERION_API_KEY yarn generate:chain linea

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: add chain-scoped related asset index to generate:chain

Adds generateChainRelatedAssetIndex - a lean variant that only
processes assets matching the target chainId instead of all 30K+.
~60s total runtime vs 30min for full generate:all.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regenerate linea assets via generate:chain

92 Linea assets added, 43 with relatedAssetKey cross-chain linking.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: lint errors in generate:chain scripts

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: gomes <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
* feat: integrate Mantle (chainId 5000) as second-class EVM chain with Relay bridge support

Add support for Mantle (MNT native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* feat: integrate Cronos (chainId 25) as second-class EVM chain with Relay bridge support

Add support for Cronos (CRO native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* fix: add mantle coingecko generated adapter and fix test

* fix: add cronos coingecko generated adapter and fix test

* fix: add missing Cronos targetNetwork entry in EvmBaseAdapter

* fix: add Mantle TX status polling via useSendActionSubscriber

Add src/lib/utils/mantle.ts with getMantleTransactionStatus using
eth_getTransactionReceipt via the Mantle RPC.

Add KnownChainIds.MantleMainnet case to useSendActionSubscriber.tsx
so Mantle transactions resolve in the action center.

* fix: add Cronos TX status polling and relay native asset mapping

Add src/lib/utils/cronos.ts with getCronosTransactionStatus using
eth_getTransactionReceipt via the Cronos RPC.

Add KnownChainIds.CronosMainnet case to useSendActionSubscriber.tsx
so Cronos transactions resolve in the action center.

Add CHAIN_REFERENCE.CronosMainnet case to relayTokenToAssetId.ts
to prevent runtime crash on Relay swaps involving Cronos.

* fix: add mantle to coingecko supported chains and zerion

Address PR review feedback:
- Add mantleChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add mantle to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Mantle, skipped

* fix: add cronos to coingecko supported chains and zerion

Address PR review feedback:
- Add cronosChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add cronos to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Cronos, skipped

* feat: integrate Sonic (eip155:146) as second-class EVM chain with Relay swapper support

* fix: correct Sonic CoinGecko platform ID to sonic-3 and add empty adapter.json

* fix: add native Sonic mapping to adapter.json and fix import sort

* fix: wire Sonic adapter.json into generated index

The Sonic adapter.json (eip155_146) was created but not imported/exported
from the generated index.ts, preventing CoinGecko mapping for Sonic tokens.

* chore: add bead context files (ss-dx5.3 + master ss-dx5)

* chore: add bead context files (ss-dx5.4 + master ss-dx5)

* chore: add bead context files (ss-dx5.7 + master ss-dx5)

* fix: broken merge conflict resolutions for mantle entries

Missing closing braces in 7 files where auto-resolve stripped
them at mantle/next-entry boundaries.

Also made generateChainRelatedAssetIndex self-contained (no
import from generateRelatedAssetIndex to avoid module-scope
ZERION_API_KEY check).

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regenerate mantle assets via generate:chain

77 Mantle assets added with relatedAssetKey cross-chain linking.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: lint import sort

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: generalize wrapped native detection, fix linea icon, update contract

- Replace Berachain-only WBERA burn detection with generalized
  WRAPPED_NATIVE_CONTRACT_BY_CHAIN_ID mapping in SecondClassEvmAdapter
- Add WMNT address for Mantle cross-chain swap native receives
- Fix Linea networkIcon URL (CoinGecko 403 -> relay.link CDN)
- Update second-class-evm-chain contract with wrapped native,
  icon validation, and append-only convention sections

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: update pr beads context

* fix: add WCRO to wrapped native mapping, regen cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add wS to wrapped native mapping, regen sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* squash merge feat/integrate-cronos-relay

Emulates squash merge of #11910 into develop.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regen sonic, cronos, linea, mantle assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: remove plan.md, gitignore claude plans

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regen sonic, cronos, mantle, linea after develop merge

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: update pr beads context

* fix: sonic coingecko platform id, icon url, regen 114 assets

CoingeckoAssetPlatform.Sonic was 'sonic-3' (the coin ID) instead of
'sonic' (the platform ID), resulting in zero ERC20 tokens discovered.
Also fix dead icon URL (38051 -> 38108). Update contract with platform
ID verification step.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* merge origin/develop (cronos) + add sonic stablecoin related assets

- resolve merge conflicts (keep both cronos + sonic entries)
- add FTM ERC20 → Sonic S native mapping in related asset index
- add Sonic native USDC + bridged USDT to manual stablecoin mappings
- add state migration 296 for sonic
- regenerate chain data with updated mappings

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: gomes <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
…ay (#11924)

* feat: integrate Mantle (chainId 5000) as second-class EVM chain with Relay bridge support

Add support for Mantle (MNT native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* feat: integrate Cronos (chainId 25) as second-class EVM chain with Relay bridge support

Add support for Cronos (CRO native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* fix: add mantle coingecko generated adapter and fix test

* fix: add cronos coingecko generated adapter and fix test

* fix: add missing Cronos targetNetwork entry in EvmBaseAdapter

* fix: add Mantle TX status polling via useSendActionSubscriber

Add src/lib/utils/mantle.ts with getMantleTransactionStatus using
eth_getTransactionReceipt via the Mantle RPC.

Add KnownChainIds.MantleMainnet case to useSendActionSubscriber.tsx
so Mantle transactions resolve in the action center.

* fix: add Cronos TX status polling and relay native asset mapping

Add src/lib/utils/cronos.ts with getCronosTransactionStatus using
eth_getTransactionReceipt via the Cronos RPC.

Add KnownChainIds.CronosMainnet case to useSendActionSubscriber.tsx
so Cronos transactions resolve in the action center.

Add CHAIN_REFERENCE.CronosMainnet case to relayTokenToAssetId.ts
to prevent runtime crash on Relay swaps involving Cronos.

* fix: add mantle to coingecko supported chains and zerion

Address PR review feedback:
- Add mantleChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add mantle to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Mantle, skipped

* fix: add cronos to coingecko supported chains and zerion

Address PR review feedback:
- Add cronosChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add cronos to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Cronos, skipped

* feat: integrate Sonic (eip155:146) as second-class EVM chain with Relay swapper support

* fix: correct Sonic CoinGecko platform ID to sonic-3 and add empty adapter.json

* feat: integrate Unichain (eip155:130) as second-class citizen via Relay

Adds full Unichain support including:
- CAIP constants, types, and chain adapter
- HDWallet support flags across all wallet implementations
- Relay and Across swapper mappings
- CoinGecko adapter with unichain platform
- Zerion chain mapping
- Feature flag, plugin, CSP headers
- Portfolio, account, asset service, and market integrations
- Asset generation scripts and related asset index (ETH-native)

Part of #11902

* fix: add native ETH mapping to Unichain adapter.json

* fix: add native Sonic mapping to adapter.json and fix import sort

* fix: wire Unichain adapter.json into generated index

The Unichain adapter.json (eip155_130) was created but not imported/exported
from the generated index.ts, causing coingeckoToAssetIds to not return Unichain.

* fix: wire Sonic adapter.json into generated index

The Sonic adapter.json (eip155_146) was created but not imported/exported
from the generated index.ts, preventing CoinGecko mapping for Sonic tokens.

* chore: add bead context files (ss-dx5.3 + master ss-dx5)

* chore: add bead context files (ss-dx5.4 + master ss-dx5)

* chore: add bead context files (ss-dx5.7 + master ss-dx5)

* chore: add bead context files (ss-dx5.8 + master ss-dx5)

* fix: broken merge conflict resolutions for mantle entries

Missing closing braces in 7 files where auto-resolve stripped
them at mantle/next-entry boundaries.

Also made generateChainRelatedAssetIndex self-contained (no
import from generateRelatedAssetIndex to avoid module-scope
ZERION_API_KEY check).

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regenerate mantle assets via generate:chain

77 Mantle assets added with relatedAssetKey cross-chain linking.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: lint import sort

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate unichain assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: generalize wrapped native detection, fix linea icon, update contract

- Replace Berachain-only WBERA burn detection with generalized
  WRAPPED_NATIVE_CONTRACT_BY_CHAIN_ID mapping in SecondClassEvmAdapter
- Add WMNT address for Mantle cross-chain swap native receives
- Fix Linea networkIcon URL (CoinGecko 403 -> relay.link CDN)
- Update second-class-evm-chain contract with wrapped native,
  icon validation, and append-only convention sections

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: update pr beads context

* fix: add WCRO to wrapped native mapping, regen cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add wS to wrapped native mapping, regen sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add WETH to wrapped native mapping for unichain, regen assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge artifacts - duplicate props, missing migration, stale test counts

- Remove duplicate icon/networkIcon in Sonic baseAsset (merge artifact)
- Remove duplicate Sonic enum entry in CoingeckoAssetPlatform
- Remove duplicate katanaAssetId/megaethAssetId in generateRelatedAssetIndex
- Add unichainAssetId to generateChainRelatedAssetIndex ethAssetId array
- Add migration 297 for Unichain
- Fix coingecko.test.ts: remove duplicate assertions, increment counts for Unichain
- Add Sonic + Unichain type declarations to vite-env.d.ts
- Regenerate Unichain assets with updated related asset index

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: add vite-env.d.ts + market test clarification to contract

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: update unichain bead - all items complete, in-review

---------

Co-authored-by: gomes <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
* feat: integrate Mantle (chainId 5000) as second-class EVM chain with Relay bridge support

Add support for Mantle (MNT native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* feat: integrate Cronos (chainId 25) as second-class EVM chain with Relay bridge support

Add support for Cronos (CRO native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* fix: add mantle coingecko generated adapter and fix test

* fix: add cronos coingecko generated adapter and fix test

* fix: add missing Cronos targetNetwork entry in EvmBaseAdapter

* fix: add Mantle TX status polling via useSendActionSubscriber

Add src/lib/utils/mantle.ts with getMantleTransactionStatus using
eth_getTransactionReceipt via the Mantle RPC.

Add KnownChainIds.MantleMainnet case to useSendActionSubscriber.tsx
so Mantle transactions resolve in the action center.

* fix: add Cronos TX status polling and relay native asset mapping

Add src/lib/utils/cronos.ts with getCronosTransactionStatus using
eth_getTransactionReceipt via the Cronos RPC.

Add KnownChainIds.CronosMainnet case to useSendActionSubscriber.tsx
so Cronos transactions resolve in the action center.

Add CHAIN_REFERENCE.CronosMainnet case to relayTokenToAssetId.ts
to prevent runtime crash on Relay swaps involving Cronos.

* fix: add mantle to coingecko supported chains and zerion

Address PR review feedback:
- Add mantleChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add mantle to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Mantle, skipped

* fix: add cronos to coingecko supported chains and zerion

Address PR review feedback:
- Add cronosChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add cronos to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Cronos, skipped

* feat: integrate Sonic (eip155:146) as second-class EVM chain with Relay swapper support

* fix: correct Sonic CoinGecko platform ID to sonic-3 and add empty adapter.json

* feat: integrate Unichain (eip155:130) as second-class citizen via Relay

Adds full Unichain support including:
- CAIP constants, types, and chain adapter
- HDWallet support flags across all wallet implementations
- Relay and Across swapper mappings
- CoinGecko adapter with unichain platform
- Zerion chain mapping
- Feature flag, plugin, CSP headers
- Portfolio, account, asset service, and market integrations
- Asset generation scripts and related asset index (ETH-native)

Part of #11902

* fix: add native ETH mapping to Unichain adapter.json

* fix: add native Sonic mapping to adapter.json and fix import sort

* feat: integrate BOB (eip155:60808) as second-class citizen

* fix: wire BOB adapter.json into generated index and fix test ordering

The BOB adapter.json (eip155_60808) was created but not imported/exported
from the generated index.ts, causing coingeckoToAssetIds to not return BOB.
Also fix ethereum assetId ordering and add BOB to market-service test.

* fix: wire Unichain adapter.json into generated index

The Unichain adapter.json (eip155_130) was created but not imported/exported
from the generated index.ts, causing coingeckoToAssetIds to not return Unichain.

* fix: wire Sonic adapter.json into generated index

The Sonic adapter.json (eip155_146) was created but not imported/exported
from the generated index.ts, preventing CoinGecko mapping for Sonic tokens.

* chore: add bead context files (ss-dx5.3 + master ss-dx5)

* chore: add bead context files (ss-dx5.4 + master ss-dx5)

* chore: add bead context files (ss-dx5.7 + master ss-dx5)

* chore: add bead context files (ss-dx5.8 + master ss-dx5)

* chore: add bead context files (ss-dx5.9 + master ss-dx5)

* fix: broken merge conflict resolutions for mantle entries

Missing closing braces in 7 files where auto-resolve stripped
them at mantle/next-entry boundaries.

Also made generateChainRelatedAssetIndex self-contained (no
import from generateRelatedAssetIndex to avoid module-scope
ZERION_API_KEY check).

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regenerate mantle assets via generate:chain

77 Mantle assets added with relatedAssetKey cross-chain linking.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: lint import sort

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate unichain assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: stack BOB on develop + unichain, regen assets, lint fix

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: generalize wrapped native detection, fix linea icon, update contract

- Replace Berachain-only WBERA burn detection with generalized
  WRAPPED_NATIVE_CONTRACT_BY_CHAIN_ID mapping in SecondClassEvmAdapter
- Add WMNT address for Mantle cross-chain swap native receives
- Fix Linea networkIcon URL (CoinGecko 403 -> relay.link CDN)
- Update second-class-evm-chain contract with wrapped native,
  icon validation, and append-only convention sections

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: update pr beads context

* fix: add WCRO to wrapped native mapping, regen cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add wS to wrapped native mapping, regen sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add WETH to wrapped native mapping for unichain, regen assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add WETH to wrapped native mapping for bob, regen assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: regen bob assets with updated related asset index, update bead

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: sort bobAssetId import alphabetically in generateChainRelatedAssetIndex

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: match ethereum assetIds order to enum order in coingecko test

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: gomes <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
* feat: integrate Mantle (chainId 5000) as second-class EVM chain with Relay bridge support

Add support for Mantle (MNT native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* feat: integrate Cronos (chainId 25) as second-class EVM chain with Relay bridge support

Add support for Cronos (CRO native gas) including CAIP constants, chain adapter,
plugin, feature flag, Relay swapper mapping, HDWallet support flags, CSP headers,
asset generation script, and all required shared-file entries.

Part of #11902

* fix: add mantle coingecko generated adapter and fix test

* fix: add cronos coingecko generated adapter and fix test

* fix: add missing Cronos targetNetwork entry in EvmBaseAdapter

* fix: add Mantle TX status polling via useSendActionSubscriber

Add src/lib/utils/mantle.ts with getMantleTransactionStatus using
eth_getTransactionReceipt via the Mantle RPC.

Add KnownChainIds.MantleMainnet case to useSendActionSubscriber.tsx
so Mantle transactions resolve in the action center.

* fix: add Cronos TX status polling and relay native asset mapping

Add src/lib/utils/cronos.ts with getCronosTransactionStatus using
eth_getTransactionReceipt via the Cronos RPC.

Add KnownChainIds.CronosMainnet case to useSendActionSubscriber.tsx
so Cronos transactions resolve in the action center.

Add CHAIN_REFERENCE.CronosMainnet case to relayTokenToAssetId.ts
to prevent runtime crash on Relay swaps involving Cronos.

* fix: add mantle to coingecko supported chains and zerion

Address PR review feedback:
- Add mantleChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add mantle to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Mantle, skipped

* fix: add cronos to coingecko supported chains and zerion

Address PR review feedback:
- Add cronosChainId to getCoingeckoSupportedChainIds (feature-flagged)
- Add cronos to ZERION_CHAINS array and ZERION_CHAINS_MAP
- Across does not support Cronos, skipped

* feat: integrate Sonic (eip155:146) as second-class EVM chain with Relay swapper support

* fix: correct Sonic CoinGecko platform ID to sonic-3 and add empty adapter.json

* feat: integrate Unichain (eip155:130) as second-class citizen via Relay

Adds full Unichain support including:
- CAIP constants, types, and chain adapter
- HDWallet support flags across all wallet implementations
- Relay and Across swapper mappings
- CoinGecko adapter with unichain platform
- Zerion chain mapping
- Feature flag, plugin, CSP headers
- Portfolio, account, asset service, and market integrations
- Asset generation scripts and related asset index (ETH-native)

Part of #11902

* fix: add native ETH mapping to Unichain adapter.json

* fix: add native Sonic mapping to adapter.json and fix import sort

* feat: integrate BOB (eip155:60808) as second-class citizen

* feat: integrate Mode (eip155:34443) as second-class citizen

* fix: correct ethereum assetId ordering in tests for Mode

Mode (eip155:34443) sorts before MegaEth (eip155:4326) in coingeckoToAssetIds.
Add missing Mode entry to market-service test destructuring and expected array.

* fix: wire BOB adapter.json into generated index and fix test ordering

The BOB adapter.json (eip155_60808) was created but not imported/exported
from the generated index.ts, causing coingeckoToAssetIds to not return BOB.
Also fix ethereum assetId ordering and add BOB to market-service test.

* fix: wire Unichain adapter.json into generated index

The Unichain adapter.json (eip155_130) was created but not imported/exported
from the generated index.ts, causing coingeckoToAssetIds to not return Unichain.

* fix: wire Sonic adapter.json into generated index

The Sonic adapter.json (eip155_146) was created but not imported/exported
from the generated index.ts, preventing CoinGecko mapping for Sonic tokens.

* chore: add bead context files (ss-dx5.3 + master ss-dx5)

* chore: add bead context files (ss-dx5.4 + master ss-dx5)

* chore: add bead context files (ss-dx5.7 + master ss-dx5)

* chore: add bead context files (ss-dx5.8 + master ss-dx5)

* chore: add bead context files (ss-dx5.9 + master ss-dx5)

* chore: add bead context files (ss-dx5.10 + master ss-dx5)

* fix: broken merge conflict resolutions for mantle entries

Missing closing braces in 7 files where auto-resolve stripped
them at mantle/next-entry boundaries.

Also made generateChainRelatedAssetIndex self-contained (no
import from generateRelatedAssetIndex to avoid module-scope
ZERION_API_KEY check).

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: regenerate mantle assets via generate:chain

77 Mantle assets added with relatedAssetKey cross-chain linking.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: lint import sort

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: resolve merge conflicts and regenerate unichain assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: stack BOB on develop + unichain, regen assets, lint fix

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: stack Mode on develop + bob, regen assets, lint fix

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: generalize wrapped native detection, fix linea icon, update contract

- Replace Berachain-only WBERA burn detection with generalized
  WRAPPED_NATIVE_CONTRACT_BY_CHAIN_ID mapping in SecondClassEvmAdapter
- Add WMNT address for Mantle cross-chain swap native receives
- Fix Linea networkIcon URL (CoinGecko 403 -> relay.link CDN)
- Update second-class-evm-chain contract with wrapped native,
  icon validation, and append-only convention sections

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* chore: update pr beads context

* fix: add WCRO to wrapped native mapping, regen cronos assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add wS to wrapped native mapping, regen sonic assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add WETH to wrapped native mapping for unichain, regen assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add WETH to wrapped native mapping for bob, regen assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add WETH to wrapped native mapping for mode, regen assets

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: regen mode assets with updated related asset index, update bead

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: gomes <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
* chore: invalidate outdated translations

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

* Translate main.json via GitLocalize

---------

Co-authored-by: player7o <[email protected]>
Co-authored-by: Jpanam <[email protected]>
Co-authored-by: japanxcollege <[email protected]>
Co-authored-by: mt-gitlocalize <[email protected]>
Co-authored-by: guiribabrb <[email protected]>
Co-authored-by: Markus Meyer <[email protected]>
Co-authored-by: Romko <[email protected]>
Co-authored-by: Joe Chen <[email protected]>
* feat: ai-powered release summary in yarn release

Uses claude -p --model opus to generate grouped, markdown-formatted
release notes as the draft PR body. Prefetches PR descriptions via
gh api for richer context. Graceful fallback to raw commit list if
claude is unavailable or times out.

Only affects regular releases (not hotfix, not merge).

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: show AI summary for confirmation before creating release PR

Moves the AI summary generation to happen before the user confirmation
prompt, so the release author sees the exact PR body and can approve or
cancel before any git operations happen.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: address coderabbit review - promptStream error handler, Map type params

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: address review feedback on release script

- Extract duplicate PR regex to module-level PR_NUMBER_REGEX constant
- Pass nextVersion as param to createDraftRegularPR to avoid version mismatch
- Use execFile with args array instead of shell-interpolated exec for gh calls
- Apply --body-file pattern to hotfix PR path for shell-safety consistency
- Add --max-turns 1 to Claude invocation since prompt needs no tool use

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* refactor: extract shared createDraftPR helper to deduplicate gh pr create logic

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: gomes <[email protected]>
Co-authored-by: Apotheosis <[email protected]>
#11973)

* fix: group mobile trade tabs to prevent overflow in translated locales

The mobile trade page header showed all 5 tab options (Swap, Limit, Buy,
Sell, Earn) as individual pills, which overflowed off-screen in languages
with longer labels (German, French, etc.). This adopts the same grouping
strategy already used on desktop: 3 pills (Swap, Buy/Sell, Earn) with
dropdown toggles for sub-options (Market/Limit, Buy/Sell).

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* refactor: extract ToggleSwitcher component to deduplicate mobile/desktop toggle buttons

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
* feat: rambo rm native binance bep2

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* feat: rambo rm native binance bep2

- nuke binance.ts, binance.test.ts, adapters/binance.ts
- rm MixinNativeBinanceWallet/Info from native.ts mixin chains
- rm bnb-javascript-sdk-nobroadcast, bignumber.js, @types/big.js deps
- rm binance describePath test case from native.test.ts

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 23, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release

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.

@0xApotheosis 0xApotheosis merged commit 9aff2ec into main Feb 23, 2026
22 of 24 checks passed
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.

5 participants