@metamask-previews/account-api 0.0.0-586437b
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 +10 -0
- package/README.md +15 -0
- package/dist/api/group.cjs +27 -0
- package/dist/api/group.cjs.map +1 -0
- package/dist/api/group.d.cts +40 -0
- package/dist/api/group.d.cts.map +1 -0
- package/dist/api/group.d.mts +40 -0
- package/dist/api/group.d.mts.map +1 -0
- package/dist/api/group.mjs +22 -0
- package/dist/api/group.mjs.map +1 -0
- package/dist/api/index.cjs +20 -0
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/index.d.cts +4 -0
- package/dist/api/index.d.cts.map +1 -0
- package/dist/api/index.d.mts +4 -0
- package/dist/api/index.d.mts.map +1 -0
- package/dist/api/index.mjs +4 -0
- package/dist/api/index.mjs.map +1 -0
- package/dist/api/multichain/adapters.cjs +240 -0
- package/dist/api/multichain/adapters.cjs.map +1 -0
- package/dist/api/multichain/adapters.d.cts +37 -0
- package/dist/api/multichain/adapters.d.cts.map +1 -0
- package/dist/api/multichain/adapters.d.mts +37 -0
- package/dist/api/multichain/adapters.d.mts.map +1 -0
- package/dist/api/multichain/adapters.mjs +235 -0
- package/dist/api/multichain/adapters.mjs.map +1 -0
- package/dist/api/multichain/id.cjs +43 -0
- package/dist/api/multichain/id.cjs.map +1 -0
- package/dist/api/multichain/id.d.cts +28 -0
- package/dist/api/multichain/id.d.cts.map +1 -0
- package/dist/api/multichain/id.d.mts +28 -0
- package/dist/api/multichain/id.d.mts.map +1 -0
- package/dist/api/multichain/id.mjs +38 -0
- package/dist/api/multichain/id.mjs.map +1 -0
- package/dist/api/multichain/index.cjs +18 -0
- package/dist/api/multichain/index.cjs.map +1 -0
- package/dist/api/multichain/index.d.cts +5 -0
- package/dist/api/multichain/index.d.cts.map +1 -0
- package/dist/api/multichain/index.d.mts +5 -0
- package/dist/api/multichain/index.d.mts.map +1 -0
- package/dist/api/multichain/index.mjs +2 -0
- package/dist/api/multichain/index.mjs.map +1 -0
- package/dist/api/multichain/providers.cjs +3 -0
- package/dist/api/multichain/providers.cjs.map +1 -0
- package/dist/api/multichain/providers.d.cts +18 -0
- package/dist/api/multichain/providers.d.cts.map +1 -0
- package/dist/api/multichain/providers.d.mts +18 -0
- package/dist/api/multichain/providers.d.mts.map +1 -0
- package/dist/api/multichain/providers.mjs +2 -0
- package/dist/api/multichain/providers.mjs.map +1 -0
- package/dist/api/multichain/types.cjs +3 -0
- package/dist/api/multichain/types.cjs.map +1 -0
- package/dist/api/multichain/types.d.cts +93 -0
- package/dist/api/multichain/types.d.cts.map +1 -0
- package/dist/api/multichain/types.d.mts +93 -0
- package/dist/api/multichain/types.d.mts.map +1 -0
- package/dist/api/multichain/types.mjs +2 -0
- package/dist/api/multichain/types.mjs.map +1 -0
- package/dist/api/wallet.cjs +21 -0
- package/dist/api/wallet.cjs.map +1 -0
- package/dist/api/wallet.d.cts +32 -0
- package/dist/api/wallet.d.cts.map +1 -0
- package/dist/api/wallet.d.mts +32 -0
- package/dist/api/wallet.d.mts.map +1 -0
- package/dist/api/wallet.mjs +17 -0
- package/dist/api/wallet.mjs.map +1 -0
- package/dist/index.cjs +18 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
2
|
+
import type { AccountId } from "@metamask/keyring-utils";
|
|
3
|
+
import type { CaipChainId } from "@metamask/utils";
|
|
4
|
+
import type { MultichainAccountId, MultichainAccountWalletId } from "./id.cjs";
|
|
5
|
+
import type { AccountGroup } from "../group.cjs";
|
|
6
|
+
import type { AccountWallet } from "../wallet.cjs";
|
|
7
|
+
export type AccountType = string;
|
|
8
|
+
export type AccountMethod = string;
|
|
9
|
+
export type MultichainAccountSelector = {
|
|
10
|
+
id?: AccountId;
|
|
11
|
+
address?: string;
|
|
12
|
+
type?: AccountType;
|
|
13
|
+
methods?: AccountMethod[];
|
|
14
|
+
scopes?: CaipChainId[];
|
|
15
|
+
};
|
|
16
|
+
export type MultichainAccount<Account extends KeyringAccount> = AccountGroup<Account> & {
|
|
17
|
+
get id(): MultichainAccountId;
|
|
18
|
+
get wallet(): MultichainAccountWallet<Account>;
|
|
19
|
+
get index(): number;
|
|
20
|
+
/**
|
|
21
|
+
* Gets the "blockchain" accounts for this multichain account.
|
|
22
|
+
*
|
|
23
|
+
* @param id - Account ID.
|
|
24
|
+
* @returns The "blockchain" accounts.
|
|
25
|
+
*/
|
|
26
|
+
getAccounts(): Account[];
|
|
27
|
+
/**
|
|
28
|
+
* Gets the "blockchain" account for a given account ID.
|
|
29
|
+
*
|
|
30
|
+
* @param id - Account ID.
|
|
31
|
+
* @returns The "blockchain" account or undefined if not found.
|
|
32
|
+
*/
|
|
33
|
+
getAccount(id: AccountId): Account | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Query a "blockchain" account matching the selector.
|
|
36
|
+
*
|
|
37
|
+
* @param selector - Query selector.
|
|
38
|
+
* @returns The "blockchain" account matching the selector or undefined if not matching.
|
|
39
|
+
* @throws If multiple accounts match the selector.
|
|
40
|
+
*/
|
|
41
|
+
get(selector: MultichainAccountSelector): Account | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Query "blockchain" accounts matching the selector.
|
|
44
|
+
*
|
|
45
|
+
* @param selector - Query selector.
|
|
46
|
+
* @returns The "blockchain" accounts matching the selector.
|
|
47
|
+
*/
|
|
48
|
+
select(selector: MultichainAccountSelector): Account[];
|
|
49
|
+
};
|
|
50
|
+
export type MultichainAccountWallet<Account extends KeyringAccount> = AccountWallet<Account> & {
|
|
51
|
+
get id(): MultichainAccountWalletId;
|
|
52
|
+
get entropySource(): EntropySourceId;
|
|
53
|
+
/**
|
|
54
|
+
* Gets multichain account for a given index.
|
|
55
|
+
*
|
|
56
|
+
* @returns Multichain accounts.
|
|
57
|
+
*/
|
|
58
|
+
getMultichainAccount(groupIndex: number): MultichainAccount<Account> | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Gets multichain accounts.
|
|
61
|
+
*
|
|
62
|
+
* @returns Multichain accounts.
|
|
63
|
+
*/
|
|
64
|
+
getMultichainAccounts(): MultichainAccount<Account>[];
|
|
65
|
+
/**
|
|
66
|
+
* Gets the next available account index (named group index internally).
|
|
67
|
+
*
|
|
68
|
+
* @returns Next available group index.
|
|
69
|
+
*/
|
|
70
|
+
getNextGroupIndex(): number;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a new multichain account on a given group index.
|
|
73
|
+
*
|
|
74
|
+
* NOTE: This method is idempotent.
|
|
75
|
+
*
|
|
76
|
+
* @param groupIndex - Next available group index.
|
|
77
|
+
* @returns New (or existing) multichain account for the given group index.
|
|
78
|
+
*/
|
|
79
|
+
createMultichainAccount(groupIndex: number): Promise<MultichainAccount<Account>>;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a new multichain account for the next available group index.
|
|
82
|
+
*
|
|
83
|
+
* @returns Next multichain account.
|
|
84
|
+
*/
|
|
85
|
+
createNextMultichainAccount(): Promise<MultichainAccount<Account>>;
|
|
86
|
+
/**
|
|
87
|
+
* Discovers and automatically create multichain accounts for that wallet.
|
|
88
|
+
*
|
|
89
|
+
* @returns List of all multichain accounts that got discovered or automatically created.
|
|
90
|
+
*/
|
|
91
|
+
discoverAndCreateMultichainAccounts(): Promise<MultichainAccount<Account>[]>;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../src/api/multichain/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,gCAAgC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAa;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAkB;AAE/C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,cAAc,IAC1D,YAAY,CAAC,OAAO,CAAC,GAAG;IACtB,IAAI,EAAE,IAAI,mBAAmB,CAAC;IAE9B,IAAI,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,IAAI,OAAO,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,GAAG,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,GAAG,SAAS,CAAC;IAE9D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,EAAE,CAAC;CACxD,CAAC;AAEJ,MAAM,MAAM,uBAAuB,CAAC,OAAO,SAAS,cAAc,IAChE,aAAa,CAAC,OAAO,CAAC,GAAG;IACvB,IAAI,EAAE,IAAI,yBAAyB,CAAC;IAEpC,IAAI,aAAa,IAAI,eAAe,CAAC;IAErC;;;;OAIG;IACH,oBAAoB,CAClB,UAAU,EAAE,MAAM,GACjB,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAE1C;;;;OAIG;IACH,qBAAqB,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEtD;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,CAAC;IAE5B;;;;;;;OAOG;IACH,uBAAuB,CACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC;;;;OAIG;IACH,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnE;;;;OAIG;IACH,mCAAmC,IAAI,OAAO,CAC5C,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAC7B,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
|
|
2
|
+
import type { AccountId } from "@metamask/keyring-utils";
|
|
3
|
+
import type { CaipChainId } from "@metamask/utils";
|
|
4
|
+
import type { MultichainAccountId, MultichainAccountWalletId } from "./id.mjs";
|
|
5
|
+
import type { AccountGroup } from "../group.mjs";
|
|
6
|
+
import type { AccountWallet } from "../wallet.mjs";
|
|
7
|
+
export type AccountType = string;
|
|
8
|
+
export type AccountMethod = string;
|
|
9
|
+
export type MultichainAccountSelector = {
|
|
10
|
+
id?: AccountId;
|
|
11
|
+
address?: string;
|
|
12
|
+
type?: AccountType;
|
|
13
|
+
methods?: AccountMethod[];
|
|
14
|
+
scopes?: CaipChainId[];
|
|
15
|
+
};
|
|
16
|
+
export type MultichainAccount<Account extends KeyringAccount> = AccountGroup<Account> & {
|
|
17
|
+
get id(): MultichainAccountId;
|
|
18
|
+
get wallet(): MultichainAccountWallet<Account>;
|
|
19
|
+
get index(): number;
|
|
20
|
+
/**
|
|
21
|
+
* Gets the "blockchain" accounts for this multichain account.
|
|
22
|
+
*
|
|
23
|
+
* @param id - Account ID.
|
|
24
|
+
* @returns The "blockchain" accounts.
|
|
25
|
+
*/
|
|
26
|
+
getAccounts(): Account[];
|
|
27
|
+
/**
|
|
28
|
+
* Gets the "blockchain" account for a given account ID.
|
|
29
|
+
*
|
|
30
|
+
* @param id - Account ID.
|
|
31
|
+
* @returns The "blockchain" account or undefined if not found.
|
|
32
|
+
*/
|
|
33
|
+
getAccount(id: AccountId): Account | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Query a "blockchain" account matching the selector.
|
|
36
|
+
*
|
|
37
|
+
* @param selector - Query selector.
|
|
38
|
+
* @returns The "blockchain" account matching the selector or undefined if not matching.
|
|
39
|
+
* @throws If multiple accounts match the selector.
|
|
40
|
+
*/
|
|
41
|
+
get(selector: MultichainAccountSelector): Account | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Query "blockchain" accounts matching the selector.
|
|
44
|
+
*
|
|
45
|
+
* @param selector - Query selector.
|
|
46
|
+
* @returns The "blockchain" accounts matching the selector.
|
|
47
|
+
*/
|
|
48
|
+
select(selector: MultichainAccountSelector): Account[];
|
|
49
|
+
};
|
|
50
|
+
export type MultichainAccountWallet<Account extends KeyringAccount> = AccountWallet<Account> & {
|
|
51
|
+
get id(): MultichainAccountWalletId;
|
|
52
|
+
get entropySource(): EntropySourceId;
|
|
53
|
+
/**
|
|
54
|
+
* Gets multichain account for a given index.
|
|
55
|
+
*
|
|
56
|
+
* @returns Multichain accounts.
|
|
57
|
+
*/
|
|
58
|
+
getMultichainAccount(groupIndex: number): MultichainAccount<Account> | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Gets multichain accounts.
|
|
61
|
+
*
|
|
62
|
+
* @returns Multichain accounts.
|
|
63
|
+
*/
|
|
64
|
+
getMultichainAccounts(): MultichainAccount<Account>[];
|
|
65
|
+
/**
|
|
66
|
+
* Gets the next available account index (named group index internally).
|
|
67
|
+
*
|
|
68
|
+
* @returns Next available group index.
|
|
69
|
+
*/
|
|
70
|
+
getNextGroupIndex(): number;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a new multichain account on a given group index.
|
|
73
|
+
*
|
|
74
|
+
* NOTE: This method is idempotent.
|
|
75
|
+
*
|
|
76
|
+
* @param groupIndex - Next available group index.
|
|
77
|
+
* @returns New (or existing) multichain account for the given group index.
|
|
78
|
+
*/
|
|
79
|
+
createMultichainAccount(groupIndex: number): Promise<MultichainAccount<Account>>;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a new multichain account for the next available group index.
|
|
82
|
+
*
|
|
83
|
+
* @returns Next multichain account.
|
|
84
|
+
*/
|
|
85
|
+
createNextMultichainAccount(): Promise<MultichainAccount<Account>>;
|
|
86
|
+
/**
|
|
87
|
+
* Discovers and automatically create multichain accounts for that wallet.
|
|
88
|
+
*
|
|
89
|
+
* @returns List of all multichain accounts that got discovered or automatically created.
|
|
90
|
+
*/
|
|
91
|
+
discoverAndCreateMultichainAccounts(): Promise<MultichainAccount<Account>[]>;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/api/multichain/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,gCAAgC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAa;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAkB;AAE/C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,cAAc,IAC1D,YAAY,CAAC,OAAO,CAAC,GAAG;IACtB,IAAI,EAAE,IAAI,mBAAmB,CAAC;IAE9B,IAAI,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,IAAI,OAAO,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,GAAG,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,GAAG,SAAS,CAAC;IAE9D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,EAAE,CAAC;CACxD,CAAC;AAEJ,MAAM,MAAM,uBAAuB,CAAC,OAAO,SAAS,cAAc,IAChE,aAAa,CAAC,OAAO,CAAC,GAAG;IACvB,IAAI,EAAE,IAAI,yBAAyB,CAAC;IAEpC,IAAI,aAAa,IAAI,eAAe,CAAC;IAErC;;;;OAIG;IACH,oBAAoB,CAClB,UAAU,EAAE,MAAM,GACjB,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAE1C;;;;OAIG;IACH,qBAAqB,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEtD;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,CAAC;IAE5B;;;;;;;OAOG;IACH,uBAAuB,CACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC;;;;OAIG;IACH,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnE;;;;OAIG;IACH,mCAAmC,IAAI,OAAO,CAC5C,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAC7B,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/api/multichain/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport type { AccountId } from '@metamask/keyring-utils';\nimport type { CaipChainId } from '@metamask/utils';\n\nimport type { MultichainAccountId, MultichainAccountWalletId } from './id';\nimport type { AccountGroup } from '../group';\nimport type { AccountWallet } from '../wallet';\n\nexport type AccountType = string;\n\nexport type AccountMethod = string;\n\nexport type MultichainAccountSelector = {\n id?: AccountId;\n address?: string;\n type?: AccountType;\n methods?: AccountMethod[];\n scopes?: CaipChainId[];\n};\n\nexport type MultichainAccount<Account extends KeyringAccount> =\n AccountGroup<Account> & {\n get id(): MultichainAccountId;\n\n get wallet(): MultichainAccountWallet<Account>;\n\n get index(): number;\n\n /**\n * Gets the \"blockchain\" accounts for this multichain account.\n *\n * @param id - Account ID.\n * @returns The \"blockchain\" accounts.\n */\n getAccounts(): Account[];\n\n /**\n * Gets the \"blockchain\" account for a given account ID.\n *\n * @param id - Account ID.\n * @returns The \"blockchain\" account or undefined if not found.\n */\n getAccount(id: AccountId): Account | undefined;\n\n /**\n * Query a \"blockchain\" account matching the selector.\n *\n * @param selector - Query selector.\n * @returns The \"blockchain\" account matching the selector or undefined if not matching.\n * @throws If multiple accounts match the selector.\n */\n get(selector: MultichainAccountSelector): Account | undefined;\n\n /**\n * Query \"blockchain\" accounts matching the selector.\n *\n * @param selector - Query selector.\n * @returns The \"blockchain\" accounts matching the selector.\n */\n select(selector: MultichainAccountSelector): Account[];\n };\n\nexport type MultichainAccountWallet<Account extends KeyringAccount> =\n AccountWallet<Account> & {\n get id(): MultichainAccountWalletId;\n\n get entropySource(): EntropySourceId;\n\n /**\n * Gets multichain account for a given index.\n *\n * @returns Multichain accounts.\n */\n getMultichainAccount(\n groupIndex: number,\n ): MultichainAccount<Account> | undefined;\n\n /**\n * Gets multichain accounts.\n *\n * @returns Multichain accounts.\n */\n getMultichainAccounts(): MultichainAccount<Account>[];\n\n /**\n * Gets the next available account index (named group index internally).\n *\n * @returns Next available group index.\n */\n getNextGroupIndex(): number;\n\n /**\n * Creates a new multichain account on a given group index.\n *\n * NOTE: This method is idempotent.\n *\n * @param groupIndex - Next available group index.\n * @returns New (or existing) multichain account for the given group index.\n */\n createMultichainAccount(\n groupIndex: number,\n ): Promise<MultichainAccount<Account>>;\n\n /**\n * Creates a new multichain account for the next available group index.\n *\n * @returns Next multichain account.\n */\n createNextMultichainAccount(): Promise<MultichainAccount<Account>>;\n\n /**\n * Discovers and automatically create multichain accounts for that wallet.\n *\n * @returns List of all multichain accounts that got discovered or automatically created.\n */\n discoverAndCreateMultichainAccounts(): Promise<\n MultichainAccount<Account>[]\n >;\n };\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountWalletCategory = void 0;
|
|
4
|
+
exports.toAccountWalletId = toAccountWalletId;
|
|
5
|
+
var AccountWalletCategory;
|
|
6
|
+
(function (AccountWalletCategory) {
|
|
7
|
+
AccountWalletCategory["Entropy"] = "entropy";
|
|
8
|
+
AccountWalletCategory["Keyring"] = "keyring";
|
|
9
|
+
AccountWalletCategory["Snap"] = "snap";
|
|
10
|
+
})(AccountWalletCategory || (exports.AccountWalletCategory = AccountWalletCategory = {}));
|
|
11
|
+
/**
|
|
12
|
+
* Convert a unique ID to a wallet ID for a given category.
|
|
13
|
+
*
|
|
14
|
+
* @param category - A wallet category.
|
|
15
|
+
* @param id - A unique ID.
|
|
16
|
+
* @returns A wallet ID.
|
|
17
|
+
*/
|
|
18
|
+
function toAccountWalletId(category, id) {
|
|
19
|
+
return `${category}:${id}`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=wallet.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.cjs","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":";;;AAqCA,8CAKC;AAtCD,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,4CAAmB,CAAA;IACnB,sCAAa,CAAA;AACf,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAsBD;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,QAA+B,EAC/B,EAAU;IAEV,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\nimport type { AccountGroup, AccountGroupId } from './group';\n\nexport enum AccountWalletCategory {\n Entropy = 'entropy',\n Keyring = 'keyring',\n Snap = 'snap',\n}\n\nexport type AccountWalletId = `${AccountWalletCategory}:${string}`;\n\nexport type AccountWallet<Account extends KeyringAccount> = {\n get id(): AccountWalletId;\n\n /**\n * Gets account group for a given ID.\n *\n * @returns Account group.\n */\n getAccountGroup(id: AccountGroupId): AccountGroup<Account> | undefined;\n\n /**\n * Gets all account groups.\n *\n * @returns Account groups.\n */\n getAccountGroups(): AccountGroup<Account>[];\n};\n\n/**\n * Convert a unique ID to a wallet ID for a given category.\n *\n * @param category - A wallet category.\n * @param id - A unique ID.\n * @returns A wallet ID.\n */\nexport function toAccountWalletId(\n category: AccountWalletCategory,\n id: string,\n): AccountWalletId {\n return `${category}:${id}`;\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { KeyringAccount } from "@metamask/keyring-api";
|
|
2
|
+
import type { AccountGroup, AccountGroupId } from "./group.cjs";
|
|
3
|
+
export declare enum AccountWalletCategory {
|
|
4
|
+
Entropy = "entropy",
|
|
5
|
+
Keyring = "keyring",
|
|
6
|
+
Snap = "snap"
|
|
7
|
+
}
|
|
8
|
+
export type AccountWalletId = `${AccountWalletCategory}:${string}`;
|
|
9
|
+
export type AccountWallet<Account extends KeyringAccount> = {
|
|
10
|
+
get id(): AccountWalletId;
|
|
11
|
+
/**
|
|
12
|
+
* Gets account group for a given ID.
|
|
13
|
+
*
|
|
14
|
+
* @returns Account group.
|
|
15
|
+
*/
|
|
16
|
+
getAccountGroup(id: AccountGroupId): AccountGroup<Account> | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Gets all account groups.
|
|
19
|
+
*
|
|
20
|
+
* @returns Account groups.
|
|
21
|
+
*/
|
|
22
|
+
getAccountGroups(): AccountGroup<Account>[];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Convert a unique ID to a wallet ID for a given category.
|
|
26
|
+
*
|
|
27
|
+
* @param category - A wallet category.
|
|
28
|
+
* @param id - A unique ID.
|
|
29
|
+
* @returns A wallet ID.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toAccountWalletId(category: AccountWalletCategory, id: string): AccountWalletId;
|
|
32
|
+
//# sourceMappingURL=wallet.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAgB;AAE5D,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,eAAe,GAAG,GAAG,qBAAqB,IAAI,MAAM,EAAE,CAAC;AAEnE,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,cAAc,IAAI;IAC1D,IAAI,EAAE,IAAI,eAAe,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAEvE;;;;OAIG;IACH,gBAAgB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,EAAE,EAAE,MAAM,GACT,eAAe,CAEjB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { KeyringAccount } from "@metamask/keyring-api";
|
|
2
|
+
import type { AccountGroup, AccountGroupId } from "./group.mjs";
|
|
3
|
+
export declare enum AccountWalletCategory {
|
|
4
|
+
Entropy = "entropy",
|
|
5
|
+
Keyring = "keyring",
|
|
6
|
+
Snap = "snap"
|
|
7
|
+
}
|
|
8
|
+
export type AccountWalletId = `${AccountWalletCategory}:${string}`;
|
|
9
|
+
export type AccountWallet<Account extends KeyringAccount> = {
|
|
10
|
+
get id(): AccountWalletId;
|
|
11
|
+
/**
|
|
12
|
+
* Gets account group for a given ID.
|
|
13
|
+
*
|
|
14
|
+
* @returns Account group.
|
|
15
|
+
*/
|
|
16
|
+
getAccountGroup(id: AccountGroupId): AccountGroup<Account> | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Gets all account groups.
|
|
19
|
+
*
|
|
20
|
+
* @returns Account groups.
|
|
21
|
+
*/
|
|
22
|
+
getAccountGroups(): AccountGroup<Account>[];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Convert a unique ID to a wallet ID for a given category.
|
|
26
|
+
*
|
|
27
|
+
* @param category - A wallet category.
|
|
28
|
+
* @param id - A unique ID.
|
|
29
|
+
* @returns A wallet ID.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toAccountWalletId(category: AccountWalletCategory, id: string): AccountWalletId;
|
|
32
|
+
//# sourceMappingURL=wallet.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAgB;AAE5D,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,eAAe,GAAG,GAAG,qBAAqB,IAAI,MAAM,EAAE,CAAC;AAEnE,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,cAAc,IAAI;IAC1D,IAAI,EAAE,IAAI,eAAe,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAEvE;;;;OAIG;IACH,gBAAgB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,EAAE,EAAE,MAAM,GACT,eAAe,CAEjB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export var AccountWalletCategory;
|
|
2
|
+
(function (AccountWalletCategory) {
|
|
3
|
+
AccountWalletCategory["Entropy"] = "entropy";
|
|
4
|
+
AccountWalletCategory["Keyring"] = "keyring";
|
|
5
|
+
AccountWalletCategory["Snap"] = "snap";
|
|
6
|
+
})(AccountWalletCategory || (AccountWalletCategory = {}));
|
|
7
|
+
/**
|
|
8
|
+
* Convert a unique ID to a wallet ID for a given category.
|
|
9
|
+
*
|
|
10
|
+
* @param category - A wallet category.
|
|
11
|
+
* @param id - A unique ID.
|
|
12
|
+
* @returns A wallet ID.
|
|
13
|
+
*/
|
|
14
|
+
export function toAccountWalletId(category, id) {
|
|
15
|
+
return `${category}:${id}`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=wallet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.mjs","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,4CAAmB,CAAA;IACnB,sCAAa,CAAA;AACf,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAsBD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAA+B,EAC/B,EAAU;IAEV,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\nimport type { AccountGroup, AccountGroupId } from './group';\n\nexport enum AccountWalletCategory {\n Entropy = 'entropy',\n Keyring = 'keyring',\n Snap = 'snap',\n}\n\nexport type AccountWalletId = `${AccountWalletCategory}:${string}`;\n\nexport type AccountWallet<Account extends KeyringAccount> = {\n get id(): AccountWalletId;\n\n /**\n * Gets account group for a given ID.\n *\n * @returns Account group.\n */\n getAccountGroup(id: AccountGroupId): AccountGroup<Account> | undefined;\n\n /**\n * Gets all account groups.\n *\n * @returns Account groups.\n */\n getAccountGroups(): AccountGroup<Account>[];\n};\n\n/**\n * Convert a unique ID to a wallet ID for a given category.\n *\n * @param category - A wallet category.\n * @param id - A unique ID.\n * @returns A wallet ID.\n */\nexport function toAccountWalletId(\n category: AccountWalletCategory,\n id: string,\n): AccountWalletId {\n return `${category}:${id}`;\n}\n"]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./api/index.cjs"), exports);
|
|
18
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAsB","sourcesContent":["export * from './api';\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAsB"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAsB"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAsB","sourcesContent":["export * from './api';\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metamask-previews/account-api",
|
|
3
|
+
"version": "0.0.0-586437b",
|
|
4
|
+
"description": "MetaMask Multichain Account API",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"metamask",
|
|
7
|
+
"account",
|
|
8
|
+
"multichain"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/MetaMask/accounts/tree/main/packages/multichain-account#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/MetaMask/accounts/issues"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/MetaMask/accounts.git"
|
|
17
|
+
},
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"import": {
|
|
21
|
+
"types": "./dist/index.d.mts",
|
|
22
|
+
"default": "./dist/index.mjs"
|
|
23
|
+
},
|
|
24
|
+
"require": {
|
|
25
|
+
"types": "./dist/index.d.cts",
|
|
26
|
+
"default": "./dist/index.cjs"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"main": "./dist/index.cjs",
|
|
31
|
+
"types": "./dist/index.d.cts",
|
|
32
|
+
"files": [
|
|
33
|
+
"dist/"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "ts-bridge --project tsconfig.build.json --no-references",
|
|
37
|
+
"build:clean": "yarn build --clean",
|
|
38
|
+
"build:docs": "typedoc",
|
|
39
|
+
"changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account",
|
|
40
|
+
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account",
|
|
41
|
+
"publish:preview": "yarn npm publish --tag preview",
|
|
42
|
+
"test": "yarn test:source && yarn test:types",
|
|
43
|
+
"test:clean": "jest --clearCache",
|
|
44
|
+
"test:source": "jest && jest-it-up",
|
|
45
|
+
"test:types": "../../scripts/tsd-test.sh ./src",
|
|
46
|
+
"test:watch": "jest --watch"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@metamask/keyring-api": "18.0.0",
|
|
50
|
+
"@metamask/keyring-utils": "3.0.0",
|
|
51
|
+
"@metamask/utils": "^11.1.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@lavamoat/allow-scripts": "^3.2.1",
|
|
55
|
+
"@lavamoat/preinstall-always-fail": "^2.1.0",
|
|
56
|
+
"@metamask/auto-changelog": "^3.4.4",
|
|
57
|
+
"@metamask/keyring-internal-api": "6.2.0",
|
|
58
|
+
"@ts-bridge/cli": "^0.6.3",
|
|
59
|
+
"@types/jest": "^29.5.12",
|
|
60
|
+
"@types/node": "^20.12.12",
|
|
61
|
+
"@types/uuid": "^9.0.8",
|
|
62
|
+
"deepmerge": "^4.2.2",
|
|
63
|
+
"depcheck": "^1.4.7",
|
|
64
|
+
"jest": "^29.5.0",
|
|
65
|
+
"jest-it-up": "^3.1.0",
|
|
66
|
+
"rimraf": "^5.0.7",
|
|
67
|
+
"ts-jest": "^29.0.5",
|
|
68
|
+
"ts-node": "^10.9.2",
|
|
69
|
+
"tsd": "^0.31.0",
|
|
70
|
+
"typedoc": "^0.25.13",
|
|
71
|
+
"typescript": "~5.6.3",
|
|
72
|
+
"uuid": "^9.0.1"
|
|
73
|
+
},
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": "^18.18 || >=20"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public",
|
|
79
|
+
"registry": "https://registry.npmjs.org/"
|
|
80
|
+
},
|
|
81
|
+
"lavamoat": {
|
|
82
|
+
"allowScripts": {
|
|
83
|
+
"@lavamoat/preinstall-always-fail": false
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"tsd": {
|
|
87
|
+
"directory": "src",
|
|
88
|
+
"compilerOptions": {
|
|
89
|
+
"composite": "false"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|