Skip to content

chore: set up batch sell quotes#42434

Merged
micaelae merged 19 commits into
mainfrom
swaps4443-batch-quotes
May 12, 2026
Merged

chore: set up batch sell quotes#42434
micaelae merged 19 commits into
mainfrom
swaps4443-batch-quotes

Conversation

@micaelae

@micaelae micaelae commented May 6, 2026

Copy link
Copy Markdown
Member

Description

Bumps the bridge-controller to 72.0.0, in which the state.quoteRequest's type has changed from QuoteRequest to an array of QuoteRequests. This PR doesn't use BatchSell quotes yet but updates existing tests and implements the getBatchSellQuotes selector.

Changelog

CHANGELOG entry: feat: set up batch sell quotes

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/SWAPS-4443

Manual testing steps

N/A

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
Medium risk because it updates bridge controller dependencies and changes the expected quoteRequest state shape to an array, which can subtly break selectors/tests if any remaining call sites assume a single object.

Overview
Updates bridge integration to @metamask/bridge-controller@72.0.0 (and bridge-status-controller@71.1.1), where BridgeController.state.quoteRequest is now treated as an array.

Adjusts Sentry state masking, the bridge mock store, and e2e snapshot expectations to match the new quoteRequest shape, and updates updateQuoteRequestParams to pass quoteRequestIndex/quoteRequestCount through to the background controller.

Adds a new getBatchSellQuotes selector (backed by controller selectBatchSellQuotes) plus unit tests/snapshots for batch-sell quote selection/refresh behavior, while keeping existing single-quote flows using quoteRequest[0].

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

@socket-security

socket-security Bot commented May 6, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

pull Bot pushed a commit to dmrazzy/core that referenced this pull request May 7, 2026
## Explanation

This PR implements quote polling for batched swap requests

#### Changes
- `updateBridgeQuoteRequest` now takes 2 extra params: the quote
request’s index and the total quoteRequestCount within the batch. no
changes in how we are using this handler for regular swaps
- the new `selectBatchSellQuotes` selector returns the recommended quote
for each quoteRequest, and aggregated amounts for display purposes
- `isValidBatchSellQuoteRequest`


#### Usage
- the clients will need to maintain a list of requests, each one
identified by an index. the index identifies the quoteRequest and its
related side effects (quotes, metrics, submission etc) once it’s passed
to updateBridgeQuoteRequest
- to access quotes for a single quoteRequest, use the same index used
during quoteRequest update


#### Minimal client examples
- extension: MetaMask/metamask-extension#42434.
Checkout this branch and resolve the package locally to test
- mobile: MetaMask/metamask-mobile#29831

<!--
Thanks for your contribution! Take a moment to answer these questions so
that reviewers have the information they need to properly understand
your changes:

* What is the current state of things and why does it need to change?
* What is the solution your changes offer and how does it work?
* Are there any changes whose purpose might not obvious to those
unfamiliar with the domain?
* If your primary goal was to update one package but you found you had
to update another one along the way, why did you do so?
* If you had to upgrade a dependency, why did you do so?
-->

## References

<!--
Are there any issues that this pull request is tied to?
Are there other links that reviewers should consult to understand these
changes better?
Are there client or consumer pull requests to adopt any breaking
changes?

For example:

* Fixes #12345
* Related to #67890
-->
Fixes https://consensyssoftware.atlassian.net/browse/SWAPS-4443

## Checklist

- [ ] I've updated the test suite for new or updated code as appropriate
- [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [ ] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md)
- [ ] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> This is a breaking API/state-shape change (`quoteRequest` becomes an
array) that touches quote polling/streaming, analytics properties, and
exchange-rate lookup logic; regressions could affect quote fetching and
refresh behavior across swaps/bridges.
> 
> **Overview**
> **Adds BatchSell (batched swap) quote support** by changing
`quoteRequest` state and polling inputs from a single request to an
array, allowing callers to update a specific request via new
`updateBridgeQuoteRequestParams(…, quoteRequestIndex,
quoteRequestCount)` parameters.
> 
> Quote fetching/streaming is updated to accept multiple requests: SSE
uses a new `POST /getBatchQuoteStream` path when batching, tags incoming
quotes with `quoteRequestIndex`, traces via new Sentry trace name `Batch
Sell Quotes Fetched`, and adjusts polling stop/refresh logic to continue
as long as *any* request is sufficiently funded.
> 
> Selectors and rate lookup are extended for batching: adds
`selectBatchSellQuotes` (per-request recommended quotes plus aggregated
received/fee totals), switches exchange-rate selection to
`selectExchangeRateByAssetId`, and exports
`isValidBatchSellQuoteRequest`; tests/snapshots are updated and a new
SSE batch test is added.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
9e2a7fa. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@socket-security

socket-security Bot commented May 7, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​metamask/​bridge-status-controller@​71.1.0 ⏵ 71.1.197 +110078 +198100
Updated@​metamask/​bridge-controller@​71.0.0 ⏵ 72.0.09510079 +198 +1100

View full report

@metamaskbotv2

metamaskbotv2 Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

🔄 @MetaMask/swaps-engineers (7 files, +731 -8)
  • 📁 test/
    • 📁 data/
      • 📁 bridge/
        • 📄 mock-bridge-store.ts +16 -1
  • 📁 ui/
    • 📁 ducks/
      • 📁 bridge/
        • 📁 __snapshots__/
          • 📄 selectors.test.ts.snap +228 -0
          • 📄 actions.ts +8 -3
          • 📄 bridge.test.ts +2 -0
          • 📄 selectors.test.ts +459 -2
          • 📄 selectors.ts +18 -1
    • 📁 pages/
      • 📁 bridge/
        • 📁 prepare/
          • 📄 prepare-bridge-page.tsx +0 -1

@metamaskbotv2

metamaskbotv2 Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor
Builds ready [1bf4d51]
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25513561454 | 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 [🚨 Warning! Bundle size has increased!]
  • background: 79.93 KiB (1.29%)
  • ui: 1.74 KiB (0.02%)
  • common: 683.59 KiB (5.05%)

@github-actions github-actions Bot added size-M and removed size-S labels May 8, 2026
@micaelae micaelae changed the title feat: integrate batch-compatible bridge-controller state feat: integrate batch sell quotes May 8, 2026
@micaelae micaelae marked this pull request as ready for review May 8, 2026 18:24
@metamaskbotv2

metamaskbotv2 Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor
Builds ready [0608a5a]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25575967713 | 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: -71%
  • loadNewAccount/total: -71%
  • bridgeUserActions/bridge_load_page: -36%
  • bridgeUserActions/bridge_load_asset_picker: -42%
  • bridgeUserActions/bridge_search_token: -26%
  • bridgeUserActions/total: -32%
  • loadNewAccount/load_new_account: -73%
  • loadNewAccount/total: -73%
  • bridgeUserActions/bridge_load_page: -25%
  • bridgeUserActions/bridge_load_asset_picker: -54%
  • bridgeUserActions/bridge_search_token: -36%
  • bridgeUserActions/total: -39%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/firstPaint: -26%
  • startupStandardHome/backgroundConnect: -38%
  • startupStandardHome/firstReactRender: -22%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/domInteractive: -29%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -54%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -47%
  • startupPowerUserHome/load: -19%
  • startupPowerUserHome/domContentLoaded: -19%
  • startupPowerUserHome/domInteractive: -74%
  • startupPowerUserHome/backgroundConnect: -71%
  • startupPowerUserHome/loadScripts: -18%
  • startupPowerUserHome/setupStore: -89%
  • startupPowerUserHome/numNetworkReqs: -64%

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

  • 🟡 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]
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: -85%
  • onboardingImportWallet/pwFormToMetricsScreen: +548%
  • onboardingImportWallet/metricsToWalletReadyScreen: +50%
  • onboardingImportWallet/doneButtonToHomeScreen: -81%
  • onboardingImportWallet/total: -50%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +1059%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/doneButtonToAssetList: -54%
  • onboardingNewWallet/total: -46%
  • assetDetails/assetClickToPriceChart: -48%
  • assetDetails/total: -48%
  • solanaAssetDetails/assetClickToPriceChart: -65%
  • solanaAssetDetails/total: -65%
  • importSrpHome/loginToHomeScreen: -15%
  • importSrpHome/openAccountMenuAfterLogin: -81%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -61%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +12%

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

  • 🟡 assetDetails/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 2.1s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 swap/FCP: p75 2.0s
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: -22%
  • dappPageLoad/firstPaint: -17%
  • dappPageLoad/firstContentfulPaint: -17%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 277 Bytes (0%)
  • common: 2.46 KiB (0.02%)

GeorgeGkas
GeorgeGkas previously approved these changes May 8, 2026
@metamaskbotv2

metamaskbotv2 Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor
Builds ready [63999ab]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25579950469 | 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: -71%
  • loadNewAccount/total: -71%
  • bridgeUserActions/bridge_load_page: -37%
  • bridgeUserActions/bridge_load_asset_picker: -33%
  • bridgeUserActions/bridge_search_token: -30%
  • bridgeUserActions/total: -32%
  • loadNewAccount/load_new_account: -71%
  • loadNewAccount/total: -71%
  • bridgeUserActions/bridge_load_page: -26%
  • bridgeUserActions/bridge_load_asset_picker: -57%
  • bridgeUserActions/bridge_search_token: -33%
  • bridgeUserActions/total: -37%

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

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

  • startupStandardHome/uiStartup: -17%
  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -11%
  • startupStandardHome/firstPaint: +15%
  • startupStandardHome/backgroundConnect: -34%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/loadScripts: -11%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/domInteractive: -21%
  • startupPowerUserHome/numNetworkReqs: -67%
  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/domInteractive: -67%
  • startupStandardHome/backgroundConnect: -16%
  • startupStandardHome/firstReactRender: -11%
  • startupStandardHome/initialActions: -40%
  • startupStandardHome/setupStore: -58%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -46%
  • startupPowerUserHome/load: -19%
  • startupPowerUserHome/domContentLoaded: -19%
  • startupPowerUserHome/domInteractive: -74%
  • startupPowerUserHome/backgroundConnect: -62%
  • startupPowerUserHome/firstReactRender: -14%
  • startupPowerUserHome/loadScripts: -18%
  • startupPowerUserHome/setupStore: -89%
  • startupPowerUserHome/numNetworkReqs: -64%

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

  • 🟡 startupPowerUserHome/INP: p75 464ms
  • 🟡 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]
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: -83%
  • onboardingImportWallet/pwFormToMetricsScreen: +587%
  • onboardingImportWallet/metricsToWalletReadyScreen: -40%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/total: -43%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +1148%
  • onboardingNewWallet/skipBackupToMetricsScreen: -64%
  • onboardingNewWallet/doneButtonToAssetList: -40%
  • onboardingNewWallet/total: -34%
  • assetDetails/assetClickToPriceChart: -38%
  • assetDetails/total: -38%
  • solanaAssetDetails/assetClickToPriceChart: -65%
  • solanaAssetDetails/total: -65%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -61%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +37%
  • swap/total: +13%

🌐 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 2.0s
  • 🟡 swap/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: +30%
  • dappPageLoad/firstPaint: +13%
  • dappPageLoad/firstContentfulPaint: +13%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 291 Bytes (0%)
  • common: 2.46 KiB (0.02%)

SteP-n-s
SteP-n-s previously approved these changes May 11, 2026
@micaelae micaelae dismissed stale reviews from GeorgeGkas and SteP-n-s via 2cfb84a May 11, 2026 18:29
@metamaskbotv2

metamaskbotv2 Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [2cfb84a]
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25689381817 | 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: -73%
  • loadNewAccount/total: -73%
  • bridgeUserActions/bridge_load_page: -34%
  • bridgeUserActions/bridge_load_asset_picker: -62%
  • bridgeUserActions/bridge_search_token: -24%
  • bridgeUserActions/total: -34%
  • loadNewAccount/load_new_account: -53%
  • loadNewAccount/total: -53%
  • bridgeUserActions/bridge_load_page: +13%
  • bridgeUserActions/bridge_load_asset_picker: -36%
  • bridgeUserActions/bridge_search_token: -36%
  • bridgeUserActions/total: -27%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
  • 🟡 confirmTx/INP: p75 232ms
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/uiStartup: -32%
  • startupStandardHome/load: -28%
  • startupStandardHome/domContentLoaded: -28%
  • startupStandardHome/domInteractive: -11%
  • startupStandardHome/backgroundConnect: -47%
  • startupStandardHome/firstReactRender: -41%
  • startupStandardHome/loadScripts: -28%
  • startupStandardHome/setupStore: -29%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -16%
  • startupStandardHome/domInteractive: -67%
  • startupStandardHome/backgroundConnect: -10%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -62%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -49%
  • startupPowerUserHome/load: -26%
  • startupPowerUserHome/domContentLoaded: -26%
  • startupPowerUserHome/domInteractive: -75%
  • startupPowerUserHome/backgroundConnect: -77%
  • startupPowerUserHome/firstReactRender: -27%
  • startupPowerUserHome/loadScripts: -24%
  • startupPowerUserHome/setupStore: -85%
  • startupPowerUserHome/numNetworkReqs: -54%

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

  • 🟡 startupPowerUserHome/LCP: p75 2.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]
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: -84%
  • onboardingImportWallet/pwFormToMetricsScreen: +574%
  • onboardingImportWallet/metricsToWalletReadyScreen: -25%
  • onboardingImportWallet/doneButtonToHomeScreen: -81%
  • onboardingImportWallet/total: -49%
  • onboardingNewWallet/srpButtonToPwForm: -75%
  • onboardingNewWallet/createPwToRecoveryScreen: +1178%
  • onboardingNewWallet/skipBackupToMetricsScreen: -65%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +18%
  • onboardingNewWallet/doneButtonToAssetList: -35%
  • onboardingNewWallet/total: -29%
  • assetDetails/assetClickToPriceChart: -50%
  • assetDetails/total: -50%
  • solanaAssetDetails/assetClickToPriceChart: -76%
  • solanaAssetDetails/total: -76%
  • importSrpHome/loginToHomeScreen: -21%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -62%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +12%

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

  • 🟡 assetDetails/FCP: p75 2.1s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/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: -21%
  • dappPageLoad/firstPaint: -17%
  • dappPageLoad/firstContentfulPaint: -17%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 277 Bytes (0%)
  • common: 2.46 KiB (0.02%)

@sonarqubecloud

Copy link
Copy Markdown

@metamaskbotv2

metamaskbotv2 Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [cbfe65c]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25695530953 | 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: -38%
  • bridgeUserActions/bridge_load_asset_picker: -50%
  • bridgeUserActions/bridge_search_token: -27%
  • bridgeUserActions/total: -34%
  • loadNewAccount/load_new_account: -51%
  • loadNewAccount/total: -51%
  • bridgeUserActions/bridge_load_asset_picker: -31%
  • bridgeUserActions/bridge_search_token: -32%
  • bridgeUserActions/total: -33%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 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: -21%
  • startupStandardHome/load: -17%
  • startupStandardHome/domContentLoaded: -16%
  • startupStandardHome/backgroundConnect: -42%
  • startupStandardHome/firstReactRender: -22%
  • startupStandardHome/loadScripts: -17%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/firstPaint: -12%
  • startupPowerUserHome/numNetworkReqs: -41%
  • startupStandardHome/domInteractive: -30%
  • startupStandardHome/backgroundConnect: -10%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -58%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -45%
  • startupPowerUserHome/load: -21%
  • startupPowerUserHome/domContentLoaded: -21%
  • startupPowerUserHome/domInteractive: -77%
  • startupPowerUserHome/backgroundConnect: -72%
  • startupPowerUserHome/firstReactRender: -14%
  • startupPowerUserHome/loadScripts: -19%
  • startupPowerUserHome/setupStore: -88%
  • startupPowerUserHome/numNetworkReqs: -61%

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

  • 🟡 startupPowerUserHome/INP: p75 488ms
  • 🟡 startupPowerUserHome/LCP: p75 2.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]
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: -84%
  • onboardingImportWallet/pwFormToMetricsScreen: +591%
  • onboardingImportWallet/metricsToWalletReadyScreen: -28%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +1080%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -25%
  • onboardingNewWallet/doneButtonToAssetList: -35%
  • onboardingNewWallet/total: -30%
  • assetDetails/assetClickToPriceChart: -30%
  • assetDetails/total: -30%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/openAccountMenuAfterLogin: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -62%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

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

  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 swap/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: +28%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 277 Bytes (0%)
  • common: 2.46 KiB (0.02%)

@micaelae micaelae added this pull request to the merge queue May 12, 2026
@HowardBraham HowardBraham added the retry-ci Tells GitHub Actions to retry failed jobs, label removed automatically before the retry label May 12, 2026
Merged via the queue into main with commit 4df06e1 May 12, 2026
206 checks passed
@micaelae micaelae deleted the swaps4443-batch-quotes branch May 12, 2026 15:18
@github-actions github-actions Bot removed the retry-ci Tells GitHub Actions to retry failed jobs, label removed automatically before the retry label May 12, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators May 12, 2026
@metamaskbot metamaskbot added the release-13.32.0 Issue or pull request that will be included in release 13.32.0 label May 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.32.0 Issue or pull request that will be included in release 13.32.0 size-L team-swaps-and-bridge Swaps and Bridge team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants