@onekeyfe/hd-core 1.1.32 → 1.1.34-alpha.1

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.
@@ -0,0 +1,386 @@
1
+ import axios from 'axios';
2
+
3
+ import { httpRequest } from '../src/utils/networkUtils';
4
+
5
+ describe('networkUtils httpRequest retry bounds', () => {
6
+ afterEach(() => {
7
+ jest.restoreAllMocks();
8
+ jest.useRealTimers();
9
+ });
10
+
11
+ it('keeps timeout, retries, and cancellation opt-in for existing callers', async () => {
12
+ const requestSpy = jest.spyOn(axios, 'request').mockResolvedValue({
13
+ status: 200,
14
+ data: {
15
+ ok: true,
16
+ },
17
+ });
18
+
19
+ await expect(httpRequest('https://example.com/data.json', 'json')).resolves.toEqual({
20
+ ok: true,
21
+ });
22
+
23
+ expect(requestSpy).toHaveBeenCalledTimes(1);
24
+ expect(requestSpy.mock.calls[0][0]).not.toHaveProperty('timeout');
25
+ expect(requestSpy.mock.calls[0][0]).not.toHaveProperty('signal');
26
+ expect(requestSpy.mock.calls[0][0]).not.toHaveProperty('adapter');
27
+ expect(requestSpy.mock.calls[0][0]).not.toHaveProperty('onDownloadProgress');
28
+ });
29
+
30
+ it('passes the per-attempt timeout and stops after the configured retry count', async () => {
31
+ const timeoutError = Object.assign(new Error('timeout'), {
32
+ code: 'ECONNABORTED',
33
+ isAxiosError: true,
34
+ });
35
+ const requestSpy = jest.spyOn(axios, 'request').mockRejectedValue(timeoutError);
36
+
37
+ await expect(
38
+ httpRequest('https://example.com/firmware.bin', 'binary', {
39
+ timeoutMs: 1234,
40
+ maxRetries: 2,
41
+ retryDelayMs: 0,
42
+ })
43
+ ).rejects.toBe(timeoutError);
44
+
45
+ expect(requestSpy).toHaveBeenCalledTimes(3);
46
+ expect(requestSpy).toHaveBeenNthCalledWith(
47
+ 1,
48
+ expect.objectContaining({
49
+ timeout: 1234,
50
+ })
51
+ );
52
+ });
53
+
54
+ it('retries a connection deadline and stops at the configured attempt bound', async () => {
55
+ jest.useFakeTimers({ doNotFake: ['performance'] });
56
+ const requestSpy = jest.spyOn(axios, 'request').mockImplementation(
57
+ config =>
58
+ new Promise((_resolve, reject) => {
59
+ config.signal?.addEventListener(
60
+ 'abort',
61
+ () => {
62
+ reject(
63
+ Object.assign(new Error('canceled'), {
64
+ __CANCEL__: true,
65
+ code: 'ERR_CANCELED',
66
+ isAxiosError: true,
67
+ })
68
+ );
69
+ },
70
+ { once: true }
71
+ );
72
+ })
73
+ );
74
+ const requestPromise = httpRequest('https://example.com/firmware.bin', 'binary', {
75
+ connectTimeoutMs: 1_000,
76
+ maxRetries: 1,
77
+ retryDelayMs: 0,
78
+ });
79
+ const rejection = expect(requestPromise).rejects.toMatchObject({
80
+ name: 'HttpRequestPhaseTimeoutError',
81
+ code: 'ECONNECTTIMEDOUT',
82
+ message: expect.stringContaining('connect timeout'),
83
+ });
84
+
85
+ await Promise.resolve();
86
+ jest.advanceTimersByTime(1_000);
87
+ await Promise.resolve();
88
+ await Promise.resolve();
89
+ expect(requestSpy).toHaveBeenCalledTimes(2);
90
+
91
+ jest.advanceTimersByTime(1_000);
92
+
93
+ await rejection;
94
+ expect(requestSpy).toHaveBeenCalledTimes(2);
95
+ expect(requestSpy.mock.calls[0][0].adapter).toEqual(['xhr', 'http']);
96
+ });
97
+
98
+ it('restarts the read-idle deadline only when loaded bytes increase', async () => {
99
+ jest.useFakeTimers({ doNotFake: ['performance'] });
100
+ let requestConfig: Parameters<typeof axios.request>[0] | undefined;
101
+ const requestSpy = jest.spyOn(axios, 'request').mockImplementation(
102
+ config =>
103
+ new Promise((_resolve, reject) => {
104
+ requestConfig = config;
105
+ config.signal?.addEventListener(
106
+ 'abort',
107
+ () => {
108
+ reject(
109
+ Object.assign(new Error('canceled'), {
110
+ __CANCEL__: true,
111
+ code: 'ERR_CANCELED',
112
+ isAxiosError: true,
113
+ })
114
+ );
115
+ },
116
+ { once: true }
117
+ );
118
+ })
119
+ );
120
+ const requestPromise = httpRequest('https://example.com/firmware.bin', 'binary', {
121
+ connectTimeoutMs: 1_000,
122
+ readTimeoutMs: 2_000,
123
+ });
124
+ const rejection = expect(requestPromise).rejects.toMatchObject({
125
+ name: 'HttpRequestPhaseTimeoutError',
126
+ code: 'EREADTIMEDOUT',
127
+ message: expect.stringContaining('read timeout'),
128
+ });
129
+
130
+ await Promise.resolve();
131
+ jest.advanceTimersByTime(500);
132
+ requestConfig?.onDownloadProgress?.({
133
+ bytes: 0,
134
+ lengthComputable: false,
135
+ loaded: 0,
136
+ });
137
+ jest.advanceTimersByTime(400);
138
+ requestConfig?.onDownloadProgress?.({
139
+ bytes: 1,
140
+ lengthComputable: false,
141
+ loaded: 1,
142
+ });
143
+ jest.advanceTimersByTime(900);
144
+ requestConfig?.onDownloadProgress?.({
145
+ bytes: 1,
146
+ lengthComputable: false,
147
+ loaded: 2,
148
+ });
149
+ jest.advanceTimersByTime(1_900);
150
+ expect(requestConfig?.signal?.aborted).toBe(false);
151
+
152
+ requestConfig?.onDownloadProgress?.({
153
+ bytes: 0,
154
+ lengthComputable: false,
155
+ loaded: 2,
156
+ });
157
+ jest.advanceTimersByTime(99);
158
+ expect(requestConfig?.signal?.aborted).toBe(false);
159
+
160
+ jest.advanceTimersByTime(1);
161
+
162
+ await rejection;
163
+ expect(requestSpy).toHaveBeenCalledTimes(1);
164
+ expect(requestConfig?.signal?.aborted).toBe(true);
165
+ });
166
+
167
+ it('ignores progress callbacks after the attempt has settled', async () => {
168
+ let requestConfig: Parameters<typeof axios.request>[0] | undefined;
169
+ jest.spyOn(axios, 'request').mockImplementation(config => {
170
+ requestConfig = config;
171
+ return Promise.resolve({
172
+ status: 200,
173
+ data: new ArrayBuffer(4),
174
+ });
175
+ });
176
+
177
+ await httpRequest('https://example.com/firmware.bin', 'binary', {
178
+ connectTimeoutMs: 1_000,
179
+ readTimeoutMs: 2_000,
180
+ });
181
+
182
+ const timeoutSpy = jest.spyOn(global, 'setTimeout');
183
+ requestConfig?.onDownloadProgress?.({
184
+ bytes: 1,
185
+ lengthComputable: false,
186
+ loaded: 1,
187
+ });
188
+
189
+ expect(timeoutSpy).not.toHaveBeenCalled();
190
+ });
191
+
192
+ it.each(['ECONNRESET', 'ENOTFOUND', 'ERR_NETWORK', 'ETIMEDOUT'])(
193
+ 'retries transient network error %s',
194
+ async code => {
195
+ const networkError = Object.assign(new Error('temporarily unreachable'), {
196
+ code,
197
+ isAxiosError: true,
198
+ });
199
+ const firmwareBinary = new ArrayBuffer(4);
200
+ const requestSpy = jest
201
+ .spyOn(axios, 'request')
202
+ .mockRejectedValueOnce(networkError)
203
+ .mockResolvedValueOnce({
204
+ status: 200,
205
+ data: firmwareBinary,
206
+ });
207
+
208
+ await expect(
209
+ httpRequest('https://example.com/firmware.bin', 'binary', {
210
+ maxRetries: 1,
211
+ retryDelayMs: 0,
212
+ })
213
+ ).resolves.toBe(firmwareBinary);
214
+
215
+ expect(requestSpy).toHaveBeenCalledTimes(2);
216
+ }
217
+ );
218
+
219
+ it('does not retry a canceled request', async () => {
220
+ const canceledError = Object.assign(new Error('canceled'), {
221
+ __CANCEL__: true,
222
+ code: 'ERR_CANCELED',
223
+ isAxiosError: true,
224
+ });
225
+ const requestSpy = jest.spyOn(axios, 'request').mockRejectedValue(canceledError);
226
+
227
+ await expect(
228
+ httpRequest('https://example.com/firmware.bin', 'binary', {
229
+ maxRetries: 2,
230
+ retryDelayMs: 0,
231
+ })
232
+ ).rejects.toBe(canceledError);
233
+
234
+ expect(requestSpy).toHaveBeenCalledTimes(1);
235
+ });
236
+
237
+ it('enforces an overall deadline independently from per-attempt phase deadlines', async () => {
238
+ jest.useFakeTimers({ doNotFake: ['performance'] });
239
+ const requestSpy = jest.spyOn(axios, 'request').mockImplementation(
240
+ () =>
241
+ new Promise(() => {
242
+ // Keep the request pending until the overall deadline aborts it.
243
+ })
244
+ );
245
+ const requestPromise = httpRequest('https://example.com/firmware.bin', 'binary', {
246
+ connectTimeoutMs: 5_000,
247
+ readTimeoutMs: 5_000,
248
+ overallTimeoutMs: 2_500,
249
+ maxRetries: 2,
250
+ retryDelayMs: 0,
251
+ });
252
+ const rejection = expect(requestPromise).rejects.toMatchObject({
253
+ name: 'HttpRequestOverallTimeoutError',
254
+ message: expect.stringContaining('2500ms'),
255
+ });
256
+
257
+ jest.advanceTimersByTime(2_500);
258
+
259
+ await rejection;
260
+ expect(requestSpy).toHaveBeenCalledTimes(1);
261
+ expect(requestSpy.mock.calls[0][0].signal?.aborted).toBe(true);
262
+ });
263
+
264
+ it('includes retry backoff in the overall deadline', async () => {
265
+ jest.useFakeTimers({ doNotFake: ['performance'] });
266
+ const networkError = Object.assign(new Error('temporarily unreachable'), {
267
+ code: 'ECONNRESET',
268
+ isAxiosError: true,
269
+ });
270
+ const requestSpy = jest.spyOn(axios, 'request').mockRejectedValue(networkError);
271
+ const requestPromise = httpRequest('https://example.com/firmware.bin', 'binary', {
272
+ overallTimeoutMs: 2_500,
273
+ maxRetries: 2,
274
+ retryDelayMs: 5_000,
275
+ });
276
+ const rejection = expect(requestPromise).rejects.toMatchObject({
277
+ name: 'HttpRequestOverallTimeoutError',
278
+ });
279
+
280
+ await Promise.resolve();
281
+ await Promise.resolve();
282
+ await Promise.resolve();
283
+ await Promise.resolve();
284
+ expect(requestSpy).toHaveBeenCalledTimes(1);
285
+ expect(jest.getTimerCount()).toBe(2);
286
+ jest.advanceTimersByTime(2_500);
287
+
288
+ await rejection;
289
+ expect(requestSpy).toHaveBeenCalledTimes(1);
290
+ expect(jest.getTimerCount()).toBe(0);
291
+ });
292
+
293
+ it('does not start another attempt after an absolute deadline clock jump', async () => {
294
+ jest
295
+ .spyOn(Date, 'now')
296
+ .mockReturnValueOnce(1_000)
297
+ .mockReturnValueOnce(1_000)
298
+ .mockReturnValue(4_000);
299
+ const networkError = Object.assign(new Error('temporarily unreachable'), {
300
+ code: 'ECONNRESET',
301
+ isAxiosError: true,
302
+ });
303
+ const requestSpy = jest.spyOn(axios, 'request').mockRejectedValue(networkError);
304
+
305
+ await expect(
306
+ httpRequest('https://example.com/firmware.bin', 'binary', {
307
+ overallTimeoutMs: 2_500,
308
+ maxRetries: 1,
309
+ retryDelayMs: 0,
310
+ })
311
+ ).rejects.toMatchObject({
312
+ name: 'HttpRequestOverallTimeoutError',
313
+ message: expect.stringContaining('2500ms'),
314
+ });
315
+
316
+ expect(requestSpy).toHaveBeenCalledTimes(1);
317
+ });
318
+
319
+ it.each([500, 502, 503, 504])(
320
+ 'retries transient HTTP %s and returns the next response',
321
+ async status => {
322
+ const serverError = Object.assign(new Error('unavailable'), {
323
+ isAxiosError: true,
324
+ response: {
325
+ status,
326
+ },
327
+ });
328
+ const firmwareBinary = new ArrayBuffer(4);
329
+ const requestSpy = jest
330
+ .spyOn(axios, 'request')
331
+ .mockRejectedValueOnce(serverError)
332
+ .mockResolvedValueOnce({
333
+ status: 200,
334
+ data: firmwareBinary,
335
+ });
336
+
337
+ await expect(
338
+ httpRequest('https://example.com/firmware.bin', 'binary', {
339
+ maxRetries: 1,
340
+ retryDelayMs: 0,
341
+ })
342
+ ).resolves.toBe(firmwareBinary);
343
+
344
+ expect(requestSpy).toHaveBeenCalledTimes(2);
345
+ }
346
+ );
347
+
348
+ it.each([404, 501, 505])('does not retry HTTP %s', async status => {
349
+ const responseError = Object.assign(new Error('request failed'), {
350
+ isAxiosError: true,
351
+ response: {
352
+ status,
353
+ },
354
+ });
355
+ const requestSpy = jest.spyOn(axios, 'request').mockRejectedValue(responseError);
356
+
357
+ await expect(
358
+ httpRequest('https://example.com/firmware.bin', 'binary', {
359
+ maxRetries: 2,
360
+ retryDelayMs: 0,
361
+ })
362
+ ).rejects.toBe(responseError);
363
+
364
+ expect(requestSpy).toHaveBeenCalledTimes(1);
365
+ });
366
+
367
+ it.each(['CERT_HAS_EXPIRED', 'DEPTH_ZERO_SELF_SIGNED_CERT', 'ERR_TLS_CERT_ALTNAME_INVALID'])(
368
+ 'does not retry TLS/certificate error %s',
369
+ async code => {
370
+ const certificateError = Object.assign(new Error('certificate rejected'), {
371
+ code,
372
+ isAxiosError: true,
373
+ });
374
+ const requestSpy = jest.spyOn(axios, 'request').mockRejectedValue(certificateError);
375
+
376
+ await expect(
377
+ httpRequest('https://example.com/firmware.bin', 'binary', {
378
+ maxRetries: 2,
379
+ retryDelayMs: 0,
380
+ })
381
+ ).rejects.toBe(certificateError);
382
+
383
+ expect(requestSpy).toHaveBeenCalledTimes(1);
384
+ }
385
+ );
386
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmB1C,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAGtD,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAIF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IA6CJ,cAAc,YAAa,MAAM,UAS/B;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAqFvC,4BAA4B;IAuB1C,qBAAqB,CAAC,QAAQ,EAAE,QAAQ;IAUxC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAc9D,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,YAAY,EAAE,aAAa;IAwBtF,GAAG;CAiIV"}
1
+ {"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmB1C,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAItD,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AA2EF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IA6CJ,cAAc,YAAa,MAAM,UAS/B;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAqFvC,4BAA4B;IAuB1C,qBAAqB,CAAC,QAAQ,EAAE,QAAQ;IAUxC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAc9D,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,YAAY,EAAE,aAAa;IAwBtF,GAAG;CAwJV"}
@@ -1,5 +1,8 @@
1
+ /// <reference types="node" />
1
2
  import type { Features } from '../../types';
3
+ import type { HttpRequestOptions } from '../../utils/networkUtils';
2
4
  import type { EFirmwareType } from '@onekeyfe/hd-shared';
5
+ export type FirmwareBinary = ArrayBuffer | Buffer;
3
6
  export interface GetInfoProps {
4
7
  features: Features;
5
8
  updateType: 'firmware' | 'ble';
@@ -9,9 +12,10 @@ export interface GetInfoProps {
9
12
  }
10
13
  interface GetBinaryProps extends GetInfoProps {
11
14
  version?: number[];
15
+ requestOptions?: HttpRequestOptions;
12
16
  }
13
- export declare const getBinary: ({ features, updateType, version, isUpdateBootloader, firmwareType, }: GetBinaryProps) => Promise<{
14
- binary: any;
17
+ export declare const getBinary: ({ features, updateType, version, isUpdateBootloader, firmwareType, requestOptions, }: GetBinaryProps) => Promise<{
18
+ binary: FirmwareBinary;
15
19
  required: boolean;
16
20
  url: string;
17
21
  firmwareType?: EFirmwareType | undefined;
@@ -34,7 +38,7 @@ export declare const getBinary: ({ features, updateType, version, isUpdateBootlo
34
38
  };
35
39
  }>;
36
40
  export declare const getSysResourceBinary: (url: string) => Promise<{
37
- binary: any;
41
+ binary: FirmwareBinary;
38
42
  }>;
39
43
  export declare const getInfo: ({ features, updateType, targetVersion, firmwareType }: GetInfoProps) => import("../../types").IFirmwareReleaseInfo | null | undefined;
40
44
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,yEAMnB,cAAc;;;;;;;;;;;;;;;;;;;;;;EAsChB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAe,MAAM;;EAWrD,CAAC;AAEF,eAAO,MAAM,OAAO,0DAA2D,YAAY,kEAe1F,CAAC"}
1
+ {"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,eAAO,MAAM,SAAS,yFAOnB,cAAc;;;;;;;;;;;;;;;;;;;;;;EAsChB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAe,MAAM;;EAWrD,CAAC;AAEF,eAAO,MAAM,OAAO,0DAA2D,YAAY,kEAe1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"KaspaSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/api/kaspa/KaspaSignTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAGV,0BAA0B,EAC1B,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,cAAc,EAEd,SAAS,EACV,MAAM,wBAAwB,CAAC;AAQhC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAAC,0BAA0B,CAAC;IACtF,SAAS,UAAS;IAGlB,cAAc,UAAS;IAEvB,iBAAiB,UAAS;IAE1B,IAAI;IA4GJ,eAAe;;;;;;;;IAWf,uBAAuB;;;;;;;;IAejB,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,oBAAoB,CAAC,eAAe,CAAC,EACxF,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC;IA0CtB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM;IA8ElF,YAAY,CAChB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GACpD,OAAO,CAAC,cAAc,EAAE,CAAC;IAmGtB,GAAG;CA4FV"}
1
+ {"version":3,"file":"KaspaSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/api/kaspa/KaspaSignTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAGV,0BAA0B,EAC1B,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,cAAc,EAEd,SAAS,EACV,MAAM,wBAAwB,CAAC;AAQhC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAAC,0BAA0B,CAAC;IACtF,SAAS,UAAS;IAGlB,cAAc,UAAS;IAEvB,iBAAiB,UAAS;IAE1B,IAAI;IA4GJ,eAAe;;;;;;;;IAWf,uBAAuB;;;;;;;;IAejB,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,oBAAoB,CAAC,eAAe,CAAC,EACxF,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC;IA0CtB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM;IA8ElF,YAAY,CAChB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GACpD,OAAO,CAAC,cAAc,EAAE,CAAC;IAmGtB,GAAG;CAuGV"}
@@ -31,7 +31,7 @@ export declare const cancelDeviceInPrompt: (device: Device, expectResponse?: boo
31
31
  };
32
32
  } | {
33
33
  success: boolean;
34
- error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 900 | 901 | 902;
34
+ error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 900 | 901 | 902;
35
35
  payload: {
36
36
  message: string;
37
37
  };
@@ -50,7 +50,7 @@ export declare const cancelDeviceWithInitialize: (device: Device) => Promise<{
50
50
  };
51
51
  } | {
52
52
  success: boolean;
53
- error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 900 | 901 | 902;
53
+ error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 900 | 901 | 902;
54
54
  payload: {
55
55
  message: string;
56
56
  };
@@ -80,7 +80,7 @@ export declare class DeviceCommands {
80
80
  };
81
81
  } | {
82
82
  success: boolean;
83
- error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 900 | 901 | 902;
83
+ error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 900 | 901 | 902;
84
84
  payload: {
85
85
  message: string;
86
86
  };
@@ -99,7 +99,7 @@ export declare class DeviceCommands {
99
99
  };
100
100
  } | {
101
101
  success: boolean;
102
- error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 900 | 901 | 902;
102
+ error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 900 | 901 | 902;
103
103
  payload: {
104
104
  message: string;
105
105
  };
package/dist/index.d.ts CHANGED
@@ -3035,7 +3035,7 @@ declare class DeviceCommands {
3035
3035
  };
3036
3036
  } | {
3037
3037
  success: boolean;
3038
- error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 900 | 901 | 902;
3038
+ error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 900 | 901 | 902;
3039
3039
  payload: {
3040
3040
  message: string;
3041
3041
  };
@@ -3054,7 +3054,7 @@ declare class DeviceCommands {
3054
3054
  };
3055
3055
  } | {
3056
3056
  success: boolean;
3057
- error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 900 | 901 | 902;
3057
+ error: 0 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 200 | 300 | 301 | 302 | 303 | 304 | 305 | 400 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 500 | 600 | 601 | 602 | 603 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 900 | 901 | 902;
3058
3058
  payload: {
3059
3059
  message: string;
3060
3060
  };
@@ -3302,7 +3302,16 @@ declare enum LoggerNames {
3302
3302
  }
3303
3303
  declare const getLogger: (key: LoggerNames) => Log;
3304
3304
 
3305
- declare const httpRequest: (url: string, type: string) => any;
3305
+ type HttpRequestOptions = {
3306
+ timeoutMs?: number;
3307
+ connectTimeoutMs?: number;
3308
+ readTimeoutMs?: number;
3309
+ overallTimeoutMs?: number;
3310
+ maxRetries?: number;
3311
+ retryDelayMs?: number;
3312
+ };
3313
+
3314
+ declare const httpRequest: (url: string, type: string, options?: HttpRequestOptions) => any;
3306
3315
  declare const getTimeStamp: () => number;
3307
3316
 
3308
3317
  declare const isValidVersionString: (version: string) => boolean;