Skip to content

release(runway): cherry-pick chore(cashtag): exact match symbol or ticker - #47619

Merged
sleepytanya merged 2 commits into
release/13.56.0from
runway-cherry-pick-13.56.0-1793801715
Nov 4, 2026
Merged

sleepytanya merged 2 commits into
release/13.56.0from
runway-cherry-pick-13.56.0-1793801715

Conversation

@runway-github

@runway-github runway-github Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Description

Update ticker resolution to exact symbol or rwa ticker

Changelog

CHANGELOG entry: cashtag: exact symbol/ticker match

Related issues

Fixes:

Manual testing steps

  1. Open x.com
  2. Search for $TICKERs

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

Medium Risk
Changes user-visible cashtag resolution on external sites and depends
on RWA fields from the token search API; wrong filtering could show the
wrong asset or none at all.

Overview
Cashtag ticker lookup no longer treats search hits as prefix matches
(e.g. $DOG won’t pick DOGE just because it has higher market cap).
resolveTicker now keeps only assets whose token symbol or
rwaData.ticker equals the trimmed, uppercased query, then still
picks the primary hit by market cap among those exact matches.

Token search requests add includeRwaData=true so
stock/RWA-backed tokens can match on their real-world ticker, not only
the on-chain symbol. Tests were updated for the new matching rules and
cover exact-symbol vs prefix cases and RWA ticker resolution.

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


Co-authored-by: Cursor Agent cursoragent@cursor.com 2338170

