@metamask-previews/multichain-account-service 0.5.0-preview-6a91767a → 0.5.0-preview-a3d8559e
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 +0 -4
- package/dist/MultichainAccountService.cjs +2 -34
- package/dist/MultichainAccountService.cjs.map +1 -1
- package/dist/MultichainAccountService.d.cts +5 -19
- package/dist/MultichainAccountService.d.cts.map +1 -1
- package/dist/MultichainAccountService.d.mts +5 -19
- package/dist/MultichainAccountService.d.mts.map +1 -1
- package/dist/MultichainAccountService.mjs +2 -34
- package/dist/MultichainAccountService.mjs.map +1 -1
- package/dist/MultichainAccountWallet.cjs +7 -34
- package/dist/MultichainAccountWallet.cjs.map +1 -1
- package/dist/MultichainAccountWallet.d.cts +0 -6
- package/dist/MultichainAccountWallet.d.cts.map +1 -1
- package/dist/MultichainAccountWallet.d.mts +0 -6
- package/dist/MultichainAccountWallet.d.mts.map +1 -1
- package/dist/MultichainAccountWallet.mjs +7 -34
- package/dist/MultichainAccountWallet.mjs.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/providers/{BaseBip44AccountProvider.cjs → BaseAccountProvider.cjs} +9 -9
- package/dist/providers/BaseAccountProvider.cjs.map +1 -0
- package/dist/providers/{BaseBip44AccountProvider.d.cts → BaseAccountProvider.d.cts} +2 -2
- package/dist/providers/BaseAccountProvider.d.cts.map +1 -0
- package/dist/providers/{BaseBip44AccountProvider.d.mts → BaseAccountProvider.d.mts} +2 -2
- package/dist/providers/BaseAccountProvider.d.mts.map +1 -0
- package/dist/providers/{BaseBip44AccountProvider.mjs → BaseAccountProvider.mjs} +7 -7
- package/dist/providers/BaseAccountProvider.mjs.map +1 -0
- package/dist/providers/EvmAccountProvider.cjs +3 -3
- package/dist/providers/EvmAccountProvider.cjs.map +1 -1
- package/dist/providers/EvmAccountProvider.d.cts +2 -2
- package/dist/providers/EvmAccountProvider.d.cts.map +1 -1
- package/dist/providers/EvmAccountProvider.d.mts +2 -2
- package/dist/providers/EvmAccountProvider.d.mts.map +1 -1
- package/dist/providers/EvmAccountProvider.mjs +2 -2
- package/dist/providers/EvmAccountProvider.mjs.map +1 -1
- package/dist/providers/SnapAccountProvider.cjs +3 -7
- package/dist/providers/SnapAccountProvider.cjs.map +1 -1
- package/dist/providers/SnapAccountProvider.d.cts +2 -3
- package/dist/providers/SnapAccountProvider.d.cts.map +1 -1
- package/dist/providers/SnapAccountProvider.d.mts +2 -3
- package/dist/providers/SnapAccountProvider.d.mts.map +1 -1
- package/dist/providers/SnapAccountProvider.mjs +2 -5
- package/dist/providers/SnapAccountProvider.mjs.map +1 -1
- package/dist/providers/SolAccountProvider.cjs +2 -2
- package/dist/providers/SolAccountProvider.cjs.map +1 -1
- package/dist/providers/SolAccountProvider.d.cts +1 -1
- package/dist/providers/SolAccountProvider.d.cts.map +1 -1
- package/dist/providers/SolAccountProvider.d.mts +1 -1
- package/dist/providers/SolAccountProvider.d.mts.map +1 -1
- package/dist/providers/SolAccountProvider.mjs +1 -1
- package/dist/providers/SolAccountProvider.mjs.map +1 -1
- package/dist/providers/index.cjs +1 -2
- package/dist/providers/index.cjs.map +1 -1
- package/dist/providers/index.d.cts +1 -2
- package/dist/providers/index.d.cts.map +1 -1
- package/dist/providers/index.d.mts +1 -2
- package/dist/providers/index.d.mts.map +1 -1
- package/dist/providers/index.mjs +1 -2
- package/dist/providers/index.mjs.map +1 -1
- package/dist/tests/providers.cjs +0 -1
- package/dist/tests/providers.cjs.map +1 -1
- package/dist/tests/providers.d.cts +0 -1
- package/dist/tests/providers.d.cts.map +1 -1
- package/dist/tests/providers.d.mts +0 -1
- package/dist/tests/providers.d.mts.map +1 -1
- package/dist/tests/providers.mjs +0 -1
- package/dist/tests/providers.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -9
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +1 -9
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/providers/AccountProviderWrapper.cjs +0 -97
- package/dist/providers/AccountProviderWrapper.cjs.map +0 -1
- package/dist/providers/AccountProviderWrapper.d.cts +0 -73
- package/dist/providers/AccountProviderWrapper.d.cts.map +0 -1
- package/dist/providers/AccountProviderWrapper.d.mts +0 -73
- package/dist/providers/AccountProviderWrapper.d.mts.map +0 -1
- package/dist/providers/AccountProviderWrapper.mjs +0 -92
- package/dist/providers/AccountProviderWrapper.mjs.map +0 -1
- package/dist/providers/BaseBip44AccountProvider.cjs.map +0 -1
- package/dist/providers/BaseBip44AccountProvider.d.cts.map +0 -1
- package/dist/providers/BaseBip44AccountProvider.d.mts.map +0 -1
- package/dist/providers/BaseBip44AccountProvider.mjs.map +0 -1
package/dist/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n AccountsControllerAccountAddedEvent,\n AccountsControllerAccountRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetAccountByAddressAction,\n AccountsControllerListMultichainAccountsAction,\n} from '@metamask/accounts-controller';\nimport type { RestrictedMessenger } from '@metamask/base-controller';\nimport type {\n KeyringControllerGetStateAction,\n KeyringControllerStateChangeEvent,\n KeyringControllerWithKeyringAction,\n} from '@metamask/keyring-controller';\nimport type { HandleSnapRequest as SnapControllerHandleSnapRequestAction } from '@metamask/snaps-controllers';\n\nimport type {\n MultichainAccountService,\n serviceName,\n} from './MultichainAccountService';\n\nexport type MultichainAccountServiceGetMultichainAccountGroupAction = {\n type: `${typeof serviceName}:getMultichainAccountGroup`;\n handler: MultichainAccountService['getMultichainAccountGroup'];\n};\n\nexport type MultichainAccountServiceGetMultichainAccountGroupsAction = {\n type: `${typeof serviceName}:getMultichainAccountGroups`;\n handler: MultichainAccountService['getMultichainAccountGroups'];\n};\n\nexport type MultichainAccountServiceGetMultichainAccountWalletAction = {\n type: `${typeof serviceName}:getMultichainAccountWallet`;\n handler: MultichainAccountService['getMultichainAccountWallet'];\n};\n\nexport type MultichainAccountServiceGetMultichainAccountWalletsAction = {\n type: `${typeof serviceName}:getMultichainAccountWallets`;\n handler: MultichainAccountService['getMultichainAccountWallets'];\n};\n\nexport type MultichainAccountServiceCreateNextMultichainAccountGroupAction = {\n type: `${typeof serviceName}:createNextMultichainAccountGroup`;\n handler: MultichainAccountService['createNextMultichainAccountGroup'];\n};\n\nexport type MultichainAccountServiceCreateMultichainAccountGroupAction = {\n type: `${typeof serviceName}:createMultichainAccountGroup`;\n handler: MultichainAccountService['createMultichainAccountGroup'];\n};\n\nexport type
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n AccountsControllerAccountAddedEvent,\n AccountsControllerAccountRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetAccountByAddressAction,\n AccountsControllerListMultichainAccountsAction,\n} from '@metamask/accounts-controller';\nimport type { RestrictedMessenger } from '@metamask/base-controller';\nimport type {\n KeyringControllerGetStateAction,\n KeyringControllerStateChangeEvent,\n KeyringControllerWithKeyringAction,\n} from '@metamask/keyring-controller';\nimport type { HandleSnapRequest as SnapControllerHandleSnapRequestAction } from '@metamask/snaps-controllers';\n\nimport type {\n MultichainAccountService,\n serviceName,\n} from './MultichainAccountService';\n\nexport type MultichainAccountServiceGetMultichainAccountGroupAction = {\n type: `${typeof serviceName}:getMultichainAccountGroup`;\n handler: MultichainAccountService['getMultichainAccountGroup'];\n};\n\nexport type MultichainAccountServiceGetMultichainAccountGroupsAction = {\n type: `${typeof serviceName}:getMultichainAccountGroups`;\n handler: MultichainAccountService['getMultichainAccountGroups'];\n};\n\nexport type MultichainAccountServiceGetMultichainAccountWalletAction = {\n type: `${typeof serviceName}:getMultichainAccountWallet`;\n handler: MultichainAccountService['getMultichainAccountWallet'];\n};\n\nexport type MultichainAccountServiceGetMultichainAccountWalletsAction = {\n type: `${typeof serviceName}:getMultichainAccountWallets`;\n handler: MultichainAccountService['getMultichainAccountWallets'];\n};\n\nexport type MultichainAccountServiceCreateNextMultichainAccountGroupAction = {\n type: `${typeof serviceName}:createNextMultichainAccountGroup`;\n handler: MultichainAccountService['createNextMultichainAccountGroup'];\n};\n\nexport type MultichainAccountServiceCreateMultichainAccountGroupAction = {\n type: `${typeof serviceName}:createMultichainAccountGroup`;\n handler: MultichainAccountService['createMultichainAccountGroup'];\n};\n\nexport type MultichainAccountServiceAlignWalletAction = {\n type: `${typeof serviceName}:alignWallet`;\n handler: MultichainAccountService['alignWallet'];\n};\n\nexport type MultichainAccountServiceAlignWalletsAction = {\n type: `${typeof serviceName}:alignWallets`;\n handler: MultichainAccountService['alignWallets'];\n};\n\n/**\n * All actions that {@link MultichainAccountService} registers so that other\n * modules can call them.\n */\nexport type MultichainAccountServiceActions =\n | MultichainAccountServiceGetMultichainAccountGroupAction\n | MultichainAccountServiceGetMultichainAccountGroupsAction\n | MultichainAccountServiceGetMultichainAccountWalletAction\n | MultichainAccountServiceGetMultichainAccountWalletsAction\n | MultichainAccountServiceCreateNextMultichainAccountGroupAction\n | MultichainAccountServiceCreateMultichainAccountGroupAction\n | MultichainAccountServiceAlignWalletAction\n | MultichainAccountServiceAlignWalletsAction;\n\n/**\n * All events that {@link MultichainAccountService} publishes so that other modules\n * can subscribe to them.\n */\nexport type MultichainAccountServiceEvents = never;\n\n/**\n * All actions registered by other modules that {@link MultichainAccountService}\n * calls.\n */\nexport type AllowedActions =\n | AccountsControllerListMultichainAccountsAction\n | AccountsControllerGetAccountAction\n | AccountsControllerGetAccountByAddressAction\n | SnapControllerHandleSnapRequestAction\n | KeyringControllerWithKeyringAction\n | KeyringControllerGetStateAction;\n\n/**\n * All events published by other modules that {@link MultichainAccountService}\n * subscribes to.\n */\nexport type AllowedEvents =\n | KeyringControllerStateChangeEvent\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 = RestrictedMessenger<\n 'MultichainAccountService',\n MultichainAccountServiceActions | AllowedActions,\n MultichainAccountServiceEvents | AllowedEvents,\n AllowedActions['type'],\n AllowedEvents['type']\n>;\n"]}
|
package/package.json
CHANGED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAccountProviderWrapper = exports.AccountProviderWrapper = void 0;
|
|
4
|
-
const BaseBip44AccountProvider_1 = require("./BaseBip44AccountProvider.cjs");
|
|
5
|
-
/**
|
|
6
|
-
* A simple wrapper that adds disable functionality to any BaseBip44AccountProvider.
|
|
7
|
-
* When disabled, the provider will not create new accounts and return empty results.
|
|
8
|
-
*/
|
|
9
|
-
class AccountProviderWrapper extends BaseBip44AccountProvider_1.BaseBip44AccountProvider {
|
|
10
|
-
constructor(messenger, provider) {
|
|
11
|
-
super(messenger);
|
|
12
|
-
this.isEnabled = true;
|
|
13
|
-
this.provider = provider;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Set the enabled state for this provider.
|
|
17
|
-
*
|
|
18
|
-
* @param enabled - Whether the provider should be enabled.
|
|
19
|
-
*/
|
|
20
|
-
setEnabled(enabled) {
|
|
21
|
-
this.isEnabled = enabled;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Override getAccounts to return empty array when disabled.
|
|
25
|
-
*
|
|
26
|
-
* @returns Array of accounts, or empty array if disabled.
|
|
27
|
-
*/
|
|
28
|
-
getAccounts() {
|
|
29
|
-
if (!this.isEnabled) {
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
return this.provider.getAccounts();
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Override getAccount to throw when disabled.
|
|
36
|
-
*
|
|
37
|
-
* @param id - The account ID to retrieve.
|
|
38
|
-
* @returns The account with the specified ID.
|
|
39
|
-
* @throws When disabled or account not found.
|
|
40
|
-
*/
|
|
41
|
-
getAccount(id) {
|
|
42
|
-
if (!this.isEnabled) {
|
|
43
|
-
throw new Error('Provider is disabled');
|
|
44
|
-
}
|
|
45
|
-
return this.provider.getAccount(id);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Implement abstract method: Check if account is compatible.
|
|
49
|
-
* Delegates directly to wrapped provider - no runtime checks needed!
|
|
50
|
-
*
|
|
51
|
-
* @param account - The account to check.
|
|
52
|
-
* @returns True if the account is compatible.
|
|
53
|
-
*/
|
|
54
|
-
isAccountCompatible(account) {
|
|
55
|
-
return this.provider.isAccountCompatible(account);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Implement abstract method: Create accounts, returns empty array when disabled.
|
|
59
|
-
*
|
|
60
|
-
* @param options - Account creation options.
|
|
61
|
-
* @param options.entropySource - The entropy source to use.
|
|
62
|
-
* @param options.groupIndex - The group index to use.
|
|
63
|
-
* @returns Promise resolving to created accounts, or empty array if disabled.
|
|
64
|
-
*/
|
|
65
|
-
async createAccounts(options) {
|
|
66
|
-
if (!this.isEnabled) {
|
|
67
|
-
return [];
|
|
68
|
-
}
|
|
69
|
-
return this.provider.createAccounts(options);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Implement abstract method: Discover and create accounts, returns empty array when disabled.
|
|
73
|
-
*
|
|
74
|
-
* @param options - Account discovery options.
|
|
75
|
-
* @param options.entropySource - The entropy source to use.
|
|
76
|
-
* @param options.groupIndex - The group index to use.
|
|
77
|
-
* @returns Promise resolving to discovered accounts, or empty array if disabled.
|
|
78
|
-
*/
|
|
79
|
-
async discoverAndCreateAccounts(options) {
|
|
80
|
-
if (!this.isEnabled) {
|
|
81
|
-
return [];
|
|
82
|
-
}
|
|
83
|
-
return this.provider.discoverAndCreateAccounts(options);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
exports.AccountProviderWrapper = AccountProviderWrapper;
|
|
87
|
-
/**
|
|
88
|
-
* Simple type guard to check if a provider is wrapped.
|
|
89
|
-
*
|
|
90
|
-
* @param provider - The provider to check.
|
|
91
|
-
* @returns True if the provider is an AccountProviderWrapper.
|
|
92
|
-
*/
|
|
93
|
-
function isAccountProviderWrapper(provider) {
|
|
94
|
-
return provider instanceof AccountProviderWrapper;
|
|
95
|
-
}
|
|
96
|
-
exports.isAccountProviderWrapper = isAccountProviderWrapper;
|
|
97
|
-
//# sourceMappingURL=AccountProviderWrapper.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AccountProviderWrapper.cjs","sourceRoot":"","sources":["../../src/providers/AccountProviderWrapper.ts"],"names":[],"mappings":";;;AAGA,6EAAsE;AAGtE;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,mDAAwB;IAKlE,YACE,SAA4C,EAC5C,QAAkC;QAElC,KAAK,CAAC,SAAS,CAAC,CAAC;QARX,cAAS,GAAY,IAAI,CAAC;QAShC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACM,WAAW;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACM,UAAU,CACjB,EAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAqC;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,OAGpB;QACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,yBAAyB,CAAC,OAG/B;QACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAhGD,wDAgGC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CACtC,QAE0B;IAE1B,OAAO,QAAQ,YAAY,sBAAsB,CAAC;AACpD,CAAC;AAND,4DAMC","sourcesContent":["import type { Bip44Account, AccountProvider } from '@metamask/account-api';\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\n\nimport { BaseBip44AccountProvider } from './BaseBip44AccountProvider';\nimport type { MultichainAccountServiceMessenger } from '../types';\n\n/**\n * A simple wrapper that adds disable functionality to any BaseBip44AccountProvider.\n * When disabled, the provider will not create new accounts and return empty results.\n */\nexport class AccountProviderWrapper extends BaseBip44AccountProvider {\n private isEnabled: boolean = true;\n\n private readonly provider: BaseBip44AccountProvider;\n\n constructor(\n messenger: MultichainAccountServiceMessenger,\n provider: BaseBip44AccountProvider,\n ) {\n super(messenger);\n this.provider = provider;\n }\n\n /**\n * Set the enabled state for this provider.\n *\n * @param enabled - Whether the provider should be enabled.\n */\n setEnabled(enabled: boolean): void {\n this.isEnabled = enabled;\n }\n\n /**\n * Override getAccounts to return empty array when disabled.\n *\n * @returns Array of accounts, or empty array if disabled.\n */\n override getAccounts(): Bip44Account<KeyringAccount>[] {\n if (!this.isEnabled) {\n return [];\n }\n return this.provider.getAccounts();\n }\n\n /**\n * Override getAccount to throw when disabled.\n *\n * @param id - The account ID to retrieve.\n * @returns The account with the specified ID.\n * @throws When disabled or account not found.\n */\n override getAccount(\n id: Bip44Account<KeyringAccount>['id'],\n ): Bip44Account<KeyringAccount> {\n if (!this.isEnabled) {\n throw new Error('Provider is disabled');\n }\n return this.provider.getAccount(id);\n }\n\n /**\n * Implement abstract method: Check if account is compatible.\n * Delegates directly to wrapped provider - no runtime checks needed!\n *\n * @param account - The account to check.\n * @returns True if the account is compatible.\n */\n isAccountCompatible(account: Bip44Account<KeyringAccount>): boolean {\n return this.provider.isAccountCompatible(account);\n }\n\n /**\n * Implement abstract method: Create accounts, returns empty array when disabled.\n *\n * @param options - Account creation options.\n * @param options.entropySource - The entropy source to use.\n * @param options.groupIndex - The group index to use.\n * @returns Promise resolving to created accounts, or empty array if disabled.\n */\n async createAccounts(options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]> {\n if (!this.isEnabled) {\n return [];\n }\n return this.provider.createAccounts(options);\n }\n\n /**\n * Implement abstract method: Discover and create accounts, returns empty array when disabled.\n *\n * @param options - Account discovery options.\n * @param options.entropySource - The entropy source to use.\n * @param options.groupIndex - The group index to use.\n * @returns Promise resolving to discovered accounts, or empty array if disabled.\n */\n async discoverAndCreateAccounts(options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]> {\n if (!this.isEnabled) {\n return [];\n }\n return this.provider.discoverAndCreateAccounts(options);\n }\n}\n\n/**\n * Simple type guard to check if a provider is wrapped.\n *\n * @param provider - The provider to check.\n * @returns True if the provider is an AccountProviderWrapper.\n */\nexport function isAccountProviderWrapper(\n provider:\n | AccountProvider<Bip44Account<KeyringAccount>>\n | AccountProviderWrapper,\n): provider is AccountProviderWrapper {\n return provider instanceof AccountProviderWrapper;\n}\n"]}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Bip44Account, AccountProvider } from "@metamask/account-api";
|
|
2
|
-
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
3
|
-
import { BaseBip44AccountProvider } from "./BaseBip44AccountProvider.cjs";
|
|
4
|
-
import type { MultichainAccountServiceMessenger } from "../types.cjs";
|
|
5
|
-
/**
|
|
6
|
-
* A simple wrapper that adds disable functionality to any BaseBip44AccountProvider.
|
|
7
|
-
* When disabled, the provider will not create new accounts and return empty results.
|
|
8
|
-
*/
|
|
9
|
-
export declare class AccountProviderWrapper extends BaseBip44AccountProvider {
|
|
10
|
-
private isEnabled;
|
|
11
|
-
private readonly provider;
|
|
12
|
-
constructor(messenger: MultichainAccountServiceMessenger, provider: BaseBip44AccountProvider);
|
|
13
|
-
/**
|
|
14
|
-
* Set the enabled state for this provider.
|
|
15
|
-
*
|
|
16
|
-
* @param enabled - Whether the provider should be enabled.
|
|
17
|
-
*/
|
|
18
|
-
setEnabled(enabled: boolean): void;
|
|
19
|
-
/**
|
|
20
|
-
* Override getAccounts to return empty array when disabled.
|
|
21
|
-
*
|
|
22
|
-
* @returns Array of accounts, or empty array if disabled.
|
|
23
|
-
*/
|
|
24
|
-
getAccounts(): Bip44Account<KeyringAccount>[];
|
|
25
|
-
/**
|
|
26
|
-
* Override getAccount to throw when disabled.
|
|
27
|
-
*
|
|
28
|
-
* @param id - The account ID to retrieve.
|
|
29
|
-
* @returns The account with the specified ID.
|
|
30
|
-
* @throws When disabled or account not found.
|
|
31
|
-
*/
|
|
32
|
-
getAccount(id: Bip44Account<KeyringAccount>['id']): Bip44Account<KeyringAccount>;
|
|
33
|
-
/**
|
|
34
|
-
* Implement abstract method: Check if account is compatible.
|
|
35
|
-
* Delegates directly to wrapped provider - no runtime checks needed!
|
|
36
|
-
*
|
|
37
|
-
* @param account - The account to check.
|
|
38
|
-
* @returns True if the account is compatible.
|
|
39
|
-
*/
|
|
40
|
-
isAccountCompatible(account: Bip44Account<KeyringAccount>): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Implement abstract method: Create accounts, returns empty array when disabled.
|
|
43
|
-
*
|
|
44
|
-
* @param options - Account creation options.
|
|
45
|
-
* @param options.entropySource - The entropy source to use.
|
|
46
|
-
* @param options.groupIndex - The group index to use.
|
|
47
|
-
* @returns Promise resolving to created accounts, or empty array if disabled.
|
|
48
|
-
*/
|
|
49
|
-
createAccounts(options: {
|
|
50
|
-
entropySource: EntropySourceId;
|
|
51
|
-
groupIndex: number;
|
|
52
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
53
|
-
/**
|
|
54
|
-
* Implement abstract method: Discover and create accounts, returns empty array when disabled.
|
|
55
|
-
*
|
|
56
|
-
* @param options - Account discovery options.
|
|
57
|
-
* @param options.entropySource - The entropy source to use.
|
|
58
|
-
* @param options.groupIndex - The group index to use.
|
|
59
|
-
* @returns Promise resolving to discovered accounts, or empty array if disabled.
|
|
60
|
-
*/
|
|
61
|
-
discoverAndCreateAccounts(options: {
|
|
62
|
-
entropySource: EntropySourceId;
|
|
63
|
-
groupIndex: number;
|
|
64
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Simple type guard to check if a provider is wrapped.
|
|
68
|
-
*
|
|
69
|
-
* @param provider - The provider to check.
|
|
70
|
-
* @returns True if the provider is an AccountProviderWrapper.
|
|
71
|
-
*/
|
|
72
|
-
export declare function isAccountProviderWrapper(provider: AccountProvider<Bip44Account<KeyringAccount>> | AccountProviderWrapper): provider is AccountProviderWrapper;
|
|
73
|
-
//# sourceMappingURL=AccountProviderWrapper.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AccountProviderWrapper.d.cts","sourceRoot":"","sources":["../../src/providers/AccountProviderWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,8BAA8B;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAE7E,OAAO,EAAE,wBAAwB,EAAE,uCAAmC;AACtE,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,wBAAwB;IAClE,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;gBAGlD,SAAS,EAAE,iCAAiC,EAC5C,QAAQ,EAAE,wBAAwB;IAMpC;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;OAIG;IACM,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;IAOtD;;;;;;OAMG;IACM,UAAU,CACjB,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GACrC,YAAY,CAAC,cAAc,CAAC;IAO/B;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,OAAO;IAInE;;;;;;;OAOG;IACG,cAAc,CAAC,OAAO,EAAE;QAC5B,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;IAO3C;;;;;;;OAOG;IACG,yBAAyB,CAAC,OAAO,EAAE;QACvC,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EACJ,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,GAC7C,sBAAsB,GACzB,QAAQ,IAAI,sBAAsB,CAEpC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Bip44Account, AccountProvider } from "@metamask/account-api";
|
|
2
|
-
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
3
|
-
import { BaseBip44AccountProvider } from "./BaseBip44AccountProvider.mjs";
|
|
4
|
-
import type { MultichainAccountServiceMessenger } from "../types.mjs";
|
|
5
|
-
/**
|
|
6
|
-
* A simple wrapper that adds disable functionality to any BaseBip44AccountProvider.
|
|
7
|
-
* When disabled, the provider will not create new accounts and return empty results.
|
|
8
|
-
*/
|
|
9
|
-
export declare class AccountProviderWrapper extends BaseBip44AccountProvider {
|
|
10
|
-
private isEnabled;
|
|
11
|
-
private readonly provider;
|
|
12
|
-
constructor(messenger: MultichainAccountServiceMessenger, provider: BaseBip44AccountProvider);
|
|
13
|
-
/**
|
|
14
|
-
* Set the enabled state for this provider.
|
|
15
|
-
*
|
|
16
|
-
* @param enabled - Whether the provider should be enabled.
|
|
17
|
-
*/
|
|
18
|
-
setEnabled(enabled: boolean): void;
|
|
19
|
-
/**
|
|
20
|
-
* Override getAccounts to return empty array when disabled.
|
|
21
|
-
*
|
|
22
|
-
* @returns Array of accounts, or empty array if disabled.
|
|
23
|
-
*/
|
|
24
|
-
getAccounts(): Bip44Account<KeyringAccount>[];
|
|
25
|
-
/**
|
|
26
|
-
* Override getAccount to throw when disabled.
|
|
27
|
-
*
|
|
28
|
-
* @param id - The account ID to retrieve.
|
|
29
|
-
* @returns The account with the specified ID.
|
|
30
|
-
* @throws When disabled or account not found.
|
|
31
|
-
*/
|
|
32
|
-
getAccount(id: Bip44Account<KeyringAccount>['id']): Bip44Account<KeyringAccount>;
|
|
33
|
-
/**
|
|
34
|
-
* Implement abstract method: Check if account is compatible.
|
|
35
|
-
* Delegates directly to wrapped provider - no runtime checks needed!
|
|
36
|
-
*
|
|
37
|
-
* @param account - The account to check.
|
|
38
|
-
* @returns True if the account is compatible.
|
|
39
|
-
*/
|
|
40
|
-
isAccountCompatible(account: Bip44Account<KeyringAccount>): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Implement abstract method: Create accounts, returns empty array when disabled.
|
|
43
|
-
*
|
|
44
|
-
* @param options - Account creation options.
|
|
45
|
-
* @param options.entropySource - The entropy source to use.
|
|
46
|
-
* @param options.groupIndex - The group index to use.
|
|
47
|
-
* @returns Promise resolving to created accounts, or empty array if disabled.
|
|
48
|
-
*/
|
|
49
|
-
createAccounts(options: {
|
|
50
|
-
entropySource: EntropySourceId;
|
|
51
|
-
groupIndex: number;
|
|
52
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
53
|
-
/**
|
|
54
|
-
* Implement abstract method: Discover and create accounts, returns empty array when disabled.
|
|
55
|
-
*
|
|
56
|
-
* @param options - Account discovery options.
|
|
57
|
-
* @param options.entropySource - The entropy source to use.
|
|
58
|
-
* @param options.groupIndex - The group index to use.
|
|
59
|
-
* @returns Promise resolving to discovered accounts, or empty array if disabled.
|
|
60
|
-
*/
|
|
61
|
-
discoverAndCreateAccounts(options: {
|
|
62
|
-
entropySource: EntropySourceId;
|
|
63
|
-
groupIndex: number;
|
|
64
|
-
}): Promise<Bip44Account<KeyringAccount>[]>;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Simple type guard to check if a provider is wrapped.
|
|
68
|
-
*
|
|
69
|
-
* @param provider - The provider to check.
|
|
70
|
-
* @returns True if the provider is an AccountProviderWrapper.
|
|
71
|
-
*/
|
|
72
|
-
export declare function isAccountProviderWrapper(provider: AccountProvider<Bip44Account<KeyringAccount>> | AccountProviderWrapper): provider is AccountProviderWrapper;
|
|
73
|
-
//# sourceMappingURL=AccountProviderWrapper.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AccountProviderWrapper.d.mts","sourceRoot":"","sources":["../../src/providers/AccountProviderWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,8BAA8B;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAE7E,OAAO,EAAE,wBAAwB,EAAE,uCAAmC;AACtE,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,wBAAwB;IAClE,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;gBAGlD,SAAS,EAAE,iCAAiC,EAC5C,QAAQ,EAAE,wBAAwB;IAMpC;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;OAIG;IACM,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;IAOtD;;;;;;OAMG;IACM,UAAU,CACjB,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GACrC,YAAY,CAAC,cAAc,CAAC;IAO/B;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,OAAO;IAInE;;;;;;;OAOG;IACG,cAAc,CAAC,OAAO,EAAE;QAC5B,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;IAO3C;;;;;;;OAOG;IACG,yBAAyB,CAAC,OAAO,EAAE;QACvC,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EACJ,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,GAC7C,sBAAsB,GACzB,QAAQ,IAAI,sBAAsB,CAEpC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { BaseBip44AccountProvider } from "./BaseBip44AccountProvider.mjs";
|
|
2
|
-
/**
|
|
3
|
-
* A simple wrapper that adds disable functionality to any BaseBip44AccountProvider.
|
|
4
|
-
* When disabled, the provider will not create new accounts and return empty results.
|
|
5
|
-
*/
|
|
6
|
-
export class AccountProviderWrapper extends BaseBip44AccountProvider {
|
|
7
|
-
constructor(messenger, provider) {
|
|
8
|
-
super(messenger);
|
|
9
|
-
this.isEnabled = true;
|
|
10
|
-
this.provider = provider;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Set the enabled state for this provider.
|
|
14
|
-
*
|
|
15
|
-
* @param enabled - Whether the provider should be enabled.
|
|
16
|
-
*/
|
|
17
|
-
setEnabled(enabled) {
|
|
18
|
-
this.isEnabled = enabled;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Override getAccounts to return empty array when disabled.
|
|
22
|
-
*
|
|
23
|
-
* @returns Array of accounts, or empty array if disabled.
|
|
24
|
-
*/
|
|
25
|
-
getAccounts() {
|
|
26
|
-
if (!this.isEnabled) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
return this.provider.getAccounts();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Override getAccount to throw when disabled.
|
|
33
|
-
*
|
|
34
|
-
* @param id - The account ID to retrieve.
|
|
35
|
-
* @returns The account with the specified ID.
|
|
36
|
-
* @throws When disabled or account not found.
|
|
37
|
-
*/
|
|
38
|
-
getAccount(id) {
|
|
39
|
-
if (!this.isEnabled) {
|
|
40
|
-
throw new Error('Provider is disabled');
|
|
41
|
-
}
|
|
42
|
-
return this.provider.getAccount(id);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Implement abstract method: Check if account is compatible.
|
|
46
|
-
* Delegates directly to wrapped provider - no runtime checks needed!
|
|
47
|
-
*
|
|
48
|
-
* @param account - The account to check.
|
|
49
|
-
* @returns True if the account is compatible.
|
|
50
|
-
*/
|
|
51
|
-
isAccountCompatible(account) {
|
|
52
|
-
return this.provider.isAccountCompatible(account);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Implement abstract method: Create accounts, returns empty array when disabled.
|
|
56
|
-
*
|
|
57
|
-
* @param options - Account creation options.
|
|
58
|
-
* @param options.entropySource - The entropy source to use.
|
|
59
|
-
* @param options.groupIndex - The group index to use.
|
|
60
|
-
* @returns Promise resolving to created accounts, or empty array if disabled.
|
|
61
|
-
*/
|
|
62
|
-
async createAccounts(options) {
|
|
63
|
-
if (!this.isEnabled) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
return this.provider.createAccounts(options);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Implement abstract method: Discover and create accounts, returns empty array when disabled.
|
|
70
|
-
*
|
|
71
|
-
* @param options - Account discovery options.
|
|
72
|
-
* @param options.entropySource - The entropy source to use.
|
|
73
|
-
* @param options.groupIndex - The group index to use.
|
|
74
|
-
* @returns Promise resolving to discovered accounts, or empty array if disabled.
|
|
75
|
-
*/
|
|
76
|
-
async discoverAndCreateAccounts(options) {
|
|
77
|
-
if (!this.isEnabled) {
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
return this.provider.discoverAndCreateAccounts(options);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Simple type guard to check if a provider is wrapped.
|
|
85
|
-
*
|
|
86
|
-
* @param provider - The provider to check.
|
|
87
|
-
* @returns True if the provider is an AccountProviderWrapper.
|
|
88
|
-
*/
|
|
89
|
-
export function isAccountProviderWrapper(provider) {
|
|
90
|
-
return provider instanceof AccountProviderWrapper;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=AccountProviderWrapper.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AccountProviderWrapper.mjs","sourceRoot":"","sources":["../../src/providers/AccountProviderWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,uCAAmC;AAGtE;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,wBAAwB;IAKlE,YACE,SAA4C,EAC5C,QAAkC;QAElC,KAAK,CAAC,SAAS,CAAC,CAAC;QARX,cAAS,GAAY,IAAI,CAAC;QAShC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACM,WAAW;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACM,UAAU,CACjB,EAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAqC;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,OAGpB;QACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,yBAAyB,CAAC,OAG/B;QACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAE0B;IAE1B,OAAO,QAAQ,YAAY,sBAAsB,CAAC;AACpD,CAAC","sourcesContent":["import type { Bip44Account, AccountProvider } from '@metamask/account-api';\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\n\nimport { BaseBip44AccountProvider } from './BaseBip44AccountProvider';\nimport type { MultichainAccountServiceMessenger } from '../types';\n\n/**\n * A simple wrapper that adds disable functionality to any BaseBip44AccountProvider.\n * When disabled, the provider will not create new accounts and return empty results.\n */\nexport class AccountProviderWrapper extends BaseBip44AccountProvider {\n private isEnabled: boolean = true;\n\n private readonly provider: BaseBip44AccountProvider;\n\n constructor(\n messenger: MultichainAccountServiceMessenger,\n provider: BaseBip44AccountProvider,\n ) {\n super(messenger);\n this.provider = provider;\n }\n\n /**\n * Set the enabled state for this provider.\n *\n * @param enabled - Whether the provider should be enabled.\n */\n setEnabled(enabled: boolean): void {\n this.isEnabled = enabled;\n }\n\n /**\n * Override getAccounts to return empty array when disabled.\n *\n * @returns Array of accounts, or empty array if disabled.\n */\n override getAccounts(): Bip44Account<KeyringAccount>[] {\n if (!this.isEnabled) {\n return [];\n }\n return this.provider.getAccounts();\n }\n\n /**\n * Override getAccount to throw when disabled.\n *\n * @param id - The account ID to retrieve.\n * @returns The account with the specified ID.\n * @throws When disabled or account not found.\n */\n override getAccount(\n id: Bip44Account<KeyringAccount>['id'],\n ): Bip44Account<KeyringAccount> {\n if (!this.isEnabled) {\n throw new Error('Provider is disabled');\n }\n return this.provider.getAccount(id);\n }\n\n /**\n * Implement abstract method: Check if account is compatible.\n * Delegates directly to wrapped provider - no runtime checks needed!\n *\n * @param account - The account to check.\n * @returns True if the account is compatible.\n */\n isAccountCompatible(account: Bip44Account<KeyringAccount>): boolean {\n return this.provider.isAccountCompatible(account);\n }\n\n /**\n * Implement abstract method: Create accounts, returns empty array when disabled.\n *\n * @param options - Account creation options.\n * @param options.entropySource - The entropy source to use.\n * @param options.groupIndex - The group index to use.\n * @returns Promise resolving to created accounts, or empty array if disabled.\n */\n async createAccounts(options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]> {\n if (!this.isEnabled) {\n return [];\n }\n return this.provider.createAccounts(options);\n }\n\n /**\n * Implement abstract method: Discover and create accounts, returns empty array when disabled.\n *\n * @param options - Account discovery options.\n * @param options.entropySource - The entropy source to use.\n * @param options.groupIndex - The group index to use.\n * @returns Promise resolving to discovered accounts, or empty array if disabled.\n */\n async discoverAndCreateAccounts(options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]> {\n if (!this.isEnabled) {\n return [];\n }\n return this.provider.discoverAndCreateAccounts(options);\n }\n}\n\n/**\n * Simple type guard to check if a provider is wrapped.\n *\n * @param provider - The provider to check.\n * @returns True if the provider is an AccountProviderWrapper.\n */\nexport function isAccountProviderWrapper(\n provider:\n | AccountProvider<Bip44Account<KeyringAccount>>\n | AccountProviderWrapper,\n): provider is AccountProviderWrapper {\n return provider instanceof AccountProviderWrapper;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBip44AccountProvider.cjs","sourceRoot":"","sources":["../../src/providers/BaseBip44AccountProvider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uDAI+B;AAS/B;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,OAAuB;IAEvB,IAAI,CAAC,IAAA,4BAAc,EAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;AACH,CAAC;AAND,oDAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,QAA0B;IAE1B,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC;AAJD,wDAIC;AAED,MAAsB,wBAAwB;IAK5C,YAAY,SAA4C;;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAyBD,WAAW;QACT,OAAO,uBAAA,IAAI,kFAAa,MAAjB,IAAI,CAAe,CAAC;IAC7B,CAAC;IAED,UAAU,CACR,EAAsC;QAEtC,wDAAwD;QACxD,MAAM,CAAC,KAAK,CAAC,GAAG,uBAAA,IAAI,kFAAa,MAAjB,IAAI,EAAc,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;SAClD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,WAAW,CACzB,QAAyB,EACzB,SAM6B;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,+BAA+B,EAC/B,QAAQ,EACR,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxB,SAAS,CAAC;YACR,OAAO,EAAE,OAA0B;YACnC,QAAQ;SACT,CAAC,CACL,CAAC;QAEF,OAAO,MAAwB,CAAC;IAClC,CAAC;CAmBF;AAzFD,4DAyFC;4IA/EG,SAA+C,GAAG,EAAE,CAAC,IAAI;IAEzD,MAAM,QAAQ,GAAmC,EAAE,CAAC;IAEpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI;IACvC,2EAA2E;IAC3E,yEAAyE;IACzE,kDAAkD;IAClD,2CAA2C,CAC5C,EAAE;QACD,IACE,IAAA,4BAAc,EAAC,OAAO,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,EACf;YACA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import {\n isBip44Account,\n type AccountProvider,\n type Bip44Account,\n} from '@metamask/account-api';\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport type {\n KeyringMetadata,\n KeyringSelector,\n} from '@metamask/keyring-controller';\n\nimport type { MultichainAccountServiceMessenger } from '../types';\n\n/**\n * Asserts a keyring account is BIP-44 compatible.\n *\n * @param account - Keyring account to check.\n * @throws If the keyring account is not compatible.\n */\nexport function assertIsBip44Account(\n account: KeyringAccount,\n): asserts account is Bip44Account<KeyringAccount> {\n if (!isBip44Account(account)) {\n throw new Error('Created account is not BIP-44 compatible');\n }\n}\n\n/**\n * Asserts that a list of keyring accounts are all BIP-44 compatible.\n *\n * @param accounts - Keyring accounts to check.\n * @throws If any of the keyring account is not compatible.\n */\nexport function assertAreBip44Accounts(\n accounts: KeyringAccount[],\n): asserts accounts is Bip44Account<KeyringAccount>[] {\n accounts.forEach(assertIsBip44Account);\n}\n\nexport abstract class BaseBip44AccountProvider\n implements AccountProvider<Bip44Account<KeyringAccount>>\n{\n protected readonly messenger: MultichainAccountServiceMessenger;\n\n constructor(messenger: MultichainAccountServiceMessenger) {\n this.messenger = messenger;\n }\n\n #getAccounts(\n filter: (account: KeyringAccount) => boolean = () => true,\n ): Bip44Account<KeyringAccount>[] {\n const accounts: Bip44Account<KeyringAccount>[] = [];\n\n for (const account of this.messenger.call(\n // NOTE: Even though the name is misleading, this only fetches all internal\n // accounts, including EVM and non-EVM. We might wanna change this action\n // name once we fully support multichain accounts.\n 'AccountsController:listMultichainAccounts',\n )) {\n if (\n isBip44Account(account) &&\n this.isAccountCompatible(account) &&\n filter(account)\n ) {\n accounts.push(account);\n }\n }\n\n return accounts;\n }\n\n getAccounts(): Bip44Account<KeyringAccount>[] {\n return this.#getAccounts();\n }\n\n getAccount(\n id: Bip44Account<KeyringAccount>['id'],\n ): Bip44Account<KeyringAccount> {\n // TODO: Maybe just use a proper find for faster lookup?\n const [found] = this.#getAccounts((account) => account.id === id);\n\n if (!found) {\n throw new Error(`Unable to find account: ${id}`);\n }\n\n return found;\n }\n\n protected async withKeyring<SelectedKeyring, CallbackResult = void>(\n selector: KeyringSelector,\n operation: ({\n keyring,\n metadata,\n }: {\n keyring: SelectedKeyring;\n metadata: KeyringMetadata;\n }) => Promise<CallbackResult>,\n ): Promise<CallbackResult> {\n const result = await this.messenger.call(\n 'KeyringController:withKeyring',\n selector,\n ({ keyring, metadata }) =>\n operation({\n keyring: keyring as SelectedKeyring,\n metadata,\n }),\n );\n\n return result as CallbackResult;\n }\n\n abstract isAccountCompatible(account: Bip44Account<KeyringAccount>): boolean;\n\n abstract createAccounts({\n entropySource,\n groupIndex,\n }: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]>;\n\n abstract discoverAndCreateAccounts({\n entropySource,\n groupIndex,\n }: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]>;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBip44AccountProvider.d.cts","sourceRoot":"","sources":["../../src/providers/BaseBip44AccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,8BAA8B;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAChB,qCAAqC;AAEtC,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,cAAc,CAAC,CAIjD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,EAAE,GACzB,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAEpD;AAED,8BAAsB,wBACpB,YAAW,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;;IAExD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iCAAiC,CAAC;gBAEpD,SAAS,EAAE,iCAAiC;IA2BxD,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;IAI7C,UAAU,CACR,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GACrC,YAAY,CAAC,cAAc,CAAC;cAWf,WAAW,CAAC,eAAe,EAAE,cAAc,GAAG,IAAI,EAChE,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,CAAC,EACV,OAAO,EACP,QAAQ,GACT,EAAE;QACD,OAAO,EAAE,eAAe,CAAC;QACzB,QAAQ,EAAE,eAAe,CAAC;KAC3B,KAAK,OAAO,CAAC,cAAc,CAAC,GAC5B,OAAO,CAAC,cAAc,CAAC;IAc1B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,OAAO;IAE5E,QAAQ,CAAC,cAAc,CAAC,EACtB,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;IAE3C,QAAQ,CAAC,yBAAyB,CAAC,EACjC,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;CAC5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBip44AccountProvider.d.mts","sourceRoot":"","sources":["../../src/providers/BaseBip44AccountProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,8BAA8B;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAChB,qCAAqC;AAEtC,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAiB;AAElE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,cAAc,CAAC,CAIjD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,EAAE,GACzB,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAEpD;AAED,8BAAsB,wBACpB,YAAW,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;;IAExD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iCAAiC,CAAC;gBAEpD,SAAS,EAAE,iCAAiC;IA2BxD,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;IAI7C,UAAU,CACR,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GACrC,YAAY,CAAC,cAAc,CAAC;cAWf,WAAW,CAAC,eAAe,EAAE,cAAc,GAAG,IAAI,EAChE,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,CAAC,EACV,OAAO,EACP,QAAQ,GACT,EAAE;QACD,OAAO,EAAE,eAAe,CAAC;QACzB,QAAQ,EAAE,eAAe,CAAC;KAC3B,KAAK,OAAO,CAAC,cAAc,CAAC,GAC5B,OAAO,CAAC,cAAc,CAAC;IAc1B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,OAAO;IAE5E,QAAQ,CAAC,cAAc,CAAC,EACtB,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;IAE3C,QAAQ,CAAC,yBAAyB,CAAC,EACjC,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;CAC5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBip44AccountProvider.mjs","sourceRoot":"","sources":["../../src/providers/BaseBip44AccountProvider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACL,cAAc,EAGf,8BAA8B;AAS/B;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAuB;IAEvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA0B;IAE1B,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,OAAgB,wBAAwB;IAK5C,YAAY,SAA4C;;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAyBD,WAAW;QACT,OAAO,uBAAA,IAAI,kFAAa,MAAjB,IAAI,CAAe,CAAC;IAC7B,CAAC;IAED,UAAU,CACR,EAAsC;QAEtC,wDAAwD;QACxD,MAAM,CAAC,KAAK,CAAC,GAAG,uBAAA,IAAI,kFAAa,MAAjB,IAAI,EAAc,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;SAClD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,WAAW,CACzB,QAAyB,EACzB,SAM6B;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,+BAA+B,EAC/B,QAAQ,EACR,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxB,SAAS,CAAC;YACR,OAAO,EAAE,OAA0B;YACnC,QAAQ;SACT,CAAC,CACL,CAAC;QAEF,OAAO,MAAwB,CAAC;IAClC,CAAC;CAmBF;4IA/EG,SAA+C,GAAG,EAAE,CAAC,IAAI;IAEzD,MAAM,QAAQ,GAAmC,EAAE,CAAC;IAEpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI;IACvC,2EAA2E;IAC3E,yEAAyE;IACzE,kDAAkD;IAClD,2CAA2C,CAC5C,EAAE;QACD,IACE,cAAc,CAAC,OAAO,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,EACf;YACA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import {\n isBip44Account,\n type AccountProvider,\n type Bip44Account,\n} from '@metamask/account-api';\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport type {\n KeyringMetadata,\n KeyringSelector,\n} from '@metamask/keyring-controller';\n\nimport type { MultichainAccountServiceMessenger } from '../types';\n\n/**\n * Asserts a keyring account is BIP-44 compatible.\n *\n * @param account - Keyring account to check.\n * @throws If the keyring account is not compatible.\n */\nexport function assertIsBip44Account(\n account: KeyringAccount,\n): asserts account is Bip44Account<KeyringAccount> {\n if (!isBip44Account(account)) {\n throw new Error('Created account is not BIP-44 compatible');\n }\n}\n\n/**\n * Asserts that a list of keyring accounts are all BIP-44 compatible.\n *\n * @param accounts - Keyring accounts to check.\n * @throws If any of the keyring account is not compatible.\n */\nexport function assertAreBip44Accounts(\n accounts: KeyringAccount[],\n): asserts accounts is Bip44Account<KeyringAccount>[] {\n accounts.forEach(assertIsBip44Account);\n}\n\nexport abstract class BaseBip44AccountProvider\n implements AccountProvider<Bip44Account<KeyringAccount>>\n{\n protected readonly messenger: MultichainAccountServiceMessenger;\n\n constructor(messenger: MultichainAccountServiceMessenger) {\n this.messenger = messenger;\n }\n\n #getAccounts(\n filter: (account: KeyringAccount) => boolean = () => true,\n ): Bip44Account<KeyringAccount>[] {\n const accounts: Bip44Account<KeyringAccount>[] = [];\n\n for (const account of this.messenger.call(\n // NOTE: Even though the name is misleading, this only fetches all internal\n // accounts, including EVM and non-EVM. We might wanna change this action\n // name once we fully support multichain accounts.\n 'AccountsController:listMultichainAccounts',\n )) {\n if (\n isBip44Account(account) &&\n this.isAccountCompatible(account) &&\n filter(account)\n ) {\n accounts.push(account);\n }\n }\n\n return accounts;\n }\n\n getAccounts(): Bip44Account<KeyringAccount>[] {\n return this.#getAccounts();\n }\n\n getAccount(\n id: Bip44Account<KeyringAccount>['id'],\n ): Bip44Account<KeyringAccount> {\n // TODO: Maybe just use a proper find for faster lookup?\n const [found] = this.#getAccounts((account) => account.id === id);\n\n if (!found) {\n throw new Error(`Unable to find account: ${id}`);\n }\n\n return found;\n }\n\n protected async withKeyring<SelectedKeyring, CallbackResult = void>(\n selector: KeyringSelector,\n operation: ({\n keyring,\n metadata,\n }: {\n keyring: SelectedKeyring;\n metadata: KeyringMetadata;\n }) => Promise<CallbackResult>,\n ): Promise<CallbackResult> {\n const result = await this.messenger.call(\n 'KeyringController:withKeyring',\n selector,\n ({ keyring, metadata }) =>\n operation({\n keyring: keyring as SelectedKeyring,\n metadata,\n }),\n );\n\n return result as CallbackResult;\n }\n\n abstract isAccountCompatible(account: Bip44Account<KeyringAccount>): boolean;\n\n abstract createAccounts({\n entropySource,\n groupIndex,\n }: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]>;\n\n abstract discoverAndCreateAccounts({\n entropySource,\n groupIndex,\n }: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }): Promise<Bip44Account<KeyringAccount>[]>;\n}\n"]}
|