@sidhujag/sysweb3-keyring 1.0.491

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 (104) hide show
  1. package/README.md +201 -0
  2. package/cjs/errorUtils.js +75 -0
  3. package/cjs/errorUtils.js.map +1 -0
  4. package/cjs/hardware-wallet-manager.js +462 -0
  5. package/cjs/hardware-wallet-manager.js.map +1 -0
  6. package/cjs/index.js +31 -0
  7. package/cjs/index.js.map +1 -0
  8. package/cjs/initial-state.js +105 -0
  9. package/cjs/initial-state.js.map +1 -0
  10. package/cjs/keyring-manager.js +1687 -0
  11. package/cjs/keyring-manager.js.map +1 -0
  12. package/cjs/ledger/bitcoin_client/index.js +47 -0
  13. package/cjs/ledger/bitcoin_client/index.js.map +1 -0
  14. package/cjs/ledger/bitcoin_client/lib/appClient.js +408 -0
  15. package/cjs/ledger/bitcoin_client/lib/appClient.js.map +1 -0
  16. package/cjs/ledger/bitcoin_client/lib/bip32.js +61 -0
  17. package/cjs/ledger/bitcoin_client/lib/bip32.js.map +1 -0
  18. package/cjs/ledger/bitcoin_client/lib/buffertools.js +126 -0
  19. package/cjs/ledger/bitcoin_client/lib/buffertools.js.map +1 -0
  20. package/cjs/ledger/bitcoin_client/lib/clientCommands.js +270 -0
  21. package/cjs/ledger/bitcoin_client/lib/clientCommands.js.map +1 -0
  22. package/cjs/ledger/bitcoin_client/lib/constants.js +16 -0
  23. package/cjs/ledger/bitcoin_client/lib/constants.js.map +1 -0
  24. package/cjs/ledger/bitcoin_client/lib/merkelizedPsbt.js +54 -0
  25. package/cjs/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +1 -0
  26. package/cjs/ledger/bitcoin_client/lib/merkle.js +109 -0
  27. package/cjs/ledger/bitcoin_client/lib/merkle.js.map +1 -0
  28. package/cjs/ledger/bitcoin_client/lib/merkleMap.js +46 -0
  29. package/cjs/ledger/bitcoin_client/lib/merkleMap.js.map +1 -0
  30. package/cjs/ledger/bitcoin_client/lib/policy.js +66 -0
  31. package/cjs/ledger/bitcoin_client/lib/policy.js.map +1 -0
  32. package/cjs/ledger/bitcoin_client/lib/psbtv2.js +640 -0
  33. package/cjs/ledger/bitcoin_client/lib/psbtv2.js.map +1 -0
  34. package/cjs/ledger/bitcoin_client/lib/varint.js +113 -0
  35. package/cjs/ledger/bitcoin_client/lib/varint.js.map +1 -0
  36. package/cjs/ledger/consts.js +7 -0
  37. package/cjs/ledger/consts.js.map +1 -0
  38. package/cjs/ledger/index.js +319 -0
  39. package/cjs/ledger/index.js.map +1 -0
  40. package/cjs/ledger/types.js +3 -0
  41. package/cjs/ledger/types.js.map +1 -0
  42. package/cjs/network-utils.js +76 -0
  43. package/cjs/network-utils.js.map +1 -0
  44. package/cjs/providers.js +270 -0
  45. package/cjs/providers.js.map +1 -0
  46. package/cjs/signers.js +64 -0
  47. package/cjs/signers.js.map +1 -0
  48. package/cjs/storage.js +30 -0
  49. package/cjs/storage.js.map +1 -0
  50. package/cjs/transactions/__tests__/integration.test.js +237 -0
  51. package/cjs/transactions/__tests__/integration.test.js.map +1 -0
  52. package/cjs/transactions/__tests__/syscoin.test.js +361 -0
  53. package/cjs/transactions/__tests__/syscoin.test.js.map +1 -0
  54. package/cjs/transactions/ethereum.js +1577 -0
  55. package/cjs/transactions/ethereum.js.map +1 -0
  56. package/cjs/transactions/index.js +19 -0
  57. package/cjs/transactions/index.js.map +1 -0
  58. package/cjs/transactions/syscoin.js +328 -0
  59. package/cjs/transactions/syscoin.js.map +1 -0
  60. package/cjs/trezor/index.js +718 -0
  61. package/cjs/trezor/index.js.map +1 -0
  62. package/cjs/types.js +12 -0
  63. package/cjs/types.js.map +1 -0
  64. package/cjs/utils/derivation-paths.js +99 -0
  65. package/cjs/utils/derivation-paths.js.map +1 -0
  66. package/cjs/utils/psbt.js +60 -0
  67. package/cjs/utils/psbt.js.map +1 -0
  68. package/cjs/utils.js +130 -0
  69. package/cjs/utils.js.map +1 -0
  70. package/package.json +46 -0
  71. package/types/errorUtils.d.ts +1 -0
  72. package/types/hardware-wallet-manager.d.ts +110 -0
  73. package/types/index.d.ts +12 -0
  74. package/types/initial-state.d.ts +79 -0
  75. package/types/keyring-manager.d.ts +184 -0
  76. package/types/ledger/bitcoin_client/index.d.ts +5 -0
  77. package/types/ledger/bitcoin_client/lib/appClient.d.ts +106 -0
  78. package/types/ledger/bitcoin_client/lib/bip32.d.ts +11 -0
  79. package/types/ledger/bitcoin_client/lib/buffertools.d.ts +28 -0
  80. package/types/ledger/bitcoin_client/lib/clientCommands.d.ts +77 -0
  81. package/types/ledger/bitcoin_client/lib/constants.d.ts +12 -0
  82. package/types/ledger/bitcoin_client/lib/merkelizedPsbt.d.ts +24 -0
  83. package/types/ledger/bitcoin_client/lib/merkle.d.ts +32 -0
  84. package/types/ledger/bitcoin_client/lib/merkleMap.d.ts +23 -0
  85. package/types/ledger/bitcoin_client/lib/policy.d.ts +36 -0
  86. package/types/ledger/bitcoin_client/lib/psbtv2.d.ts +167 -0
  87. package/types/ledger/bitcoin_client/lib/varint.d.ts +23 -0
  88. package/types/ledger/consts.d.ts +3 -0
  89. package/types/ledger/index.d.ts +51 -0
  90. package/types/ledger/types.d.ts +48 -0
  91. package/types/network-utils.d.ts +14 -0
  92. package/types/providers.d.ts +47 -0
  93. package/types/signers.d.ts +95 -0
  94. package/types/storage.d.ts +2 -0
  95. package/types/transactions/__tests__/integration.test.d.ts +1 -0
  96. package/types/transactions/__tests__/syscoin.test.d.ts +1 -0
  97. package/types/transactions/ethereum.d.ts +80 -0
  98. package/types/transactions/index.d.ts +2 -0
  99. package/types/transactions/syscoin.d.ts +61 -0
  100. package/types/trezor/index.d.ts +170 -0
  101. package/types/types.d.ts +294 -0
  102. package/types/utils/derivation-paths.d.ts +35 -0
  103. package/types/utils/psbt.d.ts +17 -0
  104. package/types/utils.d.ts +4 -0
@@ -0,0 +1,462 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HardwareWalletManager = exports.ConnectionStatus = exports.HardwareWalletType = void 0;
7
+ const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
8
+ const logs_1 = require("@ledgerhq/logs");
9
+ const connect_webextension_1 = __importDefault(require("@trezor/connect-webextension"));
10
+ const events_1 = require("events");
11
+ var HardwareWalletType;
12
+ (function (HardwareWalletType) {
13
+ HardwareWalletType["LEDGER"] = "ledger";
14
+ HardwareWalletType["TREZOR"] = "trezor";
15
+ })(HardwareWalletType || (exports.HardwareWalletType = HardwareWalletType = {}));
16
+ var ConnectionStatus;
17
+ (function (ConnectionStatus) {
18
+ ConnectionStatus["DISCONNECTED"] = "disconnected";
19
+ ConnectionStatus["CONNECTING"] = "connecting";
20
+ ConnectionStatus["CONNECTED"] = "connected";
21
+ ConnectionStatus["ERROR"] = "error";
22
+ })(ConnectionStatus || (exports.ConnectionStatus = ConnectionStatus = {}));
23
+ /**
24
+ * Hardware Wallet Manager with connection pooling, status monitoring, and error recovery
25
+ */
26
+ class HardwareWalletManager extends events_1.EventEmitter {
27
+ constructor() {
28
+ super();
29
+ this.connectionPool = new Map();
30
+ this.statusMonitorInterval = null;
31
+ this.CONNECTION_TIMEOUT = 30000; // 30 seconds
32
+ this.IDLE_TIMEOUT = 5 * 60 * 1000; // 5 minutes
33
+ this.STATUS_CHECK_INTERVAL = 5000; // 5 seconds
34
+ this.retryConfig = {
35
+ maxRetries: 3,
36
+ baseDelay: 1000, // 1 second
37
+ maxDelay: 10000, // 10 seconds
38
+ backoffMultiplier: 2,
39
+ };
40
+ this.startStatusMonitoring();
41
+ // Set up Ledger debug logging
42
+ if (process.env.NODE_ENV === 'development') {
43
+ (0, logs_1.listen)((log) => {
44
+ console.log(`[Ledger] ${log.type}: ${log.message}`);
45
+ });
46
+ }
47
+ }
48
+ /**
49
+ * Get or create a Ledger connection with retry logic
50
+ */
51
+ async getLedgerConnection() {
52
+ const key = `${HardwareWalletType.LEDGER}-default`;
53
+ const existing = this.connectionPool.get(key);
54
+ if (existing?.transport && existing.status === ConnectionStatus.CONNECTED) {
55
+ existing.lastActivity = Date.now();
56
+ return existing.transport;
57
+ }
58
+ return this.createLedgerConnectionWithRetry(key);
59
+ }
60
+ /**
61
+ * Create Ledger connection with exponential backoff retry
62
+ */
63
+ async createLedgerConnectionWithRetry(key) {
64
+ const entry = {
65
+ status: ConnectionStatus.CONNECTING,
66
+ lastActivity: Date.now(),
67
+ retryCount: 0,
68
+ };
69
+ this.connectionPool.set(key, entry);
70
+ let lastError;
71
+ for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
72
+ try {
73
+ this.emit('connectionAttempt', {
74
+ type: HardwareWalletType.LEDGER,
75
+ attempt: attempt + 1,
76
+ maxAttempts: this.retryConfig.maxRetries + 1,
77
+ });
78
+ const transport = await this.createLedgerTransport();
79
+ entry.transport = transport;
80
+ entry.status = ConnectionStatus.CONNECTED;
81
+ entry.retryCount = 0;
82
+ entry.error = undefined;
83
+ this.emit('connected', { type: HardwareWalletType.LEDGER });
84
+ // Set up disconnect handler
85
+ transport.on('disconnect', () => {
86
+ this.handleDisconnect(key, HardwareWalletType.LEDGER);
87
+ });
88
+ return transport;
89
+ }
90
+ catch (error) {
91
+ lastError = error;
92
+ entry.retryCount = attempt + 1;
93
+ entry.error = lastError;
94
+ if (attempt < this.retryConfig.maxRetries) {
95
+ const delay = this.calculateBackoffDelay(attempt);
96
+ this.emit('retrying', {
97
+ type: HardwareWalletType.LEDGER,
98
+ attempt: attempt + 1,
99
+ nextRetryIn: delay,
100
+ error: lastError.message,
101
+ });
102
+ await this.delay(delay);
103
+ }
104
+ }
105
+ }
106
+ entry.status = ConnectionStatus.ERROR;
107
+ this.emit('connectionFailed', {
108
+ type: HardwareWalletType.LEDGER,
109
+ error: lastError?.message,
110
+ });
111
+ throw new Error(`Failed to connect to Ledger after ${this.retryConfig.maxRetries + 1} attempts: ${lastError?.message || 'Unknown error'}`);
112
+ }
113
+ /**
114
+ * Create Ledger transport with timeout
115
+ */
116
+ async createLedgerTransport() {
117
+ return Promise.race([
118
+ hw_transport_webhid_1.default.create(),
119
+ this.createTimeoutPromise(this.CONNECTION_TIMEOUT, 'Ledger connection timeout'),
120
+ ]);
121
+ }
122
+ /**
123
+ * Initialize Trezor with retry logic
124
+ */
125
+ async initializeTrezor() {
126
+ const key = `${HardwareWalletType.TREZOR}-default`;
127
+ const existing = this.connectionPool.get(key);
128
+ if (existing?.status === ConnectionStatus.CONNECTED) {
129
+ existing.lastActivity = Date.now();
130
+ return true;
131
+ }
132
+ // Check if we're already trying to connect
133
+ if (existing?.status === ConnectionStatus.CONNECTING) {
134
+ console.log('[HardwareWalletManager] Trezor connection already in progress');
135
+ // Wait a bit and check again
136
+ await this.delay(1000);
137
+ const updated = this.connectionPool.get(key);
138
+ return updated?.status === ConnectionStatus.CONNECTED || false;
139
+ }
140
+ return this.initializeTrezorWithRetry(key);
141
+ }
142
+ /**
143
+ * Initialize Trezor with exponential backoff retry
144
+ */
145
+ async initializeTrezorWithRetry(key) {
146
+ const entry = {
147
+ status: ConnectionStatus.CONNECTING,
148
+ lastActivity: Date.now(),
149
+ retryCount: 0,
150
+ };
151
+ this.connectionPool.set(key, entry);
152
+ let lastError;
153
+ // Reduce retry attempts for Trezor to prevent repeated popups
154
+ const trezorRetryConfig = {
155
+ ...this.retryConfig,
156
+ maxRetries: 1, // Only retry once for Trezor
157
+ };
158
+ for (let attempt = 0; attempt <= trezorRetryConfig.maxRetries; attempt++) {
159
+ try {
160
+ this.emit('connectionAttempt', {
161
+ type: HardwareWalletType.TREZOR,
162
+ attempt: attempt + 1,
163
+ maxAttempts: trezorRetryConfig.maxRetries + 1,
164
+ });
165
+ // Dispose any existing iframe before initialization
166
+ try {
167
+ await connect_webextension_1.default.dispose();
168
+ }
169
+ catch (disposeError) {
170
+ console.log('[HardwareWalletManager] Dispose error (safe to ignore):', disposeError);
171
+ }
172
+ await connect_webextension_1.default.init({
173
+ manifest: {
174
+ appUrl: 'https://paliwallet.com/',
175
+ email: 'support@syscoin.org',
176
+ },
177
+ lazyLoad: true,
178
+ popup: true,
179
+ connectSrc: 'https://connect.trezor.io/9/',
180
+ _extendWebextensionLifetime: true,
181
+ transports: ['BridgeTransport', 'WebUsbTransport'],
182
+ debug: false, // Disable debug mode to prevent extra logs
183
+ coreMode: 'popup', // Use popup mode for webUSB support in Chrome extension
184
+ });
185
+ entry.status = ConnectionStatus.CONNECTED;
186
+ entry.retryCount = 0;
187
+ entry.error = undefined;
188
+ this.emit('connected', { type: HardwareWalletType.TREZOR });
189
+ // Set up device event listeners
190
+ connect_webextension_1.default.on('DEVICE_EVENT', (event) => {
191
+ if (event.type === 'device-disconnect') {
192
+ this.handleDisconnect(key, HardwareWalletType.TREZOR);
193
+ }
194
+ });
195
+ return true;
196
+ }
197
+ catch (error) {
198
+ lastError = error;
199
+ // Check if already initialized - this is actually OK
200
+ if (lastError.message.includes('TrezorConnect has been already initialized')) {
201
+ // Instead of just marking as connected, verify the connection
202
+ try {
203
+ // Test the connection with a simple call
204
+ const testResponse = await connect_webextension_1.default.getFeatures();
205
+ if (testResponse.success) {
206
+ entry.status = ConnectionStatus.CONNECTED;
207
+ entry.retryCount = 0;
208
+ entry.error = undefined;
209
+ this.emit('connected', { type: HardwareWalletType.TREZOR });
210
+ return true;
211
+ }
212
+ }
213
+ catch (testError) {
214
+ console.log('[HardwareWalletManager] Trezor test connection failed:', testError);
215
+ }
216
+ // If test failed, dispose and retry
217
+ try {
218
+ await connect_webextension_1.default.dispose();
219
+ await this.delay(500);
220
+ }
221
+ catch (disposeError) {
222
+ console.log('[HardwareWalletManager] Error disposing for retry:', disposeError);
223
+ }
224
+ }
225
+ entry.retryCount = attempt + 1;
226
+ entry.error = lastError;
227
+ // Check for specific Trezor errors
228
+ if (lastError.message.includes('device is already in use') ||
229
+ lastError.message.includes('Device is being used in another window')) {
230
+ console.log('[HardwareWalletManager] Trezor device is in use by another application');
231
+ // Try to dispose and reinitialize
232
+ try {
233
+ await connect_webextension_1.default.dispose();
234
+ await this.delay(2000); // Wait 2 seconds before retry
235
+ }
236
+ catch (disposeError) {
237
+ console.log('[HardwareWalletManager] Error during dispose:', disposeError);
238
+ }
239
+ }
240
+ // Don't retry if user cancelled
241
+ if (lastError.message.includes('Popup closed') ||
242
+ lastError.message.includes('cancelled') ||
243
+ lastError.message.includes('denied')) {
244
+ console.log('[HardwareWalletManager] User cancelled Trezor connection');
245
+ break; // Exit retry loop
246
+ }
247
+ if (attempt < trezorRetryConfig.maxRetries) {
248
+ const delay = this.calculateBackoffDelay(attempt);
249
+ this.emit('retrying', {
250
+ type: HardwareWalletType.TREZOR,
251
+ attempt: attempt + 1,
252
+ nextRetryIn: delay,
253
+ error: lastError.message,
254
+ });
255
+ await this.delay(delay);
256
+ }
257
+ }
258
+ }
259
+ entry.status = ConnectionStatus.ERROR;
260
+ this.emit('connectionFailed', {
261
+ type: HardwareWalletType.TREZOR,
262
+ error: lastError?.message,
263
+ });
264
+ // Clean up on failure
265
+ try {
266
+ await connect_webextension_1.default.dispose();
267
+ }
268
+ catch (disposeError) {
269
+ console.log('[HardwareWalletManager] Failed to dispose on error:', disposeError);
270
+ }
271
+ return false;
272
+ }
273
+ /**
274
+ * Handle device disconnect
275
+ */
276
+ handleDisconnect(key, type) {
277
+ const entry = this.connectionPool.get(key);
278
+ if (entry) {
279
+ entry.status = ConnectionStatus.DISCONNECTED;
280
+ entry.transport = null;
281
+ this.emit('disconnected', { type });
282
+ }
283
+ }
284
+ /**
285
+ * Start real-time status monitoring
286
+ */
287
+ startStatusMonitoring() {
288
+ if (this.statusMonitorInterval) {
289
+ return;
290
+ }
291
+ this.statusMonitorInterval = setInterval(() => {
292
+ this.checkAllConnections();
293
+ }, this.STATUS_CHECK_INTERVAL);
294
+ }
295
+ /**
296
+ * Check all connections and clean up idle ones
297
+ */
298
+ async checkAllConnections() {
299
+ const now = Date.now();
300
+ const statuses = [];
301
+ for (const [key, entry] of this.connectionPool.entries()) {
302
+ const type = key.startsWith(HardwareWalletType.LEDGER)
303
+ ? HardwareWalletType.LEDGER
304
+ : HardwareWalletType.TREZOR;
305
+ // Clean up idle connections
306
+ if (entry.status === ConnectionStatus.CONNECTED &&
307
+ now - entry.lastActivity > this.IDLE_TIMEOUT) {
308
+ await this.closeConnection(key);
309
+ continue;
310
+ }
311
+ // Build status
312
+ const status = {
313
+ type,
314
+ status: entry.status,
315
+ connected: entry.status === ConnectionStatus.CONNECTED,
316
+ lastSeen: entry.lastActivity,
317
+ error: entry.error?.message,
318
+ };
319
+ statuses.push(status);
320
+ }
321
+ this.emit('statusUpdate', statuses);
322
+ }
323
+ /**
324
+ * Get current status of all hardware wallets
325
+ */
326
+ getStatus() {
327
+ const statuses = [];
328
+ // Check Ledger
329
+ const ledgerEntry = this.connectionPool.get(`${HardwareWalletType.LEDGER}-default`);
330
+ statuses.push({
331
+ type: HardwareWalletType.LEDGER,
332
+ status: ledgerEntry?.status || ConnectionStatus.DISCONNECTED,
333
+ connected: ledgerEntry?.status === ConnectionStatus.CONNECTED,
334
+ lastSeen: ledgerEntry?.lastActivity,
335
+ error: ledgerEntry?.error?.message,
336
+ });
337
+ // Check Trezor
338
+ const trezorEntry = this.connectionPool.get(`${HardwareWalletType.TREZOR}-default`);
339
+ statuses.push({
340
+ type: HardwareWalletType.TREZOR,
341
+ status: trezorEntry?.status || ConnectionStatus.DISCONNECTED,
342
+ connected: trezorEntry?.status === ConnectionStatus.CONNECTED,
343
+ lastSeen: trezorEntry?.lastActivity,
344
+ error: trezorEntry?.error?.message,
345
+ });
346
+ return statuses;
347
+ }
348
+ /**
349
+ * Check if a specific device is connected
350
+ */
351
+ isConnected(type) {
352
+ const key = `${type}-default`;
353
+ const entry = this.connectionPool.get(key);
354
+ return entry?.status === ConnectionStatus.CONNECTED;
355
+ }
356
+ /**
357
+ * Ensure connection before operation
358
+ */
359
+ async ensureConnection(type) {
360
+ if (type === HardwareWalletType.LEDGER) {
361
+ await this.getLedgerConnection();
362
+ }
363
+ else if (type === HardwareWalletType.TREZOR) {
364
+ const initialized = await this.initializeTrezor();
365
+ if (!initialized) {
366
+ throw new Error('Failed to initialize Trezor');
367
+ }
368
+ }
369
+ }
370
+ /**
371
+ * Close a specific connection
372
+ */
373
+ async closeConnection(key) {
374
+ const entry = this.connectionPool.get(key);
375
+ // Handle Trezor connections
376
+ if (key.startsWith(HardwareWalletType.TREZOR)) {
377
+ try {
378
+ await connect_webextension_1.default.dispose();
379
+ }
380
+ catch (error) {
381
+ console.error('Error disposing Trezor:', error);
382
+ }
383
+ }
384
+ // Handle Ledger connections
385
+ if (entry?.transport) {
386
+ try {
387
+ await entry.transport.close();
388
+ }
389
+ catch (error) {
390
+ console.error('Error closing transport:', error);
391
+ }
392
+ }
393
+ this.connectionPool.delete(key);
394
+ }
395
+ /**
396
+ * Close all connections and stop monitoring
397
+ */
398
+ async destroy() {
399
+ // Stop monitoring
400
+ if (this.statusMonitorInterval) {
401
+ clearInterval(this.statusMonitorInterval);
402
+ this.statusMonitorInterval = null;
403
+ }
404
+ // Close all connections
405
+ for (const key of this.connectionPool.keys()) {
406
+ await this.closeConnection(key);
407
+ }
408
+ this.removeAllListeners();
409
+ }
410
+ /**
411
+ * Calculate exponential backoff delay
412
+ */
413
+ calculateBackoffDelay(attempt) {
414
+ const delay = Math.min(this.retryConfig.baseDelay *
415
+ Math.pow(this.retryConfig.backoffMultiplier, attempt), this.retryConfig.maxDelay);
416
+ // Add jitter (±20%)
417
+ const jitter = delay * 0.2 * (Math.random() - 0.5);
418
+ return Math.round(delay + jitter);
419
+ }
420
+ /**
421
+ * Create a timeout promise
422
+ */
423
+ createTimeoutPromise(ms, message) {
424
+ return new Promise((_, reject) => {
425
+ setTimeout(() => reject(new Error(message)), ms);
426
+ });
427
+ }
428
+ /**
429
+ * Delay helper
430
+ */
431
+ delay(ms) {
432
+ return new Promise((resolve) => setTimeout(resolve, ms));
433
+ }
434
+ /**
435
+ * Retry an operation with exponential backoff
436
+ */
437
+ async retryOperation(operation, operationName, customRetryConfig) {
438
+ const config = { ...this.retryConfig, ...customRetryConfig };
439
+ let lastError;
440
+ for (let attempt = 0; attempt <= config.maxRetries; attempt++) {
441
+ try {
442
+ return await operation();
443
+ }
444
+ catch (error) {
445
+ lastError = error;
446
+ if (attempt < config.maxRetries) {
447
+ const delay = this.calculateBackoffDelay(attempt);
448
+ this.emit('operationRetry', {
449
+ operation: operationName,
450
+ attempt: attempt + 1,
451
+ nextRetryIn: delay,
452
+ error: lastError.message,
453
+ });
454
+ await this.delay(delay);
455
+ }
456
+ }
457
+ }
458
+ throw new Error(`${operationName} failed after ${config.maxRetries + 1} attempts: ${lastError?.message || 'Unknown error'}`);
459
+ }
460
+ }
461
+ exports.HardwareWalletManager = HardwareWalletManager;
462
+ //# sourceMappingURL=hardware-wallet-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware-wallet-manager.js","sourceRoot":"","sources":["../../src/hardware-wallet-manager.ts"],"names":[],"mappings":"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"}
package/cjs/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.PsbtUtils = void 0;
18
+ __exportStar(require("./transactions"), exports);
19
+ __exportStar(require("./trezor"), exports);
20
+ __exportStar(require("./types"), exports);
21
+ __exportStar(require("./storage"), exports);
22
+ __exportStar(require("./signers"), exports);
23
+ __exportStar(require("./initial-state"), exports);
24
+ __exportStar(require("./keyring-manager"), exports);
25
+ __exportStar(require("./providers"), exports);
26
+ __exportStar(require("./utils/derivation-paths"), exports);
27
+ __exportStar(require("./network-utils"), exports);
28
+ __exportStar(require("./hardware-wallet-manager"), exports);
29
+ var psbt_1 = require("./utils/psbt");
30
+ Object.defineProperty(exports, "PsbtUtils", { enumerable: true, get: function () { return psbt_1.PsbtUtils; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAC1B,kDAAgC;AAChC,oDAAkC;AAClC,8CAA4B;AAC5B,2DAAyC;AACzC,kDAAgC;AAChC,4DAA0C;AAC1C,qCAAyC;AAAhC,iGAAA,SAAS,OAAA"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initialNetworksState = exports.initialActiveLedgerAccountState = exports.initialActiveTrezorAccountState = exports.initialActiveImportedAccountState = exports.initialActiveHdAccountState = void 0;
4
+ const sysweb3_network_1 = require("@sidhujag/sysweb3-network");
5
+ const network_utils_1 = require("./network-utils");
6
+ exports.initialActiveHdAccountState = {
7
+ address: '',
8
+ balances: {
9
+ ethereum: 0,
10
+ syscoin: 0,
11
+ },
12
+ id: 0,
13
+ isTrezorWallet: false,
14
+ isLedgerWallet: false,
15
+ label: 'Account 1',
16
+ xprv: '',
17
+ xpub: '',
18
+ isImported: false,
19
+ };
20
+ exports.initialActiveImportedAccountState = {
21
+ ...exports.initialActiveHdAccountState,
22
+ isImported: true,
23
+ };
24
+ exports.initialActiveTrezorAccountState = {
25
+ ...exports.initialActiveHdAccountState,
26
+ isTrezorWallet: true,
27
+ isLedgerWallet: false,
28
+ };
29
+ exports.initialActiveLedgerAccountState = {
30
+ ...exports.initialActiveHdAccountState,
31
+ isLedgerWallet: true,
32
+ isTrezorWallet: false,
33
+ };
34
+ exports.initialNetworksState = {
35
+ syscoin: (0, network_utils_1.getDefaultUTXONetworks)(),
36
+ ethereum: {
37
+ 1: {
38
+ chainId: 1,
39
+ url: 'https://rpc.ankr.com/eth',
40
+ label: 'Ethereum Mainnet',
41
+ default: false,
42
+ currency: 'eth',
43
+ explorer: 'https://etherscan.io',
44
+ apiUrl: 'https://api.etherscan.io/api',
45
+ slip44: 60,
46
+ kind: sysweb3_network_1.INetworkType.Ethereum,
47
+ },
48
+ 137: {
49
+ chainId: 137,
50
+ currency: 'matic',
51
+ default: false,
52
+ label: 'Polygon Mainnet',
53
+ url: 'https://polygon-rpc.com',
54
+ apiUrl: 'https://api.polygonscan.com/api',
55
+ explorer: 'https://polygonscan.com',
56
+ slip44: 60,
57
+ kind: sysweb3_network_1.INetworkType.Ethereum,
58
+ },
59
+ 80001: {
60
+ chainId: 80001,
61
+ currency: 'matic',
62
+ default: false,
63
+ label: 'Mumbai Testnet',
64
+ url: 'https://endpoints.omniatech.io/v1/matic/mumbai/public',
65
+ apiUrl: 'https://api-testnet.polygonscan.com/api',
66
+ explorer: 'https://mumbai.polygonscan.com',
67
+ slip44: 60,
68
+ kind: sysweb3_network_1.INetworkType.Ethereum,
69
+ },
70
+ 57: {
71
+ chainId: 57,
72
+ currency: 'sys',
73
+ default: true,
74
+ label: 'Syscoin NEVM',
75
+ url: 'https://rpc.syscoin.org',
76
+ apiUrl: 'https://explorer.syscoin.org/api',
77
+ explorer: 'https://explorer.syscoin.org',
78
+ slip44: 60,
79
+ kind: sysweb3_network_1.INetworkType.Ethereum,
80
+ },
81
+ 570: {
82
+ chainId: 570,
83
+ currency: 'sys',
84
+ default: true,
85
+ label: 'Rollux',
86
+ url: 'https://rpc.rollux.com',
87
+ apiUrl: 'https://explorer.rollux.com/api',
88
+ explorer: 'https://explorer.rollux.com',
89
+ slip44: 60,
90
+ kind: sysweb3_network_1.INetworkType.Ethereum,
91
+ },
92
+ 5700: {
93
+ chainId: 5700,
94
+ currency: 'tsys',
95
+ default: false,
96
+ label: 'Tanenbaum Testnet',
97
+ url: 'https://rpc.tanenbaum.io',
98
+ apiUrl: 'https://explorer.tanenbaum.io/api',
99
+ explorer: 'https://explorer.tanenbaum.io',
100
+ slip44: 60,
101
+ kind: sysweb3_network_1.INetworkType.Ethereum,
102
+ },
103
+ },
104
+ };
105
+ //# sourceMappingURL=initial-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initial-state.js","sourceRoot":"","sources":["../../src/initial-state.ts"],"names":[],"mappings":";;;AAAA,+DAAyD;AAEzD,mDAAyD;AAG5C,QAAA,2BAA2B,GAAyB;IAC/D,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;KACX;IACD,EAAE,EAAE,CAAC;IACL,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;CAClB,CAAC;AAEW,QAAA,iCAAiC,GAAyB;IACrE,GAAG,mCAA2B;IAC9B,UAAU,EAAE,IAAI;CACjB,CAAC;AAEW,QAAA,+BAA+B,GAAyB;IACnE,GAAG,mCAA2B;IAC9B,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEW,QAAA,+BAA+B,GAAyB;IACnE,GAAG,mCAA2B;IAC9B,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,OAAO,EAAE,IAAA,sCAAsB,GAAE;IACjC,QAAQ,EAAE;QACR,CAAC,EAAE;YACD,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,0BAA0B;YAC/B,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,8BAA8B;YACtC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,8BAAY,CAAC,QAAQ;SAC5B;QACD,GAAG,EAAE;YACH,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,iBAAiB;YACxB,GAAG,EAAE,yBAAyB;YAC9B,MAAM,EAAE,iCAAiC;YACzC,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,8BAAY,CAAC,QAAQ;SAC5B;QACD,KAAK,EAAE;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,gBAAgB;YACvB,GAAG,EAAE,uDAAuD;YAC5D,MAAM,EAAE,yCAAyC;YACjD,QAAQ,EAAE,gCAAgC;YAC1C,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,8BAAY,CAAC,QAAQ;SAC5B;QACD,EAAE,EAAE;YACF,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,yBAAyB;YAC9B,MAAM,EAAE,kCAAkC;YAC1C,QAAQ,EAAE,8BAA8B;YACxC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,8BAAY,CAAC,QAAQ;SAC5B;QACD,GAAG,EAAE;YACH,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,iCAAiC;YACzC,QAAQ,EAAE,6BAA6B;YACvC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,8BAAY,CAAC,QAAQ;SAC5B;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mBAAmB;YAC1B,GAAG,EAAE,0BAA0B;YAC/B,MAAM,EAAE,mCAAmC;YAC3C,QAAQ,EAAE,+BAA+B;YACzC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,8BAAY,CAAC,QAAQ;SAC5B;KACF;CACF,CAAC"}