Skip to content

refactor(analytics): migrate assets events - #43889

Merged
gauthierpetetin merged 4 commits into
mainfrom
refactor/analytics-migrate-assets
Jul 7, 2026
Merged

refactor(analytics): migrate assets events#43889
gauthierpetetin merged 4 commits into
mainfrom
refactor/analytics-migrate-assets

Conversation

@gauthierpetetin

@gauthierpetetin gauthierpetetin commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Description

Sub-PR of umbrella tracker #43885.

Migrates MetaMetrics trackEvent call sites in this CODEOWNERS domain to createEventBuilder + trackEvent via useAnalytics() (UI) or app/scripts/controllers/analytics (background).

Dependency note: Can merge in parallel with other domain PRs after PR1.

Files in this PR: 25

Changelog

CHANGELOG entry: null

Related issues

Part of analytics migration umbrella: #43885

Manual testing steps

  1. Check out this branch and run yarn start.
  2. Exercise flows in the touched domain (see diff file list).
  3. Confirm no console errors and representative events still fire.

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

Low Risk
Mechanical analytics API refactor with no product logic changes; tests updated to match the new event object shape.

Overview
Migrates assets MetaMetrics call sites from legacy trackEvent({ event, category, properties }) / messenger MetaMetricsController:trackEvent to createEventBuilder + trackEvent via useAnalytics() in UI and app/scripts/controllers/analytics in the background.

UI touches token/NFT/DeFi lists, sort/import controls, asset pages (hide token, block explorer, buy/send), and mUSD bonus CTAs—event names and payloads stay the same; only the wiring changes.

Background: NftController onNftAdded no longer uses the init messenger for metrics; NFT init messenger drops MetaMetricsController:trackEvent delegation.

Tests mock useAnalytics and assert the built event shape (name, properties.category, sensitiveProperties).

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

@metamask-ci metamask-ci Bot added the team-extension-platform Extension Platform team label Jun 25, 2026
@metamask-ci

metamask-ci Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

💎 @MetaMask/metamask-assets (9 files, +245 -187)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 assets/
          • 📁 asset-list/
            • 📁 asset-list-control-bar/
              • 📄 asset-list-control-bar.tsx +19 -18
            • 📁 sort-control/
              • 📄 sort-control.test.tsx +68 -33
              • 📄 sort-control.tsx +12 -11
              • 📄 asset-list.tsx +20 -14
          • 📁 defi-list/
            • 📁 cells/
              • 📄 defi-empty-state.tsx +19 -12
          • 📁 nfts/
            • 📁 nft-details/
              • 📄 nft-details.tsx +14 -13
            • 📁 nft-empty-state/
              • 📄 nft-empty-state.tsx +12 -11
          • 📁 token-list/
            • 📄 token-list.test.tsx +49 -44
            • 📄 token-list.tsx +32 -31

@metamask-ci

metamask-ci Bot commented Jun 25, 2026

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

Baseline (latest main): d50b2dc | Date: 6/25/2026 | Pipeline: 28177682093 | 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: +13%
  • loadNewAccount/total: +13%
  • loadNewAccount/inp: -27%
  • confirmTx/tbt: -10%
  • confirmTx/inp: -12%
  • confirmTx/lcp: -12%
  • bridgeUserActions/bridge_load_page: -20%
  • bridgeUserActions/longTaskCount: +43%
  • bridgeUserActions/longTaskTotalDuration: +17%
  • bridgeUserActions/tbt: -10%
  • loadNewAccount/inp: -19%
  • loadNewAccount/fcp: -48%
  • loadNewAccount/lcp: +1088%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/inp: -21%
  • confirmTx/lcp: +1102%
  • bridgeUserActions/bridge_load_page: +180%
  • bridgeUserActions/bridge_load_asset_picker: +10%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +33%
  • bridgeUserActions/fcp: -49%
  • bridgeUserActions/lcp: +1266%

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

  • 🟡 bridgeUserActions/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/numNetworkReqs: +11%
  • startupStandardHome/uiStartup: -26%
  • startupStandardHome/load: -26%
  • startupStandardHome/domContentLoaded: -26%
  • startupStandardHome/domInteractive: -36%
  • startupStandardHome/backgroundConnect: -22%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/loadScripts: -26%
  • startupStandardHome/setupStore: -24%
  • startupStandardHome/fcp: -25%
  • startupStandardHome/lcp: -26%
  • startupPowerUserHome/domInteractive: +15%
  • startupPowerUserHome/backgroundConnect: +130%
  • startupPowerUserHome/inp: -15%
  • startupPowerUserHome/fcp: +17%

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

  • 🟡 startupPowerUserHome/LCP: p75 3.9s
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/pwFormToMetricsScreen: +22%
  • onboardingImportWallet/metricsToWalletReadyScreen: -17%
  • onboardingImportWallet/doneButtonToHomeScreen: -84%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -55%
  • onboardingImportWallet/longTaskTotalDuration: -87%
  • onboardingImportWallet/longTaskMaxDuration: -91%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -87%
  • onboardingNewWallet/doneButtonToAssetList: -42%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -41%
  • onboardingNewWallet/tbt: -28%
  • onboardingNewWallet/total: -37%
  • solanaAssetDetails/assetClickToPriceChart: -66%
  • solanaAssetDetails/total: -66%
  • solanaAssetDetails/inp: -17%
  • solanaAssetDetails/lcp: -60%
  • solanaAssetDetails/cls: +10%
  • importSrpHome/openAccountMenuAfterLogin: +22%
  • importSrpHome/homeAfterImportWithNewWallet: -37%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -33%
  • importSrpHome/longTaskMaxDuration: -20%
  • importSrpHome/tbt: -36%
  • importSrpHome/total: -31%
  • importSrpHome/inp: -48%
  • importSrpHome/lcp: +23%
  • importSrpHome/cls: -73%
  • sendTransactions/openSendPageFromHome: -33%
  • sendTransactions/selectTokenToSendFormLoaded: -27%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/inp: -27%
  • sendTransactions/fcp: -22%
  • sendTransactions/lcp: -27%
  • sendTransactions/cls: -93%

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

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 54 Bytes (0%)
  • ui: 899 Bytes (0.01%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 468 Bytes (0%)

@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-assets branch from 76c2703 to e5af2af Compare June 26, 2026 03:55
@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.

@metamask-ci

metamask-ci Bot commented Jun 26, 2026

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

Baseline (latest main): 1e3d238 | Date: 6/25/2026 | Pipeline: 28216078433 | 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/inp: -13%
  • loadNewAccount/cls: -75%
  • confirmTx/inp: -22%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskMaxDuration: -17%
  • bridgeUserActions/tbt: -41%
  • loadNewAccount/load_new_account: +65%
  • loadNewAccount/total: +65%
  • loadNewAccount/lcp: +978%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/inp: -22%
  • confirmTx/lcp: +1247%
  • bridgeUserActions/bridge_load_page: +198%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +15%
  • bridgeUserActions/lcp: +1180%
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/domInteractive: -23%
  • startupStandardHome/setupStore: -34%
  • startupStandardHome/fcp: -23%
  • startupPowerUserHome/domInteractive: +11%
  • startupPowerUserHome/setupStore: +33%
  • startupPowerUserHome/inp: +15%

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

  • 🟡 startupPowerUserHome/INP: p75 224ms
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
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: -24%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -100%
  • onboardingImportWallet/longTaskCount: -75%
  • onboardingImportWallet/longTaskTotalDuration: -89%
  • onboardingImportWallet/longTaskMaxDuration: -85%
  • onboardingImportWallet/tbt: -94%
  • onboardingImportWallet/total: -82%
  • onboardingNewWallet/createPwToRecoveryScreen: +13%
  • onboardingNewWallet/skipBackupToMetricsScreen: +13%
  • onboardingNewWallet/doneButtonToAssetList: -12%
  • onboardingNewWallet/longTaskCount: -23%
  • onboardingNewWallet/longTaskTotalDuration: -37%
  • onboardingNewWallet/longTaskMaxDuration: -37%
  • onboardingNewWallet/tbt: -66%
  • onboardingNewWallet/total: -11%
  • solanaAssetDetails/assetClickToPriceChart: -58%
  • solanaAssetDetails/total: -58%
  • solanaAssetDetails/cls: +12%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/homeAfterImportWithNewWallet: -26%
  • importSrpHome/longTaskCount: -25%
  • importSrpHome/longTaskTotalDuration: -24%
  • importSrpHome/tbt: -24%
  • importSrpHome/total: -22%
  • importSrpHome/inp: -31%
  • importSrpHome/lcp: +15%
  • importSrpHome/cls: -53%
  • sendTransactions/openSendPageFromHome: -15%
  • sendTransactions/reviewTransactionToConfirmationPage: -11%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -11%
  • sendTransactions/inp: -17%
  • sendTransactions/fcp: +28%
  • sendTransactions/lcp: +1208%
  • sendTransactions/cls: -92%

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

  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 2.2s
  • 🔴 assetDetails/INP: p75 752ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs
  • background: 54 Bytes (0%)
  • ui: 766 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 376 Bytes (0%)

@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-assets branch from e5af2af to 5de1323 Compare June 26, 2026 05:14
@github-actions github-actions Bot added size-L and removed size-XL labels Jun 26, 2026
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-assets branch from 5de1323 to f43ba02 Compare June 26, 2026 05:29
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-assets branch from f43ba02 to ef96a09 Compare June 26, 2026 06:01
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-assets branch from ef96a09 to 58284a6 Compare June 26, 2026 06:12
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-assets branch from 58284a6 to 29ab1bc Compare June 26, 2026 06:17
@metamask-ci

metamask-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor
Builds ready [29ab1bc] [reused from f43ba02]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 1e3d238 | Date: 6/25/2026 | Pipeline: 28220927051 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs: data not available.

@gauthierpetetin
gauthierpetetin requested a review from Copilot July 1, 2026 09:34
@gauthierpetetin
gauthierpetetin marked this pull request as ready for review July 1, 2026 09:34
@gauthierpetetin
gauthierpetetin requested a review from a team as a code owner July 1, 2026 09:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR is a mechanical refactor within the assets domain to migrate legacy MetaMetrics trackEvent usage to the new analytics event builder pattern (createEventBuilder(...).addCategory(...).addProperties/...build()) via useAnalytics() in the UI and app/scripts/controllers/analytics in the background.

Changes:

  • Updated multiple UI assets components to build analytics events via useAnalytics() instead of MetaMetricsContext.
  • Updated associated unit tests to mock useAnalytics() and assert against the built event shape (name, properties.category, sensitiveProperties).
  • Updated NFT controller initialization to emit NftAdded via controllers/analytics and removed the init-messenger delegation for MetaMetricsController:trackEvent.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
ui/pages/asset/components/token-buttons.tsx Migrates token button click analytics to useAnalytics() + event builder.
ui/pages/asset/components/token-asset.tsx Migrates block-explorer click analytics to useAnalytics() + event builder.
ui/pages/asset/components/native-asset.tsx Migrates native-asset block-explorer click analytics to useAnalytics() + event builder.
ui/pages/asset/components/musd-bonus-section.tsx Migrates mUSD bonus CTA/click analytics to event builder.
ui/pages/asset/components/musd-bonus-section.test.tsx Updates tests to mock useAnalytics() and assert new built event shape.
ui/pages/asset/components/asset-page.test.tsx Adds useAnalytics() mock to support updated child instrumentation.
ui/pages/asset/components/asset-options.js Migrates token hide analytics to event builder with sensitive properties.
ui/components/app/assets/token-list/token-list.tsx Migrates token list click/toggle analytics to event builder.
ui/components/app/assets/token-list/token-list.test.tsx Updates token list tests to mock useAnalytics() and assert built event shape.
ui/components/app/assets/nfts/nft-empty-state/nft-empty-state.tsx Migrates empty-state import CTA analytics to event builder.
ui/components/app/assets/nfts/nft-details/nft-details.tsx Migrates NFT details opened analytics to event builder.
ui/components/app/assets/defi-list/cells/defi-empty-state.tsx Migrates DeFi empty-state CTA analytics to event builder.
ui/components/app/assets/asset-list/sort-control/sort-control.tsx Migrates sort preference analytics to event builder.
ui/components/app/assets/asset-list/sort-control/sort-control.test.tsx Updates sort-control test to mock useAnalytics() and assert built event shape.
ui/components/app/assets/asset-list/asset-list.tsx Migrates token screen opened analytics to event builder and fixes hook deps.
ui/components/app/assets/asset-list/asset-list-control-bar/asset-list-control-bar.tsx Migrates import/management analytics to event builder.
app/scripts/messenger-client-init/messengers/assets/nft-controller-messenger.ts Removes init messenger delegation for legacy MetaMetricsController:trackEvent.
app/scripts/messenger-client-init/assets/nft-controller-init.ts Emits NftAdded via controllers/analytics event builder + trackEvent.
Comments suppressed due to low confidence (1)

ui/components/app/assets/asset-list/sort-control/sort-control.test.tsx:65

  • SortControl uses useSelector(getTokenSortConfig), but this mock checks selector === getPreferences, so it never returns the intended sort config. Update the mock to key off getTokenSortConfig so the test reflects real selector usage.
    (useSelector as jest.Mock).mockImplementation((selector) => {
      if (selector === getPreferences) {
        return {
          key: 'tokenFiatAmount',
          sortCallback: 'stringNumeric',

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ui/components/app/assets/asset-list/sort-control/sort-control.test.tsx Outdated
@metamask-ci

metamask-ci Bot commented Jul 1, 2026

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

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28507927697 | 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: -15%
  • loadNewAccount/total: -15%
  • loadNewAccount/lcp: -10%
  • bridgeUserActions/bridge_load_page: -32%
  • bridgeUserActions/bridge_load_asset_picker: -27%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -21%
  • bridgeUserActions/longTaskMaxDuration: -12%
  • bridgeUserActions/tbt: -29%
  • bridgeUserActions/inp: -22%
  • loadNewAccount/load_new_account: +594%
  • loadNewAccount/total: +594%
  • loadNewAccount/inp: -26%
  • loadNewAccount/fcp: -57%
  • loadNewAccount/lcp: +1073%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/inp: +43%
  • confirmTx/lcp: +1102%
  • bridgeUserActions/bridge_load_page: +105%
  • bridgeUserActions/bridge_load_asset_picker: +40%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +17%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/fcp: -49%
  • bridgeUserActions/lcp: +1170%
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/domInteractive: -25%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/fcp: -22%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: +41%
  • startupPowerUserHome/inp: -20%
  • startupPowerUserHome/fcp: -10%

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

  • 🟡 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: -15%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -96%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -88%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/doneButtonToAssetList: -41%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -56%
  • onboardingNewWallet/longTaskMaxDuration: -22%
  • onboardingNewWallet/tbt: -56%
  • onboardingNewWallet/total: -32%
  • solanaAssetDetails/assetClickToPriceChart: -67%
  • solanaAssetDetails/total: -67%
  • solanaAssetDetails/inp: +18%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/loginToHomeScreen: -14%
  • importSrpHome/openAccountMenuAfterLogin: -11%
  • importSrpHome/homeAfterImportWithNewWallet: -42%
  • importSrpHome/longTaskCount: -19%
  • importSrpHome/longTaskTotalDuration: -37%
  • importSrpHome/tbt: -40%
  • importSrpHome/total: -33%
  • importSrpHome/lcp: -56%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -27%
  • sendTransactions/selectTokenToSendFormLoaded: -41%
  • sendTransactions/reviewTransactionToConfirmationPage: +32%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -25%
  • sendTransactions/tbt: -47%
  • sendTransactions/total: +31%
  • sendTransactions/inp: -11%
  • sendTransactions/lcp: -17%
  • sendTransactions/cls: -40%

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

  • 🟡 importSrpHome/INP: p75 240ms
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 sendTransactions/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: 38.1 KiB (0.35%)
  • ui: 19 KiB (0.11%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 19.88 KiB (0.07%)

Fix useSelector mock to match SortControl selector usage so sort
config selection state is exercised in unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
@metamask-ci

metamask-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor
Builds ready [756ae4b]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28509789433 | 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: -21%
  • loadNewAccount/total: -21%
  • loadNewAccount/inp: +39%
  • confirmTx/lcp: -13%
  • bridgeUserActions/bridge_load_page: -31%
  • bridgeUserActions/bridge_load_asset_picker: -24%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -28%
  • bridgeUserActions/longTaskMaxDuration: -19%
  • bridgeUserActions/tbt: -46%
  • bridgeUserActions/inp: -22%
  • loadNewAccount/load_new_account: +506%
  • loadNewAccount/total: +506%
  • loadNewAccount/inp: -26%
  • loadNewAccount/lcp: +1095%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/lcp: +1098%
  • bridgeUserActions/bridge_load_page: +85%
  • bridgeUserActions/bridge_load_asset_picker: +40%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/inp: -14%
  • bridgeUserActions/lcp: +1158%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 loadNewAccount/FCP: p75 1.8s
  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/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]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/numNetworkReqs: +45%
  • startupStandardHome/domInteractive: -15%
  • startupStandardHome/fcp: -15%
  • startupPowerUserHome/domInteractive: -26%
  • startupPowerUserHome/backgroundConnect: -22%
  • startupPowerUserHome/fcp: -29%

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

  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 startupPowerUserHome/LCP: p75 3.3s
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: -15%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/skipBackupToMetricsScreen: +21%
  • onboardingNewWallet/doneButtonToAssetList: -26%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -51%
  • onboardingNewWallet/longTaskMaxDuration: -13%
  • onboardingNewWallet/tbt: -42%
  • onboardingNewWallet/total: -22%
  • solanaAssetDetails/assetClickToPriceChart: -65%
  • solanaAssetDetails/total: -65%
  • solanaAssetDetails/cls: +1172%
  • importSrpHome/openAccountMenuAfterLogin: -21%
  • importSrpHome/homeAfterImportWithNewWallet: -38%
  • importSrpHome/longTaskCount: -35%
  • importSrpHome/longTaskTotalDuration: -41%
  • importSrpHome/longTaskMaxDuration: -22%
  • importSrpHome/tbt: -38%
  • importSrpHome/total: -30%
  • importSrpHome/inp: -33%
  • importSrpHome/lcp: -58%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -27%
  • sendTransactions/selectTokenToSendFormLoaded: -57%
  • sendTransactions/reviewTransactionToConfirmationPage: -22%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -30%
  • sendTransactions/longTaskMaxDuration: -15%
  • sendTransactions/tbt: -77%
  • sendTransactions/total: -22%
  • sendTransactions/inp: -15%
  • sendTransactions/cls: -40%

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

  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 38.28 KiB (0.35%)
  • ui: 19 KiB (0.11%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 19.93 KiB (0.07%)

Fix Test lint CI failure on the assets analytics migration PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
55.6% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@metamask-ci

metamask-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor
Builds ready [df2adfb]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 11 warn · 🔴 0 fail)

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28519982020 | 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/inp: +15%
  • loadNewAccount/lcp: -12%
  • bridgeUserActions/bridge_load_page: +11%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -11%
  • bridgeUserActions/inp: -14%
  • loadNewAccount/load_new_account: +76%
  • loadNewAccount/total: +76%
  • loadNewAccount/inp: -18%
  • loadNewAccount/lcp: +1010%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/lcp: +1067%
  • bridgeUserActions/bridge_load_page: +94%
  • bridgeUserActions/bridge_load_asset_picker: +47%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/lcp: +1150%

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

  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/FCP: p75 1.9s
  • 🟡 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

  • startupPowerUserHome/setupStore: -11%
  • startupStandardHome/domInteractive: -27%
  • startupStandardHome/fcp: -26%
  • startupPowerUserHome/domInteractive: +49%
  • startupPowerUserHome/backgroundConnect: +16%
  • startupPowerUserHome/fcp: +45%

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

  • 🔴 startupPowerUserHome/INP: p75 560ms
  • 🟡 startupPowerUserHome/INP: p75 216ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
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: +10%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -63%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -83%
  • onboardingNewWallet/srpButtonToPwForm: +10%
  • onboardingNewWallet/doneButtonToAssetList: -23%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -34%
  • onboardingNewWallet/longTaskMaxDuration: -34%
  • onboardingNewWallet/tbt: -29%
  • onboardingNewWallet/total: -21%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • solanaAssetDetails/inp: -38%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/openAccountMenuAfterLogin: +13%
  • importSrpHome/homeAfterImportWithNewWallet: -26%
  • importSrpHome/longTaskCount: -19%
  • importSrpHome/longTaskTotalDuration: -25%
  • importSrpHome/longTaskMaxDuration: -23%
  • importSrpHome/tbt: -22%
  • importSrpHome/total: -20%
  • importSrpHome/inp: -21%
  • importSrpHome/lcp: -55%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -30%
  • sendTransactions/selectTokenToSendFormLoaded: -49%
  • sendTransactions/reviewTransactionToConfirmationPage: +17%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -21%
  • sendTransactions/tbt: -25%
  • sendTransactions/total: +17%
  • sendTransactions/inp: -28%
  • sendTransactions/cls: -40%

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

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/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: 38.28 KiB (0.35%)
  • ui: 19.04 KiB (0.11%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 20.01 KiB (0.07%)

@gauthierpetetin gauthierpetetin self-assigned this Jul 1, 2026
@gauthierpetetin
gauthierpetetin enabled auto-merge July 1, 2026 16:08
@gauthierpetetin
gauthierpetetin added this pull request to the merge queue Jul 7, 2026
Merged via the queue into main with commit 8f31233 Jul 7, 2026
388 of 391 checks passed
@gauthierpetetin
gauthierpetetin deleted the refactor/analytics-migrate-assets branch July 7, 2026 17:08
This was referenced Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-13.40.0 Issue or pull request that will be included in release 13.40.0 risk:high size-L team-extension-platform Extension Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants