feat: sync queue to UserProfileController
#7196
Draft
+604
−39
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.
Depends on:
@metamask/user-profile-controllerpackage #7194Explanation
This PR adds a queue to
UserProfileController, and a polling mechanism to process the queue.The queue is updated in the following scenarios:
firstSyncCompletedisfalse(i.e., first sync has not been completed yet)At each polling interval, if there are items in the queue, the controller will attempt to call
UserProfileServicethrough the messenger to sync addresses in batches, grouped by their entropy source. Accounts with no entropy source will be batched together.The queue is persisted to storage, so that if the app is closed and reopened, the sync process can continue from where it left off. If one of the batch syncs fails, the same batch will be retried in the next interval.
References
Checklist