Skip to content

feat: Implement new UI for transaction Speed Up and Cancel#39918

Merged
vinistevam merged 21 commits intomainfrom
vs/speedup-cancel-ui
Mar 3, 2026
Merged

feat: Implement new UI for transaction Speed Up and Cancel#39918
vinistevam merged 21 commits intomainfrom
vs/speedup-cancel-ui

Conversation

@vinistevam
Copy link
Contributor

@vinistevam vinistevam commented Feb 9, 2026

Description

This PR introduces the new UI components for transaction "Speed Up" and "Cancel" actions, migrating from legacy views to the modern Confirmation-based architecture using @metamask/design-system-react.

Reason for change:
The current speed up and cancel flows rely on legacy UI patterns that are inconsistent with the new design system and harder to maintain. This change is the first part of a two-step refactor to modernize these critical user flows.

Improvement/Solution:

  • Created a new CancelSpeedup functional component using TypeScript.
  • Implemented the layout using ConfirmInfoSection and ConfirmInfoRow to match the "Gas Fee" section pattern.
  • Integrated the Modal component from the internal component library for a consistent overlay experience.
  • Added a GasTiming component to provide users with visual feedback on estimated transaction speeds.

**NOTE: ** The business logic refactor (moving to standalone hooks) will follow in a subsequent PR.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: Updated the UI for speeding up and cancelling transactions

Related issues

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/6995

Manual testing steps

Speed up

  • Send a transaction with very low gas (e.g., 1 gwei) so it remains pending.
  • Navigate to the Activity tab.
  • Click on the Speed Up button for the pending transaction.
  • Verify the new modal appears with the "Speed" and "Network Fee" rows.
  • Verify the "Edit" icon opens the gas adjustment modal.

Cancel

  • Send a transaction with very low gas (e.g., 1 gwei) so it remains pending.
  • Navigate to the Activity tab.
  • Close the modal and click on Cancel.
  • Verify the title and description update to reflect the "Cancel" intent.
  • Verify the layout remains consistent with the Speed Up view.

Screenshots/Recordings

Screenshot from 2026-02-10 22-40-04
canceled_tx.webm

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Touches the pending-transaction speed-up/cancel flow and gas-fee initialization logic, so regressions could impact users’ ability to replace transactions or see correct fees. Changes are mostly UI refactor but still exercise transaction-modifying actions and estimate selection.

Overview
Replaces the legacy CancelSpeedupPopover used from transaction-list-item with a new TypeScript CancelSpeedup modal under confirmations, using the design system and the confirmations info-row layout (network fee + speed) and wiring confirm to createSpeedUpTransaction/createCancelTransaction.

Adds new i18n strings for cancel/speed-up titles and descriptions, updates the E2E page-object to target the new confirm button test id, and introduces a new unit test suite for the modal (including 10%/medium-estimate fee selection behavior). Also updates gas-fee input initialization to carry chainId in the retry meta and adjusts the Jest console baseline for the new tests.

Written by Cursor Bugbot for commit e6a80ed. This will update automatically on new commits. Configure here.

@vinistevam vinistevam added the team-confirmations Push issues to confirmations team label Feb 9, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 9, 2026

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.

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 9, 2026

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (3 files, +690 -0)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 cancel-speedup/
          • 📄 cancel-speedup.test.tsx +285 -0
          • 📄 cancel-speedup.tsx +404 -0
        • 📁 hooks/
          • 📄 useGasFeeInputs.js +1 -0

👨‍🔧 @MetaMask/core-extension-ux (1 files, +2 -5)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 transaction-list-item/
          • 📄 transaction-list-item.component.js +2 -5

🧪 @MetaMask/qa (1 files, +2 -4)
  • 📁 test/
    • 📁 e2e/
      • 📁 page-objects/
        • 📁 pages/
          • 📁 home/
            • 📄 activity-list.ts +2 -4

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 9, 2026

Builds ready [0acbb26]
UI Startup Metrics (1421 ± 94 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1421117317329414711554
load1212101214298912641341
domContentLoaded120597814149012591324
domInteractive261697182378
firstPaint1476735567204244
backgroundConnect23621730114239266
firstReactRender17112631923
initialActions106114
loadScripts98476411839210391109
setupStore1263251521
numNetworkReqs231585201582
BrowserifyPower User HomeuiStartup304713709212145539205507
load12451049202015512911578
domContentLoaded12261037197214712691552
domInteractive3519155263495
firstPaint216811571187255378
backgroundConnect931289434984613712579
firstReactRender24166982537
initialActions107112
loadScripts987811163913510201290
setupStore1465371528
numNetworkReqs1154323640133180
WebpackStandard HomeuiStartup89168111991189571089
load7556111093115821994
domContentLoaded7496081079114815988
domInteractive261598192279
firstPaint1156075496131199
backgroundConnect3518133233784
firstReactRender16106471730
initialActions105112
loadScripts7466061073112808967
setupStore1253451222
numNetworkReqs231592201584
WebpackPower User HomeuiStartup1288838220026313851787
load76264913911357571110
domContentLoaded75063713831367451090
domInteractive3918198253995
firstPaint166771100128191298
backgroundConnect1801341111119164309
firstReactRender22173542429
initialActions101011
loadScripts74763513721347421081
setupStore1252551521
numNetworkReqs1475429542164231
FirefoxBrowserifyStandard HomeuiStartup16161310208618717571934
load13631131184615214761603
domContentLoaded13611130184515214741602
domInteractive69331833588135
firstPaint------
backgroundConnect712717740108146
firstReactRender1292121214
initialActions102012
loadScripts13231106173614014111565
setupStore175186271261
numNetworkReqs251199231893
BrowserifyPower User HomeuiStartup28252148746757130183313
load15271248594847415671818
domContentLoaded15261247594847415671818
domInteractive15951712116187342
firstPaint------
backgroundConnect47412014953087161062
firstReactRender18146461823
initialActions213122
loadScripts14781223591347014971718
setupStore139151398197122543
numNetworkReqs1015017830122163
WebpackStandard HomeuiStartup16481368225519617732033
load14021169198213714821624
domContentLoaded14011169198213714811624
domInteractive902825747129185
firstPaint------
backgroundConnect722418745105160
firstReactRender1611136131522
initialActions103122
loadScripts13631154184012114221554
setupStore2452344114126
numNetworkReqs231286181875
WebpackPower User HomeuiStartup299718979111103429824540
load17121286736389416372752
domContentLoaded17111286736289416372751
domInteractive184481943215201451
firstPaint------
backgroundConnect64813063456738501278
firstReactRender22165772429
initialActions216122
loadScripts16141241733272915432101
setupStore121121031155121420
numNetworkReqs944522735100162
📊 Page Load Benchmark Results

Current Commit: 0acbb26 | Date: 2/9/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±40ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 728ms (±38ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±15ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 40ms 1.02s 1.35s 1.08s 1.35s
domContentLoaded 728ms 38ms 704ms 1.02s 764ms 1.02s
firstPaint 78ms 15ms 60ms 216ms 84ms 216ms
firstContentfulPaint 78ms 15ms 60ms 216ms 84ms 216ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -1.29 MiB (-24.52%)
  • ui: -109.45 KiB (-1.31%)
  • common: 1.33 MiB (14.55%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 10, 2026

Builds ready [ab7d229]
UI Startup Metrics (1339 ± 92 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1339114616879213921496
load115799114208812111315
domContentLoaded115196914058612061308
domInteractive261587172277
firstPaint144641276129183237
backgroundConnect23321628713235265
firstReactRender16103551728
initialActions106113
loadScripts9317581182869791092
setupStore1263241418
numNetworkReqs231587211584
BrowserifyPower User HomeuiStartup16291300225516016981909
load1063956176116110361553
domContentLoaded1046948163814910211457
domInteractive35172263531103
firstPaint200611467180226451
backgroundConnect29425748132300348
firstReactRender22144862337
initialActions103111
loadScripts83674313951398131217
setupStore1566071625
numNetworkReqs1124627444134175
WebpackStandard HomeuiStartup85168811051069571024
load741616956101833907
domContentLoaded73561294999827899
domInteractive2717104202383
firstPaint1126235260122238
backgroundConnect26175073140
firstReactRender15103851725
initialActions104112
loadScripts73261194799819897
setupStore1253251320
numNetworkReqs231592211586
WebpackPower User HomeuiStartup1199855208418912721576
load7016171430124691997
domContentLoaded6926091420124681990
domInteractive34171462832107
firstPaint1326054092134295
backgroundConnect15813141245153250
firstReactRender21163132329
initialActions101011
loadScripts6896071411122679982
setupStore1345481430
numNetworkReqs944525444101173
FirefoxBrowserifyStandard HomeuiStartup15211325212417615371908
load13101148190113813391591
domContentLoaded13091148189613813381591
domInteractive64332654184136
firstPaint------
backgroundConnect5327203245479
firstReactRender12101611213
initialActions103122
loadScripts12851126187413413181555
setupStore146129151331
numNetworkReqs241294211784
BrowserifyPower User HomeuiStartup27591991401541828533630
load16011286251025216942137
domContentLoaded16001286251025216942137
domInteractive13136605119121422
firstPaint------
backgroundConnect278120977239281906
firstReactRender19157172024
initialActions203122
loadScripts15631267248724216302060
setupStore1268790192102626
numNetworkReqs67361433294126
WebpackStandard HomeuiStartup15461301209213815821823
load1334115816719013861465
domContentLoaded1333115416709113861464
domInteractive812916437112133
firstPaint------
backgroundConnect57232623662134
firstReactRender14114641417
initialActions103112
loadScripts1306113915678313611438
setupStore155193271139
numNetworkReqs241393201683
WebpackPower User HomeuiStartup27041897418046428633560
load15721231238435116542342
domContentLoaded15721230238335116532342
domInteractive1353290618997622
firstPaint------
backgroundConnect303109999243292906
firstReactRender22157282432
initialActions216123
loadScripts15371207236434116302232
setupStore1766794232262722
numNetworkReqs64351553384127
📊 Page Load Benchmark Results

Current Commit: ab7d229 | Date: 2/10/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±52ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 717ms (±49ms) 🟢 | historical mean value: 720ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±12ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 52ms 1.00s 1.31s 1.06s 1.31s
domContentLoaded 717ms 49ms 693ms 985ms 749ms 985ms
firstPaint 74ms 12ms 56ms 180ms 84ms 180ms
firstContentfulPaint 74ms 12ms 56ms 180ms 84ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -1.34 MiB (-25.49%)
  • ui: -57.58 KiB (-0.69%)
  • common: 1.49 MiB (16.29%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 11, 2026

Builds ready [f537fce]
UI Startup Metrics (1347 ± 107 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13471114154810714351523
load1155961135910212301319
domContentLoaded1148957135010112221308
domInteractive261591182477
firstPaint186601228188201297
backgroundConnect22320429613228250
firstReactRender15103241623
initialActions104112
loadScripts939744115710010171099
setupStore137170161321
numNetworkReqs231594221587
BrowserifyPower User HomeuiStartup19661395836576320342441
load12161063187917012431621
domContentLoaded11981048176816012211607
domInteractive39192153335131
firstPaint226741789260250335
backgroundConnect4212896128610355469
firstReactRender22144162435
initialActions105112
loadScripts95379814971529801349
setupStore1664171933
numNetworkReqs76391652985154
WebpackStandard HomeuiStartup8326771048939101000
load72161092186796867
domContentLoaded71560691585790861
domInteractive251599182372
firstPaint1126063876127220
backgroundConnect25185672735
firstReactRender14103851722
initialActions104112
loadScripts71260491385781859
setupStore1153651120
numNetworkReqs231597221586
WebpackPower User HomeuiStartup1215880195417813051499
load72262310971107141028
domContentLoaded71261510901107021016
domInteractive39172043336113
firstPaint1426538267170273
backgroundConnect16513259564157296
firstReactRender22173332429
initialActions101011
loadScripts70961310821087001006
setupStore1145151318
numNetworkReqs1294527150150234
FirefoxBrowserifyStandard HomeuiStartup15401337213316015651886
load13211157163510413681519
domContentLoaded13191156163110413681513
domInteractive68334354886133
firstPaint------
backgroundConnect57312543054121
firstReactRender11101611213
initialActions102012
loadScripts12951133160010013401496
setupStore176178281259
numNetworkReqs241394221886
BrowserifyPower User HomeuiStartup27211965744159228383446
load16021298611651416052078
domContentLoaded16011298611551416052074
domInteractive13337618128112497
firstPaint------
backgroundConnect232108910165238661
firstReactRender18145861822
initialActions213123
loadScripts15651280607651015432044
setupStore1399720187135632
numNetworkReqs73361683695138
WebpackStandard HomeuiStartup15411309189812315711806
load1337118615869013881504
domContentLoaded1336118515869113861504
domInteractive812721038105135
firstPaint------
backgroundConnect53251673053123
firstReactRender13112221418
initialActions103122
loadScripts1306114115318613531470
setupStore136155161131
numNetworkReqs231387191778
WebpackPower User HomeuiStartup26792045386638528573494
load15221254254226916182028
domContentLoaded15211254254226916182022
domInteractive13530795151122572
firstPaint------
backgroundConnect3341171194268363905
firstReactRender22157582429
initialActions2033322
loadScripts14801233252525715681978
setupStore1927739220329678
numNetworkReqs70381703393131
📊 Page Load Benchmark Results

Current Commit: f537fce | Date: 2/11/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±35ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 714ms (±34ms) 🟢 | historical mean value: 719ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 35ms 1.01s 1.30s 1.08s 1.30s
domContentLoaded 714ms 34ms 684ms 959ms 742ms 959ms
firstPaint 78ms 11ms 60ms 156ms 88ms 156ms
firstContentfulPaint 78ms 11ms 60ms 156ms 88ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 58 Bytes (0%)
  • ui: -10.29 KiB (-0.12%)
  • common: 342 Bytes (0%)

Copy link

@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 3 potential issues.

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 24, 2026

Builds ready [dedfe06]
⚡ Performance Benchmarks (1377 ± 113 ms)
👆 Interaction Benchmarks
ActionMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account28115297300
total28115297300
Confirm Txconfirm_tx6036760366047
total6036760366047
Bridge User Actionsbridge_load_page2587257268
bridge_load_asset_picker15144189218
bridge_search_token6960697697
total10933311081151
🔌 Startup Benchmarks
BuildMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
Chrome Browserify Startup Standard HomeuiStartup13771161170511314391589
load1165965149410312261351
domContentLoaded1158957148710112151322
domInteractive2815121212375
firstPaint165651168158204324
backgroundConnect20018226113202223
firstReactRender18122932025
initialActions104123
loadScripts974774130610010331141
setupStore1362751621
numNetworkReqs312292192584
Chrome Browserify Startup Power User HomeuiStartup16541359246516617041931
load11131002184915111051494
domContentLoaded1097994184414710851439
domInteractive3419156243286
firstPaint1677634971226297
backgroundConnect27924763441285318
firstReactRender23154672638
initialActions109112
loadScripts90079516331458821246
setupStore1565381728
numNetworkReqs59371492656134
Chrome Webpack Startup Standard HomeuiStartup84768711191019071061
load72860491089793878
domContentLoaded72260090388788874
domInteractive2815122232385
firstPaint1155634957143212
backgroundConnect26195372938
firstReactRender17123961930
initialActions108111
loadScripts72059890187786865
setupStore1263351222
numNetworkReqs3122101212589
Chrome Webpack Startup Power User HomeuiStartup1202882170714512761511
load71562712301137051021
domContentLoaded70662012221126941014
domInteractive35181943032111
firstPaint1286540672135306
backgroundConnect17413331143171276
firstReactRender22183332430
initialActions104111
loadScripts70361812101106921001
setupStore1355871422
numNetworkReqs1003526549133192
Firefox Browserify Startup Standard HomeuiStartup16411377239917916791990
load13831163202013714391635
domContentLoaded13821159201513714391634
domInteractive803335652100161
firstPaint------
backgroundConnect6028196256396
firstReactRender13111911415
initialActions102112
loadScripts13561143198913314011606
setupStore175153231529
numNetworkReqs312097212591
Firefox Browserify Startup Power User HomeuiStartup28862189430041630063707
load16851299254728517752265
domContentLoaded16851295254728517742265
domInteractive14338776140129480
firstPaint------
backgroundConnect243111989174230568
firstReactRender20157292026
initialActions203122
loadScripts16391276251426217382221
setupStore16810791207179622
numNetworkReqs61281473774143
Firefox Webpack Startup Standard HomeuiStartup17441433328328517672055
load14811233288625814971750
domContentLoaded14801233288625814961750
domInteractive118311521153134211
firstPaint------
backgroundConnect62262283266124
firstReactRender16124241622
initialActions105122
loadScripts14561215286325514641676
setupStore228134212055
numNetworkReqs312094182781
Firefox Webpack Startup Power User HomeuiStartup27702099401544729573778
load16171329270032617302445
domContentLoaded16161329269932617292445
domInteractive13931886177114637
firstPaint------
backgroundConnect2511051026199227779
firstReactRender2516123152461
initialActions203122
loadScripts15751298267530516592251
setupStore1757827229163709
numNetworkReqs59261923785130
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2182219220
srpButtonToSrpForm9229395
confirmSrpToPwForm2102122
pwFormToMetricsScreen1501515
metricsToWalletReadyScreen1501515
doneButtonToHomeScreen111530414001407
openAccountMenuToAccountListLoaded701850172507818
total849745287789023
Onboarding New WalletcreateWalletToSocialScreen2182220221
srpButtonToPwForm1031103104
createPwToRecoveryScreen8088
skipBackupToMetricsScreen3503536
agreeButtonToOnboardingSuccess1501616
doneButtonToAssetList56399673696
total9449910571073
Asset DetailsassetClickToPriceChart4033944
total4033944
Solana Asset DetailsassetClickToPriceChart4824851
total4824851
Import Srp HomeloginToHomeScreen19968919892133
openAccountMenuAfterLogin4154447
homeAfterImportWithNewWallet272733228943189
total483545252255346
Send TransactionsopenSendPageFromHome33114345
selectTokenToSendFormLoaded2532730
reviewTransactionToConfirmationPage88714891907
total94115947962
SwapopenSwapPageFromHome13117144152
fetchAndDisplaySwapQuotes561580562596312
total573183064036426
🌐 Dapp Page Load Benchmarks

Current Commit: dedfe06 | Date: 2/24/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±37ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 730ms (±35ms) 🟢 | historical mean value: 729ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±9ms) 🟢 | historical mean value: 82ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 37ms 1.02s 1.32s 1.08s 1.32s
domContentLoaded 730ms 35ms 707ms 990ms 749ms 990ms
firstPaint 79ms 9ms 64ms 148ms 88ms 148ms
firstContentfulPaint 79ms 9ms 64ms 148ms 88ms 148ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 7.1 KiB (0.16%)
  • ui: -19.56 KiB (-0.23%)
  • common: -34.15 KiB (-0.31%)

mode={editGasMode}
onClose={() => closeModal(['cancelSpeedUpTransaction'])}
/>
</GasFeeContextProvider>
Copy link
Contributor

Choose a reason for hiding this comment

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

An important goal for us is to get rid of GasFeeContextProvider context. We should not use it in new implementation.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

100% that is the main goal, sorry I should have that more clean in the PR. What I'm trying in this PR is to match the new UI first, due to sizing, maintaining the legacy logic and in a second phase (this PR) remove the GasFeeContextProvider and modernize the logic behind. I would say that I might need a third phase to remove old code and at least migrate some components (GasTiming, NetworkStatistics and StatusSlider ) to typescript that are heavily coupled to GasFeeContextProvider. Once that is all done we also can remove the GasFeeContextProvider from confirmations as well.

Copy link
Contributor

Choose a reason for hiding this comment

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

That sounds good, can you please add this detail as comment here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

@jpuri jpuri left a comment

Choose a reason for hiding this comment

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

I think we need to get rid of GasFeeContextProvider.

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 26, 2026

Builds ready [c8dda2a]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account28726331220303312
total28726331220303312
Confirm Txconfirm_tx603260286038460336038
total603260286038460336038
Bridge User Actionsbridge_load_page22218424823243248
bridge_load_asset_picker24916035471307354
bridge_search_token71770573813727738
total1187111113299312681329
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup13991194185810714201603
load1179101015999812051352
domContentLoaded117299915169312011328
domInteractive281797182478
firstPaint1426945679184309
backgroundConnect21119427613214235
firstReactRender19134352030
initialActions106113
loadScripts97780413169310071137
setupStore1374161525
numNetworkReqs312290192579
Power User HomeuiStartup2459144810696181020995828
load12031030180416012391556
domContentLoaded11901020176615712271506
domInteractive3620197273497
firstPaint1758154077226301
backgroundConnect770264814614343592905
firstReactRender25166382738
initialActions105112
loadScripts96781715191519761292
setupStore1673351826
numNetworkReqs70341532680120
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2202162243221224
srpButtonToSrpForm94939519595
confirmSrpToPwForm23222412324
pwFormToMetricsScreen16161601616
metricsToWalletReadyScreen16151711717
doneButtonToHomeScreen1114826142424312511424
openAccountMenuToAccountListLoaded73687088765023576477650
total884388398846388468846
Onboarding New WalletcreateWalletToSocialScreen2202182232221223
srpButtonToPwForm1161141192117119
createPwToRecoveryScreen991001010
skipBackupToMetricsScreen39374113941
agreeButtonToOnboardingSuccess18171911819
doneButtonToAssetList58153461329595613
total99398410091210091009
Asset DetailsassetClickToPriceChart41344754547
total41344754547
Solana Asset DetailsassetClickToPriceChart48455334953
total48455334953
Import Srp HomeloginToHomeScreen20931929232615322192326
openAccountMenuAfterLogin49435445354
homeAfterImportWithNewWallet2421234624986224982498
total45954064522740047995227
Send TransactionsopenSendPageFromHome271741114041
selectTokenToSendFormLoaded20202102121
reviewTransactionToConfirmationPage87184692228879922
total9099049165909916
SwapopenSwapPageFromHome9483108997108
fetchAndDisplaySwapQuotes4612457646432546224643
total4702467247402547054740
🌐 Dapp Page Load Benchmarks

Current Commit: c8dda2a | Date: 2/26/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±40ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 741ms (±38ms) 🟢 | historical mean value: 742ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 82ms (±9ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 40ms 1.02s 1.36s 1.08s 1.36s
domContentLoaded 741ms 38ms 715ms 1.03s 758ms 1.03s
firstPaint 82ms 9ms 68ms 152ms 92ms 152ms
firstContentfulPaint 82ms 9ms 68ms 152ms 92ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 58 Bytes (0%)
  • ui: -10.42 KiB (-0.12%)
  • common: 340 Bytes (0%)

@vinistevam
Copy link
Contributor Author

Implementation Phases
Phase 1 (This PR): UI update to match new design system while maintaining GasFeeContextProvider logic

Phase 2: (draft PR) Remove GasFeeContextProvider and modernize gas fee logic for speed up and cancel

Phase 3: Migrate GasTiming, NetworkStatistics, and StatusSlider to TypeScript, then remove GasFeeContextProvider from confirmations entirely

This phased approach ensures stability and allows for incremental testing at each stage.

jpuri
jpuri previously approved these changes Feb 27, 2026
currency: secondaryCurrency,
});

return (
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we hide these controls for 7702 transactions?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is pure UI refactor. I've opened one ticket to hide the controls when transaction is 7702.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 2, 2026

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Mar 2, 2026

Builds ready [e6a80ed]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account27926829411289294
total27926829411289294
Confirm Txconfirm_tx6114604562287661836228
total6114604562287661836228
Bridge User Actionsbridge_load_page23418627634263276
bridge_load_asset_picker2031942138213213
bridge_search_token71770574314724743
total1162110412856911941285
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup14131183175810614391627
load118998514669712131383
domContentLoaded118298014619512081361
domInteractive2716117182469
firstPaint167681210134206365
backgroundConnect21119326712216235
firstReactRender20114162133
initialActions105123
loadScripts98778312589210121166
setupStore1364261723
numNetworkReqs312291192284
Power User HomeuiStartup2762158910573201323998794
load12431085176614512991557
domContentLoaded12271074166713812791550
domInteractive3920240333878
firstPaint214861212137280363
backgroundConnect826260647911514233650
firstReactRender25164572641
initialActions105114
loadScripts1007846145113410601283
setupStore1664171834
numNetworkReqs74381382591120
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2242162305229230
srpButtonToSrpForm94939409494
confirmSrpToPwForm22212202222
pwFormToMetricsScreen15151601616
metricsToWalletReadyScreen16161701717
doneButtonToHomeScreen1092810144523412241445
openAccountMenuToAccountListLoaded73957025784129976407841
total88618617904916990299049
Onboarding New WalletcreateWalletToSocialScreen2202192211220221
srpButtonToPwForm1091091090109109
createPwToRecoveryScreen889089
skipBackupToMetricsScreen37363703737
agreeButtonToOnboardingSuccess17161701717
doneButtonToAssetList970582128831212701288
total1373973167931816571679
Asset DetailsassetClickToPriceChart543387206387
total543387206387
Solana Asset DetailsassetClickToPriceChart49475224952
total49475224952
Import Srp HomeloginToHomeScreen2074205320861520862086
openAccountMenuAfterLogin41374944349
homeAfterImportWithNewWallet24662325259210325312592
total45824454481313745394813
Send TransactionsopenSendPageFromHome341849134349
selectTokenToSendFormLoaded22202522425
reviewTransactionToConfirmationPage1010860119113011331191
total1066898123113011981231
SwapopenSwapPageFromHome13010119034140190
fetchAndDisplaySwapQuotes56044608628081062606280
total57344723640079163826400
🌐 Dapp Page Load Benchmarks

Current Commit: e6a80ed | Date: 3/2/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.07s (±42ms) 🟡 | historical mean value: 1.05s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 756ms (±38ms) 🟢 | historical mean value: 739ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 84ms (±12ms) 🟢 | historical mean value: 81ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.07s 42ms 1.04s 1.38s 1.12s 1.38s
domContentLoaded 756ms 38ms 731ms 1.04s 783ms 1.04s
firstPaint 84ms 12ms 68ms 188ms 96ms 188ms
firstContentfulPaint 84ms 12ms 68ms 188ms 96ms 188ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 58 Bytes (0%)
  • ui: -10.4 KiB (-0.12%)
  • common: 340 Bytes (0%)

Copy link
Contributor

@n3ps n3ps left a comment

Choose a reason for hiding this comment

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

@vinistevam looks like the cancel-speedup-popover components is no longer used, can it be removed in a follow up?

@vinistevam vinistevam added this pull request to the merge queue Mar 3, 2026
Merged via the queue into main with commit 9f355a9 Mar 3, 2026
180 checks passed
@vinistevam vinistevam deleted the vs/speedup-cancel-ui branch March 3, 2026 06:18
@github-actions github-actions bot locked and limited conversation to collaborators Mar 3, 2026
@metamaskbot metamaskbot added the release-13.22.0 Issue or pull request that will be included in release 13.22.0 label Mar 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.22.0 Issue or pull request that will be included in release 13.22.0 size-L team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants