Skip to content

Conversation

@dawnseeker8
Copy link
Contributor

@dawnseeker8 dawnseeker8 commented Dec 23, 2025

This is draft PR to fake the backend returned to provide rwaData metadata to mobile frontend.

Explanation

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Introduces optional rwaData across token types and ensures it is fetched and stored throughout the assets stack.

  • Fetch layer: appends includeRwaData=true to token-service URLs (/tokens, /token, /tokens/search, /v3/tokens/trending), refactors search URL helper, and adjusts headers handling
  • Models/controllers: extends TokenListToken, Token (rates), and asset selector items to include rwaData; plumbs rwaData through TokensController (add/import/detected), TokenDetectionController (RPC/WS/polling flows), and caches in TokenListController
  • Validation: bridge validators schema updated to accept rwaData
  • Tests: updated to expect new query params and data shapes; minor fixture tweaks

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

@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-42084fe4",
  "@metamask-previews/accounts-controller": "35.0.0-preview-42084fe4",
  "@metamask-previews/address-book-controller": "7.0.1-preview-42084fe4",
  "@metamask-previews/analytics-controller": "1.0.0-preview-42084fe4",
  "@metamask-previews/announcement-controller": "8.0.0-preview-42084fe4",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-42084fe4",
  "@metamask-previews/approval-controller": "8.0.0-preview-42084fe4",
  "@metamask-previews/assets-controllers": "94.1.0-preview-42084fe4",
  "@metamask-previews/base-controller": "9.0.0-preview-42084fe4",
  "@metamask-previews/bridge-controller": "64.2.0-preview-42084fe4",
  "@metamask-previews/bridge-status-controller": "64.2.0-preview-42084fe4",
  "@metamask-previews/build-utils": "3.0.4-preview-42084fe4",
  "@metamask-previews/chain-agnostic-permission": "1.3.0-preview-42084fe4",
  "@metamask-previews/claims-controller": "0.3.1-preview-42084fe4",
  "@metamask-previews/composable-controller": "12.0.0-preview-42084fe4",
  "@metamask-previews/controller-utils": "11.17.0-preview-42084fe4",
  "@metamask-previews/core-backend": "5.0.0-preview-42084fe4",
  "@metamask-previews/delegation-controller": "2.0.0-preview-42084fe4",
  "@metamask-previews/earn-controller": "11.0.0-preview-42084fe4",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-42084fe4",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-42084fe4",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-42084fe4",
  "@metamask-previews/ens-controller": "19.0.0-preview-42084fe4",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-42084fe4",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-42084fe4",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-42084fe4",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-42084fe4",
  "@metamask-previews/foundryup": "1.0.1-preview-42084fe4",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-42084fe4",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-42084fe4",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-42084fe4",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-42084fe4",
  "@metamask-previews/keyring-controller": "25.0.0-preview-42084fe4",
  "@metamask-previews/logging-controller": "7.0.1-preview-42084fe4",
  "@metamask-previews/message-manager": "14.1.0-preview-42084fe4",
  "@metamask-previews/messenger": "0.3.0-preview-42084fe4",
  "@metamask-previews/multichain-account-service": "4.1.0-preview-42084fe4",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-42084fe4",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-42084fe4",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-42084fe4",
  "@metamask-previews/name-controller": "9.0.0-preview-42084fe4",
  "@metamask-previews/network-controller": "27.1.0-preview-42084fe4",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-42084fe4",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-42084fe4",
  "@metamask-previews/permission-controller": "12.1.1-preview-42084fe4",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-42084fe4",
  "@metamask-previews/phishing-controller": "16.1.0-preview-42084fe4",
  "@metamask-previews/polling-controller": "16.0.0-preview-42084fe4",
  "@metamask-previews/preferences-controller": "22.0.0-preview-42084fe4",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-42084fe4",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-42084fe4",
  "@metamask-previews/ramps-controller": "2.0.0-preview-42084fe4",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-42084fe4",
  "@metamask-previews/remote-feature-flag-controller": "3.1.0-preview-42084fe4",
  "@metamask-previews/sample-controllers": "4.0.0-preview-42084fe4",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-42084fe4",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-42084fe4",
  "@metamask-previews/shield-controller": "4.0.0-preview-42084fe4",
  "@metamask-previews/signature-controller": "38.0.0-preview-42084fe4",
  "@metamask-previews/storage-service": "0.0.1-preview-42084fe4",
  "@metamask-previews/subscription-controller": "5.4.0-preview-42084fe4",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-42084fe4",
  "@metamask-previews/transaction-controller": "62.7.0-preview-42084fe4",
  "@metamask-previews/transaction-pay-controller": "10.5.0-preview-42084fe4",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-42084fe4"
}

@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Jan 8, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-92768ace",
  "@metamask-previews/accounts-controller": "35.0.0-preview-92768ace",
  "@metamask-previews/address-book-controller": "7.0.1-preview-92768ace",
  "@metamask-previews/analytics-controller": "1.0.0-preview-92768ace",
  "@metamask-previews/announcement-controller": "8.0.0-preview-92768ace",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-92768ace",
  "@metamask-previews/approval-controller": "8.0.0-preview-92768ace",
  "@metamask-previews/assets-controllers": "94.1.0-preview-92768ace",
  "@metamask-previews/base-controller": "9.0.0-preview-92768ace",
  "@metamask-previews/bridge-controller": "64.2.0-preview-92768ace",
  "@metamask-previews/bridge-status-controller": "64.2.0-preview-92768ace",
  "@metamask-previews/build-utils": "3.0.4-preview-92768ace",
  "@metamask-previews/chain-agnostic-permission": "1.3.0-preview-92768ace",
  "@metamask-previews/claims-controller": "0.4.0-preview-92768ace",
  "@metamask-previews/composable-controller": "12.0.0-preview-92768ace",
  "@metamask-previews/controller-utils": "11.17.0-preview-92768ace",
  "@metamask-previews/core-backend": "5.0.0-preview-92768ace",
  "@metamask-previews/delegation-controller": "2.0.0-preview-92768ace",
  "@metamask-previews/earn-controller": "11.0.0-preview-92768ace",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-92768ace",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-92768ace",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-92768ace",
  "@metamask-previews/ens-controller": "19.0.0-preview-92768ace",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-92768ace",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-92768ace",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-92768ace",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-92768ace",
  "@metamask-previews/foundryup": "1.0.1-preview-92768ace",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-92768ace",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-92768ace",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-92768ace",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-92768ace",
  "@metamask-previews/keyring-controller": "25.0.0-preview-92768ace",
  "@metamask-previews/logging-controller": "7.0.1-preview-92768ace",
  "@metamask-previews/message-manager": "14.1.0-preview-92768ace",
  "@metamask-previews/messenger": "0.3.0-preview-92768ace",
  "@metamask-previews/multichain-account-service": "4.1.0-preview-92768ace",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-92768ace",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-92768ace",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-92768ace",
  "@metamask-previews/name-controller": "9.0.0-preview-92768ace",
  "@metamask-previews/network-controller": "27.1.0-preview-92768ace",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-92768ace",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-92768ace",
  "@metamask-previews/permission-controller": "12.2.0-preview-92768ace",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-92768ace",
  "@metamask-previews/phishing-controller": "16.1.0-preview-92768ace",
  "@metamask-previews/polling-controller": "16.0.0-preview-92768ace",
  "@metamask-previews/preferences-controller": "22.0.0-preview-92768ace",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-92768ace",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-92768ace",
  "@metamask-previews/ramps-controller": "2.0.0-preview-92768ace",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-92768ace",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-92768ace",
  "@metamask-previews/sample-controllers": "4.0.0-preview-92768ace",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-92768ace",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-92768ace",
  "@metamask-previews/shield-controller": "4.1.0-preview-92768ace",
  "@metamask-previews/signature-controller": "38.0.0-preview-92768ace",
  "@metamask-previews/storage-service": "0.0.1-preview-92768ace",
  "@metamask-previews/subscription-controller": "5.4.0-preview-92768ace",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-92768ace",
  "@metamask-previews/transaction-controller": "62.7.0-preview-92768ace",
  "@metamask-previews/transaction-pay-controller": "10.5.0-preview-92768ace",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-92768ace"
}

@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Jan 8, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-2f42013a",
  "@metamask-previews/accounts-controller": "35.0.0-preview-2f42013a",
  "@metamask-previews/address-book-controller": "7.0.1-preview-2f42013a",
  "@metamask-previews/analytics-controller": "1.0.0-preview-2f42013a",
  "@metamask-previews/announcement-controller": "8.0.0-preview-2f42013a",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-2f42013a",
  "@metamask-previews/approval-controller": "8.0.0-preview-2f42013a",
  "@metamask-previews/assets-controllers": "94.1.0-preview-2f42013a",
  "@metamask-previews/base-controller": "9.0.0-preview-2f42013a",
  "@metamask-previews/bridge-controller": "64.2.0-preview-2f42013a",
  "@metamask-previews/bridge-status-controller": "64.2.0-preview-2f42013a",
  "@metamask-previews/build-utils": "3.0.4-preview-2f42013a",
  "@metamask-previews/chain-agnostic-permission": "1.3.0-preview-2f42013a",
  "@metamask-previews/claims-controller": "0.4.0-preview-2f42013a",
  "@metamask-previews/composable-controller": "12.0.0-preview-2f42013a",
  "@metamask-previews/controller-utils": "11.17.0-preview-2f42013a",
  "@metamask-previews/core-backend": "5.0.0-preview-2f42013a",
  "@metamask-previews/delegation-controller": "2.0.0-preview-2f42013a",
  "@metamask-previews/earn-controller": "11.0.0-preview-2f42013a",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-2f42013a",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-2f42013a",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-2f42013a",
  "@metamask-previews/ens-controller": "19.0.0-preview-2f42013a",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-2f42013a",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-2f42013a",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-2f42013a",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-2f42013a",
  "@metamask-previews/foundryup": "1.0.1-preview-2f42013a",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-2f42013a",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-2f42013a",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-2f42013a",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-2f42013a",
  "@metamask-previews/keyring-controller": "25.0.0-preview-2f42013a",
  "@metamask-previews/logging-controller": "7.0.1-preview-2f42013a",
  "@metamask-previews/message-manager": "14.1.0-preview-2f42013a",
  "@metamask-previews/messenger": "0.3.0-preview-2f42013a",
  "@metamask-previews/multichain-account-service": "4.1.0-preview-2f42013a",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-2f42013a",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-2f42013a",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-2f42013a",
  "@metamask-previews/name-controller": "9.0.0-preview-2f42013a",
  "@metamask-previews/network-controller": "27.1.0-preview-2f42013a",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-2f42013a",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-2f42013a",
  "@metamask-previews/permission-controller": "12.2.0-preview-2f42013a",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-2f42013a",
  "@metamask-previews/phishing-controller": "16.1.0-preview-2f42013a",
  "@metamask-previews/polling-controller": "16.0.0-preview-2f42013a",
  "@metamask-previews/preferences-controller": "22.0.0-preview-2f42013a",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-2f42013a",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-2f42013a",
  "@metamask-previews/ramps-controller": "2.0.0-preview-2f42013a",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-2f42013a",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-2f42013a",
  "@metamask-previews/sample-controllers": "4.0.0-preview-2f42013a",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-2f42013a",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-2f42013a",
  "@metamask-previews/shield-controller": "4.1.0-preview-2f42013a",
  "@metamask-previews/signature-controller": "38.0.0-preview-2f42013a",
  "@metamask-previews/storage-service": "0.0.1-preview-2f42013a",
  "@metamask-previews/subscription-controller": "5.4.0-preview-2f42013a",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-2f42013a",
  "@metamask-previews/transaction-controller": "62.7.0-preview-2f42013a",
  "@metamask-previews/transaction-pay-controller": "10.5.0-preview-2f42013a",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-2f42013a"
}

@dawnseeker8 dawnseeker8 marked this pull request as ready for review January 9, 2026 07:54
@dawnseeker8 dawnseeker8 requested review from a team as code owners January 9, 2026 07:54
},
"packages/assets-controllers/src/TokenListController.ts": {
"@typescript-eslint/explicit-function-return-type": {
"count": 6
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This change will fix the lint complaining about --prune-suppressions paratmeter, but when we put that parameter to run yarn lint it still complain. the only way is to change the count here to pass the error, if your guys know some better way to fix this issue, i am happy to change it back here.

(elm) =>
Boolean(elm.aggregators.includes('lineaTeam')) ||
elm.aggregators.length >= 3,
elm.aggregators.includes('lineaTeam') ?? elm.aggregators.length >= 3,
Copy link

Choose a reason for hiding this comment

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

Nullish coalescing breaks token filter logic

High Severity

The filter logic for Linea Mainnet tokens changed from || (logical OR) to ?? (nullish coalescing). The includes() method always returns a boolean (true or false), never null or undefined. Since ?? only evaluates the right-hand side when the left is null/undefined, the condition elm.aggregators.length >= 3 will never be evaluated. Tokens without 'lineaTeam' but with 3+ aggregators will be incorrectly filtered out, breaking the intended behavior documented in the changelog as "lineaTeam aggregator OR more than 3 aggregators".

Fix in Cursor Fix in Web

minMarketCap,
maxMarketCap,
excludeLabels,
includeRwaData,
Copy link

Choose a reason for hiding this comment

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

API parameter documented but silently ignored

Medium Severity

The getTrendingTokens function's type definition still includes includeRwaData?: boolean at line 281, and the CHANGELOG documents this as an optional parameter. However, includeRwaData is no longer destructured from the function parameters (lines 263-271), meaning any value passed by callers is silently ignored. The parameter is now hardcoded to 'true' at line 109. Callers expecting to control RWA data inclusion will experience unexpected behavior.

Additional Locations (1)

Fix in Cursor Fix in Web

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants