fix(assets-controller): seed native balances after account refresh#9388
Open
salimtb wants to merge 3 commits into
Open
fix(assets-controller): seed native balances after account refresh#9388salimtb wants to merge 3 commits into
salimtb wants to merge 3 commits into
Conversation
Zero-balancing for new accounts ran before getAssets on account-tree changes, so assetsBalance was often never populated for the new account. Seed native zero balances using the refreshed account list after the fetch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Zero-balancing for new accounts ran before getAssets on account-tree changes, so assetsBalance was often never populated for the new account. Seed native zero balances using the refreshed account list after the fetch.
assetsBalancefor newly added accounts on custom/RPC networks (e.g. DXC /eip155:50) whereassetsInfowas present but balances were not fetchedExplanation
References
Checklist
Note
Medium Risk
Changes several hot paths for balance refresh and adds a new messenger subscription that requires host wiring; impact is localized to assets state merging but affects RPC-only and custom networks where API paths may not populate balances.
Overview
Adds a dedicated
#fetchAccountBalancesViaRpcpath that runs RpcDataSource balance middleware after the normalgetAssetsrefresh and merges results into state, limited to chains RPC currently owns. This is wired into account group changes, new accounts on the account tree, newly enabled networks, EVM network picker switches, and a newAccountsController:selectedEvmAccountChangehandler for switching EVM addresses within the same group.The changelog notes that integrators must delegate
AccountsController:selectedEvmAccountChangeto the AssetsController messenger so in-group EVM switches refresh balances. Messenger allowed event types are aligned with*StateChangeEventnaming from related controllers.Reviewed by Cursor Bugbot for commit 01ed1a1. Bugbot is set up for automated code reviews on this repo. Configure here.