Skip to content

fix: network form #34070

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

fix: network form #34070

wants to merge 9 commits into from

Conversation

salimtb
Copy link
Contributor

@salimtb salimtb commented Jul 3, 2025

Description

This PR addresses two issues:

  • When an enabled network is deleted, its native token was still appearing in the asset list. This fix ensures the native token is properly removed when its corresponding network is deleted.
  • NFT filtering was not working correctly in the Send flow. This fix restores proper filtering behavior when sending NFTs.

Open in GitHub Codespaces

Changelog

CHANGELOG entry:

Related issues

Fixes: #32085 #34057

Manual testing steps

  1. Delete network
  2. check the token list
  3. native token of the deleted network should not be displayed
  4. NFT of deleted network should not be able to send

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.

Copy link
Contributor

github-actions bot commented Jul 3, 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

metamaskbot commented Jul 3, 2025

✨ Files requiring CODEOWNER review ✨

🖥️ @MetaMask/wallet-ux (8 files, +89 -20)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 asset-picker-amount/
          • 📁 asset-picker-modal/
            • 📄 asset-picker-modal-nft-tab.tsx +1 -0
        • 📁 network-list-menu/
          • 📁 select-rpc-url-modal/
            • 📄 select-rpc-url-modal.test.tsx +13 -1
            • 📄 select-rpc-url-modal.tsx +19 -9
            • 📄 network-list-menu.tsx +10 -2
        • 📁 network-manager/
          • 📁 components/
            • 📁 custom-networks/
              • 📄 custom-networks.tsx +2 -2
            • 📁 default-networks/
              • 📄 default-networks.tsx +2 -2
          • 📁 hooks/
            • 📄 useNetworkItemCallbacks.ts +5 -0
            • 📄 network-manager.tsx +37 -4

@metamaskbot
Copy link
Collaborator

Builds ready [fcc9153]
UI Startup Metrics (1171 ± 63 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1171105314326312041295
load99988812235910361087
domContentLoaded99388312185910311080
domInteractive17136071640
firstPaint61579122839910061078
backgroundConnect74202811
firstReactRender2417146142340
getState1564882028
initialActions001001
loadScripts790680101058827882
setupStore952441017
WebpackHomeuiStartup23061768283520824202704
load17561302214118418562063
domContentLoaded17491297213318318512046
domInteractive181282141559
firstPaint1756756686215331
backgroundConnect23106792841
firstReactRender24693426108367407
getState185329321836
initialActions318135
loadScripts17441296212217818492004
setupStore19764112349
FirefoxBrowserifyHomeuiStartup13851202178013414411702
load1201103515908712511357
domContentLoaded1200103515908712501357
domInteractive1173540775116345
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect221378112243
firstReactRender26226572639
getState18522936978
initialActions001001
loadScripts1182101715658612291326
setupStore12418626829
WebpackHomeuiStartup16331401241719817282029
load13971206183415215121695
domContentLoaded13971205183415215121695
domInteractive99333545891278
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect24165992543
firstReactRender43335144650
getState156267271233
initialActions001011
loadScripts13741185179415014921671
setupStore1256812941
Benchmark value 24 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 2307 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 1756 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 1750 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 246 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 1744 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2705 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2063 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2047 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 59 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 407 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 2005 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 118 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 18 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 12 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1702 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 345 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 78 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 29 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1633 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1397 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1397 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 1375 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 2029 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1695 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1695 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 278 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 33 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 1671 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 41 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 356ms | Sum of p95 exceeds: 989ms
Sum of all benchmark exceeds: 1345ms

@salimtb salimtb marked this pull request as ready for review July 4, 2025 09:22
@salimtb salimtb requested a review from a team as a code owner July 4, 2025 09:22
cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [ef5f4ff]
UI Startup Metrics (1197 ± 65 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1197107915376512341293
load102392012686010551118
domContentLoaded101691312616010491114
domInteractive17134261732
firstPaint65774114541310401107
backgroundConnect84273811
firstReactRender23174862540
getState1463681929
initialActions001000
loadScripts809708103759843908
setupStore96304819
WebpackHomeuiStartup23031850290418423782713
load17571334219817118462051
domContentLoaded17511330218817018412035
domInteractive191293161565
firstPaint1787271193185334
backgroundConnect2512345332443
firstReactRender23891453106351409
getState194316431745
initialActions217136
loadScripts17481328217716918392023
setupStore207312302132
FirefoxBrowserifyHomeuiStartup14181208202014614951698
load12341067163010613081452
domContentLoaded12341067162910613081452
domInteractive1223647475124315
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2513115162657
firstReactRender26215262837
getState125181191033
initialActions001001
loadScripts12131048160610512901425
setupStore13418527870
WebpackHomeuiStartup16751384277422017702047
load14431170193615915601701
domContentLoaded14421169193515915601701
domInteractive111333827299296
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2515295282435
firstReactRender43315444551
getState175198331155
initialActions102111
loadScripts14191148172415315381675
setupStore13520628930
Benchmark value 24 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 19 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 2304 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 1758 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 1751 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 238 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 1748 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2714 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2052 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2035 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 66 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 335 exceeds gate value 334 for chrome webpack home p95 firstPaint
Benchmark value 409 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 2023 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1418 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 122 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 13 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 13 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1698 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 315 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 33 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 70 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1676 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1443 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1443 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 112 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 43 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 18 exceeds gate value 15 for firefox webpack home mean getState
Benchmark value 1419 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 14 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2047 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1701 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1701 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 296 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 51 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 55 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 1675 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 30 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 560ms | Sum of p95 exceeds: 1031ms
Sum of all benchmark exceeds: 1591ms

@salimtb salimtb requested review from a team as code owners July 4, 2025 10:11
cursor[bot]

This comment was marked as outdated.

@salimtb salimtb force-pushed the fix/fix-network-form branch from a94385e to e56a3c1 Compare July 4, 2025 11:49
cursor[bot]

This comment was marked as outdated.

@salimtb salimtb force-pushed the fix/fix-network-form branch from e56a3c1 to befbbcc Compare July 4, 2025 12:07
cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [befbbcc]
UI Startup Metrics (1200 ± 76 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1200108217377612291310
load102091815157110481112
domContentLoaded101290615117110421104
domInteractive18145681743
firstPaint696150151440110301085
backgroundConnect84346927
firstReactRender24164972742
getState1663892232
initialActions001000
loadScripts804684130572832901
setupStore95254918
WebpackHomeuiStartup22871724299721223832700
load17171267220217018062026
domContentLoaded17111262218316818002014
domInteractive191288161570
firstPaint1596437458175280
backgroundConnect241059102842
firstReactRender27590443112375401
getState194314322041
initialActions217134
loadScripts17071261217216717982003
setupStore237279282649
FirefoxBrowserifyHomeuiStartup14111224194313814651677
load1234108415149313001402
domContentLoaded1234108315139312991402
domInteractive1213648867124316
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2214165162335
firstReactRender26216852733
getState1159914932
initialActions001001
loadScripts1215107014489012831385
setupStore15426935770
WebpackHomeuiStartup16561393333225917262129
load14101198187515815091749
domContentLoaded14091198187515815091749
domInteractive106335347598315
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect24155572641
firstReactRender43307354549
getState29514991501131
initialActions001011
loadScripts13871178185215714841724
setupStore15527632932
Benchmark value 25 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 17 exceeds gate value 15 for chrome browserify home mean getState
Benchmark value 43 exceeds gate value 41 for chrome browserify home p95 domInteractive
Benchmark value 28 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 18 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 2288 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 1718 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 1711 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 275 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 1708 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2700 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2015 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 71 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 401 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 2004 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1411 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 121 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 15 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1677 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 316 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 32 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 70 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1656 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1410 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1410 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 107 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 43 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 29 exceeds gate value 15 for firefox webpack home mean getState
Benchmark value 1387 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 15 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2129 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1749 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1749 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 315 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 1724 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 32 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 344ms | Sum of p95 exceeds: 1166ms
Sum of all benchmark exceeds: 1510ms

Base automatically changed from feat/network-manager-UI-2 to main July 8, 2025 19:53
@Prithpal-Sooriya Prithpal-Sooriya dismissed their stale review July 8, 2025 19:53

The base branch was changed.

@salimtb salimtb force-pushed the fix/fix-network-form branch from befbbcc to 4a7db49 Compare July 9, 2025 10:43
cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [d87f04c]
UI Startup Metrics (1232 ± 54 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1232112713725412781322
load106197411955010911151
domContentLoaded105396811905010821143
domInteractive18144261735
firstPaint61683115942510591115
backgroundConnect84254920
firstReactRender23174562439
getState1665492233
initialActions40577417
loadScripts80571893749837892
setupStore85274918
WebpackHomeuiStartup22991751283019923892746
load17391323206616418342040
domContentLoaded17321316205316318282018
domInteractive191378141659
firstPaint1636742672188327
backgroundConnect2913281283255
firstReactRender25493418116379401
getState185115152342
initialActions142225281141
loadScripts17281313204016118262005
setupStore207236232435
FirefoxBrowserifyHomeuiStartup13841170193114714531694
load12061043156510112721357
domContentLoaded12061042156510112721357
domInteractive1153753676120308
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2413183232071
firstReactRender26225142633
getState1157011940
initialActions7016221249
loadScripts1185102815489912481340
setupStore15445650738
WebpackHomeuiStartup16961404228520217712176
load14451183194616715161811
domContentLoaded14441183194616715151811
domInteractive113614108198357
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect221593102332
firstReactRender61469176472
getState156106131836
initialActions40728314
loadScripts14251167192516715001790
setupStore11611213927
Benchmark value 17 exceeds gate value 15 for chrome browserify home mean getState
Benchmark value 5 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 21 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 17 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 18 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 2300 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 1739 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 1733 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 255 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 14 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 1729 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2746 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2041 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2018 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 60 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 401 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 41 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 2005 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 116 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 8 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 16 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1694 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 308 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 71 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 40 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 49 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 38 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1697 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1445 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1445 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 114 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 61 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1426 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 2176 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1811 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1811 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 357 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 72 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 36 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 14 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1790 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Sum of mean exceeds: 569ms | Sum of p95 exceeds: 1602.8ms
Sum of all benchmark exceeds: 2171.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 432 Bytes (0.01%)
  • ui: 1.3 KiB (0.02%)
  • common: 15 Bytes (0%)

cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [cad05bd]
UI Startup Metrics (1223 ± 73 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1223109216997312601316
load104791415437510831150
domContentLoaded104090615387510771143
domInteractive18135171637
firstPaint63882117242210491126
backgroundConnect84293911
firstReactRender24176082548
getState1565381931
initialActions50719820
loadScripts793656128575830901
setupStore84284816
WebpackHomeuiStartup22581774301522923922680
load16771336227419018001990
domContentLoaded16701333225418917951985
domInteractive191382131554
firstPaint175681764174195310
backgroundConnect261356103148
firstReactRender27294431111377409
getState18570122446
initialActions10351101036
loadScripts16661331224118717921983
setupStore1976492535
FirefoxBrowserifyHomeuiStartup14801266211415215431805
load1267108915489113321441
domContentLoaded1267108915489113311441
domInteractive1123551279109235
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2515111132546
firstReactRender28245242936
getState186231341159
initialActions5018519316
loadScripts1246107215319213111420
setupStore224321528150
WebpackHomeuiStartup17101438256320517762196
load14471194186415315381803
domContentLoaded14461194186415315381803
domInteractive112365008498333
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect251680112743
firstReactRender61477966471
getState146113121332
initialActions508110521
loadScripts14261174184315215191784
setupStore15632239929
Benchmark value 25 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 48 exceeds gate value 45 for chrome browserify home p95 firstReactRender
Benchmark value 20 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 2259 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 272 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 11 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2681 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 409 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 36 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 1983 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1480 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1268 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1268 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 113 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 28 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 19 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 6 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1247 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 22 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1805 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 235 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 59 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 16 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 150 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1711 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1447 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1447 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 112 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 61 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1426 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 16 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2196 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1803 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1803 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 333 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 71 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 21 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1784 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 29 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 630ms | Sum of p95 exceeds: 1605.8ms
Sum of all benchmark exceeds: 2235.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 432 Bytes (0.01%)
  • ui: 1.3 KiB (0.02%)
  • common: 15 Bytes (0%)

cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [082ca0c]
UI Startup Metrics (1272 ± 68 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1272114915616813001414
load109098213936111171203
domContentLoaded108397413886111111194
domInteractive2014126131840
firstPaint678161139742610901144
backgroundConnect94426916
firstReactRender24174552535
getState1674182232
initialActions608210917
loadScripts827722105456857932
setupStore95254917
WebpackHomeuiStartup21991662268719322842631
load16561231201414717301947
domContentLoaded16501225199714517231935
domInteractive191289161468
firstPaint1686337263186296
backgroundConnect2513275262738
firstReactRender27490424122383404
getState175328321827
initialActions11226526931
loadScripts16461222198514417201922
setupStore1573861929
FirefoxBrowserifyHomeuiStartup14971204204315115861793
load1290106515589913611480
domContentLoaded1290106515589913611480
domInteractive1143639059125261
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect251593132667
firstReactRender28245962940
getState186207301062
initialActions6019020326
loadScripts1269105215369813411456
setupStore214216458177
WebpackHomeuiStartup17121409249719418152166
load14551193205716115481817
domContentLoaded14541192205616115481816
domInteractive109424948293316
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect23165172440
firstReactRender61477366470
getState155107151437
initialActions7118120517
loadScripts14351177203216015281791
setupStore1159811929
Benchmark value 1272 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1091 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1083 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 24 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState
Benchmark value 6 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 1415 exceeds gate value 1365 for chrome browserify home p95 uiStartup
Benchmark value 1203 exceeds gate value 1190 for chrome browserify home p95 load
Benchmark value 1194 exceeds gate value 1180 for chrome browserify home p95 domContentLoaded
Benchmark value 17 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 2200 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 275 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 12 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2631 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 68 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 404 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 31 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 1498 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1291 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1291 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 114 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 29 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 18 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 7 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1269 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 21 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1793 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 261 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 62 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 26 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 177 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1713 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1455 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1455 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 109 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 61 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 16 exceeds gate value 15 for firefox webpack home mean getState
Benchmark value 7 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1435 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 2166 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1817 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1816 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 316 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 70 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 37 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 17 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1791 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 29 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 766ms | Sum of p95 exceeds: 1655.8ms
Sum of all benchmark exceeds: 2421.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 432 Bytes (0.01%)
  • ui: 1.3 KiB (0.02%)
  • common: 15 Bytes (0%)

@Prithpal-Sooriya Prithpal-Sooriya changed the title fix: fix bugs fix: network form Jul 9, 2025
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Bug: Modal Fails When Network Config Missing

Runtime errors occur in the SelectRpcUrlModal component when networkConfigurationToUse is undefined. This happens if the optional networkConfiguration prop is not supplied AND the chainId obtained from location.state is either undefined or does not correspond to an existing network in evmNetworks. Subsequent attempts to access properties like chainId, name, and rpcEndpoints on the undefined networkConfigurationToUse then cause "Cannot read properties of undefined" errors.

ui/components/multichain/network-list-menu/select-rpc-url-modal/select-rpc-url-modal.tsx#L35-L47

const location = useLocation();
const chainId = location.state?.chainId;
const [, evmNetworks] = useSelector(
getMultichainNetworkConfigurationsByChainId,
);
const networkConfigurationToUse =
networkConfiguration ?? evmNetworks[chainId as keyof typeof evmNetworks];
const image =
CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP[
networkConfigurationToUse.chainId as keyof typeof CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP
];

Fix in CursorFix in Web


Bug: Network Removal Bug: Inconsistent ID Handling

The onNetworkRemoved method, triggered only for EVM network removals, has two issues: it redundantly checks isCaipChainId(networkId) (always false for a Hex ID), and its conditional deletion logic for enabledNetworkMap (using Hex for EIP155 and CAIP for others) results in the non-EIP155 deletion path being unreachable, preventing non-EVM networks from being removed.

app/scripts/controllers/network-order.ts#L187-L204

onNetworkRemoved(networkId: Hex) {
const caipId: CaipChainId = isCaipChainId(networkId)
? networkId
: toEvmCaipChainId(networkId);
const { namespace } = parseCaipChainId(caipId);
if (namespace === (KnownCaipNamespace.Eip155 as string)) {
this.update((state) => {
delete state.enabledNetworkMap[namespace][networkId];
});
} else {
this.update((state) => {
delete state.enabledNetworkMap[namespace][caipId];
});
}
}

Fix in CursorFix in Web


Bug: Incorrect Callback Type in Modal

Type mismatch in SelectRpcUrlModal: the onNetworkChange prop expects (chainId: CaipChainId, networkClientId: string) => void, but the handleClose function (() => void) is passed, leading to incorrect arguments or runtime errors when the callback is invoked.

ui/components/multichain/network-manager/network-manager.tsx#L221-L222

</ModalHeader>
<SelectRpcUrlModal onNetworkChange={handleClose} />

Fix in CursorFix in Web


Bug: Selector Function Used Incorrectly

isGlobalNetworkSelectorRemoved is a selector function that is imported and used directly as a boolean condition. Selectors must be called with the Redux state as an argument to return their actual value. Because it's a function object, the condition if (isGlobalNetworkSelectorRemoved) always evaluates to true, rendering the conditional logic ineffective. It should be called with state or passed as a prop from a connected component.

ui/components/app/loading-network-screen/loading-network-screen.component.js#L125-L130

this.setState({ showErrorScreen: false });
if (isGlobalNetworkSelectorRemoved) {
showNetworkManager();
} else {
showNetworkDropdown();
}

Fix in CursorFix in Web


Was this report helpful? Give feedback by reacting with 👍 or 👎

@metamaskbot
Copy link
Collaborator

Builds ready [93c30ba]
UI Startup Metrics (1270 ± 59 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1270113014195913131370
load109498112505711301182
domContentLoaded108897612415711211172
domInteractive19145571841
firstPaint71172123244111101174
backgroundConnect84273911
firstReactRender25164962740
getState1554482230
initialActions50246719
loadScripts835731100056868918
setupStore94264921
WebpackHomeuiStartup22041671277623523332698
load16581249206319217732015
domContentLoaded16511245203619017681998
domInteractive191370141562
firstPaint1697134357196294
backgroundConnect3612428612867
firstReactRender25190416122385404
getState1566891636
initialActions11216818930
loadScripts16481243202418817651985
setupStore187293282025
FirefoxBrowserifyHomeuiStartup14111209202414814721726
load1223107416519812861390
domContentLoaded1223107316519812861390
domInteractive1183750788122392
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2413141192253
firstReactRender27224942934
getState14523230934
initialActions8017225246
loadScripts1203105916339612671369
setupStore13419524754
WebpackHomeuiStartup16611429233219617172129
load14161183192616314841797
domContentLoaded14151183192516314841797
domInteractive108645177495285
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect22157082239
firstReactRender60477256368
getState146103131432
initialActions5016116315
loadScripts13961165190416114681770
setupStore11610813927
Benchmark value 1271 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1095 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1088 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 25 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState
Benchmark value 5 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 835 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 1371 exceeds gate value 1365 for chrome browserify home p95 uiStartup
Benchmark value 19 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 21 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 2204 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 252 exceeds gate value 235 for chrome webpack home mean firstReactRender
Benchmark value 11 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2698 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 62 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 404 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 30 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 1986 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1412 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 118 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 15 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 9 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 14 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1726 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 392 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 34 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 46 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 54 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1662 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1416 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1416 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 109 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 60 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1397 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 2129 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1797 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1797 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 285 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 68 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 15 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1770 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Sum of mean exceeds: 360ms | Sum of p95 exceeds: 1461.8ms
Sum of all benchmark exceeds: 1821.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 432 Bytes (0.01%)
  • ui: 1.3 KiB (0.02%)
  • common: 15 Bytes (0%)

@@ -76,7 +81,13 @@ const NetworkManagerRouter = () => {
],
defaultRpcEndpointIndex: networkFormState.rpcUrls.rpcEndpoints.length,
});
history.push('/add');

// TODO: Handle edit case
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this still a TODO?

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

Successfully merging this pull request may close these issues.

[Bug]:[Remove GNS]: NFT filtering in SEND flow does not work
5 participants