@sidhujag/sysweb3-keyring 2.1.9 → 2.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +8 -5
  3. package/cjs/hardware-signing-data.js +85 -0
  4. package/cjs/hardware-signing-data.js.map +1 -0
  5. package/cjs/hardware-wallet-manager.js +36 -13
  6. package/cjs/hardware-wallet-manager.js.map +1 -1
  7. package/cjs/ledger/index.js +41 -51
  8. package/cjs/ledger/index.js.map +1 -1
  9. package/cjs/transactions/ethereum.js +92 -70
  10. package/cjs/transactions/ethereum.js.map +1 -1
  11. package/cjs/transactions/prepared-evm.js.map +1 -1
  12. package/cjs/trezor/connect.js +155 -50
  13. package/cjs/trezor/connect.js.map +1 -1
  14. package/cjs/trezor/index.js +159 -138
  15. package/cjs/trezor/index.js.map +1 -1
  16. package/cjs/types.js.map +1 -1
  17. package/esm/hardware-signing-data.js +82 -0
  18. package/esm/hardware-signing-data.js.map +1 -0
  19. package/esm/hardware-wallet-manager.js +36 -13
  20. package/esm/hardware-wallet-manager.js.map +1 -1
  21. package/esm/ledger/dmk-evm.js +13 -48
  22. package/esm/ledger/dmk-evm.js.map +1 -1
  23. package/esm/ledger/dmk-utxo.js +9 -6
  24. package/esm/ledger/dmk-utxo.js.map +1 -1
  25. package/esm/ledger/index.js +41 -51
  26. package/esm/ledger/index.js.map +1 -1
  27. package/esm/transactions/ethereum.js +92 -70
  28. package/esm/transactions/ethereum.js.map +1 -1
  29. package/esm/transactions/prepared-evm.js.map +1 -1
  30. package/esm/trezor/connect.js +155 -50
  31. package/esm/trezor/connect.js.map +1 -1
  32. package/esm/trezor/index.js +160 -139
  33. package/esm/trezor/index.js.map +1 -1
  34. package/esm/types.js.map +1 -1
  35. package/package.json +1 -1
  36. package/types/hardware-signing-data.d.ts +2 -0
  37. package/types/hardware-wallet-manager.d.ts +3 -1
  38. package/types/ledger/host-types.d.ts +3 -3
  39. package/types/ledger/index.d.ts +2 -1
  40. package/types/ledger/types.d.ts +4 -4
  41. package/types/transactions/ethereum.d.ts +4 -2
  42. package/types/transactions/prepared-evm.d.ts +1 -0
  43. package/types/trezor/connect.d.ts +10 -1
  44. package/types/trezor/index.d.ts +21 -11
  45. package/types/types.d.ts +2 -2
@@ -4,7 +4,13 @@ exports.trezorResponseError = void 0;
4
4
  exports.createTrezorConnection = createTrezorConnection;
5
5
  const hardware_transaction_authority_1 = require("../hardware-transaction-authority");
6
6
  const host_types_1 = require("./host-types");
7
- const methods = host_types_1.TREZOR_METHODS.filter((method) => method !== 'ethereumSignTransaction' && method !== 'signTransaction');
7
+ const methods = host_types_1.TREZOR_METHODS.filter((method) => ![
8
+ 'ethereumSignTransaction',
9
+ 'signTransaction',
10
+ 'signMessage',
11
+ 'ethereumSignMessage',
12
+ 'ethereumSignTypedData',
13
+ ].includes(method));
8
14
  const hostOwners = new WeakMap();
9
15
  function createTrezorConnection(host) {
10
16
  if (!host ||
@@ -25,6 +31,15 @@ function createTrezorConnection(host) {
25
31
  let cleanupPromise = Promise.resolve();
26
32
  let cleanupPending = false;
27
33
  const inFlight = new Set();
34
+ let signing;
35
+ const busy = () => Object.assign(new Error('Previous Trezor signing request is still pending'), { code: 'HARDWARE_SIGNER_BUSY' });
36
+ const checkSigning = (scope) => {
37
+ if (signing !== scope || scope.closed || scope.generation !== generation)
38
+ throw interrupted();
39
+ scope.authority.assertCurrent();
40
+ if (signing !== scope || scope.closed || scope.generation !== generation)
41
+ throw interrupted();
42
+ };
28
43
  const pending = new Set();
29
44
  const interrupted = () => Object.assign(new Error('Trezor operation cancelled'), {
30
45
  code: 'Method_Interrupted',
@@ -58,7 +73,7 @@ function createTrezorConnection(host) {
58
73
  return clientPromise;
59
74
  };
60
75
  /** Keep the SDK's established failure payload while preserving Connect 10 codes. */
61
- const normalize = (response, method) => {
76
+ const normalize = (response, method, scope) => {
62
77
  if (response?.success === false) {
63
78
  const error = response.error;
64
79
  const code = typeof error?.code === 'string' ? error.code : undefined;
@@ -66,7 +81,15 @@ function createTrezorConnection(host) {
66
81
  code === 'Device_NotFound' ||
67
82
  code === 'Desktop_ConnectionMissing' ||
68
83
  code === 'Transport_Missing') {
69
- invalidate();
84
+ // This failure itself retires the connection, not the caller's approval.
85
+ // Preserve its typed error only for this exact still-owned invalidation.
86
+ const invalidated = invalidate();
87
+ if (scope) {
88
+ scope.authority.assertCurrent();
89
+ if (signing !== scope || scope.closed || generation !== invalidated)
90
+ throw interrupted();
91
+ scope.generation = invalidated;
92
+ }
70
93
  }
71
94
  return {
72
95
  ...response,
@@ -85,9 +108,15 @@ function createTrezorConnection(host) {
85
108
  }
86
109
  return response;
87
110
  };
88
- const withClient = async (operation, requireInitialized = true) => {
111
+ const withClient = async (operation, requireInitialized = true, scope) => {
89
112
  const captured = generation;
113
+ if (signing && signing !== scope)
114
+ throw busy();
90
115
  const assertCurrent = () => {
116
+ if (scope)
117
+ checkSigning(scope);
118
+ else if (signing)
119
+ throw busy();
91
120
  if (captured !== generation)
92
121
  throw interrupted();
93
122
  if (requireInitialized && !initialized) {
@@ -104,6 +133,16 @@ function createTrezorConnection(host) {
104
133
  rejectPending = reject;
105
134
  });
106
135
  pending.add(rejectPending);
136
+ const onAbort = () => {
137
+ try {
138
+ scope?.authority.assertCurrent();
139
+ }
140
+ catch (error) {
141
+ rejectPending(error);
142
+ }
143
+ };
144
+ scope?.authority.signal.addEventListener('abort', onAbort, { once: true });
145
+ let raw;
107
146
  try {
108
147
  const result = await Promise.race([
109
148
  (async () => {
@@ -111,7 +150,7 @@ function createTrezorConnection(host) {
111
150
  assertCurrent();
112
151
  const client = await getClient();
113
152
  assertCurrent();
114
- const request = Promise.resolve(operation(client, assertCurrent));
153
+ const request = (raw = Promise.resolve(operation(client, assertCurrent)));
115
154
  inFlight.add(request);
116
155
  try {
117
156
  return await request;
@@ -128,6 +167,11 @@ function createTrezorConnection(host) {
128
167
  }
129
168
  finally {
130
169
  pending.delete(rejectPending);
170
+ scope?.authority.signal.removeEventListener('abort', onAbort);
171
+ // Cancellation cannot release an owned device invocation while its raw
172
+ // platform call still exists. A successor must wait for this drain.
173
+ if (scope && raw)
174
+ await Promise.allSettled([raw]);
131
175
  }
132
176
  };
133
177
  const calls = Object.fromEntries(methods.map((method) => [
@@ -143,62 +187,123 @@ function createTrezorConnection(host) {
143
187
  return normalized;
144
188
  },
145
189
  ]));
146
- async function signOwned(method, authority, call) {
147
- const { assertCurrent } = (0, hardware_transaction_authority_1.captureHardwareTransactionAuthority)(authority);
148
- const captured = generation;
149
- const response = await withClient((client, assertConnectionCurrent) => {
150
- assertCurrent();
151
- return call(client, () => {
152
- assertConnectionCurrent();
153
- assertCurrent();
154
- assertConnectionCurrent();
155
- });
156
- });
157
- assertCurrent();
158
- if (captured !== generation)
159
- throw interrupted();
160
- const normalized = normalize(response, method);
161
- if (normalized?.success === true) {
162
- assertCurrent();
190
+ const invokeOwned = async (scope, method, args) => {
191
+ checkSigning(scope);
192
+ const response = await withClient((client, assertCurrent) => client[method](assertCurrent, ...args), true, scope);
193
+ checkSigning(scope);
194
+ const normalized = normalize(response, method, scope);
195
+ checkSigning(scope);
196
+ return normalized;
197
+ };
198
+ async function initialize(scope) {
199
+ if (scope)
200
+ checkSigning(scope);
201
+ else if (signing)
202
+ throw busy();
203
+ if (cleanupPending || initializing)
204
+ throw busy();
205
+ const activeOwner = hostOwners.get(host);
206
+ if (activeOwner && activeOwner !== owner)
207
+ throw busy();
208
+ hostOwners.set(host, owner);
209
+ initializing = true;
210
+ const captured = invalidate();
211
+ if (scope)
212
+ scope.generation = captured;
213
+ try {
214
+ if (captured !== generation)
215
+ throw interrupted();
216
+ await withClient((client, assertCurrent) => client.init(assertCurrent), false, scope);
217
+ if (scope)
218
+ checkSigning(scope);
163
219
  if (captured !== generation)
164
220
  throw interrupted();
221
+ initialized = true;
222
+ }
223
+ finally {
224
+ initializing = false;
165
225
  }
166
- return normalized;
167
226
  }
168
227
  const TrezorConnect = {
169
228
  ...calls,
170
- ethereumSignTransactionOwned(request, authority) {
171
- return signOwned('ethereumSignTransaction', authority, (client, assertCurrent) => client.ethereumSignTransaction(assertCurrent, request));
172
- },
173
- signTransactionOwned(request, authority) {
174
- return signOwned('signTransaction', authority, (client, assertCurrent) => client.signTransaction(assertCurrent, request));
175
- },
176
- async init() {
177
- if (cleanupPending || initializing) {
178
- throw Object.assign(new Error('Previous Trezor request is still pending'), {
179
- code: 'HARDWARE_SIGNER_BUSY',
180
- });
181
- }
182
- const activeOwner = hostOwners.get(host);
183
- if (activeOwner && activeOwner !== owner)
184
- throw Object.assign(new Error('Trezor host is owned by another connection'), {
185
- code: 'HARDWARE_SIGNER_BUSY',
186
- });
187
- hostOwners.set(host, owner);
188
- initializing = true;
189
- const captured = invalidate();
229
+ async withOwnedSigning(authority, operation) {
230
+ const captured = (0, hardware_transaction_authority_1.captureHardwareTransactionAuthority)(authority);
231
+ if (signing ||
232
+ cleanupPending ||
233
+ initializing ||
234
+ pending.size ||
235
+ inFlight.size)
236
+ throw busy();
237
+ const scope = {
238
+ authority: captured,
239
+ generation,
240
+ closed: false,
241
+ calls: new Set(),
242
+ };
243
+ signing = scope;
244
+ const call = (operation) => {
245
+ checkSigning(scope);
246
+ const promise = operation();
247
+ scope.calls.add(promise);
248
+ void promise
249
+ .finally(() => scope.calls.delete(promise))
250
+ .catch(() => undefined);
251
+ return promise;
252
+ };
253
+ const session = Object.freeze({
254
+ ...Object.fromEntries([
255
+ 'ethereumSignTransaction',
256
+ 'signTransaction',
257
+ 'signMessage',
258
+ 'ethereumSignMessage',
259
+ 'ethereumSignTypedData',
260
+ 'getFeatures',
261
+ ].map((method) => [
262
+ method,
263
+ (...args) => call(() => invokeOwned(scope, method, args)),
264
+ ])),
265
+ init: () => call(() => initialize(scope)),
266
+ dispose: () => call(async () => {
267
+ const disposal = TrezorConnect.dispose();
268
+ scope.generation = generation;
269
+ await (cleanupPending ? cleanupPromise : disposal);
270
+ checkSigning(scope);
271
+ }),
272
+ });
273
+ let succeeded = false;
190
274
  try {
191
- if (captured !== generation)
192
- throw interrupted();
193
- await withClient((client, assertCurrent) => client.init(assertCurrent), false);
194
- if (captured !== generation)
195
- throw interrupted();
196
- initialized = true;
275
+ checkSigning(scope);
276
+ const result = await operation(session);
277
+ checkSigning(scope);
278
+ succeeded = true;
279
+ return result;
197
280
  }
198
281
  finally {
199
- initializing = false;
282
+ scope.closed = true;
283
+ try {
284
+ await Promise.allSettled([...scope.calls]);
285
+ if (!succeeded &&
286
+ signing === scope &&
287
+ scope.generation === generation) {
288
+ const disposal = TrezorConnect.dispose();
289
+ await (cleanupPending ? cleanupPromise : disposal);
290
+ }
291
+ else if (cleanupPending)
292
+ await cleanupPromise;
293
+ }
294
+ finally {
295
+ if (signing === scope)
296
+ signing = undefined;
297
+ }
200
298
  }
201
299
  },
300
+ ethereumSignTransactionOwned(request, authority) {
301
+ return TrezorConnect.withOwnedSigning(authority, (session) => session.ethereumSignTransaction(request));
302
+ },
303
+ signTransactionOwned(request, authority) {
304
+ return TrezorConnect.withOwnedSigning(authority, (session) => session.signTransaction(request));
305
+ },
306
+ init: () => initialize(),
202
307
  dispose() {
203
308
  if (cleanupPending) {
204
309
  return inFlight.size ? Promise.resolve() : cleanupPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/trezor/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/trezor/connect.ts"],"names":[],"mappings":"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"}