Skip to content

fix: ARC bridge/swap USDC hide max button + arc bridge code cleanup#43693

Open
maxime-oe wants to merge 1 commit into
mainfrom
fix/arc-bridge-swap-USDC-cleanup
Open

fix: ARC bridge/swap USDC hide max button + arc bridge code cleanup#43693
maxime-oe wants to merge 1 commit into
mainfrom
fix/arc-bridge-swap-USDC-cleanup

Conversation

@maxime-oe

@maxime-oe maxime-oe commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Description

Patch equivalent of MetaMask/core#9196 for testing and non-reg.

Goals:

Solve remaining issues with Swap/Bridge on ARC: Most importantly the "max swap" behavior (since the current approach doesn't consider USDC as native, which leaves "max" button visible).
Remove as many "quick fixes" as possible from the codebase.

Changelog

CHANGELOG entry: hide max button for ARC USDC Swap

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Touches shared bridge-controller native/balance/CAIP parsing used across swap and bridge flows; incorrect native classification could affect max amounts, gas reserve checks, and balances on Arc and other ERC20-as-native chains.

Overview
Moves Arc swap/bridge behavior into @metamask/bridge-controller (yarn patch) so Arc’s default asset is USDC at 0x3600… (6 decimals) with chain id 5042, and tightens native detection for CAIP-19 asset ids and ERC20 balance fetching when the “native” asset is really an ERC20.

The extension drops Arc-specific workarounds: BRIDGE_CHAINID_TO_DEFAULT_FROM_TOKEN, BRIDGE_ASSET_PICKER_HIDDEN_ASSETS, wallet swap token overrides, and ARC_ERC20_USDC_BRIDGE_ASSET. Defaults now use getNativeAssetForChainId everywhere; bridge asset picker reads ERC20 balances for pseudo-native tokens (fixes USD pricing); balance thunks pass the real native token address instead of always 0x0.

Together this should treat Arc USDC as the chain native in bridge/swap (including max button / reserve logic that keys off isNativeAddress).

Reviewed by Cursor Bugbot for commit 20d4ffe. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@mm-token-exchange-service mm-token-exchange-service Bot added the team-networks PRs from the Networks team label Jun 18, 2026
@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 49cd083 to d86cf25 Compare June 18, 2026 15:17
@mm-token-exchange-service

mm-token-exchange-service Bot commented Jun 18, 2026

Copy link
Copy Markdown

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/core-extension-ux (1 files, +4 -8)
  • 📁 shared/
    • 📁 lib/
      • 📁 activity/
        • 📁 adapters/
          • 📄 helpers.ts +4 -8

💎 @MetaMask/metamask-assets (1 files, +0 -12)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 assets/
          • 📁 enablement/
            • 📄 arc.ts +0 -12

🔄 @MetaMask/swaps-engineers (4 files, +63 -63)
  • 📁 ui/
    • 📁 ducks/
      • 📁 bridge/
        • 📄 asset-selectors.ts +45 -31
        • 📄 bridge.ts +15 -4
        • 📄 selectors.ts +2 -7
        • 📄 utils.ts +1 -21

@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [d86cf25]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 7 warn · 🔴 0 fail)

