@metamask-previews/accounts-controller 31.0.0-preview-04ab3e60 → 31.0.0-preview-21067ca7
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/CHANGELOG.md +1 -1
- package/dist/AccountsController.cjs +125 -136
- package/dist/AccountsController.cjs.map +1 -1
- package/dist/AccountsController.d.cts.map +1 -1
- package/dist/AccountsController.d.mts.map +1 -1
- package/dist/AccountsController.mjs +128 -138
- package/dist/AccountsController.mjs.map +1 -1
- package/dist/tests/mocks.cjs +11 -2
- package/dist/tests/mocks.cjs.map +1 -1
- package/dist/tests/mocks.d.cts +2 -2
- package/dist/tests/mocks.d.cts.map +1 -1
- package/dist/tests/mocks.d.mts +2 -2
- package/dist/tests/mocks.d.mts.map +1 -1
- package/dist/tests/mocks.mjs +12 -3
- package/dist/tests/mocks.mjs.map +1 -1
- package/dist/utils.cjs +80 -5
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +56 -4
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +56 -4
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +74 -3
- package/dist/utils.mjs.map +1 -1
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- Use new typed `KeyringAccount.options` for BIP-44 compatible accounts ([#6122](https://github.com/MetaMask/core/pull/6122)), ([#6147](https://github.com/MetaMask/core/pull/6147))
|
|
13
13
|
|
|
14
14
|
### Changed
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
4
4
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
5
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
6
|
};
|
|
7
|
-
var _AccountsController_instances, _AccountsController_assertAccountCanBeRenamed,
|
|
7
|
+
var _AccountsController_instances, _AccountsController_assertAccountCanBeRenamed, _AccountsController_getInternalAccountForNonSnapAccount, _AccountsController_getSnapKeyring, _AccountsController_handleOnSnapKeyringAccountEvent, _AccountsController_handleOnKeyringStateChange, _AccountsController_update, _AccountsController_handleOnSnapStateChange, _AccountsController_getAccountsByKeyringType, _AccountsController_getLastSelectedAccount, _AccountsController_getLastSelectedIndex, _AccountsController_getInternalAccountFromAddressAndType, _AccountsController_handleOnMultichainNetworkDidChange, _AccountsController_subscribeToMessageEvents, _AccountsController_registerMessageHandlers;
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.AccountsController = exports.EMPTY_ACCOUNT = void 0;
|
|
10
10
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -13,6 +13,7 @@ const keyring_api_1 = require("@metamask/keyring-api");
|
|
|
13
13
|
const keyring_controller_1 = require("@metamask/keyring-controller");
|
|
14
14
|
const keyring_utils_1 = require("@metamask/keyring-utils");
|
|
15
15
|
const utils_1 = require("@metamask/utils");
|
|
16
|
+
const lodash_1 = require("lodash");
|
|
16
17
|
const utils_2 = require("./utils.cjs");
|
|
17
18
|
const controllerName = 'AccountsController';
|
|
18
19
|
const accountsControllerMetadata = {
|
|
@@ -269,38 +270,41 @@ class AccountsController extends base_controller_1.BaseController {
|
|
|
269
270
|
* @returns A Promise that resolves when the accounts have been updated.
|
|
270
271
|
*/
|
|
271
272
|
async updateAccounts() {
|
|
272
|
-
const
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
const
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
273
|
+
const keyringAccountIndexes = new Map();
|
|
274
|
+
const existingInternalAccounts = this.state.internalAccounts.accounts;
|
|
275
|
+
const internalAccounts = {};
|
|
276
|
+
const { keyrings } = this.messagingSystem.call('KeyringController:getState');
|
|
277
|
+
for (const keyring of keyrings) {
|
|
278
|
+
const keyringTypeName = (0, utils_2.keyringTypeToName)(keyring.type);
|
|
279
|
+
for (const address of keyring.accounts) {
|
|
280
|
+
const internalAccount = __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_getInternalAccountFromAddressAndType).call(this, address, keyring);
|
|
281
|
+
// This should never really happen, but if for some reason we're not
|
|
282
|
+
// able to get the Snap keyring reference, this would return an
|
|
283
|
+
// undefined account.
|
|
284
|
+
// So we just skip it, even though, this should not really happen.
|
|
285
|
+
if (!internalAccount) {
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
// Get current index for this keyring (we use human indexing, so start at 1).
|
|
289
|
+
const keyringAccountIndex = keyringAccountIndexes.get(keyringTypeName) ?? 1;
|
|
290
|
+
const existingAccount = existingInternalAccounts[internalAccount.id];
|
|
291
|
+
internalAccounts[internalAccount.id] = {
|
|
292
|
+
...internalAccount,
|
|
293
|
+
metadata: {
|
|
294
|
+
...internalAccount.metadata,
|
|
295
|
+
// Re-use existing metadata if any.
|
|
296
|
+
name: existingAccount?.metadata.name ??
|
|
297
|
+
`${keyringTypeName} ${keyringAccountIndex}`,
|
|
298
|
+
importTime: existingAccount?.metadata.importTime ?? Date.now(),
|
|
299
|
+
lastSelected: existingAccount?.metadata.lastSelected ?? 0,
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
// Increment the account index for this keyring.
|
|
303
|
+
keyringAccountIndexes.set(keyringTypeName, keyringAccountIndex + 1);
|
|
288
304
|
}
|
|
289
|
-
|
|
290
|
-
internalAccountMap[internalAccount.id] = {
|
|
291
|
-
...internalAccount,
|
|
292
|
-
metadata: {
|
|
293
|
-
...internalAccount.metadata,
|
|
294
|
-
name: __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, existingAccount?.id, 'name') ??
|
|
295
|
-
`${keyringTypeName} ${keyringAccountIndex + 1}`,
|
|
296
|
-
importTime: __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, existingAccount?.id, 'importTime') ?? Date.now(),
|
|
297
|
-
lastSelected: __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, existingAccount?.id, 'lastSelected') ?? 0,
|
|
298
|
-
},
|
|
299
|
-
};
|
|
300
|
-
return internalAccountMap;
|
|
301
|
-
}, {});
|
|
305
|
+
}
|
|
302
306
|
__classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_update).call(this, (state) => {
|
|
303
|
-
state.internalAccounts.accounts =
|
|
307
|
+
state.internalAccounts.accounts = internalAccounts;
|
|
304
308
|
});
|
|
305
309
|
}
|
|
306
310
|
/**
|
|
@@ -349,11 +353,63 @@ _AccountsController_instances = new WeakSet(), _AccountsController_assertAccount
|
|
|
349
353
|
internalAccount.id !== account.id)) {
|
|
350
354
|
throw new Error('Account name already exists');
|
|
351
355
|
}
|
|
352
|
-
},
|
|
356
|
+
}, _AccountsController_getInternalAccountForNonSnapAccount = function _AccountsController_getInternalAccountForNonSnapAccount(address, keyring) {
|
|
357
|
+
const id = (0, utils_2.getUUIDFromAddressOfNormalAccount)(address);
|
|
358
|
+
// We might have an account for this ID already, so we'll just re-use
|
|
359
|
+
// the same metadata
|
|
360
|
+
const account = this.getAccount(id);
|
|
361
|
+
const metadata = {
|
|
362
|
+
name: account?.metadata.name ?? '',
|
|
363
|
+
...(account?.metadata.nameLastUpdatedAt
|
|
364
|
+
? {
|
|
365
|
+
nameLastUpdatedAt: account?.metadata.nameLastUpdatedAt,
|
|
366
|
+
}
|
|
367
|
+
: {}),
|
|
368
|
+
importTime: account?.metadata.importTime ?? Date.now(),
|
|
369
|
+
lastSelected: account?.metadata.lastSelected ?? 0,
|
|
370
|
+
keyring: {
|
|
371
|
+
type: keyring.type,
|
|
372
|
+
},
|
|
373
|
+
};
|
|
374
|
+
let options = {};
|
|
375
|
+
if ((0, utils_2.isHdKeyringType)(keyring.type)) {
|
|
376
|
+
// We need to find the account index from its HD keyring.
|
|
377
|
+
const groupIndex = (0, utils_2.getEvmGroupIndexFromAddressIndex)(keyring, address);
|
|
378
|
+
// If for some reason, we cannot find this address, then the caller made a mistake
|
|
379
|
+
// and it did not use the proper keyring object. For now, we do not fail and just
|
|
380
|
+
// consider this account as "simple account".
|
|
381
|
+
if (groupIndex !== undefined) {
|
|
382
|
+
// NOTE: We are not using the `hdPath` from the associated keyring here and
|
|
383
|
+
// getting the keyring instance here feels a bit overkill.
|
|
384
|
+
// This will be naturally fixed once every keyring start using `KeyringAccount` and implement the keyring API.
|
|
385
|
+
const derivationPath = (0, utils_2.getEvmDerivationPathForIndex)(groupIndex);
|
|
386
|
+
// Those are "legacy options" and they were used before `KeyringAccount` added
|
|
387
|
+
// support for type options. We keep those temporarily until we update everything
|
|
388
|
+
// to use the new typed options.
|
|
389
|
+
const legacyOptions = {
|
|
390
|
+
entropySource: keyring.metadata.id,
|
|
391
|
+
derivationPath,
|
|
392
|
+
groupIndex,
|
|
393
|
+
};
|
|
394
|
+
// New typed entropy options. This is required for multichain accounts.
|
|
395
|
+
const entropyOptions = {
|
|
396
|
+
entropy: {
|
|
397
|
+
type: keyring_api_1.KeyringAccountEntropyTypeOption.Mnemonic,
|
|
398
|
+
id: keyring.metadata.id,
|
|
399
|
+
derivationPath,
|
|
400
|
+
groupIndex,
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
options = {
|
|
404
|
+
...legacyOptions,
|
|
405
|
+
...entropyOptions,
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
}
|
|
353
409
|
return {
|
|
354
|
-
id
|
|
410
|
+
id,
|
|
355
411
|
address,
|
|
356
|
-
options
|
|
412
|
+
options,
|
|
357
413
|
methods: [
|
|
358
414
|
keyring_api_1.EthMethod.PersonalSign,
|
|
359
415
|
keyring_api_1.EthMethod.Sign,
|
|
@@ -364,90 +420,13 @@ _AccountsController_instances = new WeakSet(), _AccountsController_assertAccount
|
|
|
364
420
|
],
|
|
365
421
|
scopes: [keyring_api_1.EthScope.Eoa],
|
|
366
422
|
type: keyring_api_1.EthAccountType.Eoa,
|
|
367
|
-
metadata
|
|
368
|
-
name: '',
|
|
369
|
-
importTime: Date.now(),
|
|
370
|
-
keyring: {
|
|
371
|
-
type,
|
|
372
|
-
},
|
|
373
|
-
},
|
|
423
|
+
metadata,
|
|
374
424
|
};
|
|
375
425
|
}, _AccountsController_getSnapKeyring = function _AccountsController_getSnapKeyring() {
|
|
376
426
|
const [snapKeyring] = this.messagingSystem.call('KeyringController:getKeyringsByType', eth_snap_keyring_1.SnapKeyring.type);
|
|
377
427
|
// Snap keyring is not available until the first account is created in the keyring
|
|
378
428
|
// controller, so this might be undefined.
|
|
379
429
|
return snapKeyring;
|
|
380
|
-
}, _AccountsController_listSnapAccounts =
|
|
381
|
-
/**
|
|
382
|
-
* Returns a list of internal accounts created using the SnapKeyring.
|
|
383
|
-
*
|
|
384
|
-
* @returns A promise that resolves to an array of InternalAccount objects.
|
|
385
|
-
*/
|
|
386
|
-
async function _AccountsController_listSnapAccounts() {
|
|
387
|
-
const keyring = __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_getSnapKeyring).call(this);
|
|
388
|
-
if (!keyring) {
|
|
389
|
-
return [];
|
|
390
|
-
}
|
|
391
|
-
return keyring.listAccounts();
|
|
392
|
-
}, _AccountsController_listNormalAccounts =
|
|
393
|
-
/**
|
|
394
|
-
* Returns a list of normal accounts.
|
|
395
|
-
* Note: listNormalAccounts is a temporary method until the keyrings all implement the InternalAccount interface.
|
|
396
|
-
* Once all keyrings implement the InternalAccount interface, this method can be removed and getAccounts can be used instead.
|
|
397
|
-
*
|
|
398
|
-
* @returns A Promise that resolves to an array of InternalAccount objects.
|
|
399
|
-
*/
|
|
400
|
-
async function _AccountsController_listNormalAccounts() {
|
|
401
|
-
const internalAccounts = [];
|
|
402
|
-
const { keyrings } = this.messagingSystem.call('KeyringController:getState');
|
|
403
|
-
for (const keyring of keyrings) {
|
|
404
|
-
const keyringType = keyring.type;
|
|
405
|
-
if (!(0, utils_2.isNormalKeyringType)(keyringType)) {
|
|
406
|
-
// We only consider "normal accounts" here, so keep looping
|
|
407
|
-
continue;
|
|
408
|
-
}
|
|
409
|
-
for (const [accountIndex, address] of keyring.accounts.entries()) {
|
|
410
|
-
const id = (0, utils_2.getUUIDFromAddressOfNormalAccount)(address);
|
|
411
|
-
let options = {};
|
|
412
|
-
if ((0, utils_2.isHdKeyringType)(keyring.type)) {
|
|
413
|
-
options = {
|
|
414
|
-
entropySource: keyring.metadata.id,
|
|
415
|
-
// NOTE: We are not using the `hdPath` from the associated keyring here and
|
|
416
|
-
// getting the keyring instance here feels a bit overkill.
|
|
417
|
-
// This will be naturally fixed once every keyring start using `KeyringAccount` and implement the keyring API.
|
|
418
|
-
derivationPath: (0, utils_2.getDerivationPathForIndex)(accountIndex),
|
|
419
|
-
// Required now for multichain accounts.
|
|
420
|
-
groupIndex: accountIndex,
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
const nameLastUpdatedAt = __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, id, 'nameLastUpdatedAt');
|
|
424
|
-
internalAccounts.push({
|
|
425
|
-
id,
|
|
426
|
-
address,
|
|
427
|
-
options,
|
|
428
|
-
methods: [
|
|
429
|
-
keyring_api_1.EthMethod.PersonalSign,
|
|
430
|
-
keyring_api_1.EthMethod.Sign,
|
|
431
|
-
keyring_api_1.EthMethod.SignTransaction,
|
|
432
|
-
keyring_api_1.EthMethod.SignTypedDataV1,
|
|
433
|
-
keyring_api_1.EthMethod.SignTypedDataV3,
|
|
434
|
-
keyring_api_1.EthMethod.SignTypedDataV4,
|
|
435
|
-
],
|
|
436
|
-
scopes: [keyring_api_1.EthScope.Eoa],
|
|
437
|
-
type: keyring_api_1.EthAccountType.Eoa,
|
|
438
|
-
metadata: {
|
|
439
|
-
name: __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, id, 'name') ?? '',
|
|
440
|
-
...(nameLastUpdatedAt && { nameLastUpdatedAt }),
|
|
441
|
-
importTime: __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, id, 'importTime') ?? Date.now(),
|
|
442
|
-
lastSelected: __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_populateExistingMetadata).call(this, id, 'lastSelected') ?? 0,
|
|
443
|
-
keyring: {
|
|
444
|
-
type: keyringType,
|
|
445
|
-
},
|
|
446
|
-
},
|
|
447
|
-
});
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
return internalAccounts;
|
|
451
430
|
}, _AccountsController_handleOnSnapKeyringAccountEvent = function _AccountsController_handleOnSnapKeyringAccountEvent(event, ...payload) {
|
|
452
431
|
this.messagingSystem.publish(event, ...payload);
|
|
453
432
|
}, _AccountsController_handleOnKeyringStateChange = function _AccountsController_handleOnKeyringStateChange({ isUnlocked, keyrings, }) {
|
|
@@ -474,7 +453,7 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
474
453
|
// Gets the patch object based on the keyring type (since Snap accounts and other accounts
|
|
475
454
|
// are handled differently).
|
|
476
455
|
const patchOf = (type) => {
|
|
477
|
-
if (
|
|
456
|
+
if ((0, utils_2.isSnapKeyringType)(type)) {
|
|
478
457
|
return patches.snap;
|
|
479
458
|
}
|
|
480
459
|
return patches.normal;
|
|
@@ -501,11 +480,7 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
501
480
|
// Otherwise, that's a new account.
|
|
502
481
|
patch.added.push({
|
|
503
482
|
address,
|
|
504
|
-
|
|
505
|
-
// Automatically injects `entropySource` for HD accounts only.
|
|
506
|
-
options: keyring.type === keyring_controller_1.KeyringTypes.hd
|
|
507
|
-
? { entropySource: keyring.metadata.id }
|
|
508
|
-
: {},
|
|
483
|
+
keyring,
|
|
509
484
|
});
|
|
510
485
|
}
|
|
511
486
|
// Keep track of those address to check for removed accounts later.
|
|
@@ -535,7 +510,7 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
535
510
|
diff.removed.push(account.id);
|
|
536
511
|
}
|
|
537
512
|
for (const added of patch.added) {
|
|
538
|
-
const account = __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_getInternalAccountFromAddressAndType).call(this, added.address, added.
|
|
513
|
+
const account = __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_getInternalAccountFromAddressAndType).call(this, added.address, added.keyring);
|
|
539
514
|
if (account) {
|
|
540
515
|
// Re-compute the list of accounts everytime, so we can make sure new names
|
|
541
516
|
// are also considered.
|
|
@@ -552,10 +527,6 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
552
527
|
importTime: Date.now(),
|
|
553
528
|
lastSelected,
|
|
554
529
|
},
|
|
555
|
-
options: {
|
|
556
|
-
...account.options,
|
|
557
|
-
...added.options,
|
|
558
|
-
},
|
|
559
530
|
};
|
|
560
531
|
diff.added.push(internalAccounts.accounts[account.id]);
|
|
561
532
|
}
|
|
@@ -640,10 +611,9 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
640
611
|
return (accounts ?? this.listMultichainAccounts()).filter((internalAccount) => {
|
|
641
612
|
// We do consider `hd` and `simple` keyrings to be of same type. So we check those 2 types
|
|
642
613
|
// to group those accounts together!
|
|
643
|
-
if (keyringType
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
internalAccount.metadata.keyring.type === keyring_controller_1.KeyringTypes.simple);
|
|
614
|
+
if ((0, utils_2.isHdKeyringType)(keyringType) || (0, utils_2.isSimpleKeyringType)(keyringType)) {
|
|
615
|
+
return ((0, utils_2.isHdKeyringType)(internalAccount.metadata.keyring.type) ||
|
|
616
|
+
(0, utils_2.isSimpleKeyringType)(internalAccount.metadata.keyring.type));
|
|
647
617
|
}
|
|
648
618
|
return internalAccount.metadata.keyring.type === keyringType;
|
|
649
619
|
});
|
|
@@ -658,18 +628,40 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
658
628
|
// NOTE: For now we use the current date, since we know this value
|
|
659
629
|
// will always be higher than any already selected account index.
|
|
660
630
|
return Date.now();
|
|
661
|
-
}, _AccountsController_getInternalAccountFromAddressAndType = function _AccountsController_getInternalAccountFromAddressAndType(address,
|
|
662
|
-
if (
|
|
663
|
-
const
|
|
631
|
+
}, _AccountsController_getInternalAccountFromAddressAndType = function _AccountsController_getInternalAccountFromAddressAndType(address, keyring) {
|
|
632
|
+
if ((0, utils_2.isSnapKeyringType)(keyring.type)) {
|
|
633
|
+
const snapKeyring = __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_getSnapKeyring).call(this);
|
|
664
634
|
// We need the Snap keyring to retrieve the account from its address.
|
|
665
|
-
if (!
|
|
635
|
+
if (!snapKeyring) {
|
|
666
636
|
return undefined;
|
|
667
637
|
}
|
|
668
638
|
// This might be undefined if the Snap deleted the account before
|
|
669
639
|
// reaching that point.
|
|
670
|
-
|
|
640
|
+
let account = snapKeyring.getAccountByAddress(address);
|
|
641
|
+
if (account) {
|
|
642
|
+
// We force the copy here, to avoid mutating the reference returned by the Snap keyring.
|
|
643
|
+
account = (0, lodash_1.cloneDeep)(account);
|
|
644
|
+
// MIGRATION: To avoid any existing Snap account migration, we are
|
|
645
|
+
// just "adding" the new typed options that we need for multichain
|
|
646
|
+
// accounts. Ultimately, we would need a real Snap account migrations
|
|
647
|
+
// (being handled by each Snaps).
|
|
648
|
+
if ((0, utils_2.isHdSnapKeyringAccount)(account)) {
|
|
649
|
+
const options = {
|
|
650
|
+
...account.options,
|
|
651
|
+
entropy: {
|
|
652
|
+
type: keyring_api_1.KeyringAccountEntropyTypeOption.Mnemonic,
|
|
653
|
+
id: account.options.entropySource,
|
|
654
|
+
groupIndex: account.options.index,
|
|
655
|
+
derivationPath: account.options.derivationPath,
|
|
656
|
+
},
|
|
657
|
+
};
|
|
658
|
+
// Inject the new typed options to the internal account copy.
|
|
659
|
+
account.options = options;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
return account;
|
|
671
663
|
}
|
|
672
|
-
return __classPrivateFieldGet(this, _AccountsController_instances, "m",
|
|
664
|
+
return __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_getInternalAccountForNonSnapAccount).call(this, address, keyring);
|
|
673
665
|
}, _AccountsController_handleOnMultichainNetworkDidChange = function _AccountsController_handleOnMultichainNetworkDidChange(id) {
|
|
674
666
|
let accountId;
|
|
675
667
|
// We only support non-EVM Caip chain IDs at the moment. Ex Solana and Bitcoin
|
|
@@ -691,9 +683,6 @@ async function _AccountsController_listNormalAccounts() {
|
|
|
691
683
|
currentState.internalAccounts.selectedAccount = accountId;
|
|
692
684
|
});
|
|
693
685
|
// DO NOT publish AccountsController:setSelectedAccount to prevent circular listener loops
|
|
694
|
-
}, _AccountsController_populateExistingMetadata = function _AccountsController_populateExistingMetadata(accountId, metadataKey, account) {
|
|
695
|
-
const internalAccount = account ?? this.getAccount(accountId);
|
|
696
|
-
return internalAccount ? internalAccount.metadata[metadataKey] : undefined;
|
|
697
686
|
}, _AccountsController_subscribeToMessageEvents = function _AccountsController_subscribeToMessageEvents() {
|
|
698
687
|
this.messagingSystem.subscribe('SnapController:stateChange', (snapStateState) => __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_handleOnSnapStateChange).call(this, snapStateState));
|
|
699
688
|
this.messagingSystem.subscribe('KeyringController:stateChange', (keyringState) => __classPrivateFieldGet(this, _AccountsController_instances, "m", _AccountsController_handleOnKeyringStateChange).call(this, keyringState));
|