@metamask-previews/wallet 1.0.1-preview-e15374a5d → 2.0.0-preview-d3cc77e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -1
- package/dist/Wallet.cjs +7 -3
- package/dist/Wallet.cjs.map +1 -1
- package/dist/Wallet.d.cts.map +1 -1
- package/dist/Wallet.d.mts.map +1 -1
- package/dist/Wallet.mjs +7 -3
- package/dist/Wallet.mjs.map +1 -1
- package/dist/initialization/defaults.cjs.map +1 -1
- package/dist/initialization/defaults.d.cts +2 -2
- package/dist/initialization/defaults.d.cts.map +1 -1
- package/dist/initialization/defaults.d.mts +2 -2
- package/dist/initialization/defaults.d.mts.map +1 -1
- package/dist/initialization/defaults.mjs.map +1 -1
- package/dist/initialization/initialization.cjs.map +1 -1
- package/dist/initialization/initialization.d.cts.map +1 -1
- package/dist/initialization/initialization.d.mts.map +1 -1
- package/dist/initialization/initialization.mjs.map +1 -1
- package/dist/initialization/instances/index.cjs +3 -1
- package/dist/initialization/instances/index.cjs.map +1 -1
- package/dist/initialization/instances/index.d.cts +1 -0
- package/dist/initialization/instances/index.d.cts.map +1 -1
- package/dist/initialization/instances/index.d.mts +1 -0
- package/dist/initialization/instances/index.d.mts.map +1 -1
- package/dist/initialization/instances/index.mjs +1 -0
- package/dist/initialization/instances/index.mjs.map +1 -1
- package/dist/initialization/instances/keyring-controller.cjs +1 -0
- package/dist/initialization/instances/keyring-controller.cjs.map +1 -1
- package/dist/initialization/instances/keyring-controller.d.cts.map +1 -1
- package/dist/initialization/instances/keyring-controller.d.mts.map +1 -1
- package/dist/initialization/instances/keyring-controller.mjs +1 -0
- package/dist/initialization/instances/keyring-controller.mjs.map +1 -1
- package/dist/initialization/instances/storage-service.cjs +17 -0
- package/dist/initialization/instances/storage-service.cjs.map +1 -0
- package/dist/initialization/instances/storage-service.d.cts +5 -0
- package/dist/initialization/instances/storage-service.d.cts.map +1 -0
- package/dist/initialization/instances/storage-service.d.mts +5 -0
- package/dist/initialization/instances/storage-service.d.mts.map +1 -0
- package/dist/initialization/instances/storage-service.mjs +14 -0
- package/dist/initialization/instances/storage-service.mjs.map +1 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +6 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +6 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,8 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.0.0]
|
|
11
|
+
|
|
10
12
|
### Added
|
|
11
13
|
|
|
14
|
+
- Add `keyringV2Builders` to the `keyringController` instance options, forwarded to the `KeyringController` constructor ([#8956](https://github.com/MetaMask/core/pull/8956))
|
|
15
|
+
- **BREAKING:** Add `StorageService` initialization ([#8946](https://github.com/MetaMask/core/pull/8946))
|
|
16
|
+
- Passing `instanceOptions.storageService.storage` is now required.
|
|
12
17
|
- Export `importSecretRecoveryPhrase` from the package root ([#8952](https://github.com/MetaMask/core/pull/8952))
|
|
13
18
|
|
|
14
19
|
## [1.0.1]
|
|
@@ -23,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
23
28
|
|
|
24
29
|
- Initial release ([#8838](https://github.com/MetaMask/core/pull/8838))
|
|
25
30
|
|
|
26
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/wallet@
|
|
31
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/wallet@2.0.0...HEAD
|
|
32
|
+
[2.0.0]: https://github.com/MetaMask/core/compare/@metamask/wallet@1.0.1...@metamask/wallet@2.0.0
|
|
27
33
|
[1.0.1]: https://github.com/MetaMask/core/compare/@metamask/wallet@1.0.0...@metamask/wallet@1.0.1
|
|
28
34
|
[1.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/wallet@1.0.0
|
package/dist/Wallet.cjs
CHANGED
|
@@ -44,7 +44,10 @@ class Wallet {
|
|
|
44
44
|
}), "f");
|
|
45
45
|
__classPrivateFieldSet(this, _Wallet_controllerMetadata, Object.fromEntries(Object.entries(__classPrivateFieldGet(this, _Wallet_instances, "f"))
|
|
46
46
|
.filter(([_, instance]) => (0, utils_1.hasProperty)(instance, 'metadata'))
|
|
47
|
-
.map(([name, instance]) => [
|
|
47
|
+
.map(([name, instance]) => [
|
|
48
|
+
name,
|
|
49
|
+
instance.metadata,
|
|
50
|
+
])), "f");
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
50
53
|
* @returns The root messenger of the wallet.
|
|
@@ -60,7 +63,9 @@ class Wallet {
|
|
|
60
63
|
*/
|
|
61
64
|
get state() {
|
|
62
65
|
return Object.entries(__classPrivateFieldGet(this, _Wallet_instances, "f")).reduce((totalState, [name, instance]) => {
|
|
63
|
-
|
|
66
|
+
// We do actually want to check the prototype here.
|
|
67
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
68
|
+
if ('state' in instance && instance.state) {
|
|
64
69
|
totalState[name] = instance.state;
|
|
65
70
|
}
|
|
66
71
|
return totalState;
|
|
@@ -100,7 +105,6 @@ class Wallet {
|
|
|
100
105
|
// @ts-expect-error Accessing protected property.
|
|
101
106
|
if (typeof instance.destroy === 'function') {
|
|
102
107
|
// @ts-expect-error Accessing protected property.
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
104
108
|
return await instance.destroy();
|
|
105
109
|
}
|
|
106
110
|
/* istanbul ignore next */
|
package/dist/Wallet.cjs.map
CHANGED
|
@@ -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,
|
|
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"]}
|
package/dist/Wallet.d.cts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/Wallet.d.mts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/Wallet.mjs
CHANGED
|
@@ -41,7 +41,10 @@ export class Wallet {
|
|
|
41
41
|
}), "f");
|
|
42
42
|
__classPrivateFieldSet(this, _Wallet_controllerMetadata, Object.fromEntries(Object.entries(__classPrivateFieldGet(this, _Wallet_instances, "f"))
|
|
43
43
|
.filter(([_, instance]) => hasProperty(instance, 'metadata'))
|
|
44
|
-
.map(([name, instance]) => [
|
|
44
|
+
.map(([name, instance]) => [
|
|
45
|
+
name,
|
|
46
|
+
instance.metadata,
|
|
47
|
+
])), "f");
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
47
50
|
* @returns The root messenger of the wallet.
|
|
@@ -57,7 +60,9 @@ export class Wallet {
|
|
|
57
60
|
*/
|
|
58
61
|
get state() {
|
|
59
62
|
return Object.entries(__classPrivateFieldGet(this, _Wallet_instances, "f")).reduce((totalState, [name, instance]) => {
|
|
60
|
-
|
|
63
|
+
// We do actually want to check the prototype here.
|
|
64
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
65
|
+
if ('state' in instance && instance.state) {
|
|
61
66
|
totalState[name] = instance.state;
|
|
62
67
|
}
|
|
63
68
|
return totalState;
|
|
@@ -97,7 +102,6 @@ export class Wallet {
|
|
|
97
102
|
// @ts-expect-error Accessing protected property.
|
|
98
103
|
if (typeof instance.destroy === 'function') {
|
|
99
104
|
// @ts-expect-error Accessing protected property.
|
|
100
|
-
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
101
105
|
return await instance.destroy();
|
|
102
106
|
}
|
|
103
107
|
/* istanbul ignore next */
|
package/dist/Wallet.mjs.map
CHANGED
|
@@ -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,4CAAwC;AAG7D,MAAM,OAAO,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,SAAS,CAAC;gBACZ,SAAS,EAAE,MAAM;aAClB,CAAC,MAAA,CAAC;QAEL,uBAAA,IAAI,qBAAc,UAAU,CAAC;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,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,
|
|
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,4CAAwC;AAG7D,MAAM,OAAO,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,SAAS,CAAC;gBACZ,SAAS,EAAE,MAAM;aAClB,CAAC,MAAA,CAAC;QAEL,uBAAA,IAAI,qBAAc,UAAU,CAAC;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,WAAW,CAAC,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","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.cjs","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,6EAAqD;AAG5C,sDAAqB","sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n Messenger,\n MessengerActions,\n MessengerEvents,\n} from '@metamask/messenger';\n\nimport * as defaultConfigurations from './instances';\nimport type { InitializationConfiguration, InstanceState } from './types';\n\nexport { defaultConfigurations };\n\n/**\n * Utility type for inferring and extracting an instance type from an initialization configuration.\n */\ntype ExtractInstance<Config> =\n Config extends InitializationConfiguration
|
|
1
|
+
{"version":3,"file":"defaults.cjs","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,6EAAqD;AAG5C,sDAAqB","sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n Messenger,\n MessengerActions,\n MessengerEvents,\n} from '@metamask/messenger';\n\nimport * as defaultConfigurations from './instances';\nimport type { InitializationConfiguration, InstanceState } from './types';\n\nexport { defaultConfigurations };\n\n/**\n * Utility type for inferring and extracting an instance type from an initialization configuration.\n */\ntype ExtractInstance<Config> =\n Config extends InitializationConfiguration<\n infer Instance,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n infer _Messenger\n >\n ? Instance\n : never;\n\n/**\n * Utility type for inferring and extracting an instance messenger type from an initialization configuration.\n */\ntype ExtractInstanceMessenger<Config> =\n Config extends InitializationConfiguration<\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n infer _Instance,\n infer InferredMessenger\n >\n ? InferredMessenger\n : never;\n\n/**\n * Utility type for inferring and extracting the name of an instance from an initialization configuration.\n */\ntype ExtractName<Config> =\n ExtractInstance<Config> extends { name: infer Name extends string }\n ? Name\n : never;\n\ntype DefaultConfigs = typeof defaultConfigurations;\n\ntype AllDefaultMessengers = ExtractInstanceMessenger<\n DefaultConfigs[keyof DefaultConfigs]\n>;\n\nexport type DefaultInstances = {\n [Key in keyof DefaultConfigs as ExtractName<\n DefaultConfigs[Key]\n >]: ExtractInstance<DefaultConfigs[Key]>;\n};\n\nexport type DefaultActions = MessengerActions<AllDefaultMessengers>;\n\nexport type DefaultEvents = MessengerEvents<AllDefaultMessengers>;\n\nexport type RootMessenger<\n AllowedActions extends ActionConstraint,\n AllowedEvents extends EventConstraint,\n> = Messenger<'Root', AllowedActions, AllowedEvents>;\n\nexport type DefaultState = {\n [Key in keyof DefaultInstances]: InstanceState<DefaultInstances[Key]>;\n};\n"]}
|
|
@@ -5,11 +5,11 @@ export { defaultConfigurations };
|
|
|
5
5
|
/**
|
|
6
6
|
* Utility type for inferring and extracting an instance type from an initialization configuration.
|
|
7
7
|
*/
|
|
8
|
-
type ExtractInstance<Config> = Config extends InitializationConfiguration<infer Instance,
|
|
8
|
+
type ExtractInstance<Config> = Config extends InitializationConfiguration<infer Instance, infer _Messenger> ? Instance : never;
|
|
9
9
|
/**
|
|
10
10
|
* Utility type for inferring and extracting an instance messenger type from an initialization configuration.
|
|
11
11
|
*/
|
|
12
|
-
type ExtractInstanceMessenger<Config> = Config extends InitializationConfiguration<
|
|
12
|
+
type ExtractInstanceMessenger<Config> = Config extends InitializationConfiguration<infer _Instance, infer InferredMessenger> ? InferredMessenger : never;
|
|
13
13
|
/**
|
|
14
14
|
* Utility type for inferring and extracting the name of an instance from an initialization configuration.
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.cts","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,4BAA4B;AAE7B,OAAO,KAAK,qBAAqB,8BAAoB;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,aAAa,EAAE,oBAAgB;AAE1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,KAAK,eAAe,CAAC,MAAM,IACzB,MAAM,SAAS,2BAA2B,
|
|
1
|
+
{"version":3,"file":"defaults.d.cts","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,4BAA4B;AAE7B,OAAO,KAAK,qBAAqB,8BAAoB;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,aAAa,EAAE,oBAAgB;AAE1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,KAAK,eAAe,CAAC,MAAM,IACzB,MAAM,SAAS,2BAA2B,CACxC,MAAM,QAAQ,EAEd,MAAM,UAAU,CACjB,GACG,QAAQ,GACR,KAAK,CAAC;AAEZ;;GAEG;AACH,KAAK,wBAAwB,CAAC,MAAM,IAClC,MAAM,SAAS,2BAA2B,CAExC,MAAM,SAAS,EACf,MAAM,iBAAiB,CACxB,GACG,iBAAiB,GACjB,KAAK,CAAC;AAEZ;;GAEG;AACH,KAAK,WAAW,CAAC,MAAM,IACrB,eAAe,CAAC,MAAM,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC/D,IAAI,GACJ,KAAK,CAAC;AAEZ,KAAK,cAAc,GAAG,OAAO,qBAAqB,CAAC;AAEnD,KAAK,oBAAoB,GAAG,wBAAwB,CAClD,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;KAC5B,GAAG,IAAI,MAAM,cAAc,IAAI,WAAW,CACzC,cAAc,CAAC,GAAG,CAAC,CACpB,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAElE,MAAM,MAAM,aAAa,CACvB,cAAc,SAAS,gBAAgB,EACvC,aAAa,SAAS,eAAe,IACnC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG;KACxB,GAAG,IAAI,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;CACtE,CAAC"}
|
|
@@ -5,11 +5,11 @@ export { defaultConfigurations };
|
|
|
5
5
|
/**
|
|
6
6
|
* Utility type for inferring and extracting an instance type from an initialization configuration.
|
|
7
7
|
*/
|
|
8
|
-
type ExtractInstance<Config> = Config extends InitializationConfiguration<infer Instance,
|
|
8
|
+
type ExtractInstance<Config> = Config extends InitializationConfiguration<infer Instance, infer _Messenger> ? Instance : never;
|
|
9
9
|
/**
|
|
10
10
|
* Utility type for inferring and extracting an instance messenger type from an initialization configuration.
|
|
11
11
|
*/
|
|
12
|
-
type ExtractInstanceMessenger<Config> = Config extends InitializationConfiguration<
|
|
12
|
+
type ExtractInstanceMessenger<Config> = Config extends InitializationConfiguration<infer _Instance, infer InferredMessenger> ? InferredMessenger : never;
|
|
13
13
|
/**
|
|
14
14
|
* Utility type for inferring and extracting the name of an instance from an initialization configuration.
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.mts","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,4BAA4B;AAE7B,OAAO,KAAK,qBAAqB,8BAAoB;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,aAAa,EAAE,oBAAgB;AAE1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,KAAK,eAAe,CAAC,MAAM,IACzB,MAAM,SAAS,2BAA2B,
|
|
1
|
+
{"version":3,"file":"defaults.d.mts","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,4BAA4B;AAE7B,OAAO,KAAK,qBAAqB,8BAAoB;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,aAAa,EAAE,oBAAgB;AAE1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,KAAK,eAAe,CAAC,MAAM,IACzB,MAAM,SAAS,2BAA2B,CACxC,MAAM,QAAQ,EAEd,MAAM,UAAU,CACjB,GACG,QAAQ,GACR,KAAK,CAAC;AAEZ;;GAEG;AACH,KAAK,wBAAwB,CAAC,MAAM,IAClC,MAAM,SAAS,2BAA2B,CAExC,MAAM,SAAS,EACf,MAAM,iBAAiB,CACxB,GACG,iBAAiB,GACjB,KAAK,CAAC;AAEZ;;GAEG;AACH,KAAK,WAAW,CAAC,MAAM,IACrB,eAAe,CAAC,MAAM,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC/D,IAAI,GACJ,KAAK,CAAC;AAEZ,KAAK,cAAc,GAAG,OAAO,qBAAqB,CAAC;AAEnD,KAAK,oBAAoB,GAAG,wBAAwB,CAClD,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;KAC5B,GAAG,IAAI,MAAM,cAAc,IAAI,WAAW,CACzC,cAAc,CAAC,GAAG,CAAC,CACpB,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAElE,MAAM,MAAM,aAAa,CACvB,cAAc,SAAS,gBAAgB,EACvC,aAAa,SAAS,eAAe,IACnC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG;KACxB,GAAG,IAAI,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;CACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.mjs","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,qBAAqB,8BAAoB;AAGrD,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n Messenger,\n MessengerActions,\n MessengerEvents,\n} from '@metamask/messenger';\n\nimport * as defaultConfigurations from './instances';\nimport type { InitializationConfiguration, InstanceState } from './types';\n\nexport { defaultConfigurations };\n\n/**\n * Utility type for inferring and extracting an instance type from an initialization configuration.\n */\ntype ExtractInstance<Config> =\n Config extends InitializationConfiguration
|
|
1
|
+
{"version":3,"file":"defaults.mjs","sourceRoot":"","sources":["../../src/initialization/defaults.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,qBAAqB,8BAAoB;AAGrD,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n Messenger,\n MessengerActions,\n MessengerEvents,\n} from '@metamask/messenger';\n\nimport * as defaultConfigurations from './instances';\nimport type { InitializationConfiguration, InstanceState } from './types';\n\nexport { defaultConfigurations };\n\n/**\n * Utility type for inferring and extracting an instance type from an initialization configuration.\n */\ntype ExtractInstance<Config> =\n Config extends InitializationConfiguration<\n infer Instance,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n infer _Messenger\n >\n ? Instance\n : never;\n\n/**\n * Utility type for inferring and extracting an instance messenger type from an initialization configuration.\n */\ntype ExtractInstanceMessenger<Config> =\n Config extends InitializationConfiguration<\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n infer _Instance,\n infer InferredMessenger\n >\n ? InferredMessenger\n : never;\n\n/**\n * Utility type for inferring and extracting the name of an instance from an initialization configuration.\n */\ntype ExtractName<Config> =\n ExtractInstance<Config> extends { name: infer Name extends string }\n ? Name\n : never;\n\ntype DefaultConfigs = typeof defaultConfigurations;\n\ntype AllDefaultMessengers = ExtractInstanceMessenger<\n DefaultConfigs[keyof DefaultConfigs]\n>;\n\nexport type DefaultInstances = {\n [Key in keyof DefaultConfigs as ExtractName<\n DefaultConfigs[Key]\n >]: ExtractInstance<DefaultConfigs[Key]>;\n};\n\nexport type DefaultActions = MessengerActions<AllDefaultMessengers>;\n\nexport type DefaultEvents = MessengerEvents<AllDefaultMessengers>;\n\nexport type RootMessenger<\n AllowedActions extends ActionConstraint,\n AllowedEvents extends EventConstraint,\n> = Messenger<'Root', AllowedActions, AllowedEvents>;\n\nexport type DefaultState = {\n [Key in keyof DefaultInstances]: InstanceState<DefaultInstances[Key]>;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialization.cjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":";;;AAMA,6CAAkE;
|
|
1
|
+
{"version":3,"file":"initialization.cjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":";;;AAMA,6CAAkE;AAOlE;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAA0B;IACnD,MAAM,EACJ,SAAS,EACT,KAAK,GAAG,EAAE,EACV,4BAA4B,GAAG,EAAE,EACjC,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,uBAAuB,GAAG,4BAA4B,CAAC,GAAG,CAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC;IAEF,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,MAAM,CAC9D,MAAM,CAAC,MAAM,CAAC,gCAAqB,CAAC,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACR,CACrD,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,aAAa,GACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,8CAA8C;YAC9C,KAAK,EAAE,aAAsB;YAC7B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,SAA6B,CAAC;AACvC,CAAC;AAzCD,gCAyCC","sourcesContent":["import type { InstanceSpecificOptions, WalletOptions } from '../types';\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n} from './defaults';\nimport { defaultConfigurations, RootMessenger } from './defaults';\nimport { InitializationConfiguration } from './types';\n\ntype InitializeOptions = WalletOptions & {\n messenger: RootMessenger<DefaultActions, DefaultEvents>;\n};\n\n/**\n * Initialize all instances based on th default configurations and any additional configurations specified in `options`.\n *\n * @param options - The wallet options.\n * @returns A map containing the instances.\n */\nexport function initialize(options: InitializeOptions): DefaultInstances {\n const {\n messenger,\n state = {},\n initializationConfigurations = [],\n instanceOptions,\n } = options;\n\n const overriddenConfiguration = initializationConfigurations.map(\n (config) => config.name,\n );\n\n const configurationEntries = initializationConfigurations.concat(\n Object.values(defaultConfigurations).filter(\n (config) => !overriddenConfiguration.includes(config.name),\n ) as InitializationConfiguration<unknown, unknown>[],\n );\n\n const instances: Record<string, unknown> = {};\n\n for (const config of configurationEntries) {\n const { name } = config;\n\n const instanceState = state[name];\n\n const instanceMessenger = config.getMessenger(messenger);\n\n const camelCaseName =\n `${name.charAt(0).toLowerCase()}${name.slice(1)}` as keyof InstanceSpecificOptions;\n\n const instance = config.init({\n // TODO: Consider whether this can be improved\n state: instanceState as never,\n messenger: instanceMessenger,\n options: instanceOptions?.[camelCaseName] ?? {},\n });\n\n instances[name] = instance;\n }\n\n return instances as DefaultInstances;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialization.d.cts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;
|
|
1
|
+
{"version":3,"file":"initialization.d.cts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;AAGlE,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAyCvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialization.d.mts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;
|
|
1
|
+
{"version":3,"file":"initialization.d.mts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;AAGlE,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAyCvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialization.mjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAiB,uBAAmB;
|
|
1
|
+
{"version":3,"file":"initialization.mjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAiB,uBAAmB;AAOlE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,MAAM,EACJ,SAAS,EACT,KAAK,GAAG,EAAE,EACV,4BAA4B,GAAG,EAAE,EACjC,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,uBAAuB,GAAG,4BAA4B,CAAC,GAAG,CAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC;IAEF,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,MAAM,CAC9D,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACR,CACrD,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,aAAa,GACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,8CAA8C;YAC9C,KAAK,EAAE,aAAsB;YAC7B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,SAA6B,CAAC;AACvC,CAAC","sourcesContent":["import type { InstanceSpecificOptions, WalletOptions } from '../types';\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n} from './defaults';\nimport { defaultConfigurations, RootMessenger } from './defaults';\nimport { InitializationConfiguration } from './types';\n\ntype InitializeOptions = WalletOptions & {\n messenger: RootMessenger<DefaultActions, DefaultEvents>;\n};\n\n/**\n * Initialize all instances based on th default configurations and any additional configurations specified in `options`.\n *\n * @param options - The wallet options.\n * @returns A map containing the instances.\n */\nexport function initialize(options: InitializeOptions): DefaultInstances {\n const {\n messenger,\n state = {},\n initializationConfigurations = [],\n instanceOptions,\n } = options;\n\n const overriddenConfiguration = initializationConfigurations.map(\n (config) => config.name,\n );\n\n const configurationEntries = initializationConfigurations.concat(\n Object.values(defaultConfigurations).filter(\n (config) => !overriddenConfiguration.includes(config.name),\n ) as InitializationConfiguration<unknown, unknown>[],\n );\n\n const instances: Record<string, unknown> = {};\n\n for (const config of configurationEntries) {\n const { name } = config;\n\n const instanceState = state[name];\n\n const instanceMessenger = config.getMessenger(messenger);\n\n const camelCaseName =\n `${name.charAt(0).toLowerCase()}${name.slice(1)}` as keyof InstanceSpecificOptions;\n\n const instance = config.init({\n // TODO: Consider whether this can be improved\n state: instanceState as never,\n messenger: instanceMessenger,\n options: instanceOptions?.[camelCaseName] ?? {},\n });\n\n instances[name] = instance;\n }\n\n return instances as DefaultInstances;\n}\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.keyringController = void 0;
|
|
3
|
+
exports.storageService = exports.keyringController = void 0;
|
|
4
4
|
var keyring_controller_1 = require("./keyring-controller.cjs");
|
|
5
5
|
Object.defineProperty(exports, "keyringController", { enumerable: true, get: function () { return keyring_controller_1.keyringController; } });
|
|
6
|
+
var storage_service_1 = require("./storage-service.cjs");
|
|
7
|
+
Object.defineProperty(exports, "storageService", { enumerable: true, get: function () { return storage_service_1.storageService; } });
|
|
6
8
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":";;;AAAA,+DAAyD;AAAhD,uHAAA,iBAAiB,OAAA","sourcesContent":["export { keyringController } from './keyring-controller';\n"]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":";;;AAAA,+DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,yDAAmD;AAA1C,iHAAA,cAAc,OAAA","sourcesContent":["export { keyringController } from './keyring-controller';\nexport { storageService } from './storage-service';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iCAA6B"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iCAA6B;AACzD,OAAO,EAAE,cAAc,EAAE,8BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iCAA6B"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iCAA6B;AACzD,OAAO,EAAE,cAAc,EAAE,8BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iCAA6B","sourcesContent":["export { keyringController } from './keyring-controller';\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iCAA6B;AACzD,OAAO,EAAE,cAAc,EAAE,8BAA0B","sourcesContent":["export { keyringController } from './keyring-controller';\nexport { storageService } from './storage-service';\n"]}
|
|
@@ -88,6 +88,7 @@ exports.keyringController = {
|
|
|
88
88
|
state,
|
|
89
89
|
messenger,
|
|
90
90
|
keyringBuilders: options.keyringBuilders,
|
|
91
|
+
keyringV2Builders: options.keyringV2Builders,
|
|
91
92
|
encryptor: (options.encryptor ?? (0, exports.encryptorFactory)(600000)),
|
|
92
93
|
}),
|
|
93
94
|
getMessenger: (parent) => new messenger_1.Messenger({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring-controller.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":";;;AAKA,qEAYsC;AAEtC,qEAGsC;AACtC,mDAAgD;AAIhD;;;;;;GAMG;AACH,MAAM,cAAc,GAClB,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAa,EACb,GAA+B,EAC/B,IAAa,EACI,EAAE,CACnB,IAAA,4BAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IACjC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;GAMG;AACH,MAAM,wBAAwB,GAC5B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,MAAe,EACf,IAAa,EACsB,EAAE,CACrC,IAAA,sCAAiB,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAC1B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAY,EACZ,UAAoB,EACpB,IAA2B,EACH,EAAE,CAC1B,IAAA,oCAAe,EACb,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,IAAI;IACN,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CACF,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,qBAAqB,GACzB,CAAC,UAAkB,EAAE,EAAE,CACvB,CAAC,KAAa,EAAW,EAAE,CACzB,IAAA,mCAAc,EAAC,KAAK,EAAE;IACpB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAa,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC;IACnC,cAAc,EAAd,mCAAc;IACd,iBAAiB,EAAE,wBAAwB,CAAC,UAAU,CAAC;IACvD,OAAO,EAAP,4BAAO;IACP,cAAc,EAAd,mCAAc;IACd,iBAAiB,EAAjB,sCAAiB;IACjB,eAAe,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACnD,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;IACjD,SAAS,EAAT,8BAAS;IACT,SAAS,EAAT,8BAAS;IACT,YAAY,EAAZ,iCAAY;CACb,CAAC,CAAC;AAZU,QAAA,gBAAgB,oBAY1B;AAyBU,QAAA,iBAAiB,GAG1B;IACF,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,sCAAiB,CAAC;QACpB,KAAK;QACL,SAAS;QACT,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,IAAA,wBAAgB,EAAC,MAAO,CAAC,CAEzD;KACF,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,qBAAS,CAAC;QACZ,SAAS,EAAE,mBAAmB;QAC9B,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import type {\n DetailedEncryptionResult,\n EncryptionKey,\n KeyDerivationOptions,\n} from '@metamask/browser-passworder';\nimport {\n encrypt,\n encryptWithDetail,\n encryptWithKey,\n decrypt,\n decryptWithDetail,\n decryptWithKey,\n isVaultUpdated,\n keyFromPassword,\n importKey,\n exportKey,\n generateSalt,\n} from '@metamask/browser-passworder';\nimport type { Encryptor } from '@metamask/keyring-controller';\nimport {\n KeyringController,\n KeyringControllerMessenger,\n} from '@metamask/keyring-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport { InitializationConfiguration } from '../types';\n\n/**\n * A factory function for the encrypt method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptFactory =\n (iterations: number) =>\n async (\n password: string,\n data: unknown,\n key?: EncryptionKey | CryptoKey,\n salt?: string,\n ): Promise<string> =>\n encrypt(password, data, key, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the encryptWithDetail method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptWithDetailFactory =\n (iterations: number) =>\n async (\n password: string,\n object: unknown,\n salt?: string,\n ): Promise<DetailedEncryptionResult> =>\n encryptWithDetail(password, object, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the keyFromPassword method of the browser-passworder library,\n * that generates a key from a password and a salt.\n *\n * This factory function overrides the default key derivation options with the specified\n * number of iterations, unless existing key derivation options are passed in.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that generates a key with a potentially overriden number of iterations.\n */\nconst keyFromPasswordFactory =\n (iterations: number) =>\n async (\n password: string,\n salt: string,\n exportable?: boolean,\n opts?: KeyDerivationOptions,\n ): Promise<EncryptionKey> =>\n keyFromPassword(\n password,\n salt,\n exportable,\n opts ?? {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n },\n );\n\n/**\n * A factory function for the isVaultUpdated method of the browser-passworder library,\n * that checks if the given vault was encrypted with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that checks if the vault was encrypted with the given number of iterations.\n */\nconst isVaultUpdatedFactory =\n (iterations: number) =>\n (vault: string): boolean =>\n isVaultUpdated(vault, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function that returns an encryptor with the given number of iterations.\n *\n * The returned encryptor is a wrapper around the browser-passworder library, that\n * calls the encrypt and encryptWithDetail methods with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns An encryptor set with the given number of iterations.\n */\nexport const encryptorFactory = (iterations: number): Encryptor => ({\n encrypt: encryptFactory(iterations),\n encryptWithKey,\n encryptWithDetail: encryptWithDetailFactory(iterations),\n decrypt,\n decryptWithKey,\n decryptWithDetail,\n keyFromPassword: keyFromPasswordFactory(iterations),\n isVaultUpdated: isVaultUpdatedFactory(iterations),\n importKey,\n exportKey,\n generateSalt,\n});\n\ntype MobileEncryptionKey = {\n key: string;\n lib: string;\n exportable: boolean;\n keyMetadata: KeyDerivationOptions;\n};\n\ntype MobileEncryptionResult = {\n cipher: string;\n iv: string;\n salt?: string;\n lib?: string;\n keyMetadata?: KeyDerivationOptions;\n};\n\nexport type GenericEncryptor =\n | Encryptor<EncryptionKey | CryptoKey>\n | Encryptor<\n MobileEncryptionKey,\n KeyDerivationOptions,\n MobileEncryptionResult\n >;\n\nexport const keyringController: InitializationConfiguration<\n KeyringController,\n KeyringControllerMessenger\n> = {\n name: 'KeyringController',\n init: ({ state, messenger, options }) =>\n new KeyringController({\n state,\n messenger,\n keyringBuilders: options.keyringBuilders,\n encryptor: (options.encryptor ?? encryptorFactory(600_000)) as Encryptor<\n EncryptionKey | CryptoKey\n >,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'KeyringController',\n parent,\n }),\n};\n"]}
|
|
1
|
+
{"version":3,"file":"keyring-controller.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":";;;AAKA,qEAYsC;AAEtC,qEAGsC;AACtC,mDAAgD;AAIhD;;;;;;GAMG;AACH,MAAM,cAAc,GAClB,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAa,EACb,GAA+B,EAC/B,IAAa,EACI,EAAE,CACnB,IAAA,4BAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IACjC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;GAMG;AACH,MAAM,wBAAwB,GAC5B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,MAAe,EACf,IAAa,EACsB,EAAE,CACrC,IAAA,sCAAiB,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAC1B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAY,EACZ,UAAoB,EACpB,IAA2B,EACH,EAAE,CAC1B,IAAA,oCAAe,EACb,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,IAAI;IACN,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CACF,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,qBAAqB,GACzB,CAAC,UAAkB,EAAE,EAAE,CACvB,CAAC,KAAa,EAAW,EAAE,CACzB,IAAA,mCAAc,EAAC,KAAK,EAAE;IACpB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAa,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC;IACnC,cAAc,EAAd,mCAAc;IACd,iBAAiB,EAAE,wBAAwB,CAAC,UAAU,CAAC;IACvD,OAAO,EAAP,4BAAO;IACP,cAAc,EAAd,mCAAc;IACd,iBAAiB,EAAjB,sCAAiB;IACjB,eAAe,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACnD,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;IACjD,SAAS,EAAT,8BAAS;IACT,SAAS,EAAT,8BAAS;IACT,YAAY,EAAZ,iCAAY;CACb,CAAC,CAAC;AAZU,QAAA,gBAAgB,oBAY1B;AAyBU,QAAA,iBAAiB,GAG1B;IACF,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,sCAAiB,CAAC;QACpB,KAAK;QACL,SAAS;QACT,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,IAAA,wBAAgB,EAAC,MAAO,CAAC,CAEzD;KACF,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,qBAAS,CAAC;QACZ,SAAS,EAAE,mBAAmB;QAC9B,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import type {\n DetailedEncryptionResult,\n EncryptionKey,\n KeyDerivationOptions,\n} from '@metamask/browser-passworder';\nimport {\n encrypt,\n encryptWithDetail,\n encryptWithKey,\n decrypt,\n decryptWithDetail,\n decryptWithKey,\n isVaultUpdated,\n keyFromPassword,\n importKey,\n exportKey,\n generateSalt,\n} from '@metamask/browser-passworder';\nimport type { Encryptor } from '@metamask/keyring-controller';\nimport {\n KeyringController,\n KeyringControllerMessenger,\n} from '@metamask/keyring-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport { InitializationConfiguration } from '../types';\n\n/**\n * A factory function for the encrypt method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptFactory =\n (iterations: number) =>\n async (\n password: string,\n data: unknown,\n key?: EncryptionKey | CryptoKey,\n salt?: string,\n ): Promise<string> =>\n encrypt(password, data, key, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the encryptWithDetail method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptWithDetailFactory =\n (iterations: number) =>\n async (\n password: string,\n object: unknown,\n salt?: string,\n ): Promise<DetailedEncryptionResult> =>\n encryptWithDetail(password, object, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the keyFromPassword method of the browser-passworder library,\n * that generates a key from a password and a salt.\n *\n * This factory function overrides the default key derivation options with the specified\n * number of iterations, unless existing key derivation options are passed in.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that generates a key with a potentially overriden number of iterations.\n */\nconst keyFromPasswordFactory =\n (iterations: number) =>\n async (\n password: string,\n salt: string,\n exportable?: boolean,\n opts?: KeyDerivationOptions,\n ): Promise<EncryptionKey> =>\n keyFromPassword(\n password,\n salt,\n exportable,\n opts ?? {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n },\n );\n\n/**\n * A factory function for the isVaultUpdated method of the browser-passworder library,\n * that checks if the given vault was encrypted with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that checks if the vault was encrypted with the given number of iterations.\n */\nconst isVaultUpdatedFactory =\n (iterations: number) =>\n (vault: string): boolean =>\n isVaultUpdated(vault, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function that returns an encryptor with the given number of iterations.\n *\n * The returned encryptor is a wrapper around the browser-passworder library, that\n * calls the encrypt and encryptWithDetail methods with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns An encryptor set with the given number of iterations.\n */\nexport const encryptorFactory = (iterations: number): Encryptor => ({\n encrypt: encryptFactory(iterations),\n encryptWithKey,\n encryptWithDetail: encryptWithDetailFactory(iterations),\n decrypt,\n decryptWithKey,\n decryptWithDetail,\n keyFromPassword: keyFromPasswordFactory(iterations),\n isVaultUpdated: isVaultUpdatedFactory(iterations),\n importKey,\n exportKey,\n generateSalt,\n});\n\ntype MobileEncryptionKey = {\n key: string;\n lib: string;\n exportable: boolean;\n keyMetadata: KeyDerivationOptions;\n};\n\ntype MobileEncryptionResult = {\n cipher: string;\n iv: string;\n salt?: string;\n lib?: string;\n keyMetadata?: KeyDerivationOptions;\n};\n\nexport type GenericEncryptor =\n | Encryptor<EncryptionKey | CryptoKey>\n | Encryptor<\n MobileEncryptionKey,\n KeyDerivationOptions,\n MobileEncryptionResult\n >;\n\nexport const keyringController: InitializationConfiguration<\n KeyringController,\n KeyringControllerMessenger\n> = {\n name: 'KeyringController',\n init: ({ state, messenger, options }) =>\n new KeyringController({\n state,\n messenger,\n keyringBuilders: options.keyringBuilders,\n keyringV2Builders: options.keyringV2Builders,\n encryptor: (options.encryptor ?? encryptorFactory(600_000)) as Encryptor<\n EncryptionKey | CryptoKey\n >,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'KeyringController',\n parent,\n }),\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring-controller.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EACrB,qCAAqC;AActC,OAAO,KAAK,EAAE,SAAS,EAAE,qCAAqC;AAC9D,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC3B,qCAAqC;AAGtC,OAAO,EAAE,2BAA2B,EAAE,qBAAiB;AA4FvD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,SAYpD,CAAC;AAEH,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,GACpC,SAAS,CACP,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,CACvB,CAAC;AAEN,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,CACzD,iBAAiB,EACjB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"keyring-controller.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EACrB,qCAAqC;AActC,OAAO,KAAK,EAAE,SAAS,EAAE,qCAAqC;AAC9D,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC3B,qCAAqC;AAGtC,OAAO,EAAE,2BAA2B,EAAE,qBAAiB;AA4FvD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,SAYpD,CAAC;AAEH,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,GACpC,SAAS,CACP,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,CACvB,CAAC;AAEN,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,CACzD,iBAAiB,EACjB,0BAA0B,CAkB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring-controller.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EACrB,qCAAqC;AActC,OAAO,KAAK,EAAE,SAAS,EAAE,qCAAqC;AAC9D,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC3B,qCAAqC;AAGtC,OAAO,EAAE,2BAA2B,EAAE,qBAAiB;AA4FvD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,SAYpD,CAAC;AAEH,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,GACpC,SAAS,CACP,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,CACvB,CAAC;AAEN,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,CACzD,iBAAiB,EACjB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"keyring-controller.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EACrB,qCAAqC;AActC,OAAO,KAAK,EAAE,SAAS,EAAE,qCAAqC;AAC9D,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC3B,qCAAqC;AAGtC,OAAO,EAAE,2BAA2B,EAAE,qBAAiB;AA4FvD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,SAYpD,CAAC;AAEH,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,GACpC,SAAS,CACP,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,CACvB,CAAC;AAEN,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,CACzD,iBAAiB,EACjB,0BAA0B,CAkB3B,CAAC"}
|
|
@@ -84,6 +84,7 @@ export const keyringController = {
|
|
|
84
84
|
state,
|
|
85
85
|
messenger,
|
|
86
86
|
keyringBuilders: options.keyringBuilders,
|
|
87
|
+
keyringV2Builders: options.keyringV2Builders,
|
|
87
88
|
encryptor: (options.encryptor ?? encryptorFactory(600000)),
|
|
88
89
|
}),
|
|
89
90
|
getMessenger: (parent) => new Messenger({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring-controller.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,EACT,SAAS,EACT,YAAY,EACb,qCAAqC;AAEtC,OAAO,EACL,iBAAiB,EAElB,qCAAqC;AACtC,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAIhD;;;;;;GAMG;AACH,MAAM,cAAc,GAClB,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAa,EACb,GAA+B,EAC/B,IAAa,EACI,EAAE,CACnB,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IACjC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;GAMG;AACH,MAAM,wBAAwB,GAC5B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,MAAe,EACf,IAAa,EACsB,EAAE,CACrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAC1B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAY,EACZ,UAAoB,EACpB,IAA2B,EACH,EAAE,CAC1B,eAAe,CACb,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,IAAI;IACN,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CACF,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,qBAAqB,GACzB,CAAC,UAAkB,EAAE,EAAE,CACvB,CAAC,KAAa,EAAW,EAAE,CACzB,cAAc,CAAC,KAAK,EAAE;IACpB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAa,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC;IACnC,cAAc;IACd,iBAAiB,EAAE,wBAAwB,CAAC,UAAU,CAAC;IACvD,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,eAAe,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACnD,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;IACjD,SAAS;IACT,SAAS;IACT,YAAY;CACb,CAAC,CAAC;AAyBH,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,iBAAiB,CAAC;QACpB,KAAK;QACL,SAAS;QACT,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,MAAO,CAAC,CAEzD;KACF,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,SAAS,CAAC;QACZ,SAAS,EAAE,mBAAmB;QAC9B,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import type {\n DetailedEncryptionResult,\n EncryptionKey,\n KeyDerivationOptions,\n} from '@metamask/browser-passworder';\nimport {\n encrypt,\n encryptWithDetail,\n encryptWithKey,\n decrypt,\n decryptWithDetail,\n decryptWithKey,\n isVaultUpdated,\n keyFromPassword,\n importKey,\n exportKey,\n generateSalt,\n} from '@metamask/browser-passworder';\nimport type { Encryptor } from '@metamask/keyring-controller';\nimport {\n KeyringController,\n KeyringControllerMessenger,\n} from '@metamask/keyring-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport { InitializationConfiguration } from '../types';\n\n/**\n * A factory function for the encrypt method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptFactory =\n (iterations: number) =>\n async (\n password: string,\n data: unknown,\n key?: EncryptionKey | CryptoKey,\n salt?: string,\n ): Promise<string> =>\n encrypt(password, data, key, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the encryptWithDetail method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptWithDetailFactory =\n (iterations: number) =>\n async (\n password: string,\n object: unknown,\n salt?: string,\n ): Promise<DetailedEncryptionResult> =>\n encryptWithDetail(password, object, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the keyFromPassword method of the browser-passworder library,\n * that generates a key from a password and a salt.\n *\n * This factory function overrides the default key derivation options with the specified\n * number of iterations, unless existing key derivation options are passed in.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that generates a key with a potentially overriden number of iterations.\n */\nconst keyFromPasswordFactory =\n (iterations: number) =>\n async (\n password: string,\n salt: string,\n exportable?: boolean,\n opts?: KeyDerivationOptions,\n ): Promise<EncryptionKey> =>\n keyFromPassword(\n password,\n salt,\n exportable,\n opts ?? {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n },\n );\n\n/**\n * A factory function for the isVaultUpdated method of the browser-passworder library,\n * that checks if the given vault was encrypted with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that checks if the vault was encrypted with the given number of iterations.\n */\nconst isVaultUpdatedFactory =\n (iterations: number) =>\n (vault: string): boolean =>\n isVaultUpdated(vault, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function that returns an encryptor with the given number of iterations.\n *\n * The returned encryptor is a wrapper around the browser-passworder library, that\n * calls the encrypt and encryptWithDetail methods with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns An encryptor set with the given number of iterations.\n */\nexport const encryptorFactory = (iterations: number): Encryptor => ({\n encrypt: encryptFactory(iterations),\n encryptWithKey,\n encryptWithDetail: encryptWithDetailFactory(iterations),\n decrypt,\n decryptWithKey,\n decryptWithDetail,\n keyFromPassword: keyFromPasswordFactory(iterations),\n isVaultUpdated: isVaultUpdatedFactory(iterations),\n importKey,\n exportKey,\n generateSalt,\n});\n\ntype MobileEncryptionKey = {\n key: string;\n lib: string;\n exportable: boolean;\n keyMetadata: KeyDerivationOptions;\n};\n\ntype MobileEncryptionResult = {\n cipher: string;\n iv: string;\n salt?: string;\n lib?: string;\n keyMetadata?: KeyDerivationOptions;\n};\n\nexport type GenericEncryptor =\n | Encryptor<EncryptionKey | CryptoKey>\n | Encryptor<\n MobileEncryptionKey,\n KeyDerivationOptions,\n MobileEncryptionResult\n >;\n\nexport const keyringController: InitializationConfiguration<\n KeyringController,\n KeyringControllerMessenger\n> = {\n name: 'KeyringController',\n init: ({ state, messenger, options }) =>\n new KeyringController({\n state,\n messenger,\n keyringBuilders: options.keyringBuilders,\n encryptor: (options.encryptor ?? encryptorFactory(600_000)) as Encryptor<\n EncryptionKey | CryptoKey\n >,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'KeyringController',\n parent,\n }),\n};\n"]}
|
|
1
|
+
{"version":3,"file":"keyring-controller.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/keyring-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,EACT,SAAS,EACT,YAAY,EACb,qCAAqC;AAEtC,OAAO,EACL,iBAAiB,EAElB,qCAAqC;AACtC,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAIhD;;;;;;GAMG;AACH,MAAM,cAAc,GAClB,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAa,EACb,GAA+B,EAC/B,IAAa,EACI,EAAE,CACnB,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IACjC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;GAMG;AACH,MAAM,wBAAwB,GAC5B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,MAAe,EACf,IAAa,EACsB,EAAE,CACrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAC1B,CAAC,UAAkB,EAAE,EAAE,CACvB,KAAK,EACH,QAAgB,EAChB,IAAY,EACZ,UAAoB,EACpB,IAA2B,EACH,EAAE,CAC1B,eAAe,CACb,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,IAAI;IACN,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CACF,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,qBAAqB,GACzB,CAAC,UAAkB,EAAE,EAAE,CACvB,CAAC,KAAa,EAAW,EAAE,CACzB,cAAc,CAAC,KAAK,EAAE;IACpB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE;QACN,UAAU;KACX;CACF,CAAC,CAAC;AAEP;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAa,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC;IACnC,cAAc;IACd,iBAAiB,EAAE,wBAAwB,CAAC,UAAU,CAAC;IACvD,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,eAAe,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACnD,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;IACjD,SAAS;IACT,SAAS;IACT,YAAY;CACb,CAAC,CAAC;AAyBH,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,iBAAiB,CAAC;QACpB,KAAK;QACL,SAAS;QACT,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,MAAO,CAAC,CAEzD;KACF,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,SAAS,CAAC;QACZ,SAAS,EAAE,mBAAmB;QAC9B,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import type {\n DetailedEncryptionResult,\n EncryptionKey,\n KeyDerivationOptions,\n} from '@metamask/browser-passworder';\nimport {\n encrypt,\n encryptWithDetail,\n encryptWithKey,\n decrypt,\n decryptWithDetail,\n decryptWithKey,\n isVaultUpdated,\n keyFromPassword,\n importKey,\n exportKey,\n generateSalt,\n} from '@metamask/browser-passworder';\nimport type { Encryptor } from '@metamask/keyring-controller';\nimport {\n KeyringController,\n KeyringControllerMessenger,\n} from '@metamask/keyring-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport { InitializationConfiguration } from '../types';\n\n/**\n * A factory function for the encrypt method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptFactory =\n (iterations: number) =>\n async (\n password: string,\n data: unknown,\n key?: EncryptionKey | CryptoKey,\n salt?: string,\n ): Promise<string> =>\n encrypt(password, data, key, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the encryptWithDetail method of the browser-passworder library,\n * that encrypts with a given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that encrypts with the given number of iterations.\n */\nconst encryptWithDetailFactory =\n (iterations: number) =>\n async (\n password: string,\n object: unknown,\n salt?: string,\n ): Promise<DetailedEncryptionResult> =>\n encryptWithDetail(password, object, salt, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function for the keyFromPassword method of the browser-passworder library,\n * that generates a key from a password and a salt.\n *\n * This factory function overrides the default key derivation options with the specified\n * number of iterations, unless existing key derivation options are passed in.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that generates a key with a potentially overriden number of iterations.\n */\nconst keyFromPasswordFactory =\n (iterations: number) =>\n async (\n password: string,\n salt: string,\n exportable?: boolean,\n opts?: KeyDerivationOptions,\n ): Promise<EncryptionKey> =>\n keyFromPassword(\n password,\n salt,\n exportable,\n opts ?? {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n },\n );\n\n/**\n * A factory function for the isVaultUpdated method of the browser-passworder library,\n * that checks if the given vault was encrypted with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns A function that checks if the vault was encrypted with the given number of iterations.\n */\nconst isVaultUpdatedFactory =\n (iterations: number) =>\n (vault: string): boolean =>\n isVaultUpdated(vault, {\n algorithm: 'PBKDF2',\n params: {\n iterations,\n },\n });\n\n/**\n * A factory function that returns an encryptor with the given number of iterations.\n *\n * The returned encryptor is a wrapper around the browser-passworder library, that\n * calls the encrypt and encryptWithDetail methods with the given number of iterations.\n *\n * @param iterations - The number of iterations to use for the PBKDF2 algorithm.\n * @returns An encryptor set with the given number of iterations.\n */\nexport const encryptorFactory = (iterations: number): Encryptor => ({\n encrypt: encryptFactory(iterations),\n encryptWithKey,\n encryptWithDetail: encryptWithDetailFactory(iterations),\n decrypt,\n decryptWithKey,\n decryptWithDetail,\n keyFromPassword: keyFromPasswordFactory(iterations),\n isVaultUpdated: isVaultUpdatedFactory(iterations),\n importKey,\n exportKey,\n generateSalt,\n});\n\ntype MobileEncryptionKey = {\n key: string;\n lib: string;\n exportable: boolean;\n keyMetadata: KeyDerivationOptions;\n};\n\ntype MobileEncryptionResult = {\n cipher: string;\n iv: string;\n salt?: string;\n lib?: string;\n keyMetadata?: KeyDerivationOptions;\n};\n\nexport type GenericEncryptor =\n | Encryptor<EncryptionKey | CryptoKey>\n | Encryptor<\n MobileEncryptionKey,\n KeyDerivationOptions,\n MobileEncryptionResult\n >;\n\nexport const keyringController: InitializationConfiguration<\n KeyringController,\n KeyringControllerMessenger\n> = {\n name: 'KeyringController',\n init: ({ state, messenger, options }) =>\n new KeyringController({\n state,\n messenger,\n keyringBuilders: options.keyringBuilders,\n keyringV2Builders: options.keyringV2Builders,\n encryptor: (options.encryptor ?? encryptorFactory(600_000)) as Encryptor<\n EncryptionKey | CryptoKey\n >,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'KeyringController',\n parent,\n }),\n};\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storageService = void 0;
|
|
4
|
+
const messenger_1 = require("@metamask/messenger");
|
|
5
|
+
const storage_service_1 = require("@metamask/storage-service");
|
|
6
|
+
exports.storageService = {
|
|
7
|
+
name: 'StorageService',
|
|
8
|
+
init: ({ messenger, options }) => new storage_service_1.StorageService({
|
|
9
|
+
messenger,
|
|
10
|
+
storage: options.storage,
|
|
11
|
+
}),
|
|
12
|
+
getMessenger: (parent) => new messenger_1.Messenger({
|
|
13
|
+
namespace: 'StorageService',
|
|
14
|
+
parent,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=storage-service.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-service.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/storage-service.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,+DAA2D;AAK9C,QAAA,cAAc,GAGvB;IACF,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/B,IAAI,gCAAc,CAAC;QACjB,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,qBAAS,CAAC;QACZ,SAAS,EAAE,gBAAgB;QAC3B,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport { StorageService } from '@metamask/storage-service';\nimport { StorageServiceMessenger } from '@metamask/storage-service';\n\nimport { InitializationConfiguration } from '../types';\n\nexport const storageService: InitializationConfiguration<\n StorageService,\n StorageServiceMessenger\n> = {\n name: 'StorageService',\n init: ({ messenger, options }) =>\n new StorageService({\n messenger,\n storage: options.storage,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'StorageService',\n parent,\n }),\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { StorageService } from "@metamask/storage-service";
|
|
2
|
+
import { StorageServiceMessenger } from "@metamask/storage-service";
|
|
3
|
+
import { InitializationConfiguration } from "../types.cjs";
|
|
4
|
+
export declare const storageService: InitializationConfiguration<StorageService, StorageServiceMessenger>;
|
|
5
|
+
//# sourceMappingURL=storage-service.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-service.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/storage-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,kCAAkC;AAEpE,OAAO,EAAE,2BAA2B,EAAE,qBAAiB;AAEvD,eAAO,MAAM,cAAc,EAAE,2BAA2B,CACtD,cAAc,EACd,uBAAuB,CAaxB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { StorageService } from "@metamask/storage-service";
|
|
2
|
+
import { StorageServiceMessenger } from "@metamask/storage-service";
|
|
3
|
+
import { InitializationConfiguration } from "../types.mjs";
|
|
4
|
+
export declare const storageService: InitializationConfiguration<StorageService, StorageServiceMessenger>;
|
|
5
|
+
//# sourceMappingURL=storage-service.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-service.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/storage-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,kCAAkC;AAEpE,OAAO,EAAE,2BAA2B,EAAE,qBAAiB;AAEvD,eAAO,MAAM,cAAc,EAAE,2BAA2B,CACtD,cAAc,EACd,uBAAuB,CAaxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Messenger } from "@metamask/messenger";
|
|
2
|
+
import { StorageService } from "@metamask/storage-service";
|
|
3
|
+
export const storageService = {
|
|
4
|
+
name: 'StorageService',
|
|
5
|
+
init: ({ messenger, options }) => new StorageService({
|
|
6
|
+
messenger,
|
|
7
|
+
storage: options.storage,
|
|
8
|
+
}),
|
|
9
|
+
getMessenger: (parent) => new Messenger({
|
|
10
|
+
namespace: 'StorageService',
|
|
11
|
+
parent,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=storage-service.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-service.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/storage-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAK3D,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/B,IAAI,cAAc,CAAC;QACjB,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,SAAS,CAAC;QACZ,SAAS,EAAE,gBAAgB;QAC3B,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport { StorageService } from '@metamask/storage-service';\nimport { StorageServiceMessenger } from '@metamask/storage-service';\n\nimport { InitializationConfiguration } from '../types';\n\nexport const storageService: InitializationConfiguration<\n StorageService,\n StorageServiceMessenger\n> = {\n name: 'StorageService',\n init: ({ messenger, options }) =>\n new StorageService({\n messenger,\n storage: options.storage,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'StorageService',\n parent,\n }),\n};\n"]}
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +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
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { KeyringControllerOptions } from '@metamask/keyring-controller';\nimport { StorageAdapter } from '@metamask/storage-service';\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 keyringV2Builders?: KeyringControllerOptions['keyringV2Builders'];\n };\n storageService: {\n storage: StorageAdapter;\n };\n};\n"]}
|
package/dist/types.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { KeyringControllerOptions } from "@metamask/keyring-controller";
|
|
2
|
+
import { StorageAdapter } from "@metamask/storage-service";
|
|
2
3
|
import type { Json } from "@metamask/utils";
|
|
3
4
|
import type { DefaultActions, DefaultEvents, RootMessenger } from "./initialization/defaults.cjs";
|
|
4
5
|
import { GenericEncryptor } from "./initialization/instances/keyring-controller.cjs";
|
|
@@ -7,12 +8,16 @@ export type WalletOptions = {
|
|
|
7
8
|
messenger?: RootMessenger<DefaultActions, DefaultEvents>;
|
|
8
9
|
state?: Record<string, Record<string, Json> | undefined>;
|
|
9
10
|
initializationConfigurations?: InitializationConfiguration<unknown, unknown>[];
|
|
10
|
-
instanceOptions
|
|
11
|
+
instanceOptions: InstanceSpecificOptions;
|
|
11
12
|
};
|
|
12
13
|
export type InstanceSpecificOptions = {
|
|
13
14
|
keyringController?: {
|
|
14
15
|
encryptor?: GenericEncryptor;
|
|
15
16
|
keyringBuilders?: KeyringControllerOptions['keyringBuilders'];
|
|
17
|
+
keyringV2Builders?: KeyringControllerOptions['keyringV2Builders'];
|
|
18
|
+
};
|
|
19
|
+
storageService: {
|
|
20
|
+
storage: StorageAdapter;
|
|
16
21
|
};
|
|
17
22
|
};
|
|
18
23
|
//# sourceMappingURL=types.d.cts.map
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,qCAAqC;AACxE,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,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,EAAE,uBAAuB,CAAC;CAC1C,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;QAC9D,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;KACnE,CAAC;IACF,cAAc,EAAE;QACd,OAAO,EAAE,cAAc,CAAC;KACzB,CAAC;CACH,CAAC"}
|
package/dist/types.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { KeyringControllerOptions } from "@metamask/keyring-controller";
|
|
2
|
+
import { StorageAdapter } from "@metamask/storage-service";
|
|
2
3
|
import type { Json } from "@metamask/utils";
|
|
3
4
|
import type { DefaultActions, DefaultEvents, RootMessenger } from "./initialization/defaults.mjs";
|
|
4
5
|
import { GenericEncryptor } from "./initialization/instances/keyring-controller.mjs";
|
|
@@ -7,12 +8,16 @@ export type WalletOptions = {
|
|
|
7
8
|
messenger?: RootMessenger<DefaultActions, DefaultEvents>;
|
|
8
9
|
state?: Record<string, Record<string, Json> | undefined>;
|
|
9
10
|
initializationConfigurations?: InitializationConfiguration<unknown, unknown>[];
|
|
10
|
-
instanceOptions
|
|
11
|
+
instanceOptions: InstanceSpecificOptions;
|
|
11
12
|
};
|
|
12
13
|
export type InstanceSpecificOptions = {
|
|
13
14
|
keyringController?: {
|
|
14
15
|
encryptor?: GenericEncryptor;
|
|
15
16
|
keyringBuilders?: KeyringControllerOptions['keyringBuilders'];
|
|
17
|
+
keyringV2Builders?: KeyringControllerOptions['keyringV2Builders'];
|
|
18
|
+
};
|
|
19
|
+
storageService: {
|
|
20
|
+
storage: StorageAdapter;
|
|
16
21
|
};
|
|
17
22
|
};
|
|
18
23
|
//# sourceMappingURL=types.d.mts.map
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,qCAAqC;AACxE,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,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,EAAE,uBAAuB,CAAC;CAC1C,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;QAC9D,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;KACnE,CAAC;IACF,cAAc,EAAE;QACd,OAAO,EAAE,cAAc,CAAC;KACzB,CAAC;CACH,CAAC"}
|
package/dist/types.mjs.map
CHANGED
|
@@ -1 +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
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { KeyringControllerOptions } from '@metamask/keyring-controller';\nimport { StorageAdapter } from '@metamask/storage-service';\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 keyringV2Builders?: KeyringControllerOptions['keyringV2Builders'];\n };\n storageService: {\n storage: StorageAdapter;\n };\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/wallet",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-preview-d3cc77e",
|
|
4
4
|
"description": "Provides a shared framework for building MetaMask wallets",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ethereum",
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"@metamask/keyring-controller": "^26.0.0",
|
|
59
59
|
"@metamask/messenger": "^1.2.0",
|
|
60
60
|
"@metamask/scure-bip39": "^2.1.1",
|
|
61
|
+
"@metamask/storage-service": "^1.0.1",
|
|
61
62
|
"@metamask/utils": "^11.9.0"
|
|
62
63
|
},
|
|
63
64
|
"devDependencies": {
|