Skip to content

feat: integrate Hyperliquid builder fee wallet address overrides#41356

Merged
abretonc7s merged 41 commits into
mainfrom
feat/perps/custom-fee
Apr 13, 2026
Merged

feat: integrate Hyperliquid builder fee wallet address overrides#41356
abretonc7s merged 41 commits into
mainfrom
feat/perps/custom-fee

Conversation

@abretonc7s

@abretonc7s abretonc7s commented Mar 30, 2026

Copy link
Copy Markdown
Contributor

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 stable v3.0.0, which properly excludes MYX SDK from the package (no preview build or webpack workarounds needed).

Mirrors the mobile implementation from PR #27899.

Why the extra changes (v3.0.0 upgrade consequences)

The v3.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 — v3.0.0 changes allowed actions, globals, and transitive deps. Policies are auto-regenerated via yarn lavamoat:auto. v3.0.0 cleanly excludes MYX SDK from the dependency graph, keeping the policy diff minimal. The browserify policy churn (~500 lines per file) is from merges with main (trezor adapter, tempo transactions, etc.), not from perps-controller changes.
  • 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) — state snapshot tests compare actual controller state against JSON fixtures, so they had to be updated to the v2+ shape. New v3.0.0 fields: lastCompletedWithdrawalTimestamp, lastCompletedWithdrawalTxHashes.
  • Test mock (perps-controller-init.test.ts)getDefaultPerpsControllerState mock updated to match v2+ shape for consistency with the rest of the migration.
  • No more preview resolution@metamask/perps-controller@3.0.0 is now a stable release on npm. The previous @metamask-previews resolution and webpack IgnorePlugin workaround for MYX are no longer needed.

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
Upgrades @metamask/perps-controller to v3 and adjusts state/selectors/tests accordingly, which can subtly affect perps data rendering and caching. Env-driven config changes are straightforward but could alter fee routing if misconfigured.

Overview
Adds support for overriding Hyperliquid builder fee wallet addresses via MM_PERPS_HL_BUILDER_ADDRESS_MAINNET/MM_PERPS_HL_BUILDER_ADDRESS_TESTNET, wiring them into PerpsControllerInit as clientConfig.providerCredentials.hyperliquid (with trimming and “unset means use package defaults” behavior).

Upgrades @metamask/perps-controller to ^3.0.0 and updates extension integration points to match the new state shape, including provider-keyed cache selectors (cachedMarketDataByProvider/cachedUserDataByProvider) and refreshed unit/e2e fixtures (plus new withdrawal tracking fields).

Removes the temporary webpack warning suppression and its accompanying test for missing MYXProvider.mjs, updates LavaMoat policies for the new dependency graph, and hardens a perps transaction transform to tolerate missing funding rate values.

Reviewed by Cursor Bugbot for commit f951f20. 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

socket-security Bot commented Mar 30, 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/​perps-controller@​1.3.0 ⏵ 3.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

metamaskbotv2 Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

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

🕵️ @MetaMask/extension-privacy-reviewers (1 files, +4 -7)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +4 -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, +4 -8)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +1 -1
      • 📁 experimental/
        • 📄 policy.json +1 -1
      • 📁 flask/
        • 📄 policy.json +1 -1
      • 📁 main/
        • 📄 policy.json +1 -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, +4 -7)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +4 -7

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

Comment thread .metamaskrc.dist Outdated
…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
Comment thread app/scripts/controllers/perps/infrastructure.ts Outdated
Comment thread app/scripts/controllers/perps/infrastructure.ts
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.
@metamaskbotv2

metamaskbotv2 Bot commented Apr 10, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24245730838 | 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_page: -11%
  • bridgeUserActions/bridge_load_asset_picker: -44%
  • bridgeUserActions/bridge_search_token: -22%
  • bridgeUserActions/total: -26%

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

  • 🟡 loadNewAccount/FCP: p75 2.4s
  • 🟡 confirmTx/FCP: p75 2.4s
  • 🟡 bridgeUserActions/FCP: p75 2.4s
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/domContentLoaded: -11%
  • startupStandardHome/firstPaint: +10%
  • startupStandardHome/backgroundConnect: +14%
  • startupStandardHome/firstReactRender: -18%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -14%
  • startupPowerUserHome/uiStartup: -12%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: +116%
  • startupPowerUserHome/setupStore: +15%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/firstPaint: +18%
  • startupStandardHome/backgroundConnect: -28%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -18%
  • startupPowerUserHome/firstPaint: -12%
  • startupPowerUserHome/numNetworkReqs: +29%
  • startupStandardHome/domInteractive: -59%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: +33%
  • startupStandardHome/setupStore: +13%
  • startupStandardHome/numNetworkReqs: -16%
  • startupPowerUserHome/uiStartup: -12%
  • startupPowerUserHome/backgroundConnect: -37%
  • startupStandardHome/domInteractive: -35%
  • startupStandardHome/backgroundConnect: -19%
  • startupStandardHome/initialActions: +14%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -16%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: -24%

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

  • 🔴 startupPowerUserHome/INP: p75 704ms
  • 🔴 startupPowerUserHome/INP: p75 720ms
  • 🟡 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: -84%
  • onboardingImportWallet/metricsToWalletReadyScreen: -24%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +19%
  • onboardingImportWallet/total: -46%
  • onboardingNewWallet/srpButtonToPwForm: -79%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -31%
  • onboardingNewWallet/total: -31%
  • assetDetails/assetClickToPriceChart: -40%
  • assetDetails/total: -40%
  • solanaAssetDetails/assetClickToPriceChart: -64%
  • solanaAssetDetails/total: -64%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/selectTokenToSendFormLoaded: -22%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +32%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +10%

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

  • 🟡 assetDetails/INP: p75 224ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 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: 2.88 KiB (0.05%)
  • ui: -6.6 KiB (-0.08%)
  • common: 45.83 KiB (0.35%)

@abretonc7s abretonc7s added the DO-NOT-MERGE Pull requests that should not be merged label Apr 10, 2026
@metamaskbotv2

metamaskbotv2 Bot commented Apr 10, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24251227456 | 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: -20%
  • loadNewAccount/total: -20%
  • bridgeUserActions/bridge_load_asset_picker: -50%
  • bridgeUserActions/bridge_search_token: +40%
  • bridgeUserActions/total: +16%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.4s
  • 🟡 bridgeUserActions/FCP: p75 2.4s
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: -11%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/backgroundConnect: +14%
  • startupStandardHome/firstReactRender: -14%
  • startupStandardHome/initialActions: +33%
  • startupStandardHome/loadScripts: -16%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: +135%
  • startupPowerUserHome/setupStore: +21%
  • startupPowerUserHome/numNetworkReqs: -11%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/domInteractive: +11%
  • startupStandardHome/firstPaint: +12%
  • startupStandardHome/backgroundConnect: -27%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/numNetworkReqs: -44%
  • startupStandardHome/domInteractive: -60%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -16%
  • startupPowerUserHome/uiStartup: -10%
  • startupPowerUserHome/backgroundConnect: -28%
  • startupPowerUserHome/firstReactRender: -10%
  • startupPowerUserHome/setupStore: +21%
  • startupStandardHome/domInteractive: -33%
  • startupStandardHome/backgroundConnect: -17%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -12%
  • startupPowerUserHome/domInteractive: -19%
  • startupPowerUserHome/backgroundConnect: -31%

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

  • 🔴 startupPowerUserHome/INP: p75 760ms
  • 🔴 startupPowerUserHome/INP: p75 768ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
  • 🟡 startupPowerUserHome/INP: p75 256ms
  • 🟡 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: -28%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -45%
  • onboardingNewWallet/srpButtonToPwForm: -79%
  • onboardingNewWallet/skipBackupToMetricsScreen: -70%
  • onboardingNewWallet/doneButtonToAssetList: -22%
  • onboardingNewWallet/total: -24%
  • assetDetails/assetClickToPriceChart: -50%
  • assetDetails/total: -50%
  • solanaAssetDetails/assetClickToPriceChart: -70%
  • solanaAssetDetails/total: -70%
  • importSrpHome/openAccountMenuAfterLogin: -81%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -16%
  • sendTransactions/selectTokenToSendFormLoaded: -33%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +30%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +10%

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

  • 🟡 assetDetails/INP: p75 224ms
  • 🟡 assetDetails/FCP: p75 2.4s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/INP: p75 232ms
  • 🟡 importSrpHome/FCP: p75 2.6s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 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: 256 Bytes (0%)
  • ui: 204 Bytes (0%)
  • common: 45.6 KiB (0.35%)

