@metamask-previews/wallet 0.0.0-preview-598dbe642 → 0.0.0-preview-ea54cecca

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Wallet.cjs CHANGED
@@ -46,6 +46,16 @@ class Wallet {
46
46
  get controllerMetadata() {
47
47
  return __classPrivateFieldGet(this, _Wallet_controllerMetadata, "f");
48
48
  }
49
+ /**
50
+ * Get an instantiated controller or service.
51
+ *
52
+ * @param name - The name.
53
+ * @returns - The instance.
54
+ * @deprecated - Please use the messenger instead of direct access.
55
+ */
56
+ getInstance(name) {
57
+ return __classPrivateFieldGet(this, _Wallet_instances, "f")[name];
58
+ }
49
59
  async destroy() {
50
60
  if (__classPrivateFieldGet(this, _Wallet_destroyed, "f")) {
51
61
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.cjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAgD;AAChD,2CAA8C;AAS9C,+DAA8C;AAG9C,MAAa,MAAM;IAYjB,YAAY,OAAsB;QAXlC,oEAAoE;QAC3D,oCAAyD;QAEzD,oCAA6B;QAE7B,6CAEP;QAEF,4BAAa,KAAK,EAAC;QAGjB,uBAAA,IAAI,qBAAc,IAAI,qBAAS,CAAC;YAC9B,SAAS,EAAE,QAAQ;SACpB,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,qBAAc,IAAA,2BAAU,EAAC;YAC3B,OAAO;YACP,SAAS,EAAE,uBAAA,IAAI,yBAAW;SAC3B,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,8BAAuB,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACxD,MAAA,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,OAAO,uBAAA,IAAI,yBAAW,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;YAC1C,OAAO,UAAU,CAAC;QACpB,CAAC,EACD,EAAE,CACa,CAAC;IACpB,CAAC;IAED,IAAI,kBAAkB;QAGpB,OAAO,uBAAA,IAAI,kCAAoB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,uBAAA,IAAI,yBAAW,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,uBAAA,IAAI,qBAAc,IAAI,MAAA,CAAC;QAEvB,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpD,iDAAiD;YACjD,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3C,iDAAiD;gBACjD,6DAA6D;gBAC7D,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YACD,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;CACF;AAvED,wBAuEC","sourcesContent":["import type { StateMetadataConstraint } from '@metamask/base-controller';\nimport { Messenger } from '@metamask/messenger';\nimport { hasProperty } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization';\nimport { initialize } from './initialization';\nimport { WalletOptions } from './types';\n\nexport class Wallet {\n // TODO: Expand default types when passing additionalConfigurations.\n readonly #messenger: RootMessenger<DefaultActions, DefaultEvents>;\n\n readonly #instances: DefaultInstances;\n\n readonly #controllerMetadata: Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n >;\n\n #destroyed = false;\n\n constructor(options: WalletOptions) {\n this.#messenger = new Messenger({\n namespace: 'Wallet',\n });\n\n this.#instances = initialize({\n options,\n messenger: this.#messenger,\n });\n\n this.#controllerMetadata = Object.fromEntries(\n Object.entries(this.#instances)\n .filter(([_, instance]) => hasProperty(instance, 'metadata'))\n .map(([name, instance]) => [name, instance.metadata]),\n );\n }\n\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n totalState[name] = instance.state ?? null;\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n async destroy(): Promise<void> {\n if (this.#destroyed) {\n return;\n }\n\n this.#destroyed = true;\n\n await Promise.allSettled(\n Object.values(this.#instances).map(async (instance) => {\n // @ts-expect-error Accessing protected property.\n if (typeof instance.destroy === 'function') {\n // @ts-expect-error Accessing protected property.\n // eslint-disable-next-line @typescript-eslint/await-thenable\n return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n\n this.messenger.publish('Wallet:destroyed');\n }\n}\n"]}
1
+ {"version":3,"file":"Wallet.cjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAgD;AAChD,2CAA8C;AAS9C,+DAA8C;AAG9C,MAAa,MAAM;IAYjB,YAAY,OAAsB;QAXlC,oEAAoE;QAC3D,oCAAyD;QAEzD,oCAA6B;QAE7B,6CAEP;QAEF,4BAAa,KAAK,EAAC;QAGjB,uBAAA,IAAI,qBAAc,IAAI,qBAAS,CAAC;YAC9B,SAAS,EAAE,QAAQ;SACpB,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,qBAAc,IAAA,2BAAU,EAAC;YAC3B,OAAO;YACP,SAAS,EAAE,uBAAA,IAAI,yBAAW;SAC3B,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,8BAAuB,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACxD,MAAA,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,OAAO,uBAAA,IAAI,yBAAW,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;YAC1C,OAAO,UAAU,CAAC;QACpB,CAAC,EACD,EAAE,CACa,CAAC;IACpB,CAAC;IAED,IAAI,kBAAkB;QAGpB,OAAO,uBAAA,IAAI,kCAAoB,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAA4B;QACtC,OAAO,uBAAA,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,uBAAA,IAAI,yBAAW,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,uBAAA,IAAI,qBAAc,IAAI,MAAA,CAAC;QAEvB,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpD,iDAAiD;YACjD,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3C,iDAAiD;gBACjD,6DAA6D;gBAC7D,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YACD,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;CACF;AAlFD,wBAkFC","sourcesContent":["import type { StateMetadataConstraint } from '@metamask/base-controller';\nimport { Messenger } from '@metamask/messenger';\nimport { hasProperty } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization';\nimport { initialize } from './initialization';\nimport { WalletOptions } from './types';\n\nexport class Wallet {\n // TODO: Expand default types when passing additionalConfigurations.\n readonly #messenger: RootMessenger<DefaultActions, DefaultEvents>;\n\n readonly #instances: DefaultInstances;\n\n readonly #controllerMetadata: Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n >;\n\n #destroyed = false;\n\n constructor(options: WalletOptions) {\n this.#messenger = new Messenger({\n namespace: 'Wallet',\n });\n\n this.#instances = initialize({\n options,\n messenger: this.#messenger,\n });\n\n this.#controllerMetadata = Object.fromEntries(\n Object.entries(this.#instances)\n .filter(([_, instance]) => hasProperty(instance, 'metadata'))\n .map(([name, instance]) => [name, instance.metadata]),\n );\n }\n\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n totalState[name] = instance.state ?? null;\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n /**\n * Get an instantiated controller or service.\n * \n * @param name - The name.\n * @returns - The instance.\n * @deprecated - Please use the messenger instead of direct access.\n */\n getInstance(name: keyof DefaultInstances) {\n return this.#instances[name];\n }\n\n async destroy(): Promise<void> {\n if (this.#destroyed) {\n return;\n }\n\n this.#destroyed = true;\n\n await Promise.allSettled(\n Object.values(this.#instances).map(async (instance) => {\n // @ts-expect-error Accessing protected property.\n if (typeof instance.destroy === 'function') {\n // @ts-expect-error Accessing protected property.\n // eslint-disable-next-line @typescript-eslint/await-thenable\n return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n\n this.messenger.publish('Wallet:destroyed');\n }\n}\n"]}
package/dist/Wallet.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StateMetadataConstraint } from "@metamask/base-controller";
2
- import type { DefaultActions, DefaultEvents, DefaultState, RootMessenger } from "./initialization/index.cjs";
2
+ import type { DefaultActions, DefaultEvents, DefaultInstances, DefaultState, RootMessenger } from "./initialization/index.cjs";
3
3
  import { WalletOptions } from "./types.cjs";
4
4
  export declare class Wallet {
5
5
  #private;
@@ -7,6 +7,14 @@ export declare class Wallet {
7
7
  get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>>;
8
8
  get state(): DefaultState;
9
9
  get controllerMetadata(): Readonly<Record<string, Readonly<StateMetadataConstraint>>>;
10
+ /**
11
+ * Get an instantiated controller or service.
12
+ *
13
+ * @param name - The name.
14
+ * @returns - The instance.
15
+ * @deprecated - Please use the messenger instead of direct access.
16
+ */
17
+ getInstance(name: keyof DefaultInstances): import("@metamask/keyring-controller").KeyringController<import("@metamask/browser-passworder").EncryptionKey | CryptoKey, import("@metamask/browser-passworder").KeyDerivationOptions, import("@metamask/keyring-controller").DefaultEncryptionResult<import("@metamask/browser-passworder").KeyDerivationOptions>>;
10
18
  destroy(): Promise<void>;
11
19
  }
12
20
  //# sourceMappingURL=Wallet.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.d.cts","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kCAAkC;AAIzE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,YAAY,EACZ,aAAa,EACd,mCAAyB;AAE1B,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;gBAYL,OAAO,EAAE,aAAa;IAiBlC,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,KAAK,IAAI,YAAY,CAQxB;IAED,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB/B"}
1
+ {"version":3,"file":"Wallet.d.cts","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kCAAkC;AAIzE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,mCAAyB;AAE1B,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;gBAYL,OAAO,EAAE,aAAa;IAiBlC,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,KAAK,IAAI,YAAY,CAQxB;IAED,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,gBAAgB;IAIlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB/B"}
package/dist/Wallet.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StateMetadataConstraint } from "@metamask/base-controller";
2
- import type { DefaultActions, DefaultEvents, DefaultState, RootMessenger } from "./initialization/index.mjs";
2
+ import type { DefaultActions, DefaultEvents, DefaultInstances, DefaultState, RootMessenger } from "./initialization/index.mjs";
3
3
  import { WalletOptions } from "./types.mjs";
4
4
  export declare class Wallet {
5
5
  #private;
@@ -7,6 +7,14 @@ export declare class Wallet {
7
7
  get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>>;
8
8
  get state(): DefaultState;
9
9
  get controllerMetadata(): Readonly<Record<string, Readonly<StateMetadataConstraint>>>;
10
+ /**
11
+ * Get an instantiated controller or service.
12
+ *
13
+ * @param name - The name.
14
+ * @returns - The instance.
15
+ * @deprecated - Please use the messenger instead of direct access.
16
+ */
17
+ getInstance(name: keyof DefaultInstances): import("@metamask/keyring-controller").KeyringController<import("@metamask/browser-passworder").EncryptionKey | CryptoKey, import("@metamask/browser-passworder").KeyDerivationOptions, import("@metamask/keyring-controller").DefaultEncryptionResult<import("@metamask/browser-passworder").KeyDerivationOptions>>;
10
18
  destroy(): Promise<void>;
11
19
  }
12
20
  //# sourceMappingURL=Wallet.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.d.mts","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kCAAkC;AAIzE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,YAAY,EACZ,aAAa,EACd,mCAAyB;AAE1B,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;gBAYL,OAAO,EAAE,aAAa;IAiBlC,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,KAAK,IAAI,YAAY,CAQxB;IAED,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB/B"}
1
+ {"version":3,"file":"Wallet.d.mts","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kCAAkC;AAIzE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,mCAAyB;AAE1B,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;gBAYL,OAAO,EAAE,aAAa;IAiBlC,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,KAAK,IAAI,YAAY,CAQxB;IAED,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,gBAAgB;IAIlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB/B"}
package/dist/Wallet.mjs CHANGED
@@ -43,6 +43,16 @@ export class Wallet {
43
43
  get controllerMetadata() {
44
44
  return __classPrivateFieldGet(this, _Wallet_controllerMetadata, "f");
45
45
  }
46
+ /**
47
+ * Get an instantiated controller or service.
48
+ *
49
+ * @param name - The name.
50
+ * @returns - The instance.
51
+ * @deprecated - Please use the messenger instead of direct access.
52
+ */
53
+ getInstance(name) {
54
+ return __classPrivateFieldGet(this, _Wallet_instances, "f")[name];
55
+ }
46
56
  async destroy() {
47
57
  if (__classPrivateFieldGet(this, _Wallet_destroyed, "f")) {
48
58
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.mjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,EAAE,WAAW,EAAE,wBAAwB;AAS9C,OAAO,EAAE,UAAU,EAAE,mCAAyB;AAG9C,MAAM,OAAO,MAAM;IAYjB,YAAY,OAAsB;QAXlC,oEAAoE;QAC3D,oCAAyD;QAEzD,oCAA6B;QAE7B,6CAEP;QAEF,4BAAa,KAAK,EAAC;QAGjB,uBAAA,IAAI,qBAAc,IAAI,SAAS,CAAC;YAC9B,SAAS,EAAE,QAAQ;SACpB,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,qBAAc,UAAU,CAAC;YAC3B,OAAO;YACP,SAAS,EAAE,uBAAA,IAAI,yBAAW;SAC3B,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,8BAAuB,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACxD,MAAA,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,OAAO,uBAAA,IAAI,yBAAW,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;YAC1C,OAAO,UAAU,CAAC;QACpB,CAAC,EACD,EAAE,CACa,CAAC;IACpB,CAAC;IAED,IAAI,kBAAkB;QAGpB,OAAO,uBAAA,IAAI,kCAAoB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,uBAAA,IAAI,yBAAW,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,uBAAA,IAAI,qBAAc,IAAI,MAAA,CAAC;QAEvB,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpD,iDAAiD;YACjD,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3C,iDAAiD;gBACjD,6DAA6D;gBAC7D,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YACD,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import type { StateMetadataConstraint } from '@metamask/base-controller';\nimport { Messenger } from '@metamask/messenger';\nimport { hasProperty } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization';\nimport { initialize } from './initialization';\nimport { WalletOptions } from './types';\n\nexport class Wallet {\n // TODO: Expand default types when passing additionalConfigurations.\n readonly #messenger: RootMessenger<DefaultActions, DefaultEvents>;\n\n readonly #instances: DefaultInstances;\n\n readonly #controllerMetadata: Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n >;\n\n #destroyed = false;\n\n constructor(options: WalletOptions) {\n this.#messenger = new Messenger({\n namespace: 'Wallet',\n });\n\n this.#instances = initialize({\n options,\n messenger: this.#messenger,\n });\n\n this.#controllerMetadata = Object.fromEntries(\n Object.entries(this.#instances)\n .filter(([_, instance]) => hasProperty(instance, 'metadata'))\n .map(([name, instance]) => [name, instance.metadata]),\n );\n }\n\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n totalState[name] = instance.state ?? null;\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n async destroy(): Promise<void> {\n if (this.#destroyed) {\n return;\n }\n\n this.#destroyed = true;\n\n await Promise.allSettled(\n Object.values(this.#instances).map(async (instance) => {\n // @ts-expect-error Accessing protected property.\n if (typeof instance.destroy === 'function') {\n // @ts-expect-error Accessing protected property.\n // eslint-disable-next-line @typescript-eslint/await-thenable\n return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n\n this.messenger.publish('Wallet:destroyed');\n }\n}\n"]}
1
+ {"version":3,"file":"Wallet.mjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,EAAE,WAAW,EAAE,wBAAwB;AAS9C,OAAO,EAAE,UAAU,EAAE,mCAAyB;AAG9C,MAAM,OAAO,MAAM;IAYjB,YAAY,OAAsB;QAXlC,oEAAoE;QAC3D,oCAAyD;QAEzD,oCAA6B;QAE7B,6CAEP;QAEF,4BAAa,KAAK,EAAC;QAGjB,uBAAA,IAAI,qBAAc,IAAI,SAAS,CAAC;YAC9B,SAAS,EAAE,QAAQ;SACpB,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,qBAAc,UAAU,CAAC;YAC3B,OAAO;YACP,SAAS,EAAE,uBAAA,IAAI,yBAAW;SAC3B,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,8BAAuB,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACxD,MAAA,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,OAAO,uBAAA,IAAI,yBAAW,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;YAC1C,OAAO,UAAU,CAAC;QACpB,CAAC,EACD,EAAE,CACa,CAAC;IACpB,CAAC;IAED,IAAI,kBAAkB;QAGpB,OAAO,uBAAA,IAAI,kCAAoB,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAA4B;QACtC,OAAO,uBAAA,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,uBAAA,IAAI,yBAAW,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,uBAAA,IAAI,qBAAc,IAAI,MAAA,CAAC;QAEvB,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,yBAAW,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpD,iDAAiD;YACjD,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3C,iDAAiD;gBACjD,6DAA6D;gBAC7D,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YACD,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import type { StateMetadataConstraint } from '@metamask/base-controller';\nimport { Messenger } from '@metamask/messenger';\nimport { hasProperty } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization';\nimport { initialize } from './initialization';\nimport { WalletOptions } from './types';\n\nexport class Wallet {\n // TODO: Expand default types when passing additionalConfigurations.\n readonly #messenger: RootMessenger<DefaultActions, DefaultEvents>;\n\n readonly #instances: DefaultInstances;\n\n readonly #controllerMetadata: Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n >;\n\n #destroyed = false;\n\n constructor(options: WalletOptions) {\n this.#messenger = new Messenger({\n namespace: 'Wallet',\n });\n\n this.#instances = initialize({\n options,\n messenger: this.#messenger,\n });\n\n this.#controllerMetadata = Object.fromEntries(\n Object.entries(this.#instances)\n .filter(([_, instance]) => hasProperty(instance, 'metadata'))\n .map(([name, instance]) => [name, instance.metadata]),\n );\n }\n\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n totalState[name] = instance.state ?? null;\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n /**\n * Get an instantiated controller or service.\n * \n * @param name - The name.\n * @returns - The instance.\n * @deprecated - Please use the messenger instead of direct access.\n */\n getInstance(name: keyof DefaultInstances) {\n return this.#instances[name];\n }\n\n async destroy(): Promise<void> {\n if (this.#destroyed) {\n return;\n }\n\n this.#destroyed = true;\n\n await Promise.allSettled(\n Object.values(this.#instances).map(async (instance) => {\n // @ts-expect-error Accessing protected property.\n if (typeof instance.destroy === 'function') {\n // @ts-expect-error Accessing protected property.\n // eslint-disable-next-line @typescript-eslint/await-thenable\n return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n\n this.messenger.publish('Wallet:destroyed');\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/wallet",
3
- "version": "0.0.0-preview-598dbe642",
3
+ "version": "0.0.0-preview-ea54cecca",
4
4
  "description": "Provides a shared framework for building MetaMask wallets",
5
5
  "keywords": [
6
6
  "Ethereum",