Skip to content

Conversation

@khanti42
Copy link
Contributor

@khanti42 khanti42 commented Dec 1, 2025

Description

Adds QuickNode fallback RPC for Monad

Open in GitHub Codespaces

Changelog

CHANGELOG entry: added QuickNode fallback RPC for Monad.

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

BEFORE MIGRATION
Screenshot 2025-12-12 at 16 19 23

After

AFTER MIGRATION
Screenshot 2025-12-12 at 16 25 40

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

Introduces failover support for Monad RPC endpoints backed by Infura.

  • Adds migration 186 to append QUICKNODE_MONAD_URL as failoverUrls for Monad Infura (or Infura-pattern) endpoints without existing failovers
  • Wires QUICKNODE_MONAD_URL through bundle.sh, run-build.yml, publish-release.yml, and builds.yml
  • Updates shared/constants/network.ts to include QuickNode failover for monad-mainnet and in featured RPCs
  • Registers migration in app/scripts/migrations/index.js, adds comprehensive unit tests, and bumps state snapshot version to 186

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

@github-actions
Copy link
Contributor

github-actions bot commented Dec 1, 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.

@metamaskbot
Copy link
Collaborator

Builds ready [8fa30b6]
UI Startup Metrics (1227 ± 101 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12271019146910112971405
load102987212709310691225
domContentLoaded102387012629210651215
domInteractive251493192282
firstPaint4619212463869541168
backgroundConnect21719625512223246
firstReactRender321985113853
getState371682134560
initialActions104112
loadScripts8116561029908521013
setupStore1273051323
numNetworkReqs1257721576
BrowserifyPower User HomeuiStartup20761829344225822362510
load1034910171212710561310
domContentLoaded1020898169812710301301
domInteractive38181733036120
firstPaint5969817094229901321
backgroundConnect257206784107235513
firstReactRender6240138176599
getState19412967672214245
initialActions104113
loadScripts80969814701248211095
setupStore21104992444
numNetworkReqs103682895297257
WebpackStandard HomeuiStartup8377091070808671025
load65156589277676842
domContentLoaded64656288177669837
domInteractive2815168252398
firstPaint25188870184238677
backgroundConnect1166881127
firstReactRender28214563240
getState261481113245
initialActions107111
loadScripts64356087075666828
setupStore1052741218
numNetworkReqs1257820573
WebpackPower User HomeuiStartup15721250219525517162092
load674576100398670947
domContentLoaded66456999899659942
domInteractive37171573234125
firstPaint28690940185321667
backgroundConnect56769013918527
firstReactRender59479386473
getState1718223522178213
initialActions102012
loadScripts66156798997657933
setupStore20963112445
numNetworkReqs1686943285217419
FirefoxBrowserifyStandard HomeuiStartup13771106194116014861677
load1139955145710611951387
domContentLoaded1138955145610611951387
domInteractive71311914094162
firstPaint------
backgroundConnect50232383261105
firstReactRender24195562537
getState127108111123
initialActions103122
loadScripts110694014309911581296
setupStore137102131133
numNetworkReqs1256517763
BrowserifyPower User HomeuiStartup25852072531852926374105
load1197935276134611682415
domContentLoaded1196935276034611682415
domInteractive123341017139105468
firstPaint------
backgroundConnect116221088135111448
firstReactRender5636194205993
getState25355922203248787
initialActions2130322
loadScripts1155922257629811262021
setupStore1555709186236617
numNetworkReqs102623306678241
WebpackStandard HomeuiStartup15291293211817016191857
load12561071153710913431451
domContentLoaded12551071153610913421451
domInteractive66272054187159
firstPaint------
backgroundConnect52222293858149
firstReactRender27198282837
getState167185251445
initialActions102122
loadScripts12271047151310313081414
setupStore196205331392
numNetworkReqs1156815756
WebpackPower User HomeuiStartup30042108508178730064818
load14711152299140916052762
domContentLoaded14711151299140916042762
domInteractive102315049598382
firstPaint------
backgroundConnect1923414232771641083
firstReactRender67393453665131
getState319571258270435880
initialActions218123
loadScripts13761115274029213732028
setupStore1595701188161641
numNetworkReqs102582476081244
📊 Page Load Benchmark Results

Current Commit: 8fa30b6 | Date: 12/1/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±37ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 718ms (±35ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.01s 1.32s 1.04s 1.32s
domContentLoaded 718ms 35ms 700ms 1000ms 730ms 1000ms
firstPaint 76ms 11ms 60ms 168ms 84ms 168ms
firstContentfulPaint 76ms 11ms 60ms 168ms 84ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.3 KiB (0.04%)
  • ui: 3 Bytes (0%)
  • common: 76 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [af62975]
UI Startup Metrics (1342 ± 145 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13421081178614514391580
load1126891155013012181358
domContentLoaded1118887153812912111346
domInteractive2917105222494
firstPaint67185155545711161341
backgroundConnect21919426714226240
firstReactRender332074113955
getState4016159234768
initialActions107113
loadScripts90868413191279951122
setupStore1585271631
numNetworkReqs1257821575
BrowserifyPower User HomeuiStartup21001726293225521762628
load1053901156613810671446
domContentLoaded1038891154713710481431
domInteractive36171342636118
firstPaint5259815654069831408
backgroundConnect25820757586240504
firstReactRender6042223216492
getState18913769256197242
initialActions105112
loadScripts82168713171368221227
setupStore211073102439
numNetworkReqs107642855397272
WebpackStandard HomeuiStartup77966298170811924
load60654179464624759
domContentLoaded60153378964620754
domInteractive2414106211983
firstPaint23479741163206597
backgroundConnect962431017
firstReactRender27195573340
getState241262103239
initialActions104111
loadScripts59853178062618746
setupStore1062541118
numNetworkReqs1257721575
WebpackPower User HomeuiStartup16511293281828018672198
load6865861272112679962
domContentLoaded6765771266113670956
domInteractive39181673435149
firstPaint26598994169257668
backgroundConnect49860012618493
firstReactRender634793106882
getState18012825219188216
initialActions106112
loadScripts6735751256111668948
setupStore22653112548
numNetworkReqs1766944088220414
FirefoxBrowserifyStandard HomeuiStartup12841096163514313691587
load106694113769511341231
domContentLoaded106594113769411341230
domInteractive57311623283130
firstPaint------
backgroundConnect48211803556120
firstReactRender22184552333
getState137193211032
initialActions102112
loadScripts103992212958110981186
setupStore12570111037
numNetworkReqs1157016662
BrowserifyPower User HomeuiStartup26421903461955227124145
load1223945258728912011717
domContentLoaded1222945258728912001717
domInteractive12234676119105431
firstPaint------
backgroundConnect116261145134114289
firstReactRender62381872164103
getState283661075209361743
initialActions3038627
loadScripts1172928235022711671682
setupStore124121029176120579
numNetworkReqs103613226282239
WebpackStandard HomeuiStartup14981276194613915951753
load1239109015439613001439
domContentLoaded1239109015439713001439
domInteractive60272264080134
firstPaint------
backgroundConnect46211422652113
firstReactRender26196362835
getState126118121121
initialActions205134
loadScripts1211106214719112761379
setupStore146116151238
numNetworkReqs1257217764
WebpackPower User HomeuiStartup29822191588279829024846
load14841168304143514182846
domContentLoaded14841168304043514182845
domInteractive1083058511095431
firstPaint------
backgroundConnect1703213772611411069
firstReactRender66382112967145
getState283571142238388807
initialActions207123
loadScripts14041148288633213802070
setupStore1286718170148621
numNetworkReqs102603226181240
📊 Page Load Benchmark Results

Current Commit: af62975 | Date: 12/1/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±54ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 739ms (±52ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±13ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 54ms 1.02s 1.37s 1.09s 1.37s
domContentLoaded 739ms 52ms 711ms 1.05s 765ms 1.05s
firstPaint 79ms 13ms 64ms 196ms 92ms 196ms
firstContentfulPaint 79ms 13ms 64ms 196ms 92ms 196ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 27.58 KiB (0.53%)
  • ui: 541 Bytes (0.01%)
  • common: -211.78 KiB (-2.31%)

@metamaskbot
Copy link
Collaborator

Builds ready [10e38cf]
UI Startup Metrics (1297 ± 117 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12971084156811713771519
load1073873136010611431256
domContentLoaded1067864135410511361246
domInteractive261596182379
firstPaint52696127342310491228
backgroundConnect22420425713231250
firstReactRender311988103449
getState4216163254696
initialActions108112
loadScripts84866311411029121021
setupStore1374351425
numNetworkReqs1257721574
BrowserifyPower User HomeuiStartup20371778318326321032622
load1039914180915110391392
domContentLoaded1025900178915110271380
domInteractive39172193536134
firstPaint52910018054069751213
backgroundConnect255201761107227528
firstReactRender5540105105973
getState18413629331197247
initialActions103112
loadScripts81669615781508141180
setupStore2084682442
numNetworkReqs103652855796272
WebpackStandard HomeuiStartup8156831086888591015
load63155693582657842
domContentLoaded62655392981653835
domInteractive2714136232294
firstPaint25677956193232736
backgroundConnect1164261328
firstReactRender2919102103439
getState2512105123144
initialActions102112
loadScripts62355192580651828
setupStore1074451217
numNetworkReqs1257721576
WebpackPower User HomeuiStartup16651269253526018642153
load697601115898699959
domContentLoaded6875941148100695954
domInteractive37171863333124
firstPaint2901031177197302675
backgroundConnect99873817895568
firstReactRender63469296981
getState17612477764183212
initialActions103112
loadScripts684591113898693944
setupStore21654112548
numNetworkReqs102632855898283
FirefoxBrowserifyStandard HomeuiStartup13271098170814814041663
load1105949142311211471358
domContentLoaded1105948142311211471358
domInteractive64312013585135
firstPaint------
backgroundConnect48231603054126
firstReactRender22185252333
getState12682111023
initialActions103122
loadScripts1077928140610411221310
setupStore1155291037
numNetworkReqs1156716662
BrowserifyPower User HomeuiStartup26461841499361827184263
load1195912289133811431944
domContentLoaded1194912289033811431944
domInteractive1123448591118388
firstPaint------
backgroundConnect112241124149112247
firstReactRender5838135186196
getState28677918226355798
initialActions2032323
loadScripts1161897270331311121845
setupStore13761003181171635
numNetworkReqs100593306282238
WebpackStandard HomeuiStartup16051237207217217251916
load13101078160011213701547
domContentLoaded13091078159911213701545
domInteractive71281713687139
firstPaint------
backgroundConnect60201713776144
firstReactRender291992103037
getState187198281448
initialActions205134
loadScripts12761063156210413451479
setupStore166108191475
numNetworkReqs1256717764
WebpackPower User HomeuiStartup30182187546377832254774
load15061114316147615452854
domContentLoaded15061114316047615452853
domInteractive117311047145102459
firstPaint------
backgroundConnect1872913152611451010
firstReactRender66402183165147
getState29768955235402812
initialActions213123
loadScripts14191097300337913882656
setupStore1136711144120472
numNetworkReqs103633416479243
📊 Page Load Benchmark Results

Current Commit: 10e38cf | Date: 12/1/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 981ms (±39ms) 🟢 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 680ms (±36ms) 🟢 | historical mean value: 725ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±11ms) 🟢 | historical mean value: 80ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 981ms 39ms 945ms 1.27s 1.01s 1.27s
domContentLoaded 680ms 36ms 656ms 947ms 710ms 947ms
firstPaint 74ms 11ms 60ms 172ms 80ms 172ms
firstContentfulPaint 74ms 11ms 60ms 172ms 80ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 27.58 KiB (0.53%)
  • ui: -1.76 KiB (-0.02%)
  • common: -211.78 KiB (-2.31%)

@khanti42 khanti42 marked this pull request as ready for review December 1, 2025 19:55
@github-project-automation github-project-automation bot moved this to Needs dev review in PR review queue Dec 2, 2025
@khanti42 khanti42 requested a review from seaona December 3, 2025 13:02
Battambang
Battambang previously approved these changes Dec 3, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [de1029a]
UI Startup Metrics (1311 ± 115 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13111039165411513901487
load107688214349911171229
domContentLoaded106987613949811111221
domInteractive261688172378
firstPaint53181125441210361210
backgroundConnect22420332916231249
firstReactRender463195145173
getState3918128194482
initialActions1012113
loadScripts8536761179938921006
setupStore1264061325
numNetworkReqs1367618669
BrowserifyPower User HomeuiStartup18741586223414619532158
load1059865133212011561260
domContentLoaded1049859131411911421249
domInteractive2917121222798
firstPaint61990132243910901236
backgroundConnect24719667499227566
firstReactRender46377764855
getState19514071678205253
initialActions103112
loadScripts84066811101179261036
setupStore1473651432
numNetworkReqs70581532067130
WebpackStandard HomeuiStartup88371712431009391083
load70760092686773882
domContentLoaded70158891985766876
domInteractive2817100202493
firstPaint31091925239307846
backgroundConnect13669101432
firstReactRender65363185262203
getState301472133955
initialActions104112
loadScripts69758691584760869
setupStore1274561332
numNetworkReqs1367719669
WebpackPower User HomeuiStartup14331092218019715421754
load758596978102848923
domContentLoaded750587973101838915
domInteractive33181312628114
firstPaint28993865208295820
backgroundConnect71766115329571
firstReactRender50407255161
getState1857832537193268
initialActions102111
loadScripts747585962100835913
setupStore1574391437
numNetworkReqs70561402067129
FirefoxBrowserifyStandard HomeuiStartup13151055189816514251667
load1064899149410611031259
domContentLoaded1063899149410611031259
domInteractive66313324184131
firstPaint------
backgroundConnect51212144362171
firstReactRender38307383953
getState1264771129
initialActions103112
loadScripts103588514539610781204
setupStore1255691133
numNetworkReqs1568722878
BrowserifyPower User HomeuiStartup25451581358350328973369
load1533963265348320102330
domContentLoaded1533962265348320102330
domInteractive13031100722579927
firstPaint------
backgroundConnect191251178249194942
firstReactRender523797125782
getState1346440453158224
initialActions3136527
loadScripts1439946245044718562192
setupStore43594910345187
numNetworkReqs75581292283125
WebpackStandard HomeuiStartup15941347199416417151931
load12991132159910313651509
domContentLoaded12991132159910313651508
domInteractive803120037111133
firstPaint------
backgroundConnect60202014079144
firstReactRender43339394759
getState206191311486
initialActions103122
loadScripts1269111215829713261449
setupStore196138251577
numNetworkReqs1568621879
WebpackPower User HomeuiStartup27481877376148030933483
load18701130307550123272594
domContentLoaded18691130307550123262593
domInteractive2463011143551881007
firstPaint------
backgroundConnect177281127240183963
firstReactRender5738194196084
getState14280971102155265
initialActions3057623
loadScripts17521114290847122212536
setupStore474105011638179
numNetworkReqs72451322268123
📊 Page Load Benchmark Results

Current Commit: de1029a | Date: 12/11/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±41ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 723ms (±39ms) 🟢 | historical mean value: 722ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±12ms) 🟢 | historical mean value: 80ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 41ms 1.01s 1.31s 1.07s 1.31s
domContentLoaded 723ms 39ms 700ms 987ms 746ms 987ms
firstPaint 78ms 12ms 60ms 188ms 88ms 188ms
firstContentfulPaint 78ms 12ms 60ms 188ms 88ms 188ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.31 KiB (0.05%)
  • ui: 2 Bytes (0%)
  • common: 76 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [784c258]
UI Startup Metrics (1276 ± 105 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12761011153310513511439
load103786412548110771183
domContentLoaded103086012498110721175
domInteractive2715102212389
firstPaint53498120439910381103
backgroundConnect21419128112217237
firstReactRender443387104768
getState43171492847119
initialActions105113
loadScripts823663103878858970
setupStore1374161426
numNetworkReqs1367619670
BrowserifyPower User HomeuiStartup18681470258519220082242
load1012829170514210981251
domContentLoaded1002824169714110901243
domInteractive2716109192481
firstPaint61715213013889741222
backgroundConnect242181759121217627
firstReactRender513996105276
getState18714733633204266
initialActions103112
loadScripts80964414461348941056
setupStore1483461430
numNetworkReqs78571632585146
WebpackStandard HomeuiStartup82868698883902960
load67058087477731825
domContentLoaded66457586577724817
domInteractive2716101202282
firstPaint23187873153229626
backgroundConnect1263771431
firstReactRender53331602962130
getState291575113752
initialActions105112
loadScripts66157386376722814
setupStore1173051318
numNetworkReqs1367820673
WebpackPower User HomeuiStartup14901181197919616571865
load7466051073106854937
domContentLoaded7396001067105844926
domInteractive33181783027123
firstPaint281101934204274721
backgroundConnect76866915845578
firstReactRender53438075566
getState19914869064208280
initialActions104111
loadScripts7365981059104841923
setupStore1684781539
numNetworkReqs77571662485142
FirefoxBrowserifyStandard HomeuiStartup12861057183516613571634
load1047892133610111001270
domContentLoaded1047892133610111001269
domInteractive62202233883130
firstPaint------
backgroundConnect48211833753148
firstReactRender38306673952
getState136102101224
initialActions103012
loadScripts102087612738910771202
setupStore185447471135
numNetworkReqs1568421778
BrowserifyPower User HomeuiStartup26041623356352930933296
load1603959262249120842321
domContentLoaded1602959262149220842321
domInteractive11231100718682408
firstPaint------
backgroundConnect210271297240228951
firstReactRender5338100105870
getState1365998594159214
initialActions2035323
loadScripts1504944252945719422269
setupStore555108512541257
numNetworkReqs78561512192115
WebpackStandard HomeuiStartup15431320208416016201832
load1272108815639913151492
domContentLoaded1272108815639913151491
domInteractive772823341105136
firstPaint------
backgroundConnect55181673661136
firstReactRender42339084455
getState157116161449
initialActions102122
loadScripts1246107415379412911440
setupStore186196261566
numNetworkReqs1568622881
WebpackPower User HomeuiStartup26141710357147129783188
load17941136253742621742341
domContentLoaded17941135253642621742336
domInteractive1623291826093902
firstPaint------
backgroundConnect14522931182171841
firstReactRender5539103115881
getState13668920120148228
initialActions3144427
loadScripts17221120238740620862318
setupStore4463597340254
numNetworkReqs73481472381122
📊 Page Load Benchmark Results

Current Commit: 784c258 | Date: 12/11/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±37ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 714ms (±35ms) 🟢 | historical mean value: 732ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±11ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 37ms 1.00s 1.31s 1.06s 1.31s
domContentLoaded 714ms 35ms 696ms 985ms 737ms 985ms
firstPaint 75ms 11ms 56ms 156ms 88ms 156ms
firstContentfulPaint 75ms 11ms 56ms 156ms 88ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.31 KiB (0.05%)
  • ui: 2 Bytes (0%)
  • common: 76 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [3d36559]
UI Startup Metrics (1288 ± 120 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12881024158212013701478
load1059861135610511341244
domContentLoaded1052856135010511271239
domInteractive2716123212290
firstPaint48080135941210111203
backgroundConnect21519427415224243
firstReactRender463291125268
getState3716119184469
initialActions106113
loadScripts8456651123999121024
setupStore1263451424
numNetworkReqs1367618669
BrowserifyPower User HomeuiStartup19121538255517319972219
load1081893152013011971264
domContentLoaded1071885150812911851254
domInteractive2917113212696
firstPaint56985151944411091260
backgroundConnect251197637101236603
firstReactRender47396444956
getState205145728104202381
initialActions102112
loadScripts86068313001269691039
setupStore1374151320
numNetworkReqs70581471768123
WebpackStandard HomeuiStartup815672103781879953
load65656883775726812
domContentLoaded65056183374717798
domInteractive261691192285
firstPaint21287663133206628
backgroundConnect13589131438
firstReactRender53332293160126
getState291453113850
initialActions103112
loadScripts64755983073711795
setupStore1163151221
numNetworkReqs1468120776
WebpackPower User HomeuiStartup15331097211121017231850
load7886081131123909993
domContentLoaded7796031119122901973
domInteractive33171412628122
firstPaint367931140276676938
backgroundConnect80768316250598
firstReactRender554310785867
getState224146875121228340
initialActions103112
loadScripts7756001117121898969
setupStore1684981537
numNetworkReqs73562193166137
FirefoxBrowserifyStandard HomeuiStartup13561099268622614461792
load1084913242816811341283
domContentLoaded1084913242816811321282
domInteractive59312404077138
firstPaint------
backgroundConnect51223144456146
firstReactRender39316983963
getState12688111122
initialActions103112
loadScripts1055893232315711101220
setupStore156101181162
numNetworkReqs1668722780
BrowserifyPower User HomeuiStartup26221601355751130503294
load1615959255550720962365
domContentLoaded1615959255450720962364
domInteractive15830100126795947
firstPaint------
backgroundConnect185231182216206919
firstReactRender5635137155986
getState1337740053156239
initialActions3054727
loadScripts1527943238447819932213
setupStore625104915140244
numNetworkReqs74471302176123
WebpackStandard HomeuiStartup15611280229519416641974
load12931111207113713651517
domContentLoaded12931111207113713651517
domInteractive73253354599132
firstPaint------
backgroundConnect56182223867136
firstReactRender42338774554
getState13785111230
initialActions103122
loadScripts12651087204113013341464
setupStore175261311256
numNetworkReqs1568421875
WebpackPower User HomeuiStartup26661737420748730193259
load18851125329544022202414
domContentLoaded18841125329444022192414
domInteractive217321132316195929
firstPaint------
backgroundConnect162281031211175853
firstReactRender5639110135993
getState1266428448160216
initialActions2029333
loadScripts17891109255641621552396
setupStore5663468554300
numNetworkReqs75551402567130
📊 Page Load Benchmark Results

Current Commit: 3d36559 | Date: 12/12/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±39ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 723ms (±37ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 82ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 39ms 1.01s 1.33s 1.06s 1.33s
domContentLoaded 723ms 37ms 703ms 994ms 740ms 994ms
firstPaint 77ms 11ms 60ms 176ms 88ms 176ms
firstContentfulPaint 77ms 11ms 60ms 176ms 88ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.31 KiB (0.05%)
  • ui: 396 Bytes (0%)
  • common: 52 Bytes (0%)

@maxime-oe maxime-oe requested a review from Battambang December 15, 2025 14:51
@maxime-oe maxime-oe added the needs-qa Label will automate into QA workspace label Dec 16, 2025
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [050aba1]
UI Startup Metrics (1251 ± 122 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1251991166412213231461
load1049836140211011131245
domContentLoaded1042831139311111071238
domInteractive2515101202083
firstPaint200591407240181946
backgroundConnect19918124212203223
firstReactRender1283141320
getState331669113861
initialActions104112
loadScripts85164411861109161052
setupStore1172931217
numNetworkReqs181180181171
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup782654102575825939
load62957379358642779
domContentLoaded62456678657638771
domInteractive251594202088
firstPaint1065933157128212
backgroundConnect275112284289
firstReactRender15103041621
getState3314137204161
initialActions102111
loadScripts62156477856635762
setupStore1263871229
numNetworkReqs181177181170
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup13561082180016814381693
load1087913150811511741304
domContentLoaded1086913150811511731304
domInteractive68322284288138
firstPaint------
backgroundConnect51202164544168
firstReactRender13104351323
getState1173361226
initialActions102022
loadScripts1057898149210211311209
setupStore166191281252
numNetworkReqs19985191474
BrowserifyPower User HomeuiStartup25141552398058129743355
load17591021275454822332517
domContentLoaded17591020275454822332517
domInteractive1123398515394363
firstPaint------
backgroundConnect3562112033704391073
firstReactRender2312149202546
getState1095599494113152
initialActions203123
loadScripts1499993241945720132299
setupStore455102514427192
numNetworkReqs60211392982123
WebpackStandard HomeuiStartup16541318293222417982018
load13671173261617714131615
domContentLoaded13671166261617714131614
domInteractive812818639110147
firstPaint------
backgroundConnect57173394562149
firstReactRender16116271726
getState2172233515117
initialActions103122
loadScripts13321140259217013781572
setupStore214241321789
numNetworkReqs19977181374
WebpackPower User HomeuiStartup27091695389756531843575
load20111136297152924332674
domContentLoaded20111136297053024322674
domInteractive872992411772322
firstPaint------
backgroundConnect3152411893263731053
firstReactRender19126582231
getState1045991187104179
initialActions218123
loadScripts17861119280545822132493
setupStore214160291693
numNetworkReqs64352403772132
📊 Page Load Benchmark Results

Current Commit: 050aba1 | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±39ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 716ms (±37ms) 🟢 | historical mean value: 732ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±10ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 39ms 999ms 1.31s 1.04s 1.31s
domContentLoaded 716ms 37ms 690ms 994ms 726ms 994ms
firstPaint 75ms 10ms 56ms 152ms 84ms 152ms
firstContentfulPaint 75ms 10ms 56ms 152ms 84ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.41 KiB (0.05%)
  • ui: -4.15 KiB (-0.05%)
  • common: 6.32 KiB (0.07%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [9c61c20]
UI Startup Metrics (1283 ± 106 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12831034152710613501438
load1076854130910011411221
domContentLoaded1070849130110011341216
domInteractive2716110212489
firstPaint177661139189189323
backgroundConnect21719831414222238
firstReactRender1493141624
getState371781134366
initialActions105112
loadScripts8616561106999261006
setupStore1274451221
numNetworkReqs171176171167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup795642117986846917
load64256794075685798
domContentLoaded63756393274680777
domInteractive251695182180
firstPaint1126078387140220
backgroundConnect2951273139114
firstReactRender15104061631
getState3314140224056
initialActions104112
loadScripts63356192273678767
setupStore1264371227
numNetworkReqs181178181174
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup14611142240219415761755
load1165945217215012311368
domContentLoaded1164945217215012311368
domInteractive8531107910992147
firstPaint------
backgroundConnect65213055783186
firstReactRender13102631317
getState14798141237
initialActions103122
loadScripts1125929215313811831291
setupStore205510511357
numNetworkReqs19979191374
BrowserifyPower User HomeuiStartup26611588432363531783530
load18031064282160324022713
domContentLoaded18021064282060224022713
domInteractive963597812379323
firstPaint------
backgroundConnect3602811913804621141
firstReactRender2413202222640
getState1105822735124204
initialActions219123
loadScripts15551030255948621142449
setupStore525109517124112
numNetworkReqs75521853664171
WebpackStandard HomeuiStartup15421287207617416291901
load13011119178813613711553
domContentLoaded13001118178713613711553
domInteractive70262184390140
firstPaint------
backgroundConnect57191553871144
firstReactRender14112631421
getState165153221345
initialActions105122
loadScripts12641104168411813161505
setupStore154131181539
numNetworkReqs19980181373
WebpackPower User HomeuiStartup25571604366351929103367
load19271105275849923352628
domContentLoaded19261097275749923342627
domInteractive73303026576267
firstPaint------
backgroundConnect3412111093714091079
firstReactRender2112147162347
getState1066691487116173
initialActions203123
loadScripts16541087258742721012380
setupStore354103010917160
numNetworkReqs68401813074136
📊 Page Load Benchmark Results

Current Commit: 9c61c20 | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 973ms (±37ms) 🟢 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 676ms (±34ms) 🟢 | historical mean value: 731ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±9ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 973ms 37ms 941ms 1.24s 1.00s 1.24s
domContentLoaded 676ms 34ms 650ms 927ms 695ms 927ms
firstPaint 76ms 9ms 60ms 144ms 84ms 144ms
firstContentfulPaint 76ms 9ms 60ms 144ms 84ms 144ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -73.4 KiB (-1.5%)
  • ui: -8.7 KiB (-0.11%)
  • common: 5.55 KiB (0.06%)

const expectedUrl = `https://${match[1]}.infura.io/v3/${escapeRegExp(
process.env.INFURA_PROJECT_ID,
)}`;
return rpcEndpoint.url.startsWith(expectedUrl);
Copy link

Choose a reason for hiding this comment

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

Incorrect use of escapeRegExp in string comparison

Low Severity

The escapeRegExp function is incorrectly applied to INFURA_PROJECT_ID when building a string for startsWith comparison. Unlike migration 157 where escapeRegExp is correctly used inside new RegExp(), here the escaped string is used in a plain string comparison. If the project ID contains regex special characters (like .), escapeRegExp would convert . to \., causing the startsWith comparison to fail since the actual URL contains . not \.. The escapeRegExp call should be removed since this is a string comparison, not a regex operation.

Fix in Cursor Fix in Web

@khanti42 khanti42 force-pushed the feat/add-monad-failover-rpc branch from 8d9a914 to e1d1c7c Compare January 7, 2026 13:26
const expectedUrl = `https://${match[1]}.infura.io/v3/${escapeRegExp(
process.env.INFURA_PROJECT_ID,
)}`;
return rpcEndpoint.url.startsWith(expectedUrl);
Copy link

Choose a reason for hiding this comment

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

Incorrect escapeRegExp usage in string comparison

Low Severity

The escapeRegExp function is used incorrectly when building a string for startsWith() comparison. escapeRegExp is meant to escape special regex characters for use in RegExp patterns, but here it's used in a plain string context. If INFURA_PROJECT_ID contains any regex special characters (like .), escapeRegExp would add backslashes that become literal characters in the string, causing startsWith() to fail even for valid Infura URLs. For example, if the ID were "test.123", the escaped version "test\\.123" won't match the actual URL containing "test.123". The escapeRegExp call should be removed since this is a string comparison, not regex matching. This contrasts with migration 157 which correctly uses escapeRegExp inside new RegExp().

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [e1d1c7c]
UI Startup Metrics (1344 ± 101 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13441088154810114131492
load112190013199611831276
domContentLoaded111389513059511771266
domInteractive2817112212493
firstPaint168701010108202296
backgroundConnect22720626312233253
firstReactRender14103251626
getState3715139164262
initialActions1010112
loadScripts8956931088959611052
setupStore1373551424
numNetworkReqs171178171170
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup802670111477842944
load63557480553649776
domContentLoaded63056979853645760
domInteractive251699172271
firstPaint976032847106198
backgroundConnect225130272598
firstReactRender15112431722
getState3715132194666
initialActions103112
loadScripts62756779051643754
setupStore1373761533
numNetworkReqs171176171169
WebpackPower User HomeuiStartup1174938182917112301553
load735603113394818891
domContentLoaded728597112093809883
domInteractive31171662726112
firstPaint1246450170147251
backgroundConnect48757311423483
firstReactRender16132121719
getState14511965053144182
initialActions105111
loadScripts725594111192806881
setupStore1594871434
numNetworkReqs67502132862126
FirefoxBrowserifyStandard HomeuiStartup13301044211118414371659
load1067892179012711491285
domContentLoaded1067892178912711491285
domInteractive65312183886134
firstPaint------
backgroundConnect50143754955149
firstReactRender1293341216
getState126125161024
initialActions102012
loadScripts1040877177211810981247
setupStore155175231040
numNetworkReqs20984201377
BrowserifyPower User HomeuiStartup25101495391455129113219
load1694983256554921982415
domContentLoaded1694983256454921972414
domInteractive933296811591302
firstPaint------
backgroundConnect3932411514219271115
firstReactRender211291112438
getState1016131535115169
initialActions208123
loadScripts1384967234942114732250
setupStore544101716622253
numNetworkReqs74491552982149
WebpackStandard HomeuiStartup15751287225317516971863
load13271124167211514031551
domContentLoaded13261118167211514031551
domInteractive792921041110140
firstPaint------
backgroundConnect59201993973144
firstReactRender14102331520
getState1267081323
initialActions103122
loadScripts12881109164810613571483
setupStore184240311573
numNetworkReqs19986191374
WebpackPower User HomeuiStartup25441577350856730233341
load19211095289153723952667
domContentLoaded19201095289153723942667
domInteractive60293545062153
firstPaint------
backgroundConnect3012114073663351160
firstReactRender201268102342
getState95672323195165
initialActions203123
loadScripts16781075286845421492364
setupStore394104411524164
numNetworkReqs70431593174151
📊 Page Load Benchmark Results

Current Commit: e1d1c7c | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±38ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 718ms (±36ms) 🟢 | historical mean value: 726ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±9ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 38ms 998ms 1.30s 1.05s 1.30s
domContentLoaded 718ms 36ms 688ms 977ms 733ms 977ms
firstPaint 76ms 9ms 56ms 144ms 88ms 144ms
firstContentfulPaint 76ms 9ms 56ms 144ms 88ms 144ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -72.94 KiB (-1.49%)
  • ui: -11.98 KiB (-0.15%)
  • common: 5.7 KiB (0.06%)

const expectedUrl = `https://${match[1]}.infura.io/v3/${escapeRegExp(
process.env.INFURA_PROJECT_ID,
)}`;
return rpcEndpoint.url.startsWith(expectedUrl);
Copy link

Choose a reason for hiding this comment

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

escapeRegExp misused in string comparison causes incorrect matching

Medium Severity

The escapeRegExp function is designed for regex patterns but is incorrectly used here with startsWith() string comparison. If INFURA_PROJECT_ID contains any regex special characters (like .), escapeRegExp will add escape characters (e.g., \.) that would cause startsWith to return false when it should return true. Migration 157 correctly uses escapeRegExp inside new RegExp(), but this code appears adapted without removing the escaping for the string comparison approach. The escapeRegExp call should be removed since startsWith is a plain string operation.

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [53b4711]
UI Startup Metrics (1257 ± 98 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1257101015419813171410
load105384512698811101172
domContentLoaded104884012648711051165
domInteractive251590182183
firstPaint163651121170184316
backgroundConnect21519625911220242
firstReactRender1593551727
getState371780104254
initialActions105112
loadScripts839644105386895962
setupStore1372851525
numNetworkReqs171179171169
BrowserifyPower User HomeuiStartup17071376247519117742071
load1044880185113810931304
domContentLoaded1032872184513710811293
domInteractive3017108222694
firstPaint190651335235197320
backgroundConnect23819749451244408
firstReactRender14104741417
getState15712026628170212
initialActions105112
loadScripts82267916291348631083
setupStore1564681437
numNetworkReqs66551241863121
WebpackStandard HomeuiStartup8336801065908751029
load66958792676696835
domContentLoaded66358292276691828
domInteractive271696192386
firstPaint1116133859155226
backgroundConnect225122253197
firstReactRender16119191725
getState3515140224171
initialActions105112
loadScripts66058091975688818
setupStore1364471430
numNetworkReqs181178181170
WebpackPower User HomeuiStartup1259953177219313231711
load7566171084103852913
domContentLoaded7496121069103847904
domInteractive33181572828115
firstPaint13769967103172252
backgroundConnect96866218531572
firstReactRender17143321821
getState14210018613147169
initialActions102011
loadScripts7466091054101840901
setupStore1694391439
numNetworkReqs67532172662123
FirefoxBrowserifyStandard HomeuiStartup13401076193917114631632
load1077907157211711231313
domContentLoaded1077906157211711231313
domInteractive71312454488163
firstPaint------
backgroundConnect56193395653183
firstReactRender1294241217
getState136163201137
initialActions102012
loadScripts1045893154610310961238
setupStore143183201135
numNetworkReqs19978191375
BrowserifyPower User HomeuiStartup25401455399255529503152
load1758952255653522452417
domContentLoaded1757951255653522442416
domInteractive1033399416186238
firstPaint------
backgroundConnect3751912083824431122
firstReactRender20128192427
getState10757102196123166
initialActions213123
loadScripts1478936236245920112261
setupStore2853174419125
numNetworkReqs75501582988143
WebpackStandard HomeuiStartup15651263224018716601907
load13101134173512013901540
domContentLoaded13091133173512013901540
domInteractive78282123791144
firstPaint------
backgroundConnect56172664164141
firstReactRender14112631520
getState177212271344
initialActions103122
loadScripts12781114171011113511472
setupStore205206301569
numNetworkReqs19983191476
WebpackPower User HomeuiStartup26391584360651830113380
load19681186266949124182548
domContentLoaded19681186266949124182548
domInteractive792984411464348
firstPaint------
backgroundConnect3572311753764041091
firstReactRender18136572027
getState103545136196177
initialActions207123
loadScripts16811164247539421232303
setupStore365102711418116
numNetworkReqs73451493078145
📊 Page Load Benchmark Results

Current Commit: 53b4711 | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±40ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 712ms (±36ms) 🟢 | historical mean value: 726ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±10ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 40ms 1.00s 1.32s 1.04s 1.32s
domContentLoaded 712ms 36ms 695ms 989ms 731ms 989ms
firstPaint 74ms 10ms 56ms 152ms 84ms 152ms
firstContentfulPaint 74ms 10ms 56ms 152ms 84ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -72.94 KiB (-1.49%)
  • ui: -11.65 KiB (-0.15%)
  • common: 6.52 KiB (0.07%)

const expectedUrl = `https://${match[1]}.infura.io/v3/${escapeRegExp(
process.env.INFURA_PROJECT_ID,
)}`;
return rpcEndpoint.url.startsWith(expectedUrl);
Copy link

Choose a reason for hiding this comment

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

Incorrect use of escapeRegExp with string comparison

Medium Severity

The escapeRegExp function is used on INFURA_PROJECT_ID, but the result is then compared using startsWith() which is a literal string comparison, not a regex match. If the project ID contains regex special characters like ., *, or +, escapeRegExp will add backslash escapes (e.g., test.id becomes test\.id), causing the startsWith() comparison to fail against the actual URL which contains the unescaped characters. Migration 157 handles this correctly by using escapeRegExp inside a new RegExp() constructor. The fix is to remove the escapeRegExp call since we're doing string comparison.

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 8, 2026

Builds ready [ee2d32e]
UI Startup Metrics (1305 ± 114 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13051038178011413581470
load1094887153010011431245
domContentLoaded1087883152410011391239
domInteractive271692192384
firstPaint192671352210203302
backgroundConnect22219826011228245
firstReactRender1583751627
getState3918161174467
initialActions105112
loadScripts8736791288999301034
setupStore1362441421
numNetworkReqs171169161164
BrowserifyPower User HomeuiStartup18251483222117519542177
load1073899132311711591276
domContentLoaded1062893131611511401267
domInteractive3117106232899
firstPaint177691152130223355
backgroundConnect25320467489249521
firstReactRender15114951623
getState18913875465203259
initialActions106111
loadScripts84468311051139321051
setupStore19752112542
numNetworkReqs65541301863118
WebpackStandard HomeuiStartup8096541091938621018
load64257789870666790
domContentLoaded63757388970661784
domInteractive251599202090
firstPaint1116226353148215
backgroundConnect286116253793
firstReactRender14103841621
getState311571144259
initialActions102112
loadScripts63357088668658776
setupStore1375691336
numNetworkReqs181174171168
WebpackPower User HomeuiStartup1237974183117312901649
load72559797091765911
domContentLoaded71959195990760904
domInteractive30161342626106
firstPaint1306468083168253
backgroundConnect977640153120553
firstReactRender16132121720
getState14712819913153168
initialActions102011
loadScripts71658995789758901
setupStore1564081435
numNetworkReqs67532142661124
FirefoxBrowserifyStandard HomeuiStartup13931068229717715081676
load1111892200913711941305
domContentLoaded1110887200913711941305
domInteractive72328908986140
firstPaint------
backgroundConnect64212515696187
firstReactRender1393641320
getState146127171233
initialActions103122
loadScripts1070878187811411161201
setupStore13566121146
numNetworkReqs19984201377
BrowserifyPower User HomeuiStartup26921550435458931023455
load17541009286959122592698
domContentLoaded17531009286959122592696
domInteractive9032100811591304
firstPaint------
backgroundConnect3812412264104531147
firstReactRender19122842125
getState127711123104138176
initialActions213123
loadScripts1463985269050120022507
setupStore546106914939196
numNetworkReqs75531653087145
WebpackStandard HomeuiStartup16031230298022516991966
load13151105170110513851538
domContentLoaded13151104170110513851538
domInteractive812717937115138
firstPaint------
backgroundConnect7719145914885190
firstReactRender1710112111827
getState197127221757
initialActions102122
loadScripts1280109016699613161441
setupStore2243113915110
numNetworkReqs19983191476
WebpackPower User HomeuiStartup28631678450666333753683
load21121142321863126452919
domContentLoaded21111141321763126442919
domInteractive8329100111279264
firstPaint------
backgroundConnect3302414003663731226
firstReactRender201310092227
getState1227924537141200
initialActions217123
loadScripts18711126304655423622693
setupStore38512271232985
numNetworkReqs68421733463161
📊 Page Load Benchmark Results

Current Commit: ee2d32e | Date: 1/8/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±39ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 726ms (±36ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 39ms 1.01s 1.33s 1.07s 1.33s
domContentLoaded 726ms 36ms 698ms 991ms 757ms 991ms
firstPaint 77ms 11ms 60ms 168ms 88ms 168ms
firstContentfulPaint 77ms 11ms 60ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -71.25 KiB (-1.45%)
  • ui: -13.12 KiB (-0.17%)
  • common: 10.41 KiB (0.12%)

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

Labels

needs-qa Label will automate into QA workspace size-L team-network-enablement

Projects

Status: Needs dev review

Development

Successfully merging this pull request may close these issues.

5 participants