Skip to content

feat: integrate Hyperliquid builder fee wallet address overrides#41356

Open
abretonc7s wants to merge 31 commits intomainfrom
feat/perps/custom-fee
Open

feat: integrate Hyperliquid builder fee wallet address overrides#41356
abretonc7s wants to merge 31 commits intomainfrom
feat/perps/custom-fee

Conversation

@abretonc7s
Copy link
Copy Markdown
Contributor

@abretonc7s abretonc7s commented Mar 30, 2026

Description

The @metamask/perps-controller package has hardcoded default builder wallet addresses. The extension needs its own builder fee wallet address (0xea2c82b5aba243ab631c0ce151763d5e38df75b3) different from the package defaults.

This PR adds MM_PERPS_HL_BUILDER_ADDRESS_MAINNET and MM_PERPS_HL_BUILDER_ADDRESS_TESTNET env vars so the extension can override builder fee wallet addresses via clientConfig.providerCredentials.hyperliquid. Bumps @metamask/perps-controller to v2.0.0 which exposes this override API.

Mirrors the mobile implementation from PR #27899.

Why the extra changes

The v2.0.0 bump of @metamask/perps-controller is a major upgrade and forces a few cascading changes in this PR. None of them are new features — they're all consequences of adopting the new package version:

  • LavaMoat policies (~650 lines added) — v2.0.0 pulls in new allowed actions, globals, and transitive deps (notably @myx-trade/sdk). Policies are auto-regenerated via yarn lavamoat:auto.
  • Webpack IgnorePlugin for MYXProvider.mjs — temporary workaround for a bug in the @metamask/perps-controller publish pipeline. The core source at packages/perps-controller/src/PerpsController.ts:1698 correctly uses /* webpackIgnore: true */ on the dynamic MYXProvider import, but ts-bridge strips the magic comment during JS emit, so the published dist ends up with a plain import("./providers/MYXProvider.mjs") pointing at a file that's intentionally excluded from files in the package. Webpack sees this as a hard Module not found error (not a warning — so ignoreWarnings alone is not enough). IgnorePlugin will be removed once core fixes its build to preserve the magic comment.
  • Cached-state selectors (ui/selectors/perps-controller.ts) — v2.0.0 replaces flat cache keys (cachedMarketData, cachedAccountState, etc.) with provider-keyed maps (cachedMarketDataByProvider, cachedUserDataByProvider). Selectors now read via selectPerpsActiveProvider(state).
  • E2E state snapshots (errors-after-init-opt-in-ui-state.json, state-logs.json) — Sentry state snapshot tests compare actual controller state against JSON fixtures, so they had to be updated to the v2 shape. lastError: null is preserved (still in the v2 state despite usedInUi: false).
  • Test mock (perps-controller-init.test.ts)getDefaultPerpsControllerState mock updated to match v2 shape for consistency with the rest of the migration.

Changelog

CHANGELOG entry: null

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/TAT-2397

Manual testing steps

  1. Set PERPS_ENABLED=true and MM_PERPS_HL_BUILDER_ADDRESS_MAINNET=0xea2c82b5aba243ab631c0ce151763d5e38df75b3 in .metamaskrc
  2. Build the extension (yarn dist)
  3. Verify the PerpsController is instantiated with the custom builder address in clientConfig.providerCredentials.hyperliquid
  4. Without the env vars set, verify the controller falls back to package defaults (providerCredentials.hyperliquid is undefined)

Screenshots/Recordings

N/A — configuration-only change, no UI impact.

Before

N/A

After

N/A

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
Bumps @metamask/perps-controller to a new major version and adjusts build/policy configuration, which can affect bundling and runtime behavior even though functional changes are mostly config/state-shape updates.

Overview
Enables overriding Hyperliquid builder fee wallet addresses via new env vars (MM_PERPS_HL_BUILDER_ADDRESS_MAINNET/TESTNET) and wires them into Perps initialization through clientConfig.providerCredentials.hyperliquid.

Upgrades @metamask/perps-controller to ^2.0.0, updates Perps cached-state selectors/tests/snapshots to the new provider-keyed cache shape, and hardens a UI transform against missing funding rate values.

Updates build/runtime plumbing for the new dependency set: adds a webpack IgnorePlugin workaround for missing MYXProvider.mjs, regenerates LavaMoat policies (including new @myx-trade/sdk allowances), and adds a stub addBreadcrumb to the Perps tracer interface.

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

Add MM_PERPS_HL_BUILDER_ADDRESS_MAINNET and MM_PERPS_HL_BUILDER_ADDRESS_TESTNET
env vars so the extension can override the default builder fee wallet addresses
from @metamask/perps-controller. Bump perps-controller to v2.0.0 which exposes
the clientConfig.providerCredentials.hyperliquid override API.
@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.

@metamaskbot metamaskbot added the team-perps Perps team label Mar 30, 2026
@abretonc7s abretonc7s marked this pull request as ready for review March 30, 2026 12:53
@socket-security
Copy link
Copy Markdown

socket-security bot commented Mar 30, 2026

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​metamask/​perps-controller@​1.3.0 ⏵ 2.0.071 -110083 +195 +1100

View full report

@abretonc7s abretonc7s requested a review from a team as a code owner March 30, 2026 13:18
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Mar 30, 2026

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (2 files, +15 -113)
  • 📁 development/
    • 📁 webpack/
      • 📁 test/
        • 📄 webpack.config.test.ts +0 -113
        • 📄 webpack.config.ts +15 -0

🕵️ @MetaMask/extension-privacy-reviewers (1 files, +2 -7)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +2 -7

👨‍🔧 @MetaMask/perps (2 files, +9 -1)
  • 📁 app/
    • 📁 scripts/
      • 📁 controllers/
        • 📁 perps/
          • 📄 infrastructure.ts +8 -0
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 perps/
          • 📁 utils/
            • 📄 transactionTransforms.ts +1 -1

📜 @MetaMask/policy-reviewers (8 files, +644 -8)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +161 -1
      • 📁 experimental/
        • 📄 policy.json +161 -1
      • 📁 flask/
        • 📄 policy.json +161 -1
      • 📁 main/
        • 📄 policy.json +161 -1
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +0 -1
        • 📁 experimental/
          • 📄 policy.json +0 -1
        • 📁 flask/
          • 📄 policy.json +0 -1
        • 📁 main/
          • 📄 policy.json +0 -1

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🧪 @MetaMask/qa (1 files, +2 -7)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +2 -7

👨‍🔧 @itsyoboieltr (2 files, +15 -113)
  • 📁 development/
    • 📁 webpack/
      • 📁 test/
        • 📄 webpack.config.test.ts +0 -113
        • 📄 webpack.config.ts +15 -0

…rage

Replace no-op tracer stubs with real Sentry delegation via globalThis.sentry
(startSpanManual, setMeasurement, addBreadcrumb). Gracefully no-ops when
Sentry is unavailable. Add 17 new tests covering logger, metrics, performance,
tracer (with/without Sentry), and streamManager.
aganglada
aganglada previously approved these changes Mar 30, 2026
Move Sentry integration (pendingSpans, globalThis.sentry delegation,
expanded test coverage) to a follow-up PR. Keep only the addBreadcrumb
stub needed for perps-controller v2.0.0 type compatibility.
- Replace ignoreWarnings approach with IgnorePlugin to suppress the
  build error for the dynamic import() of MYXProvider.mjs in
  @metamask/perps-controller v2.0.0 dist. MYX is intentionally excluded;
  if its init path is triggered at runtime the error is expected.
- Update webpack test: replace warning-based guard with IgnorePlugin
  presence check + file-existence guard (fails when package ships the file)
- Fix selectPerpsCachedMarketData/Positions/Orders to use
  selectPerpsActiveProvider() so the 'hyperliquid' default is applied
  even when activeProvider is undefined in state
- Fix selectPerpsCachedAccountState to read from
  cachedUserDataByProvider[provider].accountState (v2.0.0 state shape)
- Update selector test for selectPerpsCachedAccountState accordingly
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 10, 2026

Builds ready [f53c300]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24219879931 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -11%
  • loadNewAccount/total: -11%
  • bridgeUserActions/bridge_load_asset_picker: -43%
  • bridgeUserActions/bridge_search_token: -18%
  • bridgeUserActions/total: -23%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/domInteractive: +16%
  • startupStandardHome/backgroundConnect: +12%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -15%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/backgroundConnect: +173%
  • startupPowerUserHome/setupStore: +11%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -31%
  • startupStandardHome/firstReactRender: -20%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -21%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -16%
  • startupPowerUserHome/numNetworkReqs: -18%
  • startupStandardHome/domInteractive: -58%
  • startupStandardHome/backgroundConnect: +15%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/load: +12%
  • startupPowerUserHome/domContentLoaded: +12%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: -17%
  • startupPowerUserHome/loadScripts: +10%
  • startupPowerUserHome/setupStore: -15%
  • startupStandardHome/domInteractive: -38%
  • startupStandardHome/backgroundConnect: -10%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/uiStartup: -14%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/backgroundConnect: -22%
  • startupPowerUserHome/loadScripts: -11%
  • startupPowerUserHome/setupStore: +11%

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

  • 🔴 startupPowerUserHome/INP: p75 720ms
  • 🔴 startupPowerUserHome/INP: p75 680ms
  • 🟡 startupPowerUserHome/LCP: p75 3.9s
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +33%
  • onboardingImportWallet/total: -42%
  • onboardingNewWallet/srpButtonToPwForm: -79%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -29%
  • onboardingNewWallet/doneButtonToAssetList: -27%
  • onboardingNewWallet/total: -28%
  • assetDetails/assetClickToPriceChart: -41%
  • assetDetails/total: -41%
  • solanaAssetDetails/assetClickToPriceChart: -72%
  • solanaAssetDetails/total: -72%
  • importSrpHome/openAccountMenuAfterLogin: -68%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -60%
  • sendTransactions/selectTokenToSendFormLoaded: -38%
  • sendTransactions/reviewTransactionToConfirmationPage: +33%
  • sendTransactions/total: +31%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 224ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 sendTransactions/FCP: p75 2.4s
  • 🟡 swap/FCP: p75 2.4s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 250 Bytes (0%)
  • ui: 3.2 KiB (0.04%)
  • common: 1.46 MiB (11.57%)

@abretonc7s abretonc7s requested review from a team as code owners April 10, 2026 01:01
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 10, 2026

Builds ready [a110405]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24221796746 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_asset_picker: -22%
  • bridgeUserActions/bridge_search_token: +44%
  • bridgeUserActions/total: +17%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.6s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domInteractive: +19%
  • startupStandardHome/backgroundConnect: +16%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -12%
  • startupPowerUserHome/backgroundConnect: +81%
  • startupPowerUserHome/setupStore: +17%
  • startupPowerUserHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -32%
  • startupStandardHome/firstReactRender: -24%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -21%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/numNetworkReqs: +33%
  • startupStandardHome/domInteractive: -57%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/domInteractive: +11%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/setupStore: -28%
  • startupStandardHome/domInteractive: -30%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/initialActions: -44%
  • startupStandardHome/setupStore: -63%
  • startupStandardHome/numNetworkReqs: -13%
  • startupPowerUserHome/uiStartup: -10%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/backgroundConnect: -32%
  • startupPowerUserHome/firstReactRender: -11%
  • startupPowerUserHome/setupStore: +25%

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

  • 🔴 startupPowerUserHome/INP: p75 768ms
  • 🔴 startupPowerUserHome/INP: p75 680ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -34%
  • onboardingImportWallet/doneButtonToHomeScreen: -74%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +24%
  • onboardingImportWallet/total: -42%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -23%
  • onboardingNewWallet/total: -25%
  • assetDetails/assetClickToPriceChart: -49%
  • assetDetails/total: -49%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/openAccountMenuAfterLogin: -73%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -18%
  • sendTransactions/selectTokenToSendFormLoaded: -22%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +33%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +12%

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

  • 🟡 assetDetails/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 250 Bytes (0%)
  • ui: 3.2 KiB (0.04%)
  • common: 1.46 MiB (11.57%)

