Skip to content

Conversation

@micaelae
Copy link
Member

@micaelae micaelae commented Dec 18, 2025

Description

Changes

  • Updates the toAssetId util to checksum EVM assetIds and transform Tron assets correctly
  • Explicitly checksums addresses (if needed) before passing them to the bridge-controller
  • Removes unused bridge-status utils

Open in GitHub Codespaces

Changelog

CHANGELOG entry: fix: toAssetId util should checksum EVM assetIds and support Tron tokens

Related issues

Fixes:

Manual testing steps

  1. Source and dest fiat values should be correct for evm and non-evm tokens
  2. Block explorer link in dest input should link to correct URL

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

  • Asset ID + image handling: Updates toAssetId to accept hex/CAIP chain IDs, checksum EVM addresses, and generate Solana token: and Tron trc20: asset IDs; getAssetImageUrl now lowercases EVM paths while preserving non‑EVM case and builds URLs from CAIP asset IDs.
  • Metadata fetch: Refactors fetchAssetMetadata/fetchAssetMetadataForAssetIds to use new toAssetId and getAssetImageUrl, normalize chain IDs, and return non‑EVM addresses via CAIP references; adds isEvmChainId and isTronResource helpers.
  • Bridge integration: Reworks selectors/utils to build assetIds with toAssetId(fromToken.address, fromChain.chainId), generate images via CDN, and format quote params with CAIP references; updates tests/e2e to expect checksummed ERC20 assetIds/addresses and new image URLs.
  • Constants + cleanup: Fixes Tron common token address format in BRIDGE_CHAINID_COMMON_TOKEN_PAIR; removes unused bridge-status metrics utils and related types.

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

@metamaskbot metamaskbot added the team-swaps-and-bridge Swaps and Bridge team label Dec 18, 2025
@micaelae micaelae changed the title fix: checksum swap quote assetIds and support Tron tokens fix: toAssetId util should checksum EVM assetIds and support Tron tokens Dec 18, 2025
@micaelae micaelae marked this pull request as ready for review December 18, 2025 20:40
@micaelae micaelae requested a review from a team as a code owner December 18, 2025 20:40
@micaelae micaelae force-pushed the swaps-tron-btc-assetIds branch from 2dacf81 to 9d04076 Compare December 18, 2025 20:48
@micaelae micaelae changed the title fix: toAssetId util should checksum EVM assetIds and support Tron tokens fix: checksum EVM token addresses used throughout the bridge experience Dec 18, 2025
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Dec 19, 2025

✨ Files requiring CODEOWNER review ✨

🔄 @MetaMask/swaps-engineers (14 files, +99 -183)
  • 📁 app/
    • 📁 scripts/
      • 📁 lib/
        • 📁 bridge-status/
          • 📄 metrics-utils.ts +0 -69
  • 📁 ui/
    • 📁 ducks/
      • 📁 bridge/
        • 📄 selectors.test.ts +7 -4
        • 📄 selectors.ts +1 -4
        • 📄 utils.ts +7 -33
      • 📁 bridge-status/
        • 📄 selectors.ts +8 -2
    • 📁 hooks/
      • 📁 bridge/
        • 📁 __snapshots__/
          • 📄 useBridgeQueryParams.test.ts.snap +2 -2
          • 📄 useTokensWithFiltering.test.ts.snap +15 -15
          • 📄 useBridging.test.ts +2 -2
          • 📄 useTokensWithFiltering.test.ts +9 -11
          • 📄 useTokensWithFiltering.ts +1 -3
    • 📁 pages/
      • 📁 bridge/
        • 📁 __snapshots__/
          • 📄 index.test.tsx.snap +1 -1
        • 📁 prepare/
          • 📁 __snapshots__/
            • 📄 prepare-bridge-page.test.tsx.snap +2 -2
            • 📄 prepare-bridge-page.tsx +43 -34
        • 📁 quotes/
          • 📄 multichain-bridge-quote-card.test.tsx +1 -1

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Dec 19, 2025

Builds ready [28b265a]
UI Startup Metrics (1271 ± 116 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12711019157311613481460
load1079869136911011371277
domContentLoaded1073862136510911301270
domInteractive2616124222188
firstPaint182661265186194344
backgroundConnect21219226811217234
firstReactRender1483141523
getState371677134369
initialActions103112
loadScripts86866311611089321060
setupStore1264151420
numNetworkReqs171173161166
BrowserifyPower User HomeuiStartup17871438275920418562192
load1059877152813411631288
domContentLoaded1049869151913211491284
domInteractive2917137212691
firstPaint167661283162202331
backgroundConnect23920258071232464
firstReactRender14113031519
getState19412976967210257
initialActions103112
loadScripts84066512561289411068
setupStore1694681537
numNetworkReqs67502203061127
WebpackStandard HomeuiStartup783653101181826965
load63656886268645799
domContentLoaded63256285767641793
domInteractive261597202284
firstPaint986133948123187
backgroundConnect22596222983
firstReactRender14103141521
getState3515122204471
initialActions105112
loadScripts62956085466639785
setupStore1254781337
numNetworkReqs181179181171
WebpackPower User HomeuiStartup1195954207117612641553
load70459294086745868
domContentLoaded69858593485735861
domInteractive31171552725107
firstPaint1326438466179271
backgroundConnect5585539362166
firstReactRender15132621619
getState15613620412164175
initialActions102111
loadScripts69558392484733858
setupStore14104471335
numNetworkReqs65522092361124
FirefoxBrowserifyStandard HomeuiStartup13991094227019614871769
load1123938208016011841391
domContentLoaded1123938208016011841391
domInteractive8032114511289141
firstPaint------
backgroundConnect55182274761164
firstReactRender1392631320
getState125103121126
initialActions102122
loadScripts1086921206314411451284
setupStore144135181141
numNetworkReqs20982201577
BrowserifyPower User HomeuiStartup25941539370360530983413
load1766989299459122942605
domContentLoaded1765989299459122892604
domInteractive10631100614591310
firstPaint------
backgroundConnect3792111964094661185
firstReactRender18112942126
getState1146226235119175
initialActions3037638
loadScripts1474970277049220172372
setupStore395115111726114
numNetworkReqs71491402387116
WebpackStandard HomeuiStartup15461229208316816341865
load13031110159611213731519
domContentLoaded13031110159611213721519
domInteractive752823445114148
firstPaint------
backgroundConnect55212463964146
firstReactRender14102431522
getState146193191426
initialActions103112
loadScripts1268108115559813281450
setupStore194260351547
numNetworkReqs19984191474
WebpackPower User HomeuiStartup26861588445258830713353
load20261104383657524392650
domContentLoaded20261104383557524392650
domInteractive11529111619188392
firstPaint------
backgroundConnect3632112073974311156
firstReactRender20138482228
getState1096824235117179
initialActions318227
loadScripts17391084361052322032561
setupStore384133913723137
numNetworkReqs68411242278115
📊 Page Load Benchmark Results

Current Commit: 28b265a | Date: 12/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±42ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 734ms (±39ms) 🟢 | historical mean value: 727ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±12ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 42ms 1.02s 1.36s 1.09s 1.36s
domContentLoaded 734ms 39ms 711ms 1.02s 759ms 1.02s
firstPaint 79ms 12ms 64ms 184ms 88ms 184ms
firstContentfulPaint 79ms 12ms 64ms 184ms 88ms 184ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: 419 Bytes (0.01%)
  • common: -6.14 KiB (-0.07%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Dec 19, 2025

Builds ready [b834541]
UI Startup Metrics (1283 ± 104 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12831014168110413401437
load1073856148610411331244
domContentLoaded1065851146510411231237
domInteractive2614141222289
firstPaint2346114732731961021
backgroundConnect21719025113226245
firstReactRender1393551425
getState3517104134153
initialActions104111
loadScripts85665412331019141027
setupStore1275451317
numNetworkReqs181177181170
BrowserifyPower User HomeuiStartup18061424242718818942128
load1058869155012411391247
domContentLoaded1048861154312311311234
domInteractive2917116212599
firstPaint169661257169205271
backgroundConnect249196658101233578
firstReactRender14102121518
getState18614325125206229
initialActions102112
loadScripts83765913161219151029
setupStore20659112940
numNetworkReqs65421992161119
WebpackStandard HomeuiStartup8056611117888341015
load646585101275658795
domContentLoaded64058199873651788
domInteractive2616101202286
firstPaint1086134957120227
backgroundConnect316129314696
firstReactRender15103341624
getState3214134183857
initialActions104112
loadScripts63757999372648779
setupStore1264481334
numNetworkReqs181178181170
WebpackPower User HomeuiStartup1195952219518812511610
load69658891683711871
domContentLoaded69058190883705861
domInteractive2916156252496
firstPaint1256533664175253
backgroundConnect69760812779509
firstReactRender15122521618
getState1557921113162174
initialActions102011
loadScripts68757990582702859
setupStore1463871334
numNetworkReqs65512122460120
FirefoxBrowserifyStandard HomeuiStartup14261114204617515201747
load1144947179512512141375
domContentLoaded1144947179512512141375
domInteractive75322214192150
firstPaint------
backgroundConnect60212104775164
firstReactRender13102831318
getState137168171229
initialActions102122
loadScripts1103931176810711511246
setupStore156150181246
numNetworkReqs19979191374
BrowserifyPower User HomeuiStartup26301568350756730763346
load1738967279958422632579
domContentLoaded1738967279958322622579
domInteractive10428126416785277
firstPaint------
backgroundConnect4042312494524851223
firstReactRender19126172027
getState1096121028124165
initialActions3129327
loadScripts1411952262548919302385
setupStore505111815036188
numNetworkReqs70491212278116
WebpackStandard HomeuiStartup15861314224718816931958
load13361094186213514161552
domContentLoaded13361094186213514161552
domInteractive74282724399147
firstPaint------
backgroundConnect64192575175189
firstReactRender15115951523
getState1861582713104
initialActions103122
loadScripts12961080172412013711505
setupStore164110181363
numNetworkReqs20981201477
WebpackPower User HomeuiStartup27331639494462231353655
load20071110309354324682745
domContentLoaded20061110308854324642745
domInteractive61283885564167
firstPaint------
backgroundConnect3422512013833381139
firstReactRender2013100102227
getState1136836242119175
initialActions30791027
loadScripts17251096293045621362551
setupStore3042054621164
numNetworkReqs64401222375116
📊 Page Load Benchmark Results

Current Commit: b834541 | Date: 12/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±53ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 717ms (±64ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±42ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 53ms 1.00s 1.46s 1.06s 1.46s
domContentLoaded 717ms 64ms 691ms 1.30s 748ms 1.30s
firstPaint 78ms 42ms 56ms 496ms 84ms 496ms
firstContentfulPaint 78ms 42ms 56ms 496ms 84ms 496ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: -8 Bytes (0%)
  • common: -6.16 KiB (-0.07%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Dec 19, 2025

Builds ready [27830e5]
UI Startup Metrics (1318 ± 98 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1318109915839813791485
load110090213149211571242
domContentLoaded109389713069211521237
domInteractive2716102192387
firstPaint184691181174200315
backgroundConnect22720629114235254
firstReactRender1483141520
getState3416104113849
initialActions102112
loadScripts8736751098929321007
setupStore1163741215
numNetworkReqs181177171171
BrowserifyPower User HomeuiStartup17871378227117218932110
load1046863133912111571253
domContentLoaded1037859131712111521247
domInteractive2917104202691
firstPaint170671332175202259
backgroundConnect24820258585236517
firstReactRender13102221417
getState19014330729215231
initialActions104112
loadScripts82665811111199321033
setupStore1666391435
numNetworkReqs65512002262119
WebpackStandard HomeuiStartup793670100265841903
load63457685658647769
domContentLoaded62957183857640762
domInteractive2515100182278
firstPaint1046127747125196
backgroundConnect2851303036106
firstReactRender15102931622
getState3415139214160
initialActions102111
loadScripts62656882856638754
setupStore1153751320
numNetworkReqs171180171167
WebpackPower User HomeuiStartup1183928178715212461525
load69656999992762856
domContentLoaded69056498991756848
domInteractive28161252323101
firstPaint1235936861165231
backgroundConnect5875719773209
firstReactRender16123431620
getState16114121012168188
initialActions102012
loadScripts68756197590754845
setupStore1484281335
numNetworkReqs67382133062135
FirefoxBrowserifyStandard HomeuiStartup13691056183417714731719
load1096897155813411861369
domContentLoaded1095892155813511851369
domInteractive64301833785139
firstPaint------
backgroundConnect56211914467170
firstReactRender1393331319
getState1164061125
initialActions102122
loadScripts1060882153411711331285
setupStore13599121235
numNetworkReqs19981191376
BrowserifyPower User HomeuiStartup25901503440362130343339
load1741946285259722902573
domContentLoaded1741945285259722902572
domInteractive73323046177252
firstPaint------
backgroundConnect47122128247611171197
firstReactRender211265102255
getState1097021428123168
initialActions3030437
loadScripts1359932244746113232383
setupStore395118112222113
numNetworkReqs70481182081111
WebpackStandard HomeuiStartup16831366315725118192061
load13911158282219314661618
domContentLoaded13911158282219314661618
domInteractive853022343116145
firstPaint------
backgroundConnect64212505363206
firstReactRender15122931622
getState176183241563
initialActions103122
loadScripts13551143279418514241595
setupStore204275331771
numNetworkReqs19986191476
WebpackPower User HomeuiStartup27321706387757131563435
load20421157297753924902639
domContentLoaded20421156297753924902639
domInteractive9230105014968359
firstPaint------
backgroundConnect3372011873723661158
firstReactRender211397122229
getState1187449949144173
initialActions208227
loadScripts17731140273547222092468
setupStore2652123920127
numNetworkReqs70521342572129
📊 Page Load Benchmark Results

Current Commit: 27830e5 | Date: 12/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±54ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 723ms (±51ms) 🟢 | historical mean value: 722ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±15ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 54ms 1.00s 1.33s 1.06s 1.33s
domContentLoaded 723ms 51ms 694ms 1.01s 741ms 1.01s
firstPaint 76ms 15ms 60ms 212ms 88ms 212ms
firstContentfulPaint 76ms 15ms 60ms 212ms 88ms 212ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: -8 Bytes (0%)
  • common: -6.16 KiB (-0.07%)

@micaelae micaelae enabled auto-merge January 5, 2026 17:48
const commonFields = {
symbol: assetMetadata.symbol,
decimals: assetMetadata.decimals,
image: getAssetImageUrl(assetId, chainIdInCaip),
Copy link

Choose a reason for hiding this comment

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

Inconsistent API casing between token metadata functions

The fetchAssetMetadata function now sends checksummed EVM assetIds to the token API (via the updated toAssetId which checksums addresses), while fetchAssetMetadataForAssetIds explicitly lowercases EVM assetIds at line 185 before calling the same API endpoint. This inconsistency means the same token could be looked up with different casing (eip155:1/erc20:0x123ABcDe vs eip155:1/erc20:0x123abcde) depending on which function is used. If the API is case-sensitive or returns differently-cased results, this could cause lookup failures or cache mismatches.

Additional Locations (1)

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 5, 2026

Builds ready [a98d3a5]
UI Startup Metrics (1267 ± 103 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12671032156810313281416
load106485313749711161218
domContentLoaded105884913279511081212
domInteractive241595182275
firstPaint1326430958181223
backgroundConnect2091942479213229
firstReactRender1593851627
getState351787114054
initialActions105113
loadScripts8546461124969101013
setupStore1272541322
numNetworkReqs171177171168
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup794648118181838915
load63957990866662777
domContentLoaded63457390266657771
domInteractive2615113192284
firstPaint1086235550147199
backgroundConnect25596223780
firstReactRender15103741623
getState3315101154460
initialActions104112
loadScripts63157189364654764
setupStore1264461422
numNetworkReqs181177171169
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup13441080231719314161644
load1076920203514011371291
domContentLoaded1075914203514011371291
domInteractive65322794485151
firstPaint------
backgroundConnect50182354457145
firstReactRender13104451325
getState126133131123
initialActions102022
loadScripts1047905195212711011199
setupStore145162191148
numNetworkReqs19982201476
BrowserifyPower User HomeuiStartup26291583356254230383306
load17591029272252722552492
domContentLoaded17591029272152722552492
domInteractive993294412290331
firstPaint------
backgroundConnect3902513283874831110
firstReactRender21126192541
getState1205694994126218
initialActions217123
loadScripts1467998255745019642286
setupStore975113021973954
numNetworkReqs70331653179160
WebpackStandard HomeuiStartup15591241210918616721924
load13011090163312013761542
domContentLoaded13011090163312013761541
domInteractive852723646112180
firstPaint------
backgroundConnect52211513352136
firstReactRender16114251726
getState166138181562
initialActions103122
loadScripts12711075161211213411495
setupStore175149231356
numNetworkReqs20982201476
WebpackPower User HomeuiStartup27411670689765431053339
load20581193617165324732649
domContentLoaded20581193617165424732649
domInteractive14328474748769445
firstPaint------
backgroundConnect3202312263383511076
firstReactRender20126382330
getState11368104499123179
initialActions208123
loadScripts18081134614463422712479
setupStore575103917233177
numNetworkReqs67201773375156
📊 Page Load Benchmark Results

Current Commit: a98d3a5 | Date: 1/5/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±53ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 737ms (±51ms) 🟢 | 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.05s 53ms 1.02s 1.37s 1.09s 1.37s
domContentLoaded 737ms 51ms 707ms 1.04s 760ms 1.04s
firstPaint 77ms 11ms 60ms 160ms 88ms 160ms
firstContentfulPaint 77ms 11ms 60ms 160ms 88ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: -8 Bytes (0%)
  • common: -6.16 KiB (-0.07%)

return undefined;
}
const normalizedAssetId = (
isNonEvmChainId(chainId) ? assetIdInCaip : assetIdInCaip.toLowerCase()
Copy link

Choose a reason for hiding this comment

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

Wrong chain ID used for non-EVM address case check

In getAssetImageUrl, the isNonEvmChainId(chainId) check uses the original chainId parameter instead of the chain ID extracted from the asset. When toAssetId is called at line 83, it correctly extracts the chain from a CAIP asset type (e.g., a Solana asset). However, the lowercase decision at line 88 still uses the original chainId parameter. If a non-EVM asset (like Solana) is passed with an EVM chainId fallback, the Solana address gets incorrectly lowercased. Since Solana addresses are base58-encoded and case-sensitive, lowercasing them produces an entirely different address, causing token icon URLs to point to the wrong or nonexistent resources.

Fix in Cursor Fix in Web

...commonFields,
address: address.toLowerCase(),
chainId: decimalToPrefixedHex(reference),
chainId: hexChainId,
Copy link

Choose a reason for hiding this comment

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

EVM path returns full CAIP type instead of address

In fetchAssetMetadata, the EVM path at line 157 uses address.toLowerCase() directly from the original parameter. However, the function signature accepts address: string | CaipAssetType | Hex, meaning a CAIP asset type like eip155:1/erc20:0x1234... could be passed. The non-EVM path correctly extracts the address reference using parseCaipAssetType(assetId).assetReference (line 143-146), but the EVM path doesn't. When a CAIP asset type is passed for an EVM chain, the returned address field would contain the full lowercased CAIP type string instead of just the extracted hex address.

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [f802a6f]
UI Startup Metrics (1274 ± 94 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1274105015589413441403
load106886612779211331218
domContentLoaded106286112729211281213
domInteractive2715111202384
firstPaint160641167147183301
backgroundConnect2141952478219230
firstReactRender1394751418
getState34196583848
initialActions106111
loadScripts854662105992919998
setupStore1173031216
numNetworkReqs181181181170
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup787632109780834951
load63756483163669764
domContentLoaded63255982463664760
domInteractive2414113191976
firstPaint11858789103143299
backgroundConnect2951323143104
firstReactRender15104451624
getState3215382374054
initialActions106113
loadScripts62955781562661753
setupStore1063651020
numNetworkReqs171175171166
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup13481058191417014301662
load1075913166611411321250
domContentLoaded1074909166611411281250
domInteractive66312254192147
firstPaint------
backgroundConnect53202164659174
firstReactRender1292931318
getState126146141025
initialActions104122
loadScripts1046898156210011021214
setupStore14568121244
numNetworkReqs20980191377
BrowserifyPower User HomeuiStartup26831564563066230843539
load18091027469362522952554
domContentLoaded18081027469362522952553
domInteractive11734138619692333
firstPaint------
backgroundConnect4172514594309551208
firstReactRender22126082630
getState1185795991122207
initialActions214133
loadScripts14911008467255620002341
setupStore635116716351212
numNetworkReqs67231723183143
WebpackStandard HomeuiStartup15891326220518516721972
load13291143160210814071530
domContentLoaded13281143160210814021530
domInteractive762618140109139
firstPaint------
backgroundConnect58213034464147
firstReactRender15112841625
getState2372414118116
initialActions103122
loadScripts1293112715099413471474
setupStore206227341649
numNetworkReqs20982191476
WebpackPower User HomeuiStartup26911613360753931083396
load20071135298050824812593
domContentLoaded20071135298050824802592
domInteractive75293316984285
firstPaint------
backgroundConnect3292414303663831160
firstReactRender18135572127
getState10362109510498147
initialActions208123
loadScripts17601118296244421962380
setupStore3444096037101
numNetworkReqs66201923871178
📊 Page Load Benchmark Results

Current Commit: f802a6f | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±96ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 728ms (±121ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 94ms (±188ms) 🟢 | historical mean value: 79ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 96ms 1.00s 1.96s 1.05s 1.96s
domContentLoaded 728ms 121ms 694ms 1.90s 739ms 1.90s
firstPaint 94ms 188ms 56ms 1.97s 84ms 1.97s
firstContentfulPaint 94ms 188ms 56ms 1.97s 84ms 1.97s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: -8 Bytes (0%)
  • common: -6.16 KiB (-0.07%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [9e831bf]
UI Startup Metrics (1289 ± 101 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12891078161010113571485
load107989113809711411246
domContentLoaded107288313749711321240
domInteractive261693182381
firstPaint166661089135186271
backgroundConnect21519825811221235
firstReactRender14103651524
getState3617130174064
initialActions104112
loadScripts8656861164969241045
setupStore1153641321
numNetworkReqs171180171167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup798651102876847939
load64557882863675793
domContentLoaded64057482263670787
domInteractive2515103202284
firstPaint1005938350115195
backgroundConnect216130222858
firstReactRender15102731723
getState3615162234567
initialActions103111
loadScripts63757181362668780
setupStore1474791336
numNetworkReqs181175171169
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup14191068238722214951870
load1137920196415511921395
domContentLoaded1137919196415511891395
domInteractive74323405091153
firstPaint------
backgroundConnect60203565872174
firstReactRender13102431320
getState136124131329
initialActions104112
loadScripts1102904191014311591290
setupStore146127161443
numNetworkReqs19980191473
BrowserifyPower User HomeuiStartup26031405467659630033447
load1759973300957622572507
domContentLoaded1758973300857622572506
domInteractive10533123415890335
firstPaint------
backgroundConnect48020119144010361138
firstReactRender21126092541
getState113451051103112217
initialActions207123
loadScripts1389958287044814912276
setupStore555109515347191
numNetworkReqs68231813575163
WebpackStandard HomeuiStartup16221337220418817501983
load13511124177013014311596
domContentLoaded13511124176913014311595
domInteractive843024046124152
firstPaint------
backgroundConnect66182625379175
firstReactRender16114551624
getState15765121457
initialActions103122
loadScripts13111109162410913981493
setupStore155123161541
numNetworkReqs19978191476
WebpackPower User HomeuiStartup27811760454757631443629
load20611163303552424892787
domContentLoaded20611163303052424872783
domInteractive13630119522198910
firstPaint------
backgroundConnect3952313193894361159
firstReactRender20136272529
getState112581028103110187
initialActions205123
loadScripts17611132299647222002624
setupStore525102814246165
numNetworkReqs68241793575164
📊 Page Load Benchmark Results

Current Commit: 9e831bf | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±45ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 721ms (±42ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 45ms 1.00s 1.41s 1.06s 1.41s
domContentLoaded 721ms 42ms 694ms 1.07s 742ms 1.07s
firstPaint 76ms 12ms 56ms 176ms 84ms 176ms
firstContentfulPaint 76ms 12ms 56ms 176ms 84ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: -8 Bytes (0%)
  • common: -6.16 KiB (-0.07%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [9e831bf]
UI Startup Metrics (1289 ± 101 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12891078161010113571485
load107989113809711411246
domContentLoaded107288313749711321240
domInteractive261693182381
firstPaint166661089135186271
backgroundConnect21519825811221235
firstReactRender14103651524
getState3617130174064
initialActions104112
loadScripts8656861164969241045
setupStore1153641321
numNetworkReqs171180171167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup798651102876847939
load64557882863675793
domContentLoaded64057482263670787
domInteractive2515103202284
firstPaint1005938350115195
backgroundConnect216130222858
firstReactRender15102731723
getState3615162234567
initialActions103111
loadScripts63757181362668780
setupStore1474791336
numNetworkReqs181175171169
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup14191068238722214951870
load1137920196415511921395
domContentLoaded1137919196415511891395
domInteractive74323405091153
firstPaint------
backgroundConnect60203565872174
firstReactRender13102431320
getState136124131329
initialActions104112
loadScripts1102904191014311591290
setupStore146127161443
numNetworkReqs19980191473
BrowserifyPower User HomeuiStartup26031405467659630033447
load1759973300957622572507
domContentLoaded1758973300857622572506
domInteractive10533123415890335
firstPaint------
backgroundConnect48020119144010361138
firstReactRender21126092541
getState113451051103112217
initialActions207123
loadScripts1389958287044814912276
setupStore555109515347191
numNetworkReqs68231813575163
WebpackStandard HomeuiStartup16221337220418817501983
load13511124177013014311596
domContentLoaded13511124176913014311595
domInteractive843024046124152
firstPaint------
backgroundConnect66182625379175
firstReactRender16114551624
getState15765121457
initialActions103122
loadScripts13111109162410913981493
setupStore155123161541
numNetworkReqs19978191476
WebpackPower User HomeuiStartup27811760454757631443629
load20611163303552424892787
domContentLoaded20611163303052424872783
domInteractive13630119522198910
firstPaint------
backgroundConnect3952313193894361159
firstReactRender20136272529
getState112581028103110187
initialActions205123
loadScripts17611132299647222002624
setupStore525102814246165
numNetworkReqs68241793575164
📊 Page Load Benchmark Results

Current Commit: 9e831bf | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±45ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 721ms (±42ms) 🟢 | historical mean value: 729ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 45ms 1.00s 1.41s 1.06s 1.41s
domContentLoaded 721ms 42ms 694ms 1.07s 742ms 1.07s
firstPaint 76ms 12ms 56ms 176ms 84ms 176ms
firstContentfulPaint 76ms 12ms 56ms 176ms 84ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.21 KiB (0.13%)
  • ui: -8 Bytes (0%)
  • common: -6.16 KiB (-0.07%)

@micaelae micaelae added this pull request to the merge queue Jan 6, 2026
Merged via the queue into main with commit 9d2b478 Jan 6, 2026
329 of 335 checks passed
@micaelae micaelae deleted the swaps-tron-btc-assetIds branch January 6, 2026 20:58
@github-actions github-actions bot locked and limited conversation to collaborators Jan 6, 2026
@metamaskbot metamaskbot added the release-13.14.0 Issue or pull request that will be included in release 13.14.0 label Jan 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.14.0 Issue or pull request that will be included in release 13.14.0 size-M team-swaps-and-bridge Swaps and Bridge team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants