Skip to content

chore: extends digest service and ctrl to accept the perps asset ticker#8182

Open
zone-live wants to merge 2 commits intomainfrom
TSA-255-adds-market-insights-to-perps
Open

chore: extends digest service and ctrl to accept the perps asset ticker#8182
zone-live wants to merge 2 commits intomainfrom
TSA-255-adds-market-insights-to-perps

Conversation

@zone-live
Copy link
Contributor

@zone-live zone-live commented Mar 11, 2026

Explanation

Extends AiDigestService.searchDigest and AiDigestController.fetchMarketInsights to accept any string identifier rather than only CAIP-19 asset types. The CAIP-19 IDs continue to use the caipAssetType query parameter, while all other strings (perps market symbols like ETH) automatically use the new hlPerpsMarket query parameter introduced by the backend. This avoids the need for a separate method.

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

Medium Risk
Changes the searchDigest request semantics and controller validation, which may affect consumers expecting CAIP-19-only inputs and could alter cache keys/state shape for persisted data. Risk is limited to AI digest fetching/caching behavior and associated API calls.

Overview
Extends market-insights digest lookup to accept either CAIP-19 asset types or arbitrary identifiers (e.g. perps symbols like ETH). AiDigestService.searchDigest now auto-selects the backend query param (caipAssetType vs new hlPerpsMarket) based on isCaipAssetType, and AiDigestController.fetchMarketInsights drops strict CAIP-19 validation in favor of rejecting only empty identifiers.

Renames the cached entry field/param from caip19Id to assetIdentifier, updates the error constant to INVALID_ASSET_IDENTIFIER, and adds/adjusts tests to cover perps URL encoding and independent caching for CAIP-19 vs perps identifiers.

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

@zone-live zone-live requested review from a team as code owners March 11, 2026 15:44
@zone-live
Copy link
Contributor Author

@metamaskbot publish-previews

@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": "5.0.1-preview-566b7c611",
  "@metamask-previews/accounts-controller": "37.0.0-preview-566b7c611",
  "@metamask-previews/address-book-controller": "7.0.1-preview-566b7c611",
  "@metamask-previews/ai-controllers": "0.2.0-preview-566b7c611",
  "@metamask-previews/analytics-controller": "1.0.0-preview-566b7c611",
  "@metamask-previews/analytics-data-regulation-controller": "0.0.0-preview-566b7c611",
  "@metamask-previews/announcement-controller": "8.0.0-preview-566b7c611",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-566b7c611",
  "@metamask-previews/approval-controller": "8.0.0-preview-566b7c611",
  "@metamask-previews/assets-controller": "2.3.0-preview-566b7c611",
  "@metamask-previews/assets-controllers": "100.2.1-preview-566b7c611",
  "@metamask-previews/base-controller": "9.0.0-preview-566b7c611",
  "@metamask-previews/base-data-service": "0.0.0-preview-566b7c611",
  "@metamask-previews/bridge-controller": "69.1.0-preview-566b7c611",
  "@metamask-previews/bridge-status-controller": "68.1.0-preview-566b7c611",
  "@metamask-previews/build-utils": "3.0.4-preview-566b7c611",
  "@metamask-previews/chain-agnostic-permission": "1.4.0-preview-566b7c611",
  "@metamask-previews/claims-controller": "0.4.3-preview-566b7c611",
  "@metamask-previews/client-controller": "1.0.0-preview-566b7c611",
  "@metamask-previews/compliance-controller": "1.0.1-preview-566b7c611",
  "@metamask-previews/composable-controller": "12.0.0-preview-566b7c611",
  "@metamask-previews/config-registry-controller": "0.1.1-preview-566b7c611",
  "@metamask-previews/connectivity-controller": "0.1.0-preview-566b7c611",
  "@metamask-previews/controller-utils": "11.19.0-preview-566b7c611",
  "@metamask-previews/core-backend": "6.1.1-preview-566b7c611",
  "@metamask-previews/delegation-controller": "2.0.2-preview-566b7c611",
  "@metamask-previews/earn-controller": "11.1.2-preview-566b7c611",
  "@metamask-previews/eip-5792-middleware": "3.0.0-preview-566b7c611",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-566b7c611",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-566b7c611",
  "@metamask-previews/ens-controller": "19.0.3-preview-566b7c611",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-566b7c611",
  "@metamask-previews/eth-block-tracker": "15.0.1-preview-566b7c611",
  "@metamask-previews/eth-json-rpc-middleware": "23.1.0-preview-566b7c611",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-566b7c611",
  "@metamask-previews/foundryup": "1.0.1-preview-566b7c611",
  "@metamask-previews/gas-fee-controller": "26.0.3-preview-566b7c611",
  "@metamask-previews/gator-permissions-controller": "2.1.0-preview-566b7c611",
  "@metamask-previews/geolocation-controller": "0.1.1-preview-566b7c611",
  "@metamask-previews/json-rpc-engine": "10.2.3-preview-566b7c611",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-566b7c611",
  "@metamask-previews/keyring-controller": "25.1.0-preview-566b7c611",
  "@metamask-previews/logging-controller": "7.0.1-preview-566b7c611",
  "@metamask-previews/message-manager": "14.1.0-preview-566b7c611",
  "@metamask-previews/messenger": "0.3.0-preview-566b7c611",
  "@metamask-previews/multichain-account-service": "7.1.0-preview-566b7c611",
  "@metamask-previews/multichain-api-middleware": "1.2.7-preview-566b7c611",
  "@metamask-previews/multichain-network-controller": "3.0.5-preview-566b7c611",
  "@metamask-previews/multichain-transactions-controller": "7.0.2-preview-566b7c611",
  "@metamask-previews/name-controller": "9.0.0-preview-566b7c611",
  "@metamask-previews/network-controller": "30.0.0-preview-566b7c611",
  "@metamask-previews/network-enablement-controller": "4.2.0-preview-566b7c611",
  "@metamask-previews/notification-services-controller": "22.1.0-preview-566b7c611",
  "@metamask-previews/permission-controller": "12.2.0-preview-566b7c611",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-566b7c611",
  "@metamask-previews/perps-controller": "1.0.1-preview-566b7c611",
  "@metamask-previews/phishing-controller": "16.3.0-preview-566b7c611",
  "@metamask-previews/polling-controller": "16.0.3-preview-566b7c611",
  "@metamask-previews/preferences-controller": "23.0.0-preview-566b7c611",
  "@metamask-previews/profile-metrics-controller": "3.0.3-preview-566b7c611",
  "@metamask-previews/profile-sync-controller": "28.0.0-preview-566b7c611",
  "@metamask-previews/ramps-controller": "12.0.0-preview-566b7c611",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-566b7c611",
  "@metamask-previews/remote-feature-flag-controller": "4.1.0-preview-566b7c611",
  "@metamask-previews/sample-controllers": "4.0.3-preview-566b7c611",
  "@metamask-previews/seedless-onboarding-controller": "8.1.0-preview-566b7c611",
  "@metamask-previews/selected-network-controller": "26.0.3-preview-566b7c611",
  "@metamask-previews/shield-controller": "5.0.1-preview-566b7c611",
  "@metamask-previews/signature-controller": "39.0.5-preview-566b7c611",
  "@metamask-previews/storage-service": "1.0.0-preview-566b7c611",
  "@metamask-previews/subscription-controller": "6.0.1-preview-566b7c611",
  "@metamask-previews/transaction-controller": "62.21.0-preview-566b7c611",
  "@metamask-previews/transaction-pay-controller": "16.4.1-preview-566b7c611",
  "@metamask-previews/user-operation-controller": "41.0.3-preview-566b7c611"
}

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.

1 participant