@sidhujag/sysweb3-keyring 1.0.523 → 1.0.524

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.
@@ -443,6 +443,10 @@ class HardwareWalletManager extends events_1.EventEmitter {
443
443
  }
444
444
  catch (error) {
445
445
  lastError = error;
446
+ // Do not retry on explicit user cancellations (Ledger/Trezor)
447
+ if (this.isUserCancellationError(lastError)) {
448
+ throw lastError;
449
+ }
446
450
  if (attempt < config.maxRetries) {
447
451
  const delay = this.calculateBackoffDelay(attempt);
448
452
  this.emit('operationRetry', {
@@ -457,6 +461,44 @@ class HardwareWalletManager extends events_1.EventEmitter {
457
461
  }
458
462
  throw new Error(`${operationName} failed after ${config.maxRetries + 1} attempts: ${lastError?.message || 'Unknown error'}`);
459
463
  }
464
+ /**
465
+ * Detects common user-cancellation errors to avoid pointless retries
466
+ */
467
+ isUserCancellationError(err) {
468
+ const message = (err?.message || '').toLowerCase();
469
+ const name = err?.name || '';
470
+ const statusCode = err?.statusCode;
471
+ // Ledger: 0x6985 (Conditions of use not satisfied) on rejection
472
+ if (statusCode === 0x6985)
473
+ return true;
474
+ // Message-based heuristics across vendors
475
+ if (message.includes('0x6985') ||
476
+ (message.includes('condition') &&
477
+ message.includes('not') &&
478
+ message.includes('satisf')) ||
479
+ message.includes('not allowed') ||
480
+ message.includes('permission denied') ||
481
+ message.includes('user rejected') ||
482
+ message.includes('denied by the user') ||
483
+ message.includes('failure_actioncancelled') ||
484
+ message.includes('denied') ||
485
+ message.includes('rejected') ||
486
+ message.includes('refused') ||
487
+ message.includes('cancelled') ||
488
+ message.includes('canceled') ||
489
+ message.includes('popup closed')) {
490
+ return true;
491
+ }
492
+ // Name-based checks (align with frontend utilities)
493
+ if (name === 'NotAllowedError' ||
494
+ name === 'AbortError' ||
495
+ name === 'UserCancel' ||
496
+ name === 'TransportError' ||
497
+ name === 'DOMException') {
498
+ return true;
499
+ }
500
+ return false;
501
+ }
460
502
  }
461
503
  exports.HardwareWalletManager = HardwareWalletManager;
462
504
  //# sourceMappingURL=hardware-wallet-manager.js.map
@@ -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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"}
@@ -224,7 +224,11 @@ class KeyringManager {
224
224
  if (!account) {
225
225
  throw new Error('Active account not found');
226
226
  }
227
- const { xpub } = account;
227
+ const { xpub, isImported, address } = account;
228
+ // For imported single-address accounts, always return the single address
229
+ const looksLikeSingleAddress = isImported && xpub === address;
230
+ if (looksLikeSingleAddress)
231
+ return address;
228
232
  return await this.getAddress(xpub, true); // Don't skip increment - get next unused
229
233
  };
230
234
  this.getChangeAddress = async (id) => {
@@ -234,7 +238,9 @@ class KeyringManager {
234
238
  if (!account) {
235
239
  throw new Error(`Account with id ${id} not found`);
236
240
  }
237
- const { xpub } = account;
241
+ const { xpub, isImported, address } = account;
242
+ if (isImported && xpub === address)
243
+ return address;
238
244
  return await this.getAddress(xpub, true);
239
245
  };
240
246
  this.getPubkey = async (id, isChangeAddress) => {
@@ -244,7 +250,10 @@ class KeyringManager {
244
250
  if (!account) {
245
251
  throw new Error(`Account with id ${id} not found`);
246
252
  }
247
- const { xpub } = account;
253
+ const { xpub, isImported, address } = account;
254
+ if (isImported && xpub === address) {
255
+ throw new Error('Public key not available for single-address imported accounts');
256
+ }
248
257
  return await this.getCurrentAddressPubkey(xpub, isChangeAddress);
249
258
  };
250
259
  this.getBip32Path = async (id, isChangeAddress) => {
@@ -254,7 +263,10 @@ class KeyringManager {
254
263
  if (!account) {
255
264
  throw new Error(`Account with id ${id} not found`);
256
265
  }
257
- const { xpub } = account;
266
+ const { xpub, isImported, address } = account;
267
+ if (isImported && xpub === address) {
268
+ throw new Error('BIP32 path not available for single-address imported accounts');
269
+ }
258
270
  return await this.getCurrentAddressBip32Path(xpub, isChangeAddress);
259
271
  };
260
272
  this.updateReceivingAddress = async () => {
@@ -264,11 +276,13 @@ class KeyringManager {
264
276
  if (!account) {
265
277
  throw new Error('Active account not found');
266
278
  }
267
- const { xpub } = account;
268
- const address = await this.getAddress(xpub, false);
279
+ const { xpub, isImported, address } = account;
280
+ if (isImported && xpub === address)
281
+ return address;
282
+ const nextAddress = await this.getAddress(xpub, false);
269
283
  // NOTE: Address updates should be dispatched to Redux store, not updated here
270
284
  // The calling code should handle the Redux dispatch
271
- return address;
285
+ return nextAddress;
272
286
  };
273
287
  this.getAccountById = (id, accountType) => {
274
288
  const vault = this.getVault();
@@ -505,18 +519,13 @@ class KeyringManager {
505
519
  const options = 'tokens=used&details=tokens';
506
520
  const { tokens } = await syscoinjs.utils.fetchBackendAccount(main.blockbookURL, xpub, options, true, undefined);
507
521
  const { receivingIndex, changeIndex } = this.setLatestIndexesFromXPubTokens(tokens);
508
- // Get network configuration for BIP84
522
+ // Get network configuration for BIP84 using network-provided pub type macros
509
523
  const networkConfig = (0, sysweb3_network_1.getNetworkConfig)(activeNetwork.slip44, activeNetwork.currency);
510
- // BIP84 needs pubTypes and networks config
511
- // For read-only operations, we construct these from networkConfig
512
- const pubTypes = networkConfig?.types?.zPubType || {
513
- mainnet: { zprv: 0x04b2430c, zpub: 0x04b24746 },
514
- testnet: { vprv: 0x045f18bc, vpub: 0x045f1cf6 },
515
- };
516
- const networks = networkConfig?.networks || {
517
- mainnet: {},
518
- testnet: {},
519
- };
524
+ const pubTypes = networkConfig?.types?.zPubType;
525
+ if (!pubTypes) {
526
+ throw new Error('Missing zPubType in network configuration');
527
+ }
528
+ const networks = networkConfig.networks;
520
529
  const currentAccount = new bip84_1.default.fromZPub(xpub, pubTypes, networks);
521
530
  const addressIndex = isChangeAddress ? changeIndex : receivingIndex;
522
531
  return {
@@ -627,15 +636,51 @@ class KeyringManager {
627
636
  if (this.getActiveChain() !== sysweb3_network_1.INetworkType.Syscoin) {
628
637
  throw new Error('Switch to UTXO chain');
629
638
  }
630
- // Create fresh on-demand signer for active account (now synchronous!)
631
- const freshHDSigner = this.createOnDemandSignerForActiveAccount();
632
- // Create fresh syscoinjs instance with current network
633
639
  const vault = this.getVault();
640
+ const { activeAccount } = vault;
641
+ const accountId = activeAccount.id;
642
+ const accountType = activeAccount.type;
643
+ // Determine signer type: HD or WIF single-address
644
+ let signerForUse;
645
+ if (accountType === types_1.KeyringAccountType.HDAccount) {
646
+ signerForUse = this.createOnDemandUTXOSigner(accountId);
647
+ }
648
+ else if (accountType === types_1.KeyringAccountType.Imported) {
649
+ // Decrypt stored key material
650
+ const decrypted = this.withSecureData((sessionPwd) => {
651
+ const account = vault.accounts[types_1.KeyringAccountType.Imported][accountId];
652
+ const res = crypto_js_1.default.AES.decrypt(account.xprv, sessionPwd).toString(crypto_js_1.default.enc.Utf8);
653
+ if (!res)
654
+ throw new Error('Failed to decrypt imported account key');
655
+ return res;
656
+ });
657
+ if (this.isZprv(decrypted)) {
658
+ signerForUse = this.createFreshUTXOSigner(decrypted, accountId);
659
+ }
660
+ else {
661
+ // Treat as WIF single-address signer wrapper exposing sign(psbt)
662
+ const network = vault.activeNetwork;
663
+ const { networks } = (0, sysweb3_network_1.getNetworkConfig)(network.slip44, network.currency);
664
+ const isTestnet = network.slip44 === 1;
665
+ const bitcoinjsNetwork = isTestnet
666
+ ? networks.testnet
667
+ : networks.mainnet;
668
+ signerForUse = {
669
+ sign: async (psbt) => {
670
+ return await syscoinjs.utils.signWithWIF(psbt, decrypted, bitcoinjsNetwork);
671
+ },
672
+ };
673
+ }
674
+ }
675
+ else {
676
+ throw new Error(`Unsupported account type for UTXO signing: ${accountType}`);
677
+ }
678
+ // Create syscoinjs instance with current network (no need to attach signer for signing flow)
634
679
  const network = vault.activeNetwork;
635
680
  const networkConfig = (0, sysweb3_network_1.getNetworkConfig)(network.slip44, network.currency);
636
- const syscoinMainSigner = new syscoinjs.SyscoinJSLib(freshHDSigner, network.url, networkConfig?.networks?.mainnet || undefined);
681
+ const syscoinMainSigner = new syscoinjs.SyscoinJSLib(null, network.url, networkConfig?.networks?.mainnet || undefined);
637
682
  return {
638
- hd: freshHDSigner,
683
+ hd: signerForUse,
639
684
  main: syscoinMainSigner,
640
685
  };
641
686
  };
@@ -1113,9 +1158,8 @@ class KeyringManager {
1113
1158
  // For BIP84 (zprv/zpub), we need to use the correct magic bytes from zPubType
1114
1159
  // Determine key type: zprv = mainnet key, vprv = testnet key
1115
1160
  const keyIsTestnet = prefix === 'vprv';
1116
- // Determine target network type: testnet networks typically have chainId 5700+ or slip44 1
1117
- const targetIsTestnet = networkToValidateAgainst.chainId >= 5700 ||
1118
- networkToValidateAgainst.slip44 === 1;
1161
+ // Determine target network type: testnet networks typically have slip44 1
1162
+ const targetIsTestnet = networkToValidateAgainst.slip44 === 1;
1119
1163
  // Cross-network validation: reject if key type doesn't match target network
1120
1164
  if (keyIsTestnet && !targetIsTestnet) {
1121
1165
  throw new Error(`Extended private key is not compatible with ${networkToValidateAgainst.label}. ` +
@@ -1167,6 +1211,49 @@ class KeyringManager {
1167
1211
  return { isValid: false, message: error.message };
1168
1212
  }
1169
1213
  }
1214
+ validateWif(wif, targetNetwork) {
1215
+ // Use the active network if targetNetwork is not provided
1216
+ const networkToValidateAgainst = targetNetwork || this.getVault().activeNetwork;
1217
+ if (!networkToValidateAgainst) {
1218
+ throw new Error('No network available for validation');
1219
+ }
1220
+ try {
1221
+ // Get bitcoinjs network for the target network (Syscoin/BTC etc.)
1222
+ const { networks } = (0, sysweb3_network_1.getNetworkConfig)(networkToValidateAgainst.slip44, networkToValidateAgainst.currency || 'Bitcoin');
1223
+ const isTestnet = networkToValidateAgainst.slip44 === 1;
1224
+ const bitcoinNetwork = isTestnet ? networks.testnet : networks.mainnet;
1225
+ // Try to parse the WIF for the given network
1226
+ const keyPair = syscoinjs.utils.bitcoinjs.ECPair.fromWIF(wif, bitcoinNetwork);
1227
+ if (!keyPair || !keyPair.privateKey)
1228
+ throw new Error('Invalid WIF private key');
1229
+ // Derive an address based on network capability
1230
+ // Prefer native segwit if the network supports bech32, otherwise fall back to P2PKH
1231
+ let address;
1232
+ try {
1233
+ if (bitcoinNetwork.bech32) {
1234
+ address = bjs.payments.p2wpkh({
1235
+ pubkey: keyPair.publicKey,
1236
+ network: bitcoinNetwork,
1237
+ }).address;
1238
+ }
1239
+ if (!address) {
1240
+ address = bjs.payments.p2pkh({
1241
+ pubkey: keyPair.publicKey,
1242
+ network: bitcoinNetwork,
1243
+ }).address;
1244
+ }
1245
+ }
1246
+ catch (e) {
1247
+ // ignore and handle below
1248
+ }
1249
+ if (!address)
1250
+ throw new Error('Failed to derive address from WIF');
1251
+ return { isValid: true };
1252
+ }
1253
+ catch (error) {
1254
+ return { isValid: false, message: error.message };
1255
+ }
1256
+ }
1170
1257
  validateAndHandleErrorByMessage(message) {
1171
1258
  const utf8ErrorMessage = 'Malformed UTF-8 data';
1172
1259
  if (message.includes(utf8ErrorMessage) ||
@@ -1422,17 +1509,17 @@ class KeyringManager {
1422
1509
  async _getPrivateKeyAccountInfos(privKey, label) {
1423
1510
  const vault = this.getVault();
1424
1511
  const { accounts } = vault;
1425
- let importedAccountValue;
1512
+ let importedAccountValue = null;
1426
1513
  const balances = {
1427
1514
  syscoin: 0,
1428
1515
  ethereum: 0,
1429
1516
  };
1430
- // Try to validate as extended private key first, regardless of prefix
1517
+ let isUtxoImported = false;
1518
+ // Try to validate as extended private key first
1431
1519
  const networkToUse = vault.activeNetwork;
1432
1520
  const zprvValidation = this.validateZprv(privKey, networkToUse);
1433
1521
  // Check if we're on an EVM network (slip44 = 60) or UTXO network
1434
1522
  const isEvmNetwork = networkToUse.slip44 === 60;
1435
- const isUtxoNetwork = !isEvmNetwork;
1436
1523
  if (zprvValidation.isValid) {
1437
1524
  // This is a valid UTXO extended private key
1438
1525
  if (isEvmNetwork) {
@@ -1460,8 +1547,46 @@ class KeyringManager {
1460
1547
  privateKey: privKey,
1461
1548
  };
1462
1549
  balances.syscoin = 0;
1550
+ isUtxoImported = true;
1463
1551
  }
1464
1552
  else {
1553
+ // If not a valid zprv/vprv, on UTXO networks try WIF
1554
+ const isEvmNetwork = networkToUse.slip44 === 60;
1555
+ let handledAsUtxo = false;
1556
+ if (!isEvmNetwork) {
1557
+ const wifValidation = this.validateWif(privKey, networkToUse);
1558
+ if (wifValidation.isValid) {
1559
+ // Create address from WIF and treat as single-address imported account
1560
+ const { networks } = (0, sysweb3_network_1.getNetworkConfig)(networkToUse.slip44, networkToUse.currency || 'Bitcoin');
1561
+ const isTestnet = networkToUse.slip44 === 1;
1562
+ const bitcoinNetwork = isTestnet
1563
+ ? networks.testnet
1564
+ : networks.mainnet;
1565
+ const keyPair = syscoinjs.utils.bitcoinjs.ECPair.fromWIF(privKey, bitcoinNetwork);
1566
+ const { address } = bjs.payments.p2wpkh({
1567
+ pubkey: keyPair.publicKey,
1568
+ network: bitcoinNetwork,
1569
+ });
1570
+ if (!address) {
1571
+ throw new Error('Failed to generate address from WIF');
1572
+ }
1573
+ importedAccountValue = {
1574
+ address,
1575
+ // For single-address WIF accounts, store xpub as the address marker
1576
+ publicKey: address,
1577
+ privateKey: privKey,
1578
+ };
1579
+ // Set UTXO balance bucket
1580
+ balances.syscoin = 0;
1581
+ isUtxoImported = true;
1582
+ handledAsUtxo = true;
1583
+ // Proceed to account creation below
1584
+ }
1585
+ else if (!isEvmNetwork && wifValidation.message) {
1586
+ // Provide useful feedback on UTXO network if WIF was attempted and failed
1587
+ // Continue to EVM handling only if actually EVM network
1588
+ }
1589
+ }
1465
1590
  // Check if the validation failed due to network mismatch
1466
1591
  if (zprvValidation.message &&
1467
1592
  zprvValidation.message.includes('Network mismatch')) {
@@ -1503,20 +1628,25 @@ class KeyringManager {
1503
1628
  // For UTXO networks, throw the original validation error
1504
1629
  throw new Error(zprvValidation.message || 'Invalid extended private key');
1505
1630
  }
1506
- // If it's not an extended key, treat it as an Ethereum private key
1631
+ // If it's not an extended key and not a valid WIF, treat it as an Ethereum private key
1507
1632
  // But first check if we're on an EVM network
1508
- if (isUtxoNetwork) {
1633
+ if (!isEvmNetwork && !handledAsUtxo) {
1509
1634
  throw new Error('Cannot import EVM private key on UTXO network. Please switch to an EVM network first.');
1510
1635
  }
1511
- const hexPrivateKey = privKey.slice(0, 2) === '0x' ? privKey : `0x${privKey}`;
1512
- // Validate it's a valid hex string (32 bytes = 64 hex chars)
1513
- if (!/^0x[0-9a-fA-F]{64}$/.test(hexPrivateKey) &&
1514
- !/^[0-9a-fA-F]{64}$/.test(privKey)) {
1515
- throw new Error('Invalid private key format. Expected 32-byte hex string or extended private key.');
1636
+ if (!handledAsUtxo) {
1637
+ const hexPrivateKey = privKey.slice(0, 2) === '0x' ? privKey : `0x${privKey}`;
1638
+ // Validate it's a valid hex string (32 bytes = 64 hex chars)
1639
+ if (!/^0x[0-9a-fA-F]{64}$/.test(hexPrivateKey) &&
1640
+ !/^[0-9a-fA-F]{64}$/.test(privKey)) {
1641
+ throw new Error('Invalid private key format. Expected 32-byte hex string or extended private key.');
1642
+ }
1643
+ importedAccountValue =
1644
+ this.ethereumTransaction.importAccount(hexPrivateKey);
1645
+ balances.ethereum = 0;
1516
1646
  }
1517
- importedAccountValue =
1518
- this.ethereumTransaction.importAccount(hexPrivateKey);
1519
- balances.ethereum = 0;
1647
+ }
1648
+ if (!importedAccountValue) {
1649
+ throw new Error('Invalid private key format. Expected WIF, extended private key, or 32-byte hex.');
1520
1650
  }
1521
1651
  const { address, publicKey, privateKey } = importedAccountValue;
1522
1652
  //Validate if account already exists
@@ -1529,7 +1659,7 @@ class KeyringManager {
1529
1659
  // Generate appropriate label based on account type
1530
1660
  const network = vault.activeNetwork;
1531
1661
  let defaultLabel;
1532
- if (zprvValidation.isValid) {
1662
+ if (zprvValidation.isValid || isUtxoImported) {
1533
1663
  // UTXO imported account - use network-aware label
1534
1664
  const networkPrefix = network.label;
1535
1665
  defaultLabel = label || `${networkPrefix} Imported ${id + 1}`;
@@ -1618,51 +1748,6 @@ class KeyringManager {
1618
1748
  const mnemonic = this.getDecryptedMnemonic();
1619
1749
  return this.createFreshUTXOSigner(mnemonic, accountId);
1620
1750
  }
1621
- /**
1622
- * Creates a fresh UTXO signer for imported accounts from stored zprv
1623
- * OPTIMIZED: No RPC call needed - uses network config directly
1624
- */
1625
- createOnDemandUTXOSignerFromImported(accountId) {
1626
- if (!this.sessionPassword) {
1627
- throw new Error('Session password not available');
1628
- }
1629
- const vault = this.getVault();
1630
- const account = vault.accounts[types_1.KeyringAccountType.Imported][accountId];
1631
- if (!account) {
1632
- throw new Error(`Imported account ${accountId} not found`);
1633
- }
1634
- // Decrypt the stored zprv
1635
- const zprv = this.withSecureData((sessionPwd) => {
1636
- const decrypted = crypto_js_1.default.AES.decrypt(account.xprv, sessionPwd).toString(crypto_js_1.default.enc.Utf8);
1637
- if (!decrypted) {
1638
- throw new Error('Failed to decrypt imported account private key');
1639
- }
1640
- return decrypted;
1641
- });
1642
- if (!this.isZprv(zprv)) {
1643
- throw new Error('Imported account does not contain a valid zprv');
1644
- }
1645
- return this.createFreshUTXOSigner(zprv, accountId);
1646
- }
1647
- /**
1648
- * Common method to create on-demand signer for active account
1649
- * Handles account type determination and delegates to appropriate method
1650
- */
1651
- createOnDemandSignerForActiveAccount() {
1652
- const vault = this.getVault();
1653
- const { activeAccount } = vault;
1654
- const accountId = activeAccount.id;
1655
- const accountType = activeAccount.type;
1656
- if (accountType === types_1.KeyringAccountType.HDAccount) {
1657
- return this.createOnDemandUTXOSigner(accountId);
1658
- }
1659
- else if (accountType === types_1.KeyringAccountType.Imported) {
1660
- return this.createOnDemandUTXOSignerFromImported(accountId);
1661
- }
1662
- else {
1663
- throw new Error(`Unsupported account type for UTXO signing: ${accountType}`);
1664
- }
1665
- }
1666
1751
  // NEW: Helper methods for HD signer management
1667
1752
  isZprv(key) {
1668
1753
  const zprvPrefixes = ['zprv', 'tprv', 'vprv', 'xprv'];