Skip to content

fix: handle missing nonce cases in tx notif and history for 7702 cp-13.29.0#41967

Merged
maxime-oe merged 1 commit intomainfrom
fix/tempo-handle-missing-nonce
Apr 24, 2026
Merged

fix: handle missing nonce cases in tx notif and history for 7702 cp-13.29.0#41967
maxime-oe merged 1 commit intomainfrom
fix/tempo-handle-missing-nonce

Conversation

@maxime-oe
Copy link
Copy Markdown
Contributor

@maxime-oe maxime-oe commented Apr 20, 2026

Description

On Tempo - but also for all transactions using EIP-7702 on other chains - no nonce is stored in the transaction metadata, causing UI glitches in various places:

  • Transaction confirmation notification showing "Transaction NaN Confirmed!"
  • Empty "nonce" section in the tx activity modal.

This PR solves both of those issues, for Tempo and other chains leveraging EIP-7702 (gasless).

Changelog

CHANGELOG entry: remove the nonce line from tx activity popin when nonce is missing.
CHANGELOG entry: remove the nonce from tx success/failure messages when nonce is missing.

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/NEB-928?atlOrigin=eyJpIjoiOTIxMjA2ZDUzMjQwNGY1ZWJmNDRlNjJmNmQ0NGU3MjIiLCJwIjoiaiJ9

Manual testing steps

  1. Make sure notifications are enabled for when a tx is confirmed.
  2. You can perform any tx from Extension on Tempo (as long as you don't use a Hardware Wallet) to generate an activity in the Activity tab.
  3. Observe "Transaction Confirmed" notification (vs. "Transaction NaN confirmed" before)
  4. Click on the successful tx on Activity tab
  5. Observe absence of any nonce line (vs. empty "nonce" field before).

Screenshots/Recordings

Before

image image

After

image 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

Low Risk
Low risk: changes only adjust user-facing notification/transaction breakdown messaging when nonce is missing, with added test coverage and no impact to signing, state, or network logic.

Overview
Prevents NaN/empty nonce display for nonce-less (e.g. EIP-7702) transactions.

Extension transaction success/failure notifications now switch to new i18n strings when txParams.nonce is absent, and the transaction breakdown UI hides the nonce row entirely in that case. Tests were expanded to cover both nonce-present and nonce-missing scenarios.

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

@maxime-oe maxime-oe marked this pull request as ready for review April 20, 2026 15:58
@metamaskbot metamaskbot added the team-networks PRs from the Networks team label Apr 20, 2026
@maxime-oe maxime-oe force-pushed the fix/tempo-handle-missing-nonce branch from f1cc164 to 591fe80 Compare April 20, 2026 16:02
Comment thread app/scripts/platforms/extension.js
@maxime-oe maxime-oe force-pushed the fix/tempo-handle-missing-nonce branch from 591fe80 to 7e92470 Compare April 20, 2026 16:10
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 7e92470. Configure here.

Comment thread app/scripts/platforms/extension.js Outdated
@maxime-oe maxime-oe force-pushed the fix/tempo-handle-missing-nonce branch from 7e92470 to b9369e0 Compare April 20, 2026 16:13
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented Apr 20, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24677321796 | 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: -74%
  • loadNewAccount/total: -74%
  • bridgeUserActions/bridge_load_page: -20%
  • bridgeUserActions/bridge_load_asset_picker: -23%
  • bridgeUserActions/bridge_search_token: -29%
  • bridgeUserActions/total: -28%

🌐 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]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -25%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -17%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -19%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/firstPaint: -26%
  • startupStandardHome/backgroundConnect: -37%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -44%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/domInteractive: -58%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/setupStore: -17%
  • startupStandardHome/numNetworkReqs: -34%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/domInteractive: -51%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -57%
  • startupStandardHome/numNetworkReqs: -34%
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: -12%
  • onboardingImportWallet/metricsToWalletReadyScreen: -38%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +17%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -76%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -22%
  • onboardingNewWallet/total: -24%
  • assetDetails/assetClickToPriceChart: -84%
  • assetDetails/total: -84%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/openAccountMenuAfterLogin: -84%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: +32%
  • sendTransactions/selectTokenToSendFormLoaded: -35%
  • sendTransactions/reviewTransactionToConfirmationPage: +32%
  • sendTransactions/total: +30%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +10%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 swap/FCP: p75 2.1s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: -111 Bytes (0%)
  • common: 537 Bytes (0%)

@maxime-oe maxime-oe force-pushed the fix/tempo-handle-missing-nonce branch from 4a62e74 to 230a9e5 Compare April 20, 2026 17:21
@sonarqubecloud
Copy link
Copy Markdown

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 Bot commented Apr 20, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24680410788 | 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: -77%
  • loadNewAccount/total: -77%
  • bridgeUserActions/bridge_load_page: -35%
  • bridgeUserActions/bridge_load_asset_picker: -74%
  • bridgeUserActions/bridge_search_token: -30%
  • bridgeUserActions/total: -42%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -21%
  • startupStandardHome/load: -10%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/domInteractive: +13%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -15%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -20%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/firstPaint: +18%
  • startupStandardHome/backgroundConnect: -34%
  • startupStandardHome/firstReactRender: -30%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -44%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/domInteractive: -58%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -34%
  • startupStandardHome/uiStartup: -20%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/domInteractive: -59%
  • startupStandardHome/backgroundConnect: -11%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: -57%
  • startupStandardHome/numNetworkReqs: -34%
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: -37%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -69%
  • onboardingNewWallet/doneButtonToAssetList: -35%
  • onboardingNewWallet/total: -35%
  • assetDetails/assetClickToPriceChart: -77%
  • assetDetails/total: -77%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/openAccountMenuAfterLogin: -60%
  • importSrpHome/homeAfterImportWithNewWallet: -65%
  • importSrpHome/total: -58%
  • sendTransactions/reviewTransactionToConfirmationPage: +37%
  • sendTransactions/total: +35%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/FCP: p75 2.4s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/FCP: p75 2.6s
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 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.82 KiB (0.05%)
  • ui: 112 Bytes (0%)
  • common: 570 Bytes (0%)

@nikolastoimenovski-consensys
Copy link
Copy Markdown

Tested on Chrome and Firefox with and without HW, works as expected on Send, Swap, Bridge (using dapp), Tempo batch trx using test dapp. Feedback:

  • without HW, the "nonce" field is not shown
without HW
  • with HW, the "nonce" field is shown and it is populated
with HW

Also the "Transaction Confirmed" browser notification appears as expected.

@maxime-oe maxime-oe changed the title fix: handle missing nonce cases in tx notif and history for 7702 fix: handle missing nonce cases in tx notif and history for 7702 cp-13.29.0 Apr 24, 2026
Copy link
Copy Markdown
Contributor

@Julink-eth Julink-eth left a comment

Choose a reason for hiding this comment

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

LGTM

@maxime-oe maxime-oe added this pull request to the merge queue Apr 24, 2026
Merged via the queue into main with commit cdf0166 Apr 24, 2026
218 checks passed
@maxime-oe maxime-oe deleted the fix/tempo-handle-missing-nonce branch April 24, 2026 13:48
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 24, 2026
@metamaskbot metamaskbot added the release-13.30.0 Issue or pull request that will be included in release 13.30.0 label Apr 24, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

QA Passed release-13.30.0 Issue or pull request that will be included in release 13.30.0 size-M team-networks PRs from the Networks team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants