You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bump @metamask/profile-sync-controller from ^31.0.0 to ^32.0.0 (#10166)
@metamask/profile-metrics-controller 5.1.0
Added
Tag each account with an accountSource on AccountWithScopes, submitted to the auth API as account_source (#10107)
The value ('mnemonic' | 'hardware' | 'imported' | 'snap') is derived from the account's entropy source and metadata.keyring.type; accounts with an unrecognized keyring type are left untagged since the API rejects unknown values.
Adds a reportedAccounts state property recording the canonical addresses that have been submitted, so enqueuing them again is a no-op.
Re-enqueues all known accounts on the first unlock after upgrading so previously-synced records get an account source and canonical address, gated by a new accountSourceBackfillEnqueued state flag (fresh installs flip the flag on their initial sync).
Changed
Canonicalize account addresses when they are enqueued rather than only when a proof of ownership is signed, so accounts without a proof (hardware, imported, non-mnemonic Snap) are also submitted in canonical form (#10107)
Bump @metamask/profile-sync-controller from ^31.0.0 to ^32.0.0 (#10166)
@metamask/profile-sync-controller 32.0.0
Added
Add AuthenticationController.clearState() to reset the controller to defaultState (unsigned, both pairing gates re-armed). Clients call this on wallet reset (#10165)
Add BACKUPANDSYNC_FEATURES.rampsSyncing and UserStorageController.isRampsSyncingEnabled (#9474)
Defaults to enabled (true); hosts can toggle Buy & sell order sync independently of account/contact sync
Changed
BREAKING:UserStorageControllerState now includes isRampsSyncingEnabled. Consumers that construct full state objects must include this field. (#9474)
Prefer isRampsSyncingEnabled ?? true in selectors so wallets upgraded before this field existed keep ramps syncing on by default
@metamask/ramps-controller 22.0.0
Added
Add V2 ramps order syncing with User Storage (#9474)
Synchronize orders across clients for the same SRP using timestamp-based last-write-wins conflict resolution, soft-delete tombstones, and incremental add/update/delete pushes
Feature key: rampsOrders; hosts call RampsController:syncOrdersWithUserStorage on unlock when Backup & Sync + ramps syncing are enabled
Persist optional lastUpdatedAt on local RampsOrder entries for LWW (not returned by the V2 API)
Strip paymentDetails from remote payloads (PII stays local-only)
Soft deletes use remote tombstones; retention matches contact sync (no remote purge/compaction)
Mid-sync local mutations coalesce into a follow-up full sync pass so uploads are not dropped during performBatchSetStorage
Polling via getOrder → addOrder stamps lastUpdatedAt and writes to User Storage only when the syncable payload changed
Normalize ISO and numeric-string createdAt values from Portfolio and older clients to epoch milliseconds
Optional onOrderSyncErroneousSituation (full sync and incremental push/delete) and trace callbacks
Changed
BREAKING:RampsControllerMessenger now requires these actions to be delegated for order syncing (#9474):