Skip to content

chore: release v1.1017.0#12167

Open
gomesalexandre wants to merge 37 commits intomainfrom
release
Open

chore: release v1.1017.0#12167
gomesalexandre wants to merge 37 commits intomainfrom
release

Conversation

@gomesalexandre
Copy link
Contributor

@gomesalexandre gomesalexandre commented Mar 13, 2026

Description

Release v1.1017.0

Commits

  • feat: affiliate system alignment - public-api, widget, dashboard (#12150)
  • feat: chainflip lending ui fixes and polish (#12153)
  • feat: jito block engine for solana mev protection and bundle splitting (#12136)
  • feat: metamask native multichain
  • feat: add wbtc.eth, usdt.sol, usdt.arb to chainflip supported assets (#12137)
  • feat: wire across to scroll and megaeth
  • feat: wire cow swap to plasma, linea, and ink
  • feat: wire debridge to 9 additional evm chains
  • feat: portless support for stable dev server URLs (#12130)
  • feat: chainflip lending - product docs (#12124)
  • feat: b2b affiliate tracking system (#12012)
  • feat: add native QR scanner support for mobile app (#11516)
  • feat: bebop solana swapper take 2 (#12111)
  • feat: idempotent release script state machine (#12110)
  • feat: speed up stuck btc transactions via rbf (#11885)
  • fix: attempt at fixing rfox apy since usdc change (#12120)
  • fix: bebop solana ghost tx + malformed amm routes (#12148)
  • fix: bebop solana signing + reject amm-routed quotes (#12134)
  • fix: bebop solana signing + thorchain solana lp compute budget (#12131)
  • fix: always refresh account balances after swap completion (#12106)
  • fix: narrow YieldExplainers action prop type (#12073)
  • fix: chainflip lending ui fixes and polish
  • fix(affiliate-dashboard): add default API_URL to prevent 403 errors (#12146)
  • fix: root cause of pnpm docker build issues (#12126)
  • fix: bump Claude max-turns from 3 to 10 in release script (#12129)
  • fix: railway build with pnpm (#12107)
  • fix: use copy package-import-method in Docker to avoid pnpm ENOENT (#12100)
  • fix: unrug Railway CI - copy patches dir and add .railwayignore (#12099)
  • feat: thorchain solana lp integration (#12037)
  • chore: remove unused @chainflip/rpc and @chainflip/extrinsics deps (#12109)
  • chore: unify claude and codex instruction entrypoints (#12119)
  • chore(deps): bump axios from 0.21.4 to 0.30.3 (#11967)

Risk

Medium-high. Broad surface area across multiple swappers (across, cow swap, debridge, bebop, chainflip), new solana MEV protection infra (jito), metamask multichain, and BTC RBF.

Protocols: THORChain, Chainflip, Bebop, Across, CoW Swap, deBridge, Jito. Wallets: MetaMask (multichain), mobile (QR scanner). Chains: Solana, BTC, Scroll, MegaETH, Plasma, Linea, Ink, + 9 deBridge EVM chains.

Testing

Engineering

  • Verify swapper routes resolve for newly wired chains (across/scroll/megaeth, cow/plasma/linea/ink, debridge/9 evm)
  • Test bebop solana swaps end-to-end - confirm no ghost txs or malformed routes
  • Test chainflip lending open/close/repay flows
  • Test THORChain solana LP deposit/withdraw
  • Verify jito bundle splitting on solana swaps
  • Test BTC RBF flow: speed up a stuck tx
  • Test metamask multichain connection and switching
  • Test native QR scanner on mobile
  • Verify account balances refresh after swap completion
  • Verify rFOX APY displays correctly post-USDC change

Operations

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

0xApotheosis and others added 30 commits March 5, 2026 09:49
pnpm requires the patches directory during install (not just scripts)
because patched dependencies are referenced in the lockfile. The
--ignore-scripts flag alone doesn't prevent pnpm from reading patch
files during dependency resolution.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Railway's "Failed to snapshot repository" error is caused by the repo
being too large (~74MB tracked files). This excludes frontend source,
images, tests, and other files not needed for the public-api Dockerfile
build from Railway's pre-build snapshot.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: unrug public-api Railway CI - copy patches dir and add .railwayignore

Two fixes for Railway deployment failures:

1. Copy patches/ directory in Dockerfile before pnpm install - pnpm
   requires patch files during install even with --ignore-scripts because
   patched dependencies are referenced in the lockfile.

2. Add .railwayignore to reduce repo snapshot size - Railway's "Failed to
   snapshot repository" error was caused by the repo being ~74MB of tracked
   files. Excludes frontend source, images, tests, and other files not
   needed for the public-api Docker build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add patches dir to swap-widget Dockerfile and update .railwayignore

The swap-widget Dockerfile had the same missing patches/ dir bug as
public-api — pnpm install fails with ENOENT for patched dependencies.
Also add swap-widget *.md exception to .railwayignore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…12100)

* fix: use copy package-import-method in Docker to avoid pnpm ENOENT

pnpm's default hard-link strategy fails intermittently on Docker's
overlay filesystem with "ENOENT: rename _tmp -> secp256k1". Setting
package-import-method=copy via env var (Docker-only, doesn't affect
local dev .npmrc) fixes the atomic rename race condition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add retry loop for pnpm install in Docker builds

The ENOENT rename failure persists even with package-import-method=copy
because pnpm's hoisting/linking phase still does atomic renames that
race on Docker's overlay filesystem. Since it's intermittent and all
packages are cached in the store after the first attempt, a retry with
clean node_modules is fast and reliable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: restrict swap-widget tsconfig types to prevent auto-discovery

Without an explicit `types` field, TypeScript auto-discovers all
@types/* packages hoisted to root node_modules. The deprecated stub
@types/ethereumjs-util (from hdwallet-ledger devDeps) has no .d.ts
files, causing TS2688 during Docker builds. Restricting to
["vite/client"] matches the pattern used by the root tsconfig.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add openNativeQRScanner() function to mobileMessageHandlers.ts
- Modify QrCodeScanner.tsx to detect mobile environment and use native scanner
- Web component shows loading spinner while native scanner is active
- Hand off QR scanning to native expo-camera implementation for better reliability

Co-authored-by: gomes <17035424+gomesalexandre@users.noreply.github.com>
* feat: chainflip lending - product docs

Regenerate product overview docs that were lost when gomes-bot got
soft-banned. Three docs covering all lending flows with live mainnet
data from RPC curls and xstate charts derived from the codebase:

- Deposit to State Chain (account creation + deposit channel flow)
- Borrow, Collateral & Repay (loan lifecycle + voluntary liquidation)
- Supply & Withdraw (supply positions + egress to on-chain wallet)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: clarify batching sections as planned, not yet in UI

Address coderabbitai review - encodeBatch primitive exists in scale.ts
but UI state machines sign each operation individually. Reword both
batching sections to make it clear these are aspirational patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: scrub personal addresses from product docs

no doxxy baby

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: gomes-bot <contact@0xgom.es>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Jibles <premiumjibles@gmail.com>
* fix: chainflip lending ui fixes and polish

- add modal headers (title + close button) to all chainflip lending modals
- fix card context error (cardBody/cardFooter crash - missing card wrapper in modal)
- show asset symbol next to amount input in all modals (deposit, supply, collateral, borrow, repay, egress, withdraw)
- fiat/crypto toggle: properly convert value on mode switch, show $ prefix in fiat mode
- move "deposit to chainflip" tab to be first (leftmost)
- fix button widths to be equal 50/50 across all tabs (tooltip shouldWrapChildren span fix)
- fix "sign twice" inaccurate copy in deposit confirm - multi-step flow description
- allowance polling in deposit funding (guard against rpc propagation lag)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address CodeRabbit review comments

- Use effectiveRefundAddress in DepositConfirm to always show refund
  destination in the confirm step
- Replace .toString() with .toFixed() in DepositInput and SupplyInput
  to prevent exponential notation for small fiat conversions

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: gomes-bot <contact@0xgom.es>
feat: wire deBridge to 9 additional EVM chains

Add Mantle, Cronos, Berachain, Linea, Bob, Sonic, Story, Flow EVM,
and MegaETH to the deBridge swapper chain mapping. All chains are
already supported in the codebase behind feature flags - this just
enables cross-chain bridging routes through deBridge for them.

Co-authored-by: gomes-bot <contact@0xgom.es>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: wire cow swap to plasma, linea, and ink

CoW Protocol expanded to these chains with deterministic contract
deployments. API slugs verified: plasma, linea, ink all return
v2.352.0 from api.cow.fi/<slug>/api/v1/version.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: update CowChainId type to include all supported chains

---------

Co-authored-by: gomes-bot <contact@0xgom.es>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add Scroll and MegaETH to the Across swapper chain mapping.
Both chains confirmed via Across available-routes API.

Co-authored-by: gomes-bot <contact@0xgom.es>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
gomesalexandre and others added 7 commits March 12, 2026 11:40
* feat: metamask native multichain - sol send/receive via wallet standard

- Add MetaMaskNativeMultiChainHDWallet with dynamic BTC/SOL support detection
  via Wallet Standard (solana:signTransaction + solana:signAndSendTransaction)
- Native multichain preference modal with dynamic chain display (only shows
  chains actually available via Wallet Standard, not hardcoded)
- Fix modal persistence bug: skip native multichain step during pairing when
  preference already stored in localStorage
- Fix race condition in shouldShowDeprecationModal: direct localStorage read
  as sync fallback alongside React state
- Add solanaSendTx to sign AND broadcast via MetaMask Wallet Standard
- Feature flagged behind MmNativeMultichain (VITE_FEATURE_MM_NATIVE_MULTICHAIN)
- E2E verified: SOL self-send 0.001 SOL via MetaMask Wallet Standard popup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: remove debug console.logs from native multichain wallet

Clean up all debug logging added during development/testing.
Add MM_TESTING_NOTES.md with e2e testing documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: prettier formatting on native multichain files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: update testing notes with full regression results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: sol send via sign+broadcast fallback, snap modal ux improvements

- Remove solanaSendTx from native multichain wallet - MM's
  signAndSendTransaction signs but doesn't reliably broadcast
- Chain adapter now falls back to solanaSignTx + broadcastTransaction
  through our own RPC when solanaSendTx returns null
- Keep using snap button: only shows when snap is installed, calls
  enableShapeShiftSnap() before setting preference, loading state
- Snap chain warning copy added
- handleKeepSnap: preference only set on success, loading in finally

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address coderabbitai review comments

- SolanaChainAdapter: check signedTx?.serialized for consistency
- Capitalize "Snap" in translation strings (Keep using Snap, Switch back to Snap)
- Connect.tsx: don't bypass snap install/update for stored snap users
- WalletProvider.tsx: use localWalletDeviceId fallback during bootstrap

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: only use native adapter when preference is explicitly 'native'

First-time users with no stored preference should get the legacy adapter
so the chooser modal can route them properly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add localWalletDeviceId to useCallback deps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: prettier formatting on deps array

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: gomes-bot <contact@0xgom.es>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	packages/public-api/Dockerfile
#	packages/swap-widget/Dockerfile
#	pnpm-lock.yaml
#	pnpm-workspace.yaml
#	scripts/release.ts
#	src/hooks/useLocaleFormatter/useLocaleFormatter.test.tsx
@gomesalexandre gomesalexandre requested a review from a team as a code owner March 13, 2026 18:05
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 13, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7eae5b9c-b207-40b2-a190-71b35dbbc060

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
📝 Coding Plan
  • Generate coding plan for human review comments

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.

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.

4 participants