@metamask-previews/account-api 1.0.1-d23a1b9 → 1.0.3-7275dbc

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/LICENSE +21 -0
  3. package/dist/api/group.cjs.map +1 -1
  4. package/dist/api/group.d.cts +1 -1
  5. package/dist/api/group.d.cts.map +1 -1
  6. package/dist/api/group.d.mts +1 -1
  7. package/dist/api/group.d.mts.map +1 -1
  8. package/dist/api/group.mjs.map +1 -1
  9. package/dist/api/multichain/group.cjs.map +1 -1
  10. package/dist/api/multichain/group.d.cts +2 -2
  11. package/dist/api/multichain/group.d.cts.map +1 -1
  12. package/dist/api/multichain/group.d.mts +2 -2
  13. package/dist/api/multichain/group.d.mts.map +1 -1
  14. package/dist/api/multichain/group.mjs.map +1 -1
  15. package/dist/api/multichain/wallet.cjs.map +1 -1
  16. package/dist/api/multichain/wallet.d.cts +2 -2
  17. package/dist/api/multichain/wallet.d.cts.map +1 -1
  18. package/dist/api/multichain/wallet.d.mts +2 -2
  19. package/dist/api/multichain/wallet.d.mts.map +1 -1
  20. package/dist/api/multichain/wallet.mjs.map +1 -1
  21. package/dist/api/provider.cjs.map +1 -1
  22. package/dist/api/provider.d.cts +2 -1
  23. package/dist/api/provider.d.cts.map +1 -1
  24. package/dist/api/provider.d.mts +2 -1
  25. package/dist/api/provider.d.mts.map +1 -1
  26. package/dist/api/provider.mjs.map +1 -1
  27. package/dist/mocks/accounts.cjs +1 -1
  28. package/dist/mocks/accounts.cjs.map +1 -1
  29. package/dist/mocks/accounts.d.cts +8 -8
  30. package/dist/mocks/accounts.d.cts.map +1 -1
  31. package/dist/mocks/accounts.d.mts +8 -8
  32. package/dist/mocks/accounts.d.mts.map +1 -1
  33. package/dist/mocks/accounts.mjs +1 -1
  34. package/dist/mocks/accounts.mjs.map +1 -1
  35. package/dist/mocks/wallets.cjs +1 -1
  36. package/dist/mocks/wallets.cjs.map +1 -1
  37. package/dist/mocks/wallets.mjs +1 -1
  38. package/dist/mocks/wallets.mjs.map +1 -1
  39. package/package.json +30 -24
package/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.3]
11
+
12
+ ### Changed
13
+
14
+ - Bump `@metamask/keyring-api` from `^23.0.0` to `^23.0.1` ([#518](https://github.com/MetaMask/accounts/pull/518))
15
+
16
+ ## [1.0.2]
17
+
18
+ ### Changed
19
+
20
+ - Bump `@metamask/keyring-api` from `^22.0.0` to `^23.0.0` ([#515](https://github.com/MetaMask/accounts/pull/515))
21
+
10
22
  ## [1.0.1]
11
23
 
12
24
  ### Changed
@@ -145,7 +157,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
145
157
 
146
158
  - Add `AccountGroup` and `AccountWallet` ([#307](https://github.com/MetaMask/accounts/pull/307))
147
159
 
148
- [Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.1...HEAD
160
+ [Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.3...HEAD
161
+ [1.0.3]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.2...@metamask/account-api@1.0.3
162
+ [1.0.2]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.1...@metamask/account-api@1.0.2
149
163
  [1.0.1]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@1.0.0...@metamask/account-api@1.0.1
150
164
  [1.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@0.12.0...@metamask/account-api@1.0.0
151
165
  [0.12.0]: https://github.com/MetaMask/accounts/compare/@metamask/account-api@0.11.0...@metamask/account-api@0.12.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MetaMask
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -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 {\n type AccountWallet,\n type AccountWalletId,\n type AccountWalletIdOf,\n type 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":";;;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,6 +1,6 @@
1
1
  import type { KeyringAccount } from "@metamask/keyring-api";
2
2
  import type { AccountSelector } from "./selector.cjs";
3
- import { type AccountWallet, type AccountWalletId, type AccountWalletIdOf, type AccountWalletType } from "./wallet.cjs";
3
+ import type { AccountWallet, AccountWalletId, AccountWalletIdOf, AccountWalletType } from "./wallet.cjs";
4
4
  /**
5
5
  * Default account group unique ID.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.cts","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAmB;AAClD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,qBAAiB;AAElB;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAkB,CAAC;AAEjE;;;;GAIG;AACH,oBAAY,gBAAgB;IAC1B,kDAAkD;IAClD,iBAAiB,uBAAuB;IAExC,8CAA8C;IAC9C,aAAa,mBAAmB;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,eAAe,IAAI,MAAM,EAAE,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAC6D,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,EAAE,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,IAAI;IACzD;;OAEG;IACH,IAAI,EAAE,IAAI,cAAc,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC;IAE7B;;OAEG;IACH,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAErC;;;;OAIG;IACH,WAAW,IAAI,OAAO,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAE7D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,IAC/D,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,EACnE,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,EAAE,EAAE,MAAM,GACT,gBAAgB,CAAC,UAAU,CAAC,CAE9B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,SAAS,iBAAiB,EAC1E,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACtC,gBAAgB,CAAC,UAAU,CAAC,CAK9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAkBzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"group.d.cts","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAmB;AAClD,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAClB,qBAAiB;AAElB;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAkB,CAAC;AAEjE;;;;GAIG;AACH,oBAAY,gBAAgB;IAC1B,kDAAkD;IAClD,iBAAiB,uBAAuB;IAExC,8CAA8C;IAC9C,aAAa,mBAAmB;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,eAAe,IAAI,MAAM,EAAE,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAC6D,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,EAAE,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,IAAI;IACzD;;OAEG;IACH,IAAI,EAAE,IAAI,cAAc,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC;IAE7B;;OAEG;IACH,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAErC;;;;OAIG;IACH,WAAW,IAAI,OAAO,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAE7D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,IAC/D,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,EACnE,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,EAAE,EAAE,MAAM,GACT,gBAAgB,CAAC,UAAU,CAAC,CAE9B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,SAAS,iBAAiB,EAC1E,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACtC,gBAAgB,CAAC,UAAU,CAAC,CAK9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAkBzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -1,6 +1,6 @@
1
1
  import type { KeyringAccount } from "@metamask/keyring-api";
2
2
  import type { AccountSelector } from "./selector.mjs";
3
- import { type AccountWallet, type AccountWalletId, type AccountWalletIdOf, type AccountWalletType } from "./wallet.mjs";
3
+ import type { AccountWallet, AccountWalletId, AccountWalletIdOf, AccountWalletType } from "./wallet.mjs";
4
4
  /**
5
5
  * Default account group unique ID.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.mts","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAmB;AAClD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,qBAAiB;AAElB;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAkB,CAAC;AAEjE;;;;GAIG;AACH,oBAAY,gBAAgB;IAC1B,kDAAkD;IAClD,iBAAiB,uBAAuB;IAExC,8CAA8C;IAC9C,aAAa,mBAAmB;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,eAAe,IAAI,MAAM,EAAE,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAC6D,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,EAAE,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,IAAI;IACzD;;OAEG;IACH,IAAI,EAAE,IAAI,cAAc,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC;IAE7B;;OAEG;IACH,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAErC;;;;OAIG;IACH,WAAW,IAAI,OAAO,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAE7D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,IAC/D,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,EACnE,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,EAAE,EAAE,MAAM,GACT,gBAAgB,CAAC,UAAU,CAAC,CAE9B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,SAAS,iBAAiB,EAC1E,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACtC,gBAAgB,CAAC,UAAU,CAAC,CAK9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAkBzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"group.d.mts","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAmB;AAClD,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAClB,qBAAiB;AAElB;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAkB,CAAC;AAEjE;;;;GAIG;AACH,oBAAY,gBAAgB;IAC1B,kDAAkD;IAClD,iBAAiB,uBAAuB;IAExC,8CAA8C;IAC9C,aAAa,mBAAmB;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,eAAe,IAAI,MAAM,EAAE,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAC6D,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,EAAE,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,IAAI;IACzD;;OAEG;IACH,IAAI,EAAE,IAAI,cAAc,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC;IAE7B;;OAEG;IACH,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAErC;;;;OAIG;IACH,WAAW,IAAI,OAAO,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAE7D;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,IAC/D,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,SAAS,iBAAiB,EACnE,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,EAAE,EAAE,MAAM,GACT,gBAAgB,CAAC,UAAU,CAAC,CAE9B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,SAAS,iBAAiB,EAC1E,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACtC,gBAAgB,CAAC,UAAU,CAAC,CAK9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAkBzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"group.mjs","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAW,SAAS,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,kDAAkD;IAClD,4DAAwC,CAAA;IAExC,8CAA8C;IAC9C,oDAAgC,CAAA;AAClC,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAOD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,8FAA8F,CAAC;AAyEjG;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuC,EACvC,EAAU;IAEV,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAuC;IAEvC,OAAO,gBAAgB,CACrB,QAAQ,EACR,+BAA+B,CAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,sBAAsB,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,MAAM,UAAU,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 {\n type AccountWallet,\n type AccountWalletId,\n type AccountWalletIdOf,\n type 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.mjs","sourceRoot":"","sources":["../../src/api/group.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAW,SAAS,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,kDAAkD;IAClD,4DAAwC,CAAA;IAExC,8CAA8C;IAC9C,oDAAgC,CAAA;AAClC,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAOD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,8FAA8F,CAAC;AAyEjG;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuC,EACvC,EAAU;IAEV,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAuC;IAEvC,OAAO,gBAAgB,CACrB,QAAQ,EACR,+BAA+B,CAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,sBAAsB,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,MAAM,UAAU,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 +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 {\n MultichainAccountWallet,\n MultichainAccountWalletId,\n} from './wallet';\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupType } from '../group';\nimport type { AccountWalletType } 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":";;;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,8 +1,8 @@
1
- import { type KeyringAccount } from "@metamask/keyring-api";
2
- import type { MultichainAccountWallet, MultichainAccountWalletId } from "./wallet.cjs";
1
+ import type { KeyringAccount } from "@metamask/keyring-api";
3
2
  import type { Bip44Account } from "../bip44.cjs";
4
3
  import type { AccountGroup, AccountGroupType } from "../group.cjs";
5
4
  import type { AccountWalletType } from "../wallet.cjs";
5
+ import type { MultichainAccountWallet, MultichainAccountWalletId } from "./wallet.cjs";
6
6
  /**
7
7
  * Multichain account ID.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.cts","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,8BAA8B;AAE5D,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,qBAAiB;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAiB;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAkB;AAEnD;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,GAAG,yBAAyB,IAAI,MAAM,EAAE,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,iCAAiC,QACsC,CAAC;AAErF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE;QACN,EAAE,EAAE,yBAAyB,CAAC;QAC9B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAChC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,YAAY,CAAC,OAAO,CAAC,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAEnC;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC,iBAAiB,CAAC;IAE/C;;OAEG;IACH,IAAI,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,wBAAwB,CAEnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,GACd,8BAA8B,CAkBhC;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,EAAE,EAAE,wBAAwB,GAC3B,MAAM,CAER"}
1
+ {"version":3,"file":"group.d.cts","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAiB;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAkB;AACnD,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,qBAAiB;AAElB;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,GAAG,yBAAyB,IAAI,MAAM,EAAE,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,iCAAiC,QACsC,CAAC;AAErF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE;QACN,EAAE,EAAE,yBAAyB,CAAC;QAC9B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAChC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,YAAY,CAAC,OAAO,CAAC,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAEnC;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC,iBAAiB,CAAC;IAE/C;;OAEG;IACH,IAAI,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,wBAAwB,CAEnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,GACd,8BAA8B,CAkBhC;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,EAAE,EAAE,wBAAwB,GAC3B,MAAM,CAER"}
@@ -1,8 +1,8 @@
1
- import { type KeyringAccount } from "@metamask/keyring-api";
2
- import type { MultichainAccountWallet, MultichainAccountWalletId } from "./wallet.mjs";
1
+ import type { KeyringAccount } from "@metamask/keyring-api";
3
2
  import type { Bip44Account } from "../bip44.mjs";
4
3
  import type { AccountGroup, AccountGroupType } from "../group.mjs";
5
4
  import type { AccountWalletType } from "../wallet.mjs";
5
+ import type { MultichainAccountWallet, MultichainAccountWalletId } from "./wallet.mjs";
6
6
  /**
7
7
  * Multichain account ID.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.mts","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,8BAA8B;AAE5D,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,qBAAiB;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAiB;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAkB;AAEnD;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,GAAG,yBAAyB,IAAI,MAAM,EAAE,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,iCAAiC,QACsC,CAAC;AAErF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE;QACN,EAAE,EAAE,yBAAyB,CAAC;QAC9B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAChC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,YAAY,CAAC,OAAO,CAAC,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAEnC;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC,iBAAiB,CAAC;IAE/C;;OAEG;IACH,IAAI,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,wBAAwB,CAEnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,GACd,8BAA8B,CAkBhC;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,EAAE,EAAE,wBAAwB,GAC3B,MAAM,CAER"}
1
+ {"version":3,"file":"group.d.mts","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,8BAA8B;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAiB;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAkB;AACnD,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,qBAAiB;AAElB;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,GAAG,yBAAyB,IAAI,MAAM,EAAE,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,iCAAiC,QACsC,CAAC;AAErF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE;QACN,EAAE,EAAE,yBAAyB,CAAC;QAC9B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAChC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,YAAY,CAAC,OAAO,CAAC,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAEnC;;OAEG;IACH,IAAI,IAAI,IAAI,gBAAgB,CAAC,iBAAiB,CAAC;IAE/C;;OAEG;IACH,IAAI,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,wBAAwB,CAEnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,GACd,8BAA8B,CAkBhC;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,EAAE,EAAE,wBAAwB,GAC3B,MAAM,CAER"}
@@ -1 +1 @@
1
- {"version":3,"file":"group.mjs","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,kFAAkF,CAAC;AAyCrF;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAmC,EACnC,UAAkB;IAElB,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAa;IAEb,OAAO,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAe;IAEf,MAAM,KAAK,GAAG,iCAAiC,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,MAAM,UAAU,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 {\n MultichainAccountWallet,\n MultichainAccountWalletId,\n} from './wallet';\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupType } from '../group';\nimport type { AccountWalletType } 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.mjs","sourceRoot":"","sources":["../../../src/api/multichain/group.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,kFAAkF,CAAC;AAyCrF;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAmC,EACnC,UAAkB;IAElB,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAa;IAEb,OAAO,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAe;IAEf,MAAM,KAAK,GAAG,iCAAiC,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,MAAM,UAAU,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 +1 @@
1
- {"version":3,"file":"wallet.cjs","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":";;;AAsIA,kEAIC;AAQD,kEAIC;AAUD,wEAYC;AAnKD,0CAA8C;AAQ9C;;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 {\n type EntropySourceId,\n type KeyringAccount,\n} from '@metamask/keyring-api';\n\nimport type { MultichainAccountGroup } from './group';\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupId } from '../group';\nimport type { AccountWalletStatus, BaseAccountWallet } from '../wallet';\nimport { AccountWalletType } from '../wallet';\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":";;;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,9 +1,9 @@
1
- import { type EntropySourceId, type KeyringAccount } from "@metamask/keyring-api";
2
- import type { MultichainAccountGroup } from "./group.cjs";
1
+ import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
3
2
  import type { Bip44Account } from "../bip44.cjs";
4
3
  import type { AccountGroup, AccountGroupId } from "../group.cjs";
5
4
  import type { AccountWalletStatus, BaseAccountWallet } from "../wallet.cjs";
6
5
  import { AccountWalletType } from "../wallet.cjs";
6
+ import type { MultichainAccountGroup } from "./group.cjs";
7
7
  /**
8
8
  * Multichain account wallet ID.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,8BAA8B;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAgB;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAiB;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAkB;AACxE,OAAO,EAAE,iBAAiB,EAAE,sBAAkB;AAE9C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GACnC,GAAG,iBAAiB,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,kCAAkC,QACc,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GACrC,mBAAmB;AACrB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,6BAA6B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,iBAAiB,CAAC,OAAO,CAAC,GAAG;IAC/B;;OAEG;IACH,IAAI,EAAE,IAAI,yBAAyB,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC;IAEtC;;OAEG;IACH,IAAI,aAAa,IAAI,eAAe,CAAC;IAErC;;OAEG;IACH,IAAI,MAAM,IAAI,6BAA6B,CAAC;IAE5C;;;;;OAKG;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;IAE5C;;;;;OAKG;IACH,yBAAyB,CACvB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAE/C;;;;OAIG;IACH,0BAA0B,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhE;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvC;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,eAAe,GAC7B,yBAAyB,CAE3B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,yBAAyB,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,GACf,+BAA+B,CAUjC"}
1
+ {"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAiB;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAkB;AACxE,OAAO,EAAE,iBAAiB,EAAE,sBAAkB;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAgB;AAEtD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GACnC,GAAG,iBAAiB,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,kCAAkC,QACc,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GACrC,mBAAmB;AACrB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,6BAA6B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,iBAAiB,CAAC,OAAO,CAAC,GAAG;IAC/B;;OAEG;IACH,IAAI,EAAE,IAAI,yBAAyB,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC;IAEtC;;OAEG;IACH,IAAI,aAAa,IAAI,eAAe,CAAC;IAErC;;OAEG;IACH,IAAI,MAAM,IAAI,6BAA6B,CAAC;IAE5C;;;;;OAKG;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;IAE5C;;;;;OAKG;IACH,yBAAyB,CACvB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAE/C;;;;OAIG;IACH,0BAA0B,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhE;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvC;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,eAAe,GAC7B,yBAAyB,CAE3B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,yBAAyB,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,GACf,+BAA+B,CAUjC"}
@@ -1,9 +1,9 @@
1
- import { type EntropySourceId, type KeyringAccount } from "@metamask/keyring-api";
2
- import type { MultichainAccountGroup } from "./group.mjs";
1
+ import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
3
2
  import type { Bip44Account } from "../bip44.mjs";
4
3
  import type { AccountGroup, AccountGroupId } from "../group.mjs";
5
4
  import type { AccountWalletStatus, BaseAccountWallet } from "../wallet.mjs";
6
5
  import { AccountWalletType } from "../wallet.mjs";
6
+ import type { MultichainAccountGroup } from "./group.mjs";
7
7
  /**
8
8
  * Multichain account wallet ID.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,8BAA8B;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAgB;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAiB;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAkB;AACxE,OAAO,EAAE,iBAAiB,EAAE,sBAAkB;AAE9C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GACnC,GAAG,iBAAiB,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,kCAAkC,QACc,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GACrC,mBAAmB;AACrB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,6BAA6B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,iBAAiB,CAAC,OAAO,CAAC,GAAG;IAC/B;;OAEG;IACH,IAAI,EAAE,IAAI,yBAAyB,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC;IAEtC;;OAEG;IACH,IAAI,aAAa,IAAI,eAAe,CAAC;IAErC;;OAEG;IACH,IAAI,MAAM,IAAI,6BAA6B,CAAC;IAE5C;;;;;OAKG;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;IAE5C;;;;;OAKG;IACH,yBAAyB,CACvB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAE/C;;;;OAIG;IACH,0BAA0B,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhE;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvC;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,eAAe,GAC7B,yBAAyB,CAE3B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,yBAAyB,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,GACf,+BAA+B,CAUjC"}
1
+ {"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAiB;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAiB;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAkB;AACxE,OAAO,EAAE,iBAAiB,EAAE,sBAAkB;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAgB;AAEtD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GACnC,GAAG,iBAAiB,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,kCAAkC,QACc,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GACrC,mBAAmB;AACrB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,6BAA6B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,YAAY,CAAC,cAAc,CAAC,IAC1C,iBAAiB,CAAC,OAAO,CAAC,GAAG;IAC/B;;OAEG;IACH,IAAI,EAAE,IAAI,yBAAyB,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC;IAEtC;;OAEG;IACH,IAAI,aAAa,IAAI,eAAe,CAAC;IAErC;;OAEG;IACH,IAAI,MAAM,IAAI,6BAA6B,CAAC;IAE5C;;;;;OAKG;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;IAE5C;;;;;OAKG;IACH,yBAAyB,CACvB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAE/C;;;;OAIG;IACH,0BAA0B,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhE;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvC;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,eAAe,GAC7B,yBAAyB,CAE3B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,yBAAyB,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,GACf,+BAA+B,CAUjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.mjs","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,sBAAkB;AAQ9C;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,2DAA2D,CAAC;AA2G9D;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAA8B;IAE9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAa;IAEb,OAAO,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAAgB;IAEhB,MAAM,KAAK,GAAG,kCAAkC,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 {\n type EntropySourceId,\n type KeyringAccount,\n} from '@metamask/keyring-api';\n\nimport type { MultichainAccountGroup } from './group';\nimport type { Bip44Account } from '../bip44';\nimport type { AccountGroup, AccountGroupId } from '../group';\nimport type { AccountWalletStatus, BaseAccountWallet } from '../wallet';\nimport { AccountWalletType } from '../wallet';\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.mjs","sourceRoot":"","sources":["../../../src/api/multichain/wallet.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,sBAAkB;AAS9C;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,2DAA2D,CAAC;AA2G9D;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAA8B;IAE9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAa;IAEb,OAAO,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAAgB;IAEhB,MAAM,KAAK,GAAG,kCAAkC,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 +1 @@
1
- {"version":3,"file":"provider.cjs","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"","sourcesContent":["import {\n type CreateAccountOptions,\n type EntropySourceId,\n type KeyringAccount,\n type KeyringCapabilities,\n} from '@metamask/keyring-api';\n\nimport type { Bip44Account } from './bip44';\n\n/**\n * An account provider is reponsible of providing accounts to an account group.\n */\nexport type AccountProvider<Account extends KeyringAccount> = {\n /**\n * Capabilities supported by this provider.\n */\n get capabilities(): KeyringCapabilities;\n\n /**\n * Gets an account for a given ID.\n *\n * @returns An account, or undefined if not found.\n */\n getAccount: (id: Account['id']) => Account | undefined;\n\n /**\n * Gets all accounts for this provider.\n *\n * @returns A list of all account for this provider.\n */\n getAccounts: () => Account[];\n\n /**\n * Creates accounts according to the given options.\n *\n * @param options - Create accounts options.\n * @returns The list of created accounts.\n */\n createAccounts: (options: CreateAccountOptions) => Promise<Account[]>;\n\n /**\n * Discover accounts for a given entropy source and a given group\n * index.\n *\n * NOTE: This method needs to also create the discovered accounts.\n *\n * @param options - Options.\n * @param options.entropySource - Entropy source to use.\n * @param options.groupIndex - Group index to use.\n * @returns The list of discovered and created accounts.\n */\n discoverAccounts: (options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }) => Promise<Account[]>;\n};\n\n/**\n * A BIP-44 provider is a provider that can provide BIP-44 compatible accounts.\n *\n * NOTE: This is an alias for the `AccountProvider` type, but with a more specific\n * type for the account.\n */\nexport type Bip44AccountProvider = AccountProvider<\n Bip44Account<KeyringAccount>\n>;\n"]}
1
+ {"version":3,"file":"provider.cjs","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"","sourcesContent":["import type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport type {\n CreateAccountOptions,\n KeyringCapabilities,\n} from '@metamask/keyring-api/v2';\n\nimport type { Bip44Account } from './bip44';\n\n/**\n * An account provider is reponsible of providing accounts to an account group.\n */\nexport type AccountProvider<Account extends KeyringAccount> = {\n /**\n * Capabilities supported by this provider.\n */\n get capabilities(): KeyringCapabilities;\n\n /**\n * Gets an account for a given ID.\n *\n * @returns An account, or undefined if not found.\n */\n getAccount: (id: Account['id']) => Account | undefined;\n\n /**\n * Gets all accounts for this provider.\n *\n * @returns A list of all account for this provider.\n */\n getAccounts: () => Account[];\n\n /**\n * Creates accounts according to the given options.\n *\n * @param options - Create accounts options.\n * @returns The list of created accounts.\n */\n createAccounts: (options: CreateAccountOptions) => Promise<Account[]>;\n\n /**\n * Discover accounts for a given entropy source and a given group\n * index.\n *\n * NOTE: This method needs to also create the discovered accounts.\n *\n * @param options - Options.\n * @param options.entropySource - Entropy source to use.\n * @param options.groupIndex - Group index to use.\n * @returns The list of discovered and created accounts.\n */\n discoverAccounts: (options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }) => Promise<Account[]>;\n};\n\n/**\n * A BIP-44 provider is a provider that can provide BIP-44 compatible accounts.\n *\n * NOTE: This is an alias for the `AccountProvider` type, but with a more specific\n * type for the account.\n */\nexport type Bip44AccountProvider = AccountProvider<\n Bip44Account<KeyringAccount>\n>;\n"]}
@@ -1,4 +1,5 @@
1
- import { type CreateAccountOptions, type EntropySourceId, type KeyringAccount, type KeyringCapabilities } from "@metamask/keyring-api";
1
+ import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
2
+ import type { CreateAccountOptions, KeyringCapabilities } from "@metamask/keyring-api/v2";
2
3
  import type { Bip44Account } from "./bip44.cjs";
3
4
  /**
4
5
  * An account provider is reponsible of providing accounts to an account group.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.cts","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,8BAA8B;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAgB;AAE5C;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,IAAI;IAC5D;;OAEG;IACH,IAAI,YAAY,IAAI,mBAAmB,CAAC;IAExC;;;;OAIG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,SAAS,CAAC;IAEvD;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAC1B,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAChD,YAAY,CAAC,cAAc,CAAC,CAC7B,CAAC"}
1
+ {"version":3,"file":"provider.d.cts","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACpB,iCAAiC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAgB;AAE5C;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,IAAI;IAC5D;;OAEG;IACH,IAAI,YAAY,IAAI,mBAAmB,CAAC;IAExC;;;;OAIG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,SAAS,CAAC;IAEvD;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAC1B,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAChD,YAAY,CAAC,cAAc,CAAC,CAC7B,CAAC"}
@@ -1,4 +1,5 @@
1
- import { type CreateAccountOptions, type EntropySourceId, type KeyringAccount, type KeyringCapabilities } from "@metamask/keyring-api";
1
+ import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
2
+ import type { CreateAccountOptions, KeyringCapabilities } from "@metamask/keyring-api/v2";
2
3
  import type { Bip44Account } from "./bip44.mjs";
3
4
  /**
4
5
  * An account provider is reponsible of providing accounts to an account group.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.mts","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,8BAA8B;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAgB;AAE5C;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,IAAI;IAC5D;;OAEG;IACH,IAAI,YAAY,IAAI,mBAAmB,CAAC;IAExC;;;;OAIG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,SAAS,CAAC;IAEvD;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAC1B,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAChD,YAAY,CAAC,cAAc,CAAC,CAC7B,CAAC"}
1
+ {"version":3,"file":"provider.d.mts","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACpB,iCAAiC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAgB;AAE5C;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,IAAI;IAC5D;;OAEG;IACH,IAAI,YAAY,IAAI,mBAAmB,CAAC;IAExC;;;;OAIG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,SAAS,CAAC;IAEvD;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAC1B,aAAa,EAAE,eAAe,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAChD,YAAY,CAAC,cAAc,CAAC,CAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.mjs","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"","sourcesContent":["import {\n type CreateAccountOptions,\n type EntropySourceId,\n type KeyringAccount,\n type KeyringCapabilities,\n} from '@metamask/keyring-api';\n\nimport type { Bip44Account } from './bip44';\n\n/**\n * An account provider is reponsible of providing accounts to an account group.\n */\nexport type AccountProvider<Account extends KeyringAccount> = {\n /**\n * Capabilities supported by this provider.\n */\n get capabilities(): KeyringCapabilities;\n\n /**\n * Gets an account for a given ID.\n *\n * @returns An account, or undefined if not found.\n */\n getAccount: (id: Account['id']) => Account | undefined;\n\n /**\n * Gets all accounts for this provider.\n *\n * @returns A list of all account for this provider.\n */\n getAccounts: () => Account[];\n\n /**\n * Creates accounts according to the given options.\n *\n * @param options - Create accounts options.\n * @returns The list of created accounts.\n */\n createAccounts: (options: CreateAccountOptions) => Promise<Account[]>;\n\n /**\n * Discover accounts for a given entropy source and a given group\n * index.\n *\n * NOTE: This method needs to also create the discovered accounts.\n *\n * @param options - Options.\n * @param options.entropySource - Entropy source to use.\n * @param options.groupIndex - Group index to use.\n * @returns The list of discovered and created accounts.\n */\n discoverAccounts: (options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }) => Promise<Account[]>;\n};\n\n/**\n * A BIP-44 provider is a provider that can provide BIP-44 compatible accounts.\n *\n * NOTE: This is an alias for the `AccountProvider` type, but with a more specific\n * type for the account.\n */\nexport type Bip44AccountProvider = AccountProvider<\n Bip44Account<KeyringAccount>\n>;\n"]}
1
+ {"version":3,"file":"provider.mjs","sourceRoot":"","sources":["../../src/api/provider.ts"],"names":[],"mappings":"","sourcesContent":["import type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport type {\n CreateAccountOptions,\n KeyringCapabilities,\n} from '@metamask/keyring-api/v2';\n\nimport type { Bip44Account } from './bip44';\n\n/**\n * An account provider is reponsible of providing accounts to an account group.\n */\nexport type AccountProvider<Account extends KeyringAccount> = {\n /**\n * Capabilities supported by this provider.\n */\n get capabilities(): KeyringCapabilities;\n\n /**\n * Gets an account for a given ID.\n *\n * @returns An account, or undefined if not found.\n */\n getAccount: (id: Account['id']) => Account | undefined;\n\n /**\n * Gets all accounts for this provider.\n *\n * @returns A list of all account for this provider.\n */\n getAccounts: () => Account[];\n\n /**\n * Creates accounts according to the given options.\n *\n * @param options - Create accounts options.\n * @returns The list of created accounts.\n */\n createAccounts: (options: CreateAccountOptions) => Promise<Account[]>;\n\n /**\n * Discover accounts for a given entropy source and a given group\n * index.\n *\n * NOTE: This method needs to also create the discovered accounts.\n *\n * @param options - Options.\n * @param options.entropySource - Entropy source to use.\n * @param options.groupIndex - Group index to use.\n * @returns The list of discovered and created accounts.\n */\n discoverAccounts: (options: {\n entropySource: EntropySourceId;\n groupIndex: number;\n }) => Promise<Account[]>;\n};\n\n/**\n * A BIP-44 provider is a provider that can provide BIP-44 compatible accounts.\n *\n * NOTE: This is an alias for the `AccountProvider` type, but with a more specific\n * type for the account.\n */\nexport type Bip44AccountProvider = AccountProvider<\n Bip44Account<KeyringAccount>\n>;\n"]}
@@ -16,8 +16,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.MOCK_WALLET_1_BTC_P2TR_ACCOUNT = exports.MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT = exports.MOCK_WALLET_1_SOL_ACCOUNT = exports.MOCK_WALLET_1_EVM_ACCOUNT = exports.MOCK_WALLET_1_ENTROPY_SOURCE = exports.MockAccountBuilder = exports.MOCK_HARDWARE_ACCOUNT_1 = exports.MOCK_SNAP_ACCOUNT_4 = exports.MOCK_SNAP_ACCOUNT_3 = exports.MOCK_SNAP_ACCOUNT_2 = exports.MOCK_SNAP_ACCOUNT_1 = exports.MOCK_BTC_P2TR_ACCOUNT_1 = exports.MOCK_BTC_P2WPKH_ACCOUNT_1 = exports.MOCK_SOL_ACCOUNT_1 = exports.MOCK_HD_ACCOUNT_2 = exports.MOCK_HD_ACCOUNT_1 = void 0;
17
17
  const keyring_api_1 = require("@metamask/keyring-api");
18
18
  const uuid_1 = require("uuid");
19
- const keyrings_1 = require("./keyrings.cjs");
20
19
  const api_1 = require("../api/index.cjs");
20
+ const keyrings_1 = require("./keyrings.cjs");
21
21
  const ETH_EOA_METHODS = [
22
22
  keyring_api_1.EthMethod.PersonalSign,
23
23
  keyring_api_1.EthMethod.Sign,
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.cjs","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["// istanbul ignore file\n\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport {\n BtcAccountType,\n BtcMethod,\n BtcScope,\n EthAccountType,\n EthMethod,\n EthScope,\n KeyringAccountEntropyTypeOption,\n SolAccountType,\n SolMethod,\n SolScope,\n} from '@metamask/keyring-api';\nimport { v4 as uuid } from 'uuid';\n\nimport { MOCK_ENTROPY_SOURCE_1, MOCK_ENTROPY_SOURCE_2 } from './keyrings';\nimport { isBip44Account, type Bip44Account } from '../api';\n\nconst ETH_EOA_METHODS = [\n EthMethod.PersonalSign,\n EthMethod.Sign,\n EthMethod.SignTransaction,\n EthMethod.SignTypedDataV1,\n EthMethod.SignTypedDataV3,\n EthMethod.SignTypedDataV4,\n] as const;\n\nconst SOL_METHODS = Object.values(SolMethod);\n\nexport const MOCK_HD_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-id-1',\n address: '0x123',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_1,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_HD_ACCOUNT_2: Bip44Account<KeyringAccount> = {\n id: 'mock-id-2',\n address: '0x456',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SOL_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-snap-id-1',\n address: 'aabbccdd',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: SOL_METHODS,\n type: SolAccountType.DataAccount,\n scopes: [SolScope.Mainnet, SolScope.Testnet, SolScope.Devnet],\n};\n\nexport const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'b0f030d8-e101-4b5a-a3dd-13f8ca8ec1db',\n type: BtcAccountType.P2wpkh,\n methods: Object.values(BtcMethod),\n address: 'bc1qx8ls07cy8j8nrluy2u0xwn7gh8fxg0rg4s8zze',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Mainnet],\n};\n\nexport const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'a20c2e1a-6ff6-40ba-b8e0-ccdb6f9933bb',\n type: BtcAccountType.P2tr,\n methods: Object.values(BtcMethod),\n address: 'tb1p5cyxnuxmeuwuvkwfem96lxx9wex9kkf4mt9ll6q60jfsnrzqg4sszkqjnh',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Testnet],\n};\n\nexport const MOCK_SNAP_ACCOUNT_1 = MOCK_SOL_ACCOUNT_1;\n\nexport const MOCK_SNAP_ACCOUNT_2: KeyringAccount = {\n id: 'mock-snap-id-2',\n address: '0x789',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SNAP_ACCOUNT_3 = MOCK_BTC_P2WPKH_ACCOUNT_1;\nexport const MOCK_SNAP_ACCOUNT_4 = MOCK_BTC_P2TR_ACCOUNT_1;\n\nexport const MOCK_HARDWARE_ACCOUNT_1: KeyringAccount = {\n id: 'mock-hardware-id-1',\n address: '0xABC',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport class MockAccountBuilder<Account extends KeyringAccount> {\n readonly #account: Account;\n\n constructor(account: Account) {\n // Make a deep-copy to avoid mutating the same ref.\n this.#account = JSON.parse(JSON.stringify(account));\n }\n\n static from<Account extends KeyringAccount>(\n account: Account,\n ): MockAccountBuilder<Account> {\n return new MockAccountBuilder(account);\n }\n\n withId(id: KeyringAccount['id']): MockAccountBuilder<Account> {\n this.#account.id = id;\n return this;\n }\n\n withUuid(): MockAccountBuilder<Account> {\n this.#account.id = uuid();\n return this;\n }\n\n withAddressSuffix(suffix: string): MockAccountBuilder<Account> {\n this.#account.address += suffix;\n return this;\n }\n\n withEntropySource(\n entropySource: EntropySourceId,\n ): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.id = entropySource;\n }\n return this;\n }\n\n withGroupIndex(groupIndex: number): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.groupIndex = groupIndex;\n }\n return this;\n }\n\n get(): Account {\n return this.#account;\n }\n}\n\nexport const MOCK_WALLET_1_ENTROPY_SOURCE = MOCK_ENTROPY_SOURCE_1;\n\nexport const MOCK_WALLET_1_EVM_ACCOUNT = MockAccountBuilder.from(\n MOCK_HD_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_SOL_ACCOUNT = MockAccountBuilder.from(\n MOCK_SOL_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2WPKH_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2TR_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2TR_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\n"]}
1
+ {"version":3,"file":"accounts.cjs","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["// istanbul ignore file\n\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport {\n BtcAccountType,\n BtcMethod,\n BtcScope,\n EthAccountType,\n EthMethod,\n EthScope,\n KeyringAccountEntropyTypeOption,\n SolAccountType,\n SolMethod,\n SolScope,\n} from '@metamask/keyring-api';\nimport { v4 as uuid } from 'uuid';\n\nimport { isBip44Account } from '../api';\nimport type { Bip44Account } from '../api';\nimport { MOCK_ENTROPY_SOURCE_1, MOCK_ENTROPY_SOURCE_2 } from './keyrings';\n\nconst ETH_EOA_METHODS = [\n EthMethod.PersonalSign,\n EthMethod.Sign,\n EthMethod.SignTransaction,\n EthMethod.SignTypedDataV1,\n EthMethod.SignTypedDataV3,\n EthMethod.SignTypedDataV4,\n] as const;\n\nconst SOL_METHODS = Object.values(SolMethod);\n\nexport const MOCK_HD_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-id-1',\n address: '0x123',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_1,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_HD_ACCOUNT_2: Bip44Account<KeyringAccount> = {\n id: 'mock-id-2',\n address: '0x456',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SOL_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-snap-id-1',\n address: 'aabbccdd',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: SOL_METHODS,\n type: SolAccountType.DataAccount,\n scopes: [SolScope.Mainnet, SolScope.Testnet, SolScope.Devnet],\n};\n\nexport const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'b0f030d8-e101-4b5a-a3dd-13f8ca8ec1db',\n type: BtcAccountType.P2wpkh,\n methods: Object.values(BtcMethod),\n address: 'bc1qx8ls07cy8j8nrluy2u0xwn7gh8fxg0rg4s8zze',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Mainnet],\n};\n\nexport const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'a20c2e1a-6ff6-40ba-b8e0-ccdb6f9933bb',\n type: BtcAccountType.P2tr,\n methods: Object.values(BtcMethod),\n address: 'tb1p5cyxnuxmeuwuvkwfem96lxx9wex9kkf4mt9ll6q60jfsnrzqg4sszkqjnh',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Testnet],\n};\n\nexport const MOCK_SNAP_ACCOUNT_1 = MOCK_SOL_ACCOUNT_1;\n\nexport const MOCK_SNAP_ACCOUNT_2: KeyringAccount = {\n id: 'mock-snap-id-2',\n address: '0x789',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SNAP_ACCOUNT_3 = MOCK_BTC_P2WPKH_ACCOUNT_1;\nexport const MOCK_SNAP_ACCOUNT_4 = MOCK_BTC_P2TR_ACCOUNT_1;\n\nexport const MOCK_HARDWARE_ACCOUNT_1: KeyringAccount = {\n id: 'mock-hardware-id-1',\n address: '0xABC',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport class MockAccountBuilder<Account extends KeyringAccount> {\n readonly #account: Account;\n\n constructor(account: Account) {\n // Make a deep-copy to avoid mutating the same ref.\n this.#account = JSON.parse(JSON.stringify(account));\n }\n\n static from<Account extends KeyringAccount>(\n account: Account,\n ): MockAccountBuilder<Account> {\n return new MockAccountBuilder(account);\n }\n\n withId(id: KeyringAccount['id']): MockAccountBuilder<Account> {\n this.#account.id = id;\n return this;\n }\n\n withUuid(): MockAccountBuilder<Account> {\n this.#account.id = uuid();\n return this;\n }\n\n withAddressSuffix(suffix: string): MockAccountBuilder<Account> {\n this.#account.address += suffix;\n return this;\n }\n\n withEntropySource(\n entropySource: EntropySourceId,\n ): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.id = entropySource;\n }\n return this;\n }\n\n withGroupIndex(groupIndex: number): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.groupIndex = groupIndex;\n }\n return this;\n }\n\n get(): Account {\n return this.#account;\n }\n}\n\nexport const MOCK_WALLET_1_ENTROPY_SOURCE = MOCK_ENTROPY_SOURCE_1;\n\nexport const MOCK_WALLET_1_EVM_ACCOUNT = MockAccountBuilder.from(\n MOCK_HD_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_SOL_ACCOUNT = MockAccountBuilder.from(\n MOCK_SOL_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2WPKH_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2TR_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2TR_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\n"]}
@@ -1,12 +1,12 @@
1
1
  import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
2
- import { type Bip44Account } from "../api/index.cjs";
2
+ import type { Bip44Account } from "../api/index.cjs";
3
3
  export declare const MOCK_HD_ACCOUNT_1: Bip44Account<KeyringAccount>;
4
4
  export declare const MOCK_HD_ACCOUNT_2: Bip44Account<KeyringAccount>;
5
5
  export declare const MOCK_SOL_ACCOUNT_1: Bip44Account<KeyringAccount>;
6
6
  export declare const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<KeyringAccount>;
7
7
  export declare const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<KeyringAccount>;
8
8
  export declare const MOCK_SNAP_ACCOUNT_1: Bip44Account<{
9
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
9
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
10
10
  id: string;
11
11
  options: Record<string, import("@metamask/utils").Json> & {
12
12
  entropy?: {
@@ -27,7 +27,7 @@ export declare const MOCK_SNAP_ACCOUNT_1: Bip44Account<{
27
27
  }>;
28
28
  export declare const MOCK_SNAP_ACCOUNT_2: KeyringAccount;
29
29
  export declare const MOCK_SNAP_ACCOUNT_3: Bip44Account<{
30
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
30
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
31
31
  id: string;
32
32
  options: Record<string, import("@metamask/utils").Json> & {
33
33
  entropy?: {
@@ -47,7 +47,7 @@ export declare const MOCK_SNAP_ACCOUNT_3: Bip44Account<{
47
47
  methods: string[];
48
48
  }>;
49
49
  export declare const MOCK_SNAP_ACCOUNT_4: Bip44Account<{
50
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
50
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
51
51
  id: string;
52
52
  options: Record<string, import("@metamask/utils").Json> & {
53
53
  entropy?: {
@@ -80,7 +80,7 @@ export declare class MockAccountBuilder<Account extends KeyringAccount> {
80
80
  }
81
81
  export declare const MOCK_WALLET_1_ENTROPY_SOURCE = "mock-keyring-id-1";
82
82
  export declare const MOCK_WALLET_1_EVM_ACCOUNT: Bip44Account<{
83
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
83
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
84
84
  id: string;
85
85
  options: Record<string, import("@metamask/utils").Json> & {
86
86
  entropy?: {
@@ -100,7 +100,7 @@ export declare const MOCK_WALLET_1_EVM_ACCOUNT: Bip44Account<{
100
100
  methods: string[];
101
101
  }>;
102
102
  export declare const MOCK_WALLET_1_SOL_ACCOUNT: Bip44Account<{
103
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
103
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
104
104
  id: string;
105
105
  options: Record<string, import("@metamask/utils").Json> & {
106
106
  entropy?: {
@@ -120,7 +120,7 @@ export declare const MOCK_WALLET_1_SOL_ACCOUNT: Bip44Account<{
120
120
  methods: string[];
121
121
  }>;
122
122
  export declare const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT: Bip44Account<{
123
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
123
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
124
124
  id: string;
125
125
  options: Record<string, import("@metamask/utils").Json> & {
126
126
  entropy?: {
@@ -140,7 +140,7 @@ export declare const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT: Bip44Account<{
140
140
  methods: string[];
141
141
  }>;
142
142
  export declare const MOCK_WALLET_1_BTC_P2TR_ACCOUNT: Bip44Account<{
143
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
143
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
144
144
  id: string;
145
145
  options: Record<string, import("@metamask/utils").Json> & {
146
146
  entropy?: {
@@ -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,EAAkB,KAAK,YAAY,EAAE,yBAAe;AAa3D,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;;;;eAxB1B,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAc8C,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,cAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;eAnC1B,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAyBqD,CAAC;AAC7D,eAAO,MAAM,mBAAmB;;;;eApC1B,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EA0BmD,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;;;;eAnGhC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EA8FC,CAAC;AACT,eAAO,MAAM,yBAAyB;;;;eAzGhC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAoGC,CAAC;AACT,eAAO,MAAM,gCAAgC;;;;eA/GvC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EA0GC,CAAC;AACT,eAAO,MAAM,8BAA8B;;;;eArHrC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAgHC,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;;;;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,12 +1,12 @@
1
1
  import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
2
- import { type Bip44Account } from "../api/index.mjs";
2
+ import type { Bip44Account } from "../api/index.mjs";
3
3
  export declare const MOCK_HD_ACCOUNT_1: Bip44Account<KeyringAccount>;
4
4
  export declare const MOCK_HD_ACCOUNT_2: Bip44Account<KeyringAccount>;
5
5
  export declare const MOCK_SOL_ACCOUNT_1: Bip44Account<KeyringAccount>;
6
6
  export declare const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<KeyringAccount>;
7
7
  export declare const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<KeyringAccount>;
8
8
  export declare const MOCK_SNAP_ACCOUNT_1: Bip44Account<{
9
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
9
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
10
10
  id: string;
11
11
  options: Record<string, import("@metamask/utils").Json> & {
12
12
  entropy?: {
@@ -27,7 +27,7 @@ export declare const MOCK_SNAP_ACCOUNT_1: Bip44Account<{
27
27
  }>;
28
28
  export declare const MOCK_SNAP_ACCOUNT_2: KeyringAccount;
29
29
  export declare const MOCK_SNAP_ACCOUNT_3: Bip44Account<{
30
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
30
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
31
31
  id: string;
32
32
  options: Record<string, import("@metamask/utils").Json> & {
33
33
  entropy?: {
@@ -47,7 +47,7 @@ export declare const MOCK_SNAP_ACCOUNT_3: Bip44Account<{
47
47
  methods: string[];
48
48
  }>;
49
49
  export declare const MOCK_SNAP_ACCOUNT_4: Bip44Account<{
50
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
50
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
51
51
  id: string;
52
52
  options: Record<string, import("@metamask/utils").Json> & {
53
53
  entropy?: {
@@ -80,7 +80,7 @@ export declare class MockAccountBuilder<Account extends KeyringAccount> {
80
80
  }
81
81
  export declare const MOCK_WALLET_1_ENTROPY_SOURCE = "mock-keyring-id-1";
82
82
  export declare const MOCK_WALLET_1_EVM_ACCOUNT: Bip44Account<{
83
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
83
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
84
84
  id: string;
85
85
  options: Record<string, import("@metamask/utils").Json> & {
86
86
  entropy?: {
@@ -100,7 +100,7 @@ export declare const MOCK_WALLET_1_EVM_ACCOUNT: Bip44Account<{
100
100
  methods: string[];
101
101
  }>;
102
102
  export declare const MOCK_WALLET_1_SOL_ACCOUNT: Bip44Account<{
103
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
103
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
104
104
  id: string;
105
105
  options: Record<string, import("@metamask/utils").Json> & {
106
106
  entropy?: {
@@ -120,7 +120,7 @@ export declare const MOCK_WALLET_1_SOL_ACCOUNT: Bip44Account<{
120
120
  methods: string[];
121
121
  }>;
122
122
  export declare const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT: Bip44Account<{
123
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
123
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
124
124
  id: string;
125
125
  options: Record<string, import("@metamask/utils").Json> & {
126
126
  entropy?: {
@@ -140,7 +140,7 @@ export declare const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT: Bip44Account<{
140
140
  methods: string[];
141
141
  }>;
142
142
  export declare const MOCK_WALLET_1_BTC_P2TR_ACCOUNT: Bip44Account<{
143
- type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "any:account";
143
+ type: "eip155:eoa" | "eip155:erc4337" | "bip122:p2pkh" | "bip122:p2sh" | "bip122:p2wpkh" | "bip122:p2tr" | "solana:data-account" | "tron:eoa" | "stellar:account" | "any:account";
144
144
  id: string;
145
145
  options: Record<string, import("@metamask/utils").Json> & {
146
146
  entropy?: {
@@ -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,EAAkB,KAAK,YAAY,EAAE,yBAAe;AAa3D,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;;;;eAxB1B,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAc8C,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,cAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;eAnC1B,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAyBqD,CAAC;AAC7D,eAAO,MAAM,mBAAmB;;;;eApC1B,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EA0BmD,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;;;;eAnGhC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EA8FC,CAAC;AACT,eAAO,MAAM,yBAAyB;;;;eAzGhC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAoGC,CAAC;AACT,eAAO,MAAM,gCAAgC;;;;eA/GvC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EA0GC,CAAC;AACT,eAAO,MAAM,8BAA8B;;;;eArHrC,CAAL;;;;;;;;;;kBAUK,CAAC;;;;;EAgHC,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;;;;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"}
@@ -13,8 +13,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  var _MockAccountBuilder_account;
14
14
  import { BtcAccountType, BtcMethod, BtcScope, EthAccountType, EthMethod, EthScope, KeyringAccountEntropyTypeOption, SolAccountType, SolMethod, SolScope } from "@metamask/keyring-api";
15
15
  import { v4 as uuid } from "uuid";
16
- import { MOCK_ENTROPY_SOURCE_1, MOCK_ENTROPY_SOURCE_2 } from "./keyrings.mjs";
17
16
  import { isBip44Account } from "../api/index.mjs";
17
+ import { MOCK_ENTROPY_SOURCE_1, MOCK_ENTROPY_SOURCE_2 } from "./keyrings.mjs";
18
18
  const ETH_EOA_METHODS = [
19
19
  EthMethod.PersonalSign,
20
20
  EthMethod.Sign,
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.mjs","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["// istanbul ignore file\n\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport {\n BtcAccountType,\n BtcMethod,\n BtcScope,\n EthAccountType,\n EthMethod,\n EthScope,\n KeyringAccountEntropyTypeOption,\n SolAccountType,\n SolMethod,\n SolScope,\n} from '@metamask/keyring-api';\nimport { v4 as uuid } from 'uuid';\n\nimport { MOCK_ENTROPY_SOURCE_1, MOCK_ENTROPY_SOURCE_2 } from './keyrings';\nimport { isBip44Account, type Bip44Account } from '../api';\n\nconst ETH_EOA_METHODS = [\n EthMethod.PersonalSign,\n EthMethod.Sign,\n EthMethod.SignTransaction,\n EthMethod.SignTypedDataV1,\n EthMethod.SignTypedDataV3,\n EthMethod.SignTypedDataV4,\n] as const;\n\nconst SOL_METHODS = Object.values(SolMethod);\n\nexport const MOCK_HD_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-id-1',\n address: '0x123',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_1,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_HD_ACCOUNT_2: Bip44Account<KeyringAccount> = {\n id: 'mock-id-2',\n address: '0x456',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SOL_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-snap-id-1',\n address: 'aabbccdd',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: SOL_METHODS,\n type: SolAccountType.DataAccount,\n scopes: [SolScope.Mainnet, SolScope.Testnet, SolScope.Devnet],\n};\n\nexport const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'b0f030d8-e101-4b5a-a3dd-13f8ca8ec1db',\n type: BtcAccountType.P2wpkh,\n methods: Object.values(BtcMethod),\n address: 'bc1qx8ls07cy8j8nrluy2u0xwn7gh8fxg0rg4s8zze',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Mainnet],\n};\n\nexport const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'a20c2e1a-6ff6-40ba-b8e0-ccdb6f9933bb',\n type: BtcAccountType.P2tr,\n methods: Object.values(BtcMethod),\n address: 'tb1p5cyxnuxmeuwuvkwfem96lxx9wex9kkf4mt9ll6q60jfsnrzqg4sszkqjnh',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Testnet],\n};\n\nexport const MOCK_SNAP_ACCOUNT_1 = MOCK_SOL_ACCOUNT_1;\n\nexport const MOCK_SNAP_ACCOUNT_2: KeyringAccount = {\n id: 'mock-snap-id-2',\n address: '0x789',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SNAP_ACCOUNT_3 = MOCK_BTC_P2WPKH_ACCOUNT_1;\nexport const MOCK_SNAP_ACCOUNT_4 = MOCK_BTC_P2TR_ACCOUNT_1;\n\nexport const MOCK_HARDWARE_ACCOUNT_1: KeyringAccount = {\n id: 'mock-hardware-id-1',\n address: '0xABC',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport class MockAccountBuilder<Account extends KeyringAccount> {\n readonly #account: Account;\n\n constructor(account: Account) {\n // Make a deep-copy to avoid mutating the same ref.\n this.#account = JSON.parse(JSON.stringify(account));\n }\n\n static from<Account extends KeyringAccount>(\n account: Account,\n ): MockAccountBuilder<Account> {\n return new MockAccountBuilder(account);\n }\n\n withId(id: KeyringAccount['id']): MockAccountBuilder<Account> {\n this.#account.id = id;\n return this;\n }\n\n withUuid(): MockAccountBuilder<Account> {\n this.#account.id = uuid();\n return this;\n }\n\n withAddressSuffix(suffix: string): MockAccountBuilder<Account> {\n this.#account.address += suffix;\n return this;\n }\n\n withEntropySource(\n entropySource: EntropySourceId,\n ): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.id = entropySource;\n }\n return this;\n }\n\n withGroupIndex(groupIndex: number): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.groupIndex = groupIndex;\n }\n return this;\n }\n\n get(): Account {\n return this.#account;\n }\n}\n\nexport const MOCK_WALLET_1_ENTROPY_SOURCE = MOCK_ENTROPY_SOURCE_1;\n\nexport const MOCK_WALLET_1_EVM_ACCOUNT = MockAccountBuilder.from(\n MOCK_HD_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_SOL_ACCOUNT = MockAccountBuilder.from(\n MOCK_SOL_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2WPKH_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2TR_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2TR_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\n"]}
1
+ {"version":3,"file":"accounts.mjs","sourceRoot":"","sources":["../../src/mocks/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["// istanbul ignore file\n\nimport type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api';\nimport {\n BtcAccountType,\n BtcMethod,\n BtcScope,\n EthAccountType,\n EthMethod,\n EthScope,\n KeyringAccountEntropyTypeOption,\n SolAccountType,\n SolMethod,\n SolScope,\n} from '@metamask/keyring-api';\nimport { v4 as uuid } from 'uuid';\n\nimport { isBip44Account } from '../api';\nimport type { Bip44Account } from '../api';\nimport { MOCK_ENTROPY_SOURCE_1, MOCK_ENTROPY_SOURCE_2 } from './keyrings';\n\nconst ETH_EOA_METHODS = [\n EthMethod.PersonalSign,\n EthMethod.Sign,\n EthMethod.SignTransaction,\n EthMethod.SignTypedDataV1,\n EthMethod.SignTypedDataV3,\n EthMethod.SignTypedDataV4,\n] as const;\n\nconst SOL_METHODS = Object.values(SolMethod);\n\nexport const MOCK_HD_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-id-1',\n address: '0x123',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_1,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_HD_ACCOUNT_2: Bip44Account<KeyringAccount> = {\n id: 'mock-id-2',\n address: '0x456',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SOL_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'mock-snap-id-1',\n address: 'aabbccdd',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n methods: SOL_METHODS,\n type: SolAccountType.DataAccount,\n scopes: [SolScope.Mainnet, SolScope.Testnet, SolScope.Devnet],\n};\n\nexport const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'b0f030d8-e101-4b5a-a3dd-13f8ca8ec1db',\n type: BtcAccountType.P2wpkh,\n methods: Object.values(BtcMethod),\n address: 'bc1qx8ls07cy8j8nrluy2u0xwn7gh8fxg0rg4s8zze',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Mainnet],\n};\n\nexport const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<KeyringAccount> = {\n id: 'a20c2e1a-6ff6-40ba-b8e0-ccdb6f9933bb',\n type: BtcAccountType.P2tr,\n methods: Object.values(BtcMethod),\n address: 'tb1p5cyxnuxmeuwuvkwfem96lxx9wex9kkf4mt9ll6q60jfsnrzqg4sszkqjnh',\n options: {\n entropy: {\n type: KeyringAccountEntropyTypeOption.Mnemonic,\n // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n id: MOCK_ENTROPY_SOURCE_2,\n groupIndex: 0,\n derivationPath: '',\n },\n },\n scopes: [BtcScope.Testnet],\n};\n\nexport const MOCK_SNAP_ACCOUNT_1 = MOCK_SOL_ACCOUNT_1;\n\nexport const MOCK_SNAP_ACCOUNT_2: KeyringAccount = {\n id: 'mock-snap-id-2',\n address: '0x789',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport const MOCK_SNAP_ACCOUNT_3 = MOCK_BTC_P2WPKH_ACCOUNT_1;\nexport const MOCK_SNAP_ACCOUNT_4 = MOCK_BTC_P2TR_ACCOUNT_1;\n\nexport const MOCK_HARDWARE_ACCOUNT_1: KeyringAccount = {\n id: 'mock-hardware-id-1',\n address: '0xABC',\n options: {},\n methods: [...ETH_EOA_METHODS],\n type: EthAccountType.Eoa,\n scopes: [EthScope.Eoa],\n};\n\nexport class MockAccountBuilder<Account extends KeyringAccount> {\n readonly #account: Account;\n\n constructor(account: Account) {\n // Make a deep-copy to avoid mutating the same ref.\n this.#account = JSON.parse(JSON.stringify(account));\n }\n\n static from<Account extends KeyringAccount>(\n account: Account,\n ): MockAccountBuilder<Account> {\n return new MockAccountBuilder(account);\n }\n\n withId(id: KeyringAccount['id']): MockAccountBuilder<Account> {\n this.#account.id = id;\n return this;\n }\n\n withUuid(): MockAccountBuilder<Account> {\n this.#account.id = uuid();\n return this;\n }\n\n withAddressSuffix(suffix: string): MockAccountBuilder<Account> {\n this.#account.address += suffix;\n return this;\n }\n\n withEntropySource(\n entropySource: EntropySourceId,\n ): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.id = entropySource;\n }\n return this;\n }\n\n withGroupIndex(groupIndex: number): MockAccountBuilder<Account> {\n if (isBip44Account(this.#account)) {\n this.#account.options.entropy.groupIndex = groupIndex;\n }\n return this;\n }\n\n get(): Account {\n return this.#account;\n }\n}\n\nexport const MOCK_WALLET_1_ENTROPY_SOURCE = MOCK_ENTROPY_SOURCE_1;\n\nexport const MOCK_WALLET_1_EVM_ACCOUNT = MockAccountBuilder.from(\n MOCK_HD_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_SOL_ACCOUNT = MockAccountBuilder.from(\n MOCK_SOL_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2WPKH_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\nexport const MOCK_WALLET_1_BTC_P2TR_ACCOUNT = MockAccountBuilder.from(\n MOCK_BTC_P2TR_ACCOUNT_1,\n)\n .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n .withGroupIndex(0)\n .get();\n"]}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MOCK_KEYRING_WALLET_ID = exports.MOCK_SNAP_NPM_WALLET_ID = exports.MOCK_SNAP_LOCAL_WALLET_ID = exports.MOCK_ENTROPY_WALLET_ID = void 0;
4
+ const api_1 = require("../api/index.cjs");
4
5
  const keyrings_1 = require("./keyrings.cjs");
5
6
  const snaps_1 = require("./snaps.cjs");
6
- const api_1 = require("../api/index.cjs");
7
7
  exports.MOCK_ENTROPY_WALLET_ID = `${api_1.AccountWalletType.Entropy}:${keyrings_1.MOCK_ENTROPY_SOURCE_1}`;
8
8
  exports.MOCK_SNAP_LOCAL_WALLET_ID = `${api_1.AccountWalletType.Snap}:${snaps_1.MOCK_SNAP_1.id}`;
9
9
  exports.MOCK_SNAP_NPM_WALLET_ID = `${api_1.AccountWalletType.Snap}:${snaps_1.MOCK_SNAP_2.id}`;
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.cjs","sourceRoot":"","sources":["../../src/mocks/wallets.ts"],"names":[],"mappings":";;;AAAA,6CAGoB;AACpB,uCAAmD;AACnD,0CAA2C;AAE9B,QAAA,sBAAsB,GAAG,GAAG,uBAAiB,CAAC,OAAO,IAAI,gCAAqB,EAAE,CAAC;AACjF,QAAA,yBAAyB,GAAG,GAAG,uBAAiB,CAAC,IAAI,IAAI,mBAAW,CAAC,EAAE,EAAE,CAAC;AAC1E,QAAA,uBAAuB,GAAG,GAAG,uBAAiB,CAAC,IAAI,IAAI,mBAAW,CAAC,EAAE,EAAE,CAAC;AACxE,QAAA,sBAAsB,GAAG,GAAG,uBAAiB,CAAC,OAAO,IAAI,wCAA6B,EAAE,CAAC","sourcesContent":["import {\n MOCK_ENTROPY_SOURCE_1,\n MOCK_PRIVATE_KEY_KEYRING_TYPE,\n} from './keyrings';\nimport { MOCK_SNAP_1, MOCK_SNAP_2 } from './snaps';\nimport { AccountWalletType } from '../api';\n\nexport const MOCK_ENTROPY_WALLET_ID = `${AccountWalletType.Entropy}:${MOCK_ENTROPY_SOURCE_1}`;\nexport const MOCK_SNAP_LOCAL_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_1.id}`;\nexport const MOCK_SNAP_NPM_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_2.id}`;\nexport const MOCK_KEYRING_WALLET_ID = `${AccountWalletType.Keyring}:${MOCK_PRIVATE_KEY_KEYRING_TYPE}`;\n"]}
1
+ {"version":3,"file":"wallets.cjs","sourceRoot":"","sources":["../../src/mocks/wallets.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAC3C,6CAGoB;AACpB,uCAAmD;AAEtC,QAAA,sBAAsB,GAAG,GAAG,uBAAiB,CAAC,OAAO,IAAI,gCAAqB,EAAE,CAAC;AACjF,QAAA,yBAAyB,GAAG,GAAG,uBAAiB,CAAC,IAAI,IAAI,mBAAW,CAAC,EAAE,EAAE,CAAC;AAC1E,QAAA,uBAAuB,GAAG,GAAG,uBAAiB,CAAC,IAAI,IAAI,mBAAW,CAAC,EAAE,EAAE,CAAC;AACxE,QAAA,sBAAsB,GAAG,GAAG,uBAAiB,CAAC,OAAO,IAAI,wCAA6B,EAAE,CAAC","sourcesContent":["import { AccountWalletType } from '../api';\nimport {\n MOCK_ENTROPY_SOURCE_1,\n MOCK_PRIVATE_KEY_KEYRING_TYPE,\n} from './keyrings';\nimport { MOCK_SNAP_1, MOCK_SNAP_2 } from './snaps';\n\nexport const MOCK_ENTROPY_WALLET_ID = `${AccountWalletType.Entropy}:${MOCK_ENTROPY_SOURCE_1}`;\nexport const MOCK_SNAP_LOCAL_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_1.id}`;\nexport const MOCK_SNAP_NPM_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_2.id}`;\nexport const MOCK_KEYRING_WALLET_ID = `${AccountWalletType.Keyring}:${MOCK_PRIVATE_KEY_KEYRING_TYPE}`;\n"]}
@@ -1,6 +1,6 @@
1
+ import { AccountWalletType } from "../api/index.mjs";
1
2
  import { MOCK_ENTROPY_SOURCE_1, MOCK_PRIVATE_KEY_KEYRING_TYPE } from "./keyrings.mjs";
2
3
  import { MOCK_SNAP_1, MOCK_SNAP_2 } from "./snaps.mjs";
3
- import { AccountWalletType } from "../api/index.mjs";
4
4
  export const MOCK_ENTROPY_WALLET_ID = `${AccountWalletType.Entropy}:${MOCK_ENTROPY_SOURCE_1}`;
5
5
  export const MOCK_SNAP_LOCAL_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_1.id}`;
6
6
  export const MOCK_SNAP_NPM_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_2.id}`;
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.mjs","sourceRoot":"","sources":["../../src/mocks/wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC9B,uBAAmB;AACpB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAgB;AACnD,OAAO,EAAE,iBAAiB,EAAE,yBAAe;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,iBAAiB,CAAC,OAAO,IAAI,qBAAqB,EAAE,CAAC;AAC9F,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,iBAAiB,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,iBAAiB,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;AACrF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,iBAAiB,CAAC,OAAO,IAAI,6BAA6B,EAAE,CAAC","sourcesContent":["import {\n MOCK_ENTROPY_SOURCE_1,\n MOCK_PRIVATE_KEY_KEYRING_TYPE,\n} from './keyrings';\nimport { MOCK_SNAP_1, MOCK_SNAP_2 } from './snaps';\nimport { AccountWalletType } from '../api';\n\nexport const MOCK_ENTROPY_WALLET_ID = `${AccountWalletType.Entropy}:${MOCK_ENTROPY_SOURCE_1}`;\nexport const MOCK_SNAP_LOCAL_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_1.id}`;\nexport const MOCK_SNAP_NPM_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_2.id}`;\nexport const MOCK_KEYRING_WALLET_ID = `${AccountWalletType.Keyring}:${MOCK_PRIVATE_KEY_KEYRING_TYPE}`;\n"]}
1
+ {"version":3,"file":"wallets.mjs","sourceRoot":"","sources":["../../src/mocks/wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAe;AAC3C,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC9B,uBAAmB;AACpB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAgB;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,iBAAiB,CAAC,OAAO,IAAI,qBAAqB,EAAE,CAAC;AAC9F,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,iBAAiB,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,iBAAiB,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;AACrF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,iBAAiB,CAAC,OAAO,IAAI,6BAA6B,EAAE,CAAC","sourcesContent":["import { AccountWalletType } from '../api';\nimport {\n MOCK_ENTROPY_SOURCE_1,\n MOCK_PRIVATE_KEY_KEYRING_TYPE,\n} from './keyrings';\nimport { MOCK_SNAP_1, MOCK_SNAP_2 } from './snaps';\n\nexport const MOCK_ENTROPY_WALLET_ID = `${AccountWalletType.Entropy}:${MOCK_ENTROPY_SOURCE_1}`;\nexport const MOCK_SNAP_LOCAL_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_1.id}`;\nexport const MOCK_SNAP_NPM_WALLET_ID = `${AccountWalletType.Snap}:${MOCK_SNAP_2.id}`;\nexport const MOCK_KEYRING_WALLET_ID = `${AccountWalletType.Keyring}:${MOCK_PRIVATE_KEY_KEYRING_TYPE}`;\n"]}
package/package.json CHANGED
@@ -1,20 +1,27 @@
1
1
  {
2
2
  "name": "@metamask-previews/account-api",
3
- "version": "1.0.1-d23a1b9",
3
+ "version": "1.0.3-7275dbc",
4
4
  "description": "MetaMask Account API",
5
5
  "keywords": [
6
- "metamask",
7
6
  "account",
7
+ "metamask",
8
8
  "multichain"
9
9
  ],
10
10
  "homepage": "https://github.com/MetaMask/accounts/tree/main/packages/account-api#readme",
11
11
  "bugs": {
12
12
  "url": "https://github.com/MetaMask/accounts/issues"
13
13
  },
14
+ "license": "MIT",
14
15
  "repository": {
15
16
  "type": "git",
16
17
  "url": "https://github.com/MetaMask/accounts.git"
17
18
  },
19
+ "files": [
20
+ "dist/"
21
+ ],
22
+ "sideEffects": false,
23
+ "main": "./dist/index.cjs",
24
+ "types": "./dist/index.d.cts",
18
25
  "exports": {
19
26
  ".": {
20
27
  "import": {
@@ -35,35 +42,38 @@
35
42
  "types": "./dist/mocks/index.d.cts",
36
43
  "default": "./dist/mocks/index.cjs"
37
44
  }
38
- }
45
+ },
46
+ "./package.json": "./package.json"
47
+ },
48
+ "publishConfig": {
49
+ "access": "public",
50
+ "registry": "https://registry.npmjs.org/"
39
51
  },
40
- "main": "./dist/index.cjs",
41
- "types": "./dist/index.d.cts",
42
- "files": [
43
- "dist/"
44
- ],
45
52
  "scripts": {
46
- "build": "ts-bridge --project tsconfig.build.json --no-references",
53
+ "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
54
+ "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean",
47
55
  "build:clean": "yarn build --clean",
48
56
  "build:docs": "typedoc",
49
57
  "changelog:update": "../../scripts/update-changelog.sh @metamask/account-api",
50
58
  "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-api",
51
59
  "publish:preview": "yarn npm publish --tag preview",
60
+ "since-latest-release": "../../scripts/since-latest-release.sh",
52
61
  "test": "yarn test:source && yarn test:types",
53
- "test:clean": "jest --clearCache",
54
- "test:source": "jest && jest-it-up",
62
+ "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
63
+ "test:source": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
55
64
  "test:types": "../../scripts/tsd-test.sh ./src",
56
- "test:watch": "jest --watch"
65
+ "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose",
66
+ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
57
67
  },
58
68
  "dependencies": {
59
- "@metamask/keyring-api": "22.0.0",
69
+ "@metamask/keyring-api": "23.0.1",
60
70
  "@metamask/keyring-utils": "3.2.0",
61
71
  "uuid": "^9.0.1"
62
72
  },
63
73
  "devDependencies": {
64
74
  "@lavamoat/allow-scripts": "^3.2.1",
65
75
  "@lavamoat/preinstall-always-fail": "^2.1.0",
66
- "@metamask/auto-changelog": "^3.4.4",
76
+ "@metamask/auto-changelog": "^6.1.0",
67
77
  "@ts-bridge/cli": "^0.6.3",
68
78
  "@types/jest": "^29.5.12",
69
79
  "@types/node": "^20.12.12",
@@ -79,22 +89,18 @@
79
89
  "typedoc": "^0.25.13",
80
90
  "typescript": "~5.6.3"
81
91
  },
92
+ "tsd": {
93
+ "compilerOptions": {
94
+ "composite": "false"
95
+ },
96
+ "directory": "src"
97
+ },
82
98
  "engines": {
83
99
  "node": "^18.18 || >=20"
84
100
  },
85
- "publishConfig": {
86
- "access": "public",
87
- "registry": "https://registry.npmjs.org/"
88
- },
89
101
  "lavamoat": {
90
102
  "allowScripts": {
91
103
  "@lavamoat/preinstall-always-fail": false
92
104
  }
93
- },
94
- "tsd": {
95
- "directory": "src",
96
- "compilerOptions": {
97
- "composite": "false"
98
- }
99
105
  }
100
106
  }