Skip to content

feat: adds new wallet_requestExecutionPermissions permission type token-approval-revocation#42841

Merged
jeffsmale90 merged 11 commits into
mainfrom
feat/token-approval-revocation-permission
May 21, 2026
Merged

feat: adds new wallet_requestExecutionPermissions permission type token-approval-revocation#42841
jeffsmale90 merged 11 commits into
mainfrom
feat/token-approval-revocation-permission

Conversation

@jeffsmale90
Copy link
Copy Markdown
Contributor

@jeffsmale90 jeffsmale90 commented May 20, 2026

Description

Adds new permission type token-approval-revocation that can be granted via wallet_requestExecutionPermissions.

Also bumps the following packages:

  • @metamask/7715-permission-types from ^0.6.0 to ^0.7.1
  • @metamask/gator-permissions-controller from ^4.10 to ^4.2.0
  • @metamask/gator-permissions-snap from ^2.1.0 to ^2.2.0

If a permission appears in permission details (Dapp Connections / All Permissions) where we do not know the permission type, we render it as "Unknown permission type".

image

Changelog

CHANGELOG entry: adds new ERC-7715 permission type token-approval-revocation that can be granted via wallet_requestExecutionPermissions

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

All primitives enabled

Permission picker

image

Signature confirmation

image

Subset of primitives enabled

Permission picker

image

Signature confirmation

image

Dapp Connections

image

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
Updates permission-type handling and confirmation/review rendering for execution permissions, which can affect how revocation requests are described and validated to users. Risk is mitigated by test updates, but incorrect schema/mapping could lead to confusing or missing permission details.

Overview
Adds a new ERC-7715 execution permission type, token-approval-revocation, replacing the prior erc20-token-revocation identifier across feature flags, selectors, tests, and confirmation copy.

Updates permission detail schemas/renderers to support revocation method breakdown (all primitives vs a list of enabled methods), introduces new schema element types (raw-text, list), and adds a safe fallback schema that renders unknown permission types as “Unknown permission type” while logging via Sentry.

Bumps related dependencies (@metamask/7715-permission-types, @metamask/gator-permissions-controller, @metamask/gator-permissions-snap) and adjusts LavaMoat policies/build env (GATOR_ENABLED_PERMISSION_TYPES) accordingly.

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

@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-delegation MetaMask Delegation Team label May 20, 2026
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented May 20, 2026

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (4 files, +119 -25)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 confirm/
            • 📁 info/
              • 📁 typed-sign/
                • 📁 typed-sign-permission/
                  • 📄 permission-detail-renderer.test.tsx +77 -6
                  • 📄 permission-detail-renderer.tsx +37 -14
                  • 📄 typed-sign-permission-util.ts +2 -2
                  • 📄 typed-sign-permission.test.tsx +3 -3

👨‍🔧 @MetaMask/core-extension-ux (6 files, +120 -99)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 disconnect-permissions-modal/
          • 📄 permission-item.tsx +2 -2
        • 📁 pages/
          • 📁 gator-permissions/
            • 📁 components/
              • 📁 __snapshots__/
                • 📄 review-gator-permission-item.test.tsx.snap +27 -27
                • 📄 review-gator-permission-item.test.tsx +29 -26
                • 📄 review-gator-permission-item.tsx +1 -1
                • 📄 review-permission-renderer.test.tsx +26 -35
                • 📄 review-permission-renderer.tsx +35 -8

👨‍🔧 @MetaMask/delegation (10 files, +307 -75)
  • 📁 shared/
    • 📁 lib/
      • 📁 gator-permissions/
        • 📄 feature-flags.test.ts +1 -1
        • 📄 gator-permissions-utils.test.ts +10 -3
        • 📄 gator-permissions-utils.ts +1 -1
        • 📄 permission-detail-schema.types.ts +8 -0
        • 📄 permission-detail-schemas.test.ts +51 -28
        • 📄 permission-detail-schemas.ts +117 -17
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 confirm/
            • 📁 info/
              • 📁 typed-sign/
                • 📁 typed-sign-permission/
                  • 📄 permission-detail-renderer.test.tsx +77 -6
                  • 📄 permission-detail-renderer.tsx +37 -14
                  • 📄 typed-sign-permission-util.ts +2 -2
                  • 📄 typed-sign-permission.test.tsx +3 -3

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

Tip

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

@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from d1b5fe2 to 736cb8b Compare May 20, 2026 22:53
@jeffsmale90 jeffsmale90 changed the title Replace erc20-token-revocation permission with token-approval-revocat… feat: replace erc20-token-revocation permission with token-approval-revocation permission May 20, 2026
@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from 736cb8b to 523ef8a Compare May 20, 2026 22:55
@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 20, 2026

@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 20, 2026

Warning

MetaMask internal reviewing guidelines:

  • Do not ignore-all
  • Each alert has instructions on how to review if you don't know what it means. If lost, ask your Security Liaison or the supply-chain group
  • Copy-paste ignore lines for specific packages or a group of one kind with a note on what research you did to deem it safe.
    @SocketSecurity ignore npm/PACKAGE@VERSION
Action Severity Alert  (click "▶" to expand/collapse)
Warn Low
Potential code anomaly (AI signal): npm @metamask/transaction-controller is 75.0% likely to have a medium risk anomaly

Notes: The code performs straightforward signature verification using ethers.js, returning true when the recovered signer matches the provided publicKey. While generally safe, the silent catch and potential mismatch between data formatting and signing process should be addressed to avoid silent failures. Overall, a benign utility with moderate input-format sensitivity.

Confidence: 0.75

Severity: 0.50

From: ?npm/@metamask/gator-permissions-controller@4.2.0npm/@metamask/transaction-controller@66.0.0

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@metamask/transaction-controller@66.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from 523ef8a to 4adf21b Compare May 20, 2026 23:08
…ion permission

- bump @metamask/7715-permission-types from ^0.6.0 to ^0.7.1
- bump @metamask/gator-permissions-controller from ^4.10 to ^4.2.0
- bump @metamask/gator-permissions-snap from ^2.1.0 to ^2.2.0
@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from 4adf21b to 242fc25 Compare May 20, 2026 23:09
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented May 20, 2026

Builds ready [aa168a3]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26196059517 | 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: -72%
  • loadNewAccount/total: -72%
  • bridgeUserActions/bridge_load_page: -35%
  • bridgeUserActions/bridge_load_asset_picker: -64%
  • bridgeUserActions/bridge_search_token: -28%
  • bridgeUserActions/total: -36%

🌐 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-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -25%
  • startupStandardHome/load: -20%
  • startupStandardHome/domContentLoaded: -20%
  • startupStandardHome/domInteractive: -16%
  • startupStandardHome/firstPaint: -49%
  • startupStandardHome/backgroundConnect: -44%
  • startupStandardHome/firstReactRender: -30%
  • startupStandardHome/loadScripts: -20%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -17%
  • startupPowerUserHome/domContentLoaded: -17%
  • startupPowerUserHome/domInteractive: -31%
  • startupPowerUserHome/firstPaint: -52%
  • startupPowerUserHome/loadScripts: -18%
  • startupPowerUserHome/numNetworkReqs: -66%

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

  • 🟡 startupPowerUserHome/INP: p75 464ms
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: -82%
  • onboardingImportWallet/pwFormToMetricsScreen: +530%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +19%
  • onboardingImportWallet/total: -45%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +1031%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/doneButtonToAssetList: -41%
  • onboardingNewWallet/total: -35%
  • assetDetails/assetClickToPriceChart: -66%
  • assetDetails/total: -66%
  • solanaAssetDetails/assetClickToPriceChart: -61%
  • solanaAssetDetails/total: -61%
  • importSrpHome/loginToHomeScreen: -39%
  • importSrpHome/openAccountMenuAfterLogin: -72%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -64%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +35%
  • swap/total: +12%

🌐 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/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 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: +18%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 258.54 KiB (4.01%)
  • ui: 2 KiB (0.02%)
  • common: 2.24 KiB (0.02%)

@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from 9f37da4 to 93a865c Compare May 21, 2026 00:20
@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from 93a865c to 10c928c Compare May 21, 2026 00:23
@jeffsmale90 jeffsmale90 changed the title feat: replace erc20-token-revocation permission with token-approval-revocation permission feat: adds new wallet_requestExecutionPermissions permission type token-approval-revocation May 21, 2026
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 1 potential issue.

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 30f3162. Configure here.

Comment thread shared/lib/gator-permissions/permission-detail-schemas.ts
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented May 21, 2026

Builds ready [30f3162]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 12 pass · 🟡 13 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26209670914 | 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: -74%
  • loadNewAccount/total: -74%
  • bridgeUserActions/bridge_load_page: -38%
  • bridgeUserActions/bridge_load_asset_picker: -53%
  • bridgeUserActions/bridge_search_token: -29%
  • bridgeUserActions/total: -35%
  • loadNewAccount/load_new_account: -40%
  • loadNewAccount/total: -40%
  • bridgeUserActions/bridge_load_page: +51%
  • bridgeUserActions/bridge_load_asset_picker: -24%
  • bridgeUserActions/bridge_search_token: -29%
  • bridgeUserActions/total: -14%

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

  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/FCP: p75 1.8s
  • 🟡 bridgeUserActions/INP: p75 208ms
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/firstPaint: -45%
  • startupStandardHome/backgroundConnect: -42%
  • startupStandardHome/firstReactRender: -22%
  • startupStandardHome/loadScripts: -17%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -15%
  • startupPowerUserHome/domContentLoaded: -14%
  • startupPowerUserHome/domInteractive: -28%
  • startupPowerUserHome/firstPaint: -44%
  • startupPowerUserHome/backgroundConnect: -14%
  • startupPowerUserHome/firstReactRender: -10%
  • startupPowerUserHome/loadScripts: -15%
  • startupPowerUserHome/numNetworkReqs: -67%
  • startupStandardHome/domInteractive: -37%
  • startupStandardHome/backgroundConnect: +15%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -39%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -43%
  • startupPowerUserHome/domInteractive: -79%
  • startupPowerUserHome/backgroundConnect: -73%
  • startupPowerUserHome/setupStore: -86%
  • startupPowerUserHome/numNetworkReqs: -52%

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

  • 🔴 startupPowerUserHome/INP: p75 504ms
  • 🟡 startupPowerUserHome/LCP: p75 3.2s
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: -82%
  • onboardingImportWallet/pwFormToMetricsScreen: +538%
  • onboardingImportWallet/metricsToWalletReadyScreen: -28%
  • onboardingImportWallet/doneButtonToHomeScreen: -78%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +1078%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -57%
  • onboardingNewWallet/total: -48%
  • assetDetails/assetClickToPriceChart: -55%
  • assetDetails/total: -55%
  • solanaAssetDetails/assetClickToPriceChart: -78%
  • solanaAssetDetails/total: -78%
  • importSrpHome/loginToHomeScreen: -53%
  • importSrpHome/openAccountMenuAfterLogin: -82%
  • importSrpHome/homeAfterImportWithNewWallet: -76%
  • importSrpHome/total: -72%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +12%

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

  • 🟡 onboardingImportWallet/INP: p75 248ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 sendTransactions/INP: p75 232ms
  • 🟡 sendTransactions/FCP: p75 1.8s
  • 🟡 swap/FCP: p75 1.9s
  • 🟡 onboardingNewWallet/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
  • 🟡 swap/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +29%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 258.54 KiB (4.01%)
  • ui: 2.22 KiB (0.02%)
  • common: 2.39 KiB (0.02%)

Mrtenz
Mrtenz previously approved these changes May 21, 2026
Copy link
Copy Markdown
Member

@Mrtenz Mrtenz left a comment

Choose a reason for hiding this comment

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

Policy changes look good to me.

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented May 21, 2026

Builds ready [db4dfe3]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 9 pass · 🟡 16 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26214131761 | 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: -72%
  • loadNewAccount/total: -72%
  • bridgeUserActions/bridge_load_page: -40%
  • bridgeUserActions/bridge_load_asset_picker: -52%
  • bridgeUserActions/bridge_search_token: -25%
  • bridgeUserActions/total: -33%
  • loadNewAccount/load_new_account: -50%
  • loadNewAccount/total: -50%
  • bridgeUserActions/bridge_load_page: +44%
  • bridgeUserActions/bridge_load_asset_picker: +63%
  • bridgeUserActions/bridge_search_token: -32%

🌐 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
  • 🟡 loadNewAccount/LCP: p75 2.7s
  • 🟡 bridgeUserActions/INP: p75 208ms
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: -24%
  • startupStandardHome/load: -20%
  • startupStandardHome/domContentLoaded: -19%
  • startupStandardHome/domInteractive: -13%
  • startupStandardHome/firstPaint: -34%
  • startupStandardHome/backgroundConnect: -43%
  • startupStandardHome/firstReactRender: -30%
  • startupStandardHome/loadScripts: -20%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupPowerUserHome/uiStartup: -34%
  • startupPowerUserHome/load: -14%
  • startupPowerUserHome/domContentLoaded: -14%
  • startupPowerUserHome/domInteractive: -27%
  • startupPowerUserHome/firstPaint: -52%
  • startupPowerUserHome/backgroundConnect: -11%
  • startupPowerUserHome/firstReactRender: -10%
  • startupPowerUserHome/loadScripts: -14%
  • startupPowerUserHome/numNetworkReqs: -67%
  • startupStandardHome/load: +12%
  • startupStandardHome/domContentLoaded: +12%
  • startupStandardHome/domInteractive: -57%
  • startupStandardHome/backgroundConnect: +14%
  • startupStandardHome/firstReactRender: +17%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/loadScripts: +12%
  • startupStandardHome/setupStore: -47%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/uiStartup: -48%
  • startupPowerUserHome/load: -10%
  • startupPowerUserHome/domContentLoaded: -10%
  • startupPowerUserHome/domInteractive: -80%
  • startupPowerUserHome/backgroundConnect: -78%
  • startupPowerUserHome/setupStore: -87%
  • startupPowerUserHome/numNetworkReqs: -50%

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

  • 🟡 startupPowerUserHome/INP: p75 416ms
  • 🟡 startupPowerUserHome/LCP: p75 2.8s
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: -82%
  • onboardingImportWallet/pwFormToMetricsScreen: +549%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -81%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/createPwToRecoveryScreen: +1087%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/doneButtonToAssetList: -59%
  • onboardingNewWallet/total: -50%
  • assetDetails/assetClickToPriceChart: -69%
  • assetDetails/total: -69%
  • solanaAssetDetails/assetClickToPriceChart: -81%
  • solanaAssetDetails/total: -81%
  • importSrpHome/loginToHomeScreen: -40%
  • importSrpHome/openAccountMenuAfterLogin: -80%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -64%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +37%
  • swap/total: +13%

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

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 1.8s
  • 🟡 swap/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 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/domContentLoaded: -21%
  • dappPageLoad/firstPaint: -22%
  • dappPageLoad/firstContentfulPaint: -22%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 258.54 KiB (4.01%)
  • ui: 2.35 KiB (0.02%)
  • common: 2.46 KiB (0.02%)

mj-kiwi
mj-kiwi previously approved these changes May 21, 2026
Copy link
Copy Markdown
Contributor

@mj-kiwi mj-kiwi left a comment

Choose a reason for hiding this comment

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

LGTM

@jeffsmale90 jeffsmale90 force-pushed the feat/token-approval-revocation-permission branch from db4dfe3 to 4f29680 Compare May 21, 2026 08:51
Copy link
Copy Markdown
Member

@Mrtenz Mrtenz left a comment

Choose a reason for hiding this comment

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

Policy changes look good to me.

@sonarqubecloud
Copy link
Copy Markdown

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented May 21, 2026

Builds ready [4f29680]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 12 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26215818571 | 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: -78%
  • loadNewAccount/total: -78%
  • bridgeUserActions/bridge_load_page: -31%
  • bridgeUserActions/bridge_load_asset_picker: -63%
  • bridgeUserActions/bridge_search_token: -32%
  • bridgeUserActions/total: -37%
  • loadNewAccount/load_new_account: -49%
  • loadNewAccount/total: -49%
  • bridgeUserActions/bridge_load_page: +26%
  • bridgeUserActions/bridge_search_token: -32%
  • bridgeUserActions/total: -16%

🌐 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
  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -22%
  • startupStandardHome/load: -18%
  • startupStandardHome/domContentLoaded: -17%
  • startupStandardHome/firstPaint: -39%
  • startupStandardHome/backgroundConnect: -42%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -17%
  • startupStandardHome/numNetworkReqs: -29%
  • startupStandardHome/domInteractive: -58%
  • startupStandardHome/backgroundConnect: +19%
  • startupStandardHome/firstReactRender: +11%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -43%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/uiStartup: -44%
  • startupPowerUserHome/domInteractive: -75%
  • startupPowerUserHome/backgroundConnect: -71%
  • startupPowerUserHome/setupStore: -86%
  • startupPowerUserHome/numNetworkReqs: -59%

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

  • 🟡 startupPowerUserHome/LCP: p75 2.9s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
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: -82%
  • onboardingImportWallet/pwFormToMetricsScreen: +560%
  • onboardingImportWallet/metricsToWalletReadyScreen: -29%
  • onboardingImportWallet/doneButtonToHomeScreen: -80%
  • onboardingImportWallet/total: -49%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/createPwToRecoveryScreen: +1126%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/doneButtonToAssetList: -41%
  • onboardingNewWallet/total: -34%
  • assetDetails/assetClickToPriceChart: -54%
  • assetDetails/total: -54%
  • solanaAssetDetails/assetClickToPriceChart: -82%
  • solanaAssetDetails/total: -82%
  • importSrpHome/loginToHomeScreen: -43%
  • importSrpHome/openAccountMenuAfterLogin: -80%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -64%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +12%

🌐 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 1.9s
  • 🟡 swap/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +24%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 258.49 KiB (4.01%)
  • ui: 2.35 KiB (0.02%)
  • common: 2.46 KiB (0.02%)

Copy link
Copy Markdown
Contributor

@ameliejyc ameliejyc left a comment

Choose a reason for hiding this comment

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

Approving for core ux

@jeffsmale90 jeffsmale90 added this pull request to the merge queue May 21, 2026
Merged via the queue into main with commit 756f1b5 May 21, 2026
203 of 204 checks passed
@jeffsmale90 jeffsmale90 deleted the feat/token-approval-revocation-permission branch May 21, 2026 14:09
@github-actions github-actions Bot locked and limited conversation to collaborators May 21, 2026
@metamaskbot metamaskbot added the release-13.33.0 Issue or pull request that will be included in release 13.33.0 label May 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.33.0 Issue or pull request that will be included in release 13.33.0 size-L team-delegation MetaMask Delegation Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants