@metamask/multichain-account-service 11.1.0 → 13.0.0
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 +39 -1
- package/dist/MultichainAccountGroup.cjs +15 -2
- package/dist/MultichainAccountGroup.cjs.map +1 -1
- package/dist/MultichainAccountGroup.d.cts +11 -0
- package/dist/MultichainAccountGroup.d.cts.map +1 -1
- package/dist/MultichainAccountGroup.d.mts +11 -0
- package/dist/MultichainAccountGroup.d.mts.map +1 -1
- package/dist/MultichainAccountGroup.mjs +15 -2
- package/dist/MultichainAccountGroup.mjs.map +1 -1
- package/dist/MultichainAccountWallet.cjs +45 -21
- package/dist/MultichainAccountWallet.cjs.map +1 -1
- package/dist/MultichainAccountWallet.d.cts.map +1 -1
- package/dist/MultichainAccountWallet.d.mts.map +1 -1
- package/dist/MultichainAccountWallet.mjs +45 -21
- package/dist/MultichainAccountWallet.mjs.map +1 -1
- package/dist/analytics/traces.cjs +0 -1
- package/dist/analytics/traces.cjs.map +1 -1
- package/dist/analytics/traces.d.cts +0 -1
- package/dist/analytics/traces.d.cts.map +1 -1
- package/dist/analytics/traces.d.mts +0 -1
- package/dist/analytics/traces.d.mts.map +1 -1
- package/dist/analytics/traces.mjs +0 -1
- package/dist/analytics/traces.mjs.map +1 -1
- package/dist/providers/BtcAccountProvider.cjs +3 -45
- package/dist/providers/BtcAccountProvider.cjs.map +1 -1
- package/dist/providers/BtcAccountProvider.d.cts +3 -12
- package/dist/providers/BtcAccountProvider.d.cts.map +1 -1
- package/dist/providers/BtcAccountProvider.d.mts +3 -12
- package/dist/providers/BtcAccountProvider.d.mts.map +1 -1
- package/dist/providers/BtcAccountProvider.mjs +4 -46
- package/dist/providers/BtcAccountProvider.mjs.map +1 -1
- package/dist/providers/SnapAccountProvider.cjs +121 -82
- package/dist/providers/SnapAccountProvider.cjs.map +1 -1
- package/dist/providers/SnapAccountProvider.d.cts +59 -21
- package/dist/providers/SnapAccountProvider.d.cts.map +1 -1
- package/dist/providers/SnapAccountProvider.d.mts +59 -21
- package/dist/providers/SnapAccountProvider.d.mts.map +1 -1
- package/dist/providers/SnapAccountProvider.mjs +123 -84
- package/dist/providers/SnapAccountProvider.mjs.map +1 -1
- package/dist/providers/SnapKeyringClient.cjs +35 -0
- package/dist/providers/SnapKeyringClient.cjs.map +1 -0
- package/dist/providers/SnapKeyringClient.d.cts +51 -0
- package/dist/providers/SnapKeyringClient.d.cts.map +1 -0
- package/dist/providers/SnapKeyringClient.d.mts +51 -0
- package/dist/providers/SnapKeyringClient.d.mts.map +1 -0
- package/dist/providers/SnapKeyringClient.mjs +31 -0
- package/dist/providers/SnapKeyringClient.mjs.map +1 -0
- package/dist/providers/SolAccountProvider.cjs +3 -45
- package/dist/providers/SolAccountProvider.cjs.map +1 -1
- package/dist/providers/SolAccountProvider.d.cts +3 -11
- package/dist/providers/SolAccountProvider.d.cts.map +1 -1
- package/dist/providers/SolAccountProvider.d.mts +3 -11
- package/dist/providers/SolAccountProvider.d.mts.map +1 -1
- package/dist/providers/SolAccountProvider.mjs +4 -46
- package/dist/providers/SolAccountProvider.mjs.map +1 -1
- package/dist/providers/TrxAccountProvider.cjs +3 -44
- package/dist/providers/TrxAccountProvider.cjs.map +1 -1
- package/dist/providers/TrxAccountProvider.d.cts +3 -12
- package/dist/providers/TrxAccountProvider.d.cts.map +1 -1
- package/dist/providers/TrxAccountProvider.d.mts +3 -12
- package/dist/providers/TrxAccountProvider.d.mts.map +1 -1
- package/dist/providers/TrxAccountProvider.mjs +4 -45
- package/dist/providers/TrxAccountProvider.mjs.map +1 -1
- package/dist/providers/XlmAccountProvider.cjs +3 -44
- package/dist/providers/XlmAccountProvider.cjs.map +1 -1
- package/dist/providers/XlmAccountProvider.d.cts +3 -12
- package/dist/providers/XlmAccountProvider.d.cts.map +1 -1
- package/dist/providers/XlmAccountProvider.d.mts +3 -12
- package/dist/providers/XlmAccountProvider.d.mts.map +1 -1
- package/dist/providers/XlmAccountProvider.mjs +4 -45
- package/dist/providers/XlmAccountProvider.mjs.map +1 -1
- package/dist/tests/messenger.cjs +1 -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 +1 -0
- package/dist/tests/messenger.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +2 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +2 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrxAccountProvider.d.cts","sourceRoot":"","sources":["../../src/providers/TrxAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;
|
|
1
|
+
{"version":3,"file":"TrxAccountProvider.d.cts","sourceRoot":"","sources":["../../src/providers/TrxAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAGnD,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAClE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,kCAA8B;AAEvE,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAEjE,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,eAAO,MAAM,mCAAmC,EAAE,wBAcjD,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,MAAM,CAAC,IAAI,SAA6B;IAExC,MAAM,CAAC,WAAW,SAA8C;IAIhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAsB;gBAGvE,SAAS,EAAE,iCAAiC,EAC5C,MAAM,GAAE,wBAA8D,EACtE,KAAK,GAAE,aAA6B;IAKtC,OAAO,IAAI,MAAM;IAIjB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,OAAO;CAMrE"}
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
import type { Bip44Account } from "@metamask/account-api";
|
|
2
2
|
import type { TraceCallback } from "@metamask/controller-utils";
|
|
3
|
-
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
4
|
-
import type { KeyringCapabilities } from "@metamask/keyring-api/v2";
|
|
5
3
|
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
6
4
|
import type { SnapId } from "@metamask/snaps-sdk";
|
|
5
|
+
import type { CaipChainId } from "@metamask/utils";
|
|
7
6
|
import type { MultichainAccountServiceMessenger } from "../types.mjs";
|
|
8
7
|
import { SnapAccountProvider } from "./SnapAccountProvider.mjs";
|
|
9
|
-
import type {
|
|
8
|
+
import type { SnapAccountProviderConfig } from "./SnapAccountProvider.mjs";
|
|
10
9
|
export type TrxAccountProviderConfig = SnapAccountProviderConfig;
|
|
11
10
|
export declare const TRX_ACCOUNT_PROVIDER_NAME = "Tron";
|
|
12
11
|
export declare const TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG: TrxAccountProviderConfig;
|
|
13
12
|
export declare class TrxAccountProvider extends SnapAccountProvider {
|
|
14
13
|
static NAME: string;
|
|
15
14
|
static TRX_SNAP_ID: SnapId;
|
|
16
|
-
readonly
|
|
15
|
+
protected readonly v1DiscoveryScopes: CaipChainId[];
|
|
17
16
|
constructor(messenger: MultichainAccountServiceMessenger, config?: TrxAccountProviderConfig, trace?: TraceCallback);
|
|
18
17
|
getName(): string;
|
|
19
18
|
isAccountCompatible(account: Bip44Account<InternalAccount>): boolean;
|
|
20
|
-
protected createAccountV1(keyring: RestrictedSnapKeyring, { entropySource, groupIndex, }: {
|
|
21
|
-
entropySource: EntropySourceId;
|
|
22
|
-
groupIndex: number;
|
|
23
|
-
}): Promise<KeyringAccount>;
|
|
24
|
-
discoverAccounts({ entropySource, groupIndex, }: {
|
|
25
|
-
entropySource: EntropySourceId;
|
|
26
|
-
groupIndex: number;
|
|
27
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
28
19
|
}
|
|
29
20
|
//# sourceMappingURL=TrxAccountProvider.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrxAccountProvider.d.mts","sourceRoot":"","sources":["../../src/providers/TrxAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;
|
|
1
|
+
{"version":3,"file":"TrxAccountProvider.d.mts","sourceRoot":"","sources":["../../src/providers/TrxAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAGnD,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAClE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,kCAA8B;AAEvE,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAEjE,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,eAAO,MAAM,mCAAmC,EAAE,wBAcjD,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,MAAM,CAAC,IAAI,SAA6B;IAExC,MAAM,CAAC,WAAW,SAA8C;IAIhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAsB;gBAGvE,SAAS,EAAE,iCAAiC,EAC5C,MAAM,GAAE,wBAA8D,EACtE,KAAK,GAAE,aAA6B;IAKtC,OAAO,IAAI,MAAM;IAIjB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,OAAO;CAMrE"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TrxAccountType, TrxScope } from "@metamask/keyring-api";
|
|
2
2
|
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
3
3
|
import { traceFallback } from "../analytics/index.mjs";
|
|
4
|
-
import { TraceName } from "../analytics/traces.mjs";
|
|
5
4
|
import { SnapAccountProvider } from "./SnapAccountProvider.mjs";
|
|
6
|
-
import { withRetry, withTimeout } from "./utils.mjs";
|
|
7
5
|
export const TRX_ACCOUNT_PROVIDER_NAME = 'Tron';
|
|
8
6
|
export const TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
9
7
|
maxConcurrency: 3,
|
|
@@ -14,7 +12,6 @@ export const TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
|
14
12
|
backOffMs: 1000,
|
|
15
13
|
},
|
|
16
14
|
createAccounts: {
|
|
17
|
-
batched: false, // For now, the Snap is not fully v2 compliant.
|
|
18
15
|
timeoutMs: 3000,
|
|
19
16
|
},
|
|
20
17
|
resyncAccounts: {
|
|
@@ -24,13 +21,9 @@ export const TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
|
24
21
|
export class TrxAccountProvider extends SnapAccountProvider {
|
|
25
22
|
constructor(messenger, config = TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG, trace = traceFallback) {
|
|
26
23
|
super(TrxAccountProvider.TRX_SNAP_ID, messenger, config, trace);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
deriveIndex: true,
|
|
31
|
-
deriveIndexRange: true,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
24
|
+
// TODO: Remove once the Snap is fully v2 — discovery is then driven by the
|
|
25
|
+
// Snap's own supported scopes via `createAccounts({ bip44:discover })`.
|
|
26
|
+
this.v1DiscoveryScopes = [TrxScope.Mainnet];
|
|
34
27
|
}
|
|
35
28
|
getName() {
|
|
36
29
|
return TrxAccountProvider.NAME;
|
|
@@ -39,40 +32,6 @@ export class TrxAccountProvider extends SnapAccountProvider {
|
|
|
39
32
|
return (account.type === TrxAccountType.Eoa &&
|
|
40
33
|
account.metadata.keyring.type === KeyringTypes.snap);
|
|
41
34
|
}
|
|
42
|
-
createAccountV1(keyring, { entropySource, groupIndex, }) {
|
|
43
|
-
return keyring.createAccount({
|
|
44
|
-
entropySource,
|
|
45
|
-
index: groupIndex,
|
|
46
|
-
addressType: TrxAccountType.Eoa,
|
|
47
|
-
scope: TrxScope.Mainnet,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
async discoverAccounts({ entropySource, groupIndex, }) {
|
|
51
|
-
return this.withSnap(async ({ client, keyring }) => {
|
|
52
|
-
return await super.trace({
|
|
53
|
-
name: TraceName.SnapDiscoverAccounts,
|
|
54
|
-
data: {
|
|
55
|
-
provider: this.getName(),
|
|
56
|
-
},
|
|
57
|
-
}, async () => {
|
|
58
|
-
if (!this.config.discovery.enabled) {
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
const discoveredAccounts = await withRetry(() => withTimeout(() => client.discoverAccounts([TrxScope.Mainnet], entropySource, groupIndex), this.config.discovery.timeoutMs), {
|
|
62
|
-
maxAttempts: this.config.discovery.maxAttempts,
|
|
63
|
-
backOffMs: this.config.discovery.backOffMs,
|
|
64
|
-
});
|
|
65
|
-
if (!discoveredAccounts.length) {
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
return await this.createBip44Accounts(keyring, {
|
|
69
|
-
type: AccountCreationType.Bip44DeriveIndex,
|
|
70
|
-
entropySource,
|
|
71
|
-
groupIndex,
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
35
|
}
|
|
77
36
|
TrxAccountProvider.NAME = TRX_ACCOUNT_PROVIDER_NAME;
|
|
78
37
|
TrxAccountProvider.TRX_SNAP_ID = 'npm:@metamask/tron-wallet-snap';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrxAccountProvider.mjs","sourceRoot":"","sources":["../../src/providers/TrxAccountProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TrxAccountProvider.mjs","sourceRoot":"","sources":["../../src/providers/TrxAccountProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,8BAA8B;AACjE,OAAO,EAAE,YAAY,EAAE,qCAAqC;AAK5D,OAAO,EAAE,aAAa,EAAE,+BAAqB;AAE7C,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAK5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEhD,MAAM,CAAC,MAAM,mCAAmC,GAA6B;IAC3E,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,IAAI;KAClC;CACF,CAAC;AAEF,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB;IASzD,YACE,SAA4C,EAC5C,SAAmC,mCAAmC,EACtE,QAAuB,aAAa;QAEpC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QATlE,2EAA2E;QAC3E,wEAAwE;QACrD,sBAAiB,GAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAQzE,CAAC;IAED,OAAO;QACL,OAAO,kBAAkB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,mBAAmB,CAAC,OAAsC;QACxD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG;YACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAM,YAAY,CAAC,IAAe,CAChE,CAAC;IACJ,CAAC;;AAzBM,uBAAI,GAAG,yBAAyB,AAA5B,CAA6B;AAEjC,8BAAW,GAAG,gCAA0C,AAA7C,CAA8C","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport { TrxAccountType, TrxScope } from '@metamask/keyring-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\nimport { traceFallback } from '../analytics';\nimport type { MultichainAccountServiceMessenger } from '../types';\nimport { SnapAccountProvider } from './SnapAccountProvider';\nimport type { SnapAccountProviderConfig } from './SnapAccountProvider';\n\nexport type TrxAccountProviderConfig = SnapAccountProviderConfig;\n\nexport const TRX_ACCOUNT_PROVIDER_NAME = 'Tron';\n\nexport const TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG: TrxAccountProviderConfig = {\n maxConcurrency: 3,\n discovery: {\n enabled: true,\n timeoutMs: 2000,\n maxAttempts: 3,\n backOffMs: 1000,\n },\n createAccounts: {\n timeoutMs: 3000,\n },\n resyncAccounts: {\n autoRemoveExtraSnapAccounts: true,\n },\n};\n\nexport class TrxAccountProvider extends SnapAccountProvider {\n static NAME = TRX_ACCOUNT_PROVIDER_NAME;\n\n static TRX_SNAP_ID = 'npm:@metamask/tron-wallet-snap' as SnapId;\n\n // TODO: Remove once the Snap is fully v2 — discovery is then driven by the\n // Snap's own supported scopes via `createAccounts({ bip44:discover })`.\n protected readonly v1DiscoveryScopes: CaipChainId[] = [TrxScope.Mainnet];\n\n constructor(\n messenger: MultichainAccountServiceMessenger,\n config: TrxAccountProviderConfig = TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG,\n trace: TraceCallback = traceFallback,\n ) {\n super(TrxAccountProvider.TRX_SNAP_ID, messenger, config, trace);\n }\n\n getName(): string {\n return TrxAccountProvider.NAME;\n }\n\n isAccountCompatible(account: Bip44Account<InternalAccount>): boolean {\n return (\n account.type === TrxAccountType.Eoa &&\n account.metadata.keyring.type === (KeyringTypes.snap as string)\n );\n }\n}\n"]}
|
|
@@ -4,9 +4,7 @@ exports.XlmAccountProvider = exports.XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = expor
|
|
|
4
4
|
const keyring_api_1 = require("@metamask/keyring-api");
|
|
5
5
|
const keyring_controller_1 = require("@metamask/keyring-controller");
|
|
6
6
|
const analytics_1 = require("../analytics/index.cjs");
|
|
7
|
-
const traces_1 = require("../analytics/traces.cjs");
|
|
8
7
|
const SnapAccountProvider_1 = require("./SnapAccountProvider.cjs");
|
|
9
|
-
const utils_1 = require("./utils.cjs");
|
|
10
8
|
exports.XLM_ACCOUNT_PROVIDER_NAME = 'Stellar';
|
|
11
9
|
exports.XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
12
10
|
maxConcurrency: 3,
|
|
@@ -17,7 +15,6 @@ exports.XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
|
17
15
|
backOffMs: 1000,
|
|
18
16
|
},
|
|
19
17
|
createAccounts: {
|
|
20
|
-
batched: true,
|
|
21
18
|
timeoutMs: 10000,
|
|
22
19
|
},
|
|
23
20
|
resyncAccounts: {
|
|
@@ -27,13 +24,9 @@ exports.XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
|
27
24
|
class XlmAccountProvider extends SnapAccountProvider_1.SnapAccountProvider {
|
|
28
25
|
constructor(messenger, config = exports.XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG, trace = analytics_1.traceFallback) {
|
|
29
26
|
super(XlmAccountProvider.XLM_SNAP_ID, messenger, config, trace);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
deriveIndex: true,
|
|
34
|
-
deriveIndexRange: true,
|
|
35
|
-
},
|
|
36
|
-
};
|
|
27
|
+
// TODO: Remove once the Snap is fully v2 — discovery is then driven by the
|
|
28
|
+
// Snap's own supported scopes via `createAccounts({ bip44:discover })`.
|
|
29
|
+
this.v1DiscoveryScopes = [keyring_api_1.XlmScope.Pubnet];
|
|
37
30
|
}
|
|
38
31
|
getName() {
|
|
39
32
|
return XlmAccountProvider.NAME;
|
|
@@ -42,40 +35,6 @@ class XlmAccountProvider extends SnapAccountProvider_1.SnapAccountProvider {
|
|
|
42
35
|
return (account.type === keyring_api_1.XlmAccountType.Account &&
|
|
43
36
|
account.metadata.keyring.type === keyring_controller_1.KeyringTypes.snap);
|
|
44
37
|
}
|
|
45
|
-
createAccountV1(keyring, { entropySource, groupIndex, }) {
|
|
46
|
-
return keyring.createAccount({
|
|
47
|
-
entropySource,
|
|
48
|
-
index: groupIndex,
|
|
49
|
-
addressType: keyring_api_1.XlmAccountType.Account,
|
|
50
|
-
scope: keyring_api_1.XlmScope.Pubnet,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
async discoverAccounts({ entropySource, groupIndex, }) {
|
|
54
|
-
return this.withSnap(async ({ client, keyring }) => {
|
|
55
|
-
return await super.trace({
|
|
56
|
-
name: traces_1.TraceName.SnapDiscoverAccounts,
|
|
57
|
-
data: {
|
|
58
|
-
provider: this.getName(),
|
|
59
|
-
},
|
|
60
|
-
}, async () => {
|
|
61
|
-
if (!this.config.discovery.enabled) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
const discoveredAccounts = await (0, utils_1.withRetry)(() => (0, utils_1.withTimeout)(() => client.discoverAccounts([keyring_api_1.XlmScope.Pubnet], entropySource, groupIndex), this.config.discovery.timeoutMs), {
|
|
65
|
-
maxAttempts: this.config.discovery.maxAttempts,
|
|
66
|
-
backOffMs: this.config.discovery.backOffMs,
|
|
67
|
-
});
|
|
68
|
-
if (!discoveredAccounts.length) {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
return await this.createBip44Accounts(keyring, {
|
|
72
|
-
type: keyring_api_1.AccountCreationType.Bip44DeriveIndex,
|
|
73
|
-
entropySource,
|
|
74
|
-
groupIndex,
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
38
|
}
|
|
80
39
|
exports.XlmAccountProvider = XlmAccountProvider;
|
|
81
40
|
XlmAccountProvider.NAME = exports.XLM_ACCOUNT_PROVIDER_NAME;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XlmAccountProvider.cjs","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"XlmAccountProvider.cjs","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":";;;AAEA,uDAAiE;AACjE,qEAA4D;AAK5D,sDAA6C;AAE7C,mEAA4D;AAK/C,QAAA,yBAAyB,GAAG,SAAS,CAAC;AAEtC,QAAA,mCAAmC,GAA6B;IAC3E,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,IAAI;KAClC;CACF,CAAC;AAEF,MAAa,kBAAmB,SAAQ,yCAAmB;IASzD,YACE,SAA4C,EAC5C,SAAmC,2CAAmC,EACtE,QAAuB,yBAAa;QAEpC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QATlE,2EAA2E;QAC3E,wEAAwE;QACrD,sBAAiB,GAAkB,CAAC,sBAAQ,CAAC,MAAM,CAAC,CAAC;IAQxE,CAAC;IAED,OAAO;QACL,OAAO,kBAAkB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,mBAAmB,CAAC,OAAsC;QACxD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,4BAAc,CAAC,OAAO;YACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAM,iCAAY,CAAC,IAAe,CAChE,CAAC;IACJ,CAAC;;AA1BH,gDA2BC;AA1BQ,uBAAI,GAAG,iCAAyB,AAA5B,CAA6B;AAEjC,8BAAW,GAAG,mCAA6C,AAAhD,CAAiD","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport { XlmAccountType, XlmScope } from '@metamask/keyring-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\nimport { traceFallback } from '../analytics';\nimport type { MultichainAccountServiceMessenger } from '../types';\nimport { SnapAccountProvider } from './SnapAccountProvider';\nimport type { SnapAccountProviderConfig } from './SnapAccountProvider';\n\nexport type XlmAccountProviderConfig = SnapAccountProviderConfig;\n\nexport const XLM_ACCOUNT_PROVIDER_NAME = 'Stellar';\n\nexport const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG: XlmAccountProviderConfig = {\n maxConcurrency: 3,\n discovery: {\n enabled: true,\n timeoutMs: 2000,\n maxAttempts: 3,\n backOffMs: 1000,\n },\n createAccounts: {\n timeoutMs: 10000,\n },\n resyncAccounts: {\n autoRemoveExtraSnapAccounts: true,\n },\n};\n\nexport class XlmAccountProvider extends SnapAccountProvider {\n static NAME = XLM_ACCOUNT_PROVIDER_NAME;\n\n static XLM_SNAP_ID = 'npm:@metamask/stellar-wallet-snap' as SnapId;\n\n // TODO: Remove once the Snap is fully v2 — discovery is then driven by the\n // Snap's own supported scopes via `createAccounts({ bip44:discover })`.\n protected readonly v1DiscoveryScopes: CaipChainId[] = [XlmScope.Pubnet];\n\n constructor(\n messenger: MultichainAccountServiceMessenger,\n config: XlmAccountProviderConfig = XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG,\n trace: TraceCallback = traceFallback,\n ) {\n super(XlmAccountProvider.XLM_SNAP_ID, messenger, config, trace);\n }\n\n getName(): string {\n return XlmAccountProvider.NAME;\n }\n\n isAccountCompatible(account: Bip44Account<InternalAccount>): boolean {\n return (\n account.type === XlmAccountType.Account &&\n account.metadata.keyring.type === (KeyringTypes.snap as string)\n );\n }\n}\n"]}
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
import type { Bip44Account } from "@metamask/account-api";
|
|
2
2
|
import type { TraceCallback } from "@metamask/controller-utils";
|
|
3
|
-
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
4
|
-
import type { KeyringCapabilities } from "@metamask/keyring-api/v2";
|
|
5
3
|
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
6
4
|
import type { SnapId } from "@metamask/snaps-sdk";
|
|
5
|
+
import type { CaipChainId } from "@metamask/utils";
|
|
7
6
|
import type { MultichainAccountServiceMessenger } from "../types.cjs";
|
|
8
7
|
import { SnapAccountProvider } from "./SnapAccountProvider.cjs";
|
|
9
|
-
import type {
|
|
8
|
+
import type { SnapAccountProviderConfig } from "./SnapAccountProvider.cjs";
|
|
10
9
|
export type XlmAccountProviderConfig = SnapAccountProviderConfig;
|
|
11
10
|
export declare const XLM_ACCOUNT_PROVIDER_NAME = "Stellar";
|
|
12
11
|
export declare const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG: XlmAccountProviderConfig;
|
|
13
12
|
export declare class XlmAccountProvider extends SnapAccountProvider {
|
|
14
13
|
static NAME: string;
|
|
15
14
|
static XLM_SNAP_ID: SnapId;
|
|
16
|
-
readonly
|
|
15
|
+
protected readonly v1DiscoveryScopes: CaipChainId[];
|
|
17
16
|
constructor(messenger: MultichainAccountServiceMessenger, config?: XlmAccountProviderConfig, trace?: TraceCallback);
|
|
18
17
|
getName(): string;
|
|
19
18
|
isAccountCompatible(account: Bip44Account<InternalAccount>): boolean;
|
|
20
|
-
protected createAccountV1(keyring: RestrictedSnapKeyring, { entropySource, groupIndex, }: {
|
|
21
|
-
entropySource: EntropySourceId;
|
|
22
|
-
groupIndex: number;
|
|
23
|
-
}): Promise<KeyringAccount>;
|
|
24
|
-
discoverAccounts({ entropySource, groupIndex, }: {
|
|
25
|
-
entropySource: EntropySourceId;
|
|
26
|
-
groupIndex: number;
|
|
27
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
28
19
|
}
|
|
29
20
|
//# sourceMappingURL=XlmAccountProvider.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XlmAccountProvider.d.cts","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;
|
|
1
|
+
{"version":3,"file":"XlmAccountProvider.d.cts","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAGnD,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAClE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,kCAA8B;AAEvE,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAEjE,eAAO,MAAM,yBAAyB,YAAY,CAAC;AAEnD,eAAO,MAAM,mCAAmC,EAAE,wBAcjD,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,MAAM,CAAC,IAAI,SAA6B;IAExC,MAAM,CAAC,WAAW,SAAiD;IAInE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAqB;gBAGtE,SAAS,EAAE,iCAAiC,EAC5C,MAAM,GAAE,wBAA8D,EACtE,KAAK,GAAE,aAA6B;IAKtC,OAAO,IAAI,MAAM;IAIjB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,OAAO;CAMrE"}
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
import type { Bip44Account } from "@metamask/account-api";
|
|
2
2
|
import type { TraceCallback } from "@metamask/controller-utils";
|
|
3
|
-
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
4
|
-
import type { KeyringCapabilities } from "@metamask/keyring-api/v2";
|
|
5
3
|
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
6
4
|
import type { SnapId } from "@metamask/snaps-sdk";
|
|
5
|
+
import type { CaipChainId } from "@metamask/utils";
|
|
7
6
|
import type { MultichainAccountServiceMessenger } from "../types.mjs";
|
|
8
7
|
import { SnapAccountProvider } from "./SnapAccountProvider.mjs";
|
|
9
|
-
import type {
|
|
8
|
+
import type { SnapAccountProviderConfig } from "./SnapAccountProvider.mjs";
|
|
10
9
|
export type XlmAccountProviderConfig = SnapAccountProviderConfig;
|
|
11
10
|
export declare const XLM_ACCOUNT_PROVIDER_NAME = "Stellar";
|
|
12
11
|
export declare const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG: XlmAccountProviderConfig;
|
|
13
12
|
export declare class XlmAccountProvider extends SnapAccountProvider {
|
|
14
13
|
static NAME: string;
|
|
15
14
|
static XLM_SNAP_ID: SnapId;
|
|
16
|
-
readonly
|
|
15
|
+
protected readonly v1DiscoveryScopes: CaipChainId[];
|
|
17
16
|
constructor(messenger: MultichainAccountServiceMessenger, config?: XlmAccountProviderConfig, trace?: TraceCallback);
|
|
18
17
|
getName(): string;
|
|
19
18
|
isAccountCompatible(account: Bip44Account<InternalAccount>): boolean;
|
|
20
|
-
protected createAccountV1(keyring: RestrictedSnapKeyring, { entropySource, groupIndex, }: {
|
|
21
|
-
entropySource: EntropySourceId;
|
|
22
|
-
groupIndex: number;
|
|
23
|
-
}): Promise<KeyringAccount>;
|
|
24
|
-
discoverAccounts({ entropySource, groupIndex, }: {
|
|
25
|
-
entropySource: EntropySourceId;
|
|
26
|
-
groupIndex: number;
|
|
27
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
28
19
|
}
|
|
29
20
|
//# sourceMappingURL=XlmAccountProvider.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XlmAccountProvider.d.mts","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;
|
|
1
|
+
{"version":3,"file":"XlmAccountProvider.d.mts","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAGnD,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAClE,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,kCAA8B;AAEvE,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAEjE,eAAO,MAAM,yBAAyB,YAAY,CAAC;AAEnD,eAAO,MAAM,mCAAmC,EAAE,wBAcjD,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,MAAM,CAAC,IAAI,SAA6B;IAExC,MAAM,CAAC,WAAW,SAAiD;IAInE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAqB;gBAGtE,SAAS,EAAE,iCAAiC,EAC5C,MAAM,GAAE,wBAA8D,EACtE,KAAK,GAAE,aAA6B;IAKtC,OAAO,IAAI,MAAM;IAIjB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,OAAO;CAMrE"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { XlmAccountType, XlmScope } from "@metamask/keyring-api";
|
|
2
2
|
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
3
3
|
import { traceFallback } from "../analytics/index.mjs";
|
|
4
|
-
import { TraceName } from "../analytics/traces.mjs";
|
|
5
4
|
import { SnapAccountProvider } from "./SnapAccountProvider.mjs";
|
|
6
|
-
import { withRetry, withTimeout } from "./utils.mjs";
|
|
7
5
|
export const XLM_ACCOUNT_PROVIDER_NAME = 'Stellar';
|
|
8
6
|
export const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
9
7
|
maxConcurrency: 3,
|
|
@@ -14,7 +12,6 @@ export const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
|
14
12
|
backOffMs: 1000,
|
|
15
13
|
},
|
|
16
14
|
createAccounts: {
|
|
17
|
-
batched: true,
|
|
18
15
|
timeoutMs: 10000,
|
|
19
16
|
},
|
|
20
17
|
resyncAccounts: {
|
|
@@ -24,13 +21,9 @@ export const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG = {
|
|
|
24
21
|
export class XlmAccountProvider extends SnapAccountProvider {
|
|
25
22
|
constructor(messenger, config = XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG, trace = traceFallback) {
|
|
26
23
|
super(XlmAccountProvider.XLM_SNAP_ID, messenger, config, trace);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
deriveIndex: true,
|
|
31
|
-
deriveIndexRange: true,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
24
|
+
// TODO: Remove once the Snap is fully v2 — discovery is then driven by the
|
|
25
|
+
// Snap's own supported scopes via `createAccounts({ bip44:discover })`.
|
|
26
|
+
this.v1DiscoveryScopes = [XlmScope.Pubnet];
|
|
34
27
|
}
|
|
35
28
|
getName() {
|
|
36
29
|
return XlmAccountProvider.NAME;
|
|
@@ -39,40 +32,6 @@ export class XlmAccountProvider extends SnapAccountProvider {
|
|
|
39
32
|
return (account.type === XlmAccountType.Account &&
|
|
40
33
|
account.metadata.keyring.type === KeyringTypes.snap);
|
|
41
34
|
}
|
|
42
|
-
createAccountV1(keyring, { entropySource, groupIndex, }) {
|
|
43
|
-
return keyring.createAccount({
|
|
44
|
-
entropySource,
|
|
45
|
-
index: groupIndex,
|
|
46
|
-
addressType: XlmAccountType.Account,
|
|
47
|
-
scope: XlmScope.Pubnet,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
async discoverAccounts({ entropySource, groupIndex, }) {
|
|
51
|
-
return this.withSnap(async ({ client, keyring }) => {
|
|
52
|
-
return await super.trace({
|
|
53
|
-
name: TraceName.SnapDiscoverAccounts,
|
|
54
|
-
data: {
|
|
55
|
-
provider: this.getName(),
|
|
56
|
-
},
|
|
57
|
-
}, async () => {
|
|
58
|
-
if (!this.config.discovery.enabled) {
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
const discoveredAccounts = await withRetry(() => withTimeout(() => client.discoverAccounts([XlmScope.Pubnet], entropySource, groupIndex), this.config.discovery.timeoutMs), {
|
|
62
|
-
maxAttempts: this.config.discovery.maxAttempts,
|
|
63
|
-
backOffMs: this.config.discovery.backOffMs,
|
|
64
|
-
});
|
|
65
|
-
if (!discoveredAccounts.length) {
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
return await this.createBip44Accounts(keyring, {
|
|
69
|
-
type: AccountCreationType.Bip44DeriveIndex,
|
|
70
|
-
entropySource,
|
|
71
|
-
groupIndex,
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
35
|
}
|
|
77
36
|
XlmAccountProvider.NAME = XLM_ACCOUNT_PROVIDER_NAME;
|
|
78
37
|
XlmAccountProvider.XLM_SNAP_ID = 'npm:@metamask/stellar-wallet-snap';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XlmAccountProvider.mjs","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"XlmAccountProvider.mjs","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,8BAA8B;AACjE,OAAO,EAAE,YAAY,EAAE,qCAAqC;AAK5D,OAAO,EAAE,aAAa,EAAE,+BAAqB;AAE7C,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAK5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAEnD,MAAM,CAAC,MAAM,mCAAmC,GAA6B;IAC3E,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,IAAI;KAClC;CACF,CAAC;AAEF,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB;IASzD,YACE,SAA4C,EAC5C,SAAmC,mCAAmC,EACtE,QAAuB,aAAa;QAEpC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QATlE,2EAA2E;QAC3E,wEAAwE;QACrD,sBAAiB,GAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAQxE,CAAC;IAED,OAAO;QACL,OAAO,kBAAkB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,mBAAmB,CAAC,OAAsC;QACxD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;YACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAM,YAAY,CAAC,IAAe,CAChE,CAAC;IACJ,CAAC;;AAzBM,uBAAI,GAAG,yBAAyB,AAA5B,CAA6B;AAEjC,8BAAW,GAAG,mCAA6C,AAAhD,CAAiD","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport { XlmAccountType, XlmScope } from '@metamask/keyring-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\nimport { traceFallback } from '../analytics';\nimport type { MultichainAccountServiceMessenger } from '../types';\nimport { SnapAccountProvider } from './SnapAccountProvider';\nimport type { SnapAccountProviderConfig } from './SnapAccountProvider';\n\nexport type XlmAccountProviderConfig = SnapAccountProviderConfig;\n\nexport const XLM_ACCOUNT_PROVIDER_NAME = 'Stellar';\n\nexport const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG: XlmAccountProviderConfig = {\n maxConcurrency: 3,\n discovery: {\n enabled: true,\n timeoutMs: 2000,\n maxAttempts: 3,\n backOffMs: 1000,\n },\n createAccounts: {\n timeoutMs: 10000,\n },\n resyncAccounts: {\n autoRemoveExtraSnapAccounts: true,\n },\n};\n\nexport class XlmAccountProvider extends SnapAccountProvider {\n static NAME = XLM_ACCOUNT_PROVIDER_NAME;\n\n static XLM_SNAP_ID = 'npm:@metamask/stellar-wallet-snap' as SnapId;\n\n // TODO: Remove once the Snap is fully v2 — discovery is then driven by the\n // Snap's own supported scopes via `createAccounts({ bip44:discover })`.\n protected readonly v1DiscoveryScopes: CaipChainId[] = [XlmScope.Pubnet];\n\n constructor(\n messenger: MultichainAccountServiceMessenger,\n config: XlmAccountProviderConfig = XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG,\n trace: TraceCallback = traceFallback,\n ) {\n super(XlmAccountProvider.XLM_SNAP_ID, messenger, config, trace);\n }\n\n getName(): string {\n return XlmAccountProvider.NAME;\n }\n\n isAccountCompatible(account: Bip44Account<InternalAccount>): boolean {\n return (\n account.type === XlmAccountType.Account &&\n account.metadata.keyring.type === (KeyringTypes.snap as string)\n );\n }\n}\n"]}
|
package/dist/tests/messenger.cjs
CHANGED
|
@@ -47,6 +47,7 @@ function getMultichainAccountServiceMessenger(rootMessenger, extra) {
|
|
|
47
47
|
'AccountsController:getAccounts',
|
|
48
48
|
'KeyringController:removeAccount',
|
|
49
49
|
'SnapAccountService:ensureReady',
|
|
50
|
+
'SnapAccountService:getCapabilities',
|
|
50
51
|
...(extra?.actions ?? []),
|
|
51
52
|
],
|
|
52
53
|
events: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.cjs","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAqBpE;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,qBAAS,CAAC;QACnB,SAAS,EAAE,8BAAkB;QAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AALD,4CAKC;AAED;;;;;;;;GAQG;AACH,SAAgB,oCAAoC,CAClD,aAA4B,EAC5B,KAGC;IAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAK7B;QACA,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,SAAS;QACT,OAAO,EAAE;YACP,+BAA+B;YAC/B,wCAAwC;YACxC,2CAA2C;YAC3C,8BAA8B;YAC9B,+BAA+B;YAC/B,iCAAiC;YACjC,4BAA4B;YAC5B,qCAAqC;YACrC,iCAAiC;YACjC,gDAAgD;YAChD,wCAAwC;YACxC,6CAA6C;YAC7C,4CAA4C;YAC5C,gCAAgC;YAChC,iCAAiC;YACjC,gCAAgC;YAChC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;SAC1B;QACD,MAAM,EAAE;YACN,iCAAiC;YACjC,mCAAmC;YACnC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"messenger.cjs","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAqBpE;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,qBAAS,CAAC;QACnB,SAAS,EAAE,8BAAkB;QAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AALD,4CAKC;AAED;;;;;;;;GAQG;AACH,SAAgB,oCAAoC,CAClD,aAA4B,EAC5B,KAGC;IAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAK7B;QACA,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,SAAS;QACT,OAAO,EAAE;YACP,+BAA+B;YAC/B,wCAAwC;YACxC,2CAA2C;YAC3C,8BAA8B;YAC9B,+BAA+B;YAC/B,iCAAiC;YACjC,4BAA4B;YAC5B,qCAAqC;YACrC,iCAAiC;YACjC,gDAAgD;YAChD,wCAAwC;YACxC,6CAA6C;YAC7C,4CAA4C;YAC5C,gCAAgC;YAChC,iCAAiC;YACjC,gCAAgC;YAChC,oCAAoC;YACpC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;SAC1B;QACD,MAAM,EAAE;YACN,iCAAiC;YACjC,mCAAmC;YACnC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AA7CD,oFA6CC","sourcesContent":["import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger';\nimport type {\n MessengerActions,\n MessengerEvents,\n MockAnyNamespace,\n} from '@metamask/messenger';\n\nimport type { MultichainAccountServiceMessenger } from '../types';\n\nexport type AllMultichainAccountServiceActions =\n MessengerActions<MultichainAccountServiceMessenger>;\n\nexport type AllMultichainAccountServiceEvents =\n MessengerEvents<MultichainAccountServiceMessenger>;\n\nexport type RootMessenger = Messenger<\n MockAnyNamespace,\n AllMultichainAccountServiceActions,\n AllMultichainAccountServiceEvents\n>;\n\n/**\n * Creates and returns a root messenger for testing\n *\n * @returns A messenger instance\n */\nexport function getRootMessenger(): RootMessenger {\n return new Messenger({\n namespace: MOCK_ANY_NAMESPACE,\n captureException: jest.fn(),\n });\n}\n\n/**\n * Retrieves a restricted messenger for the MultichainAccountService.\n *\n * @param rootMessenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger().\n * @param extra - Extra messenger options.\n * @param extra.actions - Extra actions to delegate.\n * @param extra.events - Extra events to delegate.\n * @returns The restricted messenger for the MultichainAccountService.\n */\nexport function getMultichainAccountServiceMessenger(\n rootMessenger: RootMessenger,\n extra?: {\n actions?: AllMultichainAccountServiceActions['type'][];\n events?: AllMultichainAccountServiceEvents['type'][];\n },\n): MultichainAccountServiceMessenger {\n const messenger = new Messenger<\n 'MultichainAccountService',\n AllMultichainAccountServiceActions,\n AllMultichainAccountServiceEvents,\n RootMessenger\n >({\n namespace: 'MultichainAccountService',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n messenger,\n actions: [\n 'AccountsController:getAccount',\n 'AccountsController:getAccountByAddress',\n 'AccountsController:listMultichainAccounts',\n 'SnapController:handleRequest',\n 'KeyringController:withKeyring',\n 'KeyringController:withKeyringV2',\n 'KeyringController:getState',\n 'KeyringController:getKeyringsByType',\n 'KeyringController:addNewKeyring',\n 'NetworkController:findNetworkClientIdByChainId',\n 'NetworkController:getNetworkClientById',\n 'KeyringController:createNewVaultAndKeychain',\n 'KeyringController:createNewVaultAndRestore',\n 'AccountsController:getAccounts',\n 'KeyringController:removeAccount',\n 'SnapAccountService:ensureReady',\n 'SnapAccountService:getCapabilities',\n ...(extra?.actions ?? []),\n ],\n events: [\n 'AccountsController:accountAdded',\n 'AccountsController:accountRemoved',\n ...(extra?.events ?? []),\n ],\n });\n return messenger;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.d.cts","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,4BAA4B;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,4BAA4B;AAE7B,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE,MAAM,MAAM,kCAAkC,GAC5C,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;AAEtD,MAAM,MAAM,iCAAiC,GAC3C,eAAe,CAAC,iCAAiC,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,SAAS,CACnC,gBAAgB,EAChB,kCAAkC,EAClC,iCAAiC,CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,aAAa,EAC5B,KAAK,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,kCAAkC,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,EAAE,iCAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;CACtD,GACA,iCAAiC,
|
|
1
|
+
{"version":3,"file":"messenger.d.cts","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,4BAA4B;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,4BAA4B;AAE7B,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE,MAAM,MAAM,kCAAkC,GAC5C,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;AAEtD,MAAM,MAAM,iCAAiC,GAC3C,eAAe,CAAC,iCAAiC,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,SAAS,CACnC,gBAAgB,EAChB,kCAAkC,EAClC,iCAAiC,CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,aAAa,EAC5B,KAAK,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,kCAAkC,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,EAAE,iCAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;CACtD,GACA,iCAAiC,CAuCnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.d.mts","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,4BAA4B;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,4BAA4B;AAE7B,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE,MAAM,MAAM,kCAAkC,GAC5C,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;AAEtD,MAAM,MAAM,iCAAiC,GAC3C,eAAe,CAAC,iCAAiC,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,SAAS,CACnC,gBAAgB,EAChB,kCAAkC,EAClC,iCAAiC,CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,aAAa,EAC5B,KAAK,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,kCAAkC,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,EAAE,iCAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;CACtD,GACA,iCAAiC,
|
|
1
|
+
{"version":3,"file":"messenger.d.mts","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,4BAA4B;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,4BAA4B;AAE7B,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE,MAAM,MAAM,kCAAkC,GAC5C,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;AAEtD,MAAM,MAAM,iCAAiC,GAC3C,eAAe,CAAC,iCAAiC,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,SAAS,CACnC,gBAAgB,EAChB,kCAAkC,EAClC,iCAAiC,CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,aAAa,EAC5B,KAAK,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,kCAAkC,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,EAAE,iCAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;CACtD,GACA,iCAAiC,CAuCnC"}
|
package/dist/tests/messenger.mjs
CHANGED
|
@@ -43,6 +43,7 @@ export function getMultichainAccountServiceMessenger(rootMessenger, extra) {
|
|
|
43
43
|
'AccountsController:getAccounts',
|
|
44
44
|
'KeyringController:removeAccount',
|
|
45
45
|
'SnapAccountService:ensureReady',
|
|
46
|
+
'SnapAccountService:getCapabilities',
|
|
46
47
|
...(extra?.actions ?? []),
|
|
47
48
|
],
|
|
48
49
|
events: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.mjs","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,4BAA4B;AAqBpE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,SAAS,CAAC;QACnB,SAAS,EAAE,kBAAkB;QAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oCAAoC,CAClD,aAA4B,EAC5B,KAGC;IAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAK7B;QACA,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,SAAS;QACT,OAAO,EAAE;YACP,+BAA+B;YAC/B,wCAAwC;YACxC,2CAA2C;YAC3C,8BAA8B;YAC9B,+BAA+B;YAC/B,iCAAiC;YACjC,4BAA4B;YAC5B,qCAAqC;YACrC,iCAAiC;YACjC,gDAAgD;YAChD,wCAAwC;YACxC,6CAA6C;YAC7C,4CAA4C;YAC5C,gCAAgC;YAChC,iCAAiC;YACjC,gCAAgC;YAChC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;SAC1B;QACD,MAAM,EAAE;YACN,iCAAiC;YACjC,mCAAmC;YACnC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger';\nimport type {\n MessengerActions,\n MessengerEvents,\n MockAnyNamespace,\n} from '@metamask/messenger';\n\nimport type { MultichainAccountServiceMessenger } from '../types';\n\nexport type AllMultichainAccountServiceActions =\n MessengerActions<MultichainAccountServiceMessenger>;\n\nexport type AllMultichainAccountServiceEvents =\n MessengerEvents<MultichainAccountServiceMessenger>;\n\nexport type RootMessenger = Messenger<\n MockAnyNamespace,\n AllMultichainAccountServiceActions,\n AllMultichainAccountServiceEvents\n>;\n\n/**\n * Creates and returns a root messenger for testing\n *\n * @returns A messenger instance\n */\nexport function getRootMessenger(): RootMessenger {\n return new Messenger({\n namespace: MOCK_ANY_NAMESPACE,\n captureException: jest.fn(),\n });\n}\n\n/**\n * Retrieves a restricted messenger for the MultichainAccountService.\n *\n * @param rootMessenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger().\n * @param extra - Extra messenger options.\n * @param extra.actions - Extra actions to delegate.\n * @param extra.events - Extra events to delegate.\n * @returns The restricted messenger for the MultichainAccountService.\n */\nexport function getMultichainAccountServiceMessenger(\n rootMessenger: RootMessenger,\n extra?: {\n actions?: AllMultichainAccountServiceActions['type'][];\n events?: AllMultichainAccountServiceEvents['type'][];\n },\n): MultichainAccountServiceMessenger {\n const messenger = new Messenger<\n 'MultichainAccountService',\n AllMultichainAccountServiceActions,\n AllMultichainAccountServiceEvents,\n RootMessenger\n >({\n namespace: 'MultichainAccountService',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n messenger,\n actions: [\n 'AccountsController:getAccount',\n 'AccountsController:getAccountByAddress',\n 'AccountsController:listMultichainAccounts',\n 'SnapController:handleRequest',\n 'KeyringController:withKeyring',\n 'KeyringController:withKeyringV2',\n 'KeyringController:getState',\n 'KeyringController:getKeyringsByType',\n 'KeyringController:addNewKeyring',\n 'NetworkController:findNetworkClientIdByChainId',\n 'NetworkController:getNetworkClientById',\n 'KeyringController:createNewVaultAndKeychain',\n 'KeyringController:createNewVaultAndRestore',\n 'AccountsController:getAccounts',\n 'KeyringController:removeAccount',\n 'SnapAccountService:ensureReady',\n ...(extra?.actions ?? []),\n ],\n events: [\n 'AccountsController:accountAdded',\n 'AccountsController:accountRemoved',\n ...(extra?.events ?? []),\n ],\n });\n return messenger;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"messenger.mjs","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,4BAA4B;AAqBpE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,SAAS,CAAC;QACnB,SAAS,EAAE,kBAAkB;QAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oCAAoC,CAClD,aAA4B,EAC5B,KAGC;IAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAK7B;QACA,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,SAAS;QACT,OAAO,EAAE;YACP,+BAA+B;YAC/B,wCAAwC;YACxC,2CAA2C;YAC3C,8BAA8B;YAC9B,+BAA+B;YAC/B,iCAAiC;YACjC,4BAA4B;YAC5B,qCAAqC;YACrC,iCAAiC;YACjC,gDAAgD;YAChD,wCAAwC;YACxC,6CAA6C;YAC7C,4CAA4C;YAC5C,gCAAgC;YAChC,iCAAiC;YACjC,gCAAgC;YAChC,oCAAoC;YACpC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;SAC1B;QACD,MAAM,EAAE;YACN,iCAAiC;YACjC,mCAAmC;YACnC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger';\nimport type {\n MessengerActions,\n MessengerEvents,\n MockAnyNamespace,\n} from '@metamask/messenger';\n\nimport type { MultichainAccountServiceMessenger } from '../types';\n\nexport type AllMultichainAccountServiceActions =\n MessengerActions<MultichainAccountServiceMessenger>;\n\nexport type AllMultichainAccountServiceEvents =\n MessengerEvents<MultichainAccountServiceMessenger>;\n\nexport type RootMessenger = Messenger<\n MockAnyNamespace,\n AllMultichainAccountServiceActions,\n AllMultichainAccountServiceEvents\n>;\n\n/**\n * Creates and returns a root messenger for testing\n *\n * @returns A messenger instance\n */\nexport function getRootMessenger(): RootMessenger {\n return new Messenger({\n namespace: MOCK_ANY_NAMESPACE,\n captureException: jest.fn(),\n });\n}\n\n/**\n * Retrieves a restricted messenger for the MultichainAccountService.\n *\n * @param rootMessenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger().\n * @param extra - Extra messenger options.\n * @param extra.actions - Extra actions to delegate.\n * @param extra.events - Extra events to delegate.\n * @returns The restricted messenger for the MultichainAccountService.\n */\nexport function getMultichainAccountServiceMessenger(\n rootMessenger: RootMessenger,\n extra?: {\n actions?: AllMultichainAccountServiceActions['type'][];\n events?: AllMultichainAccountServiceEvents['type'][];\n },\n): MultichainAccountServiceMessenger {\n const messenger = new Messenger<\n 'MultichainAccountService',\n AllMultichainAccountServiceActions,\n AllMultichainAccountServiceEvents,\n RootMessenger\n >({\n namespace: 'MultichainAccountService',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n messenger,\n actions: [\n 'AccountsController:getAccount',\n 'AccountsController:getAccountByAddress',\n 'AccountsController:listMultichainAccounts',\n 'SnapController:handleRequest',\n 'KeyringController:withKeyring',\n 'KeyringController:withKeyringV2',\n 'KeyringController:getState',\n 'KeyringController:getKeyringsByType',\n 'KeyringController:addNewKeyring',\n 'NetworkController:findNetworkClientIdByChainId',\n 'NetworkController:getNetworkClientById',\n 'KeyringController:createNewVaultAndKeychain',\n 'KeyringController:createNewVaultAndRestore',\n 'AccountsController:getAccounts',\n 'KeyringController:removeAccount',\n 'SnapAccountService:ensureReady',\n 'SnapAccountService:getCapabilities',\n ...(extra?.actions ?? []),\n ],\n events: [\n 'AccountsController:accountAdded',\n 'AccountsController:accountRemoved',\n ...(extra?.events ?? []),\n ],\n });\n return messenger;\n}\n"]}
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Bip44Account,\n MultichainAccountGroup,\n MultichainAccountWalletId,\n MultichainAccountWalletStatus,\n} from '@metamask/account-api';\nimport type {\n AccountsControllerAccountAddedEvent,\n AccountsControllerAccountRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetAccountByAddressAction,\n AccountsControllerGetAccountsAction,\n AccountsControllerListMultichainAccountsAction,\n} from '@metamask/accounts-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringAccount } from '@metamask/keyring-api';\nimport type {\n KeyringControllerAddNewKeyringAction,\n KeyringControllerCreateNewVaultAndKeychainAction,\n KeyringControllerCreateNewVaultAndRestoreAction,\n KeyringControllerGetKeyringsByTypeAction,\n KeyringControllerGetStateAction,\n KeyringControllerRemoveAccountAction,\n KeyringControllerWithKeyringAction,\n KeyringControllerWithKeyringV2Action,\n} from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport type {
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Bip44Account,\n MultichainAccountGroup,\n MultichainAccountWalletId,\n MultichainAccountWalletStatus,\n} from '@metamask/account-api';\nimport type {\n AccountsControllerAccountAddedEvent,\n AccountsControllerAccountRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetAccountByAddressAction,\n AccountsControllerGetAccountsAction,\n AccountsControllerListMultichainAccountsAction,\n} from '@metamask/accounts-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringAccount } from '@metamask/keyring-api';\nimport type {\n KeyringControllerAddNewKeyringAction,\n KeyringControllerCreateNewVaultAndKeychainAction,\n KeyringControllerCreateNewVaultAndRestoreAction,\n KeyringControllerGetKeyringsByTypeAction,\n KeyringControllerGetStateAction,\n KeyringControllerRemoveAccountAction,\n KeyringControllerWithKeyringAction,\n KeyringControllerWithKeyringV2Action,\n} from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport type {\n SnapAccountServiceEnsureReadyAction,\n SnapAccountServiceGetCapabilitiesAction,\n} from '@metamask/snap-account-service';\nimport type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers';\n\nimport type { serviceName } from './MultichainAccountService';\nimport type { MultichainAccountServiceMethodActions } from './MultichainAccountService-method-action-types';\n\n/**\n * All actions that {@link MultichainAccountService} registers so that other\n * modules can call them.\n */\nexport type MultichainAccountServiceActions =\n MultichainAccountServiceMethodActions;\n\nexport type MultichainAccountServiceMultichainAccountGroupCreatedEvent = {\n type: `${typeof serviceName}:multichainAccountGroupCreated`;\n payload: [MultichainAccountGroup<Bip44Account<KeyringAccount>>];\n};\n\nexport type MultichainAccountServiceMultichainAccountGroupUpdatedEvent = {\n type: `${typeof serviceName}:multichainAccountGroupUpdated`;\n payload: [MultichainAccountGroup<Bip44Account<KeyringAccount>>];\n};\n\nexport type MultichainAccountServiceWalletStatusChangeEvent = {\n type: `${typeof serviceName}:walletStatusChange`;\n payload: [MultichainAccountWalletId, MultichainAccountWalletStatus];\n};\n\n/**\n * All events that {@link MultichainAccountService} publishes so that other modules\n * can subscribe to them.\n */\nexport type MultichainAccountServiceEvents =\n | MultichainAccountServiceMultichainAccountGroupCreatedEvent\n | MultichainAccountServiceMultichainAccountGroupUpdatedEvent\n | MultichainAccountServiceWalletStatusChangeEvent;\n\n/**\n * All actions registered by other modules that {@link MultichainAccountService}\n * calls.\n */\ntype AllowedActions =\n | AccountsControllerListMultichainAccountsAction\n | AccountsControllerGetAccountsAction\n | AccountsControllerGetAccountAction\n | AccountsControllerGetAccountByAddressAction\n | KeyringControllerWithKeyringAction\n | KeyringControllerWithKeyringV2Action\n | KeyringControllerGetStateAction\n | KeyringControllerGetKeyringsByTypeAction\n | KeyringControllerAddNewKeyringAction\n | NetworkControllerGetNetworkClientByIdAction\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | KeyringControllerCreateNewVaultAndKeychainAction\n | KeyringControllerCreateNewVaultAndRestoreAction\n | KeyringControllerRemoveAccountAction\n | SnapControllerHandleRequestAction\n | SnapAccountServiceEnsureReadyAction\n | SnapAccountServiceGetCapabilitiesAction;\n\n/**\n * All events published by other modules that {@link MultichainAccountService}\n * subscribes to.\n */\ntype AllowedEvents =\n | AccountsControllerAccountAddedEvent\n | AccountsControllerAccountRemovedEvent;\n\n/**\n * The messenger restricted to actions and events that\n * {@link MultichainAccountService} needs to access.\n */\nexport type MultichainAccountServiceMessenger = Messenger<\n 'MultichainAccountService',\n MultichainAccountServiceActions | AllowedActions,\n MultichainAccountServiceEvents | AllowedEvents\n>;\n\nexport type MultichainAccountServiceConfig = {\n trace?: TraceCallback;\n};\n"]}
|
package/dist/types.d.cts
CHANGED
|
@@ -5,7 +5,7 @@ import type { KeyringAccount } from "@metamask/keyring-api";
|
|
|
5
5
|
import type { KeyringControllerAddNewKeyringAction, KeyringControllerCreateNewVaultAndKeychainAction, KeyringControllerCreateNewVaultAndRestoreAction, KeyringControllerGetKeyringsByTypeAction, KeyringControllerGetStateAction, KeyringControllerRemoveAccountAction, KeyringControllerWithKeyringAction, KeyringControllerWithKeyringV2Action } from "@metamask/keyring-controller";
|
|
6
6
|
import type { Messenger } from "@metamask/messenger";
|
|
7
7
|
import type { NetworkControllerFindNetworkClientIdByChainIdAction, NetworkControllerGetNetworkClientByIdAction } from "@metamask/network-controller";
|
|
8
|
-
import type { SnapAccountServiceEnsureReadyAction } from "@metamask/snap-account-service";
|
|
8
|
+
import type { SnapAccountServiceEnsureReadyAction, SnapAccountServiceGetCapabilitiesAction } from "@metamask/snap-account-service";
|
|
9
9
|
import type { SnapControllerHandleRequestAction } from "@metamask/snaps-controllers";
|
|
10
10
|
import type { serviceName } from "./MultichainAccountService.cjs";
|
|
11
11
|
import type { MultichainAccountServiceMethodActions } from "./MultichainAccountService-method-action-types.cjs";
|
|
@@ -35,7 +35,7 @@ export type MultichainAccountServiceEvents = MultichainAccountServiceMultichainA
|
|
|
35
35
|
* All actions registered by other modules that {@link MultichainAccountService}
|
|
36
36
|
* calls.
|
|
37
37
|
*/
|
|
38
|
-
type AllowedActions = AccountsControllerListMultichainAccountsAction | AccountsControllerGetAccountsAction | AccountsControllerGetAccountAction | AccountsControllerGetAccountByAddressAction | KeyringControllerWithKeyringAction | KeyringControllerWithKeyringV2Action | KeyringControllerGetStateAction | KeyringControllerGetKeyringsByTypeAction | KeyringControllerAddNewKeyringAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerFindNetworkClientIdByChainIdAction | KeyringControllerCreateNewVaultAndKeychainAction | KeyringControllerCreateNewVaultAndRestoreAction | KeyringControllerRemoveAccountAction | SnapControllerHandleRequestAction | SnapAccountServiceEnsureReadyAction;
|
|
38
|
+
type AllowedActions = AccountsControllerListMultichainAccountsAction | AccountsControllerGetAccountsAction | AccountsControllerGetAccountAction | AccountsControllerGetAccountByAddressAction | KeyringControllerWithKeyringAction | KeyringControllerWithKeyringV2Action | KeyringControllerGetStateAction | KeyringControllerGetKeyringsByTypeAction | KeyringControllerAddNewKeyringAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerFindNetworkClientIdByChainIdAction | KeyringControllerCreateNewVaultAndKeychainAction | KeyringControllerCreateNewVaultAndRestoreAction | KeyringControllerRemoveAccountAction | SnapControllerHandleRequestAction | SnapAccountServiceEnsureReadyAction | SnapAccountServiceGetCapabilitiesAction;
|
|
39
39
|
/**
|
|
40
40
|
* All events published by other modules that {@link MultichainAccountService}
|
|
41
41
|
* subscribes to.
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC9B,8BAA8B;AAC/B,OAAO,KAAK,EACV,mCAAmC,EACnC,qCAAqC,EACrC,kCAAkC,EAClC,2CAA2C,EAC3C,mCAAmC,EACnC,8CAA8C,EAC/C,sCAAsC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAC5D,OAAO,KAAK,EACV,oCAAoC,EACpC,gDAAgD,EAChD,+CAA+C,EAC/C,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,kCAAkC,EAClC,oCAAoC,EACrC,qCAAqC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,mDAAmD,EACnD,2CAA2C,EAC5C,qCAAqC;AACtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC9B,8BAA8B;AAC/B,OAAO,KAAK,EACV,mCAAmC,EACnC,qCAAqC,EACrC,kCAAkC,EAClC,2CAA2C,EAC3C,mCAAmC,EACnC,8CAA8C,EAC/C,sCAAsC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAC5D,OAAO,KAAK,EACV,oCAAoC,EACpC,gDAAgD,EAChD,+CAA+C,EAC/C,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,kCAAkC,EAClC,oCAAoC,EACrC,qCAAqC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,mDAAmD,EACnD,2CAA2C,EAC5C,qCAAqC;AACtC,OAAO,KAAK,EACV,mCAAmC,EACnC,uCAAuC,EACxC,uCAAuC;AACxC,OAAO,KAAK,EAAE,iCAAiC,EAAE,oCAAoC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,uCAAmC;AAC9D,OAAO,KAAK,EAAE,qCAAqC,EAAE,2DAAuD;AAE5G;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GACzC,qCAAqC,CAAC;AAExC,MAAM,MAAM,0DAA0D,GAAG;IACvE,IAAI,EAAE,GAAG,OAAO,WAAW,gCAAgC,CAAC;IAC5D,OAAO,EAAE,CAAC,sBAAsB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,0DAA0D,GAAG;IACvE,IAAI,EAAE,GAAG,OAAO,WAAW,gCAAgC,CAAC;IAC5D,OAAO,EAAE,CAAC,sBAAsB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,+CAA+C,GAAG;IAC5D,IAAI,EAAE,GAAG,OAAO,WAAW,qBAAqB,CAAC;IACjD,OAAO,EAAE,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC;CACrE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GACtC,0DAA0D,GAC1D,0DAA0D,GAC1D,+CAA+C,CAAC;AAEpD;;;GAGG;AACH,KAAK,cAAc,GACf,8CAA8C,GAC9C,mCAAmC,GACnC,kCAAkC,GAClC,2CAA2C,GAC3C,kCAAkC,GAClC,oCAAoC,GACpC,+BAA+B,GAC/B,wCAAwC,GACxC,oCAAoC,GACpC,2CAA2C,GAC3C,mDAAmD,GACnD,gDAAgD,GAChD,+CAA+C,GAC/C,oCAAoC,GACpC,iCAAiC,GACjC,mCAAmC,GACnC,uCAAuC,CAAC;AAE5C;;;GAGG;AACH,KAAK,aAAa,GACd,mCAAmC,GACnC,qCAAqC,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,iCAAiC,GAAG,SAAS,CACvD,0BAA0B,EAC1B,+BAA+B,GAAG,cAAc,EAChD,8BAA8B,GAAG,aAAa,CAC/C,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC"}
|
package/dist/types.d.mts
CHANGED
|
@@ -5,7 +5,7 @@ import type { KeyringAccount } from "@metamask/keyring-api";
|
|
|
5
5
|
import type { KeyringControllerAddNewKeyringAction, KeyringControllerCreateNewVaultAndKeychainAction, KeyringControllerCreateNewVaultAndRestoreAction, KeyringControllerGetKeyringsByTypeAction, KeyringControllerGetStateAction, KeyringControllerRemoveAccountAction, KeyringControllerWithKeyringAction, KeyringControllerWithKeyringV2Action } from "@metamask/keyring-controller";
|
|
6
6
|
import type { Messenger } from "@metamask/messenger";
|
|
7
7
|
import type { NetworkControllerFindNetworkClientIdByChainIdAction, NetworkControllerGetNetworkClientByIdAction } from "@metamask/network-controller";
|
|
8
|
-
import type { SnapAccountServiceEnsureReadyAction } from "@metamask/snap-account-service";
|
|
8
|
+
import type { SnapAccountServiceEnsureReadyAction, SnapAccountServiceGetCapabilitiesAction } from "@metamask/snap-account-service";
|
|
9
9
|
import type { SnapControllerHandleRequestAction } from "@metamask/snaps-controllers";
|
|
10
10
|
import type { serviceName } from "./MultichainAccountService.mjs";
|
|
11
11
|
import type { MultichainAccountServiceMethodActions } from "./MultichainAccountService-method-action-types.mjs";
|
|
@@ -35,7 +35,7 @@ export type MultichainAccountServiceEvents = MultichainAccountServiceMultichainA
|
|
|
35
35
|
* All actions registered by other modules that {@link MultichainAccountService}
|
|
36
36
|
* calls.
|
|
37
37
|
*/
|
|
38
|
-
type AllowedActions = AccountsControllerListMultichainAccountsAction | AccountsControllerGetAccountsAction | AccountsControllerGetAccountAction | AccountsControllerGetAccountByAddressAction | KeyringControllerWithKeyringAction | KeyringControllerWithKeyringV2Action | KeyringControllerGetStateAction | KeyringControllerGetKeyringsByTypeAction | KeyringControllerAddNewKeyringAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerFindNetworkClientIdByChainIdAction | KeyringControllerCreateNewVaultAndKeychainAction | KeyringControllerCreateNewVaultAndRestoreAction | KeyringControllerRemoveAccountAction | SnapControllerHandleRequestAction | SnapAccountServiceEnsureReadyAction;
|
|
38
|
+
type AllowedActions = AccountsControllerListMultichainAccountsAction | AccountsControllerGetAccountsAction | AccountsControllerGetAccountAction | AccountsControllerGetAccountByAddressAction | KeyringControllerWithKeyringAction | KeyringControllerWithKeyringV2Action | KeyringControllerGetStateAction | KeyringControllerGetKeyringsByTypeAction | KeyringControllerAddNewKeyringAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerFindNetworkClientIdByChainIdAction | KeyringControllerCreateNewVaultAndKeychainAction | KeyringControllerCreateNewVaultAndRestoreAction | KeyringControllerRemoveAccountAction | SnapControllerHandleRequestAction | SnapAccountServiceEnsureReadyAction | SnapAccountServiceGetCapabilitiesAction;
|
|
39
39
|
/**
|
|
40
40
|
* All events published by other modules that {@link MultichainAccountService}
|
|
41
41
|
* subscribes to.
|