@sidhujag/sysweb3-keyring 2.1.7 → 2.1.9

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 (105) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/hardware-transaction-authority.js +15 -11
  3. package/cjs/hardware-transaction-authority.js.map +1 -1
  4. package/cjs/hardware-wallet-manager.js +74 -119
  5. package/cjs/hardware-wallet-manager.js.map +1 -1
  6. package/cjs/hardware-wallet-types.js +16 -0
  7. package/cjs/hardware-wallet-types.js.map +1 -0
  8. package/cjs/host-keyring.js +32 -0
  9. package/cjs/host-keyring.js.map +1 -0
  10. package/cjs/index.js +1 -0
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/keyring-core.js +96 -61
  13. package/cjs/keyring-core.js.map +1 -1
  14. package/cjs/keyring-manager.js +15 -16
  15. package/cjs/keyring-manager.js.map +1 -1
  16. package/cjs/ledger/host-types.js.map +1 -1
  17. package/cjs/ledger/index.js +24 -4
  18. package/cjs/ledger/index.js.map +1 -1
  19. package/cjs/ledger-hardware.js +15 -0
  20. package/cjs/ledger-hardware.js.map +1 -0
  21. package/cjs/software.js +6 -25
  22. package/cjs/software.js.map +1 -1
  23. package/cjs/transactions/ethereum.js +371 -494
  24. package/cjs/transactions/ethereum.js.map +1 -1
  25. package/cjs/transactions/evm-submission-failure.js +73 -0
  26. package/cjs/transactions/evm-submission-failure.js.map +1 -0
  27. package/cjs/transactions/evm-submission.js +35 -61
  28. package/cjs/transactions/evm-submission.js.map +1 -1
  29. package/cjs/transactions/ledger-signing.js +52 -0
  30. package/cjs/transactions/ledger-signing.js.map +1 -0
  31. package/cjs/transactions/prepared-evm.js +24 -1
  32. package/cjs/transactions/prepared-evm.js.map +1 -1
  33. package/cjs/transactions/trezor-signing.js +90 -0
  34. package/cjs/transactions/trezor-signing.js.map +1 -0
  35. package/cjs/trezor/connect.js +238 -243
  36. package/cjs/trezor/connect.js.map +1 -1
  37. package/cjs/trezor/host-types.js +19 -0
  38. package/cjs/trezor/host-types.js.map +1 -0
  39. package/cjs/trezor/index.js +75 -23
  40. package/cjs/trezor/index.js.map +1 -1
  41. package/cjs/trezor/webextension-host.js +118 -0
  42. package/cjs/trezor/webextension-host.js.map +1 -0
  43. package/cjs/trezor-hardware.js +16 -0
  44. package/cjs/trezor-hardware.js.map +1 -0
  45. package/cjs/types.js.map +1 -1
  46. package/esm/hardware-transaction-authority.js +14 -11
  47. package/esm/hardware-transaction-authority.js.map +1 -1
  48. package/esm/hardware-wallet-manager.js +20 -32
  49. package/esm/hardware-wallet-manager.js.map +1 -1
  50. package/esm/hardware-wallet-types.js +13 -0
  51. package/esm/hardware-wallet-types.js.map +1 -0
  52. package/esm/keyring-core.js +98 -63
  53. package/esm/keyring-core.js.map +1 -1
  54. package/esm/ledger/dmk-host.js +2 -0
  55. package/esm/ledger/dmk-host.js.map +1 -1
  56. package/esm/ledger/dmk-session.js +73 -8
  57. package/esm/ledger/dmk-session.js.map +1 -1
  58. package/esm/ledger/host-types.js.map +1 -1
  59. package/esm/ledger/index.js +22 -2
  60. package/esm/ledger/index.js.map +1 -1
  61. package/esm/transactions/ethereum.js +372 -495
  62. package/esm/transactions/ethereum.js.map +1 -1
  63. package/esm/transactions/evm-submission-failure.js +68 -0
  64. package/esm/transactions/evm-submission-failure.js.map +1 -0
  65. package/esm/transactions/evm-submission.js +32 -59
  66. package/esm/transactions/evm-submission.js.map +1 -1
  67. package/esm/transactions/ledger-signing.js +49 -0
  68. package/esm/transactions/ledger-signing.js.map +1 -0
  69. package/esm/transactions/prepared-evm.js +23 -1
  70. package/esm/transactions/prepared-evm.js.map +1 -1
  71. package/esm/transactions/trezor-signing.js +87 -0
  72. package/esm/transactions/trezor-signing.js.map +1 -0
  73. package/esm/trezor/connect.js +236 -209
  74. package/esm/trezor/connect.js.map +1 -1
  75. package/esm/trezor/host-types.js +16 -0
  76. package/esm/trezor/host-types.js.map +1 -0
  77. package/esm/trezor/index.js +74 -22
  78. package/esm/trezor/index.js.map +1 -1
  79. package/esm/types.js.map +1 -1
  80. package/package.json +61 -1
  81. package/types/hardware-transaction-authority.d.ts +1 -0
  82. package/types/hardware-wallet-manager.d.ts +6 -22
  83. package/types/hardware-wallet-types.d.ts +21 -0
  84. package/types/host-keyring.d.ts +16 -0
  85. package/types/index.d.ts +1 -0
  86. package/types/keyring-core.d.ts +12 -4
  87. package/types/keyring-manager.d.ts +5 -3
  88. package/types/ledger/dmk-host.d.ts +2 -0
  89. package/types/ledger/dmk-session.d.ts +9 -0
  90. package/types/ledger/host-types.d.ts +2 -0
  91. package/types/ledger/index.d.ts +3 -1
  92. package/types/ledger-hardware.d.ts +5 -0
  93. package/types/software.d.ts +2 -16
  94. package/types/transactions/ethereum.d.ts +11 -1
  95. package/types/transactions/evm-submission-failure.d.ts +11 -0
  96. package/types/transactions/evm-submission.d.ts +6 -8
  97. package/types/transactions/ledger-signing.d.ts +13 -0
  98. package/types/transactions/prepared-evm.d.ts +12 -0
  99. package/types/transactions/trezor-signing.d.ts +13 -0
  100. package/types/trezor/connect.d.ts +11 -9
  101. package/types/trezor/host-types.d.ts +25 -0
  102. package/types/trezor/index.d.ts +7 -7
  103. package/types/trezor/webextension-host.d.ts +7 -0
  104. package/types/trezor-hardware.d.ts +6 -0
  105. package/types/types.d.ts +16 -4
@@ -1,13 +1,15 @@
1
1
  /* eslint-disable camelcase */
2
+ import { verify } from '@bitcoinerlab/secp256k1';
2
3
  import { TypedDataUtils, SignTypedDataVersion, } from '@metamask/eth-sig-util';
3
4
  import bitcoinops from 'bitcoin-ops';
4
5
  import bs58check from 'bs58check';
5
6
  import { Buffer } from 'buffer';
6
7
  import * as syscoinjs from 'syscoinjs-lib';
7
- import TrezorConnect, { subscribeTrezorEvents, trezorResponseError, } from './connect';
8
+ import { trezorResponseError } from './connect';
8
9
  import { serializeWitness } from './witness';
9
- import { captureHardwareTransactionAuthority } from '../hardware-transaction-authority';
10
- import { HardwareWalletManager, HardwareWalletType, } from '../hardware-wallet-manager';
10
+ import { assertHardwareOperationCurrent, captureHardwareTransactionAuthority, } from '../hardware-transaction-authority';
11
+ import { HardwareWalletManager } from '../hardware-wallet-manager';
12
+ import { HardwareWalletType } from '../hardware-wallet-types';
11
13
  import { getAccountDerivationPath, getAddressDerivationPath, isEvmCoin, } from '../utils/derivation-paths';
12
14
  const bitcoinjs = syscoinjs.utils.bitcoinjs;
13
15
  const { p2wsh } = bitcoinjs.payments;
@@ -48,11 +50,13 @@ const finalizedFields = (input) => {
48
50
  };
49
51
  };
50
52
  export class TrezorKeyring {
51
- constructor() {
53
+ constructor(connection) {
54
+ this.connection = connection;
52
55
  this.hdPath = initialHDPath;
53
56
  this.paths = {};
54
57
  this.initialized = false;
55
58
  this.lifecycleGeneration = 0;
59
+ this.retirementEpoch = 0;
56
60
  this.onTrezorConnected = ({ type, }) => {
57
61
  if (type === HardwareWalletType.TREZOR) {
58
62
  console.log('Trezor connected');
@@ -82,7 +86,9 @@ export class TrezorKeyring {
82
86
  this.chainCode = Buffer.from('', 'hex');
83
87
  this.hdPath = '';
84
88
  this.paths = {};
85
- this.hardwareWalletManager = new HardwareWalletManager();
89
+ if (!connection)
90
+ throw new TypeError('Trezor requires an explicit connection');
91
+ this.hardwareWalletManager = new HardwareWalletManager(undefined, connection);
86
92
  this.observeTrezor();
87
93
  }
88
94
  observeTrezor() {
@@ -97,7 +103,7 @@ export class TrezorKeyring {
97
103
  .includes(this.onTrezorDisconnected))
98
104
  this.hardwareWalletManager.on('disconnected', this.onTrezorDisconnected);
99
105
  if (!this.unsubscribeTrezor)
100
- this.unsubscribeTrezor = subscribeTrezorEvents((event) => {
106
+ this.unsubscribeTrezor = this.connection.subscribe((event) => {
101
107
  if (event.type === 'model')
102
108
  this.model = event.model;
103
109
  });
@@ -107,6 +113,7 @@ export class TrezorKeyring {
107
113
  */
108
114
  async init(assertCurrent) {
109
115
  assertCurrent?.();
116
+ this.retirementEpoch++;
110
117
  const generation = this.lifecycleGeneration;
111
118
  this.observeTrezor();
112
119
  if (this.initialized) {
@@ -160,7 +167,7 @@ export class TrezorKeyring {
160
167
  this.initialized = false;
161
168
  // Dispose Trezor connection to clean up
162
169
  try {
163
- await TrezorConnect.dispose();
170
+ await this.connection.dispose();
164
171
  }
165
172
  catch (disposeError) {
166
173
  console.log('Failed to dispose Trezor on error:', disposeError);
@@ -187,7 +194,7 @@ export class TrezorKeyring {
187
194
  // For EVM networks, getAccountInfo is not supported
188
195
  // We need to use getAddress instead
189
196
  if (slip44 === 60) {
190
- const addressResponse = await TrezorConnect.ethereumGetAddress({
197
+ const addressResponse = await this.connection.ethereumGetAddress({
191
198
  path: this.hdPath,
192
199
  showOnTrezor: false,
193
200
  });
@@ -206,7 +213,7 @@ export class TrezorKeyring {
206
213
  };
207
214
  }
208
215
  // For UTXO networks, use the standard getAccountInfo
209
- const response = await TrezorConnect.getAccountInfo({
216
+ const response = await this.connection.getAccountInfo({
210
217
  coin: coin,
211
218
  path: this.hdPath,
212
219
  });
@@ -233,7 +240,7 @@ export class TrezorKeyring {
233
240
  dispose() {
234
241
  this.lifecycleGeneration++;
235
242
  try {
236
- void TrezorConnect.dispose().catch((error) => {
243
+ void this.connection.dispose().catch((error) => {
237
244
  console.log('Error disposing Trezor:', error);
238
245
  });
239
246
  this.initialized = false;
@@ -267,7 +274,7 @@ export class TrezorKeyring {
267
274
  method = 'verifyMessage';
268
275
  }
269
276
  // @ts-ignore
270
- const { success, payload } = await TrezorConnect[method]({
277
+ const { success, payload } = await this.connection[method]({
271
278
  coin,
272
279
  address,
273
280
  message,
@@ -295,7 +302,7 @@ export class TrezorKeyring {
295
302
  try {
296
303
  // For EVM networks, use ethereumGetPublicKey
297
304
  if (slip44 === 60) {
298
- const { success, payload } = await TrezorConnect.ethereumGetPublicKey({
305
+ const { success, payload } = await this.connection.ethereumGetPublicKey({
299
306
  path: this.hdPath,
300
307
  showOnTrezor: false,
301
308
  });
@@ -311,7 +318,7 @@ export class TrezorKeyring {
311
318
  return { success: false, payload };
312
319
  }
313
320
  // For UTXO networks, use standard getPublicKey
314
- const { success, payload } = await TrezorConnect.getPublicKey({
321
+ const { success, payload } = await this.connection.getPublicKey({
315
322
  coin: coin,
316
323
  path: this.hdPath,
317
324
  });
@@ -361,9 +368,12 @@ export class TrezorKeyring {
361
368
  });
362
369
  const approvedTransaction = unsignedSnapshot(psbt);
363
370
  const approvedFinalInputs = psbt.data.inputs.map(finalizedFields);
371
+ const approvedPsbt = psbt.toBase64();
372
+ const candidate = psbt.clone();
373
+ const approvedSighashTypes = candidate.data.inputs.map((input) => input.sighashType ?? 0x01);
364
374
  const payload = await this.executeWithRetry(async () => {
365
375
  assertCurrent();
366
- const response = await TrezorConnect.signTransactionOwned(utxoTransaction, owner);
376
+ const response = await this.connection.signTransactionOwned(utxoTransaction, owner);
367
377
  assertCurrent();
368
378
  if (!response.success) {
369
379
  throw trezorResponseError(response, 'Trezor sign failed: ');
@@ -392,6 +402,9 @@ export class TrezorKeyring {
392
402
  })) {
393
403
  throw new Error('Trezor changed an already-finalized input');
394
404
  }
405
+ if (psbt.toBase64() !== approvedPsbt)
406
+ throw new Error('Trezor signing PSBT changed while awaiting approval');
407
+ const signatures = [];
395
408
  for (const i of this.range(psbt.data.inputs.length)) {
396
409
  if (approvedFinalInputs[i])
397
410
  continue;
@@ -400,12 +413,28 @@ export class TrezorKeyring {
400
413
  }
401
414
  const partialSig = [
402
415
  {
403
- pubkey: tx.ins[i].witness[1],
404
- signature: tx.ins[i].witness[0],
416
+ pubkey: Buffer.from(tx.ins[i].witness[1]),
417
+ signature: Buffer.from(tx.ins[i].witness[0]),
405
418
  },
406
419
  ];
407
- psbt.updateInput(i, { partialSig });
420
+ const { pubkey, signature } = partialSig[0];
421
+ const expectedSighash = approvedSighashTypes[i];
422
+ if (signature[signature.length - 1] !== expectedSighash)
423
+ throw new Error('Trezor signature does not match the approved sighash type');
424
+ candidate.updateInput(i, { partialSig });
425
+ let valid = false;
426
+ try {
427
+ valid = candidate.validateSignaturesOfInput(i, (key, hash, value) => verify(hash, key, value), pubkey);
428
+ }
429
+ catch {
430
+ // Invalid keys or script membership must fail before finalization.
431
+ }
432
+ if (!valid)
433
+ throw new Error('Invalid Trezor signature for approved transaction');
434
+ signatures.push({ index: i, partialSig });
408
435
  }
436
+ for (const { index, partialSig } of signatures)
437
+ psbt.updateInput(index, { partialSig });
409
438
  try {
410
439
  syscoinjs.utils.finalizePSBT(psbt);
411
440
  }
@@ -686,7 +715,7 @@ export class TrezorKeyring {
686
715
  this.setHdPath(coin, Number(index) || 0, slip44);
687
716
  const request = { path: this.hdPath, transaction: tx };
688
717
  try {
689
- const response = await TrezorConnect.ethereumSignTransactionOwned(request, owner);
718
+ const response = await this.connection.ethereumSignTransactionOwned(request, owner);
690
719
  owner.assertCurrent();
691
720
  if (response.success)
692
721
  return response;
@@ -723,7 +752,7 @@ export class TrezorKeyring {
723
752
  throw new Error('Message must be a string');
724
753
  // Use dynamic path generation instead of hardcoded switch
725
754
  this.setHdPath(coin, index || 0, slip44);
726
- const { success, payload } = await TrezorConnect.signMessage({
755
+ const { success, payload } = await this.connection.signMessage({
727
756
  path: this.hdPath,
728
757
  coin: coin,
729
758
  message,
@@ -743,7 +772,8 @@ export class TrezorKeyring {
743
772
  setTimeout(async () => {
744
773
  try {
745
774
  this.setHdPath('eth', index, 60);
746
- TrezorConnect.ethereumSignMessage({
775
+ this.connection
776
+ .ethereumSignMessage({
747
777
  path: this.hdPath,
748
778
  message: stripHexPrefix(message),
749
779
  hex: true,
@@ -816,7 +846,7 @@ export class TrezorKeyring {
816
846
  } = dataWithHashes;
817
847
  // This is necessary to avoid popup collision
818
848
  // between the unlock & sign trezor popups
819
- const response = await TrezorConnect.ethereumSignTypedData({
849
+ const response = await this.connection.ethereumSignTypedData({
820
850
  path: this.hdPath,
821
851
  data: {
822
852
  types: {
@@ -854,7 +884,7 @@ export class TrezorKeyring {
854
884
  const fullPath = getAddressDerivationPath(currency, slip44, accountIndex, false, // Not a change address
855
885
  0);
856
886
  try {
857
- const { payload, success } = await TrezorConnect.getAddress({
887
+ const { payload, success } = await this.connection.getAddress({
858
888
  path: fullPath,
859
889
  coin: currency,
860
890
  showOnTrezor: true, // This displays the address on device for verification
@@ -894,5 +924,27 @@ export class TrezorKeyring {
894
924
  console.error('Error destroying Trezor keyring:', error);
895
925
  }
896
926
  }
927
+ /** Wait for the old device call and transport ownership to be fully retired. */
928
+ async retire() {
929
+ const epoch = this.retirementEpoch;
930
+ this.dispose();
931
+ this.unsubscribeTrezor?.();
932
+ this.unsubscribeTrezor = undefined;
933
+ const [retirement, managerRetirement] = await Promise.allSettled([
934
+ this.connection.retire(),
935
+ this.hardwareWalletManager.destroy(),
936
+ ]);
937
+ if (retirement.status === 'rejected')
938
+ throw retirement.reason;
939
+ if (managerRetirement.status === 'rejected')
940
+ throw managerRetirement.reason;
941
+ const assertRetired = () => {
942
+ if (epoch !== this.retirementEpoch || this.initialized)
943
+ throw new Error('Trezor reopened after retirement');
944
+ assertHardwareOperationCurrent(retirement.value);
945
+ };
946
+ assertRetired();
947
+ return assertRetired;
948
+ }
897
949
  }
898
950
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trezor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trezor/index.ts"],"names":[],"mappings":"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"}
package/esm/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAobnE,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,mDAA6B,CAAA;IAC7B,uCAAiB,CAAA;AACnB,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,sDAA+B,CAAA;IAC/B,kDAA2B,CAAA;IAC3B,wCAAiB,CAAA;IACjB,kDAA2B,CAAA;AAC7B,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,YAAY,EAAE,MAAM,2BAA2B,CAAC;AA0cnE,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,mDAA6B,CAAA;IAC7B,uCAAiB,CAAA;AACnB,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,sDAA+B,CAAA;IAC/B,kDAA2B,CAAA;IAC3B,wCAAiB,CAAA;IACjB,kDAA2B,CAAA;AAC7B,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sidhujag/sysweb3-keyring",
3
- "version": "2.1.7",
3
+ "version": "2.1.9",
4
4
  "description": "Keyring Manager for UTXO and Web3 Wallets",
5
5
  "main": "cjs/index.js",
6
6
  "types": "types/index.d.ts",
@@ -83,6 +83,66 @@
83
83
  ],
84
84
  "cjs/utils/derivation-paths.js": [
85
85
  "types/utils/derivation-paths.d.ts"
86
+ ],
87
+ "cjs/host-keyring": [
88
+ "types/host-keyring.d.ts"
89
+ ],
90
+ "cjs/host-keyring.js": [
91
+ "types/host-keyring.d.ts"
92
+ ],
93
+ "cjs/ledger-hardware": [
94
+ "types/ledger-hardware.d.ts"
95
+ ],
96
+ "cjs/ledger-hardware.js": [
97
+ "types/ledger-hardware.d.ts"
98
+ ],
99
+ "cjs/hardware-wallet-types": [
100
+ "types/hardware-wallet-types.d.ts"
101
+ ],
102
+ "cjs/hardware-wallet-types.js": [
103
+ "types/hardware-wallet-types.d.ts"
104
+ ],
105
+ "cjs/transactions/ledger-signing": [
106
+ "types/transactions/ledger-signing.d.ts"
107
+ ],
108
+ "cjs/transactions/ledger-signing.js": [
109
+ "types/transactions/ledger-signing.d.ts"
110
+ ],
111
+ "cjs/transactions/trezor-signing": [
112
+ "types/transactions/trezor-signing.d.ts"
113
+ ],
114
+ "cjs/transactions/trezor-signing.js": [
115
+ "types/transactions/trezor-signing.d.ts"
116
+ ],
117
+ "cjs/trezor-hardware": [
118
+ "types/trezor-hardware.d.ts"
119
+ ],
120
+ "cjs/trezor-hardware.js": [
121
+ "types/trezor-hardware.d.ts"
122
+ ],
123
+ "cjs/trezor/host-types": [
124
+ "types/trezor/host-types.d.ts"
125
+ ],
126
+ "cjs/trezor/host-types.js": [
127
+ "types/trezor/host-types.d.ts"
128
+ ],
129
+ "cjs/trezor/webextension-host": [
130
+ "types/trezor/webextension-host.d.ts"
131
+ ],
132
+ "cjs/trezor/webextension-host.js": [
133
+ "types/trezor/webextension-host.d.ts"
134
+ ],
135
+ "cjs/trezor/connect": [
136
+ "types/trezor/connect.d.ts"
137
+ ],
138
+ "cjs/trezor/connect.js": [
139
+ "types/trezor/connect.d.ts"
140
+ ],
141
+ "cjs/hardware-transaction-authority": [
142
+ "types/hardware-transaction-authority.d.ts"
143
+ ],
144
+ "cjs/hardware-transaction-authority.js": [
145
+ "types/hardware-transaction-authority.d.ts"
86
146
  ]
87
147
  }
88
148
  },
@@ -2,4 +2,5 @@ export type HardwareTransactionAuthority = Readonly<{
2
2
  assertCurrent: () => void;
3
3
  signal: AbortSignal;
4
4
  }>;
5
+ export declare function assertHardwareOperationCurrent(check: () => void): void;
5
6
  export declare function captureHardwareTransactionAuthority(authority: HardwareTransactionAuthority): HardwareTransactionAuthority;
@@ -1,37 +1,20 @@
1
1
  import { EventEmitter } from 'events';
2
+ import { HardwareWalletType } from './hardware-wallet-types';
3
+ import type { HardwareWalletStatus } from './hardware-wallet-types';
2
4
  import type { LedgerHost } from './ledger/host-types';
3
- export declare enum HardwareWalletType {
4
- LEDGER = "ledger",
5
- TREZOR = "trezor"
6
- }
7
- export declare enum ConnectionStatus {
8
- DISCONNECTED = "disconnected",
9
- CONNECTING = "connecting",
10
- CONNECTED = "connected",
11
- ERROR = "error"
12
- }
5
+ import type { TrezorConnection } from './trezor/connect';
13
6
  interface RetryConfig {
14
7
  maxRetries: number;
15
8
  baseDelay: number;
16
9
  maxDelay: number;
17
10
  backoffMultiplier: number;
18
11
  }
19
- export interface HardwareWalletStatus {
20
- type: HardwareWalletType;
21
- status: ConnectionStatus;
22
- connected: boolean;
23
- lastSeen?: number;
24
- error?: string;
25
- deviceInfo?: {
26
- model?: string;
27
- firmwareVersion?: string;
28
- };
29
- }
30
12
  /**
31
13
  * Hardware Wallet Manager with connection pooling, status monitoring, and error recovery
32
14
  */
33
15
  export declare class HardwareWalletManager extends EventEmitter {
34
16
  private readonly ledgerHost?;
17
+ private readonly trezor?;
35
18
  private connectionPool;
36
19
  private statusMonitorInterval;
37
20
  private unsubscribeTrezor?;
@@ -42,8 +25,9 @@ export declare class HardwareWalletManager extends EventEmitter {
42
25
  private readonly IDLE_TIMEOUT;
43
26
  private readonly STATUS_CHECK_INTERVAL;
44
27
  private readonly retryConfig;
45
- constructor(ledgerHost?: LedgerHost | undefined);
28
+ constructor(ledgerHost?: LedgerHost | undefined, trezor?: TrezorConnection | undefined);
46
29
  private observeTrezor;
30
+ private requireTrezor;
47
31
  /** Raw transports are deliberately unavailable through the semantic host boundary. */
48
32
  getLedgerConnection(): Promise<never>;
49
33
  private initializeLedger;
@@ -0,0 +1,21 @@
1
+ export declare enum HardwareWalletType {
2
+ LEDGER = "ledger",
3
+ TREZOR = "trezor"
4
+ }
5
+ export declare enum ConnectionStatus {
6
+ DISCONNECTED = "disconnected",
7
+ CONNECTING = "connecting",
8
+ CONNECTED = "connected",
9
+ ERROR = "error"
10
+ }
11
+ export interface HardwareWalletStatus {
12
+ type: HardwareWalletType;
13
+ status: ConnectionStatus;
14
+ connected: boolean;
15
+ lastSeen?: number;
16
+ error?: string;
17
+ deviceInfo?: {
18
+ model?: string;
19
+ firmwareVersion?: string;
20
+ };
21
+ }
@@ -0,0 +1,16 @@
1
+ import { KeyringCore } from './keyring-core';
2
+ import type { KeyringHardware, KeyringLedgerSigner, KeyringTrezorSigner } from './keyring-core';
3
+ import type { KeyringHost, KeyringOptions } from './keyring-host';
4
+ import type { EncryptedEvmHdRuntimeAccount, EvmHdRuntimeAccountOptions, EvmHdRuntimeAccountRequest } from './software-hd-account';
5
+ import type { PreparedEvmSigningOptions, PreparedSoftwareEvmSigningRequest, SignedPreparedEvmTransaction } from './transactions/prepared-evm';
6
+ /** Shared wallet engine with explicit host authority and hardware capabilities. */
7
+ export declare class HostKeyring<TLedger extends KeyringLedgerSigner | undefined, TTrezor extends KeyringTrezorSigner | undefined> extends KeyringCore<TLedger, TTrezor> {
8
+ constructor(host: KeyringHost, options: KeyringOptions, createHardware: () => KeyringHardware<TLedger, TTrezor>);
9
+ /** Derive runtime state using the shared software account implementation. */
10
+ deriveEvmHdRuntimeAccount(request: EvmHdRuntimeAccountRequest, options: EvmHdRuntimeAccountOptions): Promise<EncryptedEvmHdRuntimeAccount>;
11
+ /** Sign the prepared software envelope; the host retains it before broadcast. */
12
+ signPreparedEvmTransaction(request: PreparedSoftwareEvmSigningRequest, options: PreparedEvmSigningOptions): SignedPreparedEvmTransaction;
13
+ }
14
+ export { createKeyringHost } from './keyring-host';
15
+ export type { KeyringHost, KeyringOptions } from './keyring-host';
16
+ export type { KeyringHardware, KeyringLedgerSigner, KeyringTrezorSigner, PreparedSessionTransfer, } from './keyring-core';
package/types/index.d.ts CHANGED
@@ -12,5 +12,6 @@ export * from './providers';
12
12
  export * from './utils/derivation-paths';
13
13
  export * from './network-utils';
14
14
  export * from './hardware-wallet-manager';
15
+ export * from './hardware-wallet-types';
15
16
  export { PsbtUtils } from './utils/psbt';
16
17
  export { deriveDescriptorAddress, descriptorChecksum, } from './utils/watch-descriptor';
@@ -42,12 +42,16 @@ export type DeviceUnlockControls = Readonly<{
42
42
  /** Only the device capabilities consumed by the wallet authority. */
43
43
  export interface KeyringLedgerSigner {
44
44
  destroy: LedgerKeyring['destroy'];
45
+ retire: LedgerKeyring['retire'];
45
46
  evm: Pick<LedgerKeyring['evm'], 'getEvmAddressAndPubKey' | 'signTypedData' | 'signPersonalMessage' | 'signEVMTransaction'>;
46
47
  utxo: Pick<LedgerKeyring['utxo'], 'getXpub'>;
47
48
  verifyUtxoAddress: LedgerKeyring['verifyUtxoAddress'];
48
49
  }
49
- export type KeyringTrezorSigner = Pick<TrezorKeyring, 'destroy' | 'getAccountInfo' | 'getPublicKey' | 'signTypedData' | 'signMessage' | 'signEthTransaction' | 'verifyUtxoAddress'>;
50
- interface KeyringHardware<TLedger extends KeyringLedgerSigner | undefined, TTrezor extends KeyringTrezorSigner | undefined> {
50
+ export type KeyringTrezorSigner = Pick<TrezorKeyring, 'destroy' | 'retire' | 'getAccountInfo' | 'getPublicKey' | 'signTypedData' | 'signMessage' | 'signEthTransaction' | 'verifyUtxoAddress'>;
51
+ export type PreparedSessionTransfer = Readonly<{
52
+ transfer(): void;
53
+ }>;
54
+ export interface KeyringHardware<TLedger extends KeyringLedgerSigner | undefined, TTrezor extends KeyringTrezorSigner | undefined> {
51
55
  ledgerSigner: TLedger;
52
56
  trezorSigner: TTrezor;
53
57
  syscoinHardwareSigners?: ISyscoinHardwareSigners;
@@ -79,6 +83,7 @@ export declare class KeyringCore<TLedger extends KeyringLedgerSigner | undefined
79
83
  private sessionPassword;
80
84
  private sessionMnemonic;
81
85
  private privateRecordSessionRevision;
86
+ private sessionLifetime;
82
87
  constructor(binding: KeyringHostBinding, hardware: KeyringHardware<TLedger, TTrezor>);
83
88
  private createSyscoinTransactions;
84
89
  private requireLedgerSigner;
@@ -86,8 +91,12 @@ export declare class KeyringCore<TLedger extends KeyringLedgerSigner | undefined
86
91
  initialize(seed: string, password: string, network?: INetwork): Promise<IKeyringAccountState>;
87
92
  validateAccountType: (account: IKeyringAccountState) => KeyringAccountType.HDAccount | KeyringAccountType.Imported;
88
93
  isUnlocked: () => boolean;
94
+ /** Capture wallet-session authority without binding an account or network. */
95
+ captureUnlockedSessionGuard(): () => void;
89
96
  lockWallet: () => Promise<void>;
90
- transferSessionTo: (targetKeyring: KeyringCore) => void;
97
+ /** Retire hardware before preparing a synchronous, one-use session move. */
98
+ prepareSessionTransfer: (targetKeyring: KeyringCore, assertCurrent: () => void) => Promise<PreparedSessionTransfer>;
99
+ private retireSessionLifetime;
91
100
  addNewAccount: (label?: string) => Promise<IKeyringAccountState>;
92
101
  createSmartAccount: ({ address, deriveAccount, label, metadata, }: ICreateSmartAccountParams) => Promise<IKeyringAccountState>;
93
102
  /**
@@ -267,4 +276,3 @@ export declare class KeyringCore<TLedger extends KeyringLedgerSigner | undefined
267
276
  */
268
277
  destroy(): Promise<void>;
269
278
  }
270
- export {};