Skip to content

Conversation

@tuna1207
Copy link
Member

@tuna1207 tuna1207 commented Nov 24, 2025

Description

Open in GitHub Codespaces

In transaction shield settings screen when user press on payment method, show payment modal for user to choose changing payment method if available
Handle change payment method for crypto -> crypto and crypto -> card

Figma: https://www.figma.com/design/HTAO1SrmixV4ppv7qIvLoa/Metamask-Transaction-Shield?node-id=13566-64615&t=aa5GS94Ns0xYXECP-0

Changelog

CHANGELOG entry:

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

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.

@metamaskbot metamaskbot added the team-onboarding Onboarding team label Nov 24, 2025
@metamaskbot
Copy link
Collaborator

✨ Files requiring CODEOWNER review ✨

🔐 @MetaMask/web3auth (3 files, +461 -152)
  • 📁 ui/
    • 📁 hooks/
      • 📁 subscription/
        • 📄 useSubscription.ts +95 -51
    • 📁 pages/
      • 📁 settings/
        • 📁 transaction-shield-tab/
          • 📄 payment-method-row.tsx +302 -0
          • 📄 transaction-shield.tsx +64 -101

@metamaskbot
Copy link
Collaborator

Builds ready [39b482c]
UI Startup Metrics (1245 ± 117 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12451024158311712931474
load1051876142710511011253
domContentLoaded1046872142010510961248
domInteractive28151252522101
firstPaint51880143841610211214
backgroundConnect21419425511218239
firstReactRender29195283446
getState361679134463
initialActions105112
loadScripts83866512091038851019
setupStore1273541320
numNetworkReqs1257821573
BrowserifyPower User HomeuiStartup18861539336931420322643
load100287520131959911510
domContentLoaded98786920011949691502
domInteractive42153245630197
firstPaint5259520093989111445
backgroundConnect22320034819229250
firstReactRender85541311291103
getState18112738551192316
initialActions103112
loadScripts78466717891927691291
setupStore201055112448
numNetworkReqs1436630555181274
WebpackStandard HomeuiStartup784658107183811976
load61253883073630788
domContentLoaded60853582372625783
domInteractive26141192521105
firstPaint24467792175286598
backgroundConnect953641118
firstReactRender27197183138
getState251259113443
initialActions104112
loadScripts60553381571623776
setupStore1062141217
numNetworkReqs1257720573
WebpackPower User HomeuiStartup15311260285326317092133
load70661015831546931123
domContentLoaded69560415671536751112
domInteractive43182495333208
firstPaint2781001163195275654
backgroundConnect1584672031
firstReactRender89571101196106
getState16412635338169243
initialActions104113
loadScripts69260215561516721101
setupStore22970153059
numNetworkReqs1466730254181292
FirefoxBrowserifyStandard HomeuiStartup12561087171011413031493
load105592812177711071205
domContentLoaded105492812167711071205
domInteractive63311753387128
firstPaint------
backgroundConnect3722135203789
firstReactRender22185172244
getState1057210919
initialActions102012
loadScripts103291211947410771174
setupStore105818923
numNetworkReqs1156915660
BrowserifyPower User HomeuiStartup26731866369030228843146
load1176986167017112291552
domContentLoaded1174985167017112291552
domInteractive12734464103144417
firstPaint------
backgroundConnect212251097234236806
firstReactRender925214619101130
getState16379873136170398
initialActions217227
loadScripts1130954162216011521508
setupStore1637789228148761
numNetworkReqs90592073892188
WebpackStandard HomeuiStartup14251272184411014641698
load1209106314518212371404
domContentLoaded1208106314508212371404
domInteractive62302073282114
firstPaint------
backgroundConnect4219215254494
firstReactRender27205253036
getState126135141222
initialActions103012
loadScripts1183104614347412131347
setupStore12675101134
numNetworkReqs1256517663
WebpackPower User HomeuiStartup28722113381035730713662
load13921119182618915421779
domContentLoaded13911118182618915421779
domInteractive12130554119133459
firstPaint------
backgroundConnect16622854192210667
firstReactRender87441481999125
getState26487904255222830
initialActions3035537
loadScripts13591100178018515131685
setupStore110576218394742
numNetworkReqs91532174581207
📊 Page Load Benchmark Results

Current Commit: 39b482c | Date: 11/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±127ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 729ms (±153ms) 🟢 | historical mean value: 731ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 87ms (±137ms) 🟢 | historical mean value: 79ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 127ms 1.01s 2.28s 1.05s 2.28s
domContentLoaded 729ms 153ms 697ms 2.24s 740ms 2.24s
firstPaint 87ms 137ms 56ms 1.45s 84ms 1.45s
firstContentfulPaint 87ms 137ms 56ms 1.45s 84ms 1.45s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 4.94 KiB (0.07%)
  • common: 126 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [6a2ab08]
UI Startup Metrics (1186 ± 99 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1186104717469912191365
load100081914758610341143
domContentLoaded99381714218310271134
domInteractive2513135241989
firstPaint60895117939710131148
backgroundConnect19818028014203225
firstReactRender27194983243
getState3212100133660
initialActions107112
loadScripts803635119680838941
setupStore1162741220
numNetworkReqs1257821576
BrowserifyPower User HomeuiStartup20381557294026422062504
load97587215781429611376
domContentLoaded96186415691409471356
domInteractive33161452731117
firstPaint57610514073849161287
backgroundConnect21620224810220241
firstReactRender83471451991131
getState16713123322183203
initialActions105112
loadScripts76066913361387431164
setupStore2094892441
numNetworkReqs1586441075188364
WebpackStandard HomeuiStartup8507151137908931038
load66356596088730836
domContentLoaded65855994188723828
domInteractive27161162322100
firstPaint23082852166220689
backgroundConnect1063261426
firstReactRender2820164153338
getState261371113345
initialActions103111
loadScripts65355784382721814
setupStore1164551222
numNetworkReqs1257721573
WebpackPower User HomeuiStartup16321238213022717982032
load65858098098656974
domContentLoaded64957497399641969
domInteractive35172073531127
firstPaint24189714139252615
backgroundConnect1475671730
firstReactRender83451101593103
getState1487221417156183
initialActions104112
loadScripts64657296497639960
setupStore21870132450
numNetworkReqs1596941976195395
FirefoxBrowserifyStandard HomeuiStartup12351069165111212961460
load103491212557710881175
domContentLoaded103491212547710881175
domInteractive60291843282132
firstPaint------
backgroundConnect3719149223794
firstReactRender21174752134
getState1068011921
initialActions102112
loadScripts101389712287310661151
setupStore115427927
numNetworkReqs1156516664
BrowserifyPower User HomeuiStartup24872016311425726862921
load1133941160415111251523
domContentLoaded1132934160315111241523
domInteractive12230586113110422
firstPaint------
backgroundConnect1082852571120215
firstReactRender864814322100132
getState27334833223408783
initialActions3134427
loadScripts1093923157814310851457
setupStore1517855201173680
numNetworkReqs100633136180242
WebpackStandard HomeuiStartup14191266197711714601672
load1206105114489212661390
domContentLoaded1206105014479312661390
domInteractive58272324080132
firstPaint------
backgroundConnect3820116174184
firstReactRender2719117123038
getState11670101034
initialActions103112
loadScripts1183102314058712431362
setupStore1166491133
numNetworkReqs1156716662
WebpackPower User HomeuiStartup26972124367430428453237
load13421109195217013531744
domContentLoaded13411109195217013531743
domInteractive1103052699103363
firstPaint------
backgroundConnect953231943115176
firstReactRender85421491797112
getState26873829215375719
initialActions308237
loadScripts13111091192616913171707
setupStore1196756162118565
numNetworkReqs97533065679238
📊 Page Load Benchmark Results

Current Commit: 6a2ab08 | Date: 11/25/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±44ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 716ms (±41ms) 🟢 | historical mean value: 718ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±15ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 44ms 1.01s 1.34s 1.05s 1.34s
domContentLoaded 716ms 41ms 697ms 1.00s 728ms 1.00s
firstPaint 77ms 15ms 60ms 212ms 96ms 212ms
firstContentfulPaint 77ms 15ms 60ms 212ms 96ms 212ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 4.65 KiB (0.07%)
  • common: 20 Bytes (0%)

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants