fix(keyring-controller): force state update after clearing keyrings #7758
+7
−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
If a keyring using a specific SRP gets cleared and re-created (during restore flow), there's a brief time window where the keyring is effectively destroyed and re-recreated, though, the
AccountsControllerwill not see this state update and won't mirror back this change forInternalAccounts.This could lead to inconsistencies if the keyring is cleared but cannot be re-created for some reason.
Also, this prevents the
AccountsControllerto automatically re-wrap EVM accounts (which are still not using theKeyringAccountobject shape) properly and might be using an old account representation (we use this mechanism to sometimes migrate account objects automatically, and that would by-pass this migration in some very edge-cases).References
TODO
Checklist