@sidhujag/sysweb3-keyring 2.1.2 → 2.1.3
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/README.md +8 -0
- package/cjs/current-vault-refusal.js +6 -0
- package/cjs/current-vault-refusal.js.map +1 -0
- package/cjs/evm-fees.js +29 -1
- package/cjs/evm-fees.js.map +1 -1
- package/cjs/keyring-core.js +349 -84
- package/cjs/keyring-core.js.map +1 -1
- package/cjs/keyring-manager.js +100 -4
- package/cjs/keyring-manager.js.map +1 -1
- package/cjs/software.js +14 -1
- package/cjs/software.js.map +1 -1
- package/cjs/storage-core.js +44 -4
- package/cjs/storage-core.js.map +1 -1
- package/cjs/transactions/ethereum.js +52 -65
- package/cjs/transactions/ethereum.js.map +1 -1
- package/cjs/transactions/evm-cancellation.js +43 -0
- package/cjs/transactions/evm-cancellation.js.map +1 -0
- package/esm/ledger/dmk-host.js +31 -0
- package/esm/ledger/dmk-host.js.map +1 -0
- package/esm/ledger/dmk-selected-host.js +6 -0
- package/esm/ledger/dmk-selected-host.js.map +1 -0
- package/esm/ledger/dmk-session.js +153 -34
- package/esm/ledger/dmk-session.js.map +1 -1
- package/esm/ledger-host.js +3 -27
- package/esm/ledger-host.js.map +1 -1
- package/package.json +13 -1
- package/types/current-vault-refusal.d.ts +2 -0
- package/types/evm-fees.d.ts +25 -0
- package/types/keyring-core.d.ts +36 -3
- package/types/keyring-manager.d.ts +15 -3
- package/types/ledger/dmk-host.d.ts +7 -0
- package/types/ledger/dmk-selected-host.d.ts +7 -0
- package/types/ledger/dmk-session.d.ts +10 -2
- package/types/ledger-host.d.ts +6 -2
- package/types/software.d.ts +4 -3
- package/types/storage-core.d.ts +3 -1
- package/types/storage.d.ts +1 -1
- package/types/transactions/evm-cancellation.d.ts +10 -0
|
@@ -1,15 +1,49 @@
|
|
|
1
1
|
import { ledgerCancelledError, ledgerHostError, } from './host-types';
|
|
2
|
+
function snapshotDiscoveredDevice(candidate) {
|
|
3
|
+
const invalid = () => ledgerHostError('LEDGER_INVALID_DEVICE', 'Invalid Ledger discovery handle');
|
|
4
|
+
if (!candidate ||
|
|
5
|
+
Object.getPrototypeOf(candidate) !== Object.prototype ||
|
|
6
|
+
'sessionId' in candidate)
|
|
7
|
+
throw invalid();
|
|
8
|
+
const ownValue = (key) => Object.getOwnPropertyDescriptor(candidate, key)?.value;
|
|
9
|
+
const id = ownValue('id');
|
|
10
|
+
const transport = ownValue('transport');
|
|
11
|
+
const name = ownValue('name');
|
|
12
|
+
const deviceModel = ownValue('deviceModel');
|
|
13
|
+
if (typeof id !== 'string' ||
|
|
14
|
+
!id.trim() ||
|
|
15
|
+
typeof transport !== 'string' ||
|
|
16
|
+
!transport.trim() ||
|
|
17
|
+
typeof name !== 'string' ||
|
|
18
|
+
!deviceModel ||
|
|
19
|
+
typeof deviceModel !== 'object' ||
|
|
20
|
+
Array.isArray(deviceModel))
|
|
21
|
+
throw invalid();
|
|
22
|
+
// The vendor uses transport and ID to connect. Keep a stable snapshot
|
|
23
|
+
// without copying extra fields, particularly the reconnect discriminator.
|
|
24
|
+
return Object.freeze({
|
|
25
|
+
id,
|
|
26
|
+
transport,
|
|
27
|
+
name,
|
|
28
|
+
deviceModel: deviceModel,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
2
31
|
/** One owner and one semantic operation at a time, across EVM and UTXO apps. */
|
|
3
32
|
export class LedgerDmkSession {
|
|
4
|
-
constructor(dmk) {
|
|
33
|
+
constructor(dmk, requireDeviceSelection = false) {
|
|
5
34
|
this.dmk = dmk;
|
|
35
|
+
this.requireDeviceSelection = requireDeviceSelection;
|
|
6
36
|
this.generation = 0;
|
|
7
37
|
this.queue = Promise.resolve();
|
|
8
38
|
this.closing = Promise.resolve();
|
|
9
39
|
this.invalidationListeners = new Set();
|
|
10
40
|
}
|
|
41
|
+
get readyConnection() {
|
|
42
|
+
// A provisional lease belongs to cleanup until its picker accepts handoff.
|
|
43
|
+
return this.connection?.pendingSelection ? undefined : this.connection;
|
|
44
|
+
}
|
|
11
45
|
getStatus() {
|
|
12
|
-
return { connected: this.
|
|
46
|
+
return { connected: this.readyConnection !== undefined };
|
|
13
47
|
}
|
|
14
48
|
onInvalidated(listener) {
|
|
15
49
|
this.invalidationListeners.add(listener);
|
|
@@ -17,35 +51,95 @@ export class LedgerDmkSession {
|
|
|
17
51
|
}
|
|
18
52
|
invalidate() {
|
|
19
53
|
this.generation++;
|
|
54
|
+
this.deviceSelection = undefined;
|
|
20
55
|
for (const listener of this.invalidationListeners)
|
|
21
56
|
listener();
|
|
22
57
|
}
|
|
58
|
+
/** The platform passes one candidate from its own current DMK picker. */
|
|
59
|
+
beginDeviceSelection(signal) {
|
|
60
|
+
if (signal?.aborted)
|
|
61
|
+
throw ledgerCancelledError();
|
|
62
|
+
if (this.connection || this.connectionAttempt)
|
|
63
|
+
throw this.connectionBusy();
|
|
64
|
+
this.requireDeviceSelection = true;
|
|
65
|
+
const selection = {};
|
|
66
|
+
this.deviceSelection = selection;
|
|
67
|
+
let used = false;
|
|
68
|
+
const assertCurrent = () => {
|
|
69
|
+
if (this.deviceSelection !== selection || signal?.aborted)
|
|
70
|
+
throw ledgerCancelledError();
|
|
71
|
+
};
|
|
72
|
+
return async (candidate) => {
|
|
73
|
+
assertCurrent();
|
|
74
|
+
if (used)
|
|
75
|
+
throw ledgerCancelledError();
|
|
76
|
+
used = true;
|
|
77
|
+
try {
|
|
78
|
+
const device = snapshotDiscoveredDevice(candidate);
|
|
79
|
+
assertCurrent();
|
|
80
|
+
await this.startConnection({}, { signal }, { device, owner: selection });
|
|
81
|
+
const connection = this.connection;
|
|
82
|
+
// The connection listener is gone by this handoff. A close in that
|
|
83
|
+
// interval must still retire this selection's newly acquired session.
|
|
84
|
+
if (connection?.pendingSelection === selection && signal?.aborted)
|
|
85
|
+
await this.disconnect();
|
|
86
|
+
assertCurrent();
|
|
87
|
+
if (connection?.pendingSelection !== selection)
|
|
88
|
+
throw ledgerCancelledError();
|
|
89
|
+
connection.pendingSelection = undefined;
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
if (this.deviceSelection === selection)
|
|
93
|
+
this.deviceSelection = undefined;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
23
97
|
/** Device selection belongs to the visible host, never to a dapp request. */
|
|
24
98
|
connect(request = {}, options = {}) {
|
|
25
99
|
if (options.signal?.aborted)
|
|
26
100
|
return Promise.reject(ledgerCancelledError());
|
|
27
|
-
if (this.sessionId)
|
|
101
|
+
if (this.readyConnection?.sessionId)
|
|
28
102
|
return Promise.resolve();
|
|
103
|
+
if (this.requireDeviceSelection)
|
|
104
|
+
return Promise.reject(ledgerHostError('HARDWARE_SIGNER_UNAVAILABLE', 'Select a Ledger device first'));
|
|
105
|
+
return this.startConnection(request, options);
|
|
106
|
+
}
|
|
107
|
+
connectionBusy() {
|
|
108
|
+
return ledgerHostError('HARDWARE_SIGNER_BUSY', 'Ledger connection is already pending or active');
|
|
109
|
+
}
|
|
110
|
+
startConnection(request, options, selected) {
|
|
111
|
+
if (options.signal?.aborted)
|
|
112
|
+
return Promise.reject(ledgerCancelledError());
|
|
29
113
|
if (this.connectionAttempt)
|
|
30
|
-
return Promise.reject(
|
|
114
|
+
return Promise.reject(this.connectionBusy());
|
|
31
115
|
const controller = new AbortController();
|
|
32
116
|
this.connectionAbort = controller;
|
|
33
117
|
const abort = () => controller.abort();
|
|
34
118
|
options.signal?.addEventListener('abort', abort, { once: true });
|
|
35
|
-
const attempt = this.connectDevice(request, controller.signal);
|
|
119
|
+
const attempt = this.connectDevice(request, controller.signal, selected);
|
|
36
120
|
this.connectionAttempt = attempt;
|
|
37
|
-
return attempt.finally(() => {
|
|
121
|
+
return attempt.finally(async () => {
|
|
38
122
|
options.signal?.removeEventListener('abort', abort);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
123
|
+
try {
|
|
124
|
+
if (controller.signal.aborted) {
|
|
125
|
+
if (this.connection)
|
|
126
|
+
await this.disconnect();
|
|
127
|
+
else
|
|
128
|
+
await this.closing;
|
|
129
|
+
throw ledgerCancelledError();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
if (this.connectionAttempt === attempt)
|
|
134
|
+
this.connectionAttempt = undefined;
|
|
135
|
+
if (this.connectionAbort === controller)
|
|
136
|
+
this.connectionAbort = undefined;
|
|
137
|
+
}
|
|
43
138
|
});
|
|
44
139
|
}
|
|
45
|
-
|
|
46
|
-
const generation = this.generation;
|
|
140
|
+
discoverDevice(request, signal) {
|
|
47
141
|
let subscription;
|
|
48
|
-
|
|
142
|
+
return new Promise((resolve, reject) => {
|
|
49
143
|
let settled = false;
|
|
50
144
|
const timer = request.useGrantedDevices
|
|
51
145
|
? setTimeout(() => finish(ledgerHostError('HARDWARE_SIGNER_UNAVAILABLE', 'Select a Ledger device in the Ledger window')), 3000)
|
|
@@ -89,34 +183,56 @@ export class LedgerDmkSession {
|
|
|
89
183
|
if (settled)
|
|
90
184
|
subscription?.unsubscribe();
|
|
91
185
|
});
|
|
92
|
-
|
|
186
|
+
}
|
|
187
|
+
async connectDevice(request, signal, selected) {
|
|
188
|
+
const generation = this.generation;
|
|
189
|
+
const isCurrent = () => generation === this.generation && !signal.aborted;
|
|
190
|
+
const device = selected?.device ?? (await this.discoverDevice(request, signal));
|
|
191
|
+
if (!isCurrent())
|
|
93
192
|
throw ledgerCancelledError();
|
|
94
193
|
await this.closing;
|
|
194
|
+
if (!isCurrent())
|
|
195
|
+
throw ledgerCancelledError();
|
|
95
196
|
const sessionId = await this.dmk.connect({ device });
|
|
96
|
-
|
|
197
|
+
const connection = { sessionId, pendingSelection: selected?.owner };
|
|
198
|
+
let subscription;
|
|
199
|
+
let ended = false;
|
|
200
|
+
try {
|
|
201
|
+
if (!isCurrent())
|
|
202
|
+
throw ledgerCancelledError();
|
|
203
|
+
subscription = this.dmk.getDeviceSessionState({ sessionId }).subscribe({
|
|
204
|
+
error: () => {
|
|
205
|
+
ended = true;
|
|
206
|
+
if (isCurrent() && this.connection === connection)
|
|
207
|
+
void this.disconnect();
|
|
208
|
+
},
|
|
209
|
+
complete: () => {
|
|
210
|
+
ended = true;
|
|
211
|
+
if (isCurrent() && this.connection === connection) {
|
|
212
|
+
this.connection = undefined;
|
|
213
|
+
this.invalidate();
|
|
214
|
+
this.activeAbort?.abort();
|
|
215
|
+
this.activeCancel?.();
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
if (ended || !isCurrent())
|
|
220
|
+
throw ledgerCancelledError();
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
subscription?.unsubscribe();
|
|
97
224
|
await this.dmk.disconnect({ sessionId }).catch(() => undefined);
|
|
98
|
-
throw
|
|
225
|
+
throw error;
|
|
99
226
|
}
|
|
100
|
-
this.
|
|
101
|
-
this.stateSubscription =
|
|
102
|
-
.getDeviceSessionState({ sessionId })
|
|
103
|
-
.subscribe({
|
|
104
|
-
complete: () => {
|
|
105
|
-
if (this.sessionId === sessionId) {
|
|
106
|
-
this.sessionId = undefined;
|
|
107
|
-
this.invalidate();
|
|
108
|
-
this.activeAbort?.abort();
|
|
109
|
-
this.activeCancel?.();
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
});
|
|
227
|
+
this.connection = connection;
|
|
228
|
+
this.stateSubscription = subscription;
|
|
113
229
|
}
|
|
114
230
|
/** Cancel revokes the result and closes I/O; it cannot undo on-device approval. */
|
|
115
231
|
disconnect() {
|
|
116
232
|
this.invalidate();
|
|
117
233
|
this.connectionAbort?.abort();
|
|
118
|
-
const sessionId = this.sessionId;
|
|
119
|
-
this.
|
|
234
|
+
const sessionId = this.connection?.sessionId;
|
|
235
|
+
this.connection = undefined;
|
|
120
236
|
this.activeAbort?.abort();
|
|
121
237
|
this.activeAbort = undefined;
|
|
122
238
|
this.activeCancel?.();
|
|
@@ -131,13 +247,16 @@ export class LedgerDmkSession {
|
|
|
131
247
|
}
|
|
132
248
|
runExclusive(operation, options = {}) {
|
|
133
249
|
const generation = this.generation;
|
|
250
|
+
const admitted = this.readyConnection;
|
|
134
251
|
const run = async () => {
|
|
135
252
|
await this.closing;
|
|
136
|
-
const
|
|
253
|
+
const connection = this.readyConnection;
|
|
137
254
|
const assertCurrent = () => {
|
|
138
255
|
if (generation !== this.generation || options.signal?.aborted)
|
|
139
256
|
throw ledgerCancelledError();
|
|
140
|
-
if (!sessionId ||
|
|
257
|
+
if (!connection?.sessionId ||
|
|
258
|
+
this.readyConnection !== connection ||
|
|
259
|
+
(this.requireDeviceSelection && admitted !== connection))
|
|
141
260
|
throw ledgerHostError('HARDWARE_SIGNER_UNAVAILABLE', 'Connect a Ledger device first');
|
|
142
261
|
};
|
|
143
262
|
assertCurrent();
|
|
@@ -157,7 +276,7 @@ export class LedgerDmkSession {
|
|
|
157
276
|
assertCurrent();
|
|
158
277
|
const context = {
|
|
159
278
|
dmk: this.dmk,
|
|
160
|
-
sessionId: sessionId,
|
|
279
|
+
sessionId: connection.sessionId,
|
|
161
280
|
generation,
|
|
162
281
|
signal: controller.signal,
|
|
163
282
|
assertCurrent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dmk-session.js","sourceRoot":"","sources":["../../../src/ledger/dmk-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dmk-session.js","sourceRoot":"","sources":["../../../src/ledger/dmk-session.ts"],"names":[],"mappings":"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"}
|
package/esm/ledger-host.js
CHANGED
|
@@ -1,36 +1,12 @@
|
|
|
1
1
|
/** Heavy browser host entry. Do not import from the wallet worker or software entry. */
|
|
2
|
-
import { DeviceManagementKitBuilder
|
|
2
|
+
import { DeviceManagementKitBuilder } from '@ledgerhq/device-management-kit';
|
|
3
3
|
import { webHidTransportFactory } from '@ledgerhq/device-transport-kit-web-hid';
|
|
4
|
-
import {
|
|
5
|
-
import { LedgerDmkSession } from './ledger/dmk-session';
|
|
6
|
-
import { createLedgerUtxoAdapter } from './ledger/dmk-utxo';
|
|
7
|
-
import { ledgerHostError } from './ledger/host-types';
|
|
4
|
+
import { createLedgerHostForDmk } from './ledger/dmk-host';
|
|
8
5
|
export function createLedgerDmkHost(config = {}) {
|
|
9
6
|
const candidate = config.dmk ??
|
|
10
7
|
new DeviceManagementKitBuilder()
|
|
11
8
|
.addTransport(webHidTransportFactory)
|
|
12
9
|
.build();
|
|
13
|
-
|
|
14
|
-
'connect',
|
|
15
|
-
'disconnect',
|
|
16
|
-
'executeDeviceAction',
|
|
17
|
-
'startDiscovering',
|
|
18
|
-
'listenToAvailableDevices',
|
|
19
|
-
'getDeviceSessionState',
|
|
20
|
-
]) {
|
|
21
|
-
if (typeof candidate[method] !== 'function')
|
|
22
|
-
throw ledgerHostError('LEDGER_INVALID_HOST', 'Invalid Ledger device manager');
|
|
23
|
-
}
|
|
24
|
-
// Keep upstream exports-only types out of this public declaration. A trusted
|
|
25
|
-
// platform supplies its concrete DMK here; dapps cannot select this object.
|
|
26
|
-
const dmk = candidate;
|
|
27
|
-
const session = new LedgerDmkSession(dmk);
|
|
28
|
-
return {
|
|
29
|
-
connect: (request, options) => session.connect(request, options),
|
|
30
|
-
disconnect: () => session.disconnect(),
|
|
31
|
-
getStatus: () => session.getStatus(),
|
|
32
|
-
evm: createLedgerEvmAdapter(session, config),
|
|
33
|
-
utxo: createLedgerUtxoAdapter(session),
|
|
34
|
-
};
|
|
10
|
+
return createLedgerHostForDmk(candidate, config, config.requireDeviceSelection);
|
|
35
11
|
}
|
|
36
12
|
//# sourceMappingURL=ledger-host.js.map
|
package/esm/ledger-host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-host.js","sourceRoot":"","sources":["../../src/ledger-host.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"ledger-host.js","sourceRoot":"","sources":["../../src/ledger-host.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,sBAAsB,EAAsB,MAAM,mBAAmB,CAAC;AAU/E,MAAM,UAAU,mBAAmB,CACjC,SAA8B,EAAE;IAEhC,MAAM,SAAS,GACb,MAAM,CAAC,GAAG;QACV,IAAI,0BAA0B,EAAE;aAC7B,YAAY,CAAC,sBAAsB,CAAC;aACpC,KAAK,EAAE,CAAC;IACb,OAAO,sBAAsB,CAC3B,SAAS,EACT,MAAM,EACN,MAAM,CAAC,sBAAsB,CAC9B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sidhujag/sysweb3-keyring",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Keyring Manager for UTXO and Web3 Wallets",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -24,6 +24,12 @@
|
|
|
24
24
|
"cjs/transactions/evm-submission.js": [
|
|
25
25
|
"types/transactions/evm-submission.d.ts"
|
|
26
26
|
],
|
|
27
|
+
"cjs/transactions/evm-cancellation": [
|
|
28
|
+
"types/transactions/evm-cancellation.d.ts"
|
|
29
|
+
],
|
|
30
|
+
"cjs/transactions/evm-cancellation.js": [
|
|
31
|
+
"types/transactions/evm-cancellation.d.ts"
|
|
32
|
+
],
|
|
27
33
|
"cjs/transactions/ethereum": [
|
|
28
34
|
"types/transactions/ethereum.d.ts"
|
|
29
35
|
],
|
|
@@ -48,6 +54,12 @@
|
|
|
48
54
|
"esm/ledger-host.js": [
|
|
49
55
|
"types/ledger-host.d.ts"
|
|
50
56
|
],
|
|
57
|
+
"esm/ledger/dmk-selected-host": [
|
|
58
|
+
"types/ledger/dmk-selected-host.d.ts"
|
|
59
|
+
],
|
|
60
|
+
"esm/ledger/dmk-selected-host.js": [
|
|
61
|
+
"types/ledger/dmk-selected-host.d.ts"
|
|
62
|
+
],
|
|
51
63
|
"cjs/ledger/host-types": [
|
|
52
64
|
"types/ledger/host-types.d.ts"
|
|
53
65
|
],
|
package/types/evm-fees.d.ts
CHANGED
|
@@ -35,6 +35,31 @@ export declare function parseEvmFeeQuantity(value: unknown, label?: string): big
|
|
|
35
35
|
* the configured minimum if larger. Callers retain chain/resource bounds.
|
|
36
36
|
*/
|
|
37
37
|
export declare function bufferedEvmGasLimit(estimate: bigint, minimum?: bigint): bigint;
|
|
38
|
+
export type EvmCancellationFeeInput = Readonly<{
|
|
39
|
+
type: 0;
|
|
40
|
+
currentGasPrice: bigint;
|
|
41
|
+
originalGasPrice?: bigint;
|
|
42
|
+
} | {
|
|
43
|
+
type: 2;
|
|
44
|
+
currentMaxFeePerGas: bigint;
|
|
45
|
+
currentMaxPriorityFeePerGas: bigint;
|
|
46
|
+
originalMaxFeePerGas?: bigint;
|
|
47
|
+
originalMaxPriorityFeePerGas?: bigint;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const EVM_CANCELLATION_GAS_LIMIT = 42000n;
|
|
50
|
+
/** Plan only the cancellation fees. The host validates the rates and envelope. */
|
|
51
|
+
export declare function planEvmCancellationFees(input: EvmCancellationFeeInput): Readonly<{
|
|
52
|
+
type: 0;
|
|
53
|
+
gasLimit: 42000n;
|
|
54
|
+
gasPrice: bigint;
|
|
55
|
+
maximumFee: bigint;
|
|
56
|
+
}> | Readonly<{
|
|
57
|
+
type: 2;
|
|
58
|
+
gasLimit: 42000n;
|
|
59
|
+
maxFeePerGas: bigint;
|
|
60
|
+
maxPriorityFeePerGas: bigint;
|
|
61
|
+
maximumFee: bigint;
|
|
62
|
+
}>;
|
|
38
63
|
/**
|
|
39
64
|
* No signer, transport, network registry or provider implementation is imported.
|
|
40
65
|
* Reads are serialized and guarded; RPC failures never become fabricated fees.
|
package/types/keyring-core.d.ts
CHANGED
|
@@ -15,7 +15,32 @@ export interface KeyringStoragePort extends VaultStoragePort {
|
|
|
15
15
|
deleteItem(key: string): Promise<void>;
|
|
16
16
|
/** Legacy adapter capability; fixed native hosts can omit it. */
|
|
17
17
|
setClient?(client: any): void;
|
|
18
|
+
/** Atomically read this authority's current encrypted vault and salt. */
|
|
19
|
+
readDeviceUnlockVaultPair?(): Promise<DeviceUnlockVaultPair | null>;
|
|
18
20
|
}
|
|
21
|
+
export type DeviceUnlockVaultPair = Readonly<{
|
|
22
|
+
vault: string;
|
|
23
|
+
keys: unknown;
|
|
24
|
+
pairFingerprint: string;
|
|
25
|
+
}>;
|
|
26
|
+
export type DeviceUnlockCredential = Readonly<{
|
|
27
|
+
pairFingerprint: string;
|
|
28
|
+
key: Uint8Array;
|
|
29
|
+
}>;
|
|
30
|
+
/** Only a trusted software host may supply this protected credential I/O. */
|
|
31
|
+
export type DeviceUnlockPort = Readonly<{
|
|
32
|
+
/** Transfer ownership of the returned key bytes to the SDK. */
|
|
33
|
+
readCredential(pairFingerprint: string): Promise<DeviceUnlockCredential | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Consume the bytes and check the guard before saving. The SDK clears the
|
|
36
|
+
* bytes on settlement. Publish enrollment only after issue returns true.
|
|
37
|
+
*/
|
|
38
|
+
writeCredential(credential: DeviceUnlockCredential, assertCurrent: () => void): Promise<void>;
|
|
39
|
+
}>;
|
|
40
|
+
export type DeviceUnlockControls = Readonly<{
|
|
41
|
+
issue(password: string, assertCurrent: () => void): Promise<boolean>;
|
|
42
|
+
resume(assertCurrent: () => void): Promise<boolean>;
|
|
43
|
+
}>;
|
|
19
44
|
/** Only the device capabilities consumed by the wallet authority. */
|
|
20
45
|
export interface KeyringLedgerSigner {
|
|
21
46
|
destroy: LedgerKeyring['destroy'];
|
|
@@ -24,6 +49,10 @@ export interface KeyringLedgerSigner {
|
|
|
24
49
|
verifyUtxoAddress: LedgerKeyring['verifyUtxoAddress'];
|
|
25
50
|
}
|
|
26
51
|
export type KeyringTrezorSigner = Pick<TrezorKeyring, 'destroy' | 'getAccountInfo' | 'getPublicKey' | 'signTypedData' | 'signMessage' | 'signEthTransaction' | 'verifyUtxoAddress'>;
|
|
52
|
+
type SessionOwner = {
|
|
53
|
+
current?: symbol;
|
|
54
|
+
epoch: number;
|
|
55
|
+
};
|
|
27
56
|
export interface KeyringCoreDependencies<TLedger extends KeyringLedgerSigner | undefined, TTrezor extends KeyringTrezorSigner | undefined> {
|
|
28
57
|
/** Immutable identity shared only by keyrings in the same wallet authority. */
|
|
29
58
|
authority: object;
|
|
@@ -36,6 +65,12 @@ export interface KeyringCoreDependencies<TLedger extends KeyringLedgerSigner | u
|
|
|
36
65
|
syscoinHardwareSigners?: ISyscoinHardwareSigners;
|
|
37
66
|
/** Trusted host lifecycle, captured before each locally signed EVM submission. */
|
|
38
67
|
captureEvmSubmission?: CaptureEvmSubmission;
|
|
68
|
+
/** Shared only by software keyrings of the same opted-in host. */
|
|
69
|
+
sessionOwner?: SessionOwner;
|
|
70
|
+
deviceUnlock?: {
|
|
71
|
+
port: DeviceUnlockPort;
|
|
72
|
+
receive(controls: DeviceUnlockControls): void;
|
|
73
|
+
};
|
|
39
74
|
}
|
|
40
75
|
export interface ISysAccount {
|
|
41
76
|
address: string;
|
|
@@ -57,6 +92,7 @@ declare class SecureBuffer {
|
|
|
57
92
|
isCleared(): boolean;
|
|
58
93
|
}
|
|
59
94
|
export declare class KeyringCore<TLedger extends KeyringLedgerSigner | undefined = KeyringLedgerSigner | undefined, TTrezor extends KeyringTrezorSigner | undefined = KeyringTrezorSigner | undefined> {
|
|
95
|
+
#private;
|
|
60
96
|
trezorSigner: TTrezor;
|
|
61
97
|
ledgerSigner: TLedger;
|
|
62
98
|
initialTrezorAccountState: IKeyringAccountState;
|
|
@@ -86,9 +122,7 @@ export declare class KeyringCore<TLedger extends KeyringLedgerSigner | undefined
|
|
|
86
122
|
isUnlocked: () => boolean;
|
|
87
123
|
lockWallet: () => Promise<void>;
|
|
88
124
|
transferSessionTo: (targetKeyring: Pick<KeyringCore, "receiveSessionOwnership">) => void;
|
|
89
|
-
private acceptSessionFrom;
|
|
90
125
|
receiveSessionOwnership: (sessionPassword: SecureBuffer, sessionMnemonic: SecureBuffer) => void;
|
|
91
|
-
private replaceSessionBuffers;
|
|
92
126
|
addNewAccount: (label?: string) => Promise<IKeyringAccountState>;
|
|
93
127
|
createSmartAccount: ({ address, deriveAccount, label, metadata, }: ICreateSmartAccountParams) => Promise<IKeyringAccountState>;
|
|
94
128
|
/**
|
|
@@ -228,7 +262,6 @@ export declare class KeyringCore<TLedger extends KeyringLedgerSigner | undefined
|
|
|
228
262
|
private setDerivedWeb3Accounts;
|
|
229
263
|
private setSignerEVM;
|
|
230
264
|
private clearTemporaryLocalKeys;
|
|
231
|
-
private recreateSessionFromVault;
|
|
232
265
|
private _getPrivateKeyAccountInfos;
|
|
233
266
|
/**
|
|
234
267
|
* Common method to decrypt mnemonic from session
|
|
@@ -2,15 +2,27 @@ import { HardwareWalletManager } from './hardware-wallet-manager';
|
|
|
2
2
|
import { KeyringCore } from './keyring-core';
|
|
3
3
|
import { LedgerKeyring } from './ledger';
|
|
4
4
|
import { TrezorKeyring } from './trezor';
|
|
5
|
+
import type { DeviceUnlockControls, DeviceUnlockPort, KeyringStoragePort } from './keyring-core';
|
|
5
6
|
import type { LedgerHost } from './ledger/host-types';
|
|
6
7
|
import type { CaptureEvmSubmission } from './transactions/evm-submission';
|
|
7
8
|
import type { IKeyringManager } from './types';
|
|
8
9
|
export type { ISysAccount } from './keyring-core';
|
|
10
|
+
export type { DeviceUnlockControls, DeviceUnlockPort, DeviceUnlockVaultPair, KeyringStoragePort, } from './keyring-core';
|
|
11
|
+
declare const keyringManagerHostBrand: unique symbol;
|
|
12
|
+
/** Opaque identity for one explicitly configured browser wallet authority. */
|
|
13
|
+
export interface KeyringManagerHost {
|
|
14
|
+
readonly [keyringManagerHostBrand]: true;
|
|
15
|
+
}
|
|
16
|
+
/** Create once for a fixed wallet store and share across replacement managers. */
|
|
17
|
+
export declare function createKeyringManagerHost(storage: KeyringStoragePort, deviceUnlock: DeviceUnlockPort): KeyringManagerHost;
|
|
18
|
+
export type KeyringManagerOptions = {
|
|
19
|
+
captureEvmSubmission?: CaptureEvmSubmission;
|
|
20
|
+
host?: KeyringManagerHost;
|
|
21
|
+
receiveDeviceUnlock?(controls: DeviceUnlockControls): void;
|
|
22
|
+
};
|
|
9
23
|
/** Existing browser entry. Native/software hosts must use the software entry. */
|
|
10
24
|
export declare class KeyringManager extends KeyringCore<LedgerKeyring, TrezorKeyring> implements IKeyringManager {
|
|
11
|
-
constructor(sharedHardwareWalletManager?: HardwareWalletManager, ledgerHost?: LedgerHost, options?:
|
|
12
|
-
captureEvmSubmission?: CaptureEvmSubmission;
|
|
13
|
-
});
|
|
25
|
+
constructor(sharedHardwareWalletManager?: HardwareWalletManager, ledgerHost?: LedgerHost, options?: KeyringManagerOptions);
|
|
14
26
|
static createInitialized(seed: string, password: string, vaultStateGetter: () => any, options?: {
|
|
15
27
|
captureEvmSubmission?: CaptureEvmSubmission;
|
|
16
28
|
}): Promise<KeyringManager>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type LedgerEvmConfig, type LedgerHost } from './host-types';
|
|
2
|
+
export interface LedgerDmkHost extends LedgerHost {
|
|
3
|
+
/** Start before enumerating. The returned capability is single use. */
|
|
4
|
+
beginDeviceSelection(signal?: AbortSignal): (candidate: object) => Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
/** Shared implementation; the default browser host supplies its own transport. */
|
|
7
|
+
export declare function createLedgerHostForDmk(candidate: object, config: LedgerEvmConfig, requireDeviceSelection?: boolean): LedgerDmkHost;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type LedgerDmkHost } from './dmk-host';
|
|
2
|
+
import type { LedgerEvmConfig } from './host-types';
|
|
3
|
+
/** A platform-owned transport and explicit user selection are required. */
|
|
4
|
+
export declare function createSelectedLedgerDmkHost(config: LedgerEvmConfig & {
|
|
5
|
+
dmk: object;
|
|
6
|
+
}): LedgerDmkHost;
|
|
7
|
+
export type { LedgerDmkHost } from './dmk-host';
|
|
@@ -30,8 +30,9 @@ export interface LedgerDmkOperation {
|
|
|
30
30
|
/** One owner and one semantic operation at a time, across EVM and UTXO apps. */
|
|
31
31
|
export declare class LedgerDmkSession {
|
|
32
32
|
readonly dmk: DeviceManagementKit;
|
|
33
|
+
private requireDeviceSelection;
|
|
33
34
|
private generation;
|
|
34
|
-
private
|
|
35
|
+
private connection;
|
|
35
36
|
private queue;
|
|
36
37
|
private activeCancel;
|
|
37
38
|
private activeAbort;
|
|
@@ -39,17 +40,24 @@ export declare class LedgerDmkSession {
|
|
|
39
40
|
private stateSubscription;
|
|
40
41
|
private connectionAttempt;
|
|
41
42
|
private connectionAbort;
|
|
43
|
+
private deviceSelection;
|
|
42
44
|
private readonly invalidationListeners;
|
|
43
|
-
constructor(dmk: DeviceManagementKit);
|
|
45
|
+
constructor(dmk: DeviceManagementKit, requireDeviceSelection?: boolean);
|
|
46
|
+
private get readyConnection();
|
|
44
47
|
getStatus(): {
|
|
45
48
|
connected: boolean;
|
|
46
49
|
};
|
|
47
50
|
onInvalidated(listener: () => void): () => void;
|
|
48
51
|
private invalidate;
|
|
52
|
+
/** The platform passes one candidate from its own current DMK picker. */
|
|
53
|
+
beginDeviceSelection(signal?: AbortSignal): (candidate: object) => Promise<void>;
|
|
49
54
|
/** Device selection belongs to the visible host, never to a dapp request. */
|
|
50
55
|
connect(request?: {
|
|
51
56
|
useGrantedDevices?: boolean;
|
|
52
57
|
}, options?: LedgerOperationOptions): Promise<void>;
|
|
58
|
+
private connectionBusy;
|
|
59
|
+
private startConnection;
|
|
60
|
+
private discoverDevice;
|
|
53
61
|
private connectDevice;
|
|
54
62
|
/** Cancel revokes the result and closes I/O; it cannot undo on-device approval. */
|
|
55
63
|
disconnect(): Promise<void>;
|
package/types/ledger-host.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type LedgerDmkHost } from './ledger/dmk-host';
|
|
2
|
+
import type { LedgerEvmConfig } from './ledger/host-types';
|
|
2
3
|
export interface LedgerDmkHostConfig extends LedgerEvmConfig {
|
|
3
4
|
/** Platform-owned DMK, allowing a future host to register its own transports. */
|
|
4
5
|
dmk?: object;
|
|
6
|
+
/** Disable automatic discovery until the platform selects a device. */
|
|
7
|
+
requireDeviceSelection?: boolean;
|
|
5
8
|
}
|
|
6
|
-
export declare function createLedgerDmkHost(config?: LedgerDmkHostConfig):
|
|
9
|
+
export declare function createLedgerDmkHost(config?: LedgerDmkHostConfig): LedgerDmkHost;
|
|
10
|
+
export type { LedgerDmkHost } from './ledger/dmk-host';
|
|
7
11
|
export type { LedgerEvmConfig, LedgerBlindSigningIntent, LedgerHost, LedgerEvmHost, LedgerUtxoHost, LedgerUtxoAccount, LedgerPartialSignature, LedgerTypedData, LedgerOperationOptions, LedgerProgress, } from './ledger/host-types';
|
package/types/software.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Software-only entry: explicit host storage, no browser/device initialization. */
|
|
2
2
|
import { KeyringCore } from './keyring-core';
|
|
3
|
-
import type { KeyringStoragePort } from './keyring-core';
|
|
3
|
+
import type { DeviceUnlockControls, DeviceUnlockPort, KeyringStoragePort } from './keyring-core';
|
|
4
4
|
import type { EncryptedEvmHdRuntimeAccount, EvmHdRuntimeAccountOptions, EvmHdRuntimeAccountRequest } from './software-hd-account';
|
|
5
5
|
import type { CaptureEvmSubmission } from './transactions/evm-submission';
|
|
6
6
|
import type { PreparedEvmSigningOptions, PreparedSoftwareEvmSigningRequest, SignedPreparedEvmTransaction } from './transactions/prepared-evm';
|
|
@@ -12,9 +12,10 @@ export interface SoftwareKeyringHost {
|
|
|
12
12
|
/** Create once per wallet authority, then share with its per-network keyrings. */
|
|
13
13
|
export declare const createSoftwareKeyringHost: (storage: KeyringStoragePort, options?: {
|
|
14
14
|
captureEvmSubmission?: CaptureEvmSubmission;
|
|
15
|
+
deviceUnlock?: DeviceUnlockPort;
|
|
15
16
|
}) => SoftwareKeyringHost;
|
|
16
17
|
export declare class SoftwareKeyring extends KeyringCore<undefined, undefined> {
|
|
17
|
-
constructor(host: SoftwareKeyringHost);
|
|
18
|
+
constructor(host: SoftwareKeyringHost, receiveDeviceUnlock?: (controls: DeviceUnlockControls) => void);
|
|
18
19
|
/**
|
|
19
20
|
* Derive a fixed-path Ethereum HD runtime account without network or storage
|
|
20
21
|
* writes. The returned password-encrypted xprv is internal runtime state,
|
|
@@ -36,7 +37,7 @@ export declare class SoftwareKeyring extends KeyringCore<undefined, undefined> {
|
|
|
36
37
|
export { KeyringAccountType } from './types';
|
|
37
38
|
export { INetworkType } from '@sidhujag/sysweb3-network';
|
|
38
39
|
export type { INetwork } from '@sidhujag/sysweb3-network';
|
|
39
|
-
export type { KeyringStoragePort } from './keyring-core';
|
|
40
|
+
export type { DeviceUnlockControls, DeviceUnlockCredential, DeviceUnlockPort, DeviceUnlockVaultPair, KeyringStoragePort, } from './keyring-core';
|
|
40
41
|
export type { IKeyringAccountState } from './types';
|
|
41
42
|
export type { PreparedEvmTransaction, PreparedEvmSigningOptions, PreparedSoftwareEvmSigningRequest, SignedPreparedEvmTransaction, } from './transactions/prepared-evm';
|
|
42
43
|
export type { EncryptedEvmHdRuntimeAccount, EvmHdRuntimeAccountOptions, EvmHdRuntimeAccountRequest, } from './software-hd-account';
|