You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add and use Accounts API for Account balance calls (#4781)
## Explanation
This integrates the Accounts API (Multi-chain Balances Endpoint) to help
alleviate expensive RPC calls made by Token Detection.
The aim is to attempt to use the Accounts API when making balance calls
for expensive functionality (e.g. Token Detection)
<details><summary>Code Walkthrough</summary>
https://www.loom.com/share/e540cae3967746b0aca343d4c59d0af6?sid=69c2556c-96d3-451e-bd67-7d03f32fff03
</details>
## References
#4743https://consensyssoftware.atlassian.net/browse/NOTIFY-1179
## Changelog
<!--
If you're making any consumer-facing changes, list those changes here as
if you were updating a changelog, using the template below as a guide.
(CATEGORY is one of BREAKING, ADDED, CHANGED, DEPRECATED, REMOVED, or
FIXED. For security-related issues, follow the Security Advisory
process.)
Please take care to name the exact pieces of the API you've added or
changed (e.g. types, interfaces, functions, or methods).
If there are any breaking changes, make sure to offer a solution for
consumers to follow once they upgrade to the changes.
Finally, if you're only making changes to development scripts or tests,
you may replace the template below with "None".
-->
### `@metamask/assets-controllers`
- **ADDED**: MultiChain Accounts Service
- **ADDED**: `fetchSupportedNetworks()` function to dynamically fetch
supported networks by the Accounts API
- **ADDED**: `fetchMultiChainBalances()` function to get balances for a
given address
- **ADDED**: `useAccountsAPI` to the `TokenDetectionController`
constructor to enable/disable the accounts API feature.
- **ADDED**: `#addDetectedTokensViaAPI()` private method in
`TokenDetectionController` to get detected tokens via the Accounts API.
- **CHANGED**: `detectTokens()` method in `TokenDetectionController` to
try AccountsAPI first before using RPC flow to detect tokens.
## Checklist
- [x] I've updated the test suite for new or updated code as appropriate
- [x] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [x] I've highlighted breaking changes using the "BREAKING" category
above as appropriate
- [x] I've prepared draft pull requests for clients and consumer
packages to resolve any breaking changes
0 commit comments