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

After

Pre-merge author checklist

Pre-merge reviewer checklist

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

Note

Adds QuickNode failover support for Monad, including a migration to inject failover URLs and wiring the QUICKNODE_MONAD_URL across build/CI.

  • Migration (v184):
    • Adds app/scripts/migrations/184.ts to append QuickNode failoverUrls to Monad (CHAIN_IDS.MONAD) RPC endpoints when none exist; includes comprehensive tests and registers in migrations/index.js.
  • Networks:
    • Extends shared/constants/network.ts with monad-mainnet in QUICKNODE_ENDPOINT_URLS_BY_INFURA_NETWORK_NAME and uses getFailoverUrlsForInfuraNetwork('monad-mainnet') for Monad default RPC.
  • Build/CI env:
    • Adds QUICKNODE_MONAD_URL to .github/scripts/bundle.sh, publish-release.yml, run-build.yml, builds.yml, and development/build/config.js.
  • Tests/fixtures:
    • Bumps migration versions in E2E fixtures to 184.

Written by Cursor Bugbot for commit 10e38cf. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Needs dev review

Development

Successfully merging this pull request may close these issues.

4 participants