Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: persist isAccountSyncingReadyToBeDispatched statue value #5147

Merged

Conversation

mathieuartu
Copy link
Contributor

@mathieuartu mathieuartu commented Jan 14, 2025

Explanation

This PR changes the isAccountSyncingReadyToBeDispatched state value so it is persisted.

References

Changelog

@metamask/profile-sync-controller

  • CHANGED: isAccountSyncingReadyToBeDispatched state value is now persisted

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've highlighted breaking changes using the "BREAKING" category above as appropriate
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

@mathieuartu mathieuartu self-assigned this Jan 14, 2025
@mathieuartu mathieuartu added the team-identity Identity Team changes. https://github.com/orgs/MetaMask/teams/identity label Jan 14, 2025
@mathieuartu
Copy link
Contributor Author

@metamaskbot publish-preview

Copy link
Contributor

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "21.0.0-preview-ca1f35f",
  "@metamask-previews/address-book-controller": "6.0.2-preview-ca1f35f",
  "@metamask-previews/announcement-controller": "7.0.2-preview-ca1f35f",
  "@metamask-previews/approval-controller": "7.1.2-preview-ca1f35f",
  "@metamask-previews/assets-controllers": "46.0.0-preview-ca1f35f",
  "@metamask-previews/base-controller": "7.1.1-preview-ca1f35f",
  "@metamask-previews/build-utils": "3.0.2-preview-ca1f35f",
  "@metamask-previews/composable-controller": "10.0.0-preview-ca1f35f",
  "@metamask-previews/controller-utils": "11.4.5-preview-ca1f35f",
  "@metamask-previews/ens-controller": "15.0.1-preview-ca1f35f",
  "@metamask-previews/eth-json-rpc-provider": "4.1.7-preview-ca1f35f",
  "@metamask-previews/gas-fee-controller": "22.0.2-preview-ca1f35f",
  "@metamask-previews/json-rpc-engine": "10.0.2-preview-ca1f35f",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.6-preview-ca1f35f",
  "@metamask-previews/keyring-controller": "19.0.3-preview-ca1f35f",
  "@metamask-previews/logging-controller": "6.0.3-preview-ca1f35f",
  "@metamask-previews/message-manager": "11.0.3-preview-ca1f35f",
  "@metamask-previews/multichain": "2.0.0-preview-ca1f35f",
  "@metamask-previews/name-controller": "8.0.2-preview-ca1f35f",
  "@metamask-previews/network-controller": "22.1.1-preview-ca1f35f",
  "@metamask-previews/notification-services-controller": "0.16.0-preview-ca1f35f",
  "@metamask-previews/permission-controller": "11.0.5-preview-ca1f35f",
  "@metamask-previews/permission-log-controller": "3.0.2-preview-ca1f35f",
  "@metamask-previews/phishing-controller": "12.3.1-preview-ca1f35f",
  "@metamask-previews/polling-controller": "12.0.2-preview-ca1f35f",
  "@metamask-previews/preferences-controller": "15.0.1-preview-ca1f35f",
  "@metamask-previews/profile-sync-controller": "4.0.1-preview-ca1f35f",
  "@metamask-previews/queued-request-controller": "8.0.2-preview-ca1f35f",
  "@metamask-previews/rate-limit-controller": "6.0.2-preview-ca1f35f",
  "@metamask-previews/remote-feature-flag-controller": "1.3.0-preview-ca1f35f",
  "@metamask-previews/selected-network-controller": "20.0.2-preview-ca1f35f",
  "@metamask-previews/signature-controller": "23.2.0-preview-ca1f35f",
  "@metamask-previews/transaction-controller": "43.0.0-preview-ca1f35f",
  "@metamask-previews/user-operation-controller": "22.0.0-preview-ca1f35f"
}

@mathieuartu mathieuartu marked this pull request as ready for review January 14, 2025 17:16
@mathieuartu mathieuartu requested review from a team as code owners January 14, 2025 17:16
@mathieuartu mathieuartu changed the title feat: persist isAccountSyncingReadyToBeDispatched statue value feat: persist isAccountSyncingReadyToBeDispatched statue value Jan 14, 2025
@mathieuartu mathieuartu merged commit 94ac34e into main Jan 14, 2025
117 checks passed
@mathieuartu mathieuartu deleted the feat/persist-account-syncing-ready-to-be-dispatched-state branch January 14, 2025 17:22
github-merge-queue bot pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 15, 2025
…version (#29701)

## **Description**

Account syncing was depending on `_addAccountsWithBalance` to be
finished before being triggered.
But `_addAccountsWithBalance` was only triggered after onboarding.

So people upgrading from a previous version of the extension were not
able to use account syncing since `_addAccountsWithBalance` was
triggered during their original onboarding, at a time where account
syncing was not available.

Additionally, the state value `isAccountSyncingReadyToBeDispatched` from
`UserStorageController` was not persisted. So people were not able to
use account syncing after upgrading their extension version, even coming
from a version that had account syncing enabled and working.

This PR fixes that, by adding a migration that sets
`isAccountSyncingReadyToBeDispatched` to true if `completedOnboarding`
is true.

Also, bumping `@metamask/profile-sync-controller` to version `v4.1.0`
will ensure that `isAccountSyncingReadyToBeDispatched` is persisted.
(MetaMask/core#5147)

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29701?quickstart=1)

## **Related issues**

Fixes: #29679

## **Manual testing steps**

1. Install MetaMask v12.9.3
2. Complete onboarding
3. Upgrade to this PR version
4. Verify that account syncing is working

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-identity Identity Team changes. https://github.com/orgs/MetaMask/teams/identity
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants