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

CHANGELOG entry: fetch the rwaData from token API endpoints and then pass to frontend to render.

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 end-to-end support for Real-World Asset (RWA) metadata in token flows.

  • Adds rwaData to Token and propagates it in TokenDetectionController, TokensController (add/import/detected), TokenListController items, and token selectors
  • Updates token-service to request includeRwaData=true for metadata, search, and trending endpoints; refactors search URL builder, defaults RWA inclusion for trending, and adjusts fetch headers handling; tightens Linea token filtering and adds tests
  • Updates tests across controllers/services to expect includeRwaData query params and validate behavior; adds RWA schema to bridge validators
  • Minor TypeScript return type annotations in TokenListController methods

Written by Cursor Bugbot for commit 8a4f4ea. 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.

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

): Promise<{ count: number; data: TokenSearchItem[] }> {
const tokenSearchURL = getTokenSearchURL({
{ limit = 10, includeMarketData = false } = {},
): Promise<{ count: number; data: unknown[] }> {
Copy link

Choose a reason for hiding this comment

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

Return type loses type safety with unknown[]

Medium Severity

The searchTokens function return type was changed from Promise<{ count: number; data: TokenSearchItem[] }> to Promise<{ count: number; data: unknown[] }>. This is a type regression that removes type safety for callers. Code that consumes the search results will lose access to typed properties like assetId, name, symbol, decimals, and rwaData without explicit type assertions.

Fix in Cursor Fix in Web

return result.filter(
(elm) =>
Boolean(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.

Inconsistent rwaData type definitions cause mismatch

Medium Severity

The TokenRwaData type in token-service.ts defines all properties as optional (including nested market and nextPause objects), while the inline rwaData types in TokenListToken and Token define nested properties as required. When API data with missing fields is assigned to these stricter types, accessing the supposedly-required nested properties could cause runtime errors.

Additional Locations (2)

Fix in Cursor Fix in Web

@dawnseeker8
Copy link
Contributor Author

Due to AssetPicker feature will change the format of rwaData, discussed with team, i convert this PR back to draft.

@dawnseeker8 dawnseeker8 marked this pull request as draft January 9, 2026 09:46
end: string(),
}),
}),
),
Copy link

Choose a reason for hiding this comment

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

Type mismatch causes validation failures for partial rwaData

Medium Severity

The TokenRwaData type in token-service.ts defines all inner fields as optional (market?, ticker?, instrumentType?, nextPause? with optional nested fields). However, the rwaData type added to TokenListToken, Token, and the bridge validator all require these inner fields to be present when rwaData exists. If the backend returns partial rwaData (e.g., only ticker without market), it would match TokenRwaData but fail validation and cause runtime errors when accessing missing required properties like rwaData.market.nextOpen.

Additional Locations (2)

Fix in Cursor Fix in Web

@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

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

@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

dawnseeker8 and others added 2 commits January 12, 2026 09:26
Updated the Token type definition in TokenRatesController to make the fields related to rwaData optional. This change enhances flexibility in handling token data structures.
@dawnseeker8 dawnseeker8 marked this pull request as ready for review January 12, 2026 02:08
@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

conversionRate: number;
}
| undefined;
rwaData?: TokenRwaData;
Copy link

Choose a reason for hiding this comment

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

rwaData not propagated from Token to Asset in selector

Medium Severity

The PR adds rwaData to the Asset type (line 88) and the Token type now includes rwaData, but the selectAllEvmAssets selector constructs asset objects without copying token.rwaData. This causes rwaData to be lost when tokens are converted to assets, making the field always undefined on selected assets even when the underlying token has valid rwaData. The asset construction at lines 307-330 needs to include rwaData: token.rwaData (or conditionally spread it).

Fix in Cursor Fix in Web

@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-8a4f4ea3",
  "@metamask-previews/accounts-controller": "35.0.0-preview-8a4f4ea3",
  "@metamask-previews/address-book-controller": "7.0.1-preview-8a4f4ea3",
  "@metamask-previews/analytics-controller": "1.0.0-preview-8a4f4ea3",
  "@metamask-previews/announcement-controller": "8.0.0-preview-8a4f4ea3",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-8a4f4ea3",
  "@metamask-previews/approval-controller": "8.0.0-preview-8a4f4ea3",
  "@metamask-previews/assets-controllers": "95.0.0-preview-8a4f4ea3",
  "@metamask-previews/base-controller": "9.0.0-preview-8a4f4ea3",
  "@metamask-previews/bridge-controller": "64.4.0-preview-8a4f4ea3",
  "@metamask-previews/bridge-status-controller": "64.4.1-preview-8a4f4ea3",
  "@metamask-previews/build-utils": "3.0.4-preview-8a4f4ea3",
  "@metamask-previews/chain-agnostic-permission": "1.4.0-preview-8a4f4ea3",
  "@metamask-previews/claims-controller": "0.4.1-preview-8a4f4ea3",
  "@metamask-previews/composable-controller": "12.0.0-preview-8a4f4ea3",
  "@metamask-previews/controller-utils": "11.18.0-preview-8a4f4ea3",
  "@metamask-previews/core-backend": "5.0.0-preview-8a4f4ea3",
  "@metamask-previews/delegation-controller": "2.0.0-preview-8a4f4ea3",
  "@metamask-previews/earn-controller": "11.0.0-preview-8a4f4ea3",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-8a4f4ea3",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-8a4f4ea3",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-8a4f4ea3",
  "@metamask-previews/ens-controller": "19.0.0-preview-8a4f4ea3",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-8a4f4ea3",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-8a4f4ea3",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-8a4f4ea3",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-8a4f4ea3",
  "@metamask-previews/foundryup": "1.0.1-preview-8a4f4ea3",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-8a4f4ea3",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-8a4f4ea3",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-8a4f4ea3",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-8a4f4ea3",
  "@metamask-previews/keyring-controller": "25.0.0-preview-8a4f4ea3",
  "@metamask-previews/logging-controller": "7.0.1-preview-8a4f4ea3",
  "@metamask-previews/message-manager": "14.1.0-preview-8a4f4ea3",
  "@metamask-previews/messenger": "0.3.0-preview-8a4f4ea3",
  "@metamask-previews/multichain-account-service": "5.0.0-preview-8a4f4ea3",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-8a4f4ea3",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-8a4f4ea3",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-8a4f4ea3",
  "@metamask-previews/name-controller": "9.0.0-preview-8a4f4ea3",
  "@metamask-previews/network-controller": "27.2.0-preview-8a4f4ea3",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-8a4f4ea3",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-8a4f4ea3",
  "@metamask-previews/permission-controller": "12.2.0-preview-8a4f4ea3",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-8a4f4ea3",
  "@metamask-previews/phishing-controller": "16.1.0-preview-8a4f4ea3",
  "@metamask-previews/polling-controller": "16.0.0-preview-8a4f4ea3",
  "@metamask-previews/preferences-controller": "22.0.0-preview-8a4f4ea3",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-8a4f4ea3",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-8a4f4ea3",
  "@metamask-previews/ramps-controller": "2.1.0-preview-8a4f4ea3",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-8a4f4ea3",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-8a4f4ea3",
  "@metamask-previews/sample-controllers": "4.0.0-preview-8a4f4ea3",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-8a4f4ea3",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-8a4f4ea3",
  "@metamask-previews/shield-controller": "4.1.0-preview-8a4f4ea3",
  "@metamask-previews/signature-controller": "38.0.0-preview-8a4f4ea3",
  "@metamask-previews/storage-service": "0.0.1-preview-8a4f4ea3",
  "@metamask-previews/subscription-controller": "5.4.0-preview-8a4f4ea3",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-8a4f4ea3",
  "@metamask-previews/transaction-controller": "62.8.0-preview-8a4f4ea3",
  "@metamask-previews/transaction-pay-controller": "10.6.0-preview-8a4f4ea3",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-8a4f4ea3"
}

@dawnseeker8 dawnseeker8 added enhancement New feature or request no-changelog labels Jan 12, 2026
@dawnseeker8
Copy link
Contributor Author

@metamaskbot publish-preview

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

Labels

enhancement New feature or request no-changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants