Skip to content

Conversation

@salimtb
Copy link
Contributor

@salimtb salimtb commented Jun 5, 2025

Explanation

This change introduces a new getErc20Balances service function within the TokenBalancesController. The goal is to provide a reusable and isolated utility to fetch ERC-20 token balances for a given address and token list.

The service is intended to be used internally by the controller or other consumers needing direct access to raw ERC-20 balances, while abstracting away Web3 calls and error handling.

References

Changelog

@metamask/assets-controllers

UPDATE: Created getErc20Balances function within TokenBalancesController to support fetching ERC-20 token balances for a given address and token list. This modular service simplifies balance retrieval logic and can be reused across different parts of the controller.

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, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

@salimtb salimtb changed the title feat: add getErc20Balances helper with unit tests in TokenBalancesCon… feat: add getErc20Balances helper TokenBalancesControllers Jun 5, 2025
@salimtb salimtb force-pushed the feat/token-balances-controller-get-balance branch from 32372f2 to 69122ec Compare June 5, 2025 09:51
@salimtb
Copy link
Contributor Author

salimtb commented Jun 5, 2025

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Jun 5, 2025

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

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "30.0.0-preview-69122ec",
  "@metamask-previews/address-book-controller": "6.1.0-preview-69122ec",
  "@metamask-previews/announcement-controller": "7.0.3-preview-69122ec",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-69122ec",
  "@metamask-previews/approval-controller": "7.1.3-preview-69122ec",
  "@metamask-previews/assets-controllers": "68.0.0-preview-69122ec",
  "@metamask-previews/base-controller": "8.0.1-preview-69122ec",
  "@metamask-previews/bridge-controller": "32.1.1-preview-69122ec",
  "@metamask-previews/bridge-status-controller": "29.1.0-preview-69122ec",
  "@metamask-previews/build-utils": "3.0.3-preview-69122ec",
  "@metamask-previews/chain-agnostic-permission": "0.7.0-preview-69122ec",
  "@metamask-previews/composable-controller": "11.0.0-preview-69122ec",
  "@metamask-previews/controller-utils": "11.9.0-preview-69122ec",
  "@metamask-previews/delegation-controller": "0.4.0-preview-69122ec",
  "@metamask-previews/earn-controller": "1.0.0-preview-69122ec",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-69122ec",
  "@metamask-previews/ens-controller": "16.0.0-preview-69122ec",
  "@metamask-previews/error-reporting-service": "1.0.0-preview-69122ec",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-69122ec",
  "@metamask-previews/foundryup": "1.0.0-preview-69122ec",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-69122ec",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-69122ec",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-69122ec",
  "@metamask-previews/keyring-controller": "22.0.1-preview-69122ec",
  "@metamask-previews/logging-controller": "6.0.4-preview-69122ec",
  "@metamask-previews/message-manager": "12.0.1-preview-69122ec",
  "@metamask-previews/multichain": "4.1.0-preview-69122ec",
  "@metamask-previews/multichain-api-middleware": "0.4.0-preview-69122ec",
  "@metamask-previews/multichain-network-controller": "0.8.0-preview-69122ec",
  "@metamask-previews/multichain-transactions-controller": "2.0.0-preview-69122ec",
  "@metamask-previews/name-controller": "8.0.3-preview-69122ec",
  "@metamask-previews/network-controller": "23.5.1-preview-69122ec",
  "@metamask-previews/notification-services-controller": "10.0.0-preview-69122ec",
  "@metamask-previews/permission-controller": "11.0.6-preview-69122ec",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-69122ec",
  "@metamask-previews/phishing-controller": "12.5.0-preview-69122ec",
  "@metamask-previews/polling-controller": "13.0.0-preview-69122ec",
  "@metamask-previews/preferences-controller": "18.1.0-preview-69122ec",
  "@metamask-previews/profile-sync-controller": "17.0.0-preview-69122ec",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-69122ec",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-69122ec",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-69122ec",
  "@metamask-previews/sample-controllers": "0.1.0-preview-69122ec",
  "@metamask-previews/seedless-onboarding-controller": "1.0.0-preview-69122ec",
  "@metamask-previews/selected-network-controller": "22.1.0-preview-69122ec",
  "@metamask-previews/signature-controller": "30.0.0-preview-69122ec",
  "@metamask-previews/token-search-discovery-controller": "3.2.0-preview-69122ec",
  "@metamask-previews/transaction-controller": "57.1.0-preview-69122ec",
  "@metamask-previews/user-operation-controller": "36.0.0-preview-69122ec"
}

@salimtb salimtb force-pushed the feat/token-balances-controller-get-balance branch from c93d287 to 2a93861 Compare June 6, 2025 12:07
@salimtb salimtb marked this pull request as ready for review June 6, 2025 12:12
@salimtb salimtb requested review from a team as code owners June 6, 2025 12:12
sahar-fehri
sahar-fehri previously approved these changes Jun 6, 2025
@salimtb salimtb dismissed stale reviews from Prithpal-Sooriya and sahar-fehri via c6c515c June 10, 2025 08:25
@salimtb salimtb force-pushed the feat/token-balances-controller-get-balance branch from 2a93861 to c6c515c Compare June 10, 2025 08:25
@salimtb salimtb requested a review from Prithpal-Sooriya June 10, 2025 08:44
@salimtb salimtb merged commit aeb7f8b into main Jun 10, 2025
219 checks passed
@salimtb salimtb deleted the feat/token-balances-controller-get-balance branch June 10, 2025 08:49
@mcmire mcmire mentioned this pull request Jun 13, 2025
4 tasks
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.

4 participants