Skip to content

fix: non-evm bridge activity - #44751

Merged
n3ps merged 5 commits into
mainfrom
n3ps/nonevm-bridge-fix
Jul 23, 2026
Merged

fix: non-evm bridge activity#44751
n3ps merged 5 commits into
mainfrom
n3ps/nonevm-bridge-fix

Conversation

@n3ps

@n3ps n3ps commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

Fix labels of non-EVM source bridge transactions

Changelog

CHANGELOG entry: fix: non EVM activity labels

Related issues

Fixes: #44752

Manual testing steps

  1. Bridge a non EVM token to EVM
  2. Check activity history

Screenshots/Recordings

Before

After

image

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

Medium Risk
Changes activity classification and display for non-EVM transactions using bridge history lookups; incorrect matching could mislabel sends as bridges, but scope is limited to activity UI/selectors.

Overview
Non-EVM keyring transactions that match cross-chain bridge history are shown as bridges again, with source/destination tokens from the quote instead of a plain send.

selectNonEvmActivityItems now resolves bridge history per transaction id via selectBridgeHistoryItemForTxHash and, when isCrossChain applies, overrides the mapped activity to type: 'bridge' with swap tokens and bridge status. Unmatched sends stay sends (covered by new selector tests).

Bridge rows in the activity list can show a source chain → destination chain subtitle by deriving chain ids from token assetIds; getChainIdFromAssetId returns undefined for missing ids. BTC bridge e2e expectations were updated from “Sending BTC” to “Bridging BTC”.

Reviewed by Cursor Bugbot for commit 4ca022a. Bugbot is set up for automated code reviews on this repo. Configure here.

@n3ps
n3ps requested a review from a team as a code owner July 23, 2026 04:26
@n3ps
n3ps enabled auto-merge July 23, 2026 04:26
@github-actions

Copy link
Copy Markdown
Contributor

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.

@metamask-ci metamask-ci Bot added the team-core-extension-ux Core Extension UX team label Jul 23, 2026
@metamask-ci

metamask-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/core-extension-ux (1 files, +20 -7)
  • 📁 ui/
    • 📁 pages/
      • 📁 activity/
        • 📁 rows/
          • 📄 useActivityRowContent.tsx +20 -7

Comment thread ui/selectors/activity.ts
const bridgeHistoryEntry = getBridgeHistory(transaction.id);
const { quote } = bridgeHistoryEntry ?? {};

if (quote && isCrossChain(quote.srcChainId, quote.destChainId)) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Point of interest: detect cross-chain bridge

const destinationChainId = getChainIdFromAssetId(
destinationToken?.assetId as CaipAssetType,
);
const subtitle =

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

updated subtitle


function getChainDisplay(activity: ActivityRowProps['data']) {
const { namespace } = parseCaipChainId(activity.chainId);
function getChainDisplay(caipChainId: string) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

refactoring

@github-project-automation github-project-automation Bot moved this to Needs dev review in PR review queue Jul 23, 2026
@metamask-ci

metamask-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
Builds ready [59bbaf1]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 4103808 | Date: 7/22/2026 | Pipeline: 29979552137 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🔴 bridge_load_page

📈 Results compared to the previous 5 runs on main

  • confirmTx/longTaskMaxDuration: -11%
  • confirmTx/tbt: -11%
  • bridgeUserActions/bridge_load_page: -14%
  • bridgeUserActions/longTaskMaxDuration: -11%
  • bridgeUserActions/tbt: -26%
  • loadNewAccount/inp: -30%
  • loadNewAccount/fcp: -42%
  • loadNewAccount/lcp: +1114%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/inp: -25%
  • confirmTx/lcp: +1152%
  • bridgeUserActions/bridge_load_page: +1453%
  • bridgeUserActions/bridge_load_asset_picker: +70%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +172%
  • bridgeUserActions/inp: +104%
  • bridgeUserActions/fcp: -49%
  • bridgeUserActions/lcp: +1135%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/INP: p75 232ms
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/setupStore: +13%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -18%
  • startupStandardHome/domContentLoaded: -19%
  • startupStandardHome/domInteractive: -38%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/firstReactRender: -20%
  • startupStandardHome/initialActions: -44%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/setupStore: -22%
  • startupStandardHome/fcp: -35%
  • startupStandardHome/lcp: -18%
  • startupPowerUserHome/uiStartup: +21%
  • startupPowerUserHome/load: +19%
  • startupPowerUserHome/domContentLoaded: +19%
  • startupPowerUserHome/backgroundConnect: +25%
  • startupPowerUserHome/firstReactRender: +26%
  • startupPowerUserHome/initialActions: +11%
  • startupPowerUserHome/loadScripts: +20%
  • startupPowerUserHome/setupStore: +82%
  • startupPowerUserHome/inp: +10%
  • startupPowerUserHome/lcp: +22%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 656ms
  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟡 [CI log]
🟡 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
🔴 total
🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -22%
  • onboardingImportWallet/doneButtonToHomeScreen: -80%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -33%
  • onboardingImportWallet/longTaskCount: -91%
  • onboardingImportWallet/longTaskTotalDuration: -97%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -79%
  • onboardingNewWallet/longTaskCount: -72%
  • onboardingNewWallet/longTaskTotalDuration: -81%
  • onboardingNewWallet/longTaskMaxDuration: -58%
  • onboardingNewWallet/tbt: -89%
  • solanaAssetDetails/assetClickToPriceChart: -72%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/total: -72%
  • solanaAssetDetails/lcp: -59%
  • solanaAssetDetails/cls: -88%
  • importSrpHome/loginToHomeScreen: -24%
  • importSrpHome/homeAfterImportWithNewWallet: -16%
  • importSrpHome/longTaskCount: -46%
  • importSrpHome/longTaskTotalDuration: -46%
  • importSrpHome/tbt: -47%
  • importSrpHome/total: -15%
  • importSrpHome/inp: -16%
  • importSrpHome/cls: -70%
  • sendTransactions/openSendPageFromHome: -48%
  • sendTransactions/selectTokenToSendFormLoaded: -33%
  • sendTransactions/reviewTransactionToConfirmationPage: -97%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -95%
  • sendTransactions/inp: -31%
  • sendTransactions/fcp: -22%
  • sendTransactions/lcp: -19%
  • sendTransactions/cls: -59%
  • swap/openSwapPageFromHome: -38%
  • swap/fetchAndDisplaySwapQuotes: +92%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +89%
  • swap/inp: -13%
  • swap/fcp: -25%
  • swap/lcp: -27%
  • swap/cls: -88%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 232ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 swap/INP: p75 456ms
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 105 Bytes (0%)
  • ui: 644 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 321 Bytes (0%)

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added size-M and removed size-S labels Jul 23, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
NidhiKJha
NidhiKJha previously approved these changes Jul 23, 2026
hjetpoluru
hjetpoluru previously approved these changes Jul 23, 2026
@github-project-automation github-project-automation Bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Jul 23, 2026
@hjetpoluru

Copy link
Copy Markdown
Contributor

Looks like lint is failing

@hjetpoluru
hjetpoluru self-requested a review July 23, 2026 13:03
Co-authored-by: Cursor <cursoragent@cursor.com>
@n3ps
n3ps dismissed stale reviews from hjetpoluru and NidhiKJha via 5d34ec2 July 23, 2026 13:05
@n3ps
n3ps requested a review from NidhiKJha July 23, 2026 13:06
NidhiKJha
NidhiKJha previously approved these changes Jul 23, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
69.8% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@metamask-ci

metamask-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4ca022a]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 0fd8198 | Date: 7/23/2026 | Pipeline: 30010166753 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/inp: -23%
  • loadNewAccount/fcp: -18%
  • confirmTx/longTaskTotalDuration: -15%
  • confirmTx/longTaskMaxDuration: -18%
  • confirmTx/tbt: -27%
  • confirmTx/inp: -21%
  • confirmTx/fcp: -19%
  • bridgeUserActions/bridge_load_page: -37%
  • bridgeUserActions/bridge_load_asset_picker: -41%
  • bridgeUserActions/longTaskCount: -50%
  • bridgeUserActions/longTaskTotalDuration: -54%
  • bridgeUserActions/longTaskMaxDuration: -26%
  • bridgeUserActions/tbt: -65%
  • bridgeUserActions/total: -12%
  • bridgeUserActions/inp: -35%
  • bridgeUserActions/fcp: -16%
  • loadNewAccount/inp: -23%
  • loadNewAccount/fcp: -60%
  • loadNewAccount/lcp: +1131%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -21%
  • confirmTx/fcp: -52%
  • confirmTx/lcp: +1109%
  • bridgeUserActions/bridge_load_page: +129%
  • bridgeUserActions/bridge_load_asset_picker: +74%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +28%
  • bridgeUserActions/inp: -20%
  • bridgeUserActions/fcp: -47%
  • bridgeUserActions/lcp: +1218%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/setupStore: +14%
  • startupStandardHome/domInteractive: -46%
  • startupStandardHome/fcp: -43%
  • startupPowerUserHome/domInteractive: +26%
  • startupPowerUserHome/inp: -22%
  • startupPowerUserHome/fcp: +19%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 3.2s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟡 [CI log]
🟡 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 assetClickToPriceChart
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -17%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -30%
  • onboardingImportWallet/longTaskCount: -90%
  • onboardingImportWallet/longTaskTotalDuration: -96%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -77%
  • onboardingNewWallet/doneButtonToAssetList: -80%
  • onboardingNewWallet/longTaskCount: -69%
  • onboardingNewWallet/longTaskTotalDuration: -78%
  • onboardingNewWallet/longTaskMaxDuration: -47%
  • onboardingNewWallet/tbt: -97%
  • onboardingNewWallet/total: -76%
  • solanaAssetDetails/assetClickToPriceChart: -50%
  • solanaAssetDetails/total: -50%
  • solanaAssetDetails/cls: -88%
  • importSrpHome/loginToHomeScreen: -23%
  • importSrpHome/homeAfterImportWithNewWallet: -36%
  • importSrpHome/longTaskCount: -45%
  • importSrpHome/longTaskTotalDuration: -46%
  • importSrpHome/longTaskMaxDuration: -12%
  • importSrpHome/tbt: -50%
  • importSrpHome/total: -35%
  • importSrpHome/inp: -32%
  • importSrpHome/cls: -77%
  • sendTransactions/openSendPageFromHome: -14%
  • sendTransactions/selectTokenToSendFormLoaded: -17%
  • sendTransactions/reviewTransactionToConfirmationPage: -23%
  • sendTransactions/total: -21%
  • sendTransactions/inp: -31%
  • sendTransactions/cls: -28%
  • swap/openSwapPageFromHome: -34%
  • swap/fetchAndDisplaySwapQuotes: +150%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +144%
  • swap/cls: -88%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 264ms
  • 🟡 assetDetails/LCP: p75 2.6s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -20.47 KiB (-0.14%)
  • ui: 17.07 KiB (0.1%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 498 Bytes (0.03%)
  • zip: -3.32 KiB (-0.01%)

@n3ps
n3ps added this pull request to the merge queue Jul 23, 2026
Merged via the queue into main with commit ab4fbef Jul 23, 2026
138 of 139 checks passed
@n3ps
n3ps deleted the n3ps/nonevm-bridge-fix branch July 23, 2026 14:12
@github-project-automation github-project-automation Bot moved this from Review finalised - Ready to be merged to Merged, Closed or Archived in PR review queue Jul 23, 2026
@metamaskbot metamaskbot added the release-13.42.0 Issue or pull request that will be included in release 13.42.0 label Jul 23, 2026
@metamask-ci metamask-ci Bot mentioned this pull request Jul 23, 2026
16 tasks
@metamask-ci metamask-ci Bot mentioned this pull request Jul 30, 2026
17 tasks
@MajorLift

MajorLift commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

🧪 Validation Run

Verdict: ⚠️ selectNonEvmActivityItems stops being memoized — Claim: the non-EVM activity rows pick up bridge history without changing how the list is computed. head ab4fbefa8d2 · 2026-08-02 · selector-recompute check

Note

Trial run of the MetaMask evidence skills
feedback welcome, on the finding or on whether this format is useful to a reviewer.
Not a review verdict; nothing here blocks the PR.

Same selector, same fixture, same probe, run in CI at the merge commit and at its parent. Five writes that touch nothing the selector reads.

At the parent commit:

selectNonEvmActivityItems recomputation count

Verdict: narrowed — unrelated writes cost nothing

Condition Calls Recomputations
Identical state reference 5 1
Fresh metamask slice, unrelated field 5 1
pinnedAccountList changed (a real input) 5 1

Correctness: the returned value is identical across all calls above, so the count
measures memoisation rather than a change in behaviour.

$ git checkout --detach 62fd747287f0bda8a4ecf671b8c28514f3d07f6e && bash selector-recompute.sh --label selector-recompute-base --out evidence-artifacts --module ui/selectors/activity --export selectNonEvmActivityItems --fixture test/data/mock-state.json --slice metamask --perturb pinnedAccountList
      RECOMPUTE_PROBE identical=1 unrelated=1 inputChanged=1 n=5 valueStable=true
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Time:        3.632 s, estimated 7 s

Produced by selector-recompute.sh via reselect's own counter; the probe is generated, run, and kept beside this artifact. head 62fd747287f0bda8a4ecf671b8c28514f3d07f6e · 0 tracked changes · node v24.13.1. Run: https://github.com/MajorLift/metamask-skills/actions/runs/30749351450 — logs and artifacts attached there.

At the merge commit:

selectNonEvmActivityItems recomputation count

Verdict: recomputes on unrelated writes

Condition Calls Recomputations
Identical state reference 5 1
Fresh metamask slice, unrelated field 5 6
pinnedAccountList changed (a real input) 5 11

Correctness: the returned value is identical across all calls above, so the count
measures memoisation rather than a change in behaviour.

$ git checkout --detach ab4fbefa8d2a087c48491e5cf76bf31b3907cd34 && bash selector-recompute.sh --label selector-recompute-head --out evidence-artifacts --module ui/selectors/activity --export selectNonEvmActivityItems --fixture test/data/mock-state.json --slice metamask --perturb pinnedAccountList
      RECOMPUTE_PROBE identical=1 unrelated=6 inputChanged=11 n=5 valueStable=true
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Time:        6.821 s

Produced by selector-recompute.sh via reselect's own counter; the probe is generated, run, and kept beside this artifact. head ab4fbefa8d2a087c48491e5cf76bf31b3907cd34 · 0 tracked changes · node v24.13.1. Run: https://github.com/MajorLift/metamask-skills/actions/runs/30749351450 — logs and artifacts attached there.

Follows from the arms above

  • One recomputation before, six after, for the same five unrelated writes — the selector now recomputes on every dispatch rather than when its inputs move.
  • valueStable=true in both, so the extra work produces an identical result each time.
  • The cause is an input selector reading the whole store, added by this change: ui/selectors/activity.ts#L224-L228. [(state) => state] changes identity on every dispatch, so the memo can never hit, and it returns a fresh closure each time.
  • selectNonEvmActivityItemsById takes selectNonEvmActivityItems as its input, so it inherits this.
  • A narrower input reaches the same value: selectBridgeHistoryItemForTxHash needs the bridge-status slice, not the store.

Open for review: one fixture with one perturbed key, so the third row is not meaningful here — pinnedAccountList is not an input to this selector at either commit. The middle row is what moves, 1 → 6. Whether that matters in the running app depends on how often the activity list is subscribed while dispatches are flowing, which this does not establish.

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

Labels

release-13.42.0 Issue or pull request that will be included in release 13.42.0 risk:medium size-M team-core-extension-ux Core Extension UX team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[Bug]: non-evm / evm txn cross chain swap txn history  is incorrect

5 participants