Baseline (latest main): c57a887 | Date: 6/18/2026 | Pipeline: 27769756046 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -32%
  • loadNewAccount/total: -32%
  • loadNewAccount/inp: -17%
  • loadNewAccount/cls: +23%
  • bridgeUserActions/tbt: +12%
  • bridgeUserActions/inp: -17%
  • loadNewAccount/load_new_account: +404%
  • loadNewAccount/total: +404%
  • loadNewAccount/inp: -24%
  • loadNewAccount/fcp: -51%
  • loadNewAccount/lcp: +1168%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/fcp: -51%
  • confirmTx/lcp: +1138%
  • bridgeUserActions/bridge_load_page: +101%
  • bridgeUserActions/bridge_load_asset_picker: +21%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +23%
  • bridgeUserActions/inp: -25%
  • bridgeUserActions/fcp: -53%
  • bridgeUserActions/lcp: +1157%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: +12%
  • startupPowerUserHome/firstPaint: +15%
  • startupPowerUserHome/numNetworkReqs: -13%
  • startupPowerUserHome/lcp: +15%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/inp: -17%
  • startupPowerUserHome/domInteractive: +22%
  • startupPowerUserHome/backgroundConnect: -41%
  • startupPowerUserHome/setupStore: -34%
  • startupPowerUserHome/fcp: +17%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 480ms
  • 🟡 startupPowerUserHome/LCP: p75 3.1s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/confirmSrpToPwForm: +11%
  • onboardingImportWallet/metricsToWalletReadyScreen: -12%
  • onboardingImportWallet/doneButtonToHomeScreen: -89%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -77%
  • onboardingImportWallet/longTaskTotalDuration: -95%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -89%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -13%
  • onboardingNewWallet/doneButtonToAssetList: -38%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -62%
  • onboardingNewWallet/longTaskMaxDuration: -35%
  • onboardingNewWallet/tbt: -76%
  • onboardingNewWallet/total: -33%
  • solanaAssetDetails/assetClickToPriceChart: -56%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -56%
  • solanaAssetDetails/lcp: -13%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/openAccountMenuAfterLogin: +43%
  • importSrpHome/homeAfterImportWithNewWallet: -40%
  • importSrpHome/longTaskCount: -35%
  • importSrpHome/longTaskTotalDuration: -33%
  • importSrpHome/tbt: -37%
  • importSrpHome/total: -32%
  • importSrpHome/inp: -21%
  • importSrpHome/lcp: +14%
  • importSrpHome/cls: -73%
  • sendTransactions/openSendPageFromHome: +126%
  • sendTransactions/selectTokenToSendFormLoaded: -39%
  • sendTransactions/inp: -42%
  • sendTransactions/cls: -84%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -3.66 KiB (-0.03%)
  • ui: -1.29 KiB (-0.01%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -172 Bytes (-0.01%)
  • zip: -1.36 KiB (-0.01%)

@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from d86cf25 to 6e0638b Compare June 19, 2026 06:15
@github-actions github-actions Bot added size-M and removed size-S labels Jun 19, 2026
@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [6e0638b]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 19 pass · 🟡 6 warn · 🔴 0 fail)

Baseline (latest main): 11a76df | Date: 6/19/2026 | Pipeline: 27809052783 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
🟡 bridge_search_token

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/inp: +29%
  • confirmTx/inp: -10%
  • bridgeUserActions/bridge_load_page: -11%
  • bridgeUserActions/bridge_load_asset_picker: +14%
  • bridgeUserActions/longTaskCount: +67%
  • bridgeUserActions/longTaskTotalDuration: +39%
  • bridgeUserActions/inp: +42%
  • loadNewAccount/load_new_account: +50%
  • loadNewAccount/total: +50%
  • loadNewAccount/inp: -14%
  • loadNewAccount/fcp: -50%
  • loadNewAccount/lcp: +1038%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/lcp: +1132%
  • bridgeUserActions/bridge_load_page: +110%
  • bridgeUserActions/bridge_load_asset_picker: +142%
  • bridgeUserActions/bridge_search_token: +205%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +187%
  • bridgeUserActions/inp: +13%
  • bridgeUserActions/lcp: +1128%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 confirmTx/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/numNetworkReqs: +11%
  • startupPowerUserHome/initialActions: +18%
  • startupStandardHome/inp: -17%
  • startupStandardHome/fcp: +10%
  • startupPowerUserHome/domInteractive: +15%
  • startupPowerUserHome/backgroundConnect: +48%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 448ms
  • 🟡 startupPowerUserHome/LCP: p75 3.2s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -11%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -39%
  • onboardingImportWallet/longTaskCount: -78%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -96%
  • onboardingImportWallet/total: -83%
  • onboardingNewWallet/createWalletToSocialScreen: +17%
  • onboardingNewWallet/srpButtonToPwForm: +71%
  • onboardingNewWallet/createPwToRecoveryScreen: +84%
  • onboardingNewWallet/skipBackupToMetricsScreen: +93%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +70%
  • onboardingNewWallet/longTaskCount: +100%
  • onboardingNewWallet/longTaskTotalDuration: +73%
  • onboardingNewWallet/longTaskMaxDuration: +26%
  • onboardingNewWallet/tbt: +112%
  • solanaAssetDetails/assetClickToPriceChart: +31%
  • solanaAssetDetails/longTaskCount: +400%
  • solanaAssetDetails/longTaskTotalDuration: +364%
  • solanaAssetDetails/longTaskMaxDuration: +364%
  • solanaAssetDetails/tbt: +327%
  • solanaAssetDetails/total: +31%
  • solanaAssetDetails/lcp: -13%
  • solanaAssetDetails/cls: -76%
  • importSrpHome/openAccountMenuAfterLogin: +16%
  • importSrpHome/homeAfterImportWithNewWallet: -32%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -27%
  • importSrpHome/longTaskMaxDuration: -24%
  • importSrpHome/tbt: -26%
  • importSrpHome/total: -28%
  • importSrpHome/lcp: -13%
  • importSrpHome/cls: -79%
  • sendTransactions/openSendPageFromHome: -20%
  • sendTransactions/selectTokenToSendFormLoaded: -25%
  • sendTransactions/reviewTransactionToConfirmationPage: -11%
  • sendTransactions/longTaskCount: +11%
  • sendTransactions/longTaskTotalDuration: +18%
  • sendTransactions/tbt: +20%
  • sendTransactions/total: -10%
  • sendTransactions/inp: -29%
  • sendTransactions/lcp: -10%
  • sendTransactions/cls: -77%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 256ms
  • 🟡 importSrpHome/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +20%
  • dappPageLoad/domContentLoaded: +19%
  • dappPageLoad/firstPaint: +11%
  • dappPageLoad/firstContentfulPaint: +11%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -3.02 KiB (-0.03%)
  • ui: 9.79 KiB (0.06%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -94 Bytes (-0.01%)
  • zip: -2.86 KiB (-0.01%)

@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 6e0638b to 0030d6f Compare June 19, 2026 07:46
@maxime-oe maxime-oe marked this pull request as ready for review June 19, 2026 07:47
@maxime-oe maxime-oe requested review from a team as code owners June 19, 2026 07:47
Comment thread ui/ducks/bridge/asset-selectors.ts Outdated
Comment thread shared/lib/activity/adapters/helpers.ts
@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [0030d6f]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 10 warn · 🔴 1 fail)

Baseline (latest main): 11a76df | Date: 6/19/2026 | Pipeline: 27812734110 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +54%
  • loadNewAccount/total: +54%
  • loadNewAccount/inp: +47%
  • loadNewAccount/fcp: +27%
  • loadNewAccount/lcp: +27%
  • confirmTx/longTaskCount: +33%
  • confirmTx/longTaskTotalDuration: +68%
  • confirmTx/longTaskMaxDuration: +38%
  • confirmTx/tbt: +96%
  • confirmTx/inp: +30%
  • confirmTx/fcp: +22%
  • confirmTx/lcp: +26%
  • bridgeUserActions/bridge_load_page: +36%
  • bridgeUserActions/bridge_load_asset_picker: +20%
  • bridgeUserActions/longTaskCount: +150%
  • bridgeUserActions/longTaskTotalDuration: +121%
  • bridgeUserActions/longTaskMaxDuration: +24%
  • bridgeUserActions/tbt: +82%
  • bridgeUserActions/total: +15%
  • bridgeUserActions/inp: +32%
  • bridgeUserActions/fcp: +16%
  • bridgeUserActions/lcp: +16%
  • loadNewAccount/load_new_account: +543%
  • loadNewAccount/total: +543%
  • loadNewAccount/inp: +12%
  • loadNewAccount/fcp: -47%
  • loadNewAccount/lcp: +1110%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/lcp: +1138%
  • bridgeUserActions/bridge_load_page: +76%
  • bridgeUserActions/bridge_load_asset_picker: +95%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +30%
  • bridgeUserActions/fcp: -51%
  • bridgeUserActions/lcp: +1107%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.2s
  • 🟡 confirmTx/FCP: p75 2.1s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
  • 🟡 confirmTx/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/numNetworkReqs: +11%
  • startupPowerUserHome/initialActions: -12%
  • startupPowerUserHome/inp: -11%
  • startupStandardHome/inp: -17%
  • startupPowerUserHome/domInteractive: +12%
  • startupPowerUserHome/backgroundConnect: -13%
  • startupPowerUserHome/setupStore: +13%
  • startupPowerUserHome/fcp: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 432ms
  • 🟡 startupPowerUserHome/LCP: p75 2.8s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: +11%
  • onboardingImportWallet/metricsToWalletReadyScreen: -16%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -97%
  • onboardingImportWallet/longTaskCount: -78%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/skipBackupToMetricsScreen: +14%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -21%
  • onboardingNewWallet/doneButtonToAssetList: -28%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -34%
  • onboardingNewWallet/total: -25%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -68%
  • solanaAssetDetails/cls: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -30%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -31%
  • importSrpHome/tbt: -34%
  • importSrpHome/total: -24%
  • importSrpHome/inp: -26%
  • importSrpHome/cls: -79%
  • sendTransactions/selectTokenToSendFormLoaded: -47%
  • sendTransactions/reviewTransactionToConfirmationPage: -16%
  • sendTransactions/longTaskCount: +11%
  • sendTransactions/longTaskMaxDuration: -17%
  • sendTransactions/tbt: -13%
  • sendTransactions/total: -10%
  • sendTransactions/inp: -47%
  • sendTransactions/fcp: -20%
  • sendTransactions/lcp: -14%
  • sendTransactions/cls: -77%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 2.2s
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/domContentLoaded: +14%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -3.02 KiB (-0.03%)
  • ui: 9.83 KiB (0.06%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -94 Bytes (-0.01%)
  • zip: -2.85 KiB (-0.01%)

@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 0030d6f to c3ed97c Compare June 19, 2026 08:24
Comment thread ui/ducks/bridge/asset-selectors.ts
@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from c3ed97c to 1b34cd5 Compare June 19, 2026 08:36
@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 1b34cd5 to 041c49f Compare June 19, 2026 08:43
@maxime-oe maxime-oe changed the title fix: ARC bridge/swap USDC hide max button fix: ARC bridge/swap USDC hide max button + arc bridge code cleanup Jun 19, 2026
@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 041c49f to 8ae0f7f Compare June 19, 2026 08:56
@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [8ae0f7f]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 1 fail)

Baseline (latest main): 11a76df | Date: 6/19/2026 | Pipeline: 27815947886 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 bridge_search_token

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -10%
  • loadNewAccount/total: -10%
  • loadNewAccount/inp: -22%
  • loadNewAccount/fcp: +13%
  • bridgeUserActions/bridge_load_page: -18%
  • bridgeUserActions/longTaskCount: +67%
  • bridgeUserActions/longTaskTotalDuration: +18%
  • bridgeUserActions/longTaskMaxDuration: -11%
  • bridgeUserActions/tbt: -24%
  • loadNewAccount/load_new_account: +49%
  • loadNewAccount/total: +49%
  • loadNewAccount/inp: -14%
  • loadNewAccount/fcp: -47%
  • loadNewAccount/lcp: +1120%
  • confirmTx/confirm_tx: +12%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +12%
  • confirmTx/inp: -10%
  • confirmTx/fcp: -59%
  • confirmTx/lcp: +1110%
  • bridgeUserActions/bridge_load_page: +64%
  • bridgeUserActions/bridge_load_asset_picker: +84%
  • bridgeUserActions/bridge_search_token: +249%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +202%
  • bridgeUserActions/lcp: +1076%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupPowerUserHome/initialActions: -12%
  • startupStandardHome/inp: -17%
  • startupPowerUserHome/domInteractive: -17%
  • startupPowerUserHome/backgroundConnect: -14%
  • startupPowerUserHome/fcp: -14%
  • startupPowerUserHome/lcp: -11%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 520ms
  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/doneButtonToHomeScreen: -85%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -96%
  • onboardingImportWallet/longTaskCount: -78%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -91%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -84%
  • onboardingNewWallet/skipBackupToMetricsScreen: +19%
  • onboardingNewWallet/longTaskTotalDuration: -30%
  • onboardingNewWallet/tbt: -32%
  • solanaAssetDetails/assetClickToPriceChart: -52%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -52%
  • solanaAssetDetails/inp: +47%
  • solanaAssetDetails/lcp: +11%
  • solanaAssetDetails/cls: -76%
  • importSrpHome/loginToHomeScreen: -20%
  • importSrpHome/openAccountMenuAfterLogin: +89%
  • importSrpHome/homeAfterImportWithNewWallet: -30%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -27%
  • importSrpHome/longTaskMaxDuration: -17%
  • importSrpHome/tbt: -26%
  • importSrpHome/total: -28%
  • importSrpHome/cls: -79%
  • sendTransactions/selectTokenToSendFormLoaded: +51%
  • sendTransactions/reviewTransactionToConfirmationPage: -12%
  • sendTransactions/longTaskCount: +11%
  • sendTransactions/longTaskTotalDuration: +25%
  • sendTransactions/longTaskMaxDuration: -13%
  • sendTransactions/tbt: +35%
  • sendTransactions/total: -12%
  • sendTransactions/inp: +17%
  • sendTransactions/fcp: +13%
  • sendTransactions/cls: -77%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 280ms
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/INP: p75 280ms
  • 🟡 sendTransactions/INP: p75 264ms
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +15%
  • dappPageLoad/domContentLoaded: +19%
  • dappPageLoad/firstPaint: +16%
  • dappPageLoad/firstContentfulPaint: +16%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -3.02 KiB (-0.03%)
  • ui: 9.73 KiB (0.06%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -94 Bytes (-0.01%)
  • zip: -2.88 KiB (-0.01%)

@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 8ae0f7f to 1ef3d9c Compare June 19, 2026 15:52
@maxime-oe maxime-oe force-pushed the fix/arc-bridge-swap-USDC-cleanup branch from 1ef3d9c to 20d4ffe Compare June 19, 2026 16:20

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 20d4ffe. Configure here.

balanceByChainIdByAccountAddress[chainId]?.[lowercasedAddress]
?.balance)
: (tokenBalances?.[chainId]?.[token.address as Hex] ??
tokenBalances?.[chainId]?.[token.address.toLowerCase() as Hex]);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ARC USDC misses account tracker

High Severity

On Arc, wallet USDC is treated as the chain native balance (account tracker), while getNativeAssetForChainId now points at 0x3600…. getNativeAssetsWithBalance only reads ERC20 tokenBalances for that address, and setEVMSrcNativeBalance fetches the same ERC20 balance, so bridge can show zero USDC, omit it from the picker, and mis-run gas checks.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 20d4ffe. Configure here.

@sonarqubecloud

Copy link
Copy Markdown

@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [20d4ffe]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 4385151 | Date: 6/19/2026 | Pipeline: 27836985891 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +34%
  • loadNewAccount/total: +34%
  • loadNewAccount/inp: -25%
  • confirmTx/lcp: -11%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/longTaskTotalDuration: -16%
  • loadNewAccount/load_new_account: +39%
  • loadNewAccount/total: +39%
  • loadNewAccount/inp: -25%
  • loadNewAccount/lcp: +1065%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/inp: -10%
  • confirmTx/lcp: +1098%
  • bridgeUserActions/bridge_load_page: +109%
  • bridgeUserActions/bridge_load_asset_picker: +47%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +20%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/fcp: -58%
  • bridgeUserActions/lcp: +1067%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.8s
  • 🟡 confirmTx/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/backgroundConnect: -12%
  • startupStandardHome/setupStore: +13%
  • startupStandardHome/numNetworkReqs: +21%
  • startupStandardHome/domInteractive: -13%
  • startupStandardHome/fcp: -11%
  • startupPowerUserHome/uiStartup: +12%
  • startupPowerUserHome/domInteractive: +16%
  • startupPowerUserHome/backgroundConnect: -35%
  • startupPowerUserHome/setupStore: +111%
  • startupPowerUserHome/numNetworkReqs: -18%
  • startupPowerUserHome/inp: +15%
  • startupPowerUserHome/lcp: +12%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 224ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -40%
  • onboardingImportWallet/doneButtonToHomeScreen: -82%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -58%
  • onboardingImportWallet/longTaskTotalDuration: -87%
  • onboardingImportWallet/longTaskMaxDuration: -88%
  • onboardingImportWallet/tbt: -95%
  • onboardingImportWallet/total: -83%
  • onboardingNewWallet/srpButtonToPwForm: +15%
  • onboardingNewWallet/createPwToRecoveryScreen: +14%
  • onboardingNewWallet/skipBackupToMetricsScreen: +20%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/doneButtonToAssetList: +64%
  • onboardingNewWallet/longTaskCount: -29%
  • onboardingNewWallet/longTaskTotalDuration: -20%
  • onboardingNewWallet/longTaskMaxDuration: +36%
  • onboardingNewWallet/tbt: -20%
  • onboardingNewWallet/total: +51%
  • solanaAssetDetails/assetClickToPriceChart: -49%
  • solanaAssetDetails/total: -49%
  • solanaAssetDetails/inp: -33%
  • solanaAssetDetails/lcp: +12%
  • solanaAssetDetails/cls: +167%
  • importSrpHome/loginToHomeScreen: -19%
  • importSrpHome/openAccountMenuAfterLogin: +65%
  • importSrpHome/homeAfterImportWithNewWallet: -42%
  • importSrpHome/longTaskCount: -25%
  • importSrpHome/longTaskTotalDuration: -34%
  • importSrpHome/longTaskMaxDuration: -20%
  • importSrpHome/tbt: -45%
  • importSrpHome/total: -36%
  • importSrpHome/lcp: -64%
  • importSrpHome/cls: -56%
  • sendTransactions/openSendPageFromHome: -44%
  • sendTransactions/selectTokenToSendFormLoaded: +86%
  • sendTransactions/reviewTransactionToConfirmationPage: +70%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: +68%
  • sendTransactions/inp: -22%
  • sendTransactions/cls: -85%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 256ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -3.09 KiB (-0.03%)
  • ui: 10.54 KiB (0.06%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -94 Bytes (-0.01%)
  • zip: -1.32 KiB (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:medium size-M team-networks PRs from the Networks team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant