@metamask-previews/multichain-account-service 4.0.0-preview-a2f1e6f9 → 4.0.0-preview-7334bbce
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 +21 -0
- package/dist/MultichainAccountGroup.cjs +84 -45
- package/dist/MultichainAccountGroup.cjs.map +1 -1
- package/dist/MultichainAccountGroup.d.cts +18 -5
- package/dist/MultichainAccountGroup.d.cts.map +1 -1
- package/dist/MultichainAccountGroup.d.mts +18 -5
- package/dist/MultichainAccountGroup.d.mts.map +1 -1
- package/dist/MultichainAccountGroup.mjs +84 -45
- package/dist/MultichainAccountGroup.mjs.map +1 -1
- package/dist/MultichainAccountService.cjs +126 -113
- package/dist/MultichainAccountService.cjs.map +1 -1
- package/dist/MultichainAccountService.d.cts +36 -20
- package/dist/MultichainAccountService.d.cts.map +1 -1
- package/dist/MultichainAccountService.d.mts +36 -20
- package/dist/MultichainAccountService.d.mts.map +1 -1
- package/dist/MultichainAccountService.mjs +127 -114
- package/dist/MultichainAccountService.mjs.map +1 -1
- package/dist/MultichainAccountWallet.cjs +107 -123
- package/dist/MultichainAccountWallet.cjs.map +1 -1
- package/dist/MultichainAccountWallet.d.cts +5 -4
- package/dist/MultichainAccountWallet.d.cts.map +1 -1
- package/dist/MultichainAccountWallet.d.mts +5 -4
- package/dist/MultichainAccountWallet.d.mts.map +1 -1
- package/dist/MultichainAccountWallet.mjs +108 -124
- package/dist/MultichainAccountWallet.mjs.map +1 -1
- package/dist/providers/AccountProviderWrapper.cjs +18 -0
- package/dist/providers/AccountProviderWrapper.cjs.map +1 -1
- package/dist/providers/AccountProviderWrapper.d.cts +12 -0
- package/dist/providers/AccountProviderWrapper.d.cts.map +1 -1
- package/dist/providers/AccountProviderWrapper.d.mts +12 -0
- package/dist/providers/AccountProviderWrapper.d.mts.map +1 -1
- package/dist/providers/AccountProviderWrapper.mjs +18 -0
- package/dist/providers/AccountProviderWrapper.mjs.map +1 -1
- package/dist/providers/BaseBip44AccountProvider.cjs +45 -20
- package/dist/providers/BaseBip44AccountProvider.cjs.map +1 -1
- package/dist/providers/BaseBip44AccountProvider.d.cts +58 -6
- package/dist/providers/BaseBip44AccountProvider.d.cts.map +1 -1
- package/dist/providers/BaseBip44AccountProvider.d.mts +58 -6
- package/dist/providers/BaseBip44AccountProvider.d.mts.map +1 -1
- package/dist/providers/BaseBip44AccountProvider.mjs +45 -20
- package/dist/providers/BaseBip44AccountProvider.mjs.map +1 -1
- package/dist/providers/BtcAccountProvider.cjs +1 -0
- package/dist/providers/BtcAccountProvider.cjs.map +1 -1
- package/dist/providers/BtcAccountProvider.d.cts.map +1 -1
- package/dist/providers/BtcAccountProvider.d.mts.map +1 -1
- package/dist/providers/BtcAccountProvider.mjs +1 -0
- package/dist/providers/BtcAccountProvider.mjs.map +1 -1
- package/dist/providers/EvmAccountProvider.cjs +39 -5
- package/dist/providers/EvmAccountProvider.cjs.map +1 -1
- package/dist/providers/EvmAccountProvider.d.cts +8 -0
- package/dist/providers/EvmAccountProvider.d.cts.map +1 -1
- package/dist/providers/EvmAccountProvider.d.mts +8 -0
- package/dist/providers/EvmAccountProvider.d.mts.map +1 -1
- package/dist/providers/EvmAccountProvider.mjs +39 -5
- package/dist/providers/EvmAccountProvider.mjs.map +1 -1
- package/dist/providers/SolAccountProvider.cjs +4 -0
- package/dist/providers/SolAccountProvider.cjs.map +1 -1
- package/dist/providers/SolAccountProvider.d.cts.map +1 -1
- package/dist/providers/SolAccountProvider.d.mts.map +1 -1
- package/dist/providers/SolAccountProvider.mjs +4 -0
- package/dist/providers/SolAccountProvider.mjs.map +1 -1
- package/dist/providers/TrxAccountProvider.cjs +1 -0
- package/dist/providers/TrxAccountProvider.cjs.map +1 -1
- package/dist/providers/TrxAccountProvider.d.cts.map +1 -1
- package/dist/providers/TrxAccountProvider.d.mts.map +1 -1
- package/dist/providers/TrxAccountProvider.mjs +1 -0
- package/dist/providers/TrxAccountProvider.mjs.map +1 -1
- package/dist/tests/messenger.cjs +3 -0
- package/dist/tests/messenger.cjs.map +1 -1
- package/dist/tests/messenger.d.cts.map +1 -1
- package/dist/tests/messenger.d.mts.map +1 -1
- package/dist/tests/messenger.mjs +3 -0
- package/dist/tests/messenger.mjs.map +1 -1
- package/dist/tests/providers.cjs +62 -7
- package/dist/tests/providers.cjs.map +1 -1
- package/dist/tests/providers.d.cts +17 -3
- package/dist/tests/providers.d.cts.map +1 -1
- package/dist/tests/providers.d.mts +17 -3
- package/dist/tests/providers.d.mts.map +1 -1
- package/dist/tests/providers.mjs +60 -6
- package/dist/tests/providers.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +3 -3
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +3 -3
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils.cjs +1 -11
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +0 -1
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +0 -1
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +0 -9
- package/dist/utils.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -19,10 +19,34 @@ export type MultichainAccountServiceOptions = {
|
|
|
19
19
|
};
|
|
20
20
|
config?: MultichainAccountServiceConfig;
|
|
21
21
|
};
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
/**
|
|
23
|
+
* The keys used to identify an account in the service state.
|
|
24
|
+
*/
|
|
25
|
+
export type StateKeys = {
|
|
26
|
+
entropySource: EntropySourceId;
|
|
27
|
+
groupIndex: number;
|
|
28
|
+
providerName: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* The service state.
|
|
32
|
+
*/
|
|
33
|
+
export type ServiceState = {
|
|
34
|
+
[entropySource: StateKeys['entropySource']]: {
|
|
35
|
+
[groupIndex: string]: {
|
|
36
|
+
[providerName: StateKeys['providerName']]: Bip44Account<KeyringAccount>['id'][];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export type CreateWalletParams = {
|
|
41
|
+
type: 'restore';
|
|
42
|
+
password: string;
|
|
43
|
+
mnemonic: Uint8Array;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'import';
|
|
46
|
+
mnemonic: Uint8Array;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'create';
|
|
49
|
+
password: string;
|
|
26
50
|
};
|
|
27
51
|
/**
|
|
28
52
|
* Service to expose multichain accounts capabilities.
|
|
@@ -65,14 +89,6 @@ export declare class MultichainAccountService {
|
|
|
65
89
|
* ----------------------------------------------------------------------------------
|
|
66
90
|
*/
|
|
67
91
|
resyncAccounts(): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Gets the account's context which contains its multichain wallet and
|
|
70
|
-
* multichain account group references.
|
|
71
|
-
*
|
|
72
|
-
* @param id - Account ID.
|
|
73
|
-
* @returns The account context if any, undefined otherwise.
|
|
74
|
-
*/
|
|
75
|
-
getAccountContext(id: KeyringAccount['id']): AccountContext<Bip44Account<KeyringAccount>> | undefined;
|
|
76
92
|
/**
|
|
77
93
|
* Gets a reference to the multichain account wallet matching this entropy source.
|
|
78
94
|
*
|
|
@@ -91,19 +107,20 @@ export declare class MultichainAccountService {
|
|
|
91
107
|
*/
|
|
92
108
|
getMultichainAccountWallets(): MultichainAccountWallet<Bip44Account<KeyringAccount>>[];
|
|
93
109
|
/**
|
|
94
|
-
* Creates a new multichain account wallet
|
|
110
|
+
* Creates a new multichain account wallet by either importing an existing mnemonic,
|
|
111
|
+
* creating a new vault and keychain, or restoring a vault and keyring.
|
|
95
112
|
*
|
|
96
113
|
* NOTE: This method should only be called in client code where a mutex lock is acquired.
|
|
97
|
-
* `
|
|
114
|
+
* `discoverAccounts` should be called after this method to discover and create accounts.
|
|
98
115
|
*
|
|
99
|
-
* @param
|
|
100
|
-
* @param
|
|
116
|
+
* @param params - The parameters to use to create the new wallet.
|
|
117
|
+
* @param params.mnemonic - The mnemonic to use to create the new wallet.
|
|
118
|
+
* @param params.password - The password to encrypt the vault with.
|
|
119
|
+
* @param params.type - The flow type to use to create the new wallet.
|
|
101
120
|
* @throws If the mnemonic has already been imported.
|
|
102
121
|
* @returns The new multichain account wallet.
|
|
103
122
|
*/
|
|
104
|
-
createMultichainAccountWallet(
|
|
105
|
-
mnemonic: string;
|
|
106
|
-
}): Promise<MultichainAccountWallet<Bip44Account<KeyringAccount>>>;
|
|
123
|
+
createMultichainAccountWallet(params: CreateWalletParams): Promise<MultichainAccountWallet<Bip44Account<KeyringAccount>>>;
|
|
107
124
|
/**
|
|
108
125
|
* Gets a reference to the multichain account group matching this entropy source
|
|
109
126
|
* and a group index.
|
|
@@ -171,5 +188,4 @@ export declare class MultichainAccountService {
|
|
|
171
188
|
*/
|
|
172
189
|
alignWallet(entropySource: EntropySourceId): Promise<void>;
|
|
173
190
|
}
|
|
174
|
-
export {};
|
|
175
191
|
//# sourceMappingURL=MultichainAccountService.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultichainAccountService.d.cts","sourceRoot":"","sources":["../src/MultichainAccountService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,YAAY,EACb,8BAA8B;
|
|
1
|
+
{"version":3,"file":"MultichainAccountService.d.cts","sourceRoot":"","sources":["../src/MultichainAccountService.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,10 +19,34 @@ export type MultichainAccountServiceOptions = {
|
|
|
19
19
|
};
|
|
20
20
|
config?: MultichainAccountServiceConfig;
|
|
21
21
|
};
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
/**
|
|
23
|
+
* The keys used to identify an account in the service state.
|
|
24
|
+
*/
|
|
25
|
+
export type StateKeys = {
|
|
26
|
+
entropySource: EntropySourceId;
|
|
27
|
+
groupIndex: number;
|
|
28
|
+
providerName: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* The service state.
|
|
32
|
+
*/
|
|
33
|
+
export type ServiceState = {
|
|
34
|
+
[entropySource: StateKeys['entropySource']]: {
|
|
35
|
+
[groupIndex: string]: {
|
|
36
|
+
[providerName: StateKeys['providerName']]: Bip44Account<KeyringAccount>['id'][];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export type CreateWalletParams = {
|
|
41
|
+
type: 'restore';
|
|
42
|
+
password: string;
|
|
43
|
+
mnemonic: Uint8Array;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'import';
|
|
46
|
+
mnemonic: Uint8Array;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'create';
|
|
49
|
+
password: string;
|
|
26
50
|
};
|
|
27
51
|
/**
|
|
28
52
|
* Service to expose multichain accounts capabilities.
|
|
@@ -65,14 +89,6 @@ export declare class MultichainAccountService {
|
|
|
65
89
|
* ----------------------------------------------------------------------------------
|
|
66
90
|
*/
|
|
67
91
|
resyncAccounts(): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Gets the account's context which contains its multichain wallet and
|
|
70
|
-
* multichain account group references.
|
|
71
|
-
*
|
|
72
|
-
* @param id - Account ID.
|
|
73
|
-
* @returns The account context if any, undefined otherwise.
|
|
74
|
-
*/
|
|
75
|
-
getAccountContext(id: KeyringAccount['id']): AccountContext<Bip44Account<KeyringAccount>> | undefined;
|
|
76
92
|
/**
|
|
77
93
|
* Gets a reference to the multichain account wallet matching this entropy source.
|
|
78
94
|
*
|
|
@@ -91,19 +107,20 @@ export declare class MultichainAccountService {
|
|
|
91
107
|
*/
|
|
92
108
|
getMultichainAccountWallets(): MultichainAccountWallet<Bip44Account<KeyringAccount>>[];
|
|
93
109
|
/**
|
|
94
|
-
* Creates a new multichain account wallet
|
|
110
|
+
* Creates a new multichain account wallet by either importing an existing mnemonic,
|
|
111
|
+
* creating a new vault and keychain, or restoring a vault and keyring.
|
|
95
112
|
*
|
|
96
113
|
* NOTE: This method should only be called in client code where a mutex lock is acquired.
|
|
97
|
-
* `
|
|
114
|
+
* `discoverAccounts` should be called after this method to discover and create accounts.
|
|
98
115
|
*
|
|
99
|
-
* @param
|
|
100
|
-
* @param
|
|
116
|
+
* @param params - The parameters to use to create the new wallet.
|
|
117
|
+
* @param params.mnemonic - The mnemonic to use to create the new wallet.
|
|
118
|
+
* @param params.password - The password to encrypt the vault with.
|
|
119
|
+
* @param params.type - The flow type to use to create the new wallet.
|
|
101
120
|
* @throws If the mnemonic has already been imported.
|
|
102
121
|
* @returns The new multichain account wallet.
|
|
103
122
|
*/
|
|
104
|
-
createMultichainAccountWallet(
|
|
105
|
-
mnemonic: string;
|
|
106
|
-
}): Promise<MultichainAccountWallet<Bip44Account<KeyringAccount>>>;
|
|
123
|
+
createMultichainAccountWallet(params: CreateWalletParams): Promise<MultichainAccountWallet<Bip44Account<KeyringAccount>>>;
|
|
107
124
|
/**
|
|
108
125
|
* Gets a reference to the multichain account group matching this entropy source
|
|
109
126
|
* and a group index.
|
|
@@ -171,5 +188,4 @@ export declare class MultichainAccountService {
|
|
|
171
188
|
*/
|
|
172
189
|
alignWallet(entropySource: EntropySourceId): Promise<void>;
|
|
173
190
|
}
|
|
174
|
-
export {};
|
|
175
191
|
//# sourceMappingURL=MultichainAccountService.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultichainAccountService.d.mts","sourceRoot":"","sources":["../src/MultichainAccountService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,YAAY,EACb,8BAA8B;
|
|
1
|
+
{"version":3,"file":"MultichainAccountService.d.mts","sourceRoot":"","sources":["../src/MultichainAccountService.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
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");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _MultichainAccountService_instances, _MultichainAccountService_messenger, _MultichainAccountService_providers, _MultichainAccountService_wallets,
|
|
12
|
+
var _MultichainAccountService_instances, _MultichainAccountService_messenger, _MultichainAccountService_providers, _MultichainAccountService_wallets, _MultichainAccountService_getStateKeys, _MultichainAccountService_constructServiceState, _MultichainAccountService_getWallet, _MultichainAccountService_getPrimaryEntropySourceId, _MultichainAccountService_createWalletByImport, _MultichainAccountService_createWalletByNewVault, _MultichainAccountService_createWalletByRestore;
|
|
13
13
|
import { isBip44Account, toMultichainAccountWalletId } from "@metamask/account-api";
|
|
14
|
-
import { mnemonicPhraseToBytes } from "@metamask/key-tree";
|
|
15
14
|
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
16
|
-
import { areUint8ArraysEqual } from "@metamask/utils";
|
|
15
|
+
import { areUint8ArraysEqual, assert } from "@metamask/utils";
|
|
17
16
|
import { traceFallback } from "./analytics/index.mjs";
|
|
18
17
|
import { projectLogger as log } from "./logger.mjs";
|
|
19
18
|
import { MultichainAccountWallet } from "./MultichainAccountWallet.mjs";
|
|
@@ -41,14 +40,12 @@ export class MultichainAccountService {
|
|
|
41
40
|
_MultichainAccountService_messenger.set(this, void 0);
|
|
42
41
|
_MultichainAccountService_providers.set(this, void 0);
|
|
43
42
|
_MultichainAccountService_wallets.set(this, void 0);
|
|
44
|
-
_MultichainAccountService_accountIdToContext.set(this, void 0);
|
|
45
43
|
/**
|
|
46
44
|
* The name of the service.
|
|
47
45
|
*/
|
|
48
46
|
this.name = serviceName;
|
|
49
47
|
__classPrivateFieldSet(this, _MultichainAccountService_messenger, messenger, "f");
|
|
50
48
|
__classPrivateFieldSet(this, _MultichainAccountService_wallets, new Map(), "f");
|
|
51
|
-
__classPrivateFieldSet(this, _MultichainAccountService_accountIdToContext, new Map(), "f");
|
|
52
49
|
// Pass trace callback directly to preserve original 'this' context
|
|
53
50
|
// This avoids binding the callback to the MultichainAccountService instance
|
|
54
51
|
const traceCallback = config?.trace ?? traceFallback;
|
|
@@ -70,8 +67,6 @@ export class MultichainAccountService {
|
|
|
70
67
|
__classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").registerActionHandler('MultichainAccountService:alignWallet', (...args) => this.alignWallet(...args));
|
|
71
68
|
__classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").registerActionHandler('MultichainAccountService:createMultichainAccountWallet', (...args) => this.createMultichainAccountWallet(...args));
|
|
72
69
|
__classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").registerActionHandler('MultichainAccountService:resyncAccounts', (...args) => this.resyncAccounts(...args));
|
|
73
|
-
__classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").subscribe('AccountsController:accountAdded', (account) => __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_handleOnAccountAdded).call(this, account));
|
|
74
|
-
__classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").subscribe('AccountsController:accountRemoved', (id) => __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_handleOnAccountRemoved).call(this, id));
|
|
75
70
|
}
|
|
76
71
|
/**
|
|
77
72
|
* Initialize the service and constructs the internal reprensentation of
|
|
@@ -80,32 +75,22 @@ export class MultichainAccountService {
|
|
|
80
75
|
async init() {
|
|
81
76
|
log('Initializing...');
|
|
82
77
|
__classPrivateFieldGet(this, _MultichainAccountService_wallets, "f").clear();
|
|
83
|
-
__classPrivateFieldGet(this,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// Reverse mapping between account ID and their multichain wallet/account:
|
|
100
|
-
for (const group of wallet.getMultichainAccountGroups()) {
|
|
101
|
-
for (const account of group.getAccounts()) {
|
|
102
|
-
__classPrivateFieldGet(this, _MultichainAccountService_accountIdToContext, "f").set(account.id, {
|
|
103
|
-
wallet,
|
|
104
|
-
group,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
78
|
+
const { serviceState, providerState } = __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_constructServiceState).call(this);
|
|
79
|
+
for (const provider of __classPrivateFieldGet(this, _MultichainAccountService_providers, "f")) {
|
|
80
|
+
const providerName = provider.getName();
|
|
81
|
+
// Initialize providers even if there are no accounts yet.
|
|
82
|
+
// Passing an empty array ensures providers start in a valid state.
|
|
83
|
+
const state = providerState[providerName] ?? [];
|
|
84
|
+
provider.init(state);
|
|
85
|
+
}
|
|
86
|
+
for (const entropySource of Object.keys(serviceState)) {
|
|
87
|
+
const wallet = new MultichainAccountWallet({
|
|
88
|
+
entropySource,
|
|
89
|
+
providers: __classPrivateFieldGet(this, _MultichainAccountService_providers, "f"),
|
|
90
|
+
messenger: __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f"),
|
|
91
|
+
});
|
|
92
|
+
wallet.init(serviceState[entropySource]);
|
|
93
|
+
__classPrivateFieldGet(this, _MultichainAccountService_wallets, "f").set(wallet.id, wallet);
|
|
109
94
|
}
|
|
110
95
|
log('Initialized');
|
|
111
96
|
}
|
|
@@ -147,16 +132,6 @@ export class MultichainAccountService {
|
|
|
147
132
|
}));
|
|
148
133
|
log('Providers got re-synced!');
|
|
149
134
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Gets the account's context which contains its multichain wallet and
|
|
152
|
-
* multichain account group references.
|
|
153
|
-
*
|
|
154
|
-
* @param id - Account ID.
|
|
155
|
-
* @returns The account context if any, undefined otherwise.
|
|
156
|
-
*/
|
|
157
|
-
getAccountContext(id) {
|
|
158
|
-
return __classPrivateFieldGet(this, _MultichainAccountService_accountIdToContext, "f").get(id);
|
|
159
|
-
}
|
|
160
135
|
/**
|
|
161
136
|
* Gets a reference to the multichain account wallet matching this entropy source.
|
|
162
137
|
*
|
|
@@ -177,35 +152,31 @@ export class MultichainAccountService {
|
|
|
177
152
|
return Array.from(__classPrivateFieldGet(this, _MultichainAccountService_wallets, "f").values());
|
|
178
153
|
}
|
|
179
154
|
/**
|
|
180
|
-
* Creates a new multichain account wallet
|
|
155
|
+
* Creates a new multichain account wallet by either importing an existing mnemonic,
|
|
156
|
+
* creating a new vault and keychain, or restoring a vault and keyring.
|
|
181
157
|
*
|
|
182
158
|
* NOTE: This method should only be called in client code where a mutex lock is acquired.
|
|
183
|
-
* `
|
|
159
|
+
* `discoverAccounts` should be called after this method to discover and create accounts.
|
|
184
160
|
*
|
|
185
|
-
* @param
|
|
186
|
-
* @param
|
|
161
|
+
* @param params - The parameters to use to create the new wallet.
|
|
162
|
+
* @param params.mnemonic - The mnemonic to use to create the new wallet.
|
|
163
|
+
* @param params.password - The password to encrypt the vault with.
|
|
164
|
+
* @param params.type - The flow type to use to create the new wallet.
|
|
187
165
|
* @throws If the mnemonic has already been imported.
|
|
188
166
|
* @returns The new multichain account wallet.
|
|
189
167
|
*/
|
|
190
|
-
async createMultichainAccountWallet(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
if (!keyring.mnemonic) {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
return areUint8ArraysEqual(keyring.mnemonic, mnemonicAsBytes);
|
|
198
|
-
});
|
|
199
|
-
if (alreadyHasImportedSrp) {
|
|
200
|
-
throw new Error('This Secret Recovery Phrase has already been imported.');
|
|
168
|
+
async createMultichainAccountWallet(params) {
|
|
169
|
+
let wallet;
|
|
170
|
+
if (params.type === 'import') {
|
|
171
|
+
wallet = await __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_createWalletByImport).call(this, params.mnemonic);
|
|
201
172
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
173
|
+
else if (params.type === 'create') {
|
|
174
|
+
wallet = await __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_createWalletByNewVault).call(this, params.password);
|
|
175
|
+
}
|
|
176
|
+
else if (params.type === 'restore') {
|
|
177
|
+
wallet = await __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_createWalletByRestore).call(this, params.password, params.mnemonic);
|
|
178
|
+
}
|
|
179
|
+
assert(wallet, 'Failed to create wallet.');
|
|
209
180
|
__classPrivateFieldGet(this, _MultichainAccountService_wallets, "f").set(wallet.id, wallet);
|
|
210
181
|
log(`Wallet created: [${wallet.id}]`);
|
|
211
182
|
return wallet;
|
|
@@ -303,64 +274,106 @@ export class MultichainAccountService {
|
|
|
303
274
|
log(`Wallet [${wallet.id}] aligned`);
|
|
304
275
|
}
|
|
305
276
|
}
|
|
306
|
-
_MultichainAccountService_messenger = new WeakMap(), _MultichainAccountService_providers = new WeakMap(), _MultichainAccountService_wallets = new WeakMap(),
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
log(`Adding new wallet for entropy: "${account.options.entropy.id}" (for account: "${account.id}")`);
|
|
315
|
-
// That's a new wallet.
|
|
316
|
-
wallet = new MultichainAccountWallet({
|
|
317
|
-
entropySource: account.options.entropy.id,
|
|
318
|
-
providers: __classPrivateFieldGet(this, _MultichainAccountService_providers, "f"),
|
|
319
|
-
messenger: __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f"),
|
|
320
|
-
});
|
|
321
|
-
__classPrivateFieldGet(this, _MultichainAccountService_wallets, "f").set(wallet.id, wallet);
|
|
322
|
-
// If that's a new wallet wallet. There's nothing to "force-sync".
|
|
323
|
-
sync = false;
|
|
324
|
-
}
|
|
325
|
-
let group = wallet.getMultichainAccountGroup(account.options.entropy.groupIndex);
|
|
326
|
-
if (!group) {
|
|
327
|
-
// This new account is a new multichain account, let the wallet know
|
|
328
|
-
// it has to re-sync with its providers.
|
|
329
|
-
if (sync) {
|
|
330
|
-
wallet.sync();
|
|
277
|
+
_MultichainAccountService_messenger = new WeakMap(), _MultichainAccountService_providers = new WeakMap(), _MultichainAccountService_wallets = new WeakMap(), _MultichainAccountService_instances = new WeakSet(), _MultichainAccountService_getStateKeys = function _MultichainAccountService_getStateKeys(account) {
|
|
278
|
+
for (const provider of __classPrivateFieldGet(this, _MultichainAccountService_providers, "f")) {
|
|
279
|
+
if (isBip44Account(account) && provider.isAccountCompatible(account)) {
|
|
280
|
+
return {
|
|
281
|
+
entropySource: account.options.entropy.id,
|
|
282
|
+
groupIndex: account.options.entropy.groupIndex,
|
|
283
|
+
providerName: provider.getName(),
|
|
284
|
+
};
|
|
331
285
|
}
|
|
332
|
-
group = wallet.getMultichainAccountGroup(account.options.entropy.groupIndex);
|
|
333
|
-
// If that's a new multichain account. There's nothing to "force-sync".
|
|
334
|
-
sync = false;
|
|
335
286
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
287
|
+
return null;
|
|
288
|
+
}, _MultichainAccountService_constructServiceState = function _MultichainAccountService_constructServiceState() {
|
|
289
|
+
var _a, _b;
|
|
290
|
+
const accounts = __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").call('AccountsController:listMultichainAccounts');
|
|
291
|
+
const serviceState = {};
|
|
292
|
+
const providerState = {};
|
|
293
|
+
for (const account of accounts) {
|
|
294
|
+
const keys = __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_getStateKeys).call(this, account);
|
|
295
|
+
if (keys) {
|
|
296
|
+
const { entropySource, groupIndex, providerName } = keys;
|
|
297
|
+
serviceState[entropySource] ?? (serviceState[entropySource] = {});
|
|
298
|
+
(_a = serviceState[entropySource])[groupIndex] ?? (_a[groupIndex] = {});
|
|
299
|
+
(_b = serviceState[entropySource][groupIndex])[providerName] ?? (_b[providerName] = []);
|
|
300
|
+
serviceState[entropySource][groupIndex][providerName].push(account.id);
|
|
301
|
+
providerState[providerName] ?? (providerState[providerName] = []);
|
|
302
|
+
providerState[providerName].push(account.id);
|
|
341
303
|
}
|
|
342
|
-
// Same here, this account should have been already grouped in that
|
|
343
|
-
// multichain account.
|
|
344
|
-
__classPrivateFieldGet(this, _MultichainAccountService_accountIdToContext, "f").set(account.id, {
|
|
345
|
-
wallet,
|
|
346
|
-
group,
|
|
347
|
-
});
|
|
348
304
|
}
|
|
349
|
-
|
|
350
|
-
// Force sync of the appropriate wallet if an account got removed.
|
|
351
|
-
const found = __classPrivateFieldGet(this, _MultichainAccountService_accountIdToContext, "f").get(id);
|
|
352
|
-
if (found) {
|
|
353
|
-
const { wallet } = found;
|
|
354
|
-
log(`Re-synchronize wallet [${wallet.id}] since account "${id}" got removed`);
|
|
355
|
-
wallet.sync();
|
|
356
|
-
}
|
|
357
|
-
// Safe to call delete even if the `id` was not referencing a BIP-44 account.
|
|
358
|
-
__classPrivateFieldGet(this, _MultichainAccountService_accountIdToContext, "f").delete(id);
|
|
305
|
+
return { serviceState, providerState };
|
|
359
306
|
}, _MultichainAccountService_getWallet = function _MultichainAccountService_getWallet(entropySource) {
|
|
360
307
|
const wallet = __classPrivateFieldGet(this, _MultichainAccountService_wallets, "f").get(toMultichainAccountWalletId(entropySource));
|
|
361
308
|
if (!wallet) {
|
|
362
309
|
throw new Error('Unknown wallet, no wallet matching this entropy source');
|
|
363
310
|
}
|
|
364
311
|
return wallet;
|
|
312
|
+
}, _MultichainAccountService_getPrimaryEntropySourceId = function _MultichainAccountService_getPrimaryEntropySourceId() {
|
|
313
|
+
const { keyrings } = __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").call('KeyringController:getState');
|
|
314
|
+
const primaryKeyring = keyrings.find((keyring) => keyring.type === 'HD Key Tree');
|
|
315
|
+
assert(primaryKeyring, 'Primary keyring not found');
|
|
316
|
+
return primaryKeyring.metadata.id;
|
|
317
|
+
}, _MultichainAccountService_createWalletByImport =
|
|
318
|
+
/**
|
|
319
|
+
* Creates a new multichain account wallet by importing an existing mnemonic.
|
|
320
|
+
*
|
|
321
|
+
* @param mnemonic - The mnemonic to use to create the new wallet.
|
|
322
|
+
* @returns The new multichain account wallet.
|
|
323
|
+
*/
|
|
324
|
+
async function _MultichainAccountService_createWalletByImport(mnemonic) {
|
|
325
|
+
log(`Creating new wallet by importing an existing mnemonic...`);
|
|
326
|
+
const existingKeyrings = __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").call('KeyringController:getKeyringsByType', KeyringTypes.hd);
|
|
327
|
+
const alreadyHasImportedSrp = existingKeyrings.some((keyring) => {
|
|
328
|
+
if (!keyring.mnemonic) {
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
return areUint8ArraysEqual(keyring.mnemonic, mnemonic);
|
|
332
|
+
});
|
|
333
|
+
if (alreadyHasImportedSrp) {
|
|
334
|
+
throw new Error('This Secret Recovery Phrase has already been imported.');
|
|
335
|
+
}
|
|
336
|
+
const result = await __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").call('KeyringController:addNewKeyring', KeyringTypes.hd, { mnemonic });
|
|
337
|
+
// The wallet is ripe for discovery
|
|
338
|
+
return new MultichainAccountWallet({
|
|
339
|
+
providers: __classPrivateFieldGet(this, _MultichainAccountService_providers, "f"),
|
|
340
|
+
entropySource: result.id,
|
|
341
|
+
messenger: __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f"),
|
|
342
|
+
});
|
|
343
|
+
}, _MultichainAccountService_createWalletByNewVault =
|
|
344
|
+
/**
|
|
345
|
+
* Creates a new multichain account wallet by creating a new vault and keychain.
|
|
346
|
+
*
|
|
347
|
+
* @param password - The password to encrypt the vault with.
|
|
348
|
+
* @returns The new multichain account wallet.
|
|
349
|
+
*/
|
|
350
|
+
async function _MultichainAccountService_createWalletByNewVault(password) {
|
|
351
|
+
log(`Creating new wallet by creating a new vault and keychain...`);
|
|
352
|
+
await __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").call('KeyringController:createNewVaultAndKeychain', password);
|
|
353
|
+
const entropySourceId = __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_getPrimaryEntropySourceId).call(this);
|
|
354
|
+
// The wallet is ripe for discovery
|
|
355
|
+
return new MultichainAccountWallet({
|
|
356
|
+
providers: __classPrivateFieldGet(this, _MultichainAccountService_providers, "f"),
|
|
357
|
+
entropySource: entropySourceId,
|
|
358
|
+
messenger: __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f"),
|
|
359
|
+
});
|
|
360
|
+
}, _MultichainAccountService_createWalletByRestore =
|
|
361
|
+
/**
|
|
362
|
+
* Creates a new multichain account wallet by restoring a vault and keyring.
|
|
363
|
+
*
|
|
364
|
+
* @param password - The password to encrypt the vault with.
|
|
365
|
+
* @param mnemonic - The mnemonic to use to restore the new wallet.
|
|
366
|
+
* @returns The new multichain account wallet.
|
|
367
|
+
*/
|
|
368
|
+
async function _MultichainAccountService_createWalletByRestore(password, mnemonic) {
|
|
369
|
+
log(`Creating new wallet by restoring vault and keyring...`);
|
|
370
|
+
await __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f").call('KeyringController:createNewVaultAndRestore', password, mnemonic);
|
|
371
|
+
const entropySourceId = __classPrivateFieldGet(this, _MultichainAccountService_instances, "m", _MultichainAccountService_getPrimaryEntropySourceId).call(this);
|
|
372
|
+
// The wallet is ripe for discovery
|
|
373
|
+
return new MultichainAccountWallet({
|
|
374
|
+
providers: __classPrivateFieldGet(this, _MultichainAccountService_providers, "f"),
|
|
375
|
+
entropySource: entropySourceId,
|
|
376
|
+
messenger: __classPrivateFieldGet(this, _MultichainAccountService_messenger, "f"),
|
|
377
|
+
});
|
|
365
378
|
};
|
|
366
379
|
//# sourceMappingURL=MultichainAccountService.mjs.map
|