Skip to content

[DON'T MERGE] Add basic price-api package to fetch historical prices#8393

Draft
mcmire wants to merge 1 commit intomainfrom
price-api
Draft

[DON'T MERGE] Add basic price-api package to fetch historical prices#8393
mcmire wants to merge 1 commit intomainfrom
price-api

Conversation

@mcmire
Copy link
Copy Markdown
Contributor

@mcmire mcmire commented Apr 7, 2026

Explanation

This PR demonstrates what a data service class to hit the Price API would look like. It's designed to fetch historical prices to support the graph when viewing a token in the extension. For more, see: MetaMask/metamask-extension#41522

Please note this PR is only intended for demo purposes. For a living example of a data service, including tests, please see: https://github.com/MetaMask/core/blob/main/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.ts

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

mcmire added a commit to MetaMask/metamask-extension that referenced this pull request Apr 7, 2026
This PR demonstrates how `useQuery` from `@metamask/react-data-query`
can be used to fetch data through a data service, which makes a
request, instead of making a request directly in the UI.

Also see: MetaMask/core#8393
@mcmire
Copy link
Copy Markdown
Contributor Author

mcmire commented Apr 7, 2026

@metamaskbot publish-previews

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@7.0.0-preview-f1592e178
@metamask-previews/accounts-controller@37.2.0-preview-f1592e178
@metamask-previews/address-book-controller@7.1.1-preview-f1592e178
@metamask-previews/ai-controllers@0.6.3-preview-f1592e178
@metamask-previews/analytics-controller@1.0.1-preview-f1592e178
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-f1592e178
@metamask-previews/announcement-controller@8.1.0-preview-f1592e178
@metamask-previews/app-metadata-controller@2.0.1-preview-f1592e178
@metamask-previews/approval-controller@9.0.1-preview-f1592e178
@metamask-previews/assets-controller@4.0.0-preview-f1592e178
@metamask-previews/assets-controllers@103.1.1-preview-f1592e178
@metamask-previews/base-controller@9.0.1-preview-f1592e178
@metamask-previews/base-data-service@0.1.1-preview-f1592e178
@metamask-previews/bridge-controller@70.0.1-preview-f1592e178
@metamask-previews/bridge-status-controller@70.0.5-preview-f1592e178
@metamask-previews/build-utils@3.0.4-preview-f1592e178
@metamask-previews/chain-agnostic-permission@1.5.0-preview-f1592e178
@metamask-previews/claims-controller@0.5.0-preview-f1592e178
@metamask-previews/client-controller@1.0.1-preview-f1592e178
@metamask-previews/compliance-controller@2.0.0-preview-f1592e178
@metamask-previews/composable-controller@12.0.1-preview-f1592e178
@metamask-previews/config-registry-controller@0.2.0-preview-f1592e178
@metamask-previews/connectivity-controller@0.2.0-preview-f1592e178
@metamask-previews/controller-utils@11.20.0-preview-f1592e178
@metamask-previews/core-backend@6.2.1-preview-f1592e178
@metamask-previews/delegation-controller@2.1.0-preview-f1592e178
@metamask-previews/earn-controller@11.2.1-preview-f1592e178
@metamask-previews/eip-5792-middleware@3.0.3-preview-f1592e178
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-f1592e178
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-f1592e178
@metamask-previews/ens-controller@19.1.1-preview-f1592e178
@metamask-previews/eth-block-tracker@15.0.1-preview-f1592e178
@metamask-previews/eth-json-rpc-middleware@23.1.1-preview-f1592e178
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-f1592e178
@metamask-previews/foundryup@1.0.1-preview-f1592e178
@metamask-previews/gas-fee-controller@26.1.1-preview-f1592e178
@metamask-previews/gator-permissions-controller@3.0.1-preview-f1592e178
@metamask-previews/geolocation-controller@0.1.2-preview-f1592e178
@metamask-previews/json-rpc-engine@10.2.4-preview-f1592e178
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-f1592e178
@metamask-previews/keyring-controller@25.2.0-preview-f1592e178
@metamask-previews/logging-controller@8.0.1-preview-f1592e178
@metamask-previews/message-manager@14.1.1-preview-f1592e178
@metamask-previews/messenger@1.1.1-preview-f1592e178
@metamask-previews/messenger-cli@0.1.0-preview-f1592e178
@metamask-previews/money-account-controller@0.1.0-preview-f1592e178
@metamask-previews/multichain-account-service@8.0.1-preview-f1592e178
@metamask-previews/multichain-api-middleware@2.0.0-preview-f1592e178
@metamask-previews/multichain-network-controller@3.0.6-preview-f1592e178
@metamask-previews/multichain-transactions-controller@7.0.4-preview-f1592e178
@metamask-previews/name-controller@9.1.1-preview-f1592e178
@metamask-previews/network-controller@30.0.1-preview-f1592e178
@metamask-previews/network-enablement-controller@5.0.2-preview-f1592e178
@metamask-previews/notification-services-controller@23.0.1-preview-f1592e178
@metamask-previews/permission-controller@12.3.0-preview-f1592e178
@metamask-previews/permission-log-controller@5.1.0-preview-f1592e178
@metamask-previews/perps-controller@2.0.0-preview-f1592e178
@metamask-previews/phishing-controller@17.1.1-preview-f1592e178
@metamask-previews/polling-controller@16.0.4-preview-f1592e178
@metamask-previews/preferences-controller@23.1.0-preview-f1592e178
@metamask-previews/price-api@0.0.0-preview-f1592e178
@metamask-previews/profile-metrics-controller@3.1.3-preview-f1592e178
@metamask-previews/profile-sync-controller@28.0.2-preview-f1592e178
@metamask-previews/ramps-controller@13.0.0-preview-f1592e178
@metamask-previews/rate-limit-controller@7.0.1-preview-f1592e178
@metamask-previews/react-data-query@0.2.0-preview-f1592e178
@metamask-previews/remote-feature-flag-controller@4.2.0-preview-f1592e178
@metamask-previews/sample-controllers@4.0.4-preview-f1592e178
@metamask-previews/seedless-onboarding-controller@9.1.0-preview-f1592e178
@metamask-previews/selected-network-controller@26.1.0-preview-f1592e178
@metamask-previews/shield-controller@5.1.1-preview-f1592e178
@metamask-previews/signature-controller@39.1.2-preview-f1592e178
@metamask-previews/social-controllers@0.1.0-preview-f1592e178
@metamask-previews/storage-service@1.0.1-preview-f1592e178
@metamask-previews/subscription-controller@6.1.2-preview-f1592e178
@metamask-previews/transaction-controller@64.0.0-preview-f1592e178
@metamask-previews/transaction-pay-controller@19.0.3-preview-f1592e178
@metamask-previews/user-operation-controller@41.2.0-preview-f1592e178

This PR demonstrates what a data service class to hit the Price API
would look like.

It's designed to fetch historical prices to support the graph when
viewing a token in the extension.
mcmire added a commit to MetaMask/metamask-extension that referenced this pull request Apr 7, 2026
This PR demonstrates how `useQuery` from `@metamask/react-data-query`
can be used to fetch data through a data service, which makes a
request, instead of making a request directly in the UI.

Also see: MetaMask/core#8393
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