…cker cp-13.56-0 (#47602)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Update ticker resolution to exact symbol or rwa ticker


<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: cashtag: exact symbol/ticker match

## **Related issues**

Fixes: 

## **Manual testing steps**

1. Open x.com
2. Search for $TICKERs

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes user-visible cashtag resolution on external sites and depends
on RWA fields from the token search API; wrong filtering could show the
wrong asset or none at all.
> 
> **Overview**
> Cashtag ticker lookup no longer treats search hits as prefix matches
(e.g. `$DOG` won’t pick `DOGE` just because it has higher market cap).
**`resolveTicker`** now keeps only assets whose **token symbol** or
**`rwaData.ticker`** equals the trimmed, uppercased query, then still
picks the primary hit by market cap among those exact matches.
> 
> Token search requests add **`includeRwaData=true`** so
stock/RWA-backed tokens can match on their real-world ticker, not only
the on-chain symbol. Tests were updated for the new matching rules and
cover exact-symbol vs prefix cases and RWA ticker resolution.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
5a9ae03. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Nov 4, 2026

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-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Nov 4, 2026
@metamask-ci

metamask-ci Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor
Builds ready [85252c6]
⚡ Performance Benchmarks (Total: 🟢 9 pass · 🟡 2 warn · 🔴 2 fail)

Baseline (latest main): f693520 | Date: 11/3/2026 | Pipeline: 41845745332 | Baseline logs

Metricschrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🔴 load_new_account(p95) [CI log]🔴 load_new_account(p95) [CI log]

Regressions (🔴 2 failures)

Interaction Benchmarks · Samples: 5 🔴 2
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🔴 [CI log]
🔴 load_new_account
🔴 [CI log]
🔴 load_new_account
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/load_new_account: +184%
  • ↑ loadNewAccount/total: +184%
  • ↓ loadNewAccount/cls: -70%
  • ↑ confirmTx/longTaskTotalDuration: +47%
  • ↑ confirmTx/longTaskMaxDuration: +71%
  • ↑ confirmTx/tbt: +78%
  • ↑ confirmTx/fcp: +12%
  • ↑ confirmTx/lcp: +16%
  • ↑ bridgeUserActions/bridge_load_page: +127%
  • ↑ bridgeUserActions/bridge_load_asset_picker: +154%
  • ↑ bridgeUserActions/longTaskCount: +82%
  • ↑ bridgeUserActions/longTaskTotalDuration: +91%
  • ↑ bridgeUserActions/tbt: +106%
  • ↑ bridgeUserActions/total: +35%
  • ↑ bridgeUserActions/inp: +25%
  • ↑ bridgeUserActions/fcp: +10%
  • ↑ bridgeUserActions/lcp: +11%
  • ↓ bridgeUserActions/cls: -70%
  • ↑ loadNewAccount/load_new_account: +184%
  • ↑ loadNewAccount/total: +184%
  • ↓ loadNewAccount/inp: -48%
  • ↓ loadNewAccount/fcp: -47%
  • ↑ loadNewAccount/lcp: +987%
  • ↓ confirmTx/longTaskCount: -100%
  • ↓ confirmTx/longTaskTotalDuration: -100%
  • ↓ confirmTx/longTaskMaxDuration: -100%
  • ↓ confirmTx/tbt: -100%
  • ↓ confirmTx/fcp: -55%
  • ↑ confirmTx/lcp: +1062%
  • ↑ bridgeUserActions/bridge_load_page: +223%
  • ↑ bridgeUserActions/bridge_load_asset_picker: +85%
  • ↓ bridgeUserActions/bridge_search_token: -11%
  • ↓ bridgeUserActions/longTaskCount: -100%
  • ↓ bridgeUserActions/longTaskTotalDuration: -100%
  • ↓ bridgeUserActions/longTaskMaxDuration: -100%
  • ↓ bridgeUserActions/tbt: -100%
  • ↑ bridgeUserActions/total: +23%
  • ↑ bridgeUserActions/inp: +32%
  • ↓ bridgeUserActions/fcp: -48%
  • ↑ bridgeUserActions/lcp: +1039%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 bridgeUserActions/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↑ startupStandardHome/domInteractive: +16%
  • ↓ startupStandardHome/firstReactRender: -98%
  • ↓ startupStandardHome/initialActions: -29%
  • ↑ startupStandardHome/setupStore: +147%
  • ↓ startupStandardHome/longTaskCount: -29%
  • ↓ startupStandardHome/cls: -95%
  • ↓ startupStandardHome/uiStartup: -25%
  • ↓ startupStandardHome/load: -19%
  • ↓ startupStandardHome/domContentLoaded: -21%
  • ↓ startupStandardHome/domInteractive: -39%
  • ↓ startupStandardHome/backgroundConnect: -11%
  • ↓ startupStandardHome/firstReactRender: -99%
  • ↓ startupStandardHome/initialActions: -50%
  • ↓ startupStandardHome/loadScripts: -19%
  • ↑ startupStandardHome/setupStore: +89%
  • ↓ startupStandardHome/fcp: -31%
  • ↓ startupStandardHome/lcp: -17%
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ onboardingImportWallet/metricsToWalletReadyScreen: -24%
  • ↓ onboardingImportWallet/doneButtonToHomeScreen: -92%
  • ↓ onboardingImportWallet/openAccountMenuToAccountListLoaded: -74%
  • ↓ onboardingImportWallet/longTaskCount: -100%
  • ↓ onboardingImportWallet/longTaskTotalDuration: -100%
  • ↓ onboardingImportWallet/longTaskMaxDuration: -100%
  • ↓ onboardingImportWallet/tbt: -100%
  • ↓ onboardingImportWallet/total: -85%
  • ↑ onboardingNewWallet/srpButtonToPwForm: +51%
  • ↑ onboardingNewWallet/createPwToRecoveryScreen: +28%
  • ↑ onboardingNewWallet/skipBackupToMetricsScreen: +27%
  • ↓ onboardingNewWallet/doneButtonToAssetList: -73%
  • ↓ onboardingNewWallet/longTaskCount: -62%
  • ↓ onboardingNewWallet/longTaskTotalDuration: -70%
  • ↓ onboardingNewWallet/longTaskMaxDuration: -29%
  • ↓ onboardingNewWallet/tbt: -90%
  • ↓ onboardingNewWallet/total: -68%
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ dappPageLoad/pageLoadTime: -49%
  • ↓ dappPageLoad/firstPaint: -33%
  • ↓ dappPageLoad/firstContentfulPaint: -33%
Bundle Size Diffs
Status Bundle Total Diff Change
✅ background 15.26 MiB +187 Bytes 0.00%
✅ ui 19.28 MiB +124 Bytes 0.00%
✅ common 0 Bytes 0 Bytes 0.00%
✅ other 4.44 MiB 0 Bytes 0.00%
✅ content scripts 3.23 MiB 0 Bytes 0.00%
✅ unzipped 79.84 MiB +316 Bytes 0.00%
✅ zip 24.06 MiB +145 Bytes 0.00%

@metamask-ci

metamask-ci Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4b8166c] [reused from 85252c6]
⚡ Performance Benchmarks (Total: 🟢 9 pass · 🟡 2 warn · 🔴 2 fail)

Baseline (latest main): f693520 | Date: 11/3/2026 | Pipeline: 41858084525 | Baseline logs

Metricschrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🔴 load_new_account(p95) [CI log]🔴 load_new_account(p95) [CI log]

Regressions (🔴 2 failures)