@metamaskbotv2

metamaskbotv2 Bot commented Apr 10, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24256941253 | 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: -18%
  • loadNewAccount/total: -18%
  • bridgeUserActions/bridge_load_asset_picker: -44%
  • bridgeUserActions/total: -24%

🌐 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/uiStartup: -11%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -15%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/backgroundConnect: +68%
  • startupPowerUserHome/setupStore: +21%
  • startupPowerUserHome/numNetworkReqs: -51%
  • startupStandardHome/uiStartup: -17%
  • startupStandardHome/load: -17%
  • startupStandardHome/domContentLoaded: -17%
  • startupStandardHome/backgroundConnect: -32%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -16%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -16%
  • startupPowerUserHome/firstPaint: +19%
  • startupPowerUserHome/numNetworkReqs: +34%
  • startupStandardHome/domInteractive: -57%
  • startupStandardHome/initialActions: +33%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -11%
  • startupPowerUserHome/backgroundConnect: -30%
  • startupPowerUserHome/setupStore: -41%
  • startupStandardHome/domInteractive: -35%
  • startupStandardHome/backgroundConnect: -13%
  • startupStandardHome/initialActions: +14%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/domInteractive: -13%
  • startupPowerUserHome/backgroundConnect: -19%
  • startupPowerUserHome/firstReactRender: -14%
  • startupPowerUserHome/setupStore: +24%

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

  • 🔴 startupPowerUserHome/INP: p75 864ms
  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
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: -86%
  • onboardingImportWallet/confirmSrpToPwForm: -11%
  • onboardingImportWallet/metricsToWalletReadyScreen: -27%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +38%
  • onboardingImportWallet/total: -41%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -63%
  • onboardingNewWallet/doneButtonToAssetList: -31%
  • onboardingNewWallet/total: -31%
  • assetDetails/assetClickToPriceChart: -11%
  • assetDetails/total: -11%
  • solanaAssetDetails/assetClickToPriceChart: -73%
  • solanaAssetDetails/total: -73%
  • importSrpHome/openAccountMenuAfterLogin: -68%
  • importSrpHome/homeAfterImportWithNewWallet: -71%
  • importSrpHome/total: -62%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/selectTokenToSendFormLoaded: -28%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +32%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +12%

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

  • 🟡 assetDetails/INP: p75 224ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 224ms
  • 🟡 importSrpHome/FCP: p75 2.4s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 2.4s
  • 🟡 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: 256 Bytes (0%)
  • ui: 6.69 KiB (0.08%)
  • common: 45.72 KiB (0.35%)

@metamaskbotv2

metamaskbotv2 Bot commented Apr 10, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4929c28]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24262965446 | 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/load: -12%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/domInteractive: +10%
  • startupStandardHome/backgroundConnect: +14%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -17%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/backgroundConnect: +61%
  • startupPowerUserHome/setupStore: +15%
  • startupPowerUserHome/numNetworkReqs: -49%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -15%
  • startupStandardHome/backgroundConnect: -28%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/numNetworkReqs: +16%
  • startupStandardHome/domInteractive: -53%
  • startupStandardHome/initialActions: +33%
  • startupPowerUserHome/backgroundConnect: -25%
  • startupPowerUserHome/firstReactRender: -10%
  • startupPowerUserHome/setupStore: +41%
  • startupStandardHome/domInteractive: -26%
  • startupStandardHome/initialActions: +14%
  • startupStandardHome/setupStore: -57%
  • startupPowerUserHome/uiStartup: -11%
  • startupPowerUserHome/backgroundConnect: -28%

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

  • 🔴 startupPowerUserHome/INP: p75 776ms
  • 🔴 startupPowerUserHome/INP: p75 696ms
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
  • 🟡 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: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -21%
  • onboardingNewWallet/doneButtonToAssetList: -28%
  • onboardingNewWallet/total: -29%
  • assetDetails/assetClickToPriceChart: -57%
  • assetDetails/total: -57%
  • solanaAssetDetails/assetClickToPriceChart: -66%
  • solanaAssetDetails/total: -66%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -27%
  • sendTransactions/selectTokenToSendFormLoaded: -19%
  • 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 208ms
  • 🟡 assetDetails/FCP: p75 2.4s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 232ms
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 sendTransactions/LCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.6s
  • 🟡 swap/LCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 256 Bytes (0%)
  • ui: 8.31 KiB (0.1%)
  • common: 45.72 KiB (0.35%)

@metamaskbotv2

metamaskbotv2 Bot commented Apr 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [45ecbb1]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24269413966 | 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: -50%
  • bridgeUserActions/bridge_search_token: +39%
  • bridgeUserActions/total: +15%

🌐 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/uiStartup: -20%
  • startupStandardHome/domContentLoaded: -10%
  • startupStandardHome/domInteractive: +12%
  • startupStandardHome/backgroundConnect: +15%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -14%
  • startupPowerUserHome/uiStartup: -25%
  • startupPowerUserHome/backgroundConnect: +93%
  • startupPowerUserHome/numNetworkReqs: -49%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/firstPaint: +13%
  • startupStandardHome/backgroundConnect: -39%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/domInteractive: -13%
  • startupPowerUserHome/firstPaint: -13%
  • startupStandardHome/uiStartup: -12%
  • startupStandardHome/domInteractive: -59%
  • startupStandardHome/backgroundConnect: +19%
  • startupStandardHome/initialActions: +33%
  • startupPowerUserHome/uiStartup: -33%
  • startupPowerUserHome/backgroundConnect: -32%
  • startupPowerUserHome/setupStore: +20%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/domInteractive: -44%
  • startupStandardHome/firstReactRender: -12%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -54%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -30%
  • startupPowerUserHome/domInteractive: -10%
  • startupPowerUserHome/backgroundConnect: -20%
  • startupPowerUserHome/setupStore: +13%

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

  • 🔴 startupPowerUserHome/INP: p75 720ms
  • 🔴 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/confirmSrpToPwForm: -11%
  • onboardingImportWallet/metricsToWalletReadyScreen: -48%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -43%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -23%
  • onboardingNewWallet/total: -25%
  • assetDetails/assetClickToPriceChart: -52%
  • assetDetails/total: -52%
  • solanaAssetDetails/assetClickToPriceChart: -64%
  • solanaAssetDetails/total: -64%
  • importSrpHome/openAccountMenuAfterLogin: -78%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -31%
  • sendTransactions/selectTokenToSendFormLoaded: -35%
  • sendTransactions/reviewTransactionToConfirmationPage: +33%
  • sendTransactions/total: +31%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +10%

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

  • 🟡 assetDetails/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 2.4s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/FCP: p75 2.4s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 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: 256 Bytes (0%)
  • ui: 214 Bytes (0%)
  • common: 45.55 KiB (0.35%)

…state keys

- Remove platform-specific `resolver-binding-darwin-arm64` from
  LavaMoat build-system policy (CI runs on linux-x64)
- Add `lastCompletedWithdrawalTimestamp` and `lastCompletedWithdrawalTxHashes`
  to state-logs.json (new fields in perps-controller v3.0.0)
@metamaskbotv2

metamaskbotv2 Bot commented Apr 11, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24270467159 | 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_page: -12%
  • bridgeUserActions/bridge_load_asset_picker: -46%
  • bridgeUserActions/bridge_search_token: -20%

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

  • 🟡 loadNewAccount/FCP: p75 2.4s
  • 🟡 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/uiStartup: -22%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/backgroundConnect: +12%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -17%
  • startupStandardHome/numNetworkReqs: -13%
  • startupPowerUserHome/uiStartup: -25%
  • startupPowerUserHome/backgroundConnect: +70%
  • startupPowerUserHome/numNetworkReqs: -53%
  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/firstPaint: +12%
  • startupStandardHome/backgroundConnect: -35%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -30%
  • startupPowerUserHome/domInteractive: -15%
  • startupPowerUserHome/numNetworkReqs: +49%
  • startupStandardHome/backgroundConnect: +13%
  • startupStandardHome/initialActions: +33%
  • startupStandardHome/numNetworkReqs: -16%
  • startupPowerUserHome/uiStartup: -37%
  • startupPowerUserHome/backgroundConnect: -29%
  • startupPowerUserHome/setupStore: -11%
  • startupStandardHome/domInteractive: -16%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -54%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/domInteractive: -12%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/setupStore: +14%

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

  • 🔴 startupPowerUserHome/INP: p75 704ms
  • 🔴 startupPowerUserHome/INP: p75 696ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
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: -49%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +17%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/doneButtonToAssetList: -35%
  • onboardingNewWallet/total: -34%
  • assetDetails/assetClickToPriceChart: -51%
  • assetDetails/total: -51%
  • solanaAssetDetails/assetClickToPriceChart: -69%
  • solanaAssetDetails/total: -69%
  • importSrpHome/loginToHomeScreen: +12%
  • importSrpHome/openAccountMenuAfterLogin: -64%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -57%
  • sendTransactions/selectTokenToSendFormLoaded: -27%
  • sendTransactions/reviewTransactionToConfirmationPage: +36%
  • sendTransactions/total: +33%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/INP: p75 240ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 importSrpHome/LCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 2.7s
  • 🟡 sendTransactions/LCP: p75 2.6s
  • 🟡 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: 256 Bytes (0%)
  • ui: 214 Bytes (0%)
  • common: 45.55 KiB (0.35%)

aganglada
aganglada previously approved these changes Apr 11, 2026

@aganglada aganglada 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.

LGTM, have we set the new env variables

The builder override wiring now only includes
clientConfig.providerCredentials.hyperliquid when at least one
MM_PERPS_HL_BUILDER_ADDRESS_* env var is configured.

This keeps the extension-side contract tighter and avoids passing an
explicit undefined override into the perps-controller initialization
path when package defaults should be used.

Constraint: Keep the PR scoped to builder-address override wiring
Rejected: Leave an explicit hyperliquid: undefined override in place | unnecessary config noise at the controller boundary
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep extension-side builder overrides absent when unset so package defaults remain the only source of truth
Tested: yarn lint:changed:fix; clean-worktree yarn lint after lint:images:fix; yarn verify-locales --quiet; yarn circular-deps:check; jest app/scripts/messenger-client-init/perps-controller-init.test.ts; jest ui/selectors/perps-controller.test.ts
Not-tested: Current checkout-wide yarn lint without a clean worktree because unrelated local .omc/.omx formatting files interfere
@metamaskbotv2

metamaskbotv2 Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4b3a126]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24319517705 | 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: -20%
  • loadNewAccount/total: -20%
  • bridgeUserActions/bridge_load_page: +31%
  • bridgeUserActions/bridge_load_asset_picker: -47%
  • bridgeUserActions/bridge_search_token: -18%
  • bridgeUserActions/total: -15%

🌐 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/uiStartup: -22%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/firstPaint: +12%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/firstReactRender: -18%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -16%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/uiStartup: -22%
  • startupPowerUserHome/backgroundConnect: +79%
  • startupPowerUserHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/firstPaint: +15%
  • startupStandardHome/backgroundConnect: -34%
  • startupStandardHome/firstReactRender: -27%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -26%
  • startupPowerUserHome/domInteractive: -21%
  • startupPowerUserHome/firstPaint: +11%
  • startupPowerUserHome/numNetworkReqs: +46%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/domInteractive: -59%
  • startupStandardHome/backgroundConnect: +13%
  • startupStandardHome/initialActions: -33%
  • startupPowerUserHome/uiStartup: -33%
  • startupPowerUserHome/domInteractive: +17%
  • startupPowerUserHome/backgroundConnect: -36%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/domInteractive: -25%
  • startupStandardHome/initialActions: +14%
  • startupStandardHome/setupStore: -57%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/uiStartup: -31%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/setupStore: -35%

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

  • 🔴 startupPowerUserHome/INP: p75 744ms
  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🟡 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: -27%
  • onboardingImportWallet/doneButtonToHomeScreen: -73%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/doneButtonToAssetList: -25%
  • onboardingNewWallet/total: -27%
  • solanaAssetDetails/assetClickToPriceChart: -75%
  • solanaAssetDetails/total: -75%
  • importSrpHome/openAccountMenuAfterLogin: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -21%
  • sendTransactions/selectTokenToSendFormLoaded: -29%
  • sendTransactions/reviewTransactionToConfirmationPage: +36%
  • sendTransactions/total: +33%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +33%
  • swap/total: +12%

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

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 232ms
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 sendTransactions/LCP: 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: 267 Bytes (0%)
  • ui: 214 Bytes (0%)
  • common: 45.55 KiB (0.35%)

Lock the already-landed review fixes with regression coverage for builder override normalization and provider-default cached selector lookups.

Constraint: Full yarn lint currently fails on unrelated repo-wide exhaustive-deps warnings outside this PR
Rejected: Expanding this pass into unrelated production code cleanup | would broaden the PR beyond the review scope
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep builder override handling undefined when env vars are absent or whitespace-only so package defaults continue to apply
Tested: yarn lint:changed:fix; yarn verify-locales --quiet; yarn circular-deps:check; yarn jest app/scripts/messenger-client-init/perps-controller-init.test.ts --no-coverage; yarn jest ui/selectors/perps-controller.test.ts --no-coverage
Not-tested: yarn lint (blocked by pre-existing repo-wide exhaustive-deps warnings in unrelated files)
@metamaskbotv2

metamaskbotv2 Bot commented Apr 13, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24320351722 | 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: -21%
  • loadNewAccount/total: -21%
  • bridgeUserActions/bridge_load_asset_picker: -48%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -33%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.4s
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/uiStartup: -22%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/domInteractive: +14%
  • startupStandardHome/backgroundConnect: +10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -16%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -31%
  • startupPowerUserHome/domInteractive: -12%
  • startupPowerUserHome/backgroundConnect: +70%
  • startupPowerUserHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/firstPaint: +30%
  • startupStandardHome/backgroundConnect: -31%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -26%
  • startupPowerUserHome/domInteractive: -16%
  • startupPowerUserHome/numNetworkReqs: -26%
  • startupStandardHome/domInteractive: -18%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: +33%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/firstReactRender: -10%
  • startupPowerUserHome/setupStore: +55%
  • startupStandardHome/uiStartup: -16%
  • startupStandardHome/domInteractive: -37%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -54%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/backgroundConnect: -23%
  • startupPowerUserHome/setupStore: -46%

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

  • 🔴 startupPowerUserHome/INP: p75 768ms
  • 🔴 startupPowerUserHome/INP: p75 776ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
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: -31%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -45%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -69%
  • onboardingNewWallet/doneButtonToAssetList: -32%
  • onboardingNewWallet/total: -33%
  • assetDetails/assetClickToPriceChart: -39%
  • assetDetails/total: -39%
  • solanaAssetDetails/assetClickToPriceChart: -67%
  • solanaAssetDetails/total: -67%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -10%
  • sendTransactions/selectTokenToSendFormLoaded: -31%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +31%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +32%
  • swap/total: +11%

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

  • 🟡 assetDetails/INP: p75 240ms
  • 🟡 assetDetails/FCP: p75 2.6s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/LCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 232ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 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: 267 Bytes (0%)
  • ui: 214 Bytes (0%)
  • common: 45.55 KiB (0.35%)

Public on-chain address, not a secret — no CI secrets/vars needed.
@sonarqubecloud

Copy link
Copy Markdown

@metamaskbotv2

metamaskbotv2 Bot commented Apr 13, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24347289164 | 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: -21%
  • loadNewAccount/total: -21%
  • bridgeUserActions/bridge_load_asset_picker: -30%
  • bridgeUserActions/bridge_search_token: -14%
  • bridgeUserActions/total: -15%

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

  • 🟡 loadNewAccount/FCP: p75 2.6s
  • 🟡 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/uiStartup: -22%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/domInteractive: +11%
  • startupStandardHome/backgroundConnect: +13%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -16%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/uiStartup: -22%
  • startupPowerUserHome/backgroundConnect: +86%
  • startupPowerUserHome/numNetworkReqs: -43%
  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -39%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -27%
  • startupPowerUserHome/numNetworkReqs: -32%
  • startupStandardHome/backgroundConnect: +22%
  • startupStandardHome/initialActions: +33%
  • startupStandardHome/numNetworkReqs: -16%
  • startupPowerUserHome/uiStartup: -31%
  • startupPowerUserHome/backgroundConnect: -23%
  • startupPowerUserHome/setupStore: -26%
  • startupStandardHome/uiStartup: -16%
  • startupStandardHome/domInteractive: -31%
  • startupStandardHome/backgroundConnect: -11%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -64%
  • startupPowerUserHome/uiStartup: -27%
  • startupPowerUserHome/backgroundConnect: -16%
  • startupPowerUserHome/setupStore: +20%
  • startupPowerUserHome/numNetworkReqs: -53%

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

  • 🔴 startupPowerUserHome/INP: p75 776ms
  • 🔴 startupPowerUserHome/INP: p75 768ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
  • 🟡 startupPowerUserHome/INP: p75 304ms
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
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: -46%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -42%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -28%
  • onboardingNewWallet/total: -28%
  • assetDetails/assetClickToPriceChart: -41%
  • assetDetails/total: -41%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • importSrpHome/openAccountMenuAfterLogin: -78%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/selectTokenToSendFormLoaded: -24%
  • sendTransactions/reviewTransactionToConfirmationPage: +38%
  • sendTransactions/total: +36%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +10%

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

  • 🟡 assetDetails/INP: p75 224ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 2.4s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 2.7s
  • 🟡 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: 217 Bytes (0%)
  • ui: 242 Bytes (0%)
  • common: 45.55 KiB (0.35%)

@mcmire mcmire 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.

Looks good from a privacy reviewers perspective.

"fetch": true,
"performance.now": true,
"process": true,
"process.env.NODE_ENV": true,

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.

This is probably fine for now, but in controllers we generally try not to rely on environment variables. We should consider passing in the name of the environment to wherever it is needed.

At the very least the scope of the new version seems to be smaller, so that's good.

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

Labels

agentic release-13.28.0 Issue or pull request that will be included in release 13.28.0 size-M team-perps Perps team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants