@metamask-previews/account-api 1.0.3-7275dbc → 1.0.4-85a9ca9

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 CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Changed
11
+
12
+ - Bump `@metamask/keyring-utils` from `^3.2.0` to `^3.3.1` ([#544](https://github.com/MetaMask/accounts/pull/544), [#546](https://github.com/MetaMask/accounts/pull/546))
13
+
14
+ ## [1.0.4]
15
+
16
+ ### Changed
17
+
18
+ - Bump `@metamask/keyring-api` from `^23.0.1` to `^23.1.0` ([#538](https://github.com/MetaMask/accounts/pull/538))
19
+
10
20
  ## [1.0.3]
11
21
 
12
22
  ### Changed
@@ -157,7 +167,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
157
167
 
158
168
  - Add `AccountGroup` and `AccountWallet` ([#307](https://github.com/MetaMask/accounts/pull/307))
159
169
 
160
- [Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.3...HEAD
170
+ [Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.4...HEAD
171
+ [1.0.4]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.3...@metamask/account-api@1.0.4
161
172
  [1.0.3]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.2...@metamask/account-api@1.0.3
162
173
  [1.0.2]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.1...@metamask/account-api@1.0.2
163
174
  [1.0.1]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.0...@metamask/account-api@1.0.1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isBip44Account = isBip44Account;
4
- exports.assertIsBip44Account = assertIsBip44Account;
3
+ exports.assertIsBip44Account = exports.isBip44Account = void 0;
5
4
  /**
6
5
  * Checks if an account is BIP-44 compatible.
7
6
  *
@@ -13,6 +12,7 @@ function isBip44Account(account) {
13
12
  // the `entropy` shape will be inferred automatically).
14
13
  return account.options.entropy?.type === 'mnemonic';
15
14
  }
15
+ exports.isBip44Account = isBip44Account;
16
16
  /**
17
17
  * Asserts a keyring account is BIP-44 compatible.
18
18
  *
@@ -24,4 +24,5 @@ function assertIsBip44Account(account) {
24
24
  throw new Error('Account is not BIP-44 compatible');
25
25
  }
26
26
  }
27
+ exports.assertIsBip44Account = assertIsBip44Account;
27
28
  //# sourceMappingURL=bip44.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bip44.cjs","sourceRoot":"","sources":["../../src/api/bip44.ts"],"names":[],"mappings":";;AAsBA,wCAMC;AAQD,oDAMC;AA1BD;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAAgB;IAEhB,mEAAmE;IACnE,uDAAuD;IACvD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,OAAgB;IAEhB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC","sourcesContent":["import type {\n KeyringAccount,\n KeyringAccountEntropyMnemonicOptions,\n} from '@metamask/keyring-api';\n\n/**\n * BIP-44 compatible account type.\n */\nexport type Bip44Account<Account extends KeyringAccount> = Account & {\n // We force the option type for those accounts. (That's how we identify\n // if an account is BIP-44 compatible).\n options: {\n entropy: KeyringAccountEntropyMnemonicOptions;\n };\n};\n\n/**\n * Checks if an account is BIP-44 compatible.\n *\n * @param account - The account to be tested.\n * @returns True if the account is BIP-44 compatible.\n */\nexport function isBip44Account<Account extends KeyringAccount>(\n account: Account,\n): account is Bip44Account<Account> {\n // To be BIP-44 compatible, we just check for the entropy type (the\n // the `entropy` shape will be inferred automatically).\n return account.options.entropy?.type === 'mnemonic';\n}\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<Account extends KeyringAccount>(\n account: Account,\n): asserts account is Bip44Account<Account> {\n if (!isBip44Account(account)) {\n throw new Error('Account is not BIP-44 compatible');\n }\n}\n"]}
1
+ {"version":3,"file":"bip44.cjs","sourceRoot":"","sources":["../../src/api/bip44.ts"],"names":[],"mappings":";;;AAgBA;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAAgB;IAEhB,mEAAmE;IACnE,uDAAuD;IACvD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC;AACtD,CAAC;AAND,wCAMC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,OAAgB;IAEhB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAND,oDAMC","sourcesContent":["import type {\n KeyringAccount,\n KeyringAccountEntropyMnemonicOptions,\n} from '@metamask/keyring-api';\n\n/**\n * BIP-44 compatible account type.\n */\nexport type Bip44Account<Account extends KeyringAccount> = Account & {\n // We force the option type for those accounts. (That's how we identify\n // if an account is BIP-44 compatible).\n options: {\n entropy: KeyringAccountEntropyMnemonicOptions;\n };\n};\n\n/**\n * Checks if an account is BIP-44 compatible.\n *\n * @param account - The account to be tested.\n * @returns True if the account is BIP-44 compatible.\n */\nexport function isBip44Account<Account extends KeyringAccount>(\n account: Account,\n): account is Bip44Account<Account> {\n // To be BIP-44 compatible, we just check for the entropy type (the\n // the `entropy` shape will be inferred automatically).\n return account.options.entropy?.type === 'mnemonic';\n}\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<Account extends KeyringAccount>(\n account: Account,\n): asserts account is Bip44Account<Account> {\n if (!isBip44Account(account)) {\n throw new Error('Account is not BIP-44 compatible');\n }\n}\n"]}
@@ -1,11 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ACCOUNT_GROUP_ID_REGEX = exports.AccountGroupType = exports.DEFAULT_ACCOUNT_GROUP_UNIQUE_ID = void 0;
4
- exports.toAccountGroupId = toAccountGroupId;
5
- exports.toDefaultAccountGroupId = toDefaultAccountGroupId;
6
- exports.isAccountGroupId = isAccountGroupId;
7
- exports.parseAccountGroupId = parseAccountGroupId;
8
- exports.stripAccountWalletId = stripAccountWalletId;
3
+ exports.stripAccountWalletId = exports.parseAccountGroupId = exports.isAccountGroupId = exports.toDefaultAccountGroupId = exports.toAccountGroupId = exports.ACCOUNT_GROUP_ID_REGEX = exports.AccountGroupType = exports.DEFAULT_ACCOUNT_GROUP_UNIQUE_ID = void 0;
9
4
  /**
10
5
  * Default account group unique ID.
11
6
  *
@@ -39,6 +34,7 @@ exports.ACCOUNT_GROUP_ID_REGEX = /^(?<walletId>(?<walletType>entropy|snap|keyrin
39
34
  function toAccountGroupId(walletId, id) {
40
35
  return `${walletId}/${id}`;
41
36
  }
37
+ exports.toAccountGroupId = toAccountGroupId;
42
38
  /**
43
39
  * Convert a wallet ID to the default group ID.
44
40
  *
@@ -48,6 +44,7 @@ function toAccountGroupId(walletId, id) {
48
44
  function toDefaultAccountGroupId(walletId) {
49
45
  return toAccountGroupId(walletId, exports.DEFAULT_ACCOUNT_GROUP_UNIQUE_ID);
50
46
  }
47
+ exports.toDefaultAccountGroupId = toDefaultAccountGroupId;
51
48
  /**
52
49
  * Checks if the given value is {@link AccountGroupId}.
53
50
  *
@@ -57,6 +54,7 @@ function toDefaultAccountGroupId(walletId) {
57
54
  function isAccountGroupId(value) {
58
55
  return exports.ACCOUNT_GROUP_ID_REGEX.test(value);
59
56
  }
57
+ exports.isAccountGroupId = isAccountGroupId;
60
58
  /**
61
59
  * Parse a multichain account group ID to an object containing a wallet ID
62
60
  * information (wallet type and wallet sub-ID), as well as account group ID
@@ -83,6 +81,7 @@ function parseAccountGroupId(groupId) {
83
81
  subId: match.groups.groupSubId,
84
82
  };
85
83
  }
84
+ exports.parseAccountGroupId = parseAccountGroupId;
86
85
  /**
87
86
  * Strip the account wallet ID from an account group ID.
88
87
  *
@@ -93,4 +92,5 @@ function parseAccountGroupId(groupId) {
93
92
  function stripAccountWalletId(groupId) {
94
93
  return parseAccountGroupId(groupId).subId;
95
94
  }
95
+ exports.stripAccountWalletId = stripAccountWalletId;
96
96
  //# sourceMappingURL=group.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"group.cjs","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":";;;AAyHA,4CAKC;AAQD,0DAOC;AAQD,4CAEC;AAWD,kDAkBC;AASD,oDAEC;AApLD;;;;;GAKG;AACU,QAAA,+BAA+B,GAAW,SAAS,CAAC;AAEjE;;;;GAIG;AACH,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,kDAAkD;IAClD,4DAAwC,CAAA;IAExC,8CAA8C;IAC9C,oDAAgC,CAAA;AAClC,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAOD;;GAEG;AACU,QAAA,sBAAsB,GACjC,8FAA8F,CAAC;AAyEjG;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,QAAuC,EACvC,EAAU;IAEV,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,QAAuC;IAEvC,OAAO,gBAAgB,CACrB,QAAQ,EACR,uCAA+B,CAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,8BAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,8BAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAA2B,CAAC;IAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAA+B,CAAC;IAChE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAqB,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;SACnB;QACD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,UAAoB;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,OAAe;IAClD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AAC5C,CAAC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\n// Circular import are allowed when using `import type`.\nimport type { AccountSelector } from './selector';\nimport type {\n AccountWallet,\n AccountWalletId,\n AccountWalletIdOf,\n AccountWalletType,\n} from './wallet';\n\n/**\n * Default account group unique ID.\n *\n * This constant can be used to reference the \"default\" group from\n * an account wallet.\n */\nexport const DEFAULT_ACCOUNT_GROUP_UNIQUE_ID: string = 'default';\n\n/**\n * Account group object.\n *\n * Each group types groups accounts using different criterias.\n */\nexport enum AccountGroupType {\n /** Group that represents a multichain account. */\n MultichainAccount = 'multichain-account',\n\n /** Group that represents a single account. */\n SingleAccount = 'single-account',\n}\n\n/**\n * Account group ID.\n */\nexport type AccountGroupId = `${AccountWalletId}/${string}`;\n\n/**\n * Regex to validate a valid account group ID.\n */\nexport const ACCOUNT_GROUP_ID_REGEX =\n /^(?<walletId>(?<walletType>entropy|snap|keyring):(?<walletSubId>.+))\\/(?<groupSubId>[^/]+)$/u;\n\n/**\n * Parsed account group ID with its parsed wallet component and its sub-ID.\n */\nexport type ParsedAccountGroupId = {\n wallet: {\n id: AccountWalletId;\n type: AccountWalletType;\n subId: string;\n };\n subId: string;\n};\n\n/**\n * Account group that can hold multiple accounts.\n */\nexport type AccountGroup<Account extends KeyringAccount> = {\n /**\n * Account group ID.\n */\n get id(): AccountGroupId;\n\n /**\n * Account group type.\n */\n get type(): AccountGroupType;\n\n /**\n * Account wallet (parent).\n */\n get wallet(): AccountWallet<Account>;\n\n /**\n * Gets the accounts for this account group.\n *\n * @returns The accounts.\n */\n getAccounts(): Account[];\n\n /**\n * Gets the account for a given account ID.\n *\n * @param id - Account ID.\n * @returns The account or undefined if not found.\n */\n getAccount(id: Account['id']): Account | undefined;\n\n /**\n * Query an account matching the selector.\n *\n * @param selector - Query selector.\n * @returns The account matching the selector or undefined if not matching.\n * @throws If multiple accounts match the selector.\n */\n get(selector: AccountSelector<Account>): Account | undefined;\n\n /**\n * Query accounts matching the selector.\n *\n * @param selector - Query selector.\n * @returns The accounts matching the selector.\n */\n select(selector: AccountSelector<Account>): Account[];\n};\n\n/**\n * Type utility to compute a constrained {@link AccountGroupId} type given a\n * specifc {@link AccountWalletType}.\n */\nexport type AccountGroupIdOf<WalletType extends AccountWalletType> =\n `${AccountWalletIdOf<WalletType>}/${string}`;\n\n/**\n * Convert a wallet ID and a unique ID, to a group ID.\n *\n * @param walletId - A wallet ID.\n * @param id - A unique ID.\n * @returns A group ID.\n */\nexport function toAccountGroupId<WalletType extends AccountWalletType>(\n walletId: AccountWalletIdOf<WalletType>,\n id: string,\n): AccountGroupIdOf<WalletType> {\n return `${walletId}/${id}`;\n}\n\n/**\n * Convert a wallet ID to the default group ID.\n *\n * @param walletId - A wallet ID.\n * @returns The default group ID.\n */\nexport function toDefaultAccountGroupId<WalletType extends AccountWalletType>(\n walletId: AccountWalletIdOf<WalletType>,\n): AccountGroupIdOf<WalletType> {\n return toAccountGroupId<WalletType>(\n walletId,\n DEFAULT_ACCOUNT_GROUP_UNIQUE_ID,\n );\n}\n\n/**\n * Checks if the given value is {@link AccountGroupId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link AccountGroupId}.\n */\nexport function isAccountGroupId(value: string): value is AccountGroupId {\n return ACCOUNT_GROUP_ID_REGEX.test(value);\n}\n\n/**\n * Parse a multichain account group ID to an object containing a wallet ID\n * information (wallet type and wallet sub-ID), as well as account group ID\n * information (group sub-ID).\n *\n * @param groupId - The account group ID to validate and parse.\n * @returns The parsed account group ID.\n * @throws When the group ID format is invalid.\n */\nexport function parseAccountGroupId(groupId: string): ParsedAccountGroupId {\n const match = ACCOUNT_GROUP_ID_REGEX.exec(groupId);\n if (!match?.groups) {\n throw new Error(`Invalid account group ID: \"${groupId}\"`);\n }\n\n const walletId = match.groups.walletId as AccountWalletId;\n const walletType = match.groups.walletType as AccountWalletType;\n const walletSubId = match.groups.walletSubId as string;\n\n return {\n wallet: {\n id: walletId,\n type: walletType,\n subId: walletSubId,\n },\n subId: match.groups.groupSubId as string,\n };\n}\n\n/**\n * Strip the account wallet ID from an account group ID.\n *\n * @param groupId - Account group ID.\n * @returns Account group sub-ID.\n * @throws When the group ID format is invalid.\n */\nexport function stripAccountWalletId(groupId: string): string {\n return parseAccountGroupId(groupId).subId;\n}\n"]}
1
+ {"version":3,"file":"group.cjs","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":";;;AAWA;;;;;GAKG;AACU,QAAA,+BAA+B,GAAW,SAAS,CAAC;AAEjE;;;;GAIG;AACH,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,kDAAkD;IAClD,4DAAwC,CAAA;IAExC,8CAA8C;IAC9C,oDAAgC,CAAA;AAClC,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAOD;;GAEG;AACU,QAAA,sBAAsB,GACjC,8FAA8F,CAAC;AAyEjG;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,QAAuC,EACvC,EAAU;IAEV,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AALD,4CAKC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,QAAuC;IAEvC,OAAO,gBAAgB,CACrB,QAAQ,EACR,uCAA+B,CAChC,CAAC;AACJ,CAAC;AAPD,0DAOC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,8BAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAFD,4CAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,8BAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAA2B,CAAC;IAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAA+B,CAAC;IAChE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAqB,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;SACnB;QACD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,UAAoB;KACzC,CAAC;AACJ,CAAC;AAlBD,kDAkBC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,OAAe;IAClD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AAC5C,CAAC;AAFD,oDAEC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\n// Circular import are allowed when using `import type`.\nimport type { AccountSelector } from './selector';\nimport type {\n AccountWallet,\n AccountWalletId,\n AccountWalletIdOf,\n AccountWalletType,\n} from './wallet';\n\n/**\n * Default account group unique ID.\n *\n * This constant can be used to reference the \"default\" group from\n * an account wallet.\n */\nexport const DEFAULT_ACCOUNT_GROUP_UNIQUE_ID: string = 'default';\n\n/**\n * Account group object.\n *\n * Each group types groups accounts using different criterias.\n */\nexport enum AccountGroupType {\n /** Group that represents a multichain account. */\n MultichainAccount = 'multichain-account',\n\n /** Group that represents a single account. */\n SingleAccount = 'single-account',\n}\n\n/**\n * Account group ID.\n */\nexport type AccountGroupId = `${AccountWalletId}/${string}`;\n\n/**\n * Regex to validate a valid account group ID.\n */\nexport const ACCOUNT_GROUP_ID_REGEX =\n /^(?<walletId>(?<walletType>entropy|snap|keyring):(?<walletSubId>.+))\\/(?<groupSubId>[^/]+)$/u;\n\n/**\n * Parsed account group ID with its parsed wallet component and its sub-ID.\n */\nexport type ParsedAccountGroupId = {\n wallet: {\n id: AccountWalletId;\n type: AccountWalletType;\n subId: string;\n };\n subId: string;\n};\n\n/**\n * Account group that can hold multiple accounts.\n */\nexport type AccountGroup<Account extends KeyringAccount> = {\n /**\n * Account group ID.\n */\n get id(): AccountGroupId;\n\n /**\n * Account group type.\n */\n get type(): AccountGroupType;\n\n /**\n * Account wallet (parent).\n */\n get wallet(): AccountWallet<Account>;\n\n /**\n * Gets the accounts for this account group.\n *\n * @returns The accounts.\n */\n getAccounts(): Account[];\n\n /**\n * Gets the account for a given account ID.\n *\n * @param id - Account ID.\n * @returns The account or undefined if not found.\n */\n getAccount(id: Account['id']): Account | undefined;\n\n /**\n * Query an account matching the selector.\n *\n * @param selector - Query selector.\n * @returns The account matching the selector or undefined if not matching.\n * @throws If multiple accounts match the selector.\n */\n get(selector: AccountSelector<Account>): Account | undefined;\n\n /**\n * Query accounts matching the selector.\n *\n * @param selector - Query selector.\n * @returns The accounts matching the selector.\n */\n select(selector: AccountSelector<Account>): Account[];\n};\n\n/**\n * Type utility to compute a constrained {@link AccountGroupId} type given a\n * specifc {@link AccountWalletType}.\n */\nexport type AccountGroupIdOf<WalletType extends AccountWalletType> =\n `${AccountWalletIdOf<WalletType>}/${string}`;\n\n/**\n * Convert a wallet ID and a unique ID, to a group ID.\n *\n * @param walletId - A wallet ID.\n * @param id - A unique ID.\n * @returns A group ID.\n */\nexport function toAccountGroupId<WalletType extends AccountWalletType>(\n walletId: AccountWalletIdOf<WalletType>,\n id: string,\n): AccountGroupIdOf<WalletType> {\n return `${walletId}/${id}`;\n}\n\n/**\n * Convert a wallet ID to the default group ID.\n *\n * @param walletId - A wallet ID.\n * @returns The default group ID.\n */\nexport function toDefaultAccountGroupId<WalletType extends AccountWalletType>(\n walletId: AccountWalletIdOf<WalletType>,\n): AccountGroupIdOf<WalletType> {\n return toAccountGroupId<WalletType>(\n walletId,\n DEFAULT_ACCOUNT_GROUP_UNIQUE_ID,\n );\n}\n\n/**\n * Checks if the given value is {@link AccountGroupId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link AccountGroupId}.\n */\nexport function isAccountGroupId(value: string): value is AccountGroupId {\n return ACCOUNT_GROUP_ID_REGEX.test(value);\n}\n\n/**\n * Parse a multichain account group ID to an object containing a wallet ID\n * information (wallet type and wallet sub-ID), as well as account group ID\n * information (group sub-ID).\n *\n * @param groupId - The account group ID to validate and parse.\n * @returns The parsed account group ID.\n * @throws When the group ID format is invalid.\n */\nexport function parseAccountGroupId(groupId: string): ParsedAccountGroupId {\n const match = ACCOUNT_GROUP_ID_REGEX.exec(groupId);\n if (!match?.groups) {\n throw new Error(`Invalid account group ID: \"${groupId}\"`);\n }\n\n const walletId = match.groups.walletId as AccountWalletId;\n const walletType = match.groups.walletType as AccountWalletType;\n const walletSubId = match.groups.walletSubId as string;\n\n return {\n wallet: {\n id: walletId,\n type: walletType,\n subId: walletSubId,\n },\n subId: match.groups.groupSubId as string,\n };\n}\n\n/**\n * Strip the account wallet ID from an account group ID.\n *\n * @param groupId - Account group ID.\n * @returns Account group sub-ID.\n * @throws When the group ID format is invalid.\n */\nexport function stripAccountWalletId(groupId: string): string {\n return parseAccountGroupId(groupId).subId;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.areBothEmpty = areBothEmpty;
3
+ exports.areBothEmpty = void 0;
4
4
  /**
5
5
  * Checks that both arrays are empty, and thus, identical.
6
6
  *
@@ -11,4 +11,5 @@ exports.areBothEmpty = areBothEmpty;
11
11
  function areBothEmpty(a, b) {
12
12
  return a.length === 0 && b.length === 0;
13
13
  }
14
+ exports.areBothEmpty = areBothEmpty;
14
15
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sourceRoot":"","sources":["../../../src/api/internal/utils.ts"],"names":[],"mappings":";;AAOA,oCAEC;AATD;;;;;;GAMG;AACH,SAAgB,YAAY,CAAQ,CAAU,EAAE,CAAU;IACxD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["/**\n * Checks that both arrays are empty, and thus, identical.\n *\n * @param a - First array.\n * @param b - Second array.\n * @returns True if both arrays are empty, false otherwise.\n */\nexport function areBothEmpty<Value>(a: Value[], b: Value[]): boolean {\n return a.length === 0 && b.length === 0;\n}\n"]}
1
+ {"version":3,"file":"utils.cjs","sourceRoot":"","sources":["../../../src/api/internal/utils.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,SAAgB,YAAY,CAAQ,CAAU,EAAE,CAAU;IACxD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1C,CAAC;AAFD,oCAEC","sourcesContent":["/**\n * Checks that both arrays are empty, and thus, identical.\n *\n * @param a - First array.\n * @param b - Second array.\n * @returns True if both arrays are empty, false otherwise.\n */\nexport function areBothEmpty<Value>(a: Value[], b: Value[]): boolean {\n return a.length === 0 && b.length === 0;\n}\n"]}
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MULTICHAIN_ACCOUNT_GROUP_ID_REGEX = void 0;
4
- exports.toMultichainAccountGroupId = toMultichainAccountGroupId;
5
- exports.isMultichainAccountGroupId = isMultichainAccountGroupId;
6
- exports.parseMultichainAccountGroupId = parseMultichainAccountGroupId;
7
- exports.getGroupIndexFromMultichainAccountGroupId = getGroupIndexFromMultichainAccountGroupId;
3
+ exports.getGroupIndexFromMultichainAccountGroupId = exports.parseMultichainAccountGroupId = exports.isMultichainAccountGroupId = exports.toMultichainAccountGroupId = exports.MULTICHAIN_ACCOUNT_GROUP_ID_REGEX = void 0;
8
4
  /**
9
5
  * Regex to validate a valid multichain account group ID.
10
6
  */
@@ -19,6 +15,7 @@ exports.MULTICHAIN_ACCOUNT_GROUP_ID_REGEX = /^(?<walletId>(?<walletType>entropy)
19
15
  function toMultichainAccountGroupId(walletId, groupIndex) {
20
16
  return `${walletId}/${groupIndex}`;
21
17
  }
18
+ exports.toMultichainAccountGroupId = toMultichainAccountGroupId;
22
19
  /**
23
20
  * Checks if the given value is {@link MultichainAccountGroupId}.
24
21
  *
@@ -28,6 +25,7 @@ function toMultichainAccountGroupId(walletId, groupIndex) {
28
25
  function isMultichainAccountGroupId(value) {
29
26
  return exports.MULTICHAIN_ACCOUNT_GROUP_ID_REGEX.test(value);
30
27
  }
28
+ exports.isMultichainAccountGroupId = isMultichainAccountGroupId;
31
29
  /**
32
30
  * Parse a multichain account group ID to an object containing a multichain
33
31
  * wallet ID information (wallet type and wallet sub-ID), as well as
@@ -54,6 +52,7 @@ function parseMultichainAccountGroupId(groupId) {
54
52
  groupIndex: Number(match.groups.groupIndex),
55
53
  };
56
54
  }
55
+ exports.parseMultichainAccountGroupId = parseMultichainAccountGroupId;
57
56
  /**
58
57
  * Gets the multichain account index from an account group ID.
59
58
  *
@@ -64,4 +63,5 @@ function parseMultichainAccountGroupId(groupId) {
64
63
  function getGroupIndexFromMultichainAccountGroupId(id) {
65
64
  return parseMultichainAccountGroupId(id).groupIndex;
66
65
  }
66
+ exports.getGroupIndexFromMultichainAccountGroupId = getGroupIndexFromMultichainAccountGroupId;
67
67
  //# sourceMappingURL=group.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"group.cjs","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":";;;AAmEA,gEAKC;AAQD,gEAIC;AAWD,sEAoBC;AASD,8FAIC;AAjHD;;GAEG;AACU,QAAA,iCAAiC,GAC5C,kFAAkF,CAAC;AAyCrF;;;;;;GAMG;AACH,SAAgB,0BAA0B,CACxC,QAAmC,EACnC,UAAkB;IAElB,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CACxC,KAAa;IAEb,OAAO,yCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,6BAA6B,CAC3C,OAAe;IAEf,MAAM,KAAK,GAAG,yCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAqC,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAuC,CAAC;IACxE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAqB,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;SACnB;QACD,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,yCAAyC,CACvD,EAA4B;IAE5B,OAAO,6BAA6B,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;AACtD,CAAC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupType } from '../group';\nimport type { AccountWalletType } from '../wallet';\nimport type {\n MultichainAccountWallet,\n MultichainAccountWalletId,\n} from './wallet';\n\n/**\n * Multichain account ID.\n */\nexport type MultichainAccountGroupId = `${MultichainAccountWalletId}/${number}`; // Use number for the account group index.\n\n/**\n * Regex to validate a valid multichain account group ID.\n */\nexport const MULTICHAIN_ACCOUNT_GROUP_ID_REGEX =\n /^(?<walletId>(?<walletType>entropy):(?<walletSubId>.+))\\/(?<groupIndex>[0-9]+)$/u;\n\n/**\n * Parsed account group ID with its parsed wallet component and its sub-ID.\n */\nexport type ParsedMultichainAccountGroupId = {\n wallet: {\n id: MultichainAccountWalletId;\n type: AccountWalletType.Entropy;\n subId: string;\n };\n groupIndex: number;\n};\n\n/**\n * A multichain account that holds multiple accounts.\n */\nexport type MultichainAccountGroup<\n Account extends Bip44Account<KeyringAccount>,\n> = AccountGroup<Account> & {\n /**\n * Multichain account group ID.\n */\n get id(): MultichainAccountGroupId;\n\n /**\n * Multichain account type.\n */\n get type(): AccountGroupType.MultichainAccount;\n\n /**\n * Multichain account's wallet reference (parent).\n */\n get wallet(): MultichainAccountWallet<Account>;\n\n /**\n * Multichain account group index.\n */\n get groupIndex(): number;\n};\n\n/**\n * Gets the multichain account group ID from its multichain account wallet ID and its index.\n *\n * @param walletId - Multichain account wallet ID.\n * @param groupIndex - Index of that multichain account.\n * @returns The multichain account ID.\n */\nexport function toMultichainAccountGroupId(\n walletId: MultichainAccountWalletId,\n groupIndex: number,\n): MultichainAccountGroupId {\n return `${walletId}/${groupIndex}`;\n}\n\n/**\n * Checks if the given value is {@link MultichainAccountGroupId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link MultichainAccountGroupId}.\n */\nexport function isMultichainAccountGroupId(\n value: string,\n): value is MultichainAccountGroupId {\n return MULTICHAIN_ACCOUNT_GROUP_ID_REGEX.test(value);\n}\n\n/**\n * Parse a multichain account group ID to an object containing a multichain\n * wallet ID information (wallet type and wallet sub-ID), as well as\n * multichain account group ID information (group index).\n *\n * @param groupId - The multichain account group ID to validate and parse.\n * @returns The parsed multichain account group ID.\n * @throws When the group ID format is invalid.\n */\nexport function parseMultichainAccountGroupId(\n groupId: string,\n): ParsedMultichainAccountGroupId {\n const match = MULTICHAIN_ACCOUNT_GROUP_ID_REGEX.exec(groupId);\n if (!match?.groups) {\n throw new Error(`Invalid multichain account group ID: \"${groupId}\"`);\n }\n\n const walletId = match.groups.walletId as MultichainAccountWalletId;\n const walletType = match.groups.walletType as AccountWalletType.Entropy;\n const walletSubId = match.groups.walletSubId as string;\n\n return {\n wallet: {\n id: walletId,\n type: walletType,\n subId: walletSubId,\n },\n groupIndex: Number(match.groups.groupIndex),\n };\n}\n\n/**\n * Gets the multichain account index from an account group ID.\n *\n * @param id - Multichain account ID.\n * @returns The multichain account index if extractable, undefined otherwise.\n * @throws When the group ID format is invalid.\n */\nexport function getGroupIndexFromMultichainAccountGroupId(\n id: MultichainAccountGroupId,\n): number {\n return parseMultichainAccountGroupId(id).groupIndex;\n}\n"]}
1
+ {"version":3,"file":"group.cjs","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":";;;AAeA;;GAEG;AACU,QAAA,iCAAiC,GAC5C,kFAAkF,CAAC;AAyCrF;;;;;;GAMG;AACH,SAAgB,0BAA0B,CACxC,QAAmC,EACnC,UAAkB;IAElB,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;AACrC,CAAC;AALD,gEAKC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CACxC,KAAa;IAEb,OAAO,yCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAJD,gEAIC;AAED;;;;;;;;GAQG;AACH,SAAgB,6BAA6B,CAC3C,OAAe;IAEf,MAAM,KAAK,GAAG,yCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAqC,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAuC,CAAC;IACxE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAqB,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;SACnB;QACD,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;KAC5C,CAAC;AACJ,CAAC;AApBD,sEAoBC;AAED;;;;;;GAMG;AACH,SAAgB,yCAAyC,CACvD,EAA4B;IAE5B,OAAO,6BAA6B,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;AACtD,CAAC;AAJD,8FAIC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupType } from '../group';\nimport type { AccountWalletType } from '../wallet';\nimport type {\n MultichainAccountWallet,\n MultichainAccountWalletId,\n} from './wallet';\n\n/**\n * Multichain account ID.\n */\nexport type MultichainAccountGroupId = `${MultichainAccountWalletId}/${number}`; // Use number for the account group index.\n\n/**\n * Regex to validate a valid multichain account group ID.\n */\nexport const MULTICHAIN_ACCOUNT_GROUP_ID_REGEX =\n /^(?<walletId>(?<walletType>entropy):(?<walletSubId>.+))\\/(?<groupIndex>[0-9]+)$/u;\n\n/**\n * Parsed account group ID with its parsed wallet component and its sub-ID.\n */\nexport type ParsedMultichainAccountGroupId = {\n wallet: {\n id: MultichainAccountWalletId;\n type: AccountWalletType.Entropy;\n subId: string;\n };\n groupIndex: number;\n};\n\n/**\n * A multichain account that holds multiple accounts.\n */\nexport type MultichainAccountGroup<\n Account extends Bip44Account<KeyringAccount>,\n> = AccountGroup<Account> & {\n /**\n * Multichain account group ID.\n */\n get id(): MultichainAccountGroupId;\n\n /**\n * Multichain account type.\n */\n get type(): AccountGroupType.MultichainAccount;\n\n /**\n * Multichain account's wallet reference (parent).\n */\n get wallet(): MultichainAccountWallet<Account>;\n\n /**\n * Multichain account group index.\n */\n get groupIndex(): number;\n};\n\n/**\n * Gets the multichain account group ID from its multichain account wallet ID and its index.\n *\n * @param walletId - Multichain account wallet ID.\n * @param groupIndex - Index of that multichain account.\n * @returns The multichain account ID.\n */\nexport function toMultichainAccountGroupId(\n walletId: MultichainAccountWalletId,\n groupIndex: number,\n): MultichainAccountGroupId {\n return `${walletId}/${groupIndex}`;\n}\n\n/**\n * Checks if the given value is {@link MultichainAccountGroupId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link MultichainAccountGroupId}.\n */\nexport function isMultichainAccountGroupId(\n value: string,\n): value is MultichainAccountGroupId {\n return MULTICHAIN_ACCOUNT_GROUP_ID_REGEX.test(value);\n}\n\n/**\n * Parse a multichain account group ID to an object containing a multichain\n * wallet ID information (wallet type and wallet sub-ID), as well as\n * multichain account group ID information (group index).\n *\n * @param groupId - The multichain account group ID to validate and parse.\n * @returns The parsed multichain account group ID.\n * @throws When the group ID format is invalid.\n */\nexport function parseMultichainAccountGroupId(\n groupId: string,\n): ParsedMultichainAccountGroupId {\n const match = MULTICHAIN_ACCOUNT_GROUP_ID_REGEX.exec(groupId);\n if (!match?.groups) {\n throw new Error(`Invalid multichain account group ID: \"${groupId}\"`);\n }\n\n const walletId = match.groups.walletId as MultichainAccountWalletId;\n const walletType = match.groups.walletType as AccountWalletType.Entropy;\n const walletSubId = match.groups.walletSubId as string;\n\n return {\n wallet: {\n id: walletId,\n type: walletType,\n subId: walletSubId,\n },\n groupIndex: Number(match.groups.groupIndex),\n };\n}\n\n/**\n * Gets the multichain account index from an account group ID.\n *\n * @param id - Multichain account ID.\n * @returns The multichain account index if extractable, undefined otherwise.\n * @throws When the group ID format is invalid.\n */\nexport function getGroupIndexFromMultichainAccountGroupId(\n id: MultichainAccountGroupId,\n): number {\n return parseMultichainAccountGroupId(id).groupIndex;\n}\n"]}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MULTICHAIN_ACCOUNT_WALLET_ID_REGEX = void 0;
4
- exports.toMultichainAccountWalletId = toMultichainAccountWalletId;
5
- exports.isMultichainAccountWalletId = isMultichainAccountWalletId;
6
- exports.parseMultichainAccountWalletId = parseMultichainAccountWalletId;
3
+ exports.parseMultichainAccountWalletId = exports.isMultichainAccountWalletId = exports.toMultichainAccountWalletId = exports.MULTICHAIN_ACCOUNT_WALLET_ID_REGEX = void 0;
7
4
  const wallet_1 = require("../wallet.cjs");
8
5
  /**
9
6
  * Regex to validate a valid multichain account wallet ID.
@@ -18,6 +15,7 @@ exports.MULTICHAIN_ACCOUNT_WALLET_ID_REGEX = /^(?<walletId>(?<walletType>entropy
18
15
  function toMultichainAccountWalletId(entropySource) {
19
16
  return `${wallet_1.AccountWalletType.Entropy}:${entropySource}`;
20
17
  }
18
+ exports.toMultichainAccountWalletId = toMultichainAccountWalletId;
21
19
  /**
22
20
  * Checks if the given value is {@link MultichainAccountWalletId}.
23
21
  *
@@ -27,6 +25,7 @@ function toMultichainAccountWalletId(entropySource) {
27
25
  function isMultichainAccountWalletId(value) {
28
26
  return exports.MULTICHAIN_ACCOUNT_WALLET_ID_REGEX.test(value);
29
27
  }
28
+ exports.isMultichainAccountWalletId = isMultichainAccountWalletId;
30
29
  /**
31
30
  * Parse a multichain account wallet ID to an object containing wallet ID
32
31
  * information (wallet type and sub-ID).
@@ -45,4 +44,5 @@ function parseMultichainAccountWalletId(walletId) {
45
44
  subId: match.groups.walletSubId,
46
45
  };
47
46
  }
47
+ exports.parseMultichainAccountWalletId = parseMultichainAccountWalletId;
48
48
  //# sourceMappingURL=wallet.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.cjs","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":";;;AAmIA,kEAIC;AAQD,kEAIC;AAUD,wEAYC;AApKD,0CAA8C;AAS9C;;GAEG;AACU,QAAA,kCAAkC,GAC7C,2DAA2D,CAAC;AA2G9D;;;;;GAKG;AACH,SAAgB,2BAA2B,CACzC,aAA8B;IAE9B,OAAO,GAAG,0BAAiB,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CACzC,KAAa;IAEb,OAAO,0CAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAC5C,QAAgB;IAEhB,MAAM,KAAK,GAAG,0CAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAuC;QAC1D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAqB;KAC1C,CAAC;AACJ,CAAC","sourcesContent":["import type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\n\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupId } from '../group';\nimport type { AccountWalletStatus, BaseAccountWallet } from '../wallet';\nimport { AccountWalletType } from '../wallet';\nimport type { MultichainAccountGroup } from './group';\n\n/**\n * Multichain account wallet ID.\n */\nexport type MultichainAccountWalletId =\n `${AccountWalletType.Entropy}:${EntropySourceId}`;\n\n/**\n * Regex to validate a valid multichain account wallet ID.\n */\nexport const MULTICHAIN_ACCOUNT_WALLET_ID_REGEX =\n /^(?<walletId>(?<walletType>entropy):(?<walletSubId>.+))$/u;\n\n/**\n * Parsed multichain account wallet ID with its wallet type and sub-ID.\n */\nexport type ParsedMultichainAccountWalletId = {\n type: AccountWalletType.Entropy;\n subId: string;\n};\n\n/**\n * Wallet status.\n *\n * Those status are used to report in which \"state\" the wallet is currently\n * in. All of those operations cannot run concurrently, thus, the wallet\n * cannot have multiple status at once.\n */\nexport type MultichainAccountWalletStatus =\n | AccountWalletStatus\n /**\n * Discovery is in progress for this wallet. New account groups will be\n * automatically added based on the account provider discovery result.\n */\n | 'in-progress:discovery'\n /**\n * Alignment is in progress for this wallet. Account groups will be\n * automatically updated based on the active account providers.\n */\n | 'in-progress:alignment'\n /**\n * The wallet is creating new accounts. New account groups will be\n * added to the wallet automatically.\n */\n | 'in-progress:create-accounts';\n\n/**\n * A multichain account wallet that holds multiple multichain accounts (one multichain account per\n * group index).\n */\nexport type MultichainAccountWallet<\n Account extends Bip44Account<KeyringAccount>,\n> = BaseAccountWallet<Account> & {\n /**\n * Multichain account wallet ID.\n */\n get id(): MultichainAccountWalletId;\n\n /**\n * Multichain account wallet type, which is always {@link AccountWalletType.Entropy}.\n */\n get type(): AccountWalletType.Entropy;\n\n /**\n * Multichain account wallet entropy source.\n */\n get entropySource(): EntropySourceId;\n\n /**\n * Multichain account wallet status.\n */\n get status(): MultichainAccountWalletStatus;\n\n /**\n * Gets account group for a given ID.\n *\n * @param id - Account group ID.\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 * Gets multichain account for a given index.\n *\n * @param groupIndex - Multichain account index.\n * @returns The multichain account associated with the given index.\n */\n getMultichainAccountGroup(\n groupIndex: number,\n ): MultichainAccountGroup<Account> | undefined;\n\n /**\n * Gets all multichain accounts.\n *\n * @returns The multichain accounts.\n */\n getMultichainAccountGroups(): MultichainAccountGroup<Account>[];\n\n /**\n * Discover and create accounts.\n *\n * @returns The discovered accounts.\n */\n discoverAccounts(): Promise<Account[]>;\n\n /**\n * Align all accounts accross existing multichain account groups.\n */\n alignAccounts(): Promise<void>;\n};\n\n/**\n * Gets the multichain account wallet ID from its entropy source.\n *\n * @param entropySource - Entropy source ID of that wallet.\n * @returns The multichain account wallet ID.\n */\nexport function toMultichainAccountWalletId(\n entropySource: EntropySourceId,\n): MultichainAccountWalletId {\n return `${AccountWalletType.Entropy}:${entropySource}`;\n}\n\n/**\n * Checks if the given value is {@link MultichainAccountWalletId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link MultichainAccountWalletId}.\n */\nexport function isMultichainAccountWalletId(\n value: string,\n): value is MultichainAccountWalletId {\n return MULTICHAIN_ACCOUNT_WALLET_ID_REGEX.test(value);\n}\n\n/**\n * Parse a multichain account wallet ID to an object containing wallet ID\n * information (wallet type and sub-ID).\n *\n * @param walletId - The account wallet ID to validate and parse.\n * @returns The parsed account wallet ID.\n * @throws When the wallet ID format is invalid.\n */\nexport function parseMultichainAccountWalletId(\n walletId: string,\n): ParsedMultichainAccountWalletId {\n const match = MULTICHAIN_ACCOUNT_WALLET_ID_REGEX.exec(walletId);\n if (!match?.groups) {\n throw new Error(`Invalid multichain account wallet ID: \"${walletId}\"`);\n }\n\n return {\n type: match.groups.walletType as AccountWalletType.Entropy,\n subId: match.groups.walletSubId as string,\n };\n}\n"]}
1
+ {"version":3,"file":"wallet.cjs","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":";;;AAKA,0CAA8C;AAS9C;;GAEG;AACU,QAAA,kCAAkC,GAC7C,2DAA2D,CAAC;AA2G9D;;;;;GAKG;AACH,SAAgB,2BAA2B,CACzC,aAA8B;IAE9B,OAAO,GAAG,0BAAiB,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;AACzD,CAAC;AAJD,kEAIC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CACzC,KAAa;IAEb,OAAO,0CAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAJD,kEAIC;AAED;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAC5C,QAAgB;IAEhB,MAAM,KAAK,GAAG,0CAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAuC;QAC1D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAqB;KAC1C,CAAC;AACJ,CAAC;AAZD,wEAYC","sourcesContent":["import type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\n\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupId } from '../group';\nimport type { AccountWalletStatus, BaseAccountWallet } from '../wallet';\nimport { AccountWalletType } from '../wallet';\nimport type { MultichainAccountGroup } from './group';\n\n/**\n * Multichain account wallet ID.\n */\nexport type MultichainAccountWalletId =\n `${AccountWalletType.Entropy}:${EntropySourceId}`;\n\n/**\n * Regex to validate a valid multichain account wallet ID.\n */\nexport const MULTICHAIN_ACCOUNT_WALLET_ID_REGEX =\n /^(?<walletId>(?<walletType>entropy):(?<walletSubId>.+))$/u;\n\n/**\n * Parsed multichain account wallet ID with its wallet type and sub-ID.\n */\nexport type ParsedMultichainAccountWalletId = {\n type: AccountWalletType.Entropy;\n subId: string;\n};\n\n/**\n * Wallet status.\n *\n * Those status are used to report in which \"state\" the wallet is currently\n * in. All of those operations cannot run concurrently, thus, the wallet\n * cannot have multiple status at once.\n */\nexport type MultichainAccountWalletStatus =\n | AccountWalletStatus\n /**\n * Discovery is in progress for this wallet. New account groups will be\n * automatically added based on the account provider discovery result.\n */\n | 'in-progress:discovery'\n /**\n * Alignment is in progress for this wallet. Account groups will be\n * automatically updated based on the active account providers.\n */\n | 'in-progress:alignment'\n /**\n * The wallet is creating new accounts. New account groups will be\n * added to the wallet automatically.\n */\n | 'in-progress:create-accounts';\n\n/**\n * A multichain account wallet that holds multiple multichain accounts (one multichain account per\n * group index).\n */\nexport type MultichainAccountWallet<\n Account extends Bip44Account<KeyringAccount>,\n> = BaseAccountWallet<Account> & {\n /**\n * Multichain account wallet ID.\n */\n get id(): MultichainAccountWalletId;\n\n /**\n * Multichain account wallet type, which is always {@link AccountWalletType.Entropy}.\n */\n get type(): AccountWalletType.Entropy;\n\n /**\n * Multichain account wallet entropy source.\n */\n get entropySource(): EntropySourceId;\n\n /**\n * Multichain account wallet status.\n */\n get status(): MultichainAccountWalletStatus;\n\n /**\n * Gets account group for a given ID.\n *\n * @param id - Account group ID.\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 * Gets multichain account for a given index.\n *\n * @param groupIndex - Multichain account index.\n * @returns The multichain account associated with the given index.\n */\n getMultichainAccountGroup(\n groupIndex: number,\n ): MultichainAccountGroup<Account> | undefined;\n\n /**\n * Gets all multichain accounts.\n *\n * @returns The multichain accounts.\n */\n getMultichainAccountGroups(): MultichainAccountGroup<Account>[];\n\n /**\n * Discover and create accounts.\n *\n * @returns The discovered accounts.\n */\n discoverAccounts(): Promise<Account[]>;\n\n /**\n * Align all accounts accross existing multichain account groups.\n */\n alignAccounts(): Promise<void>;\n};\n\n/**\n * Gets the multichain account wallet ID from its entropy source.\n *\n * @param entropySource - Entropy source ID of that wallet.\n * @returns The multichain account wallet ID.\n */\nexport function toMultichainAccountWalletId(\n entropySource: EntropySourceId,\n): MultichainAccountWalletId {\n return `${AccountWalletType.Entropy}:${entropySource}`;\n}\n\n/**\n * Checks if the given value is {@link MultichainAccountWalletId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link MultichainAccountWalletId}.\n */\nexport function isMultichainAccountWalletId(\n value: string,\n): value is MultichainAccountWalletId {\n return MULTICHAIN_ACCOUNT_WALLET_ID_REGEX.test(value);\n}\n\n/**\n * Parse a multichain account wallet ID to an object containing wallet ID\n * information (wallet type and sub-ID).\n *\n * @param walletId - The account wallet ID to validate and parse.\n * @returns The parsed account wallet ID.\n * @throws When the wallet ID format is invalid.\n */\nexport function parseMultichainAccountWalletId(\n walletId: string,\n): ParsedMultichainAccountWalletId {\n const match = MULTICHAIN_ACCOUNT_WALLET_ID_REGEX.exec(walletId);\n if (!match?.groups) {\n throw new Error(`Invalid multichain account wallet ID: \"${walletId}\"`);\n }\n\n return {\n type: match.groups.walletType as AccountWalletType.Entropy,\n subId: match.groups.walletSubId as string,\n };\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectOne = selectOne;
4
- exports.select = select;
3
+ exports.select = exports.selectOne = void 0;
5
4
  const keyring_utils_1 = require("@metamask/keyring-utils");
6
5
  const internal_1 = require("./internal/index.cjs");
7
6
  /**
@@ -22,6 +21,7 @@ function selectOne(accounts, selector) {
22
21
  }
23
22
  return matched[0]; // This is safe, see checks above.
24
23
  }
24
+ exports.selectOne = selectOne;
25
25
  /**
26
26
  * Query accounts matching the selector.
27
27
  *
@@ -56,4 +56,5 @@ function select(accounts, selector) {
56
56
  return selected;
57
57
  });
58
58
  }
59
+ exports.select = select;
59
60
  //# sourceMappingURL=selector.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"selector.cjs","sourceRoot":"","sources":["../../src/api/selector.ts"],"names":[],"mappings":";;AA2CA,8BAiBC;AASD,wBAkCC;AAtGD,2DAA4D;AAE5D,mDAA0C;AAgC1C;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,QAAmB,EACnB,QAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,CAAC,MAAM,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,QAAmB,EACnB,QAAkC;IAElC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,QAAQ,KAAR,QAAQ,GAAK,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAC;QAC1C,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,KAAR,QAAQ,GAAK,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAC;QACpD,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,QAAQ,KAAR,QAAQ,GAAK,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,KAAR,QAAQ,GACN,IAAA,uBAAY,EAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAC/C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC;QACxE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,KAAR,QAAQ,GACN,IAAA,uBAAY,EAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBAC7C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC7B,OAAO;oBACL,mDAAmD;oBACnD,IAAA,iCAAiB,EAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CACzC,CAAC;gBACJ,CAAC,CAAC,EAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\nimport { isScopeEqualToAny } from '@metamask/keyring-utils';\n\nimport { areBothEmpty } from './internal';\n\n/**\n * Selector to query a specific account based on some criteria.\n */\nexport type AccountSelector<Account extends KeyringAccount> = {\n /**\n * Query by account ID.\n */\n id?: Account['id'];\n\n /**\n * Query by account address.\n */\n address?: Account['address'];\n\n /**\n * Query by account type.\n */\n type?: Account['type'];\n\n /**\n * Query by account methods.\n */\n methods?: Account['methods'];\n\n /**\n * Query by account scopes.\n */\n scopes?: Account['scopes'];\n};\n\n/**\n * Query an account matching the selector.\n *\n * @param accounts - List of accounts to select from.\n * @param selector - Query selector.\n * @returns The account matching the selector or undefined if not matching.\n * @throws If multiple accounts match the selector.\n */\nexport function selectOne<Account extends KeyringAccount>(\n accounts: Account[],\n selector: AccountSelector<Account>,\n): Account | undefined {\n const matched = select(accounts, selector);\n\n if (matched.length > 1) {\n throw new Error(\n `Too many account candidates, expected 1, got: ${matched.length}`,\n );\n }\n\n if (matched.length === 0) {\n return undefined;\n }\n\n return matched[0]; // This is safe, see checks above.\n}\n\n/**\n * Query accounts matching the selector.\n *\n * @param accounts - List of accounts to select from.\n * @param selector - Query selector.\n * @returns The accounts matching the selector.\n */\nexport function select<Account extends KeyringAccount>(\n accounts: Account[],\n selector: AccountSelector<Account>,\n): Account[] {\n return accounts.filter((account) => {\n let selected = true;\n\n if (selector.id) {\n selected &&= account.id === selector.id;\n }\n if (selector.address) {\n selected &&= account.address === selector.address;\n }\n if (selector.type) {\n selected &&= account.type === selector.type;\n }\n if (selector.methods !== undefined) {\n selected &&=\n areBothEmpty(selector.methods, account.methods) ||\n selector.methods.some((method) => account.methods.includes(method));\n }\n if (selector.scopes !== undefined) {\n selected &&=\n areBothEmpty(selector.scopes, account.scopes) ||\n selector.scopes.some((scope) => {\n return (\n // This will cover specific EVM EOA scopes as well.\n isScopeEqualToAny(scope, account.scopes)\n );\n });\n }\n\n return selected;\n });\n}\n"]}
1
+ {"version":3,"file":"selector.cjs","sourceRoot":"","sources":["../../src/api/selector.ts"],"names":[],"mappings":";;;AACA,2DAA4D;AAE5D,mDAA0C;AAgC1C;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,QAAmB,EACnB,QAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,CAAC,MAAM,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;AACvD,CAAC;AAjBD,8BAiBC;AAED;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,QAAmB,EACnB,QAAkC;IAElC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,QAAQ,KAAR,QAAQ,GAAK,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAC;QAC1C,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,KAAR,QAAQ,GAAK,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAC;QACpD,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,QAAQ,KAAR,QAAQ,GAAK,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,KAAR,QAAQ,GACN,IAAA,uBAAY,EAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAC/C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC;QACxE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,KAAR,QAAQ,GACN,IAAA,uBAAY,EAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBAC7C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC7B,OAAO;oBACL,mDAAmD;oBACnD,IAAA,iCAAiB,EAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CACzC,CAAC;gBACJ,CAAC,CAAC,EAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAlCD,wBAkCC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\nimport { isScopeEqualToAny } from '@metamask/keyring-utils';\n\nimport { areBothEmpty } from './internal';\n\n/**\n * Selector to query a specific account based on some criteria.\n */\nexport type AccountSelector<Account extends KeyringAccount> = {\n /**\n * Query by account ID.\n */\n id?: Account['id'];\n\n /**\n * Query by account address.\n */\n address?: Account['address'];\n\n /**\n * Query by account type.\n */\n type?: Account['type'];\n\n /**\n * Query by account methods.\n */\n methods?: Account['methods'];\n\n /**\n * Query by account scopes.\n */\n scopes?: Account['scopes'];\n};\n\n/**\n * Query an account matching the selector.\n *\n * @param accounts - List of accounts to select from.\n * @param selector - Query selector.\n * @returns The account matching the selector or undefined if not matching.\n * @throws If multiple accounts match the selector.\n */\nexport function selectOne<Account extends KeyringAccount>(\n accounts: Account[],\n selector: AccountSelector<Account>,\n): Account | undefined {\n const matched = select(accounts, selector);\n\n if (matched.length > 1) {\n throw new Error(\n `Too many account candidates, expected 1, got: ${matched.length}`,\n );\n }\n\n if (matched.length === 0) {\n return undefined;\n }\n\n return matched[0]; // This is safe, see checks above.\n}\n\n/**\n * Query accounts matching the selector.\n *\n * @param accounts - List of accounts to select from.\n * @param selector - Query selector.\n * @returns The accounts matching the selector.\n */\nexport function select<Account extends KeyringAccount>(\n accounts: Account[],\n selector: AccountSelector<Account>,\n): Account[] {\n return accounts.filter((account) => {\n let selected = true;\n\n if (selector.id) {\n selected &&= account.id === selector.id;\n }\n if (selector.address) {\n selected &&= account.address === selector.address;\n }\n if (selector.type) {\n selected &&= account.type === selector.type;\n }\n if (selector.methods !== undefined) {\n selected &&=\n areBothEmpty(selector.methods, account.methods) ||\n selector.methods.some((method) => account.methods.includes(method));\n }\n if (selector.scopes !== undefined) {\n selected &&=\n areBothEmpty(selector.scopes, account.scopes) ||\n selector.scopes.some((scope) => {\n return (\n // This will cover specific EVM EOA scopes as well.\n isScopeEqualToAny(scope, account.scopes)\n );\n });\n }\n\n return selected;\n });\n}\n"]}
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ACCOUNT_WALLET_ID_REGEX = exports.AccountWalletType = void 0;
4
- exports.toAccountWalletId = toAccountWalletId;
5
- exports.isAccountWalletId = isAccountWalletId;
6
- exports.parseAccountWalletId = parseAccountWalletId;
7
- exports.stripAccountWalletType = stripAccountWalletType;
3
+ exports.stripAccountWalletType = exports.parseAccountWalletId = exports.isAccountWalletId = exports.toAccountWalletId = exports.ACCOUNT_WALLET_ID_REGEX = exports.AccountWalletType = void 0;
8
4
  /**
9
5
  * Wallet type.
10
6
  *
@@ -33,6 +29,7 @@ exports.ACCOUNT_WALLET_ID_REGEX = /^(?<walletType>entropy|keyring|snap):(?<walle
33
29
  function toAccountWalletId(type, id) {
34
30
  return `${type}:${id}`;
35
31
  }
32
+ exports.toAccountWalletId = toAccountWalletId;
36
33
  /**
37
34
  * Checks if the given value is {@link AccountWalletId}.
38
35
  *
@@ -42,6 +39,7 @@ function toAccountWalletId(type, id) {
42
39
  function isAccountWalletId(value) {
43
40
  return exports.ACCOUNT_WALLET_ID_REGEX.test(value);
44
41
  }
42
+ exports.isAccountWalletId = isAccountWalletId;
45
43
  /**
46
44
  * Parse an account wallet ID to an object containing a wallet ID information
47
45
  * (wallet type and wallet sub-ID).
@@ -60,6 +58,7 @@ function parseAccountWalletId(walletId) {
60
58
  subId: match.groups.walletSubId,
61
59
  };
62
60
  }
61
+ exports.parseAccountWalletId = parseAccountWalletId;
63
62
  /**
64
63
  * Strip the account wallet type from an account wallet ID.
65
64
  *
@@ -70,4 +69,5 @@ function parseAccountWalletId(walletId) {
70
69
  function stripAccountWalletType(walletId) {
71
70
  return parseAccountWalletId(walletId).subId;
72
71
  }
72
+ exports.stripAccountWalletType = stripAccountWalletType;
73
73
  //# sourceMappingURL=wallet.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.cjs","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":";;;AAgKA,8CAKC;AAQD,8CAEC;AAUD,oDAUC;AASD,wDAEC;AAvMD;;;;GAIG;AACH,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,8DAA8D;IAC9D,wCAAmB,CAAA;IAEnB,8DAA8D;IAC9D,wCAAmB,CAAA;IAEnB,2EAA2E;IAC3E,kCAAa,CAAA;AACf,CAAC,EATW,iBAAiB,iCAAjB,iBAAiB,QAS5B;AAOD;;GAEG;AACU,QAAA,uBAAuB,GAClC,2DAA2D,CAAC;AAyH9D;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,IAAgB,EAChB,EAAU;IAEV,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,+BAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAG,+BAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAA+B;QAClD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAqB;KAC1C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\n// Circular import are allowed when using `import type`.\nimport type { Bip44Account } from './bip44';\nimport type { AccountGroup, AccountGroupId } from './group';\nimport type { MultichainAccountWallet } from './multichain';\n\n/**\n * Wallet type.\n *\n * Each wallet types groups accounts using different criterias.\n */\nexport enum AccountWalletType {\n /** Wallet grouping accounts based on their entropy source. */\n Entropy = 'entropy',\n\n /** Wallet grouping accounts based on their keyring's type. */\n Keyring = 'keyring',\n\n /** Wallet grouping accounts associated with an account management Snap. */\n Snap = 'snap',\n}\n\n/**\n * Account wallet ID.\n */\nexport type AccountWalletId = `${AccountWalletType}:${string}`;\n\n/**\n * Regex to validate an account wallet ID.\n */\nexport const ACCOUNT_WALLET_ID_REGEX =\n /^(?<walletType>entropy|keyring|snap):(?<walletSubId>.+)$/u;\n\n/**\n * Wallet status.\n *\n * Those status are used to report in which \"state\" the wallet is currently\n * in. All of those operations cannot run concurrently, thus, the wallet\n * cannot have multiple status at once.\n */\nexport type AccountWalletStatus =\n /**\n * The wallet is not initialized yet.\n */\n | 'uninitialized'\n /**\n * The wallet is ready to run any operation.\n */\n | 'ready';\n\n/**\n * Parsed account wallet ID with its wallet type and sub-ID.\n */\nexport type ParsedAccountWalletId = {\n type: AccountWalletType;\n subId: string;\n};\n\n/**\n * Keyring account wallet that can hold multiple account groups.\n */\nexport type BaseAccountWallet<Account extends KeyringAccount> = {\n /**\n * Account wallet ID.\n */\n get id(): AccountWalletId;\n\n /**\n * Account wallet type.\n */\n get type(): AccountWalletType;\n\n /**\n * Account wallet status.\n */\n get status(): string; // Has to be refined by the type extending this base type.\n\n /**\n * Gets account group for a given ID.\n *\n * @param id - Account group ID.\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 * Keyring account wallet that can hold multiple account groups.\n */\nexport type KeyringAccountWallet<Account extends KeyringAccount> =\n BaseAccountWallet<Account> & {\n /**\n * Keyring account wallet type, which is always {@link AccountWalletType.Keyring}.\n */\n get type(): AccountWalletType.Keyring;\n\n /**\n * Account wallet status.\n */\n get status(): AccountWalletStatus;\n };\n\n/**\n * Snap keyring account wallet that can hold multiple account groups.\n */\nexport type SnapAccountWallet<Account extends KeyringAccount> =\n BaseAccountWallet<Account> & {\n /**\n * Snap account wallet type, which is always {@link AccountWalletType.Snap}.\n */\n get type(): AccountWalletType.Snap;\n\n /**\n * Account wallet status.\n */\n get status(): AccountWalletStatus;\n };\n\n/**\n * Type constraint for a {@link AccountGroupObject}. If one of its union-members\n * does not match this contraint, {@link AccountGroupObject} will resolve\n * to `never`.\n */\ntype IsAccountWallet<\n Wallet extends BaseAccountWallet<Account>,\n Account extends KeyringAccount,\n> = Wallet;\n\n/**\n * Account wallet that can hold multiple account groups.\n */\nexport type AccountWallet<Account extends KeyringAccount> = IsAccountWallet<\n | KeyringAccountWallet<Account>\n | SnapAccountWallet<Account>\n | MultichainAccountWallet<Bip44Account<Account>>,\n Account\n>;\n\n/**\n * Type utility to compute a constrained {@link AccountWalletId} type given a\n * specifc {@link AccountWalletType}.\n */\nexport type AccountWalletIdOf<WalletType extends AccountWalletType> =\n `${WalletType}:${string}`;\n\n/**\n * Convert a unique ID to a wallet ID for a given type.\n *\n * @param type - A wallet type.\n * @param id - A unique ID.\n * @returns A wallet ID.\n */\nexport function toAccountWalletId<WalletType extends AccountWalletType>(\n type: WalletType,\n id: string,\n): AccountWalletIdOf<WalletType> {\n return `${type}:${id}`;\n}\n\n/**\n * Checks if the given value is {@link AccountWalletId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link AccountWalletId}.\n */\nexport function isAccountWalletId(value: string): value is AccountWalletId {\n return ACCOUNT_WALLET_ID_REGEX.test(value);\n}\n\n/**\n * Parse an account wallet ID to an object containing a wallet ID information\n * (wallet type and wallet sub-ID).\n *\n * @param walletId - The account wallet ID to validate and parse.\n * @returns The parsed account wallet ID.\n * @throws When the wallet ID format is invalid.\n */\nexport function parseAccountWalletId(walletId: string): ParsedAccountWalletId {\n const match = ACCOUNT_WALLET_ID_REGEX.exec(walletId);\n if (!match?.groups) {\n throw new Error(`Invalid account wallet ID: \"${walletId}\"`);\n }\n\n return {\n type: match.groups.walletType as AccountWalletType,\n subId: match.groups.walletSubId as string,\n };\n}\n\n/**\n * Strip the account wallet type from an account wallet ID.\n *\n * @param walletId - Account wallet ID.\n * @returns Account wallet sub-ID.\n * @throws When the wallet ID format is invalid.\n */\nexport function stripAccountWalletType(walletId: string): string {\n return parseAccountWalletId(walletId).subId;\n}\n"]}
1
+ {"version":3,"file":"wallet.cjs","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACH,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,8DAA8D;IAC9D,wCAAmB,CAAA;IAEnB,8DAA8D;IAC9D,wCAAmB,CAAA;IAEnB,2EAA2E;IAC3E,kCAAa,CAAA;AACf,CAAC,EATW,iBAAiB,iCAAjB,iBAAiB,QAS5B;AAOD;;GAEG;AACU,QAAA,uBAAuB,GAClC,2DAA2D,CAAC;AAyH9D;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,IAAgB,EAChB,EAAU;IAEV,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACzB,CAAC;AALD,8CAKC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,+BAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAFD,8CAEC;AAED;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAG,+BAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAA+B;QAClD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAqB;KAC1C,CAAC;AACJ,CAAC;AAVD,oDAUC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAFD,wDAEC","sourcesContent":["import type { KeyringAccount } from '@metamask/keyring-api';\n\n// Circular import are allowed when using `import type`.\nimport type { Bip44Account } from './bip44';\nimport type { AccountGroup, AccountGroupId } from './group';\nimport type { MultichainAccountWallet } from './multichain';\n\n/**\n * Wallet type.\n *\n * Each wallet types groups accounts using different criterias.\n */\nexport enum AccountWalletType {\n /** Wallet grouping accounts based on their entropy source. */\n Entropy = 'entropy',\n\n /** Wallet grouping accounts based on their keyring's type. */\n Keyring = 'keyring',\n\n /** Wallet grouping accounts associated with an account management Snap. */\n Snap = 'snap',\n}\n\n/**\n * Account wallet ID.\n */\nexport type AccountWalletId = `${AccountWalletType}:${string}`;\n\n/**\n * Regex to validate an account wallet ID.\n */\nexport const ACCOUNT_WALLET_ID_REGEX =\n /^(?<walletType>entropy|keyring|snap):(?<walletSubId>.+)$/u;\n\n/**\n * Wallet status.\n *\n * Those status are used to report in which \"state\" the wallet is currently\n * in. All of those operations cannot run concurrently, thus, the wallet\n * cannot have multiple status at once.\n */\nexport type AccountWalletStatus =\n /**\n * The wallet is not initialized yet.\n */\n | 'uninitialized'\n /**\n * The wallet is ready to run any operation.\n */\n | 'ready';\n\n/**\n * Parsed account wallet ID with its wallet type and sub-ID.\n */\nexport type ParsedAccountWalletId = {\n type: AccountWalletType;\n subId: string;\n};\n\n/**\n * Keyring account wallet that can hold multiple account groups.\n */\nexport type BaseAccountWallet<Account extends KeyringAccount> = {\n /**\n * Account wallet ID.\n */\n get id(): AccountWalletId;\n\n /**\n * Account wallet type.\n */\n get type(): AccountWalletType;\n\n /**\n * Account wallet status.\n */\n get status(): string; // Has to be refined by the type extending this base type.\n\n /**\n * Gets account group for a given ID.\n *\n * @param id - Account group ID.\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 * Keyring account wallet that can hold multiple account groups.\n */\nexport type KeyringAccountWallet<Account extends KeyringAccount> =\n BaseAccountWallet<Account> & {\n /**\n * Keyring account wallet type, which is always {@link AccountWalletType.Keyring}.\n */\n get type(): AccountWalletType.Keyring;\n\n /**\n * Account wallet status.\n */\n get status(): AccountWalletStatus;\n };\n\n/**\n * Snap keyring account wallet that can hold multiple account groups.\n */\nexport type SnapAccountWallet<Account extends KeyringAccount> =\n BaseAccountWallet<Account> & {\n /**\n * Snap account wallet type, which is always {@link AccountWalletType.Snap}.\n */\n get type(): AccountWalletType.Snap;\n\n /**\n * Account wallet status.\n */\n get status(): AccountWalletStatus;\n };\n\n/**\n * Type constraint for a {@link AccountGroupObject}. If one of its union-members\n * does not match this contraint, {@link AccountGroupObject} will resolve\n * to `never`.\n */\ntype IsAccountWallet<\n Wallet extends BaseAccountWallet<Account>,\n Account extends KeyringAccount,\n> = Wallet;\n\n/**\n * Account wallet that can hold multiple account groups.\n */\nexport type AccountWallet<Account extends KeyringAccount> = IsAccountWallet<\n | KeyringAccountWallet<Account>\n | SnapAccountWallet<Account>\n | MultichainAccountWallet<Bip44Account<Account>>,\n Account\n>;\n\n/**\n * Type utility to compute a constrained {@link AccountWalletId} type given a\n * specifc {@link AccountWalletType}.\n */\nexport type AccountWalletIdOf<WalletType extends AccountWalletType> =\n `${WalletType}:${string}`;\n\n/**\n * Convert a unique ID to a wallet ID for a given type.\n *\n * @param type - A wallet type.\n * @param id - A unique ID.\n * @returns A wallet ID.\n */\nexport function toAccountWalletId<WalletType extends AccountWalletType>(\n type: WalletType,\n id: string,\n): AccountWalletIdOf<WalletType> {\n return `${type}:${id}`;\n}\n\n/**\n * Checks if the given value is {@link AccountWalletId}.\n *\n * @param value - The value to check.\n * @returns Whether the value is a {@link AccountWalletId}.\n */\nexport function isAccountWalletId(value: string): value is AccountWalletId {\n return ACCOUNT_WALLET_ID_REGEX.test(value);\n}\n\n/**\n * Parse an account wallet ID to an object containing a wallet ID information\n * (wallet type and wallet sub-ID).\n *\n * @param walletId - The account wallet ID to validate and parse.\n * @returns The parsed account wallet ID.\n * @throws When the wallet ID format is invalid.\n */\nexport function parseAccountWalletId(walletId: string): ParsedAccountWalletId {\n const match = ACCOUNT_WALLET_ID_REGEX.exec(walletId);\n if (!match?.groups) {\n throw new Error(`Invalid account wallet ID: \"${walletId}\"`);\n }\n\n return {\n type: match.groups.walletType as AccountWalletType,\n subId: match.groups.walletSubId as string,\n };\n}\n\n/**\n * Strip the account wallet type from an account wallet ID.\n *\n * @param walletId - Account wallet ID.\n * @returns Account wallet sub-ID.\n * @throws When the wallet ID format is invalid.\n */\nexport function stripAccountWalletType(walletId: string): string {\n return parseAccountWalletId(walletId).subId;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.cts","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAgB7E,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAe;AAc3C,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAe3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,YAAY,CAAC,cAAc,CAelE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAehE,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;eATjB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAF4B,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,cAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;eApBjB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EASmC,CAAC;AAC7D,eAAO,MAAM,mBAAmB;;;;eArBjB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAUiC,CAAC;AAE3D,eAAO,MAAM,uBAAuB,EAAE,cAOrC,CAAC;AAEF,qBAAa,kBAAkB,CAAC,OAAO,SAAS,cAAc;;gBAGhD,OAAO,EAAE,OAAO;IAK5B,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,cAAc,EACxC,OAAO,EAAE,OAAO,GACf,kBAAkB,CAAC,OAAO,CAAC;IAI9B,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK7D,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC;IAKvC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK9D,iBAAiB,CACf,aAAa,EAAE,eAAe,GAC7B,kBAAkB,CAAC,OAAO,CAAC;IAO9B,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAO/D,GAAG,IAAI,OAAO;CAGf;AAED,eAAO,MAAM,4BAA4B,sBAAwB,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;;eApFvB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EA8EjB,CAAC;AACT,eAAO,MAAM,yBAAyB;;;;eA1FvB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAoFjB,CAAC;AACT,eAAO,MAAM,gCAAgC;;;;eAhG9B,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EA0FjB,CAAC;AACT,eAAO,MAAM,8BAA8B;;;;eAtG5B,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAgGjB,CAAC"}
1
+ {"version":3,"file":"accounts.d.cts","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAgB7E,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAe;AAc3C,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAe3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,YAAY,CAAC,cAAc,CAelE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAehE,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAAqB,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,cAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAA0B,CAAC;AAE3D,eAAO,MAAM,uBAAuB,EAAE,cAOrC,CAAC;AAEF,qBAAa,kBAAkB,CAAC,OAAO,SAAS,cAAc;;gBAGhD,OAAO,EAAE,OAAO;IAK5B,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,cAAc,EACxC,OAAO,EAAE,OAAO,GACf,kBAAkB,CAAC,OAAO,CAAC;IAI9B,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK7D,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC;IAKvC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK9D,iBAAiB,CACf,aAAa,EAAE,eAAe,GAC7B,kBAAkB,CAAC,OAAO,CAAC;IAO9B,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAO/D,GAAG,IAAI,OAAO;CAGf;AAED,eAAO,MAAM,4BAA4B,sBAAwB,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AACT,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AACT,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;EAKrC,CAAC;AACT,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;EAKnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.mts","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAgB7E,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAe;AAc3C,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAe3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,YAAY,CAAC,cAAc,CAelE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAehE,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;eATjB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAF4B,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,cAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;eApBjB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EASmC,CAAC;AAC7D,eAAO,MAAM,mBAAmB;;;;eArBjB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAUiC,CAAC;AAE3D,eAAO,MAAM,uBAAuB,EAAE,cAOrC,CAAC;AAEF,qBAAa,kBAAkB,CAAC,OAAO,SAAS,cAAc;;gBAGhD,OAAO,EAAE,OAAO;IAK5B,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,cAAc,EACxC,OAAO,EAAE,OAAO,GACf,kBAAkB,CAAC,OAAO,CAAC;IAI9B,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK7D,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC;IAKvC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK9D,iBAAiB,CACf,aAAa,EAAE,eAAe,GAC7B,kBAAkB,CAAC,OAAO,CAAC;IAO9B,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAO/D,GAAG,IAAI,OAAO;CAGf;AAED,eAAO,MAAM,4BAA4B,sBAAwB,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;;eApFvB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EA8EjB,CAAC;AACT,eAAO,MAAM,yBAAyB;;;;eA1FvB,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAoFjB,CAAC;AACT,eAAO,MAAM,gCAAgC;;;;eAhG9B,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EA0FjB,CAAC;AACT,eAAO,MAAM,8BAA8B;;;;eAtG5B,CAAA;;;;;;;;;;kBAWS,CAAC;;;;;EAgGjB,CAAC"}
1
+ {"version":3,"file":"accounts.d.mts","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAgB7E,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAe;AAc3C,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAc1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAe3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,YAAY,CAAC,cAAc,CAelE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAehE,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAAqB,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,cAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAA0B,CAAC;AAE3D,eAAO,MAAM,uBAAuB,EAAE,cAOrC,CAAC;AAEF,qBAAa,kBAAkB,CAAC,OAAO,SAAS,cAAc;;gBAGhD,OAAO,EAAE,OAAO;IAK5B,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,cAAc,EACxC,OAAO,EAAE,OAAO,GACf,kBAAkB,CAAC,OAAO,CAAC;IAI9B,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK7D,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC;IAKvC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAK9D,iBAAiB,CACf,aAAa,EAAE,eAAe,GAC7B,kBAAkB,CAAC,OAAO,CAAC;IAO9B,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAO/D,GAAG,IAAI,OAAO;CAGf;AAED,eAAO,MAAM,4BAA4B,sBAAwB,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AACT,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AACT,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;EAKrC,CAAC;AACT,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;EAKnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/account-api",
3
- "version": "1.0.3-7275dbc",
3
+ "version": "1.0.4-85a9ca9",
4
4
  "description": "MetaMask Account API",
5
5
  "keywords": [
6
6
  "account",
@@ -66,8 +66,8 @@
66
66
  "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
67
67
  },
68
68
  "dependencies": {
69
- "@metamask/keyring-api": "23.0.1",
70
- "@metamask/keyring-utils": "3.2.0",
69
+ "@metamask/keyring-api": "23.1.0",
70
+ "@metamask/keyring-utils": "3.3.1",
71
71
  "uuid": "^9.0.1"
72
72
  },
73
73
  "devDependencies": {
@@ -87,7 +87,7 @@
87
87
  "ts-node": "^10.9.2",
88
88
  "tsd": "^0.31.0",
89
89
  "typedoc": "^0.25.13",
90
- "typescript": "~5.6.3"
90
+ "typescript": "~5.3.3"
91
91
  },
92
92
  "tsd": {
93
93
  "compilerOptions": {