Interaction Benchmarks · Samples: 5 🔴 2
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🔴 [CI log]
🔴 load_new_account
🔴 [CI log]
🔴 load_new_account
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/load_new_account: +184%
  • ↑ loadNewAccount/total: +184%
  • ↓ loadNewAccount/cls: -70%
  • ↑ confirmTx/longTaskTotalDuration: +47%
  • ↑ confirmTx/longTaskMaxDuration: +71%
  • ↑ confirmTx/tbt: +78%
  • ↑ confirmTx/fcp: +12%
  • ↑ confirmTx/lcp: +16%
  • ↑ bridgeUserActions/bridge_load_page: +127%
  • ↑ bridgeUserActions/bridge_load_asset_picker: +154%
  • ↑ bridgeUserActions/longTaskCount: +82%
  • ↑ bridgeUserActions/longTaskTotalDuration: +91%
  • ↑ bridgeUserActions/tbt: +106%
  • ↑ bridgeUserActions/total: +35%
  • ↑ bridgeUserActions/inp: +25%
  • ↑ bridgeUserActions/fcp: +10%
  • ↑ bridgeUserActions/lcp: +11%
  • ↓ bridgeUserActions/cls: -70%
  • ↑ loadNewAccount/load_new_account: +184%
  • ↑ loadNewAccount/total: +184%
  • ↓ loadNewAccount/inp: -48%
  • ↓ loadNewAccount/fcp: -47%
  • ↑ loadNewAccount/lcp: +987%
  • ↓ confirmTx/longTaskCount: -100%
  • ↓ confirmTx/longTaskTotalDuration: -100%
  • ↓ confirmTx/longTaskMaxDuration: -100%
  • ↓ confirmTx/tbt: -100%
  • ↓ confirmTx/fcp: -55%
  • ↑ confirmTx/lcp: +1062%
  • ↑ bridgeUserActions/bridge_load_page: +223%
  • ↑ bridgeUserActions/bridge_load_asset_picker: +85%
  • ↓ bridgeUserActions/bridge_search_token: -11%
  • ↓ bridgeUserActions/longTaskCount: -100%
  • ↓ bridgeUserActions/longTaskTotalDuration: -100%
  • ↓ bridgeUserActions/longTaskMaxDuration: -100%
  • ↓ bridgeUserActions/tbt: -100%
  • ↑ bridgeUserActions/total: +23%
  • ↑ bridgeUserActions/inp: +32%
  • ↓ bridgeUserActions/fcp: -48%
  • ↑ bridgeUserActions/lcp: +1039%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 bridgeUserActions/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↑ startupStandardHome/domInteractive: +16%
  • ↓ startupStandardHome/firstReactRender: -98%
  • ↓ startupStandardHome/initialActions: -29%
  • ↑ startupStandardHome/setupStore: +147%
  • ↓ startupStandardHome/longTaskCount: -29%
  • ↓ startupStandardHome/cls: -95%
  • ↓ startupStandardHome/uiStartup: -25%
  • ↓ startupStandardHome/load: -19%
  • ↓ startupStandardHome/domContentLoaded: -21%
  • ↓ startupStandardHome/domInteractive: -39%
  • ↓ startupStandardHome/backgroundConnect: -11%
  • ↓ startupStandardHome/firstReactRender: -99%
  • ↓ startupStandardHome/initialActions: -50%
  • ↓ startupStandardHome/loadScripts: -19%
  • ↑ startupStandardHome/setupStore: +89%
  • ↓ startupStandardHome/fcp: -31%
  • ↓ startupStandardHome/lcp: -17%
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ onboardingImportWallet/metricsToWalletReadyScreen: -24%
  • ↓ onboardingImportWallet/doneButtonToHomeScreen: -92%
  • ↓ onboardingImportWallet/openAccountMenuToAccountListLoaded: -74%
  • ↓ onboardingImportWallet/longTaskCount: -100%
  • ↓ onboardingImportWallet/longTaskTotalDuration: -100%
  • ↓ onboardingImportWallet/longTaskMaxDuration: -100%
  • ↓ onboardingImportWallet/tbt: -100%
  • ↓ onboardingImportWallet/total: -85%
  • ↑ onboardingNewWallet/srpButtonToPwForm: +51%
  • ↑ onboardingNewWallet/createPwToRecoveryScreen: +28%
  • ↑ onboardingNewWallet/skipBackupToMetricsScreen: +27%
  • ↓ onboardingNewWallet/doneButtonToAssetList: -73%
  • ↓ onboardingNewWallet/longTaskCount: -62%
  • ↓ onboardingNewWallet/longTaskTotalDuration: -70%
  • ↓ onboardingNewWallet/longTaskMaxDuration: -29%
  • ↓ onboardingNewWallet/tbt: -90%
  • ↓ onboardingNewWallet/total: -68%
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ dappPageLoad/pageLoadTime: -49%
  • ↓ dappPageLoad/firstPaint: -33%
  • ↓ dappPageLoad/firstContentfulPaint: -33%
Bundle Size Diffs
Status Bundle Total Diff Change
✅ background 15.26 MiB +187 Bytes 0.00%
✅ ui 19.28 MiB +124 Bytes 0.00%
✅ common 0 Bytes 0 Bytes 0.00%
✅ other 4.44 MiB 0 Bytes 0.00%
✅ content scripts 3.23 MiB 0 Bytes 0.00%
✅ unzipped 79.84 MiB +316 Bytes 0.00%
✅ zip 24.06 MiB +145 Bytes 0.00%

@sonarqubecloud

sonarqubecloud Bot commented Nov 4, 2026

Copy link
Copy Markdown

@sleepytanya
sleepytanya merged commit a4ce42c into release/13.56.0 Nov 4, 2026
136 checks passed
@sleepytanya
sleepytanya deleted the runway-cherry-pick-13.56.0-1793801715 branch November 4, 2026 16:25
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 4, 2026

This branch was previously deployed

1 inactive deployment
pr-comment — 4b8166ca Deployed Nov 4, 2026 by sleepytanya via Publish prerelease / Publish prerelease #172657
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

risk:high team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants