@metamask-previews/profile-sync-controller 3.1.1-preview-ffa69e9 → 3.1.1-preview-2ebcbae7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/user-storage/UserStorageController.cjs +39 -218
- package/dist/controllers/user-storage/UserStorageController.cjs.map +1 -1
- package/dist/controllers/user-storage/UserStorageController.d.cts +6 -1
- package/dist/controllers/user-storage/UserStorageController.d.cts.map +1 -1
- package/dist/controllers/user-storage/UserStorageController.d.mts +6 -1
- package/dist/controllers/user-storage/UserStorageController.d.mts.map +1 -1
- package/dist/controllers/user-storage/UserStorageController.mjs +36 -215
- package/dist/controllers/user-storage/UserStorageController.mjs.map +1 -1
- package/dist/controllers/user-storage/__fixtures__/test-utils.cjs +45 -1
- package/dist/controllers/user-storage/__fixtures__/test-utils.cjs.map +1 -1
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.cts +21 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.cts.map +1 -1
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.mts +21 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.mts.map +1 -1
- package/dist/controllers/user-storage/__fixtures__/test-utils.mjs +38 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.mjs.map +1 -1
- package/dist/controllers/user-storage/{__fixtures__ → account-syncing/__fixtures__}/mockAccounts.cjs +3 -3
- package/dist/controllers/user-storage/account-syncing/__fixtures__/mockAccounts.cjs.map +1 -0
- package/dist/controllers/user-storage/{__fixtures__ → account-syncing/__fixtures__}/mockAccounts.d.cts +6 -6
- package/dist/controllers/user-storage/account-syncing/__fixtures__/mockAccounts.d.cts.map +1 -0
- package/dist/controllers/user-storage/{__fixtures__ → account-syncing/__fixtures__}/mockAccounts.d.mts +6 -6
- package/dist/controllers/user-storage/account-syncing/__fixtures__/mockAccounts.d.mts.map +1 -0
- package/dist/controllers/user-storage/{__fixtures__ → account-syncing/__fixtures__}/mockAccounts.mjs +2 -2
- package/dist/controllers/user-storage/account-syncing/__fixtures__/mockAccounts.mjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.cjs +50 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.cjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.d.cts +85 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.d.cts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.d.mts +85 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.d.mts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.mjs +44 -0
- package/dist/controllers/user-storage/account-syncing/__fixtures__/test-utils.mjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/constants.cjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/constants.d.cts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/constants.d.mts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/constants.mjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.cjs +194 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.cjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.d.cts +31 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.d.cts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.d.mts +31 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.d.mts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.mjs +188 -0
- package/dist/controllers/user-storage/account-syncing/controller-integration.mjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.cjs +35 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.cjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.d.cts +8 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.d.cts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.d.mts +8 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.d.mts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.mjs +31 -0
- package/dist/controllers/user-storage/account-syncing/setup-subscriptions.mjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.cjs +47 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.cjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.d.cts +20 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.d.cts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.d.mts +20 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.d.mts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.mjs +41 -0
- package/dist/controllers/user-storage/account-syncing/sync-utils.mjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/types.cjs +3 -0
- package/dist/controllers/user-storage/account-syncing/types.cjs.map +1 -0
- package/dist/controllers/user-storage/account-syncing/types.d.cts +26 -0
- package/dist/controllers/user-storage/account-syncing/types.d.cts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/types.d.mts +26 -0
- package/dist/controllers/user-storage/account-syncing/types.d.mts.map +1 -0
- package/dist/controllers/user-storage/account-syncing/types.mjs +2 -0
- package/dist/controllers/user-storage/account-syncing/types.mjs.map +1 -0
- package/dist/controllers/user-storage/{accounts/user-storage.cjs → account-syncing/utils.cjs} +12 -2
- package/dist/controllers/user-storage/account-syncing/utils.cjs.map +1 -0
- package/dist/controllers/user-storage/{accounts/user-storage.d.cts → account-syncing/utils.d.cts} +8 -17
- package/dist/controllers/user-storage/account-syncing/utils.d.cts.map +1 -0
- package/dist/controllers/user-storage/{accounts/user-storage.d.mts → account-syncing/utils.d.mts} +8 -17
- package/dist/controllers/user-storage/account-syncing/utils.d.mts.map +1 -0
- package/dist/controllers/user-storage/{accounts/user-storage.mjs → account-syncing/utils.mjs} +10 -1
- package/dist/controllers/user-storage/account-syncing/utils.mjs.map +1 -0
- package/package.json +3 -3
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.cjs.map +0 -1
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.d.cts.map +0 -1
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.d.mts.map +0 -1
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.mjs.map +0 -1
- package/dist/controllers/user-storage/accounts/constants.cjs.map +0 -1
- package/dist/controllers/user-storage/accounts/constants.d.cts.map +0 -1
- package/dist/controllers/user-storage/accounts/constants.d.mts.map +0 -1
- package/dist/controllers/user-storage/accounts/constants.mjs.map +0 -1
- package/dist/controllers/user-storage/accounts/user-storage.cjs.map +0 -1
- package/dist/controllers/user-storage/accounts/user-storage.d.cts.map +0 -1
- package/dist/controllers/user-storage/accounts/user-storage.d.mts.map +0 -1
- package/dist/controllers/user-storage/accounts/user-storage.mjs.map +0 -1
- /package/dist/controllers/user-storage/{accounts → account-syncing}/constants.cjs +0 -0
- /package/dist/controllers/user-storage/{accounts → account-syncing}/constants.d.cts +0 -0
- /package/dist/controllers/user-storage/{accounts → account-syncing}/constants.d.mts +0 -0
- /package/dist/controllers/user-storage/{accounts → account-syncing}/constants.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserStorageController.d.cts","sourceRoot":"","sources":["../../../src/controllers/user-storage/UserStorageController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,6CAA6C,EAC7C,qCAAqC,EACrC,mCAAmC,EACpC,sCAAsC;AACvC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAE9B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;
|
|
1
|
+
{"version":3,"file":"UserStorageController.d.cts","sourceRoot":"","sources":["../../../src/controllers/user-storage/UserStorageController.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,10 @@ export type UserStorageControllerState = {
|
|
|
35
35
|
* Condition used by UI to determine if account syncing is ready to be dispatched.
|
|
36
36
|
*/
|
|
37
37
|
isAccountSyncingReadyToBeDispatched: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Condition used by UI to determine if account syncing is in progress.
|
|
40
|
+
*/
|
|
41
|
+
isAccountSyncingInProgress: boolean;
|
|
38
42
|
/**
|
|
39
43
|
* Condition used to ensure that we do not perform any network sync mutations until we have synced at least once
|
|
40
44
|
*/
|
|
@@ -204,8 +208,9 @@ export default class UserStorageController extends BaseController<typeof control
|
|
|
204
208
|
* @returns the storage key
|
|
205
209
|
*/
|
|
206
210
|
getStorageKey(): Promise<string>;
|
|
207
|
-
|
|
211
|
+
setHasAccountSyncingSyncedAtLeastOnce(hasAccountSyncingSyncedAtLeastOnce: boolean): Promise<void>;
|
|
208
212
|
setIsAccountSyncingReadyToBeDispatched(isAccountSyncingReadyToBeDispatched: boolean): Promise<void>;
|
|
213
|
+
setIsAccountSyncingInProgress(isAccountSyncingInProgress: boolean): Promise<void>;
|
|
209
214
|
/**
|
|
210
215
|
* Syncs the internal accounts list with the user storage accounts list.
|
|
211
216
|
* This method is used to make sure that the internal accounts list is up-to-date with the user storage accounts list and vice-versa.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserStorageController.d.mts","sourceRoot":"","sources":["../../../src/controllers/user-storage/UserStorageController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,6CAA6C,EAC7C,qCAAqC,EACrC,mCAAmC,EACpC,sCAAsC;AACvC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAE9B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;
|
|
1
|
+
{"version":3,"file":"UserStorageController.d.mts","sourceRoot":"","sources":["../../../src/controllers/user-storage/UserStorageController.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,12 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _UserStorageController_instances, _UserStorageController_env, _UserStorageController_auth,
|
|
12
|
+
var _UserStorageController_instances, _UserStorageController_env, _UserStorageController_auth, _UserStorageController_config, _UserStorageController_notificationServices, _UserStorageController_isUnlocked, _UserStorageController_keyringController, _UserStorageController_nativeScryptCrypto, _UserStorageController_registerMessageHandlers, _UserStorageController_getStorageOptions, _UserStorageController_assertProfileSyncingEnabled, _UserStorageController_getStorageKeyAndBearerToken, _UserStorageController_createStorageKey, _UserStorageController__snapSignMessageCache, _UserStorageController_snapSignMessage, _UserStorageController_setIsProfileSyncingUpdateLoading;
|
|
13
13
|
import { BaseController } from "@metamask/base-controller";
|
|
14
|
-
import { isEvmAccountType } from "@metamask/keyring-api";
|
|
15
|
-
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
16
14
|
import { createSHA256Hash } from "../../shared/encryption/index.mjs";
|
|
17
|
-
import { USER_STORAGE_FEATURE_NAMES } from "../../shared/storage-schema.mjs";
|
|
18
15
|
import { createSnapSignMessageRequest } from "../authentication/auth-snap-requests.mjs";
|
|
19
|
-
import {
|
|
16
|
+
import { saveInternalAccountToUserStorage, syncInternalAccountsWithUserStorage } from "./account-syncing/controller-integration.mjs";
|
|
17
|
+
import { setupAccountSyncingSubscriptions } from "./account-syncing/setup-subscriptions.mjs";
|
|
20
18
|
import { performMainNetworkSync, startNetworkSyncing } from "./network-syncing/controller-integration.mjs";
|
|
21
19
|
import { batchDeleteUserStorage, batchUpsertUserStorage, deleteUserStorage, deleteUserStorageAllFeatureEntries, getUserStorage, getUserStorageAllFeatureEntries, upsertUserStorage } from "./services.mjs";
|
|
22
20
|
const controllerName = 'UserStorageController';
|
|
@@ -25,6 +23,7 @@ export const defaultState = {
|
|
|
25
23
|
isProfileSyncingUpdateLoading: false,
|
|
26
24
|
hasAccountSyncingSyncedAtLeastOnce: false,
|
|
27
25
|
isAccountSyncingReadyToBeDispatched: false,
|
|
26
|
+
isAccountSyncingInProgress: false,
|
|
28
27
|
};
|
|
29
28
|
const metadata = {
|
|
30
29
|
isProfileSyncingEnabled: {
|
|
@@ -43,6 +42,10 @@ const metadata = {
|
|
|
43
42
|
persist: false,
|
|
44
43
|
anonymous: false,
|
|
45
44
|
},
|
|
45
|
+
isAccountSyncingInProgress: {
|
|
46
|
+
persist: false,
|
|
47
|
+
anonymous: false,
|
|
48
|
+
},
|
|
46
49
|
hasNetworkSyncingSyncedAtLeastOnce: {
|
|
47
50
|
persist: true,
|
|
48
51
|
anonymous: false,
|
|
@@ -89,80 +92,6 @@ class UserStorageController extends BaseController {
|
|
|
89
92
|
return this.messagingSystem.call('AuthenticationController:performSignOut');
|
|
90
93
|
},
|
|
91
94
|
});
|
|
92
|
-
_UserStorageController_accounts.set(this, {
|
|
93
|
-
isAccountSyncingInProgress: false,
|
|
94
|
-
maxNumberOfAccountsToAdd: 0,
|
|
95
|
-
canSync: () => {
|
|
96
|
-
try {
|
|
97
|
-
__classPrivateFieldGet(this, _UserStorageController_instances, "m", _UserStorageController_assertProfileSyncingEnabled).call(this);
|
|
98
|
-
if (__classPrivateFieldGet(this, _UserStorageController_accounts, "f").isAccountSyncingInProgress) {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
if (!__classPrivateFieldGet(this, _UserStorageController_env, "f").isAccountSyncingEnabled) {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
if (!__classPrivateFieldGet(this, _UserStorageController_auth, "f").isAuthEnabled()) {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
setupAccountSyncingSubscriptions: () => {
|
|
114
|
-
this.messagingSystem.subscribe('AccountsController:accountAdded',
|
|
115
|
-
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
116
|
-
async (account) => {
|
|
117
|
-
if (!__classPrivateFieldGet(this, _UserStorageController_accounts, "f").canSync() ||
|
|
118
|
-
!this.state.hasAccountSyncingSyncedAtLeastOnce) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
await this.saveInternalAccountToUserStorage(account);
|
|
122
|
-
});
|
|
123
|
-
this.messagingSystem.subscribe('AccountsController:accountRenamed',
|
|
124
|
-
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
125
|
-
async (account) => {
|
|
126
|
-
if (!__classPrivateFieldGet(this, _UserStorageController_accounts, "f").canSync() ||
|
|
127
|
-
!this.state.hasAccountSyncingSyncedAtLeastOnce) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
await this.saveInternalAccountToUserStorage(account);
|
|
131
|
-
});
|
|
132
|
-
},
|
|
133
|
-
doesInternalAccountHaveCorrectKeyringType: (account) => {
|
|
134
|
-
return account.metadata.keyring.type === KeyringTypes.hd;
|
|
135
|
-
},
|
|
136
|
-
getInternalAccountsList: async () => {
|
|
137
|
-
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
138
|
-
const internalAccountsList = await this.messagingSystem.call('AccountsController:listAccounts');
|
|
139
|
-
return internalAccountsList?.filter(__classPrivateFieldGet(this, _UserStorageController_accounts, "f").doesInternalAccountHaveCorrectKeyringType);
|
|
140
|
-
},
|
|
141
|
-
getUserStorageAccountsList: async () => {
|
|
142
|
-
const rawAccountsListResponse = await this.performGetStorageAllFeatureEntries(USER_STORAGE_FEATURE_NAMES.accounts);
|
|
143
|
-
return (rawAccountsListResponse?.map((rawAccount) => JSON.parse(rawAccount)) ??
|
|
144
|
-
null);
|
|
145
|
-
},
|
|
146
|
-
saveInternalAccountToUserStorage: async (internalAccount) => {
|
|
147
|
-
// Map the internal account to the user storage account schema
|
|
148
|
-
const mappedAccount = mapInternalAccountToUserStorageAccount(internalAccount);
|
|
149
|
-
await this.performSetStorage(
|
|
150
|
-
// ESLint is confused here.
|
|
151
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
152
|
-
`${USER_STORAGE_FEATURE_NAMES.accounts}.${internalAccount.address}`, JSON.stringify(mappedAccount));
|
|
153
|
-
},
|
|
154
|
-
saveInternalAccountsListToUserStorage: async () => {
|
|
155
|
-
const internalAccountsList = await __classPrivateFieldGet(this, _UserStorageController_accounts, "f").getInternalAccountsList();
|
|
156
|
-
if (!internalAccountsList) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
const internalAccountsListFormattedForUserStorage = internalAccountsList.map(mapInternalAccountToUserStorageAccount);
|
|
160
|
-
await this.performBatchSetStorage(USER_STORAGE_FEATURE_NAMES.accounts, internalAccountsListFormattedForUserStorage.map((account) => [
|
|
161
|
-
account.a,
|
|
162
|
-
JSON.stringify(account),
|
|
163
|
-
]));
|
|
164
|
-
},
|
|
165
|
-
});
|
|
166
95
|
_UserStorageController_config.set(this, void 0);
|
|
167
96
|
_UserStorageController_notificationServices.set(this, {
|
|
168
97
|
disableNotificationServices: async () => {
|
|
@@ -190,13 +119,17 @@ class UserStorageController extends BaseController {
|
|
|
190
119
|
__classPrivateFieldGet(this, _UserStorageController_env, "f").isAccountSyncingEnabled = Boolean(env?.isAccountSyncingEnabled);
|
|
191
120
|
__classPrivateFieldGet(this, _UserStorageController_env, "f").isNetworkSyncingEnabled = Boolean(env?.isNetworkSyncingEnabled);
|
|
192
121
|
__classPrivateFieldSet(this, _UserStorageController_config, config, "f");
|
|
193
|
-
__classPrivateFieldGet(this, _UserStorageController_accounts, "f").maxNumberOfAccountsToAdd =
|
|
194
|
-
config?.accountSyncing?.maxNumberOfAccountsToAdd ?? 100;
|
|
195
122
|
this.getMetaMetricsState = getMetaMetricsState;
|
|
196
123
|
__classPrivateFieldGet(this, _UserStorageController_keyringController, "f").setupLockedStateSubscriptions();
|
|
197
124
|
__classPrivateFieldGet(this, _UserStorageController_instances, "m", _UserStorageController_registerMessageHandlers).call(this);
|
|
198
125
|
__classPrivateFieldSet(this, _UserStorageController_nativeScryptCrypto, nativeScryptCrypto, "f");
|
|
199
|
-
|
|
126
|
+
// Account Syncing
|
|
127
|
+
if (__classPrivateFieldGet(this, _UserStorageController_env, "f").isAccountSyncingEnabled) {
|
|
128
|
+
setupAccountSyncingSubscriptions({ isAccountSyncingEnabled: true }, {
|
|
129
|
+
getUserStorageControllerInstance: () => this,
|
|
130
|
+
getMessenger: () => this.messagingSystem,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
200
133
|
// Network Syncing
|
|
201
134
|
if (__classPrivateFieldGet(this, _UserStorageController_env, "f").isNetworkSyncingEnabled) {
|
|
202
135
|
startNetworkSyncing({
|
|
@@ -398,150 +331,38 @@ class UserStorageController extends BaseController {
|
|
|
398
331
|
isAccountSyncingReadyToBeDispatched;
|
|
399
332
|
});
|
|
400
333
|
}
|
|
334
|
+
async setIsAccountSyncingInProgress(isAccountSyncingInProgress) {
|
|
335
|
+
this.update((state) => {
|
|
336
|
+
state.isAccountSyncingInProgress = isAccountSyncingInProgress;
|
|
337
|
+
});
|
|
338
|
+
}
|
|
401
339
|
/**
|
|
402
340
|
* Syncs the internal accounts list with the user storage accounts list.
|
|
403
341
|
* This method is used to make sure that the internal accounts list is up-to-date with the user storage accounts list and vice-versa.
|
|
404
342
|
* It will add new accounts to the internal accounts list, update/merge conflicting names and re-upload the results in some cases to the user storage.
|
|
405
343
|
*/
|
|
406
344
|
async syncInternalAccountsWithUserStorage() {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
__classPrivateFieldGet(this,
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
}
|
|
419
|
-
// Prepare an array of internal accounts to be saved to the user storage
|
|
420
|
-
const internalAccountsToBeSavedToUserStorage = [];
|
|
421
|
-
// Compare internal accounts list with user storage accounts list
|
|
422
|
-
// First step: compare lengths
|
|
423
|
-
const internalAccountsList = await __classPrivateFieldGet(this, _UserStorageController_accounts, "f").getInternalAccountsList();
|
|
424
|
-
if (!internalAccountsList || !internalAccountsList.length) {
|
|
425
|
-
throw new Error(`Failed to get internal accounts list`);
|
|
426
|
-
}
|
|
427
|
-
const hasMoreUserStorageAccountsThanInternalAccounts = userStorageAccountsList.length > internalAccountsList.length;
|
|
428
|
-
// We don't want to remove existing accounts for a user
|
|
429
|
-
// so we only add new accounts if the user has more accounts in user storage than internal accounts
|
|
430
|
-
if (hasMoreUserStorageAccountsThanInternalAccounts) {
|
|
431
|
-
const numberOfAccountsToAdd = Math.min(userStorageAccountsList.length, __classPrivateFieldGet(this, _UserStorageController_accounts, "f").maxNumberOfAccountsToAdd) - internalAccountsList.length;
|
|
432
|
-
// Create new accounts to match the user storage accounts list
|
|
433
|
-
for (let i = 0; i < numberOfAccountsToAdd; i++) {
|
|
434
|
-
await this.messagingSystem.call('KeyringController:addNewAccount');
|
|
435
|
-
__classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountAdded?.(profileId);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
// Second step: compare account names
|
|
439
|
-
// Get the internal accounts list again since new accounts might have been added in the previous step
|
|
440
|
-
const refreshedInternalAccountsList = await __classPrivateFieldGet(this, _UserStorageController_accounts, "f").getInternalAccountsList();
|
|
441
|
-
const newlyAddedAccounts = refreshedInternalAccountsList.filter((account) => !internalAccountsList.find((a) => a.address === account.address));
|
|
442
|
-
for (const internalAccount of refreshedInternalAccountsList) {
|
|
443
|
-
const userStorageAccount = userStorageAccountsList.find((account) => account.a === internalAccount.address);
|
|
444
|
-
// If the account is not present in user storage
|
|
445
|
-
if (!userStorageAccount) {
|
|
446
|
-
// If the account was just added in the previous step, skip saving it, it's likely to be a bogus account
|
|
447
|
-
if (newlyAddedAccounts.includes(internalAccount)) {
|
|
448
|
-
__classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountSyncErroneousSituation?.(profileId, 'An account was added to the internal accounts list but was not present in the user storage accounts list');
|
|
449
|
-
continue;
|
|
450
|
-
}
|
|
451
|
-
// Otherwise, it means that this internal account was present before the sync, and needs to be saved to the user storage
|
|
452
|
-
internalAccountsToBeSavedToUserStorage.push(internalAccount);
|
|
453
|
-
continue;
|
|
454
|
-
}
|
|
455
|
-
// From this point on, we know that the account is present in
|
|
456
|
-
// both the internal accounts list and the user storage accounts list
|
|
457
|
-
// One or both accounts have default names
|
|
458
|
-
const isInternalAccountNameDefault = isNameDefaultAccountName(internalAccount.metadata.name);
|
|
459
|
-
const isUserStorageAccountNameDefault = isNameDefaultAccountName(userStorageAccount.n);
|
|
460
|
-
// Internal account has default name
|
|
461
|
-
if (isInternalAccountNameDefault) {
|
|
462
|
-
if (!isUserStorageAccountNameDefault) {
|
|
463
|
-
this.messagingSystem.call('AccountsController:updateAccountMetadata', internalAccount.id, {
|
|
464
|
-
name: userStorageAccount.n,
|
|
465
|
-
});
|
|
466
|
-
__classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountNameUpdated?.(profileId);
|
|
467
|
-
}
|
|
468
|
-
continue;
|
|
469
|
-
}
|
|
470
|
-
// Internal account has custom name but user storage account has default name
|
|
471
|
-
if (isUserStorageAccountNameDefault) {
|
|
472
|
-
internalAccountsToBeSavedToUserStorage.push(internalAccount);
|
|
473
|
-
continue;
|
|
474
|
-
}
|
|
475
|
-
// Both accounts have custom names
|
|
476
|
-
// User storage account has a nameLastUpdatedAt timestamp
|
|
477
|
-
// Note: not storing the undefined checks in constants to act as a type guard
|
|
478
|
-
if (userStorageAccount.nlu !== undefined) {
|
|
479
|
-
if (internalAccount.metadata.nameLastUpdatedAt !== undefined) {
|
|
480
|
-
const isInternalAccountNameNewer = internalAccount.metadata.nameLastUpdatedAt >
|
|
481
|
-
userStorageAccount.nlu;
|
|
482
|
-
if (isInternalAccountNameNewer) {
|
|
483
|
-
internalAccountsToBeSavedToUserStorage.push(internalAccount);
|
|
484
|
-
continue;
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
this.messagingSystem.call('AccountsController:updateAccountMetadata', internalAccount.id, {
|
|
488
|
-
name: userStorageAccount.n,
|
|
489
|
-
nameLastUpdatedAt: userStorageAccount.nlu,
|
|
490
|
-
});
|
|
491
|
-
const areInternalAndUserStorageAccountNamesEqual = internalAccount.metadata.name === userStorageAccount.n;
|
|
492
|
-
if (!areInternalAndUserStorageAccountNamesEqual) {
|
|
493
|
-
__classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountNameUpdated?.(profileId);
|
|
494
|
-
}
|
|
495
|
-
continue;
|
|
496
|
-
}
|
|
497
|
-
else if (internalAccount.metadata.nameLastUpdatedAt !== undefined) {
|
|
498
|
-
internalAccountsToBeSavedToUserStorage.push(internalAccount);
|
|
499
|
-
continue;
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
// Save the internal accounts list to the user storage
|
|
503
|
-
if (internalAccountsToBeSavedToUserStorage.length) {
|
|
504
|
-
await this.performBatchSetStorage(USER_STORAGE_FEATURE_NAMES.accounts, internalAccountsToBeSavedToUserStorage.map((account) => [
|
|
505
|
-
account.address,
|
|
506
|
-
JSON.stringify(mapInternalAccountToUserStorageAccount(account)),
|
|
507
|
-
]));
|
|
508
|
-
}
|
|
509
|
-
// In case we have corrupted user storage with accounts that don't exist in the internal accounts list
|
|
510
|
-
// Delete those accounts from the user storage
|
|
511
|
-
const userStorageAccountsToBeDeleted = userStorageAccountsList.filter((account) => !refreshedInternalAccountsList.find((a) => a.address === account.a));
|
|
512
|
-
if (userStorageAccountsToBeDeleted.length) {
|
|
513
|
-
await this.performBatchDeleteStorage(USER_STORAGE_FEATURE_NAMES.accounts, userStorageAccountsToBeDeleted.map((account) => account.a));
|
|
514
|
-
__classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountSyncErroneousSituation?.(profileId, 'An account was present in the user storage accounts list but was not found in the internal accounts list after the sync');
|
|
515
|
-
}
|
|
516
|
-
// We do this here and not in the finally statement because we want to make sure that
|
|
517
|
-
// the accounts are saved / updated / deleted at least once before we set this flag
|
|
518
|
-
await this.setHasAccountSyncingSyncedAtLeastOnce(true);
|
|
519
|
-
}
|
|
520
|
-
catch (e) {
|
|
521
|
-
const errorMessage = e instanceof Error ? e.message : JSON.stringify(e);
|
|
522
|
-
throw new Error(`${controllerName} - failed to sync user storage accounts list - ${errorMessage}`);
|
|
523
|
-
}
|
|
524
|
-
finally {
|
|
525
|
-
__classPrivateFieldGet(this, _UserStorageController_accounts, "f").isAccountSyncingInProgress = false;
|
|
526
|
-
}
|
|
345
|
+
const profileId = await __classPrivateFieldGet(this, _UserStorageController_auth, "f").getProfileId();
|
|
346
|
+
await syncInternalAccountsWithUserStorage({
|
|
347
|
+
isAccountSyncingEnabled: __classPrivateFieldGet(this, _UserStorageController_env, "f").isAccountSyncingEnabled,
|
|
348
|
+
maxNumberOfAccountsToAdd: __classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.maxNumberOfAccountsToAdd,
|
|
349
|
+
onAccountAdded: () => __classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountAdded?.(profileId),
|
|
350
|
+
onAccountNameUpdated: () => __classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountNameUpdated?.(profileId),
|
|
351
|
+
onAccountSyncErroneousSituation: (situationMessage) => __classPrivateFieldGet(this, _UserStorageController_config, "f")?.accountSyncing?.onAccountSyncErroneousSituation?.(profileId, situationMessage),
|
|
352
|
+
}, {
|
|
353
|
+
getMessenger: () => this.messagingSystem,
|
|
354
|
+
getUserStorageControllerInstance: () => this,
|
|
355
|
+
});
|
|
527
356
|
}
|
|
528
357
|
/**
|
|
529
358
|
* Saves an individual internal account to the user storage.
|
|
530
359
|
* @param internalAccount - The internal account to save
|
|
531
360
|
*/
|
|
532
361
|
async saveInternalAccountToUserStorage(internalAccount) {
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
}
|
|
538
|
-
try {
|
|
539
|
-
await __classPrivateFieldGet(this, _UserStorageController_accounts, "f").saveInternalAccountToUserStorage(internalAccount);
|
|
540
|
-
}
|
|
541
|
-
catch (e) {
|
|
542
|
-
const errorMessage = e instanceof Error ? e.message : JSON.stringify(e);
|
|
543
|
-
throw new Error(`${controllerName} - failed to save account to user storage - ${errorMessage}`);
|
|
544
|
-
}
|
|
362
|
+
await saveInternalAccountToUserStorage(internalAccount, { isAccountSyncingEnabled: __classPrivateFieldGet(this, _UserStorageController_env, "f").isAccountSyncingEnabled }, {
|
|
363
|
+
getMessenger: () => this.messagingSystem,
|
|
364
|
+
getUserStorageControllerInstance: () => this,
|
|
365
|
+
});
|
|
545
366
|
}
|
|
546
367
|
async syncNetworks() {
|
|
547
368
|
if (!__classPrivateFieldGet(this, _UserStorageController_env, "f").isNetworkSyncingEnabled) {
|
|
@@ -561,7 +382,7 @@ class UserStorageController extends BaseController {
|
|
|
561
382
|
});
|
|
562
383
|
}
|
|
563
384
|
}
|
|
564
|
-
_UserStorageController_env = new WeakMap(), _UserStorageController_auth = new WeakMap(),
|
|
385
|
+
_UserStorageController_env = new WeakMap(), _UserStorageController_auth = new WeakMap(), _UserStorageController_config = new WeakMap(), _UserStorageController_notificationServices = new WeakMap(), _UserStorageController_isUnlocked = new WeakMap(), _UserStorageController_keyringController = new WeakMap(), _UserStorageController_nativeScryptCrypto = new WeakMap(), _UserStorageController__snapSignMessageCache = new WeakMap(), _UserStorageController_instances = new WeakSet(), _UserStorageController_registerMessageHandlers = function _UserStorageController_registerMessageHandlers() {
|
|
565
386
|
this.messagingSystem.registerActionHandler('UserStorageController:performGetStorage', this.performGetStorage.bind(this));
|
|
566
387
|
this.messagingSystem.registerActionHandler('UserStorageController:performGetStorageAllFeatureEntries', this.performGetStorageAllFeatureEntries.bind(this));
|
|
567
388
|
this.messagingSystem.registerActionHandler('UserStorageController:performSetStorage', this.performSetStorage.bind(this));
|