@metamask/wallet 3.0.0 → 5.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 (96) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/dist/Wallet.cjs +13 -0
  3. package/dist/Wallet.cjs.map +1 -1
  4. package/dist/Wallet.d.cts +6 -0
  5. package/dist/Wallet.d.cts.map +1 -1
  6. package/dist/Wallet.d.mts +6 -0
  7. package/dist/Wallet.d.mts.map +1 -1
  8. package/dist/Wallet.mjs +13 -0
  9. package/dist/Wallet.mjs.map +1 -1
  10. package/dist/index.cjs +3 -1
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +1 -0
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +1 -0
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -0
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/initialization/instances/accounts-controller/accounts-controller.cjs +37 -0
  19. package/dist/initialization/instances/accounts-controller/accounts-controller.cjs.map +1 -0
  20. package/dist/initialization/instances/accounts-controller/accounts-controller.d.cts +4 -0
  21. package/dist/initialization/instances/accounts-controller/accounts-controller.d.cts.map +1 -0
  22. package/dist/initialization/instances/accounts-controller/accounts-controller.d.mts +4 -0
  23. package/dist/initialization/instances/accounts-controller/accounts-controller.d.mts.map +1 -0
  24. package/dist/initialization/instances/accounts-controller/accounts-controller.mjs +34 -0
  25. package/dist/initialization/instances/accounts-controller/accounts-controller.mjs.map +1 -0
  26. package/dist/initialization/instances/connectivity-controller/always-online-adapter.cjs +40 -0
  27. package/dist/initialization/instances/connectivity-controller/always-online-adapter.cjs.map +1 -0
  28. package/dist/initialization/instances/connectivity-controller/always-online-adapter.d.cts +30 -0
  29. package/dist/initialization/instances/connectivity-controller/always-online-adapter.d.cts.map +1 -0
  30. package/dist/initialization/instances/connectivity-controller/always-online-adapter.d.mts +30 -0
  31. package/dist/initialization/instances/connectivity-controller/always-online-adapter.d.mts.map +1 -0
  32. package/dist/initialization/instances/connectivity-controller/always-online-adapter.mjs +36 -0
  33. package/dist/initialization/instances/connectivity-controller/always-online-adapter.mjs.map +1 -0
  34. package/dist/initialization/instances/connectivity-controller/connectivity-controller.cjs +17 -0
  35. package/dist/initialization/instances/connectivity-controller/connectivity-controller.cjs.map +1 -0
  36. package/dist/initialization/instances/connectivity-controller/connectivity-controller.d.cts +4 -0
  37. package/dist/initialization/instances/connectivity-controller/connectivity-controller.d.cts.map +1 -0
  38. package/dist/initialization/instances/connectivity-controller/connectivity-controller.d.mts +4 -0
  39. package/dist/initialization/instances/connectivity-controller/connectivity-controller.d.mts.map +1 -0
  40. package/dist/initialization/instances/connectivity-controller/connectivity-controller.mjs +14 -0
  41. package/dist/initialization/instances/connectivity-controller/connectivity-controller.mjs.map +1 -0
  42. package/dist/initialization/instances/connectivity-controller/types.cjs +3 -0
  43. package/dist/initialization/instances/connectivity-controller/types.cjs.map +1 -0
  44. package/dist/initialization/instances/connectivity-controller/types.d.cts +13 -0
  45. package/dist/initialization/instances/connectivity-controller/types.d.cts.map +1 -0
  46. package/dist/initialization/instances/connectivity-controller/types.d.mts +13 -0
  47. package/dist/initialization/instances/connectivity-controller/types.d.mts.map +1 -0
  48. package/dist/initialization/instances/connectivity-controller/types.mjs +2 -0
  49. package/dist/initialization/instances/connectivity-controller/types.mjs.map +1 -0
  50. package/dist/initialization/instances/index.cjs +9 -1
  51. package/dist/initialization/instances/index.cjs.map +1 -1
  52. package/dist/initialization/instances/index.d.cts +4 -0
  53. package/dist/initialization/instances/index.d.cts.map +1 -1
  54. package/dist/initialization/instances/index.d.mts +4 -0
  55. package/dist/initialization/instances/index.d.mts.map +1 -1
  56. package/dist/initialization/instances/index.mjs +4 -0
  57. package/dist/initialization/instances/index.mjs.map +1 -1
  58. package/dist/initialization/instances/network-controller/network-controller.cjs +33 -0
  59. package/dist/initialization/instances/network-controller/network-controller.cjs.map +1 -0
  60. package/dist/initialization/instances/network-controller/network-controller.d.cts +4 -0
  61. package/dist/initialization/instances/network-controller/network-controller.d.cts.map +1 -0
  62. package/dist/initialization/instances/network-controller/network-controller.d.mts +4 -0
  63. package/dist/initialization/instances/network-controller/network-controller.d.mts.map +1 -0
  64. package/dist/initialization/instances/network-controller/network-controller.mjs +30 -0
  65. package/dist/initialization/instances/network-controller/network-controller.mjs.map +1 -0
  66. package/dist/initialization/instances/network-controller/types.cjs +3 -0
  67. package/dist/initialization/instances/network-controller/types.cjs.map +1 -0
  68. package/dist/initialization/instances/network-controller/types.d.cts +15 -0
  69. package/dist/initialization/instances/network-controller/types.d.cts.map +1 -0
  70. package/dist/initialization/instances/network-controller/types.d.mts +15 -0
  71. package/dist/initialization/instances/network-controller/types.d.mts.map +1 -0
  72. package/dist/initialization/instances/network-controller/types.mjs +2 -0
  73. package/dist/initialization/instances/network-controller/types.mjs.map +1 -0
  74. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.cjs +23 -0
  75. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.cjs.map +1 -0
  76. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.cts +4 -0
  77. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.cts.map +1 -0
  78. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.mts +4 -0
  79. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.mts.map +1 -0
  80. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.mjs +20 -0
  81. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.mjs.map +1 -0
  82. package/dist/initialization/instances/remote-feature-flag-controller/types.cjs +3 -0
  83. package/dist/initialization/instances/remote-feature-flag-controller/types.cjs.map +1 -0
  84. package/dist/initialization/instances/remote-feature-flag-controller/types.d.cts +43 -0
  85. package/dist/initialization/instances/remote-feature-flag-controller/types.d.cts.map +1 -0
  86. package/dist/initialization/instances/remote-feature-flag-controller/types.d.mts +43 -0
  87. package/dist/initialization/instances/remote-feature-flag-controller/types.d.mts.map +1 -0
  88. package/dist/initialization/instances/remote-feature-flag-controller/types.mjs +2 -0
  89. package/dist/initialization/instances/remote-feature-flag-controller/types.mjs.map +1 -0
  90. package/dist/types.cjs.map +1 -1
  91. package/dist/types.d.cts +7 -1
  92. package/dist/types.d.cts.map +1 -1
  93. package/dist/types.d.mts +7 -1
  94. package/dist/types.d.mts.map +1 -1
  95. package/dist/types.mjs.map +1 -1
  96. package/package.json +8 -4
package/CHANGELOG.md CHANGED
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [5.0.0]
11
+
12
+ ### Added
13
+
14
+ - **BREAKING:** Add `NetworkController` initialization ([#9001](https://github.com/MetaMask/core/pull/9001))
15
+ - Passing `instanceOptions.networkController.infuraProjectId` is now required.
16
+ - Add the `Wallet.init` function which calls `init` on required instances ([#9001](https://github.com/MetaMask/core/pull/9001))
17
+
18
+ ### Changed
19
+
20
+ - Bump `@metamask/accounts-controller` from `^39.0.2` to `^39.0.3` ([#9231](https://github.com/MetaMask/core/pull/9231))
21
+
22
+ ## [4.0.0]
23
+
24
+ ### Added
25
+
26
+ - **BREAKING:** Add `AccountsController` and `ConnectivityController` as default initialized controllers ([#8924](https://github.com/MetaMask/core/pull/8924))
27
+ - Passing `instanceOptions.connectivityController.connectivityAdapter` is now required.
28
+ - Export `AlwaysOnlineAdapter` from the package root for environments without a platform-specific network API (e.g. Node/tests).
29
+ - **BREAKING:** Wire `RemoteFeatureFlagController` into the default wallet initialization ([#8969](https://github.com/MetaMask/core/pull/8969))
30
+ - The default `Wallet` now constructs a `RemoteFeatureFlagController` and registers its `RemoteFeatureFlagController:*` messenger actions. Consumers that pass their own `messenger` and already wire a `RemoteFeatureFlagController` must remove their own before upgrading, or the duplicate registration will collide.
31
+ - Adds a required `remoteFeatureFlagController` slot to `instanceOptions`. `clientConfigApiService` is required (each client injects a `ClientConfigApiService` configured for its own client type, distribution, and environment); `getMetaMetricsId`, `clientVersion`, `prevClientVersion`, `fetchInterval`, and `disabled` are optional. `prevClientVersion` lets consumers trigger feature-flag cache invalidation when the client version changes between sessions.
32
+
33
+ ### Changed
34
+
35
+ - Bump `@metamask/utils` from `^11.9.0` to `^11.11.0` ([#9074](https://github.com/MetaMask/core/pull/9074))
36
+ - Bump `@metamask/controller-utils` from `^12.1.1` to `^12.3.0` ([#9083](https://github.com/MetaMask/core/pull/9083), [#9218](https://github.com/MetaMask/core/pull/9218))
37
+ - Bump `@metamask/keyring-controller` from `^27.0.0` to `^27.1.0` ([#9129](https://github.com/MetaMask/core/pull/9129))
38
+ - Bump `@metamask/accounts-controller` from `^39.0.1` to `^39.0.2` ([#9218](https://github.com/MetaMask/core/pull/9218))
39
+
10
40
  ## [3.0.0]
11
41
 
12
42
  ### Added
@@ -43,7 +73,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
43
73
 
44
74
  - Initial release ([#8838](https://github.com/MetaMask/core/pull/8838))
45
75
 
46
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/wallet@3.0.0...HEAD
76
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/wallet@5.0.0...HEAD
77
+ [5.0.0]: https://github.com/MetaMask/core/compare/@metamask/wallet@4.0.0...@metamask/wallet@5.0.0
78
+ [4.0.0]: https://github.com/MetaMask/core/compare/@metamask/wallet@3.0.0...@metamask/wallet@4.0.0
47
79
  [3.0.0]: https://github.com/MetaMask/core/compare/@metamask/wallet@2.0.0...@metamask/wallet@3.0.0
48
80
  [2.0.0]: https://github.com/MetaMask/core/compare/@metamask/wallet@1.0.1...@metamask/wallet@2.0.0
49
81
  [1.0.1]: https://github.com/MetaMask/core/compare/@metamask/wallet@1.0.0...@metamask/wallet@1.0.1
package/dist/Wallet.cjs CHANGED
@@ -93,6 +93,19 @@ class Wallet {
93
93
  getInstance(name) {
94
94
  return __classPrivateFieldGet(this, _Wallet_instances, "f")[name];
95
95
  }
96
+ /**
97
+ * Complete additional initialization of instantiated controllers or services after instantiating `Wallet`.
98
+ *
99
+ * @returns The results of all initialization calls.
100
+ */
101
+ init() {
102
+ return Promise.allSettled(Object.values(__classPrivateFieldGet(this, _Wallet_instances, "f"))
103
+ .filter((instance) =>
104
+ // We do actually want to check the prototype here.
105
+ // eslint-disable-next-line no-restricted-syntax
106
+ 'init' in instance && typeof instance.init === 'function')
107
+ .map(async (instance) => instance.init()));
108
+ }
96
109
  /**
97
110
  * Destroy the wallet instance.
98
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.cjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAgD;AAChD,2CAA8C;AAS9C,wEAA6D;AAG7D,MAAa,MAAM;IAYjB;;;;;;;;;;OAUG;IACH,YAAY,OAAsB;QAtBlC,oEAAoE;QAC3D,oCAAyD;QAEzD,oCAA6B;QAE7B,6CAEP;QAEF,8BAAe,KAAK,EAAC;QAcnB,uBAAA,IAAI,qBACF,OAAO,CAAC,SAAS;YACjB,IAAI,qBAAS,CAAC;gBACZ,SAAS,EAAE,MAAM;aAClB,CAAC,MAAA,CAAC;QAEL,uBAAA,IAAI,qBAAc,IAAA,2BAAU,EAAC;YAC3B,GAAG,OAAO;YACV,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;YACzB,IAAI;YACH,QAAkD,CAAC,QAAQ;SAC7D,CAAC,CACL,MAAA,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,uBAAA,IAAI,yBAAW,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,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,mDAAmD;YACnD,gDAAgD;YAChD,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;YACpC,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,EACD,EAAE,CACa,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QAGpB,OAAO,uBAAA,IAAI,kCAAoB,CAAC;IAClC,CAAC;IAED,IAAI,kBAAkB,CAAC,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAUD;;;;;;OAMG;IACH,WAAW,CACT,IAAY;QAEZ,OAAO,uBAAA,IAAI,yBAAW,CAAC,IAA8B,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,uBAAA,IAAI,2BAAa,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,uBAAA,IAAI,uBAAgB,IAAI,MAAA,CAAC;QAEzB,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,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YACD,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AArID,wBAqIC","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/defaults';\nimport { initialize } from './initialization/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 #isDestroyed = false;\n\n /**\n * Creates a `Wallet` instance, initializing all instances as specified by the passed options.\n *\n * @param options - Options bag.\n * @param options.messenger - An optional messenger to override the default one.\n * @param options.state - An optional state blob.\n * @param options.initializationConfigurations - An optional list of additional initialization configurations\n * required beyond the ones included by default.\n * @param options.instanceOptions - An optional object containing options that should be passed\n * to specific instances for additional customization.\n */\n constructor(options: WalletOptions) {\n this.#messenger =\n options.messenger ??\n new Messenger({\n namespace: 'Root',\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]) => [\n name,\n (instance as { metadata: StateMetadataConstraint }).metadata,\n ]),\n );\n }\n\n /**\n * @returns The root messenger of the wallet.\n */\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n set messenger(_) {\n throw new Error('The messenger cannot be directly mutated.');\n }\n\n /**\n * @returns The combined state of the wallet.\n */\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n // We do actually want to check the prototype here.\n // eslint-disable-next-line no-restricted-syntax\n if ('state' in instance && instance.state) {\n totalState[name] = instance.state;\n }\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n set state(_) {\n throw new Error('Wallet state cannot be directly mutated.');\n }\n\n /**\n * @returns The controller metadata; containing per-controller information about what properties to persist etc.\n */\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n set controllerMetadata(_) {\n throw new Error('The controller metadata cannot be directly mutated.');\n }\n\n getInstance<Name extends keyof DefaultInstances>(\n name: Name,\n ): DefaultInstances[Name];\n\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined;\n\n /**\n * Get an instantiated controller or service.\n *\n * @param name - The name.\n * @returns The instance, if it exists.\n * @deprecated - Please use the messenger instead of direct access.\n */\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined {\n return this.#instances[name as keyof DefaultInstances];\n }\n\n /**\n * Destroy the wallet instance.\n */\n async destroy(): Promise<void> {\n if (this.#isDestroyed) {\n return;\n }\n\n this.#isDestroyed = 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 return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"Wallet.cjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"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","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/defaults';\nimport { initialize } from './initialization/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 #isDestroyed = false;\n\n /**\n * Creates a `Wallet` instance, initializing all instances as specified by the passed options.\n *\n * @param options - Options bag.\n * @param options.messenger - An optional messenger to override the default one.\n * @param options.state - An optional state blob.\n * @param options.initializationConfigurations - An optional list of additional initialization configurations\n * required beyond the ones included by default.\n * @param options.instanceOptions - An optional object containing options that should be passed\n * to specific instances for additional customization.\n */\n constructor(options: WalletOptions) {\n this.#messenger =\n options.messenger ??\n new Messenger({\n namespace: 'Root',\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]) => [\n name,\n (instance as { metadata: StateMetadataConstraint }).metadata,\n ]),\n );\n }\n\n /**\n * @returns The root messenger of the wallet.\n */\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n set messenger(_) {\n throw new Error('The messenger cannot be directly mutated.');\n }\n\n /**\n * @returns The combined state of the wallet.\n */\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n // We do actually want to check the prototype here.\n // eslint-disable-next-line no-restricted-syntax\n if ('state' in instance && instance.state) {\n totalState[name] = instance.state;\n }\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n set state(_) {\n throw new Error('Wallet state cannot be directly mutated.');\n }\n\n /**\n * @returns The controller metadata; containing per-controller information about what properties to persist etc.\n */\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n set controllerMetadata(_) {\n throw new Error('The controller metadata cannot be directly mutated.');\n }\n\n getInstance<Name extends keyof DefaultInstances>(\n name: Name,\n ): DefaultInstances[Name];\n\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined;\n\n /**\n * Get an instantiated controller or service.\n *\n * @param name - The name.\n * @returns The instance, if it exists.\n * @deprecated - Please use the messenger instead of direct access.\n */\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined {\n return this.#instances[name as keyof DefaultInstances];\n }\n\n /**\n * Complete additional initialization of instantiated controllers or services after instantiating `Wallet`.\n *\n * @returns The results of all initialization calls.\n */\n init(): Promise<PromiseSettledResult<unknown>[]> {\n return Promise.allSettled(\n Object.values(this.#instances)\n .filter(\n (instance): instance is Extract<typeof instance, { init: unknown }> =>\n // We do actually want to check the prototype here.\n // eslint-disable-next-line no-restricted-syntax\n 'init' in instance && typeof instance.init === 'function',\n )\n .map(async (instance) => instance.init()),\n );\n }\n\n /**\n * Destroy the wallet instance.\n */\n async destroy(): Promise<void> {\n if (this.#isDestroyed) {\n return;\n }\n\n this.#isDestroyed = 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 return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n }\n}\n"]}
package/dist/Wallet.d.cts CHANGED
@@ -32,6 +32,12 @@ export declare class Wallet {
32
32
  set controllerMetadata(_: Readonly<Record<string, Readonly<StateMetadataConstraint>>>);
33
33
  getInstance<Name extends keyof DefaultInstances>(name: Name): DefaultInstances[Name];
34
34
  getInstance(name: string): DefaultInstances[keyof DefaultInstances] | undefined;
35
+ /**
36
+ * Complete additional initialization of instantiated controllers or services after instantiating `Wallet`.
37
+ *
38
+ * @returns The results of all initialization calls.
39
+ */
40
+ init(): Promise<PromiseSettledResult<unknown>[]>;
35
41
  /**
36
42
  * Destroy the wallet instance.
37
43
  */
@@ -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,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,sCAAkC;AAEnC,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;IAYjB;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,aAAa;IAsBlC;;OAEG;IACH,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,SAAS,CAAC,CAAC,EAJE,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAIvD,EAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,YAAY,CAYxB;IAED,IAAI,KAAK,CAAC,CAAC,EAdE,YAcF,EAEV;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAED,IAAI,kBAAkB,CAAC,CAAC,EANE,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAK3B,EAEvB;IAED,WAAW,CAAC,IAAI,SAAS,MAAM,gBAAgB,EAC7C,IAAI,EAAE,IAAI,GACT,gBAAgB,CAAC,IAAI,CAAC;IAEzB,WAAW,CACT,IAAI,EAAE,MAAM,GACX,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,GAAG,SAAS;IAevD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB/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,sCAAkC;AAEnC,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;IAYjB;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,aAAa;IAsBlC;;OAEG;IACH,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,SAAS,CAAC,CAAC,EAJE,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAIvD,EAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,YAAY,CAYxB;IAED,IAAI,KAAK,CAAC,CAAC,EAdE,YAcF,EAEV;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAED,IAAI,kBAAkB,CAAC,CAAC,EANE,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAK3B,EAEvB;IAED,WAAW,CAAC,IAAI,SAAS,MAAM,gBAAgB,EAC7C,IAAI,EAAE,IAAI,GACT,gBAAgB,CAAC,IAAI,CAAC;IAEzB,WAAW,CACT,IAAI,EAAE,MAAM,GACX,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,GAAG,SAAS;IAevD;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAahD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB/B"}
package/dist/Wallet.d.mts CHANGED
@@ -32,6 +32,12 @@ export declare class Wallet {
32
32
  set controllerMetadata(_: Readonly<Record<string, Readonly<StateMetadataConstraint>>>);
33
33
  getInstance<Name extends keyof DefaultInstances>(name: Name): DefaultInstances[Name];
34
34
  getInstance(name: string): DefaultInstances[keyof DefaultInstances] | undefined;
35
+ /**
36
+ * Complete additional initialization of instantiated controllers or services after instantiating `Wallet`.
37
+ *
38
+ * @returns The results of all initialization calls.
39
+ */
40
+ init(): Promise<PromiseSettledResult<unknown>[]>;
35
41
  /**
36
42
  * Destroy the wallet instance.
37
43
  */
@@ -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,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,sCAAkC;AAEnC,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;IAYjB;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,aAAa;IAsBlC;;OAEG;IACH,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,SAAS,CAAC,CAAC,EAJE,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAIvD,EAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,YAAY,CAYxB;IAED,IAAI,KAAK,CAAC,CAAC,EAdE,YAcF,EAEV;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAED,IAAI,kBAAkB,CAAC,CAAC,EANE,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAK3B,EAEvB;IAED,WAAW,CAAC,IAAI,SAAS,MAAM,gBAAgB,EAC7C,IAAI,EAAE,IAAI,GACT,gBAAgB,CAAC,IAAI,CAAC;IAEzB,WAAW,CACT,IAAI,EAAE,MAAM,GACX,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,GAAG,SAAS;IAevD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB/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,sCAAkC;AAEnC,OAAO,EAAE,aAAa,EAAE,oBAAgB;AAExC,qBAAa,MAAM;;IAYjB;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,aAAa;IAsBlC;;OAEG;IACH,IAAI,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAEtE;IAED,IAAI,SAAS,CAAC,CAAC,EAJE,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAIvD,EAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,YAAY,CAYxB;IAED,IAAI,KAAK,CAAC,CAAC,EAdE,YAcF,EAEV;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAClD,CAEA;IAED,IAAI,kBAAkB,CAAC,CAAC,EANE,QAAQ,CAChC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAK3B,EAEvB;IAED,WAAW,CAAC,IAAI,SAAS,MAAM,gBAAgB,EAC7C,IAAI,EAAE,IAAI,GACT,gBAAgB,CAAC,IAAI,CAAC;IAEzB,WAAW,CACT,IAAI,EAAE,MAAM,GACX,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,GAAG,SAAS;IAevD;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAahD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB/B"}
package/dist/Wallet.mjs CHANGED
@@ -90,6 +90,19 @@ export class Wallet {
90
90
  getInstance(name) {
91
91
  return __classPrivateFieldGet(this, _Wallet_instances, "f")[name];
92
92
  }
93
+ /**
94
+ * Complete additional initialization of instantiated controllers or services after instantiating `Wallet`.
95
+ *
96
+ * @returns The results of all initialization calls.
97
+ */
98
+ init() {
99
+ return Promise.allSettled(Object.values(__classPrivateFieldGet(this, _Wallet_instances, "f"))
100
+ .filter((instance) =>
101
+ // We do actually want to check the prototype here.
102
+ // eslint-disable-next-line no-restricted-syntax
103
+ 'init' in instance && typeof instance.init === 'function')
104
+ .map(async (instance) => instance.init()));
105
+ }
93
106
  /**
94
107
  * Destroy the wallet instance.
95
108
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.mjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"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","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/defaults';\nimport { initialize } from './initialization/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 #isDestroyed = false;\n\n /**\n * Creates a `Wallet` instance, initializing all instances as specified by the passed options.\n *\n * @param options - Options bag.\n * @param options.messenger - An optional messenger to override the default one.\n * @param options.state - An optional state blob.\n * @param options.initializationConfigurations - An optional list of additional initialization configurations\n * required beyond the ones included by default.\n * @param options.instanceOptions - An optional object containing options that should be passed\n * to specific instances for additional customization.\n */\n constructor(options: WalletOptions) {\n this.#messenger =\n options.messenger ??\n new Messenger({\n namespace: 'Root',\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]) => [\n name,\n (instance as { metadata: StateMetadataConstraint }).metadata,\n ]),\n );\n }\n\n /**\n * @returns The root messenger of the wallet.\n */\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n set messenger(_) {\n throw new Error('The messenger cannot be directly mutated.');\n }\n\n /**\n * @returns The combined state of the wallet.\n */\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n // We do actually want to check the prototype here.\n // eslint-disable-next-line no-restricted-syntax\n if ('state' in instance && instance.state) {\n totalState[name] = instance.state;\n }\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n set state(_) {\n throw new Error('Wallet state cannot be directly mutated.');\n }\n\n /**\n * @returns The controller metadata; containing per-controller information about what properties to persist etc.\n */\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n set controllerMetadata(_) {\n throw new Error('The controller metadata cannot be directly mutated.');\n }\n\n getInstance<Name extends keyof DefaultInstances>(\n name: Name,\n ): DefaultInstances[Name];\n\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined;\n\n /**\n * Get an instantiated controller or service.\n *\n * @param name - The name.\n * @returns The instance, if it exists.\n * @deprecated - Please use the messenger instead of direct access.\n */\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined {\n return this.#instances[name as keyof DefaultInstances];\n }\n\n /**\n * Destroy the wallet instance.\n */\n async destroy(): Promise<void> {\n if (this.#isDestroyed) {\n return;\n }\n\n this.#isDestroyed = 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 return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"Wallet.mjs","sourceRoot":"","sources":["../src/Wallet.ts"],"names":[],"mappings":"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","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/defaults';\nimport { initialize } from './initialization/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 #isDestroyed = false;\n\n /**\n * Creates a `Wallet` instance, initializing all instances as specified by the passed options.\n *\n * @param options - Options bag.\n * @param options.messenger - An optional messenger to override the default one.\n * @param options.state - An optional state blob.\n * @param options.initializationConfigurations - An optional list of additional initialization configurations\n * required beyond the ones included by default.\n * @param options.instanceOptions - An optional object containing options that should be passed\n * to specific instances for additional customization.\n */\n constructor(options: WalletOptions) {\n this.#messenger =\n options.messenger ??\n new Messenger({\n namespace: 'Root',\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]) => [\n name,\n (instance as { metadata: StateMetadataConstraint }).metadata,\n ]),\n );\n }\n\n /**\n * @returns The root messenger of the wallet.\n */\n get messenger(): Readonly<RootMessenger<DefaultActions, DefaultEvents>> {\n return this.#messenger;\n }\n\n set messenger(_) {\n throw new Error('The messenger cannot be directly mutated.');\n }\n\n /**\n * @returns The combined state of the wallet.\n */\n get state(): DefaultState {\n return Object.entries(this.#instances).reduce<Record<string, unknown>>(\n (totalState, [name, instance]) => {\n // We do actually want to check the prototype here.\n // eslint-disable-next-line no-restricted-syntax\n if ('state' in instance && instance.state) {\n totalState[name] = instance.state;\n }\n return totalState;\n },\n {},\n ) as DefaultState;\n }\n\n set state(_) {\n throw new Error('Wallet state cannot be directly mutated.');\n }\n\n /**\n * @returns The controller metadata; containing per-controller information about what properties to persist etc.\n */\n get controllerMetadata(): Readonly<\n Record<string, Readonly<StateMetadataConstraint>>\n > {\n return this.#controllerMetadata;\n }\n\n set controllerMetadata(_) {\n throw new Error('The controller metadata cannot be directly mutated.');\n }\n\n getInstance<Name extends keyof DefaultInstances>(\n name: Name,\n ): DefaultInstances[Name];\n\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined;\n\n /**\n * Get an instantiated controller or service.\n *\n * @param name - The name.\n * @returns The instance, if it exists.\n * @deprecated - Please use the messenger instead of direct access.\n */\n getInstance(\n name: string,\n ): DefaultInstances[keyof DefaultInstances] | undefined {\n return this.#instances[name as keyof DefaultInstances];\n }\n\n /**\n * Complete additional initialization of instantiated controllers or services after instantiating `Wallet`.\n *\n * @returns The results of all initialization calls.\n */\n init(): Promise<PromiseSettledResult<unknown>[]> {\n return Promise.allSettled(\n Object.values(this.#instances)\n .filter(\n (instance): instance is Extract<typeof instance, { init: unknown }> =>\n // We do actually want to check the prototype here.\n // eslint-disable-next-line no-restricted-syntax\n 'init' in instance && typeof instance.init === 'function',\n )\n .map(async (instance) => instance.init()),\n );\n }\n\n /**\n * Destroy the wallet instance.\n */\n async destroy(): Promise<void> {\n if (this.#isDestroyed) {\n return;\n }\n\n this.#isDestroyed = 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 return await instance.destroy();\n }\n /* istanbul ignore next */\n return undefined;\n }),\n );\n }\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.importSecretRecoveryPhrase = exports.Wallet = void 0;
3
+ exports.importSecretRecoveryPhrase = exports.AlwaysOnlineAdapter = exports.Wallet = void 0;
4
4
  var Wallet_1 = require("./Wallet.cjs");
5
5
  Object.defineProperty(exports, "Wallet", { enumerable: true, get: function () { return Wallet_1.Wallet; } });
6
+ var always_online_adapter_1 = require("./initialization/instances/connectivity-controller/always-online-adapter.cjs");
7
+ Object.defineProperty(exports, "AlwaysOnlineAdapter", { enumerable: true, get: function () { return always_online_adapter_1.AlwaysOnlineAdapter; } });
6
8
  var utilities_1 = require("./utilities.cjs");
7
9
  Object.defineProperty(exports, "importSecretRecoveryPhrase", { enumerable: true, get: function () { return utilities_1.importSecretRecoveryPhrase; } });
8
10
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,6CAAyD;AAAhD,uHAAA,0BAA0B,OAAA","sourcesContent":["export { Wallet } from './Wallet';\nexport { importSecretRecoveryPhrase } from './utilities';\nexport type { WalletOptions } from './types';\nexport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization/defaults';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,sHAA+G;AAAtG,4HAAA,mBAAmB,OAAA;AAC5B,6CAAyD;AAAhD,uHAAA,0BAA0B,OAAA","sourcesContent":["export { Wallet } from './Wallet';\nexport { AlwaysOnlineAdapter } from './initialization/instances/connectivity-controller/always-online-adapter';\nexport { importSecretRecoveryPhrase } from './utilities';\nexport type { WalletOptions } from './types';\nexport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization/defaults';\n"]}
package/dist/index.d.cts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Wallet } from "./Wallet.cjs";
2
+ export { AlwaysOnlineAdapter } from "./initialization/instances/connectivity-controller/always-online-adapter.cjs";
2
3
  export { importSecretRecoveryPhrase } from "./utilities.cjs";
3
4
  export type { WalletOptions } from "./types.cjs";
4
5
  export type { DefaultActions, DefaultEvents, DefaultInstances, DefaultState, RootMessenger, } from "./initialization/defaults.cjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,0BAA0B,EAAE,wBAAoB;AACzD,YAAY,EAAE,aAAa,EAAE,oBAAgB;AAC7C,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,sCAAkC"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,mBAAmB,EAAE,qFAAiF;AAC/G,OAAO,EAAE,0BAA0B,EAAE,wBAAoB;AACzD,YAAY,EAAE,aAAa,EAAE,oBAAgB;AAC7C,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,sCAAkC"}
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Wallet } from "./Wallet.mjs";
2
+ export { AlwaysOnlineAdapter } from "./initialization/instances/connectivity-controller/always-online-adapter.mjs";
2
3
  export { importSecretRecoveryPhrase } from "./utilities.mjs";
3
4
  export type { WalletOptions } from "./types.mjs";
4
5
  export type { DefaultActions, DefaultEvents, DefaultInstances, DefaultState, RootMessenger, } from "./initialization/defaults.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,0BAA0B,EAAE,wBAAoB;AACzD,YAAY,EAAE,aAAa,EAAE,oBAAgB;AAC7C,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,sCAAkC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,mBAAmB,EAAE,qFAAiF;AAC/G,OAAO,EAAE,0BAA0B,EAAE,wBAAoB;AACzD,YAAY,EAAE,aAAa,EAAE,oBAAgB;AAC7C,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,sCAAkC"}
package/dist/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
1
  export { Wallet } from "./Wallet.mjs";
2
+ export { AlwaysOnlineAdapter } from "./initialization/instances/connectivity-controller/always-online-adapter.mjs";
2
3
  export { importSecretRecoveryPhrase } from "./utilities.mjs";
3
4
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,0BAA0B,EAAE,wBAAoB","sourcesContent":["export { Wallet } from './Wallet';\nexport { importSecretRecoveryPhrase } from './utilities';\nexport type { WalletOptions } from './types';\nexport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization/defaults';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,mBAAmB,EAAE,qFAAiF;AAC/G,OAAO,EAAE,0BAA0B,EAAE,wBAAoB","sourcesContent":["export { Wallet } from './Wallet';\nexport { AlwaysOnlineAdapter } from './initialization/instances/connectivity-controller/always-online-adapter';\nexport { importSecretRecoveryPhrase } from './utilities';\nexport type { WalletOptions } from './types';\nexport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n DefaultState,\n RootMessenger,\n} from './initialization/defaults';\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accountsController = void 0;
4
+ const accounts_controller_1 = require("@metamask/accounts-controller");
5
+ const messenger_1 = require("@metamask/messenger");
6
+ exports.accountsController = {
7
+ name: 'AccountsController',
8
+ init: ({ state, messenger }) => new accounts_controller_1.AccountsController({
9
+ state,
10
+ messenger,
11
+ }),
12
+ getMessenger: (parent) => {
13
+ const accountsControllerMessenger = new messenger_1.Messenger({
14
+ namespace: 'AccountsController',
15
+ parent,
16
+ });
17
+ parent.delegate({
18
+ messenger: accountsControllerMessenger,
19
+ actions: [
20
+ 'KeyringController:getState',
21
+ 'KeyringController:getKeyringsByType',
22
+ ],
23
+ events: [
24
+ // AccountsController subscribes to :stateChange internally; the
25
+ // delegation must match until that package migrates to :stateChanged.
26
+ // eslint-disable-next-line no-restricted-syntax
27
+ 'KeyringController:stateChange',
28
+ 'SnapAccountService:accountAssetListUpdated',
29
+ 'SnapAccountService:accountBalancesUpdated',
30
+ 'SnapAccountService:accountTransactionsUpdated',
31
+ 'MultichainNetworkController:networkDidChange',
32
+ ],
33
+ });
34
+ return accountsControllerMessenger;
35
+ },
36
+ };
37
+ //# sourceMappingURL=accounts-controller.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts-controller.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/accounts-controller/accounts-controller.ts"],"names":[],"mappings":";;;AAAA,uEAGuC;AACvC,mDAAgD;AASnC,QAAA,kBAAkB,GAG3B;IACF,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAC7B,IAAI,wCAAkB,CAAC;QACrB,KAAK;QACL,SAAS;KACV,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE;QACrE,MAAM,2BAA2B,GAC/B,IAAI,qBAAS,CAAC;YACZ,SAAS,EAAE,oBAAoB;YAC/B,MAAM;SACP,CAAC,CAAC;QAEL,MAAM,CAAC,QAAQ,CAAC;YACd,SAAS,EAAE,2BAA2B;YACtC,OAAO,EAAE;gBACP,4BAA4B;gBAC5B,qCAAqC;aACtC;YACD,MAAM,EAAE;gBACN,gEAAgE;gBAChE,sEAAsE;gBACtE,gDAAgD;gBAChD,+BAA+B;gBAC/B,4CAA4C;gBAC5C,2CAA2C;gBAC3C,+CAA+C;gBAC/C,8CAA8C;aAC/C;SACF,CAAC,CAAC;QAEH,OAAO,2BAA2B,CAAC;IACrC,CAAC;CACF,CAAC","sourcesContent":["import {\n AccountsController,\n AccountsControllerMessenger,\n} from '@metamask/accounts-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\nexport const accountsController: InitializationConfiguration<\n AccountsController,\n AccountsControllerMessenger\n> = {\n name: 'AccountsController',\n init: ({ state, messenger }) =>\n new AccountsController({\n state,\n messenger,\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) => {\n const accountsControllerMessenger: AccountsControllerMessenger =\n new Messenger({\n namespace: 'AccountsController',\n parent,\n });\n\n parent.delegate({\n messenger: accountsControllerMessenger,\n actions: [\n 'KeyringController:getState',\n 'KeyringController:getKeyringsByType',\n ],\n events: [\n // AccountsController subscribes to :stateChange internally; the\n // delegation must match until that package migrates to :stateChanged.\n // eslint-disable-next-line no-restricted-syntax\n 'KeyringController:stateChange',\n 'SnapAccountService:accountAssetListUpdated',\n 'SnapAccountService:accountBalancesUpdated',\n 'SnapAccountService:accountTransactionsUpdated',\n 'MultichainNetworkController:networkDidChange',\n ],\n });\n\n return accountsControllerMessenger;\n },\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import { AccountsController, AccountsControllerMessenger } from "@metamask/accounts-controller";
2
+ import type { InitializationConfiguration } from "../../types.cjs";
3
+ export declare const accountsController: InitializationConfiguration<AccountsController, AccountsControllerMessenger>;
4
+ //# sourceMappingURL=accounts-controller.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts-controller.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/accounts-controller/accounts-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC5B,sCAAsC;AAQvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,kBAAkB,EAAE,2BAA2B,CAC1D,kBAAkB,EAClB,2BAA2B,CAmC5B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AccountsController, AccountsControllerMessenger } from "@metamask/accounts-controller";
2
+ import type { InitializationConfiguration } from "../../types.mjs";
3
+ export declare const accountsController: InitializationConfiguration<AccountsController, AccountsControllerMessenger>;
4
+ //# sourceMappingURL=accounts-controller.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts-controller.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/accounts-controller/accounts-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC5B,sCAAsC;AAQvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,kBAAkB,EAAE,2BAA2B,CAC1D,kBAAkB,EAClB,2BAA2B,CAmC5B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { AccountsController } from "@metamask/accounts-controller";
2
+ import { Messenger } from "@metamask/messenger";
3
+ export const accountsController = {
4
+ name: 'AccountsController',
5
+ init: ({ state, messenger }) => new AccountsController({
6
+ state,
7
+ messenger,
8
+ }),
9
+ getMessenger: (parent) => {
10
+ const accountsControllerMessenger = new Messenger({
11
+ namespace: 'AccountsController',
12
+ parent,
13
+ });
14
+ parent.delegate({
15
+ messenger: accountsControllerMessenger,
16
+ actions: [
17
+ 'KeyringController:getState',
18
+ 'KeyringController:getKeyringsByType',
19
+ ],
20
+ events: [
21
+ // AccountsController subscribes to :stateChange internally; the
22
+ // delegation must match until that package migrates to :stateChanged.
23
+ // eslint-disable-next-line no-restricted-syntax
24
+ 'KeyringController:stateChange',
25
+ 'SnapAccountService:accountAssetListUpdated',
26
+ 'SnapAccountService:accountBalancesUpdated',
27
+ 'SnapAccountService:accountTransactionsUpdated',
28
+ 'MultichainNetworkController:networkDidChange',
29
+ ],
30
+ });
31
+ return accountsControllerMessenger;
32
+ },
33
+ };
34
+ //# sourceMappingURL=accounts-controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts-controller.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/accounts-controller/accounts-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAEnB,sCAAsC;AACvC,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAShD,MAAM,CAAC,MAAM,kBAAkB,GAG3B;IACF,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAC7B,IAAI,kBAAkB,CAAC;QACrB,KAAK;QACL,SAAS;KACV,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE;QACrE,MAAM,2BAA2B,GAC/B,IAAI,SAAS,CAAC;YACZ,SAAS,EAAE,oBAAoB;YAC/B,MAAM;SACP,CAAC,CAAC;QAEL,MAAM,CAAC,QAAQ,CAAC;YACd,SAAS,EAAE,2BAA2B;YACtC,OAAO,EAAE;gBACP,4BAA4B;gBAC5B,qCAAqC;aACtC;YACD,MAAM,EAAE;gBACN,gEAAgE;gBAChE,sEAAsE;gBACtE,gDAAgD;gBAChD,+BAA+B;gBAC/B,4CAA4C;gBAC5C,2CAA2C;gBAC3C,+CAA+C;gBAC/C,8CAA8C;aAC/C;SACF,CAAC,CAAC;QAEH,OAAO,2BAA2B,CAAC;IACrC,CAAC;CACF,CAAC","sourcesContent":["import {\n AccountsController,\n AccountsControllerMessenger,\n} from '@metamask/accounts-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\nexport const accountsController: InitializationConfiguration<\n AccountsController,\n AccountsControllerMessenger\n> = {\n name: 'AccountsController',\n init: ({ state, messenger }) =>\n new AccountsController({\n state,\n messenger,\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) => {\n const accountsControllerMessenger: AccountsControllerMessenger =\n new Messenger({\n namespace: 'AccountsController',\n parent,\n });\n\n parent.delegate({\n messenger: accountsControllerMessenger,\n actions: [\n 'KeyringController:getState',\n 'KeyringController:getKeyringsByType',\n ],\n events: [\n // AccountsController subscribes to :stateChange internally; the\n // delegation must match until that package migrates to :stateChanged.\n // eslint-disable-next-line no-restricted-syntax\n 'KeyringController:stateChange',\n 'SnapAccountService:accountAssetListUpdated',\n 'SnapAccountService:accountBalancesUpdated',\n 'SnapAccountService:accountTransactionsUpdated',\n 'MultichainNetworkController:networkDidChange',\n ],\n });\n\n return accountsControllerMessenger;\n },\n};\n"]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlwaysOnlineAdapter = void 0;
4
+ const connectivity_controller_1 = require("@metamask/connectivity-controller");
5
+ /**
6
+ * A connectivity adapter that unconditionally reports the device as online.
7
+ *
8
+ * This is a temporary placeholder until a real platform-specific adapter
9
+ * (one that observes actual network events) is injected by the consumer.
10
+ */
11
+ class AlwaysOnlineAdapter {
12
+ /**
13
+ * Returns the current connectivity status.
14
+ *
15
+ * @returns A promise that always resolves to the online status.
16
+ */
17
+ async getStatus() {
18
+ return connectivity_controller_1.CONNECTIVITY_STATUSES.Online;
19
+ }
20
+ /**
21
+ * Registers a callback for connectivity changes.
22
+ *
23
+ * This adapter never changes status, so the callback is never invoked.
24
+ *
25
+ * @param _callback - The callback to register.
26
+ */
27
+ onConnectivityChange(_callback) {
28
+ // no-op
29
+ }
30
+ /**
31
+ * Cleans up any resources held by this adapter.
32
+ *
33
+ * This adapter holds no resources, so this is a no-op.
34
+ */
35
+ destroy() {
36
+ // no-op
37
+ }
38
+ }
39
+ exports.AlwaysOnlineAdapter = AlwaysOnlineAdapter;
40
+ //# sourceMappingURL=always-online-adapter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"always-online-adapter.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/always-online-adapter.ts"],"names":[],"mappings":";;;AAAA,+EAI2C;AAE3C;;;;;GAKG;AACH,MAAa,mBAAmB;IAC9B;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,+CAAqB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,SAA+C;QAClE,QAAQ;IACV,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,QAAQ;IACV,CAAC;CACF;AA7BD,kDA6BC","sourcesContent":["import {\n CONNECTIVITY_STATUSES,\n ConnectivityAdapter,\n ConnectivityStatus,\n} from '@metamask/connectivity-controller';\n\n/**\n * A connectivity adapter that unconditionally reports the device as online.\n *\n * This is a temporary placeholder until a real platform-specific adapter\n * (one that observes actual network events) is injected by the consumer.\n */\nexport class AlwaysOnlineAdapter implements ConnectivityAdapter {\n /**\n * Returns the current connectivity status.\n *\n * @returns A promise that always resolves to the online status.\n */\n async getStatus(): Promise<ConnectivityStatus> {\n return CONNECTIVITY_STATUSES.Online;\n }\n\n /**\n * Registers a callback for connectivity changes.\n *\n * This adapter never changes status, so the callback is never invoked.\n *\n * @param _callback - The callback to register.\n */\n onConnectivityChange(_callback: (status: ConnectivityStatus) => void): void {\n // no-op\n }\n\n /**\n * Cleans up any resources held by this adapter.\n *\n * This adapter holds no resources, so this is a no-op.\n */\n destroy(): void {\n // no-op\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import { ConnectivityAdapter, ConnectivityStatus } from "@metamask/connectivity-controller";
2
+ /**
3
+ * A connectivity adapter that unconditionally reports the device as online.
4
+ *
5
+ * This is a temporary placeholder until a real platform-specific adapter
6
+ * (one that observes actual network events) is injected by the consumer.
7
+ */
8
+ export declare class AlwaysOnlineAdapter implements ConnectivityAdapter {
9
+ /**
10
+ * Returns the current connectivity status.
11
+ *
12
+ * @returns A promise that always resolves to the online status.
13
+ */
14
+ getStatus(): Promise<ConnectivityStatus>;
15
+ /**
16
+ * Registers a callback for connectivity changes.
17
+ *
18
+ * This adapter never changes status, so the callback is never invoked.
19
+ *
20
+ * @param _callback - The callback to register.
21
+ */
22
+ onConnectivityChange(_callback: (status: ConnectivityStatus) => void): void;
23
+ /**
24
+ * Cleans up any resources held by this adapter.
25
+ *
26
+ * This adapter holds no resources, so this is a no-op.
27
+ */
28
+ destroy(): void;
29
+ }
30
+ //# sourceMappingURL=always-online-adapter.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"always-online-adapter.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/always-online-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EACnB,0CAA0C;AAE3C;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,mBAAmB;IAC7D;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI9C;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAI3E;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,30 @@
1
+ import { ConnectivityAdapter, ConnectivityStatus } from "@metamask/connectivity-controller";
2
+ /**
3
+ * A connectivity adapter that unconditionally reports the device as online.
4
+ *
5
+ * This is a temporary placeholder until a real platform-specific adapter
6
+ * (one that observes actual network events) is injected by the consumer.
7
+ */
8
+ export declare class AlwaysOnlineAdapter implements ConnectivityAdapter {
9
+ /**
10
+ * Returns the current connectivity status.
11
+ *
12
+ * @returns A promise that always resolves to the online status.
13
+ */
14
+ getStatus(): Promise<ConnectivityStatus>;
15
+ /**
16
+ * Registers a callback for connectivity changes.
17
+ *
18
+ * This adapter never changes status, so the callback is never invoked.
19
+ *
20
+ * @param _callback - The callback to register.
21
+ */
22
+ onConnectivityChange(_callback: (status: ConnectivityStatus) => void): void;
23
+ /**
24
+ * Cleans up any resources held by this adapter.
25
+ *
26
+ * This adapter holds no resources, so this is a no-op.
27
+ */
28
+ destroy(): void;
29
+ }
30
+ //# sourceMappingURL=always-online-adapter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"always-online-adapter.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/always-online-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EACnB,0CAA0C;AAE3C;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,mBAAmB;IAC7D;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI9C;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAI3E;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,36 @@
1
+ import { CONNECTIVITY_STATUSES } from "@metamask/connectivity-controller";
2
+ /**
3
+ * A connectivity adapter that unconditionally reports the device as online.
4
+ *
5
+ * This is a temporary placeholder until a real platform-specific adapter
6
+ * (one that observes actual network events) is injected by the consumer.
7
+ */
8
+ export class AlwaysOnlineAdapter {
9
+ /**
10
+ * Returns the current connectivity status.
11
+ *
12
+ * @returns A promise that always resolves to the online status.
13
+ */
14
+ async getStatus() {
15
+ return CONNECTIVITY_STATUSES.Online;
16
+ }
17
+ /**
18
+ * Registers a callback for connectivity changes.
19
+ *
20
+ * This adapter never changes status, so the callback is never invoked.
21
+ *
22
+ * @param _callback - The callback to register.
23
+ */
24
+ onConnectivityChange(_callback) {
25
+ // no-op
26
+ }
27
+ /**
28
+ * Cleans up any resources held by this adapter.
29
+ *
30
+ * This adapter holds no resources, so this is a no-op.
31
+ */
32
+ destroy() {
33
+ // no-op
34
+ }
35
+ }
36
+ //# sourceMappingURL=always-online-adapter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"always-online-adapter.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/always-online-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGtB,0CAA0C;AAE3C;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,qBAAqB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,SAA+C;QAClE,QAAQ;IACV,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,QAAQ;IACV,CAAC;CACF","sourcesContent":["import {\n CONNECTIVITY_STATUSES,\n ConnectivityAdapter,\n ConnectivityStatus,\n} from '@metamask/connectivity-controller';\n\n/**\n * A connectivity adapter that unconditionally reports the device as online.\n *\n * This is a temporary placeholder until a real platform-specific adapter\n * (one that observes actual network events) is injected by the consumer.\n */\nexport class AlwaysOnlineAdapter implements ConnectivityAdapter {\n /**\n * Returns the current connectivity status.\n *\n * @returns A promise that always resolves to the online status.\n */\n async getStatus(): Promise<ConnectivityStatus> {\n return CONNECTIVITY_STATUSES.Online;\n }\n\n /**\n * Registers a callback for connectivity changes.\n *\n * This adapter never changes status, so the callback is never invoked.\n *\n * @param _callback - The callback to register.\n */\n onConnectivityChange(_callback: (status: ConnectivityStatus) => void): void {\n // no-op\n }\n\n /**\n * Cleans up any resources held by this adapter.\n *\n * This adapter holds no resources, so this is a no-op.\n */\n destroy(): void {\n // no-op\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.connectivityController = void 0;
4
+ const connectivity_controller_1 = require("@metamask/connectivity-controller");
5
+ const messenger_1 = require("@metamask/messenger");
6
+ exports.connectivityController = {
7
+ name: 'ConnectivityController',
8
+ init: ({ messenger, options }) => new connectivity_controller_1.ConnectivityController({
9
+ messenger,
10
+ connectivityAdapter: options.connectivityAdapter,
11
+ }),
12
+ getMessenger: (parent) => new messenger_1.Messenger({
13
+ namespace: 'ConnectivityController',
14
+ parent,
15
+ }),
16
+ };
17
+ //# sourceMappingURL=connectivity-controller.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-controller.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/connectivity-controller.ts"],"names":[],"mappings":";;;AAAA,+EAG2C;AAC3C,mDAAgD;AASnC,QAAA,sBAAsB,GAG/B;IACF,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/B,IAAI,gDAAsB,CAAC;QACzB,SAAS;QACT,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE,CACrE,IAAI,qBAAS,CAAC;QACZ,SAAS,EAAE,wBAAwB;QACnC,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import {\n ConnectivityController,\n ConnectivityControllerMessenger,\n} from '@metamask/connectivity-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\nexport const connectivityController: InitializationConfiguration<\n ConnectivityController,\n ConnectivityControllerMessenger\n> = {\n name: 'ConnectivityController',\n init: ({ messenger, options }) =>\n new ConnectivityController({\n messenger,\n connectivityAdapter: options.connectivityAdapter,\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) =>\n new Messenger({\n namespace: 'ConnectivityController',\n parent,\n }),\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import { ConnectivityController, ConnectivityControllerMessenger } from "@metamask/connectivity-controller";
2
+ import type { InitializationConfiguration } from "../../types.cjs";
3
+ export declare const connectivityController: InitializationConfiguration<ConnectivityController, ConnectivityControllerMessenger>;
4
+ //# sourceMappingURL=connectivity-controller.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-controller.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/connectivity-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAChC,0CAA0C;AAQ3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,sBAAsB,EAAE,2BAA2B,CAC9D,sBAAsB,EACtB,+BAA+B,CAahC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ConnectivityController, ConnectivityControllerMessenger } from "@metamask/connectivity-controller";
2
+ import type { InitializationConfiguration } from "../../types.mjs";
3
+ export declare const connectivityController: InitializationConfiguration<ConnectivityController, ConnectivityControllerMessenger>;
4
+ //# sourceMappingURL=connectivity-controller.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-controller.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/connectivity-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAChC,0CAA0C;AAQ3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,sBAAsB,EAAE,2BAA2B,CAC9D,sBAAsB,EACtB,+BAA+B,CAahC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ConnectivityController } from "@metamask/connectivity-controller";
2
+ import { Messenger } from "@metamask/messenger";
3
+ export const connectivityController = {
4
+ name: 'ConnectivityController',
5
+ init: ({ messenger, options }) => new ConnectivityController({
6
+ messenger,
7
+ connectivityAdapter: options.connectivityAdapter,
8
+ }),
9
+ getMessenger: (parent) => new Messenger({
10
+ namespace: 'ConnectivityController',
11
+ parent,
12
+ }),
13
+ };
14
+ //# sourceMappingURL=connectivity-controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-controller.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/connectivity-controller/connectivity-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEvB,0CAA0C;AAC3C,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAShD,MAAM,CAAC,MAAM,sBAAsB,GAG/B;IACF,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/B,IAAI,sBAAsB,CAAC;QACzB,SAAS;QACT,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE,CACrE,IAAI,SAAS,CAAC;QACZ,SAAS,EAAE,wBAAwB;QACnC,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import {\n ConnectivityController,\n ConnectivityControllerMessenger,\n} from '@metamask/connectivity-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\nexport const connectivityController: InitializationConfiguration<\n ConnectivityController,\n ConnectivityControllerMessenger\n> = {\n name: 'ConnectivityController',\n init: ({ messenger, options }) =>\n new ConnectivityController({\n messenger,\n connectivityAdapter: options.connectivityAdapter,\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) =>\n new Messenger({\n namespace: 'ConnectivityController',\n parent,\n }),\n};\n"]}