@metamask/wallet 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +6 -0
  3. package/LICENSE.APACHE2 +201 -0
  4. package/LICENSE.MIT +21 -0
  5. package/README.md +15 -0
  6. package/dist/Wallet.cjs +113 -0
  7. package/dist/Wallet.cjs.map +1 -0
  8. package/dist/Wallet.d.cts +40 -0
  9. package/dist/Wallet.d.cts.map +1 -0
  10. package/dist/Wallet.d.mts +40 -0
  11. package/dist/Wallet.d.mts.map +1 -0
  12. package/dist/Wallet.mjs +109 -0
  13. package/dist/Wallet.mjs.map +1 -0
  14. package/dist/index.cjs +6 -0
  15. package/dist/index.cjs.map +1 -0
  16. package/dist/index.d.cts +4 -0
  17. package/dist/index.d.cts.map +1 -0
  18. package/dist/index.d.mts +4 -0
  19. package/dist/index.d.mts.map +1 -0
  20. package/dist/index.mjs +2 -0
  21. package/dist/index.mjs.map +1 -0
  22. package/dist/initialization/defaults.cjs +29 -0
  23. package/dist/initialization/defaults.cjs.map +1 -0
  24. package/dist/initialization/defaults.d.cts +30 -0
  25. package/dist/initialization/defaults.d.cts.map +1 -0
  26. package/dist/initialization/defaults.d.mts +30 -0
  27. package/dist/initialization/defaults.d.mts.map +1 -0
  28. package/dist/initialization/defaults.mjs +3 -0
  29. package/dist/initialization/defaults.mjs.map +1 -0
  30. package/dist/initialization/initialization.cjs +32 -0
  31. package/dist/initialization/initialization.cjs.map +1 -0
  32. package/dist/initialization/initialization.d.cts +15 -0
  33. package/dist/initialization/initialization.d.cts.map +1 -0
  34. package/dist/initialization/initialization.d.mts +15 -0
  35. package/dist/initialization/initialization.d.mts.map +1 -0
  36. package/dist/initialization/initialization.mjs +28 -0
  37. package/dist/initialization/initialization.mjs.map +1 -0
  38. package/dist/initialization/instances/index.cjs +6 -0
  39. package/dist/initialization/instances/index.cjs.map +1 -0
  40. package/dist/initialization/instances/index.d.cts +2 -0
  41. package/dist/initialization/instances/index.d.cts.map +1 -0
  42. package/dist/initialization/instances/index.d.mts +2 -0
  43. package/dist/initialization/instances/index.d.mts.map +1 -0
  44. package/dist/initialization/instances/index.mjs +2 -0
  45. package/dist/initialization/instances/index.mjs.map +1 -0
  46. package/dist/initialization/instances/keyring-controller.cjs +98 -0
  47. package/dist/initialization/instances/keyring-controller.cjs.map +1 -0
  48. package/dist/initialization/instances/keyring-controller.d.cts +31 -0
  49. package/dist/initialization/instances/keyring-controller.d.cts.map +1 -0
  50. package/dist/initialization/instances/keyring-controller.d.mts +31 -0
  51. package/dist/initialization/instances/keyring-controller.d.mts.map +1 -0
  52. package/dist/initialization/instances/keyring-controller.mjs +94 -0
  53. package/dist/initialization/instances/keyring-controller.mjs.map +1 -0
  54. package/dist/initialization/types.cjs +3 -0
  55. package/dist/initialization/types.cjs.map +1 -0
  56. package/dist/initialization/types.d.cts +35 -0
  57. package/dist/initialization/types.d.cts.map +1 -0
  58. package/dist/initialization/types.d.mts +35 -0
  59. package/dist/initialization/types.d.mts.map +1 -0
  60. package/dist/initialization/types.mjs +2 -0
  61. package/dist/initialization/types.mjs.map +1 -0
  62. package/dist/types.cjs +3 -0
  63. package/dist/types.cjs.map +1 -0
  64. package/dist/types.d.cts +18 -0
  65. package/dist/types.d.cts.map +1 -0
  66. package/dist/types.d.mts +18 -0
  67. package/dist/types.d.mts.map +1 -0
  68. package/dist/types.mjs +2 -0
  69. package/dist/types.mjs.map +1 -0
  70. package/dist/utilities.cjs +20 -0
  71. package/dist/utilities.cjs.map +1 -0
  72. package/dist/utilities.d.cts +10 -0
  73. package/dist/utilities.d.cts.map +1 -0
  74. package/dist/utilities.d.mts +10 -0
  75. package/dist/utilities.d.mts.map +1 -0
  76. package/dist/utilities.mjs +16 -0
  77. package/dist/utilities.mjs.map +1 -0
  78. package/package.json +78 -0
@@ -0,0 +1,35 @@
1
+ import type { InstanceSpecificOptions } from "../types.cjs";
2
+ import type { DefaultActions, DefaultEvents, RootMessenger } from "./defaults.cjs";
3
+ /**
4
+ * Utility type for inferring the state of an instance.
5
+ */
6
+ export type InstanceState<Instance> = Instance extends {
7
+ state: unknown;
8
+ } ? Instance['state'] : undefined;
9
+ /**
10
+ * Utility type for inferring the name of an instance.
11
+ */
12
+ type InstanceName<Instance> = Instance extends {
13
+ name: infer Name extends string;
14
+ } ? Name : string;
15
+ /**
16
+ * Utility type for lower-casing the first character of an instance name, required for camel-casing.
17
+ */
18
+ type LowerCaseFirstLetter<Name extends string> = Name extends `${infer Character1}${infer Rest}` ? `${Lowercase<Character1>}${Rest}` : Lowercase<Name>;
19
+ type CamelCaseInstanceName<Instance> = LowerCaseFirstLetter<InstanceName<Instance>>;
20
+ /**
21
+ * Utility type for narrowing the InstanceSpecificOptions to just the options required for the instance.
22
+ */
23
+ type InstanceOptions<Instance> = CamelCaseInstanceName<Instance> extends keyof InstanceSpecificOptions ? NonNullable<InstanceSpecificOptions[CamelCaseInstanceName<Instance>]> : unknown;
24
+ export type InitFunctionArguments<Instance, InstanceMessenger> = {
25
+ state: InstanceState<Instance> | undefined;
26
+ messenger: InstanceMessenger;
27
+ options: InstanceOptions<Instance>;
28
+ };
29
+ export type InitializationConfiguration<Instance, InstanceMessenger> = {
30
+ name: InstanceName<Instance>;
31
+ init(args: InitFunctionArguments<Instance, InstanceMessenger>): Instance;
32
+ getMessenger(parent: RootMessenger<DefaultActions, DefaultEvents>): InstanceMessenger;
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/initialization/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAiB;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,uBAAmB;AAE/E;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,QAAQ,IAAI,QAAQ,SAAS;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GACrE,QAAQ,CAAC,OAAO,CAAC,GACjB,SAAS,CAAC;AAEd;;GAEG;AACH,KAAK,YAAY,CAAC,QAAQ,IAAI,QAAQ,SAAS;IAC7C,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;CACjC,GACG,IAAI,GACJ,MAAM,CAAC;AAEX;;GAEG;AACH,KAAK,oBAAoB,CAAC,IAAI,SAAS,MAAM,IAC3C,IAAI,SAAS,GAAG,MAAM,UAAU,GAAG,MAAM,IAAI,EAAE,GAC3C,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,GACjC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEtB,KAAK,qBAAqB,CAAC,QAAQ,IAAI,oBAAoB,CACzD,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAC;AAEF;;GAEG;AACH,KAAK,eAAe,CAAC,QAAQ,IAC3B,qBAAqB,CAAC,QAAQ,CAAC,SAAS,MAAM,uBAAuB,GACjE,WAAW,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrE,OAAO,CAAC;AAEd,MAAM,MAAM,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,IAAI;IAC/D,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,QAAQ,EAAE,iBAAiB,IAAI;IACrE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC;IACzE,YAAY,CACV,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,GACnD,iBAAiB,CAAC;CACtB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { InstanceSpecificOptions } from "../types.mjs";
2
+ import type { DefaultActions, DefaultEvents, RootMessenger } from "./defaults.mjs";
3
+ /**
4
+ * Utility type for inferring the state of an instance.
5
+ */
6
+ export type InstanceState<Instance> = Instance extends {
7
+ state: unknown;
8
+ } ? Instance['state'] : undefined;
9
+ /**
10
+ * Utility type for inferring the name of an instance.
11
+ */
12
+ type InstanceName<Instance> = Instance extends {
13
+ name: infer Name extends string;
14
+ } ? Name : string;
15
+ /**
16
+ * Utility type for lower-casing the first character of an instance name, required for camel-casing.
17
+ */
18
+ type LowerCaseFirstLetter<Name extends string> = Name extends `${infer Character1}${infer Rest}` ? `${Lowercase<Character1>}${Rest}` : Lowercase<Name>;
19
+ type CamelCaseInstanceName<Instance> = LowerCaseFirstLetter<InstanceName<Instance>>;
20
+ /**
21
+ * Utility type for narrowing the InstanceSpecificOptions to just the options required for the instance.
22
+ */
23
+ type InstanceOptions<Instance> = CamelCaseInstanceName<Instance> extends keyof InstanceSpecificOptions ? NonNullable<InstanceSpecificOptions[CamelCaseInstanceName<Instance>]> : unknown;
24
+ export type InitFunctionArguments<Instance, InstanceMessenger> = {
25
+ state: InstanceState<Instance> | undefined;
26
+ messenger: InstanceMessenger;
27
+ options: InstanceOptions<Instance>;
28
+ };
29
+ export type InitializationConfiguration<Instance, InstanceMessenger> = {
30
+ name: InstanceName<Instance>;
31
+ init(args: InitFunctionArguments<Instance, InstanceMessenger>): Instance;
32
+ getMessenger(parent: RootMessenger<DefaultActions, DefaultEvents>): InstanceMessenger;
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../src/initialization/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAiB;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,uBAAmB;AAE/E;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,QAAQ,IAAI,QAAQ,SAAS;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GACrE,QAAQ,CAAC,OAAO,CAAC,GACjB,SAAS,CAAC;AAEd;;GAEG;AACH,KAAK,YAAY,CAAC,QAAQ,IAAI,QAAQ,SAAS;IAC7C,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;CACjC,GACG,IAAI,GACJ,MAAM,CAAC;AAEX;;GAEG;AACH,KAAK,oBAAoB,CAAC,IAAI,SAAS,MAAM,IAC3C,IAAI,SAAS,GAAG,MAAM,UAAU,GAAG,MAAM,IAAI,EAAE,GAC3C,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,GACjC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEtB,KAAK,qBAAqB,CAAC,QAAQ,IAAI,oBAAoB,CACzD,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAC;AAEF;;GAEG;AACH,KAAK,eAAe,CAAC,QAAQ,IAC3B,qBAAqB,CAAC,QAAQ,CAAC,SAAS,MAAM,uBAAuB,GACjE,WAAW,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrE,OAAO,CAAC;AAEd,MAAM,MAAM,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,IAAI;IAC/D,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,QAAQ,EAAE,iBAAiB,IAAI;IACrE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC;IACzE,YAAY,CACV,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,GACnD,iBAAiB,CAAC;CACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/initialization/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { InstanceSpecificOptions } from '../types';\nimport type { DefaultActions, DefaultEvents, RootMessenger } from './defaults';\n\n/**\n * Utility type for inferring the state of an instance.\n */\nexport type InstanceState<Instance> = Instance extends { state: unknown }\n ? Instance['state']\n : undefined;\n\n/**\n * Utility type for inferring the name of an instance.\n */\ntype InstanceName<Instance> = Instance extends {\n name: infer Name extends string;\n}\n ? Name\n : string;\n\n/**\n * Utility type for lower-casing the first character of an instance name, required for camel-casing.\n */\ntype LowerCaseFirstLetter<Name extends string> =\n Name extends `${infer Character1}${infer Rest}`\n ? `${Lowercase<Character1>}${Rest}`\n : Lowercase<Name>;\n\ntype CamelCaseInstanceName<Instance> = LowerCaseFirstLetter<\n InstanceName<Instance>\n>;\n\n/**\n * Utility type for narrowing the InstanceSpecificOptions to just the options required for the instance.\n */\ntype InstanceOptions<Instance> =\n CamelCaseInstanceName<Instance> extends keyof InstanceSpecificOptions\n ? NonNullable<InstanceSpecificOptions[CamelCaseInstanceName<Instance>]>\n : unknown;\n\nexport type InitFunctionArguments<Instance, InstanceMessenger> = {\n state: InstanceState<Instance> | undefined;\n messenger: InstanceMessenger;\n options: InstanceOptions<Instance>;\n};\n\nexport type InitializationConfiguration<Instance, InstanceMessenger> = {\n name: InstanceName<Instance>;\n init(args: InitFunctionArguments<Instance, InstanceMessenger>): Instance;\n getMessenger(\n parent: RootMessenger<DefaultActions, DefaultEvents>,\n ): InstanceMessenger;\n};\n"]}
package/dist/types.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { KeyringControllerOptions } from '@metamask/keyring-controller';\nimport type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport { GenericEncryptor } from './initialization/instances/keyring-controller';\nimport { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions?: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n keyringController?: {\n encryptor?: GenericEncryptor;\n keyringBuilders?: KeyringControllerOptions['keyringBuilders'];\n };\n};\n"]}
@@ -0,0 +1,18 @@
1
+ import { KeyringControllerOptions } from "@metamask/keyring-controller";
2
+ import type { Json } from "@metamask/utils";
3
+ import type { DefaultActions, DefaultEvents, RootMessenger } from "./initialization/defaults.cjs";
4
+ import { GenericEncryptor } from "./initialization/instances/keyring-controller.cjs";
5
+ import { InitializationConfiguration } from "./initialization/types.cjs";
6
+ export type WalletOptions = {
7
+ messenger?: RootMessenger<DefaultActions, DefaultEvents>;
8
+ state?: Record<string, Record<string, Json> | undefined>;
9
+ initializationConfigurations?: InitializationConfiguration<unknown, unknown>[];
10
+ instanceOptions?: InstanceSpecificOptions;
11
+ };
12
+ export type InstanceSpecificOptions = {
13
+ keyringController?: {
14
+ encryptor?: GenericEncryptor;
15
+ keyringBuilders?: KeyringControllerOptions['keyringBuilders'];
16
+ };
17
+ };
18
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,qCAAqC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,EAAE,gBAAgB,EAAE,0DAAsD;AACjF,OAAO,EAAE,2BAA2B,EAAE,mCAA+B;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC;QAC7B,eAAe,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;KAC/D,CAAC;CACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { KeyringControllerOptions } from "@metamask/keyring-controller";
2
+ import type { Json } from "@metamask/utils";
3
+ import type { DefaultActions, DefaultEvents, RootMessenger } from "./initialization/defaults.mjs";
4
+ import { GenericEncryptor } from "./initialization/instances/keyring-controller.mjs";
5
+ import { InitializationConfiguration } from "./initialization/types.mjs";
6
+ export type WalletOptions = {
7
+ messenger?: RootMessenger<DefaultActions, DefaultEvents>;
8
+ state?: Record<string, Record<string, Json> | undefined>;
9
+ initializationConfigurations?: InitializationConfiguration<unknown, unknown>[];
10
+ instanceOptions?: InstanceSpecificOptions;
11
+ };
12
+ export type InstanceSpecificOptions = {
13
+ keyringController?: {
14
+ encryptor?: GenericEncryptor;
15
+ keyringBuilders?: KeyringControllerOptions['keyringBuilders'];
16
+ };
17
+ };
18
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,qCAAqC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,EAAE,gBAAgB,EAAE,0DAAsD;AACjF,OAAO,EAAE,2BAA2B,EAAE,mCAA+B;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC;QAC7B,eAAe,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;KAC/D,CAAC;CACH,CAAC"}
package/dist/types.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { KeyringControllerOptions } from '@metamask/keyring-controller';\nimport type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport { GenericEncryptor } from './initialization/instances/keyring-controller';\nimport { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions?: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n keyringController?: {\n encryptor?: GenericEncryptor;\n keyringBuilders?: KeyringControllerOptions['keyringBuilders'];\n };\n};\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.importSecretRecoveryPhrase = void 0;
4
+ const english_1 = require("@metamask/scure-bip39/dist/wordlists/english.js");
5
+ const Wallet_1 = require("./Wallet.cjs");
6
+ /**
7
+ * Import a secret recovery phrase using the wallet object.
8
+ *
9
+ * @param wallet - The wallet object.
10
+ * @param password - The password to the MetaMask wallet (not the SRP).
11
+ * @param phrase - The SRP as a string.
12
+ */
13
+ async function importSecretRecoveryPhrase(wallet, password, phrase) {
14
+ const indices = phrase.split(' ').map((word) => english_1.wordlist.indexOf(word));
15
+ const mnemonic = new Uint8Array(new Uint16Array(indices).buffer);
16
+ // TODO: This should use the new MultichainAccountService.
17
+ await wallet.messenger.call('KeyringController:createNewVaultAndRestore', password, mnemonic);
18
+ }
19
+ exports.importSecretRecoveryPhrase = importSecretRecoveryPhrase;
20
+ //# sourceMappingURL=utilities.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.cjs","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":";;;AAAA,6EAAwE;AAExE,yCAAkC;AAElC;;;;;;GAMG;AACI,KAAK,UAAU,0BAA0B,CAC9C,MAAc,EACd,QAAgB,EAChB,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAEjE,0DAA0D;IAC1D,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CACzB,4CAA4C,EAC5C,QAAQ,EACR,QAAQ,CACT,CAAC;AACJ,CAAC;AAdD,gEAcC","sourcesContent":["import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english';\n\nimport { Wallet } from './Wallet';\n\n/**\n * Import a secret recovery phrase using the wallet object.\n *\n * @param wallet - The wallet object.\n * @param password - The password to the MetaMask wallet (not the SRP).\n * @param phrase - The SRP as a string.\n */\nexport async function importSecretRecoveryPhrase(\n wallet: Wallet,\n password: string,\n phrase: string,\n): Promise<void> {\n const indices = phrase.split(' ').map((word) => wordlist.indexOf(word));\n const mnemonic = new Uint8Array(new Uint16Array(indices).buffer);\n\n // TODO: This should use the new MultichainAccountService.\n await wallet.messenger.call(\n 'KeyringController:createNewVaultAndRestore',\n password,\n mnemonic,\n );\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { Wallet } from "./Wallet.cjs";
2
+ /**
3
+ * Import a secret recovery phrase using the wallet object.
4
+ *
5
+ * @param wallet - The wallet object.
6
+ * @param password - The password to the MetaMask wallet (not the SRP).
7
+ * @param phrase - The SRP as a string.
8
+ */
9
+ export declare function importSecretRecoveryPhrase(wallet: Wallet, password: string, phrase: string): Promise<void>;
10
+ //# sourceMappingURL=utilities.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.cts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAElC;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -0,0 +1,10 @@
1
+ import { Wallet } from "./Wallet.mjs";
2
+ /**
3
+ * Import a secret recovery phrase using the wallet object.
4
+ *
5
+ * @param wallet - The wallet object.
6
+ * @param password - The password to the MetaMask wallet (not the SRP).
7
+ * @param phrase - The SRP as a string.
8
+ */
9
+ export declare function importSecretRecoveryPhrase(wallet: Wallet, password: string, phrase: string): Promise<void>;
10
+ //# sourceMappingURL=utilities.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.mts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAElC;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -0,0 +1,16 @@
1
+ import { wordlist } from "@metamask/scure-bip39/dist/wordlists/english.js";
2
+ import { Wallet } from "./Wallet.mjs";
3
+ /**
4
+ * Import a secret recovery phrase using the wallet object.
5
+ *
6
+ * @param wallet - The wallet object.
7
+ * @param password - The password to the MetaMask wallet (not the SRP).
8
+ * @param phrase - The SRP as a string.
9
+ */
10
+ export async function importSecretRecoveryPhrase(wallet, password, phrase) {
11
+ const indices = phrase.split(' ').map((word) => wordlist.indexOf(word));
12
+ const mnemonic = new Uint8Array(new Uint16Array(indices).buffer);
13
+ // TODO: This should use the new MultichainAccountService.
14
+ await wallet.messenger.call('KeyringController:createNewVaultAndRestore', password, mnemonic);
15
+ }
16
+ //# sourceMappingURL=utilities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.mjs","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAqD;AAExE,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAElC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAc,EACd,QAAgB,EAChB,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAEjE,0DAA0D;IAC1D,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CACzB,4CAA4C,EAC5C,QAAQ,EACR,QAAQ,CACT,CAAC;AACJ,CAAC","sourcesContent":["import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english';\n\nimport { Wallet } from './Wallet';\n\n/**\n * Import a secret recovery phrase using the wallet object.\n *\n * @param wallet - The wallet object.\n * @param password - The password to the MetaMask wallet (not the SRP).\n * @param phrase - The SRP as a string.\n */\nexport async function importSecretRecoveryPhrase(\n wallet: Wallet,\n password: string,\n phrase: string,\n): Promise<void> {\n const indices = phrase.split(' ').map((word) => wordlist.indexOf(word));\n const mnemonic = new Uint8Array(new Uint16Array(indices).buffer);\n\n // TODO: This should use the new MultichainAccountService.\n await wallet.messenger.call(\n 'KeyringController:createNewVaultAndRestore',\n password,\n mnemonic,\n );\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@metamask/wallet",
3
+ "version": "1.0.0",
4
+ "description": "Provides a shared framework for building MetaMask wallets",
5
+ "keywords": [
6
+ "Ethereum",
7
+ "MetaMask"
8
+ ],
9
+ "homepage": "https://github.com/MetaMask/core/tree/main/packages/wallet#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/MetaMask/core/issues"
12
+ },
13
+ "license": "(MIT OR Apache-2.0)",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/MetaMask/core.git"
17
+ },
18
+ "files": [
19
+ "dist/"
20
+ ],
21
+ "sideEffects": false,
22
+ "main": "./dist/index.cjs",
23
+ "types": "./dist/index.d.cts",
24
+ "exports": {
25
+ ".": {
26
+ "import": {
27
+ "types": "./dist/index.d.mts",
28
+ "default": "./dist/index.mjs"
29
+ },
30
+ "require": {
31
+ "types": "./dist/index.d.cts",
32
+ "default": "./dist/index.cjs"
33
+ }
34
+ },
35
+ "./package.json": "./package.json"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public",
39
+ "registry": "https://registry.npmjs.org/"
40
+ },
41
+ "scripts": {
42
+ "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
43
+ "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean",
44
+ "build:docs": "typedoc",
45
+ "changelog:update": "../../scripts/update-changelog.sh @metamask/wallet",
46
+ "changelog:validate": "../../scripts/validate-changelog.sh @metamask/wallet",
47
+ "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check",
48
+ "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate",
49
+ "since-latest-release": "../../scripts/since-latest-release.sh",
50
+ "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
51
+ "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
52
+ "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose",
53
+ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
54
+ },
55
+ "dependencies": {
56
+ "@metamask/base-controller": "^9.1.0",
57
+ "@metamask/browser-passworder": "^6.0.0",
58
+ "@metamask/keyring-controller": "^25.5.0",
59
+ "@metamask/messenger": "^1.2.0",
60
+ "@metamask/scure-bip39": "^2.1.1",
61
+ "@metamask/utils": "^11.9.0"
62
+ },
63
+ "devDependencies": {
64
+ "@metamask/auto-changelog": "^6.1.0",
65
+ "@ts-bridge/cli": "^0.6.4",
66
+ "@types/jest": "^29.5.14",
67
+ "deepmerge": "^4.2.2",
68
+ "jest": "^29.7.0",
69
+ "ts-jest": "^29.2.5",
70
+ "tsx": "^4.20.5",
71
+ "typedoc": "^0.25.13",
72
+ "typedoc-plugin-missing-exports": "^2.0.0",
73
+ "typescript": "~5.3.3"
74
+ },
75
+ "engines": {
76
+ "node": "^18.18 || >=20"
77
+ }
78
+ }