Main already handles the missing MYXProvider.mjs via ignoreWarnings.
The IgnorePlugin was added in 7874d3a without realizing main had
already shipped the simpler fix. Revert to match main's approach.
# Conflicts:
#	app/scripts/messenger-client-init/perps-controller-init.ts
Copy link
Copy Markdown

@cursor cursor bot left a comment

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 4f17403. Configure here.

- webpack: IgnorePlugin is required for the missing MYXProvider.mjs
  dynamic import; ignoreWarnings alone only suppresses warnings, not
  the hard 'Module not found' error in perps-controller v2.0.0.
- test: update getDefaultPerpsControllerState mock to v2 state shape
  (cachedMarketDataByProvider / cachedUserDataByProvider) to match
  the rest of the PR's v1->v2 migration.
…rkaround

Core source uses /* webpackIgnore: true */ correctly but ts-bridge strips
the magic comment during JS emit. Update the comment to reflect the actual
root cause, not a missing-comment assumption.
@sonarqubecloud
Copy link
Copy Markdown

@abretonc7s
Copy link
Copy Markdown
Contributor Author

Field Value
Run ID 510a3e24
Duration 1m
Model opus
Nudges 0
Grade ungraded
Cost $8.0155
Worker report

No report available.

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 10, 2026

Builds ready [60e6145]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24226633060 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domInteractive: +13%
  • startupStandardHome/firstPaint: +17%
  • startupStandardHome/backgroundConnect: +16%
  • startupStandardHome/firstReactRender: -17%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -11%
  • startupPowerUserHome/backgroundConnect: +110%
  • startupPowerUserHome/setupStore: +11%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/domInteractive: +12%
  • startupStandardHome/backgroundConnect: -28%
  • startupStandardHome/firstReactRender: -20%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/numNetworkReqs: -12%
  • startupStandardHome/domInteractive: -54%
  • startupStandardHome/initialActions: -38%
  • startupPowerUserHome/backgroundConnect: -29%
  • startupStandardHome/domInteractive: -55%
  • startupStandardHome/backgroundConnect: -17%
  • startupStandardHome/initialActions: -44%
  • startupStandardHome/setupStore: -63%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/domInteractive: -12%
  • startupPowerUserHome/backgroundConnect: -35%
  • startupPowerUserHome/loadScripts: -11%
  • startupPowerUserHome/setupStore: +25%

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

  • 🔴 startupPowerUserHome/INP: p75 728ms
  • 🔴 startupPowerUserHome/INP: p75 760ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -83%
  • onboardingImportWallet/metricsToWalletReadyScreen: -15%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +33%
  • onboardingImportWallet/total: -41%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/createPwToRecoveryScreen: -10%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -32%
  • onboardingNewWallet/doneButtonToAssetList: -24%
  • onboardingNewWallet/total: -26%
  • assetDetails/assetClickToPriceChart: -40%
  • assetDetails/total: -40%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -25%
  • sendTransactions/selectTokenToSendFormLoaded: -30%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +31%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/INP: p75 240ms
  • 🟡 assetDetails/FCP: p75 2.8s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/INP: p75 224ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.6s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 250 Bytes (0%)
  • ui: 3.17 KiB (0.04%)
  • common: 1.46 MiB (11.57%)

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants