Skip to content

feat(musd): pre-fill max amount on conversion confirmation#43359

Open
dan437 wants to merge 6 commits into
mainfrom
musd-a-b
Open

feat(musd): pre-fill max amount on conversion confirmation#43359
dan437 wants to merge 6 commits into
mainfrom
musd-a-b

Conversation

@dan437

@dan437 dan437 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Description

The mUSD conversion confirmation currently loads with an empty amount field, requiring users to type or click MAX before they can proceed. This adds the ability to pre-fill the field with the user's max balance on load, so they can convert immediately or adjust.

The behaviour is configured via the existing confirmations_pay_extended remote flag (new prefilledAmount section, resolved per transaction type), so control (empty field) vs treatment (pre-filled max) can be split through LaunchDarkly targeting without a code change. Every Transaction event is tagged with mm_pay_prefilled_amount so the success rate of each experience can be compared.

  • Adds selectIsPayAmountPrefillEnabled(state, transactionType) reading confirmations_pay_extended.prefilledAmount (default / overrides[txType]).
  • MusdConversionInfo pre-fills the max amount on load when enabled, and emits mm_pay_prefilled_amount on all Transaction events.
  • Registers confirmations_pay_extended in the E2E feature-flag registry.

Changelog

CHANGELOG entry: null

Related issues

Fixes: CONF-1385

Manual testing steps

  1. Add the override to .manifest-overrides.json and set MANIFEST_OVERRIDES=.manifest-overrides.json in .metamaskrc:
{
  "_flags": {
    "remoteFeatureFlags": {
      "earnMusdConversionFlowEnabled": { "enabled": true, "minimumVersion": "0.0.0" },
      "confirmations_pay_extended": {
        "payStrategies": { "relay": { "gaslessEnabled": true } },
        "prefilledAmount": {
          "default": { "enabled": false },
          "overrides": { "musdConversion": { "enabled": true } }
        }
      }
    }
  }
}
  1. yarn build:test (or yarn start:test) and load the extension.
  2. Trigger an mUSD conversion (e.g. "Get 3% mUSD bonus") and open the confirmation.
  3. Treatment: the amount field is pre-filled with the max balance. Set musdConversion.enabled to false to verify control (empty field).
  4. Confirm mm_pay_prefilled_amount appears on the Transaction events in MetaMetrics.

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
Changes default pay amount and quote request timing on confirmation load when the flag is on; mitigated by remote flag defaulting off and guards against overwriting user input.

Overview
Adds flag-gated max-balance prefill for MetaMask Pay custom amount entry, wired first for mUSD conversion so users can confirm without typing or tapping MAX.

Remote config: confirmations_pay_extended.prefilledAmount (default / overrides[transactionType]), exposed via selectIsPayAmountPrefillEnabled, with the flag registered for E2E defaults (prefill off in prod).

Behavior: useTransactionCustomAmount accepts prefillMaxOnLoad and, once balance > 0, applies 100% max once per transaction unless the user edits (sync userEditedRef); prefill uses mm_pay_amount_input_type: prefilled_max and triggers quotes like MAX. CustomAmountInfo passes the prop through; MusdConversionInfo reads the flag for musdConversion and tags Transaction events with mm_pay_prefilled_amount for A/B analysis.

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

dan437 added 2 commits June 9, 2026 11:14
Adds the CONF-1385 A/B test for the mUSD conversion confirmation amount
field: control loads empty, treatment pre-fills the max amount on load.

Follows docs/ab-testing.md: a threshold-array remote flag
(earnCONF1385AbtestPrefilledMaxAmount), a shared ab-testing config module,
useABTest for assignment + Experiment Viewed exposure, and active_ab_tests
enrichment on Transaction Submitted/Finalized for conversion and drop-off
segmentation.
Drive the conversion confirmation pre-fill from the standard
confirmations_pay_extended flag instead of the useABTest hook and a
dedicated A/B flag, and tag Transaction events with
mm_pay_prefilled_amount.
@dan437 dan437 requested a review from a team as a code owner June 9, 2026 09:17
@github-actions

github-actions Bot commented Jun 9, 2026

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-confirmations Push issues to confirmations team label Jun 9, 2026
@mm-token-exchange-service

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

Copy link
Copy Markdown

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (7 files, +342 -2)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 info/
            • 📁 custom-amount-info/
              • 📄 custom-amount-info.tsx +6 -0
            • 📁 musd-conversion-info/
              • 📄 musd-conversion-info.test.tsx +64 -0
              • 📄 musd-conversion-info.tsx +21 -0
        • 📁 hooks/
          • 📁 transactions/
            • 📄 useTransactionCustomAmount.test.ts +54 -0
            • 📄 useTransactionCustomAmount.ts +52 -2
        • 📁 selectors/
          • 📄 feature-flags.test.ts +93 -0
          • 📄 feature-flags.ts +52 -0

Add unit coverage for selectIsPayAmountPrefillEnabled, the
useTransactionCustomAmount prefill behaviour (prefilled_max input type),
and the mm_pay_prefilled_amount tagging on transaction events.
Comment thread ui/pages/confirmations/hooks/transactions/useTransactionCustomAmount.ts Outdated
@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

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

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27196651301 | 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: -57%
  • loadNewAccount/total: -57%
  • bridgeUserActions/bridge_load_page: -71%
  • bridgeUserActions/bridge_load_asset_picker: -53%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -42%
  • loadNewAccount/load_new_account: -55%
  • loadNewAccount/total: -55%
  • bridgeUserActions/bridge_load_page: -12%
  • bridgeUserActions/bridge_load_asset_picker: -40%
  • bridgeUserActions/bridge_search_token: -27%
  • bridgeUserActions/total: -31%
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/uiStartup: -21%
  • startupStandardHome/load: -24%
  • startupStandardHome/domContentLoaded: -24%
  • startupStandardHome/domInteractive: -36%
  • startupStandardHome/firstPaint: -13%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/loadScripts: -24%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -32%
  • startupPowerUserHome/load: -14%
  • startupPowerUserHome/domContentLoaded: -13%
  • startupPowerUserHome/domInteractive: -39%
  • startupPowerUserHome/firstPaint: -31%
  • startupPowerUserHome/backgroundConnect: -63%
  • startupPowerUserHome/firstReactRender: +25%
  • startupPowerUserHome/loadScripts: -13%
  • startupPowerUserHome/setupStore: +24%
  • startupPowerUserHome/numNetworkReqs: -57%
  • startupStandardHome/uiStartup: +13%
  • startupStandardHome/load: +14%
  • startupStandardHome/domContentLoaded: +14%
  • startupStandardHome/domInteractive: -40%
  • startupStandardHome/backgroundConnect: +26%
  • startupStandardHome/firstReactRender: +50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/loadScripts: +13%
  • startupStandardHome/setupStore: -47%
  • startupStandardHome/numNetworkReqs: -39%
  • startupPowerUserHome/uiStartup: -25%
  • startupPowerUserHome/domInteractive: -57%
  • startupPowerUserHome/backgroundConnect: -63%
  • startupPowerUserHome/firstReactRender: +37%
  • startupPowerUserHome/setupStore: -39%
  • startupPowerUserHome/numNetworkReqs: -74%

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

  • 🟡 startupPowerUserHome/INP: p75 448ms
  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 startupPowerUserHome/LCP: p75 3.0s
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/srpButtonToSrpForm: -63%
  • onboardingImportWallet/pwFormToMetricsScreen: +536%
  • onboardingImportWallet/metricsToWalletReadyScreen: -35%
  • onboardingImportWallet/doneButtonToHomeScreen: -65%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -15%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/createPwToRecoveryScreen: +1067%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +16%
  • onboardingNewWallet/doneButtonToAssetList: +22%
  • onboardingNewWallet/total: +16%
  • assetDetails/assetClickToPriceChart: -26%
  • assetDetails/total: -26%
  • solanaAssetDetails/assetClickToPriceChart: -70%
  • solanaAssetDetails/total: -70%
  • importSrpHome/loginToHomeScreen: -45%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -82%
  • importSrpHome/total: -77%

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

  • 🟡 assetDetails/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 sendTransactions/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%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.28 KiB (0.01%)
  • common: 20 Bytes (0%)

@metamask-aep

metamask-aep Bot commented Jun 9, 2026

Copy link
Copy Markdown

CI triage result for 1 issue:

Fixed — three lines added by this PR exceeded Prettier's 80-character printWidth in useTransactionCustomAmount.ts and feature-flags.ts. I've reformatted them (parameter list wrap, ternary break, and input-selectors array expansion) with no logic changes; the lint check should pass now.

@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

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

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27204046150 | 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: -65%
  • loadNewAccount/total: -65%
  • bridgeUserActions/bridge_load_page: -71%
  • bridgeUserActions/bridge_load_asset_picker: -59%
  • bridgeUserActions/bridge_search_token: -26%
  • bridgeUserActions/total: -43%
  • loadNewAccount/load_new_account: +124%
  • loadNewAccount/total: +124%
  • bridgeUserActions/bridge_load_page: -13%
  • bridgeUserActions/bridge_load_asset_picker: -41%
  • bridgeUserActions/bridge_search_token: -30%
  • bridgeUserActions/total: -29%

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

  • 🟡 loadNewAccount/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/uiStartup: -27%
  • startupStandardHome/load: -29%
  • startupStandardHome/domContentLoaded: -28%
  • startupStandardHome/domInteractive: -42%
  • startupStandardHome/firstPaint: -21%
  • startupStandardHome/backgroundConnect: -26%
  • startupStandardHome/loadScripts: -28%
  • startupStandardHome/setupStore: -21%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -35%
  • startupPowerUserHome/load: -19%
  • startupPowerUserHome/domContentLoaded: -18%
  • startupPowerUserHome/domInteractive: -46%
  • startupPowerUserHome/firstPaint: -33%
  • startupPowerUserHome/backgroundConnect: -65%
  • startupPowerUserHome/firstReactRender: +32%
  • startupPowerUserHome/loadScripts: -19%
  • startupPowerUserHome/setupStore: +24%
  • startupPowerUserHome/numNetworkReqs: -72%
  • startupStandardHome/uiStartup: +16%
  • startupStandardHome/load: +17%
  • startupStandardHome/domContentLoaded: +17%
  • startupStandardHome/domInteractive: -29%
  • startupStandardHome/backgroundConnect: +26%
  • startupStandardHome/firstReactRender: +50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/loadScripts: +16%
  • startupStandardHome/setupStore: -43%
  • startupStandardHome/numNetworkReqs: -37%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/domInteractive: -65%
  • startupPowerUserHome/backgroundConnect: -60%
  • startupPowerUserHome/firstReactRender: +50%
  • startupPowerUserHome/setupStore: -27%
  • startupPowerUserHome/numNetworkReqs: -75%

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

  • 🔴 startupPowerUserHome/INP: p75 520ms
  • 🟡 startupPowerUserHome/INP: p75 232ms
  • 🟡 startupPowerUserHome/LCP: p75 3.1s
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: -60%
  • onboardingImportWallet/pwFormToMetricsScreen: +542%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -62%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -15%
  • onboardingImportWallet/total: -46%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/createPwToRecoveryScreen: +1071%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -21%
  • assetDetails/assetClickToPriceChart: -62%
  • assetDetails/total: -62%
  • solanaAssetDetails/assetClickToPriceChart: -61%
  • solanaAssetDetails/total: -61%
  • importSrpHome/loginToHomeScreen: -22%
  • importSrpHome/openAccountMenuAfterLogin: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -81%
  • importSrpHome/total: -74%

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

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 2.1s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/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/pageLoadTime: +16%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.27 MiB (23.83%)
  • ui: 118.14 KiB (1.06%)
  • common: 982.64 KiB (8.1%)

Cancel the pending debounced amount update in updatePendingAmountPercentage
so a stale trailing update can't undo the prefilled max, and track manual
edits synchronously so a late balance can't overwrite user typing.
@metamask-aep

metamask-aep Bot commented Jun 9, 2026

Copy link
Copy Markdown

CI triage result for 1 issue:

Investigated this PR feedback in follow-up run 2a4e077a-87ae-45e7-9568-b8f598c3cd2f.

No PR code change was pushed because the agent did not identify a warranted fix.

The single CI failure — check-pr-max-lines — is an infrastructure issue unrelated to the PR's code. The workflow aborted with fatal: shallow file has changed since we read it (exit code 128) during the git fetch --depth=100 step, which is a well-known race condition in GitHub Actions' shallow-clone machinery. The failure occurs before the line-count logic ever executes, meaning no PR-authored code was evaluated. No source-code change is warranted; the fix is a CI re-run.

  • check-pr-max-lines: The job failed with fatal: shallow file has changed since we read it (exit code 128) inside the git fetch --depth=100 origin main shell step — before the diff line-count logic ran at all. This is a documented transient race in GitHub Actions shallow fetches when the .git/shallow file is modified concurrently by multiple git processes. It is not reproducible from PR code and is not caused by any change in the diff.

Execution: 0 files changed. Validation: passed. Review: approved.

PR: #43359

@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 2 potential issues.

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 b18deec. Configure here.

Comment thread ui/pages/confirmations/hooks/transactions/useTransactionCustomAmount.ts Outdated
Comment thread ui/pages/confirmations/hooks/transactions/useTransactionCustomAmount.ts Outdated
@metamask-aep

metamask-aep Bot commented Jun 9, 2026

Copy link
Copy Markdown

CI triage result for 1 issue:

Investigated this PR feedback in follow-up run edd5ee5c-1deb-4c46-a9cd-0e55f167fe5e.

No PR code change was pushed because the agent did not identify a warranted fix.

The single CI failure (test-e2e-chrome-api-specs-multichain) is caused by a network connectivity issue on the CI runner, not by any code change in this PR. Selenium Manager attempted to reach https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json to resolve the Chrome WebDriver binary path, but the HTTP request failed outright (error sending request for url …). This is a transient external/infra failure — the GitHub Actions runner had no outbound connectivity to that Google endpoint at execution time. No code in this PR could cause or fix that. No file changes are warranted.

  • e2e-chrome/test-e2e-chrome-api-specs-multichain: Selenium Manager failed to download Chrome driver metadata from an external Google endpoint due to a network connectivity error on the CI runner. This is not reproducible from source code and cannot be fixed by a code change.

Execution: 0 files changed. Validation: passed. Review: approved.

PR: #43359

Reset the prefill refs when transactionId changes so a new conversion in
the same UI instance can prefill again, and guard prefill on a synchronous
user-edit ref instead of isInputChanged, which also flips from debounced
sync of existing required-token USD.
@metamask-aep

metamask-aep Bot commented Jun 9, 2026

Copy link
Copy Markdown

CI triage result for 1 issue:

Investigated this PR feedback in follow-up run e183b458-4a85-4a72-a110-6c3896f16f0d.

No PR code change was pushed because the agent did not identify a warranted fix.

The single CI failure — 'Critical errors shows critical error screen when background takes over 16 seconds to sync state' in critical-errors.spec.ts — is classified as flaky. It has no connection to this PR's changes (multichain / account-list UI, branch musd-a-b). No code change is warranted.

  • e2e-firefox-browserify-10-critical-errors-sync-state: The failure is a wall-clock timing race on Firefox CI, not caused by any code changed in this PR. The test relies on the background failing to sync state within 16 s (simulateBackgroundStateSyncHang flag). Under CI load, Firefox initialises fast enough that the error screen never appears and the 20 s Selenium wait times out. The other three timing-sensitive tests in the same suite all passed, confirming the runner was slow for only this one window. The PR diff touches multichain/account-list UI components; it does not touch background.js, the state-sync timeout path, or the critical-error trigger logic.

Execution: 0 files changed. Validation: passed. Review: approved.

PR: #43359

@metamaskbotv2

metamaskbotv2 Bot commented Jun 9, 2026

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

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 27209363345 | 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_load_asset_picker

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -70%
  • loadNewAccount/total: -70%
  • bridgeUserActions/bridge_load_page: -70%
  • bridgeUserActions/bridge_load_asset_picker: -45%
  • bridgeUserActions/bridge_search_token: -24%
  • bridgeUserActions/total: -37%
  • loadNewAccount/load_new_account: -42%
  • loadNewAccount/total: -42%
  • bridgeUserActions/bridge_load_page: -17%
  • bridgeUserActions/bridge_load_asset_picker: +391%
  • bridgeUserActions/bridge_search_token: -30%
  • bridgeUserActions/total: +65%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -20%
  • startupStandardHome/load: -23%
  • startupStandardHome/domContentLoaded: -22%
  • startupStandardHome/domInteractive: -36%
  • startupStandardHome/backgroundConnect: -15%
  • startupStandardHome/loadScripts: -22%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -67%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/load: -14%
  • startupPowerUserHome/domContentLoaded: -14%
  • startupPowerUserHome/domInteractive: -46%
  • startupPowerUserHome/firstPaint: -27%
  • startupPowerUserHome/backgroundConnect: -62%
  • startupPowerUserHome/firstReactRender: +21%
  • startupPowerUserHome/loadScripts: -14%
  • startupPowerUserHome/numNetworkReqs: -72%
  • startupStandardHome/uiStartup: +14%
  • startupStandardHome/load: +14%
  • startupStandardHome/domContentLoaded: +14%
  • startupStandardHome/domInteractive: -38%
  • startupStandardHome/backgroundConnect: +23%
  • startupStandardHome/firstReactRender: +50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/loadScripts: +14%
  • startupStandardHome/setupStore: -47%
  • startupStandardHome/numNetworkReqs: -39%
  • startupPowerUserHome/uiStartup: -32%
  • startupPowerUserHome/domInteractive: -71%
  • startupPowerUserHome/backgroundConnect: -64%
  • startupPowerUserHome/firstReactRender: +29%
  • startupPowerUserHome/setupStore: -55%
  • startupPowerUserHome/numNetworkReqs: -72%

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

  • 🔴 startupPowerUserHome/INP: p75 552ms
  • 🟡 startupPowerUserHome/LCP: p75 2.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/srpButtonToSrpForm: -63%
  • onboardingImportWallet/pwFormToMetricsScreen: +557%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -30%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/createPwToRecoveryScreen: +1079%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • assetDetails/assetClickToPriceChart: -63%
  • assetDetails/total: -63%
  • solanaAssetDetails/assetClickToPriceChart: -79%
  • solanaAssetDetails/total: -79%
  • importSrpHome/loginToHomeScreen: -27%
  • importSrpHome/openAccountMenuAfterLogin: -78%
  • importSrpHome/homeAfterImportWithNewWallet: -74%
  • importSrpHome/total: -67%

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

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 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]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +25%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.27 MiB (23.83%)
  • ui: 118.56 KiB (1.07%)
  • common: 982.64 KiB (8.1%)

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

Labels

risk:medium size-M team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant