fix: refresh balances immediately on keyring unlock #7585
Merged
+31
−0
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.
Explanation
Current state:
When the keyring is unlocked, the
AccountTrackerControllersets#isLocked = falsebut does not trigger a balance refresh. This means users have to wait for the next polling cycle before their account balances update after unlocking their wallet.Solution:
This PR adds a call to
refresh()when theKeyringController:unlockevent is received. This triggers an immediate balance refresh for all network clients, providing users with up-to-date balances as soon as they unlock their wallet.The implementation follows the same pattern used for other events that trigger refreshes, such as
selectedEvmAccountChangeandNetworkController:networkAdded.References
Checklist
Note
Ensures balances update instantly after unlocking, instead of waiting for the next poll.
KeyringController:unlock,AccountTrackerControllernow callsrefresh()for allnetworkClientIdsand logs errorsCHANGELOG.mdunder Unreleased to document the behavior changeWritten by Cursor Bugbot for commit 4fa976b. This will update automatically on new commits. Configure here.