@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,25 +1,14 @@
1
1
  import { EventEmitter } from 'events';
2
+ import { ConnectionStatus, HardwareWalletType } from './hardware-wallet-types';
2
3
  import { ledgerCancelledError, ledgerHostError } from './ledger/host-types';
3
- import TrezorConnect, { subscribeTrezorEvents } from './trezor/connect';
4
- export var HardwareWalletType;
5
- (function (HardwareWalletType) {
6
- HardwareWalletType["LEDGER"] = "ledger";
7
- HardwareWalletType["TREZOR"] = "trezor";
8
- })(HardwareWalletType || (HardwareWalletType = {}));
9
- export var ConnectionStatus;
10
- (function (ConnectionStatus) {
11
- ConnectionStatus["DISCONNECTED"] = "disconnected";
12
- ConnectionStatus["CONNECTING"] = "connecting";
13
- ConnectionStatus["CONNECTED"] = "connected";
14
- ConnectionStatus["ERROR"] = "error";
15
- })(ConnectionStatus || (ConnectionStatus = {}));
16
4
  /**
17
5
  * Hardware Wallet Manager with connection pooling, status monitoring, and error recovery
18
6
  */
19
7
  export class HardwareWalletManager extends EventEmitter {
20
- constructor(ledgerHost) {
8
+ constructor(ledgerHost, trezor) {
21
9
  super();
22
10
  this.ledgerHost = ledgerHost;
11
+ this.trezor = trezor;
23
12
  this.connectionPool = new Map();
24
13
  this.statusMonitorInterval = null;
25
14
  this.lifecycleGeneration = 0;
@@ -35,9 +24,9 @@ export class HardwareWalletManager extends EventEmitter {
35
24
  this.startStatusMonitoring();
36
25
  }
37
26
  observeTrezor() {
38
- if (this.unsubscribeTrezor)
27
+ if (this.unsubscribeTrezor || !this.trezor)
39
28
  return;
40
- this.unsubscribeTrezor = subscribeTrezorEvents((event) => {
29
+ this.unsubscribeTrezor = this.trezor.subscribe((event) => {
41
30
  if (event.type === 'disconnected') {
42
31
  // Our pre-init disposal and Connect initialization invalidate the
43
32
  // adapter too. Keep this attempt owned until it settles or is revoked.
@@ -48,6 +37,13 @@ export class HardwareWalletManager extends EventEmitter {
48
37
  }
49
38
  });
50
39
  }
40
+ requireTrezor() {
41
+ if (!this.trezor)
42
+ throw Object.assign(new Error('Trezor signer is unavailable in this host'), {
43
+ code: 'HARDWARE_SIGNER_UNAVAILABLE',
44
+ });
45
+ return this.trezor;
46
+ }
51
47
  /** Raw transports are deliberately unavailable through the semantic host boundary. */
52
48
  async getLedgerConnection() {
53
49
  throw ledgerHostError('HARDWARE_SIGNER_UNAVAILABLE', 'Ledger requires a semantic LedgerHost; raw Ledger transports are not supported');
@@ -126,6 +122,7 @@ export class HardwareWalletManager extends EventEmitter {
126
122
  * Initialize Trezor with retry logic
127
123
  */
128
124
  async initializeTrezor() {
125
+ this.requireTrezor();
129
126
  if (this.destruction) {
130
127
  throw Object.assign(new Error('Trezor connection is closing'), {
131
128
  code: 'Method_Interrupted',
@@ -194,23 +191,14 @@ export class HardwareWalletManager extends EventEmitter {
194
191
  return false;
195
192
  // Dispose the previous Suite connection before initialization
196
193
  try {
197
- await TrezorConnect.dispose();
194
+ await this.requireTrezor().dispose();
198
195
  }
199
196
  catch (disposeError) {
200
197
  console.log('[HardwareWalletManager] Dispose error (safe to ignore):', disposeError);
201
198
  }
202
199
  if (!isCurrent())
203
200
  return false;
204
- await TrezorConnect.init({
205
- manifest: {
206
- appName: 'Pali Wallet',
207
- appUrl: 'https://paliwallet.com/',
208
- email: 'support@syscoin.org',
209
- },
210
- debug: false, // Disable debug mode to prevent extra logs
211
- // Connect chooses Suite Desktop, then the supported Suite Web fallback.
212
- coreMode: 'auto',
213
- });
201
+ await this.requireTrezor().init();
214
202
  if (!isCurrent())
215
203
  return false;
216
204
  entry.status = ConnectionStatus.CONNECTED;
@@ -241,7 +229,7 @@ export class HardwareWalletManager extends EventEmitter {
241
229
  // Instead of just marking as connected, verify the connection
242
230
  try {
243
231
  // Test the connection with a simple call
244
- const testResponse = await TrezorConnect.getFeatures();
232
+ const testResponse = await this.requireTrezor().getFeatures();
245
233
  if (!isCurrent())
246
234
  return false;
247
235
  if (testResponse.success) {
@@ -259,7 +247,7 @@ export class HardwareWalletManager extends EventEmitter {
259
247
  return false;
260
248
  // If test failed, dispose and retry
261
249
  try {
262
- await TrezorConnect.dispose();
250
+ await this.requireTrezor().dispose();
263
251
  if (!isCurrent())
264
252
  return false;
265
253
  await this.delay(500);
@@ -278,7 +266,7 @@ export class HardwareWalletManager extends EventEmitter {
278
266
  console.log('[HardwareWalletManager] Trezor device is in use by another application');
279
267
  // Try to dispose and reinitialize
280
268
  try {
281
- await TrezorConnect.dispose();
269
+ await this.requireTrezor().dispose();
282
270
  if (!isCurrent())
283
271
  return false;
284
272
  await this.delay(2000); // Wait 2 seconds before retry
@@ -319,7 +307,7 @@ export class HardwareWalletManager extends EventEmitter {
319
307
  return false;
320
308
  // Clean up on failure
321
309
  try {
322
- await TrezorConnect.dispose();
310
+ await this.requireTrezor().dispose();
323
311
  }
324
312
  catch (disposeError) {
325
313
  console.log('[HardwareWalletManager] Failed to dispose on error:', disposeError);
@@ -456,7 +444,7 @@ export class HardwareWalletManager extends EventEmitter {
456
444
  // Handle Trezor connections
457
445
  if (key.startsWith(HardwareWalletType.TREZOR)) {
458
446
  try {
459
- await TrezorConnect.dispose();
447
+ await this.requireTrezor().dispose();
460
448
  }
461
449
  catch (error) {
462
450
  console.error('Error disposing Trezor:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"hardware-wallet-manager.js","sourceRoot":"","sources":["../../src/hardware-wallet-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hardware-wallet-manager.js","sourceRoot":"","sources":["../../src/hardware-wallet-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export var HardwareWalletType;
2
+ (function (HardwareWalletType) {
3
+ HardwareWalletType["LEDGER"] = "ledger";
4
+ HardwareWalletType["TREZOR"] = "trezor";
5
+ })(HardwareWalletType || (HardwareWalletType = {}));
6
+ export var ConnectionStatus;
7
+ (function (ConnectionStatus) {
8
+ ConnectionStatus["DISCONNECTED"] = "disconnected";
9
+ ConnectionStatus["CONNECTING"] = "connecting";
10
+ ConnectionStatus["CONNECTED"] = "connected";
11
+ ConnectionStatus["ERROR"] = "error";
12
+ })(ConnectionStatus || (ConnectionStatus = {}));
13
+ //# sourceMappingURL=hardware-wallet-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware-wallet-types.js","sourceRoot":"","sources":["../../src/hardware-wallet-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;AACnB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,6CAAyB,CAAA;IACzB,2CAAuB,CAAA;IACvB,mCAAe,CAAA;AACjB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B"}
@@ -30,7 +30,8 @@ const SLH_DSA_DERIVATION_VERSION = 1;
30
30
  const SLH_DSA_SETUP_SECRET_HEX_LENGTH = 64;
31
31
  const SLH_DSA_PARAMETER_SET = 'SLH-DSA-SHA2-128-24';
32
32
  import { currentVaultRefusals } from './current-vault-refusal';
33
- import { getAddress, isHexString } from './ethers-v6';
33
+ import { isHexString } from './ethers-v6';
34
+ import { assertHardwareOperationCurrent } from './hardware-transaction-authority';
34
35
  import { initialActiveImportedAccountState, initialActiveLedgerAccountState, initialActiveTrezorAccountState, } from './initial-state';
35
36
  import { takeKeyringHostBinding } from './keyring-host';
36
37
  import { decryptPrivateRecordBytes, encryptPrivateRecordBytes, privateRecordProfileId, } from './private-records';
@@ -39,7 +40,7 @@ import { snapshotEvmHdIndex } from './software-hd-account';
39
40
  import { decryptCurrentVault, VaultAuthenticationError } from './storage-core';
40
41
  import { EthereumTransactions } from './transactions/ethereum';
41
42
  import { deriveEvmAccountFromMnemonic, privateKeyToAccount, } from './transactions/evm-local-signer';
42
- import { preparedEvmGuard, signPreparedEvmEnvelope, snapshotPreparedEvmRequest, } from './transactions/prepared-evm';
43
+ import { preparedEvmGuard } from './transactions/prepared-evm';
43
44
  import { SyscoinTransactionsCore, captureOwnedSyscoinRead, createHardwareSignerUnavailableError, } from './transactions/syscoin-core';
44
45
  import { KeyringAccountType, } from './types';
45
46
  import { getAddressDerivationPath, isEvmCoin, convertExtendedKeyVersion, } from './utils/derivation-paths';
@@ -114,6 +115,10 @@ export class KeyringCore {
114
115
  this.getVaultState = null;
115
116
  // Method to inject store getter from Pali side
116
117
  this.setVaultStateGetter = (getter) => {
118
+ if (typeof getter !== 'function')
119
+ throw new TypeError('Vault state getter must be a function');
120
+ if (this.getVaultState)
121
+ throw new Error('Vault state getter is already bound');
117
122
  this.getVaultState = getter;
118
123
  };
119
124
  // Helper method to get current vault state
@@ -154,6 +159,7 @@ export class KeyringCore {
154
159
  this.sessionPassword = null;
155
160
  this.sessionMnemonic = null; // can be a mnemonic or a zprv, can be changed to a zprv when using an imported wallet
156
161
  this.privateRecordSessionRevision = 0;
162
+ this.sessionLifetime = new AbortController();
157
163
  _KeyringCore_deviceUnlockRetired.set(this, false);
158
164
  _KeyringCore_sessionOwnership.set(this, void 0);
159
165
  this.createSyscoinTransactions = () => new SyscoinTransactionsCore(this.getSigner, this.getReadOnlySigner, this.getAccountsState, this.syscoinHardwareSigners, this.capturePsbtSigningContext);
@@ -175,7 +181,7 @@ export class KeyringCore {
175
181
  };
176
182
  this.isUnlocked = () => !!this.sessionPassword && !this.sessionPassword.isCleared();
177
183
  this.lockWallet = async () => {
178
- this.privateRecordSessionRevision++;
184
+ this.retireSessionLifetime();
179
185
  // Clear secure session data
180
186
  if (this.sessionPassword) {
181
187
  this.sessionPassword.clear();
@@ -215,8 +221,8 @@ export class KeyringCore {
215
221
  }
216
222
  }
217
223
  };
218
- // Direct secure transfer of session data to another keyring
219
- this.transferSessionTo = (targetKeyring) => {
224
+ /** Retire hardware before preparing a synchronous, one-use session move. */
225
+ this.prepareSessionTransfer = async (targetKeyring, assertCurrent) => {
220
226
  if (!this.isUnlocked()) {
221
227
  throw new Error('Source keyring must be unlocked to transfer session');
222
228
  }
@@ -224,21 +230,78 @@ export class KeyringCore {
224
230
  if (!(targetKeyring instanceof KeyringCore) ||
225
231
  targetKeyring.authority !== this.authority ||
226
232
  targetKeyring.storage !== this.storage ||
227
- targetKeyring.vaultPersistence !== this.vaultPersistence) {
233
+ targetKeyring.vaultPersistence !== this.vaultPersistence ||
234
+ __classPrivateFieldGet(targetKeyring, _KeyringCore_sessionOwnership, "f").tracker !== __classPrivateFieldGet(this, _KeyringCore_sessionOwnership, "f").tracker) {
228
235
  throw new Error('Cannot transfer session between different wallet authorities');
229
236
  }
230
- if (targetKeyring === this)
231
- return;
232
- // Transfer ownership of our buffers to the target
233
- if (!this.sessionPassword || !this.sessionMnemonic) {
234
- throw new Error('Session data is missing during transfer');
237
+ const sourceGuard = __classPrivateFieldGet(this, _KeyringCore_instances, "m", _KeyringCore_captureSessionGuard).call(this);
238
+ const targetRevision = targetKeyring.privateRecordSessionRevision;
239
+ const ledger = this.ledgerSigner;
240
+ const trezor = this.trezorSigner;
241
+ const retirementChecks = [];
242
+ const checkOwnership = () => {
243
+ sourceGuard();
244
+ if (!this.isUnlocked() ||
245
+ !this.sessionMnemonic ||
246
+ this.ledgerSigner !== ledger ||
247
+ this.trezorSigner !== trezor ||
248
+ __classPrivateFieldGet(targetKeyring, _KeyringCore_sessionOwnership, "f").destroyed ||
249
+ targetKeyring.privateRecordSessionRevision !== targetRevision)
250
+ throw new Error('Wallet session changed during transfer preparation');
251
+ };
252
+ const check = () => {
253
+ checkOwnership();
254
+ assertHardwareOperationCurrent(assertCurrent);
255
+ for (const assertRetired of retirementChecks)
256
+ assertHardwareOperationCurrent(assertRetired);
257
+ checkOwnership();
258
+ };
259
+ check();
260
+ if (targetKeyring !== this) {
261
+ const signals = [
262
+ this.sessionLifetime.signal,
263
+ targetKeyring.sessionLifetime.signal,
264
+ ];
265
+ let cancel;
266
+ const cancelled = new Promise((_resolve, reject) => {
267
+ cancel = () => reject(new Error('Wallet session changed during transfer preparation'));
268
+ for (const signal of signals)
269
+ signal.addEventListener('abort', cancel, { once: true });
270
+ });
271
+ const signers = [ledger, trezor].filter((signer) => signer !== undefined);
272
+ const retirement = Promise.allSettled(signers.map((signer) => Promise.resolve().then(() => signer.retire()))).then((results) => {
273
+ for (const result of results) {
274
+ if (result.status === 'rejected')
275
+ throw result.reason;
276
+ retirementChecks.push(result.value);
277
+ }
278
+ });
279
+ try {
280
+ await Promise.race([retirement, cancelled]);
281
+ }
282
+ finally {
283
+ for (const signal of signals)
284
+ signal.removeEventListener('abort', cancel);
285
+ }
286
+ check();
235
287
  }
236
- __classPrivateFieldGet(targetKeyring, _KeyringCore_instances, "m", _KeyringCore_acceptSessionFrom).call(targetKeyring, this);
237
- this.privateRecordSessionRevision++;
238
- __classPrivateFieldSet(this, _KeyringCore_deviceUnlockRetired, true, "f");
239
- // Null out our references (do NOT clear buffers - target owns them now)
240
- this.sessionPassword = null;
241
- this.sessionMnemonic = null;
288
+ let consumed = false;
289
+ return Object.freeze({
290
+ transfer: () => {
291
+ if (consumed)
292
+ throw new Error('Session transfer has already been used');
293
+ consumed = true;
294
+ check();
295
+ if (targetKeyring === this)
296
+ return;
297
+ __classPrivateFieldGet(targetKeyring, _KeyringCore_instances, "m", _KeyringCore_acceptSessionFrom).call(targetKeyring, this);
298
+ this.retireSessionLifetime();
299
+ __classPrivateFieldSet(this, _KeyringCore_deviceUnlockRetired, true, "f");
300
+ // Move the original SecureBuffers without copying their contents.
301
+ this.sessionPassword = null;
302
+ this.sessionMnemonic = null;
303
+ },
304
+ });
242
305
  };
243
306
  this.addNewAccount = async (label) => {
244
307
  // Check if wallet is unlocked
@@ -1210,6 +1273,22 @@ export class KeyringCore {
1210
1273
  // No need to explicitly set active account - it's managed externally
1211
1274
  return account;
1212
1275
  }
1276
+ /** Capture wallet-session authority without binding an account or network. */
1277
+ captureUnlockedSessionGuard() {
1278
+ const assertOwner = __classPrivateFieldGet(this, _KeyringCore_instances, "m", _KeyringCore_captureSessionGuard).call(this);
1279
+ const assertCurrent = () => {
1280
+ assertOwner();
1281
+ if (!this.isUnlocked())
1282
+ throw new Error('Wallet unlock session changed');
1283
+ };
1284
+ assertCurrent();
1285
+ return assertCurrent;
1286
+ }
1287
+ retireSessionLifetime() {
1288
+ this.privateRecordSessionRevision++;
1289
+ this.sessionLifetime.abort();
1290
+ this.sessionLifetime = new AbortController();
1291
+ }
1213
1292
  /**
1214
1293
  * Returns canLogin:false only when the first vault authentication fails.
1215
1294
  * Storage, platform and session restoration failures reject so callers do
@@ -1820,51 +1899,7 @@ export class KeyringCore {
1820
1899
  }
1821
1900
  /** The software facade owns this public capability; no device fallback. */
1822
1901
  signPreparedSoftwareEvmTransaction(input, options) {
1823
- // Capture authority before parsing caller data or invoking host callbacks.
1824
- const assertSession = this.capturePsbtSigningContext();
1825
- const vault = this.getVault();
1826
- const selected = { ...vault.activeAccount };
1827
- const selectedAccount = vault.accounts[selected.type]?.[selected.id];
1828
- const encryptedKey = selectedAccount?.xprv;
1829
- const request = snapshotPreparedEvmRequest(input);
1830
- const hostGuard = preparedEvmGuard(options);
1831
- const assertCurrent = () => {
1832
- assertSession();
1833
- const current = this.getVault();
1834
- const account = current.accounts[selected.type]?.[selected.id];
1835
- if ((selected.type !== KeyringAccountType.HDAccount &&
1836
- selected.type !== KeyringAccountType.Imported) ||
1837
- !account ||
1838
- account.id !== selected.id ||
1839
- account.isLedgerWallet ||
1840
- account.isTrezorWallet ||
1841
- account.isSmartAccount ||
1842
- typeof encryptedKey !== 'string' ||
1843
- encryptedKey.length === 0 ||
1844
- account.xprv !== encryptedKey ||
1845
- request.account.type !== selected.type ||
1846
- request.account.id !== selected.id ||
1847
- request.account.expectedAddress !== getAddress(account.address) ||
1848
- current.activeNetwork.kind !== INetworkType.Ethereum ||
1849
- current.activeNetwork.slip44 !== 60 ||
1850
- !Number.isSafeInteger(current.activeNetwork.chainId) ||
1851
- current.activeNetwork.chainId <= 0 ||
1852
- BigInt(current.activeNetwork.chainId).toString() !==
1853
- request.network.chainId ||
1854
- current.activeNetwork.url !== request.network.url)
1855
- throw new Error('Prepared EVM signing context changed or is unsupported');
1856
- };
1857
- assertCurrent();
1858
- hostGuard();
1859
- assertCurrent();
1860
- const key = this.getDecryptedPrivateKey();
1861
- if (getAddress(key.address) !== request.account.expectedAddress)
1862
- throw new Error('Prepared EVM signer address mismatch');
1863
- assertCurrent();
1864
- const { signed } = signPreparedEvmEnvelope(request.transaction, key.decryptedPrivateKey);
1865
- hostGuard();
1866
- assertCurrent();
1867
- return signed;
1902
+ return this.ethereumTransaction.signPreparedEvmTransaction(input, options);
1868
1903
  }
1869
1904
  writeUtf8Diagnostic(hasUtf8Error) {
1870
1905
  try {
@@ -2703,7 +2738,7 @@ _KeyringCore_deviceUnlockRetired = new WeakMap(), _KeyringCore_sessionOwnership
2703
2738
  };
2704
2739
  }, _KeyringCore_replaceSessionBuffers = function _KeyringCore_replaceSessionBuffers(sessionPassword, sessionMnemonic, sourceToken) {
2705
2740
  __classPrivateFieldGet(this, _KeyringCore_instances, "m", _KeyringCore_assertSessionOwner).call(this, sourceToken);
2706
- this.privateRecordSessionRevision++;
2741
+ this.retireSessionLifetime();
2707
2742
  // Clear any existing data first
2708
2743
  if (this.sessionPassword) {
2709
2744
  this.sessionPassword.clear();