@metamask-previews/keyring-controller 12.2.0-preview.2431602 → 12.2.0-preview.303e509
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 +82 -4
- package/dist/KeyringController.d.ts +110 -16
- package/dist/KeyringController.d.ts.map +1 -1
- package/dist/KeyringController.js +524 -139
- package/dist/KeyringController.js.map +1 -1
- package/dist/constants.d.ts +30 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +34 -0
- package/dist/constants.js.map +1 -0
- package/package.json +8 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
|
|
2
3
|
All notable changes to this project will be documented in this file.
|
|
3
4
|
|
|
4
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
@@ -6,36 +7,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
7
|
|
|
7
8
|
## [Unreleased]
|
|
8
9
|
|
|
10
|
+
### Removed
|
|
11
|
+
|
|
12
|
+
- **BREAKING:** Remove callbacks `updateIdentities`, `syncIdentities`, `setSelectedAddress`, `setAccountLabel` from constructor options of the `KeyringController` class. These were previously used to update `PreferencesController` state, but are now replaced with `PreferencesController`'s subscription to the `KeyringController:stateChange` event. ([#3853](https://github.com/MetaMask/core/pull/3853))
|
|
13
|
+
- Class methods `addNewAccount`, `addNewAccountForKeyring`, `createNewVaultAndRestore`, `createNewVaultAndKeychain`, `importAccountWithStrategy`, `restoreQRKeyring`, `unlockQRHardwareWalletAccount`, `forgetQRDevice` no longer directly updates `PreferencesController` state by calling the `updateIdentities` callback.
|
|
14
|
+
- Class method `submitPassword` no longer directly updates `PreferencesController` state by calling the `syncIdentities` callback.
|
|
15
|
+
- Class method `unlockQRHardwareWalletAccount` no longer directly updates `PreferencesController` state by calling the `setAccountLabel`, `setSelectedAddress` callbacks.
|
|
16
|
+
|
|
9
17
|
## [12.2.0]
|
|
18
|
+
|
|
10
19
|
### Added
|
|
20
|
+
|
|
11
21
|
- Add `getDefaultKeyringState` function ([#3799](https://github.com/MetaMask/core/pull/3799))
|
|
12
22
|
|
|
13
23
|
### Changed
|
|
24
|
+
|
|
14
25
|
- Bump `@metamask/base-controller` to `^4.1.1` ([#3821](https://github.com/MetaMask/core/pull/3821))
|
|
15
26
|
- Bump `@metamask/message-manager` to `^7.3.8` ([#3821](https://github.com/MetaMask/core/pull/3821))
|
|
16
27
|
|
|
17
28
|
### Removed
|
|
29
|
+
|
|
18
30
|
- Remove `peerDependency` and `devDependency` upon `@metamask/preferences-controller` ([#3799](https://github.com/MetaMask/core/pull/3799))
|
|
19
31
|
- This dependency was just used to access the types of four methods. Those types are now inlined instead.
|
|
20
32
|
|
|
21
33
|
## [12.1.0]
|
|
34
|
+
|
|
22
35
|
### Added
|
|
36
|
+
|
|
23
37
|
- Add methods to support ERC-4337 accounts ([#3602](https://github.com/MetaMask/core/pull/3602))
|
|
24
38
|
|
|
25
39
|
### Changed
|
|
40
|
+
|
|
26
41
|
- Bump `@metamask/keyring-api` to ^3.0.0 ([#3747](https://github.com/MetaMask/core/pull/3747))
|
|
27
42
|
- Bump @metamask/eth-keyring-controller from 17.0.0 to 17.0.1 ([#3805](https://github.com/MetaMask/core/pull/3805))
|
|
28
43
|
- Bump `@metamask/utils` to `^8.3.0` ([#3769](https://github.com/MetaMask/core/pull/3769))
|
|
29
44
|
|
|
30
45
|
### Fixed
|
|
46
|
+
|
|
31
47
|
- Fix custody keyring name ([#3803](https://github.com/MetaMask/core/pull/3803))
|
|
32
48
|
|
|
33
49
|
## [12.0.0]
|
|
50
|
+
|
|
34
51
|
### Changed
|
|
52
|
+
|
|
35
53
|
- **BREAKING:** Bump `@metamask/preferences-controller` to ^6.0.0
|
|
36
54
|
|
|
37
55
|
## [11.0.0]
|
|
56
|
+
|
|
38
57
|
### Changed
|
|
58
|
+
|
|
39
59
|
- **BREAKING:** Bump `@metamask/preferences-controller` peer dependency from `^5.0.0` to `^5.0.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
40
60
|
- Bump `@metamask/base-controller` to `^4.0.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
41
61
|
- Bump `@metamask/eth-keyring-controller` to `^15.1.0` ([#3617](https://github.com/MetaMask/core/pull/3617))
|
|
@@ -44,79 +64,104 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
44
64
|
- Update `forgetQRDevice` to return an object containing `removedAccounts` and `remainingAccounts` ([#3641](https://github.com/MetaMask/core/pull/3641))
|
|
45
65
|
|
|
46
66
|
### Fixed
|
|
67
|
+
|
|
47
68
|
- Remove `@metamask/preferences-controller` dependency ([#3607](https://github.com/MetaMask/core/pull/3607))
|
|
48
69
|
|
|
49
70
|
## [10.0.0]
|
|
71
|
+
|
|
50
72
|
### Changed
|
|
73
|
+
|
|
51
74
|
- **BREAKING:** Bump `@metamask/base-controller` to ^4.0.0 ([#2063](https://github.com/MetaMask/core/pull/2063))
|
|
52
75
|
- This is breaking because the type of the `messenger` has backward-incompatible changes. See the changelog for this package for more.
|
|
53
76
|
- Bump `@metamask/message-manager` to ^7.3.6 ([#2063](https://github.com/MetaMask/core/pull/2063))
|
|
54
77
|
- Bump `@metamask/preferences-controller` to ^4.5.0 ([#2063](https://github.com/MetaMask/core/pull/2063))
|
|
55
78
|
|
|
56
79
|
## [9.0.0]
|
|
80
|
+
|
|
57
81
|
### Added
|
|
82
|
+
|
|
58
83
|
- Add `KeyringController:persistAllKeyrings` messenger action ([#1965](https://github.com/MetaMask/core/pull/1965))
|
|
59
84
|
|
|
60
85
|
### Changed
|
|
61
|
-
|
|
86
|
+
|
|
87
|
+
- **BREAKING** Change `encryptor` constructor option property type to `GenericEncryptor | ExportableKeyEncryptor | undefined` ([#2041](https://github.com/MetaMask/core/pull/2041))
|
|
62
88
|
- When the controller is instantiated with `cacheEncryptionKey: true`, `encryptor` may no longer be of type `GenericEncryptor`.
|
|
63
89
|
- Bump dependency on `@metamask/scure-bip39` 2.1.1 ([#1868](https://github.com/MetaMask/core/pull/1868))
|
|
64
90
|
- Bump dependency on `@metamask/utils` to 8.2.0 ([#1957](https://github.com/MetaMask/core/pull/1957))
|
|
65
91
|
- Bump @metamask/eth-keyring-controller to 14.0.0 ([#1771](https://github.com/MetaMask/core/pull/1771))
|
|
66
92
|
|
|
67
93
|
## [8.1.0]
|
|
94
|
+
|
|
68
95
|
### Changed
|
|
96
|
+
|
|
69
97
|
- Adds additional options to KeyringTypes enum ([#1839](https://github.com/MetaMask/core/pull/1839))
|
|
70
98
|
|
|
71
99
|
## [8.0.3]
|
|
100
|
+
|
|
72
101
|
### Changed
|
|
102
|
+
|
|
73
103
|
- `signTransaction` now accepts an optional `opts: Record<string, unknown>` argument to support `signTransaction` from `Keyring` type ([#1789](https://github.com/MetaMask/core/pull/1789))
|
|
74
104
|
- Bump dependency and peer dependency on `@metamask/preferences-controller` to ^4.4.3
|
|
75
105
|
|
|
76
106
|
## [8.0.2]
|
|
107
|
+
|
|
77
108
|
### Changed
|
|
109
|
+
|
|
78
110
|
- Bump dependency on `@metamask/utils` to ^8.1.0 ([#1639](https://github.com/MetaMask/core/pull/1639))
|
|
79
111
|
- Bump dependency on `@metamask/base-controller` to ^3.2.3
|
|
80
112
|
- Bump dependency on `@metamask/message-manager` to ^7.3.5
|
|
81
113
|
|
|
82
114
|
### Fixed
|
|
115
|
+
|
|
83
116
|
- Update `removeAccount` to remove call to `PreferencesController.removeIdentity` as `PreferencesController` already handles account removal side effects through messenger events ([#1759](https://github.com/MetaMask/core/pull/1759))
|
|
84
117
|
|
|
85
118
|
## [8.0.1]
|
|
119
|
+
|
|
86
120
|
### Changed
|
|
121
|
+
|
|
87
122
|
- Update TypeScript to v4.8.x ([#1718](https://github.com/MetaMask/core/pull/1718))
|
|
88
123
|
|
|
89
124
|
### Fixed
|
|
125
|
+
|
|
90
126
|
- Removed `keyringTypes` from `memStore` ([#1710](https://github.com/MetaMask/core/pull/1710))
|
|
91
127
|
- This property was accidentally getting copied into the memstore from the internal keyring controller. It was causing errors because there is no metadata for this state property.
|
|
92
128
|
|
|
93
129
|
## [8.0.0]
|
|
130
|
+
|
|
94
131
|
### Added
|
|
132
|
+
|
|
95
133
|
- Add `getQRKeyring(): QRKeyring | undefined` method
|
|
96
134
|
- Add `KeyringController:qrKeyringStateChange` messenger event
|
|
97
135
|
- The event emits updates from the internal `QRKeyring` instance, if there's one
|
|
98
136
|
|
|
99
137
|
### Changed
|
|
138
|
+
|
|
100
139
|
- **BREAKING:** addNewKeyring(type) return type changed from Promise<Keyring<Json>> to Promise<unknown>
|
|
101
140
|
- When calling with QRKeyring type the keyring instance is retrieved or created (no multiple QRKeyring instances possible)
|
|
102
141
|
- Bump dependency on `@metamask/message-manager` to ^7.3.3
|
|
103
142
|
- Bump dependency on `@metamask/preferences-controller` to ^4.4.1
|
|
104
143
|
|
|
105
144
|
### Fixed
|
|
145
|
+
|
|
106
146
|
- Fix `addNewAccountForKeyring` for `CustodyKeyring` ([#1694](https://github.com/MetaMask/core/pull/1694))
|
|
107
147
|
|
|
108
148
|
## [7.5.0]
|
|
149
|
+
|
|
109
150
|
### Added
|
|
151
|
+
|
|
110
152
|
- Add `KeyringController` messenger actions ([#1691](https://github.com/MetaMask/core/pull/1691))
|
|
111
153
|
- `KeyringController:getAccounts`
|
|
112
154
|
- `KeyringController:getKeyringsByType`
|
|
113
155
|
- `KeyringController:getKeyringForAccount`
|
|
114
156
|
|
|
115
157
|
### Changed
|
|
158
|
+
|
|
116
159
|
- Bump `@metamask/eth-sig-util` from 6.0.0 to 7.0.0 ([#1669](https://github.com/MetaMask/core/pull/1669))
|
|
117
160
|
|
|
118
161
|
## [7.4.0]
|
|
162
|
+
|
|
119
163
|
### Added
|
|
164
|
+
|
|
120
165
|
- Add `KeyringController` messenger actions ([#1654](https://github.com/MetaMask/core/pull/1654))
|
|
121
166
|
- `KeyringController:signMessage`
|
|
122
167
|
- `KeyringController:signPersonalMessage`
|
|
@@ -125,26 +170,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
125
170
|
- `KeyringController:getEncryptionPublicKey`
|
|
126
171
|
|
|
127
172
|
## [7.3.0]
|
|
173
|
+
|
|
128
174
|
### Added
|
|
175
|
+
|
|
129
176
|
- Add `decryptMessage` method ([#1596](https://github.com/MetaMask/core/pull/1596))
|
|
130
177
|
|
|
131
178
|
## [7.2.0]
|
|
179
|
+
|
|
132
180
|
### Added
|
|
181
|
+
|
|
133
182
|
- Add `addNewAccountForKeyring` method ([#1591](https://github.com/MetaMask/core/pull/1591))
|
|
134
183
|
- Add `addNewKeyring` method ([#1594](https://github.com/MetaMask/core/pull/1594))
|
|
135
184
|
- Add `persistAllKeyrings` method ([#1574](https://github.com/MetaMask/core/pull/1574))
|
|
136
185
|
|
|
137
186
|
### Changed
|
|
187
|
+
|
|
138
188
|
- Bump dependency on `@metamask/base-controller` to ^3.2.1
|
|
139
189
|
- Bump dependency on `@metamask/message-manager` to ^7.3.1
|
|
140
190
|
- Bump dependency and peer dependency on `@metamask/preferences-controller` to ^4.4.0
|
|
141
191
|
|
|
142
192
|
## [7.1.0]
|
|
193
|
+
|
|
143
194
|
### Added
|
|
195
|
+
|
|
144
196
|
- Add `getEncryptionPublicKey` method on KeyringController ([#1569](https://github.com/MetaMask/core/pull/1569))
|
|
145
197
|
|
|
146
198
|
## [7.0.0]
|
|
199
|
+
|
|
147
200
|
### Changed
|
|
201
|
+
|
|
148
202
|
- **BREAKING**: Remove `keyringTypes` property from the KeyringController state ([#1441](https://github.com/MetaMask/core/pull/1441))
|
|
149
203
|
- **BREAKING**: Constructor `KeyringControllerOptions` type changed ([#1441](https://github.com/MetaMask/core/pull/1441))
|
|
150
204
|
- The `KeyringControllerOptions.state` accepted type is now `{ vault?: string }`
|
|
@@ -164,16 +218,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
164
218
|
- Update `@keystonehq/metamask-airgapped-keyring` to `^0.13.1` ([#1514](https://github.com/MetaMask/core/pull/1514))
|
|
165
219
|
|
|
166
220
|
## [6.1.0]
|
|
221
|
+
|
|
167
222
|
### Changed
|
|
223
|
+
|
|
168
224
|
- Bump @metamask/eth-sig-util to ^6.0.0 ([#1483](https://github.com/MetaMask/core/pull/1483))
|
|
169
225
|
|
|
170
226
|
## [6.0.0]
|
|
227
|
+
|
|
171
228
|
### Added
|
|
229
|
+
|
|
172
230
|
- Add messenger events `KeyringController:lock` and `KeyringController:unlock`, emitted when the inner EthKeyringController is locked/unlocked ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
173
231
|
- Also add corresponding types `KeyringControllerLockEvent` and `KeyringControllerUnlockEvent`
|
|
174
232
|
- Add `KeyringController:accountRemoved` event, fired whenever an account is removed through `removeAccount` ([#1416](https://github.com/MetaMask/core/pull/1416))
|
|
175
233
|
|
|
176
234
|
### Changed
|
|
235
|
+
|
|
177
236
|
- **BREAKING:** Update constructor to take a single argument, an options bag, instead of three arguments ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
178
237
|
- **BREAKING:** Update controller so state is now accessible via `controller.state` instead of `controller.store.getState()` ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
179
238
|
- **BREAKING:** Update KeyringController to take a required `messenger` option ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
@@ -200,6 +259,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
200
259
|
- Add `immer` as a dependency ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
201
260
|
|
|
202
261
|
### Removed
|
|
262
|
+
|
|
203
263
|
- **BREAKING:** Remove `subscribe` and `unsubscribe` methods ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
204
264
|
- State changes can be directly subscribed to (or unsubscribed from) via the messenger if necessary
|
|
205
265
|
- **BREAKING:** Remove `lock` and `unlock` methods ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
@@ -209,11 +269,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
209
269
|
- **BREAKING:** Remove `index` from the `Keyring` type ([#1378](https://github.com/MetaMask/core/pull/1378))
|
|
210
270
|
|
|
211
271
|
## [5.1.0]
|
|
272
|
+
|
|
212
273
|
### Added
|
|
274
|
+
|
|
213
275
|
- Add `cancelQRSynchronization` method ([#1387](https://github.com/MetaMask/core.git/pull/1387))
|
|
214
276
|
|
|
215
277
|
## [5.0.0]
|
|
278
|
+
|
|
216
279
|
### Added
|
|
280
|
+
|
|
217
281
|
- Add support for encryption keys ([#1342](https://github.com/MetaMask/core/pull/1342))
|
|
218
282
|
- The configuration option `cacheEncryptionKey` has been added, along with two new state properties (`encryptionKey` and `encryptionSalt`) and a new method (`submitEncryptionKey`)
|
|
219
283
|
- All new state and config entries are optional, so this will have no effect if you're not using this feature.
|
|
@@ -222,9 +286,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
222
286
|
- Add deprecated `getKeyringForAccount` and `getKeyringsByType` methods ([#1376](https://github.com/MetaMask/core/pull/1376), [#1386](https://github.com/MetaMask/core/pull/1386))
|
|
223
287
|
|
|
224
288
|
### Changed
|
|
289
|
+
|
|
225
290
|
- **BREAKING:** Bump to Node 16 ([#1262](https://github.com/MetaMask/core/pull/1262))
|
|
226
291
|
- **BREAKING:** Change return type of `createNewVaultAndRestore` from `string | number[]` to `Uint8Array` ([#1349](https://github.com/MetaMask/core/pull/1349))
|
|
227
|
-
- **BREAKING:** Change return type of `verifySeedPhrase` from `string` to
|
|
292
|
+
- **BREAKING:** Change return type of `verifySeedPhrase` from `string` to `Uint8Array` ([#1338](https://github.com/MetaMask/core/pull/1338))
|
|
228
293
|
- **BREAKING:** Replace `validatePassword` with `verifyPassword` ([#1348](https://github.com/MetaMask/core/pull/1348))
|
|
229
294
|
- `verifyPassword` is asynchronous, unlike `validatePassword` which was not.
|
|
230
295
|
- `verifyPassword` does not return a boolean to indicate whether the password is valid. Instead an error is thrown when it's invalid.
|
|
@@ -242,6 +307,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
242
307
|
- Update `@metamask/preferences-controller` dependency
|
|
243
308
|
|
|
244
309
|
### Fixed
|
|
310
|
+
|
|
245
311
|
- Improve validation of `from` address in `signTypedMessage` ([#1293](https://github.com/MetaMask/core/pull/1293))
|
|
246
312
|
- Improve private key validation in `importAccountWithStrategy` ([#1297](https://github.com/MetaMask/core/pull/1297))
|
|
247
313
|
- A more helpful error is now thrown when the given private key has the wrong length
|
|
@@ -250,32 +316,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
250
316
|
- The old behavior was especially confusing because the `subscribe` method is overridden to return state change events from the internal `EthKeyingController` state, resulting in state change events being out of sync with controller state. They should be the same now.
|
|
251
317
|
|
|
252
318
|
## [4.0.0]
|
|
319
|
+
|
|
253
320
|
### Removed
|
|
321
|
+
|
|
254
322
|
- **BREAKING:** Remove `isomorphic-fetch` ([#1106](https://github.com/MetaMask/controllers/pull/1106))
|
|
255
323
|
- Consumers must now import `isomorphic-fetch` or another polyfill themselves if they are running in an environment without `fetch`
|
|
256
324
|
|
|
257
325
|
## [3.0.0]
|
|
326
|
+
|
|
258
327
|
### Changed
|
|
328
|
+
|
|
259
329
|
- **BREAKING:**: Bump eth-keyring-controller version to @metamask/eth-keyring-controller v10 ([#1072](https://github.com/MetaMask/core.git/pull/1072))
|
|
260
|
-
- `exportSeedPhrase` now returns a `Uint8Array` typed SRP (can be converted to a string using [this approach](https://github.com/MetaMask/eth-hd-keyring/blob/53b0570559595ba5b3fd8c80e900d847cd6dee3d/index.js#L40)).
|
|
330
|
+
- `exportSeedPhrase` now returns a `Uint8Array` typed SRP (can be converted to a string using [this approach](https://github.com/MetaMask/eth-hd-keyring/blob/53b0570559595ba5b3fd8c80e900d847cd6dee3d/index.js#L40)). It was previously a Buffer.
|
|
261
331
|
- The HD keyring included with the keyring controller has been updated from v4 to v6. See [the `eth-hd-keyring` changelog entries for v5 and v6](https://github.com/MetaMask/eth-hd-keyring/blob/main/CHANGELOG.md#600) for further details on breaking changes.
|
|
262
332
|
|
|
263
333
|
## [2.0.0]
|
|
334
|
+
|
|
264
335
|
### Changed
|
|
336
|
+
|
|
265
337
|
- **BREAKING:**: Require ES2020 support or greater ([#914](https://github.com/MetaMask/controllers/pull/914))
|
|
266
|
-
|
|
338
|
+
- This change was introduced by an indirect dependency on `ethereumjs/util` v8
|
|
267
339
|
- Rename this repository to `core` ([#1031](https://github.com/MetaMask/controllers/pull/1031))
|
|
268
340
|
- Update `@metamask/eth-sig-util` to v5 ([#914](https://github.com/MetaMask/controllers/pull/914))
|
|
269
341
|
- Update `@metamask/controller-utils` package ([#1041](https://github.com/MetaMask/controllers/pull/1041))
|
|
270
342
|
|
|
271
343
|
## [1.0.1]
|
|
344
|
+
|
|
272
345
|
### Changed
|
|
346
|
+
|
|
273
347
|
- Relax dependencies on `@metamask/base-controller`, `@metamask/controller-utils`, `@metamask/message-manager`, and `@metamask/preferences-controller` (use `^` instead of `~`) ([#998](https://github.com/MetaMask/core/pull/998))
|
|
274
348
|
|
|
275
349
|
## [1.0.0]
|
|
350
|
+
|
|
276
351
|
### Added
|
|
352
|
+
|
|
277
353
|
- Initial release
|
|
354
|
+
|
|
278
355
|
- As a result of converting our shared controllers repo into a monorepo ([#831](https://github.com/MetaMask/core/pull/831)), we've created this package from select parts of [`@metamask/controllers` v33.0.0](https://github.com/MetaMask/core/tree/v33.0.0), namely:
|
|
356
|
+
|
|
279
357
|
- Everything in `src/keyring`
|
|
280
358
|
|
|
281
359
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
@@ -2,10 +2,10 @@ import type { TxData, TypedTransaction } from '@ethereumjs/tx';
|
|
|
2
2
|
import type { MetaMaskKeyring as QRKeyring, IKeyringState as IQRKeyringState } from '@keystonehq/metamask-airgapped-keyring';
|
|
3
3
|
import type { RestrictedControllerMessenger } from '@metamask/base-controller';
|
|
4
4
|
import { BaseController } from '@metamask/base-controller';
|
|
5
|
-
import
|
|
5
|
+
import * as encryptorUtils from '@metamask/browser-passworder';
|
|
6
6
|
import type { EthBaseTransaction, EthBaseUserOperation, EthKeyring, EthUserOperation, EthUserOperationPatch } from '@metamask/keyring-api';
|
|
7
7
|
import type { PersonalMessageParams, TypedMessageParams } from '@metamask/message-manager';
|
|
8
|
-
import type { Eip1024EncryptedData, Hex, Json } from '@metamask/utils';
|
|
8
|
+
import type { Eip1024EncryptedData, Hex, Json, KeyringClass } from '@metamask/utils';
|
|
9
9
|
import type { Patch } from 'immer';
|
|
10
10
|
declare const name = "KeyringController";
|
|
11
11
|
/**
|
|
@@ -18,9 +18,15 @@ export declare enum KeyringTypes {
|
|
|
18
18
|
trezor = "Trezor Hardware",
|
|
19
19
|
ledger = "Ledger Hardware",
|
|
20
20
|
lattice = "Lattice Hardware",
|
|
21
|
-
snap = "Snap Keyring"
|
|
22
|
-
custody = "Custody - JSONRPC"
|
|
21
|
+
snap = "Snap Keyring"
|
|
23
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Custody keyring types are a special case, as they are not a single type
|
|
25
|
+
* but they all start with the prefix "Custody".
|
|
26
|
+
* @param keyringType - The type of the keyring.
|
|
27
|
+
* @returns Whether the keyring type is a custody keyring.
|
|
28
|
+
*/
|
|
29
|
+
export declare const isCustodyKeyring: (keyringType: string) => boolean;
|
|
24
30
|
/**
|
|
25
31
|
* @type KeyringControllerState
|
|
26
32
|
*
|
|
@@ -116,10 +122,6 @@ export declare type KeyringControllerActions = KeyringControllerGetStateAction |
|
|
|
116
122
|
export declare type KeyringControllerEvents = KeyringControllerStateChangeEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent | KeyringControllerAccountRemovedEvent | KeyringControllerQRKeyringStateChangeEvent;
|
|
117
123
|
export declare type KeyringControllerMessenger = RestrictedControllerMessenger<typeof name, KeyringControllerActions, KeyringControllerEvents, string, string>;
|
|
118
124
|
export declare type KeyringControllerOptions = {
|
|
119
|
-
syncIdentities: (addresses: string[]) => string;
|
|
120
|
-
updateIdentities: (addresses: string[]) => void;
|
|
121
|
-
setSelectedAddress: (selectedAddress: string) => void;
|
|
122
|
-
setAccountLabel?: (address: string, label: string) => void;
|
|
123
125
|
keyringBuilders?: {
|
|
124
126
|
(): EthKeyring<Json>;
|
|
125
127
|
type: string;
|
|
@@ -163,6 +165,106 @@ export declare enum SignTypedDataVersion {
|
|
|
163
165
|
V3 = "V3",
|
|
164
166
|
V4 = "V4"
|
|
165
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* A serialized keyring object.
|
|
170
|
+
*/
|
|
171
|
+
export declare type SerializedKeyring = {
|
|
172
|
+
type: string;
|
|
173
|
+
data: Json;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* A generic encryptor interface that supports encrypting and decrypting
|
|
177
|
+
* serializable data with a password.
|
|
178
|
+
*/
|
|
179
|
+
export declare type GenericEncryptor = {
|
|
180
|
+
/**
|
|
181
|
+
* Encrypts the given object with the given password.
|
|
182
|
+
*
|
|
183
|
+
* @param password - The password to encrypt with.
|
|
184
|
+
* @param object - The object to encrypt.
|
|
185
|
+
* @returns The encrypted string.
|
|
186
|
+
*/
|
|
187
|
+
encrypt: (password: string, object: Json) => Promise<string>;
|
|
188
|
+
/**
|
|
189
|
+
* Decrypts the given encrypted string with the given password.
|
|
190
|
+
*
|
|
191
|
+
* @param password - The password to decrypt with.
|
|
192
|
+
* @param encryptedString - The encrypted string to decrypt.
|
|
193
|
+
* @returns The decrypted object.
|
|
194
|
+
*/
|
|
195
|
+
decrypt: (password: string, encryptedString: string) => Promise<unknown>;
|
|
196
|
+
/**
|
|
197
|
+
* Optional vault migration helper. Checks if the provided vault is up to date
|
|
198
|
+
* with the desired encryption algorithm.
|
|
199
|
+
*
|
|
200
|
+
* @param vault - The encrypted string to check.
|
|
201
|
+
* @param targetDerivationParams - The desired target derivation params.
|
|
202
|
+
* @returns The updated encrypted string.
|
|
203
|
+
*/
|
|
204
|
+
isVaultUpdated?: (vault: string, targetDerivationParams?: encryptorUtils.KeyDerivationOptions) => boolean;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* An encryptor interface that supports encrypting and decrypting
|
|
208
|
+
* serializable data with a password, and exporting and importing keys.
|
|
209
|
+
*/
|
|
210
|
+
export declare type ExportableKeyEncryptor = GenericEncryptor & {
|
|
211
|
+
/**
|
|
212
|
+
* Encrypts the given object with the given encryption key.
|
|
213
|
+
*
|
|
214
|
+
* @param key - The encryption key to encrypt with.
|
|
215
|
+
* @param object - The object to encrypt.
|
|
216
|
+
* @returns The encryption result.
|
|
217
|
+
*/
|
|
218
|
+
encryptWithKey: (key: unknown, object: Json) => Promise<encryptorUtils.EncryptionResult>;
|
|
219
|
+
/**
|
|
220
|
+
* Encrypts the given object with the given password, and returns the
|
|
221
|
+
* encryption result and the exported key string.
|
|
222
|
+
*
|
|
223
|
+
* @param password - The password to encrypt with.
|
|
224
|
+
* @param object - The object to encrypt.
|
|
225
|
+
* @param salt - The optional salt to use for encryption.
|
|
226
|
+
* @returns The encrypted string and the exported key string.
|
|
227
|
+
*/
|
|
228
|
+
encryptWithDetail: (password: string, object: Json, salt?: string) => Promise<encryptorUtils.DetailedEncryptionResult>;
|
|
229
|
+
/**
|
|
230
|
+
* Decrypts the given encrypted string with the given encryption key.
|
|
231
|
+
*
|
|
232
|
+
* @param key - The encryption key to decrypt with.
|
|
233
|
+
* @param encryptedString - The encrypted string to decrypt.
|
|
234
|
+
* @returns The decrypted object.
|
|
235
|
+
*/
|
|
236
|
+
decryptWithKey: (key: unknown, encryptedString: string) => Promise<unknown>;
|
|
237
|
+
/**
|
|
238
|
+
* Decrypts the given encrypted string with the given password, and returns
|
|
239
|
+
* the decrypted object and the salt and exported key string used for
|
|
240
|
+
* encryption.
|
|
241
|
+
*
|
|
242
|
+
* @param password - The password to decrypt with.
|
|
243
|
+
* @param encryptedString - The encrypted string to decrypt.
|
|
244
|
+
* @returns The decrypted object and the salt and exported key string used for
|
|
245
|
+
* encryption.
|
|
246
|
+
*/
|
|
247
|
+
decryptWithDetail: (password: string, encryptedString: string) => Promise<encryptorUtils.DetailedDecryptResult>;
|
|
248
|
+
/**
|
|
249
|
+
* Generates an encryption key from exported key string.
|
|
250
|
+
*
|
|
251
|
+
* @param key - The exported key string.
|
|
252
|
+
* @returns The encryption key.
|
|
253
|
+
*/
|
|
254
|
+
importKey: (key: string) => Promise<unknown>;
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Get builder function for `Keyring`
|
|
258
|
+
*
|
|
259
|
+
* Returns a builder function for `Keyring` with a `type` property.
|
|
260
|
+
*
|
|
261
|
+
* @param KeyringConstructor - The Keyring class for the builder.
|
|
262
|
+
* @returns A builder function for the given Keyring.
|
|
263
|
+
*/
|
|
264
|
+
export declare function keyringBuilderFactory(KeyringConstructor: KeyringClass<Json>): {
|
|
265
|
+
(): import("@metamask/utils").Keyring<Json>;
|
|
266
|
+
type: string;
|
|
267
|
+
};
|
|
166
268
|
export declare const getDefaultKeyringState: () => KeyringControllerState;
|
|
167
269
|
/**
|
|
168
270
|
* Controller responsible for establishing and managing user identity.
|
|
@@ -176,18 +278,10 @@ export declare const getDefaultKeyringState: () => KeyringControllerState;
|
|
|
176
278
|
export declare class KeyringController extends BaseController<typeof name, KeyringControllerState, KeyringControllerMessenger> {
|
|
177
279
|
#private;
|
|
178
280
|
private readonly mutex;
|
|
179
|
-
private readonly syncIdentities;
|
|
180
|
-
private readonly updateIdentities;
|
|
181
|
-
private readonly setSelectedAddress;
|
|
182
|
-
private readonly setAccountLabel?;
|
|
183
281
|
/**
|
|
184
282
|
* Creates a KeyringController instance.
|
|
185
283
|
*
|
|
186
284
|
* @param options - Initial options used to configure this controller
|
|
187
|
-
* @param options.syncIdentities - Sync identities with the given list of addresses.
|
|
188
|
-
* @param options.updateIdentities - Generate an identity for each address given that doesn't already have an identity.
|
|
189
|
-
* @param options.setSelectedAddress - Set the selected address.
|
|
190
|
-
* @param options.setAccountLabel - Set a new name for account.
|
|
191
285
|
* @param options.encryptor - An optional object for defining encryption schemes.
|
|
192
286
|
* @param options.keyringBuilders - Set a new name for account.
|
|
193
287
|
* @param options.cacheEncryptionKey - Whether to cache or not encryption key.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringController.d.ts","sourceRoot":"","sources":["../src/KeyringController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyringController.d.ts","sourceRoot":"","sources":["../src/KeyringController.ts"],"names":[],"mappings":"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"}
|