Skip to content

Conversation

@jpuri
Copy link
Contributor

@jpuri jpuri commented Nov 6, 2025

Description

For MetaMask suggested swap estimated changes should be populated from quote data.

Changelog

CHANGELOG entry:

Related issues

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

Manual testing steps

  1. Enable dapp swap locally
  2. Submit swap and check metamask suggested swap

Screenshots/Recordings

Screen.Recording.2025-11-07.at.12.16.22.PM.mov

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

Displays estimated changes for MetaMask quoted swaps using quote/fiat data via a new simulation details component; hides batch simulation for quoted swaps; exposes fiat rates from hooks.

  • Confirmations UI:
    • Show MetaMask swap comparison details using QuoteSwapSimulationDetails in dapp-swap-comparison-banner when SwapType.Metamask is selected.
    • Pass additional data from useDappSwapComparisonInfo (fiatRates, sourceTokenAmount, tokenDetails).
  • New Component:
    • components/confirm/quote-swap-simulation-details/quote-swap-simulation-details: renders outgoing/incoming balance changes from QuoteResponse using fiat rates and token metadata.
    • Uses exported SimulationDetailsLayout (now export const).
  • Batch Simulation:
    • batch-simulation-details: skip rendering for revokeDelegation, upgrade-only, and quoted swaps via useSwapCheck.
  • Hooks:
    • useDappSwapUSDValues: now returns fiatRates.
    • useDappSwapComparisonInfo: returns fiatRates, sourceTokenAmount, tokenDetails, and computes differences; consumes new USD values.
  • Tests:
    • Add tests for QuoteSwapSimulationDetails.
    • Update tests for batch simulation and hooks to cover quoted swap and fiatRates propagation.

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

@jpuri jpuri added team-confirmations Push issues to confirmations team no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels Nov 6, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

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.

@jpuri jpuri changed the title feat: For quoted swap use data from quote to populate estimated changes feat: for quoted swap use data from quote to populate estimated changes Nov 6, 2025
@github-actions github-actions bot added the size-M label Nov 6, 2025
@metamaskbot
Copy link
Collaborator

metamaskbot commented Nov 6, 2025

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (10 files, +270 -15)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 confirm/
            • 📁 dapp-swap-comparison-banner/
              • 📄 dapp-swap-comparison-banner.tsx +16 -3
            • 📁 info/
              • 📁 batch/
                • 📁 batch-simulation-details/
                  • 📄 batch-simulation-details.test.tsx +9 -0
                  • 📄 batch-simulation-details.tsx +10 -7
            • 📁 quote-swap-simulation-details/
              • 📄 quote-swap-simulation-details.test.tsx +93 -0
              • 📄 quote-swap-simulation-details.tsx +108 -0
          • 📁 simulation-details/
            • 📄 simulation-details.tsx +1 -1
        • 📁 hooks/
          • 📁 transactions/
            • 📁 dapp-swap-comparison/
              • 📄 useDappSwapComparisonInfo.test.ts +21 -2
              • 📄 useDappSwapComparisonInfo.ts +6 -2
              • 📄 useDappSwapUSDValues.test.ts +5 -0
              • 📄 useDappSwapUSDValues.ts +1 -0

@metamaskbot
Copy link
Collaborator

Builds ready [ec93043]
UI Startup Metrics (1254 ± 106 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12541091181310613011464
load106992015008911241246
domContentLoaded106291414898911181238
domInteractive2214107162059
firstPaint54773125741010361175
backgroundConnect23622228211241255
firstReactRender2818146143045
getState22761102643
initialActions81609830
loadScripts833674124988890998
setupStore1273241218
numNetworkReqs1367419671
BrowserifyPower User HomeuiStartup20961712298136925232981
load1074898169921612921699
domContentLoaded1064894166821012651668
domInteractive291571195471
firstPaint72294170046810201700
backgroundConnect24522128514254285
firstReactRender29253633036
getState18615923022207230
initialActions52194519
loadScripts831670139719910341397
setupStore1493481234
numNetworkReqs1187225571225255
WebpackStandard HomeuiStartup8256951138958261080
load60355391784595857
domContentLoaded59654989380587844
domInteractive161164101437
firstPaint21559901202208579
backgroundConnect241171132454
firstReactRender291889113349
getState1163441222
initialActions40213412
loadScripts59354788178585834
setupStore1152941222
numNetworkReqs1367419870
WebpackPower User HomeuiStartup12861137180921715031809
load629567908100663908
domContentLoaded61455788594647885
domInteractive231365173265
firstPaint28198668205563668
backgroundConnect53112436547243
firstReactRender27243222832
getState14510316218156162
initialActions41195319
loadScripts60955587492637874
setupStore1162981229
numNetworkReqs1076622859194228
FirefoxBrowserifyStandard HomeuiStartup14551264199814614891772
load1233109014568612831404
domContentLoaded1233108914568612831404
domInteractive1183635757122280
firstPaint------
backgroundConnect4226205244790
firstReactRender25215952534
getState9420422615
initialActions7119125317
loadScripts1208107314078112591376
setupStore13763111235
numNetworkReqs1266315756
BrowserifyPower User HomeuiStartup25232063341839528563418
load13751218190318215371903
domContentLoaded13751218190318215371903
domInteractive21194595170410595
firstPaint------
backgroundConnect12136376107163376
firstReactRender433177125077
getState1377923139143231
initialActions11139121639
loadScripts13291132187017714141870
setupStore3971494084149
numNetworkReqs1346831192213311
WebpackStandard HomeuiStartup15861394233416716062009
load13471210173210513831560
domContentLoaded13471210173110513821559
domInteractive993434339113166
firstPaint------
backgroundConnect50252343553116
firstReactRender28217072837
getState11318920842
initialActions51779422
loadScripts1317119216999613621521
setupStore187211301356
numNetworkReqs1367218769
WebpackPower User HomeuiStartup26692300333234230043332
load15621302198919017351989
domContentLoaded15611302198819017341988
domInteractive18938581170378581
firstPaint------
backgroundConnect963823963138239
firstReactRender453282125282
getState1489228848167288
initialActions722671126
loadScripts15281274195918817001959
setupStore39121354257135
numNetworkReqs12856315100246315
📊 Page Load Benchmark Results

Current Commit: ec93043 | Date: 11/6/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±98ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 741ms (±95ms) 🟢 | historical mean value: 722ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 82ms (±57ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 98ms 1.01s 1.80s 1.26s 1.80s
domContentLoaded 741ms 95ms 706ms 1.46s 932ms 1.46s
firstPaint 82ms 57ms 60ms 644ms 88ms 644ms
firstContentfulPaint 82ms 57ms 60ms 644ms 88ms 644ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@jpuri jpuri marked this pull request as ready for review November 6, 2025 13:04
@jpuri jpuri requested a review from a team as a code owner November 6, 2025 13:04
@metamaskbot
Copy link
Collaborator

Builds ready [056ea61]
UI Startup Metrics (1131 ± 99 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup113197516859911911277
load96383914809010111102
domContentLoaded95179014679510041096
domInteractive2113130181754
firstPaint63213815043749681052
backgroundConnect19017030924189270
firstReactRender25164772938
getState20777112639
initialActions71609826
loadScripts773618123791824915
setupStore1062331216
numNetworkReqs1367520673
BrowserifyPower User HomeuiStartup18371576246532323152465
load943802138820211481388
domContentLoaded933797138119711411381
domInteractive31141062845106
firstPaint70513813914078381391
backgroundConnect18716922814197228
firstReactRender25233122731
getState16814621619179216
initialActions63194619
loadScripts75663211911899521191
setupStore1082031120
numNetworkReqs1207325475245254
WebpackStandard HomeuiStartup8417151194888431063
load61556593778605823
domContentLoaded60855891574601805
domInteractive171291111544
firstPaint19960946202196738
backgroundConnect251271142763
firstReactRender29186883538
getState1173031316
initialActions40223512
loadScripts60455390572598795
setupStore1164041316
numNetworkReqs1367519871
WebpackPower User HomeuiStartup12591128172117613871721
load63356285590704855
domContentLoaded62054583488688834
domInteractive251279223679
firstPaint37573837270589837
backgroundConnect45112355351235
firstReactRender26253012630
getState14610816518159165
initialActions31113711
loadScripts61554282484676824
setupStore963161031
numNetworkReqs1077022152169221
FirefoxBrowserifyStandard HomeuiStartup15211289203812315701750
load1291111914757913571426
domContentLoaded1291111914757913561426
domInteractive1203633150134221
firstPaint------
backgroundConnect47261782451102
firstReactRender26226352730
getState847110717
initialActions8118521444
loadScripts1262110214537613281382
setupStore14787111332
numNetworkReqs1266416760
BrowserifyPower User HomeuiStartup23632100313928725733139
load13211107172717413621727
domContentLoaded13211107172717413621727
domInteractive16783425103210425
firstPaint------
backgroundConnect962432585146325
firstReactRender37295084750
getState1163717735158177
initialActions913191731
loadScripts12891086164116313221641
setupStore3872165250216
numNetworkReqs1357031482203314
WebpackStandard HomeuiStartup15781361227016316031939
load13371191163910713701594
domContentLoaded13371191163910713701593
domInteractive943025033102155
firstPaint------
backgroundConnect49241432558114
firstReactRender28239482938
getState10417819838
initialActions51447425
loadScripts1306116915999413511517
setupStore197240331274
numNetworkReqs1367117764
WebpackPower User HomeuiStartup26472266353339829313533
load15571287214225018042142
domContentLoaded15571286214225018032142
domInteractive18973527168414527
firstPaint------
backgroundConnect10541490110124490
firstReactRender46331031651103
getState1348619833172198
initialActions712571225
loadScripts15191265205423617762054
setupStore4061624891162
numNetworkReqs1336831887214318
📊 Page Load Benchmark Results

Current Commit: 056ea61 | Date: 11/6/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±40ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 719ms (±38ms) 🟢 | historical mean value: 720ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±15ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 40ms 1.01s 1.32s 1.05s 1.32s
domContentLoaded 719ms 38ms 694ms 993ms 734ms 993ms
firstPaint 77ms 15ms 60ms 212ms 92ms 212ms
firstContentfulPaint 77ms 15ms 60ms 212ms 92ms 212ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@metamaskbot
Copy link
Collaborator

Builds ready [cacbbec]
UI Startup Metrics (1230 ± 105 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12301070183310512671442
load105492115959210871238
domContentLoaded104791915859110811227
domInteractive221486161870
firstPaint65882127541710531184
backgroundConnect2332202738236247
firstReactRender26184673043
getState23897132742
initialActions60255818
loadScripts820700134690856992
setupStore1162841121
numNetworkReqs1367419672
BrowserifyPower User HomeuiStartup18361629301534419423015
load957810168324011891683
domContentLoaded948804165923711811659
domInteractive301480244380
firstPaint73219816883778401688
backgroundConnect19217426020200260
firstReactRender26223942639
getState16914420417187204
initialActions63204820
loadScripts76463414162219871416
setupStore1283571235
numNetworkReqs1177025663151256
WebpackStandard HomeuiStartup8166931179888261059
load59454292068592750
domContentLoaded58753890365583736
domInteractive15115181436
firstPaint22762906209213730
backgroundConnect251274142757
firstReactRender28176283336
getState1062931217
initialActions3010248
loadScripts58453589363581726
setupStore1153041220
numNetworkReqs1367519871
WebpackPower User HomeuiStartup12911145185423314561854
load636569905109666905
domContentLoaded61955785798646857
domInteractive251269214569
firstPaint30085860272567860
backgroundConnect621619964139199
firstReactRender26242812628
getState1417316626156166
initialActions414811348
loadScripts61555584695636846
setupStore1961212725121
numNetworkReqs1117022754166227
FirefoxBrowserifyStandard HomeuiStartup14361286199212214901669
load1223111215338312801372
domContentLoaded1222111115338312801372
domInteractive1143538351119210
firstPaint------
backgroundConnect43241532447120
firstReactRender25215852533
getState9418419617
initialActions41597411
loadScripts1197109314007812551336
setupStore136201201230
numNetworkReqs1266114755
BrowserifyPower User HomeuiStartup25472162349336026323493
load14231199193519715091935
domContentLoaded14231198193519715081935
domInteractive226100563166406563
firstPaint------
backgroundConnect13738531137261531
firstReactRender41325784957
getState1429520233170202
initialActions612271222
loadScripts13841168191019514691910
setupStore3861624580162
numNetworkReqs1336923363204233
WebpackStandard HomeuiStartup15421340205213515631842
load1322118516178413531531
domContentLoaded1321118516178413521531
domInteractive973224732114160
firstPaint------
backgroundConnect46241842551107
firstReactRender312173143170
getState11318921741
initialActions51326323
loadScripts1293117015897713281460
setupStore16695171468
numNetworkReqs1367117765
WebpackPower User HomeuiStartup26312314325925327633259
load15701364191716717251917
domContentLoaded15691364191616617251916
domInteractive18837533153340533
firstPaint------
backgroundConnect1263430993191309
firstReactRender42315695256
getState1498723144199231
initialActions2411384510138
loadScripts15261266187617216981876
setupStore24101312922131
numNetworkReqs1326630284230302
📊 Page Load Benchmark Results

Current Commit: cacbbec | Date: 11/6/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±37ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±36ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±12ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 37ms 1.02s 1.32s 1.08s 1.32s
domContentLoaded 724ms 36ms 706ms 1.00s 751ms 1.00s
firstPaint 78ms 12ms 60ms 180ms 88ms 180ms
firstContentfulPaint 78ms 12ms 60ms 180ms 88ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Base automatically changed from trade_swap to main November 6, 2025 21:27
@metamaskbot
Copy link
Collaborator

Builds ready [a049e99]
UI Startup Metrics (1187 ± 95 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup118799214319512541343
load102186412168710811166
domContentLoaded101485911858610731156
domInteractive201489131753
firstPaint63071122340710321146
backgroundConnect1971802218202210
firstReactRender26174672944
getState2075192636
initialActions001000
loadScripts82567798584881967
setupStore1172631118
numNetworkReqs1367720674
BrowserifyPower User HomeuiStartup18181621235825720432358
load977829168823212031688
domContentLoaded968822165422611901654
domInteractive291573225673
firstPaint81120616683758631668
backgroundConnect20218424716207247
firstReactRender29214872948
getState16714720618183206
initialActions001011
loadScripts77764014412179771441
setupStore1071311013
numNetworkReqs1207125362172253
WebpackStandard HomeuiStartup824699145696828967
load604556115782601747
domContentLoaded597551112879595734
domInteractive161188111441
firstPaint205601139202201707
backgroundConnect241070132657
firstReactRender3018109113439
getState1162931317
initialActions001001
loadScripts594549111777593724
setupStore1162641320
numNetworkReqs1367619870
WebpackPower User HomeuiStartup11981086150514313341505
load619532967134715967
domContentLoaded603521918124696918
domInteractive211350123650
firstPaint32174927272535927
backgroundConnect561020765127207
firstReactRender27243422734
getState1256114725141147
initialActions001011
loadScripts599519911121688911
setupStore1362672426
numNetworkReqs1086816738158167
FirefoxBrowserifyStandard HomeuiStartup14651267195613015251694
load1245110115459213101399
domContentLoaded1244110115459213101397
domInteractive1143542359115230
firstPaint------
backgroundConnect4325144185077
firstReactRender26216362632
getState74435716
initialActions001001
loadScripts1219108215278912831364
setupStore157228221230
numNetworkReqs1266315757
BrowserifyPower User HomeuiStartup23992106296522425292965
load13901165167216516071672
domContentLoaded13891165167216516061672
domInteractive22765610172392610
firstPaint------
backgroundConnect1223127789235277
firstReactRender442978144778
getState1037015519118155
initialActions001011
loadScripts13481141159716515841597
setupStore3051564248156
numNetworkReqs1337220658200206
WebpackStandard HomeuiStartup15581376193813615711885
load13331202172310013541561
domContentLoaded13321201172210013541561
domInteractive933242044105143
firstPaint------
backgroundConnect4221125184683
firstReactRender27216262839
getState8314214716
initialActions001001
loadScripts1306118417029413251525
setupStore15795161364
numNetworkReqs1367018766
WebpackPower User HomeuiStartup24902170285525327922855
load15281312181316617211813
domContentLoaded15281312181316517201813
domInteractive15341578143284578
firstPaint------
backgroundConnect94334199381419
firstReactRender443073105073
getState1229318928133189
initialActions107217
loadScripts14981280175416216941754
setupStore25596293996
numNetworkReqs1276023664206236
📊 Page Load Benchmark Results

Current Commit: a049e99 | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±42ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 711ms (±39ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 42ms 1000ms 1.32s 1.03s 1.32s
domContentLoaded 711ms 39ms 690ms 983ms 722ms 983ms
firstPaint 75ms 11ms 56ms 164ms 84ms 164ms
firstContentfulPaint 75ms 11ms 56ms 164ms 84ms 164ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 3.78 KiB (0.05%)
  • common: 24 Bytes (0%)

@jpuri jpuri enabled auto-merge November 7, 2025 06:48
@metamaskbot
Copy link
Collaborator

Builds ready [12c0d94]
UI Startup Metrics (1242 ± 76 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1242110014397612901370
load106794612307211201186
domContentLoaded105993612167111101179
domInteractive211472112054
firstPaint67679123242010691178
backgroundConnect23422026610238257
firstReactRender25187982543
getState1974582336
initialActions001001
loadScripts83371199572881958
setupStore114102101014
numNetworkReqs1367419672
BrowserifyPower User HomeuiStartup19941756300333020783003
load1066911167923113661679
domContentLoaded1056901165422613401654
domInteractive291670184570
firstPaint64517316894979371689
backgroundConnect23922227714246277
firstReactRender27253532935
getState18615824124203241
initialActions001011
loadScripts829667141222411201412
setupStore1292651226
numNetworkReqs1207525460159254
WebpackStandard HomeuiStartup82569313481088311083
load604554102191592855
domContentLoaded59754999387585842
domInteractive15115281439
firstPaint22760895215206787
backgroundConnect241187152362
firstReactRender29176493336
getState1061731216
initialActions001001
loadScripts59454798085583832
setupStore1152641318
numNetworkReqs1367519871
WebpackPower User HomeuiStartup13071172186817713541868
load660581987115684987
domContentLoaded644568936103663936
domInteractive231358163858
firstPaint29862943289629943
backgroundConnect50111806072180
firstReactRender28233422934
getState1449517223157172
initialActions001011
loadScripts640566926100652926
setupStore16647122647
numNetworkReqs1076922345153223
FirefoxBrowserifyStandard HomeuiStartup14581282199113415231746
load12401114166610313101457
domContentLoaded12401114166510313101457
domInteractive1203541760122265
firstPaint------
backgroundConnect3925135164470
firstReactRender26215452639
getState74617615
initialActions002001
loadScripts12171092164410012831391
setupStore146200191229
numNetworkReqs1266415758
BrowserifyPower User HomeuiStartup24352118324731326903247
load13651148184821415181848
domContentLoaded13641147184821415181848
domInteractive20890587180419587
firstPaint------
backgroundConnect1113031089203310
firstReactRender503389145689
getState1246520038162200
initialActions106216
loadScripts13261129181621414871816
setupStore4061864973186
numNetworkReqs1346922662211226
WebpackStandard HomeuiStartup16001401216014216221962
load13651218166910314021607
domContentLoaded13651217166810414011607
domInteractive973131840105150
firstPaint------
backgroundConnect4625139225197
firstReactRender312371103167
getState84477618
initialActions001001
loadScripts1335120016349713721545
setupStore187218261480
numNetworkReqs1367017764
WebpackPower User HomeuiStartup25502179313929127573139
load15211245191519716751915
domContentLoaded15211245191519716751915
domInteractive14736382120324382
firstPaint------
backgroundConnect953324762150247
firstReactRender473096155096
getState1237323843145238
initialActions102112
loadScripts14851227187118716421871
setupStore3351263776126
numNetworkReqs1327024765210247
📊 Page Load Benchmark Results

Current Commit: 12c0d94 | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.07s (±133ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 749ms (±159ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 92ms (±142ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.07s 133ms 1.03s 2.36s 1.08s 2.36s
domContentLoaded 749ms 159ms 715ms 2.31s 758ms 2.31s
firstPaint 92ms 142ms 60ms 1.51s 88ms 1.51s
firstContentfulPaint 92ms 142ms 60ms 1.51s 88ms 1.51s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 3.61 KiB (0.05%)
  • common: 24 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [25b8695]
UI Startup Metrics (1251 ± 88 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1251109215288813061424
load107294912947711301227
domContentLoaded106694412867611241210
domInteractive2215104142054
firstPaint60786130142310651177
backgroundConnect2332202587237250
firstReactRender28184763139
getState23875112744
initialActions003101
loadScripts839717105975898972
setupStore1263551321
numNetworkReqs1367620672
BrowserifyPower User HomeuiStartup19591771240723522252407
load1060917146219012801462
domContentLoaded1051910144018612731440
domInteractive35151022868102
firstPaint72020014574179701457
backgroundConnect2382272599244259
firstReactRender27253222832
getState18015322119192221
initialActions001001
loadScripts822683119818410431198
setupStore13102851328
numNetworkReqs1197425667154256
WebpackStandard HomeuiStartup8297021249908321064
load60856198977605806
domContentLoaded60055596874593793
domInteractive16125381439
firstPaint21958901209202770
backgroundConnect241088142455
firstReactRender29185273439
getState1072731214
initialActions001001
loadScripts59755395772591783
setupStore1153551320
numNetworkReqs1367619870
WebpackPower User HomeuiStartup11841081161813712501618
load613533957123690957
domContentLoaded592523921106659921
domInteractive261389234989
firstPaint39565927272663927
backgroundConnect56101966794196
firstReactRender27252912829
getState1288015622137156
initialActions001001
loadScripts588521913104651913
setupStore1152671126
numNetworkReqs1096816938143169
FirefoxBrowserifyStandard HomeuiStartup14601312196911915171694
load1236111314688112891383
domContentLoaded1235111314688112891383
domInteractive1153546757117231
firstPaint------
backgroundConnect4125157174872
firstReactRender25214442638
getState847910719
initialActions002001
loadScripts1211109514107812641355
setupStore147192201230
numNetworkReqs1267115856
BrowserifyPower User HomeuiStartup23852055292428327392924
load13131114177020615231770
domContentLoaded13121113176920615231769
domInteractive22256749198417749
firstPaint------
backgroundConnect14029455129247455
firstReactRender503688145188
getState1326927951161279
initialActions101011
loadScripts12741090174420214921744
setupStore3051242935124
numNetworkReqs1306720859200208
WebpackStandard HomeuiStartup15201338230515015241825
load1297118116779313121521
domContentLoaded1297118116779313121521
domInteractive933134344106141
firstPaint------
backgroundConnect3921124184378
firstReactRender27207182740
getState11317322741
initialActions1037401
loadScripts1272116515948712891489
setupStore13768111233
numNetworkReqs1367118765
WebpackPower User HomeuiStartup25472198364138227103641
load15781245227728017622277
domContentLoaded15771244227628017612276
domInteractive20265617194389617
firstPaint------
backgroundConnect962534080145340
firstReactRender393177103977
getState1117218427111184
initialActions101011
loadScripts15431227222626917272226
setupStore3061453927145
numNetworkReqs1326231777202317
📊 Page Load Benchmark Results

Current Commit: 25b8695 | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±37ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 716ms (±35ms) 🟢 | historical mean value: 718ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±12ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.01s 1.30s 1.04s 1.30s
domContentLoaded 716ms 35ms 699ms 969ms 728ms 969ms
firstPaint 77ms 12ms 60ms 184ms 88ms 184ms
firstContentfulPaint 77ms 12ms 60ms 184ms 88ms 184ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 3.61 KiB (0.05%)
  • common: 55 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [aded29b]
UI Startup Metrics (1226 ± 94 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1226107716369413011382
load105589014238811201181
domContentLoaded104988314018711131175
domInteractive201368121858
firstPaint64283141042510651173
backgroundConnect2302192739234246
firstReactRender25179782536
getState19757102141
initialActions001001
loadScripts825656115886890947
setupStore1062931115
numNetworkReqs1367620672
BrowserifyPower User HomeuiStartup18961750253321819542533
load1035902153919412261539
domContentLoaded1026895151719212211517
domInteractive291573214473
firstPaint55116015343999121534
backgroundConnect23522125710239257
firstReactRender26252912729
getState17215419614188196
initialActions001011
loadScripts802666128719210051287
setupStore1192541125
numNetworkReqs1217425862169258
WebpackStandard HomeuiStartup8897471321908981074
load645588105285636851
domContentLoaded636582102381630830
domInteractive181368111541
firstPaint198621027183209607
backgroundConnect281377142963
firstReactRender32206693841
getState1272641417
initialActions001001
loadScripts633580101278627820
setupStore1362941520
numNetworkReqs1367419871
WebpackPower User HomeuiStartup12521135161413413341614
load64056810201166681020
domContentLoaded624557982107650982
domInteractive201347123247
firstPaint32379985274576985
backgroundConnect59101715395171
firstReactRender26242912629
getState14410017622152176
initialActions001001
loadScripts620555972104640972
setupStore96326932
numNetworkReqs1096921746165217
FirefoxBrowserifyStandard HomeuiStartup14621292195112115201739
load1241111815168612951396
domContentLoaded1241111815168612951396
domInteractive1113536049116213
firstPaint------
backgroundConnect4326134175177
firstReactRender25204942630
getState74808614
initialActions001001
loadScripts1216109914948312711369
setupStore157217221229
numNetworkReqs1266215760
BrowserifyPower User HomeuiStartup24082125327429725333274
load14041198181619116221816
domContentLoaded14031197181619116221816
domInteractive17382432123309432
firstPaint------
backgroundConnect1213643199151431
firstReactRender38286794267
getState1057915321109153
initialActions107217
loadScripts13651167166917515951669
setupStore26897294597
numNetworkReqs1326830771200307
WebpackStandard HomeuiStartup15421377217913515611859
load1323120516389313541549
domContentLoaded1323120516389313541549
domInteractive953228835106158
firstPaint------
backgroundConnect46242182750108
firstReactRender28217192840
getState74445714
initialActions001001
loadScripts1293118715248213241481
setupStore16677161268
numNetworkReqs1367218766
WebpackPower User HomeuiStartup26092192350839527803508
load15511206194119217741941
domContentLoaded15511206194019217741940
domInteractive17141526138294526
firstPaint------
backgroundConnect923327867129278
firstReactRender43315695356
getState1489124348196243
initialActions102112
loadScripts15111186186718617271867
setupStore3551954935195
numNetworkReqs1336630284232302
📊 Page Load Benchmark Results

Current Commit: aded29b | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±36ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 711ms (±35ms) 🟢 | historical mean value: 716ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±10ms) 🟢 | historical mean value: 76ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 36ms 1000ms 1.28s 1.04s 1.28s
domContentLoaded 711ms 35ms 693ms 972ms 734ms 972ms
firstPaint 74ms 10ms 60ms 164ms 80ms 164ms
firstContentfulPaint 74ms 10ms 60ms 164ms 80ms 164ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 3.61 KiB (0.05%)
  • common: 24 Bytes (0%)

asset: {
...tokenDetails[srcAsset.address as Hex],
chainId: toHex(srcAsset.chainId),
address: srcAsset.address as Hex,
Copy link

Choose a reason for hiding this comment

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

Bug: Case-Sensitive Token Detail Lookup Mismatch Failure

The tokenDetails lookup uses srcAsset.address directly without lowercasing, but fetchAllTokenDetails returns keys normalized to lowercase. This causes the spread operation to fail silently when the address has mixed case, resulting in missing token details. The same code correctly lowercases addresses when accessing fiatRates on line 49.

Fix in Cursor Fix in Web

asset: {
...tokenDetails[destAsset.address as Hex],
chainId: toHex(destAsset.chainId),
address: destAsset.address as Hex,
Copy link

Choose a reason for hiding this comment

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

Bug: Case-Sensitive Token Detail Lookup Mismatch

The tokenDetails lookup uses destAsset.address directly without lowercasing, but fetchAllTokenDetails returns keys normalized to lowercase. This causes the spread operation to fail silently when the address has mixed case, resulting in missing token details. The same code correctly lowercases addresses when accessing fiatRates on line 64.

Fix in Cursor Fix in Web

@metamaskbot
Copy link
Collaborator

Builds ready [eaae3e6]
UI Startup Metrics (1246 ± 95 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1246108615069513171409
load107693913548911431228
domContentLoaded106993613498911371224
domInteractive231589142165
firstPaint58481127542810701224
backgroundConnect2342172769239252
firstReactRender25194252739
getState22858102645
initialActions001001
loadScripts841696112488906989
setupStore1163031217
numNetworkReqs1367620673
BrowserifyPower User HomeuiStartup17361449279630918692796
load951814165222611761652
domContentLoaded943807164222511651642
domInteractive281487215087
firstPaint69216112023569031202
backgroundConnect19117521711196217
firstReactRender25242922629
getState16914023824184238
initialActions001001
loadScripts76362714462209791446
setupStore1081821118
numNetworkReqs1126624952157249
WebpackStandard HomeuiStartup83569413121078421141
load611551107291603906
domContentLoaded604541106089597892
domInteractive161280101439
firstPaint21056969204198683
backgroundConnect251279152767
firstReactRender3017117123437
getState1152841219
initialActions001001
loadScripts601539104986595882
setupStore1253451322
numNetworkReqs1367520672
WebpackPower User HomeuiStartup1242958186022813101860
load64457110091167251009
domContentLoaded626561954103684954
domInteractive221256154056
firstPaint35858959284596959
backgroundConnect651027279160272
firstReactRender26243122731
getState1459618324158183
initialActions001001
loadScripts622559943100673943
setupStore1262572125
numNetworkReqs1036616938135169
FirefoxBrowserifyStandard HomeuiStartup14381273202512614691674
load1222109615338312591395
domContentLoaded1221109515328312591394
domInteractive1133333756118250
firstPaint------
backgroundConnect4525232275095
firstReactRender25224442538
getState9421221716
initialActions001001
loadScripts1194107613837412331345
setupStore13796111329
numNetworkReqs1267515756
BrowserifyPower User HomeuiStartup25592259376935627353769
load14201227182016614611820
domContentLoaded14201226181916714611819
domInteractive20796530150305530
firstPaint------
backgroundConnect13032478122243478
firstReactRender453169105269
getState1308128248131282
initialActions101111
loadScripts13891203178616314321786
setupStore2761603738160
numNetworkReqs1287129969202299
WebpackStandard HomeuiStartup16031404225715616351905
load1363120216709814191599
domContentLoaded1363120116709814181598
domInteractive982822230110159
firstPaint------
backgroundConnect49201432653123
firstReactRender302278113164
getState10416218745
initialActions001001
loadScripts1330118315638613951495
setupStore196240321474
numNetworkReqs1367017862
WebpackPower User HomeuiStartup25182150326932327583269
load15621288192622518341926
domContentLoaded15621288192622518331926
domInteractive18237535164366535
firstPaint------
backgroundConnect81312485799248
firstReactRender403078114378
getState1127617227125172
initialActions101111
loadScripts15261267187421417811874
setupStore3951374568137
numNetworkReqs1336327670221276
📊 Page Load Benchmark Results

Current Commit: eaae3e6 | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.07s (±56ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 753ms (±53ms) 🟢 | historical mean value: 719ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±11ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.07s 56ms 1.04s 1.40s 1.13s 1.40s
domContentLoaded 753ms 53ms 726ms 1.05s 802ms 1.05s
firstPaint 79ms 11ms 64ms 168ms 88ms 168ms
firstContentfulPaint 79ms 11ms 64ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 277 Bytes (0.01%)
  • ui: 3.65 KiB (0.05%)
  • common: 191 Bytes (0%)

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

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed size-M team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants