@onekeyfe/hd-core 0.1.3 → 0.1.6

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 (68) hide show
  1. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  2. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  3. package/dist/api/btc/helpers/btcParamsUtils.d.ts.map +1 -1
  4. package/dist/api/btc/helpers/signtx.d.ts.map +1 -1
  5. package/dist/api/btc/helpers/signtxLegacy.d.ts.map +1 -1
  6. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  7. package/dist/api/evm/EVMSignTypedData.d.ts +1 -2
  8. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  9. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  10. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  11. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  12. package/dist/api/helpers/pathUtils.d.ts.map +1 -1
  13. package/dist/api/helpers/typeNameUtils.d.ts.map +1 -1
  14. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  15. package/dist/api/utils.d.ts.map +1 -1
  16. package/dist/constants/errors.d.ts +1 -26
  17. package/dist/constants/errors.d.ts.map +1 -1
  18. package/dist/constants/index.d.ts +1 -1
  19. package/dist/constants/index.d.ts.map +1 -1
  20. package/dist/core/index.d.ts.map +1 -1
  21. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  22. package/dist/device/Device.d.ts +2 -2
  23. package/dist/device/Device.d.ts.map +1 -1
  24. package/dist/device/DeviceCommands.d.ts.map +1 -1
  25. package/dist/device/DeviceConnector.d.ts +2 -2
  26. package/dist/device/DeviceConnector.d.ts.map +1 -1
  27. package/dist/events/core.d.ts +1 -1
  28. package/dist/events/core.d.ts.map +1 -1
  29. package/dist/events/ui-promise.d.ts +1 -1
  30. package/dist/events/ui-promise.d.ts.map +1 -1
  31. package/dist/index.d.ts +87 -134
  32. package/dist/index.js +125 -165
  33. package/dist/types/params.d.ts +1 -1
  34. package/dist/types/params.d.ts.map +1 -1
  35. package/dist/utils/index.d.ts +0 -1
  36. package/dist/utils/index.d.ts.map +1 -1
  37. package/dist/utils/versionUtils.d.ts +1 -1
  38. package/package.json +4 -3
  39. package/src/api/FirmwareUpdate.ts +10 -4
  40. package/src/api/btc/BTCSignTransaction.ts +3 -3
  41. package/src/api/btc/helpers/btcParamsUtils.ts +10 -4
  42. package/src/api/btc/helpers/signtx.ts +33 -15
  43. package/src/api/btc/helpers/signtxLegacy.ts +33 -12
  44. package/src/api/evm/EVMSignTransaction.ts +5 -2
  45. package/src/api/evm/EVMSignTypedData.ts +2 -2
  46. package/src/api/firmware/getBinary.ts +9 -4
  47. package/src/api/firmware/uploadFirmware.ts +4 -3
  48. package/src/api/helpers/bigNumberUtils.ts +4 -4
  49. package/src/api/helpers/paramsValidator.ts +3 -2
  50. package/src/api/helpers/pathUtils.ts +6 -3
  51. package/src/api/helpers/typeNameUtils.ts +7 -4
  52. package/src/api/nem/NEMSignTransaction.ts +5 -2
  53. package/src/api/utils.ts +6 -3
  54. package/src/constants/errors.ts +6 -46
  55. package/src/constants/index.ts +1 -1
  56. package/src/core/index.ts +17 -23
  57. package/src/data-manager/TransportManager.ts +5 -2
  58. package/src/device/Device.ts +11 -6
  59. package/src/device/DeviceCommands.ts +34 -12
  60. package/src/device/DeviceConnector.ts +4 -4
  61. package/src/events/call.ts +1 -1
  62. package/src/events/core.ts +11 -7
  63. package/src/events/ui-promise.ts +1 -1
  64. package/src/types/params.ts +1 -1
  65. package/src/utils/index.ts +0 -1
  66. package/dist/utils/deferred.d.ts +0 -9
  67. package/dist/utils/deferred.d.ts.map +0 -1
  68. package/src/utils/deferred.ts +0 -35
package/src/api/utils.ts CHANGED
@@ -1,11 +1,11 @@
1
+ import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
1
2
  import * as ApiMethods from './index';
2
- import { TypedError } from '../constants/errors';
3
3
  import { IFrameCallMessage } from '../events';
4
4
 
5
5
  export function findMethod(message: IFrameCallMessage & { id?: number }) {
6
6
  const { method } = message.payload;
7
7
  if (typeof method !== 'string') {
8
- throw TypedError('Method_InvalidParameter', 'Method is not set');
8
+ throw ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter, 'Method is not set');
9
9
  }
10
10
 
11
11
  // @ts-expect-error
@@ -14,5 +14,8 @@ export function findMethod(message: IFrameCallMessage & { id?: number }) {
14
14
  return new MethodConstructor(message);
15
15
  }
16
16
 
17
- throw TypedError('Method_InvalidParameter', `Method ${method} is not set`);
17
+ throw ERRORS.TypedError(
18
+ HardwareErrorCode.CallMethodInvalidParameter,
19
+ `Method ${method} is not set`
20
+ );
18
21
  }
@@ -1,49 +1,9 @@
1
- export const ERROR_CODES = {
2
- // methods error
3
- Method_InvalidParameter: '',
4
- Call_API: '',
5
- Call_NotResponse: 'No response data',
6
- Method_FirmwareUpdate_DownloadFailed: '',
1
+ import { HardwareError, ERRORS } from '@onekeyfe/hd-shared';
7
2
 
8
- // device error
9
- Transport_InvalidProtobuf: '',
10
- Device_FwException: '',
11
- Device_UnexpectedMode: '',
12
- Device_CallInProgress: '',
13
- Device_InitializeFailed: '',
14
- Device_Interrupted: 'The device is performing other operations',
15
- Not_Use_Onekey_Device: 'Please use onekey device',
16
-
17
- // runtime error
18
- Runtime: '',
19
-
20
- // iframe error
21
- Init_NotInitialized: 'Init_NotInitialized',
22
- Init_IframeBlocked: 'Init_IframeBlocked',
23
- Init_IframeTimeout: 'Init_IframeTimeout',
24
- Init_AlreadyInitialized: 'Init_AlreadyInitialized',
25
- Init_IframeLoadFail: 'Init_IframeLoadFail',
26
- };
27
-
28
- export class OnekeyError extends Error {
29
- code: string;
30
-
31
- message: string;
32
-
33
- constructor(code: string, message: string) {
34
- super(message);
35
- this.code = code;
36
- this.message = message;
37
- }
38
- }
39
-
40
- export const TypedError = (id: keyof typeof ERROR_CODES, message?: string) =>
41
- new OnekeyError(id, message || ERROR_CODES[id]);
42
-
43
- // serialize Error/TypeError object into payload error type (Error object/class is converted to string while sent via postMessage)
44
- export const serializeError = (payload: any) => {
45
- if (payload && payload.error instanceof Error) {
46
- return { error: payload.error.message, code: payload.error.code };
3
+ export const safeThrowError = (error: any) => {
4
+ if (error instanceof HardwareError) {
5
+ throw error;
6
+ } else {
7
+ throw ERRORS.TypedError(error);
47
8
  }
48
- return payload;
49
9
  };
@@ -1,2 +1,2 @@
1
- export * as ERRORS from './errors';
1
+ export { safeThrowError } from './errors';
2
2
  export { Messages as PROTO } from '@onekeyfe/hd-transport';
package/src/core/index.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import semver from 'semver';
2
2
  import EventEmitter from 'events';
3
3
  import { OneKeyDeviceInfo } from '@onekeyfe/hd-transport';
4
- import { ERRORS } from '../constants';
4
+ import { createDeferred, Deferred, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
5
5
  import { Device, DeviceEvents } from '../device/Device';
6
6
  import { DeviceList } from '../device/DeviceList';
7
7
  import { findMethod } from '../api/utils';
8
8
  import { DataManager } from '../data-manager';
9
9
  import { enableLog } from '../utils/logger';
10
- import { initLog, create as createDeferred, Deferred } from '../utils';
10
+ import { initLog } from '../utils';
11
11
  import {
12
12
  CoreMessage,
13
13
  createResponseMessage,
@@ -45,12 +45,7 @@ const deviceCacheMap = new Map<string, Device>();
45
45
 
46
46
  export const callAPI = async (message: CoreMessage) => {
47
47
  if (!message.id || !message.payload || message.type !== IFRAME.CALL) {
48
- return Promise.reject(
49
- ERRORS.TypedError(
50
- 'Method_InvalidParameter',
51
- 'onCall: message.id or message.payload is missing'
52
- )
53
- );
48
+ return Promise.reject(ERRORS.TypedError('on call: message.id or message.payload is missing'));
54
49
  }
55
50
 
56
51
  // find api method
@@ -70,10 +65,7 @@ export const callAPI = async (message: CoreMessage) => {
70
65
  const response = await method.run();
71
66
  return createResponseMessage(method.responseID, true, response);
72
67
  } catch (error) {
73
- return createResponseMessage(method.responseID, false, {
74
- code: error.code,
75
- error: error.message ?? error,
76
- });
68
+ return createResponseMessage(method.responseID, false, { error });
77
69
  }
78
70
  }
79
71
 
@@ -123,7 +115,7 @@ export const callAPI = async (message: CoreMessage) => {
123
115
  if (semver.valid(versionRange.min) && semver.lt(currentVersion, versionRange.min)) {
124
116
  return Promise.reject(
125
117
  ERRORS.TypedError(
126
- 'Device_FwException',
118
+ HardwareErrorCode.DeviceFwException,
127
119
  `Device firmware version is too low, please update to ${versionRange.min}`
128
120
  )
129
121
  );
@@ -135,7 +127,7 @@ export const callAPI = async (message: CoreMessage) => {
135
127
  ) {
136
128
  return Promise.reject(
137
129
  ERRORS.TypedError(
138
- 'Device_FwException',
130
+ HardwareErrorCode.DeviceFwException,
139
131
  `Device firmware version is too high, this method has been deprecated in ${versionRange.max}`
140
132
  )
141
133
  );
@@ -148,7 +140,9 @@ export const callAPI = async (message: CoreMessage) => {
148
140
  method.requireDeviceMode
149
141
  );
150
142
  if (unexpectedMode) {
151
- return Promise.reject(ERRORS.TypedError('Device_UnexpectedMode', unexpectedMode));
143
+ return Promise.reject(
144
+ ERRORS.TypedError(HardwareErrorCode.DeviceUnexpectedMode, unexpectedMode)
145
+ );
152
146
  }
153
147
 
154
148
  // const deviceTypeException = method.checkDeviceType();
@@ -168,7 +162,7 @@ export const callAPI = async (message: CoreMessage) => {
168
162
  _callPromise?.resolve(messageResponse);
169
163
  } catch (error) {
170
164
  Log.debug('Call API - Inner Method Run Error: ', error);
171
- messageResponse = createResponseMessage(method.responseID, false, error.message);
165
+ messageResponse = createResponseMessage(method.responseID, false, { error });
172
166
  _callPromise?.resolve(messageResponse);
173
167
  }
174
168
  };
@@ -180,11 +174,11 @@ export const callAPI = async (message: CoreMessage) => {
180
174
  return await _callPromise.promise;
181
175
  } catch (e) {
182
176
  console.log('Device Run Error: ', e);
183
- return createResponseMessage(method.responseID, false, e.message);
177
+ return createResponseMessage(method.responseID, false, { error: e });
184
178
  }
185
179
  } catch (error) {
186
- messageResponse = createResponseMessage(method.responseID, false, error);
187
- _callPromise?.reject(ERRORS.TypedError('Call_API', error));
180
+ messageResponse = createResponseMessage(method.responseID, false, { error });
181
+ _callPromise?.reject(ERRORS.TypedError(HardwareErrorCode.CallMethodError, error.message));
188
182
  Log.debug('Call API - Run Error: ', error);
189
183
  } finally {
190
184
  const response = messageResponse;
@@ -219,7 +213,7 @@ async function initDeviceList(method: BaseMethod) {
219
213
 
220
214
  function initDevice(method: BaseMethod) {
221
215
  if (!_deviceList) {
222
- throw ERRORS.TypedError('Call_API', 'DeviceList is not initialized');
216
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceListNotInitialized);
223
217
  }
224
218
 
225
219
  let device: Device | typeof undefined;
@@ -230,11 +224,11 @@ function initDevice(method: BaseMethod) {
230
224
  } else if (allDevices.length === 1) {
231
225
  [device] = allDevices;
232
226
  } else if (allDevices.length > 1) {
233
- throw ERRORS.TypedError('Call_API', '请选择连接设备');
227
+ throw ERRORS.TypedError(HardwareErrorCode.SelectDevice);
234
228
  }
235
229
 
236
230
  if (!device) {
237
- throw ERRORS.TypedError('Call_API', 'Device Not Found');
231
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceNotFound);
238
232
  }
239
233
 
240
234
  // inject properties
@@ -245,7 +239,7 @@ function initDevice(method: BaseMethod) {
245
239
 
246
240
  function initDeviceForBle(method: BaseMethod) {
247
241
  if (!method.connectId && !_deviceList) {
248
- throw ERRORS.TypedError('Call_API', 'DeviceList is not initialized');
242
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceListNotInitialized);
249
243
  }
250
244
 
251
245
  if (!method.connectId) {
@@ -1,5 +1,5 @@
1
1
  import { Transport } from '@onekeyfe/hd-transport';
2
- import { ERRORS } from '../constants';
2
+ import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
3
3
  import { initLog } from '../utils';
4
4
  import DataManager from './DataManager';
5
5
 
@@ -57,7 +57,10 @@ export default class TransportManager {
57
57
  await this.transport.configure(JSON.stringify(messages));
58
58
  this.currentMessages = messages;
59
59
  } catch (error) {
60
- throw ERRORS.TypedError('Transport_InvalidProtobuf', error.message);
60
+ throw ERRORS.TypedError(
61
+ HardwareErrorCode.TransportInvalidProtobuf,
62
+ `Transport_InvalidProtobuf: ${error.message as unknown as string}`
63
+ );
61
64
  }
62
65
  }
63
66
 
@@ -1,10 +1,11 @@
1
1
  import EventEmitter from 'events';
2
2
  import { OneKeyDeviceInfo as DeviceDescriptor } from '@onekeyfe/hd-transport';
3
+ import { createDeferred, Deferred, HardwareErrorCode, ERRORS } from '@onekeyfe/hd-shared';
3
4
 
4
5
  import DeviceConnector from './DeviceConnector';
5
6
  import { DeviceCommands } from './DeviceCommands';
6
7
 
7
- import { initLog, Deferred, create as createDeferred } from '../utils';
8
+ import { initLog } from '../utils';
8
9
  import {
9
10
  getDeviceFirmwareVersion,
10
11
  getDeviceLabel,
@@ -15,7 +16,7 @@ import {
15
16
  import type { Features, Device as DeviceTyped, UnavailableCapabilities } from '../types';
16
17
  import { DEVICE, DeviceButtonRequestPayload } from '../events';
17
18
  import { UI_REQUEST } from '../constants/ui-request';
18
- import { ERRORS, PROTO } from '../constants';
19
+ import { PROTO } from '../constants';
19
20
  import { DataManager } from '../data-manager';
20
21
 
21
22
  type RunOptions = {
@@ -266,7 +267,7 @@ export class Device extends EventEmitter {
266
267
  * 后续看是否有需要依据 listen 返回结果更新
267
268
  * @param descriptor
268
269
  */
269
- updateDescriptor(descriptor: DeviceDescriptor) {
270
+ updateDescriptor(descriptor: DeviceDescriptor, forceUpdate = false) {
270
271
  const env = DataManager.getSettings('env');
271
272
  if (env === 'react-native') {
272
273
  return;
@@ -277,12 +278,16 @@ export class Device extends EventEmitter {
277
278
  if (originalSession !== upcomingSession) {
278
279
  this.originalDescriptor.session = upcomingSession;
279
280
  }
281
+
282
+ if (forceUpdate) {
283
+ this.originalDescriptor = descriptor;
284
+ }
280
285
  }
281
286
 
282
287
  updateFromCache(device: Device) {
283
288
  this.mainId = device.mainId;
284
289
  this.commands = device.commands;
285
- this.updateDescriptor(device.originalDescriptor);
290
+ this.updateDescriptor(device.originalDescriptor, true);
286
291
  if (device.features) {
287
292
  this._updateFeatures(device.features);
288
293
  }
@@ -311,7 +316,7 @@ export class Device extends EventEmitter {
311
316
  this.runPromise = null;
312
317
  return Promise.reject(
313
318
  ERRORS.TypedError(
314
- 'Device_InitializeFailed',
319
+ HardwareErrorCode.DeviceInitializeFailed,
315
320
  `Initialize failed: ${error.message as string}, code: ${error.code as string}`
316
321
  )
317
322
  );
@@ -347,7 +352,7 @@ export class Device extends EventEmitter {
347
352
  this.commands.dispose();
348
353
  }
349
354
  if (this.runPromise) {
350
- this.runPromise.reject(ERRORS.TypedError('Device_Interrupted'));
355
+ this.runPromise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceInterruptedFromOutside));
351
356
  }
352
357
  }
353
358
 
@@ -1,6 +1,6 @@
1
1
  import type { Transport, Messages } from '@onekeyfe/hd-transport';
2
+ import { ERRORS, HardwareError, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
3
  import TransportManager from '../data-manager/TransportManager';
3
- import { ERRORS } from '../constants';
4
4
  import { initLog } from '../utils';
5
5
  import type { Device } from './Device';
6
6
  import { DEVICE } from '../events';
@@ -26,7 +26,7 @@ const assertType = (res: DefaultMessageResponse, resType: string | string[]) =>
26
26
  const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');
27
27
  if (!splitResTypes.includes(res.type)) {
28
28
  throw ERRORS.TypedError(
29
- 'Runtime',
29
+ HardwareErrorCode.RuntimeError,
30
30
  `assertType: Response of unexpected type: ${res.type}. Should be ${resType as string}`
31
31
  );
32
32
  }
@@ -100,7 +100,10 @@ export class DeviceCommands {
100
100
  msg?: DefaultMessageResponse['message']
101
101
  ) {
102
102
  if (this.disposed) {
103
- throw ERRORS.TypedError('Runtime', 'typedCall: DeviceCommands already disposed');
103
+ throw ERRORS.TypedError(
104
+ HardwareErrorCode.RuntimeError,
105
+ 'typedCall: DeviceCommands already disposed'
106
+ );
104
107
  }
105
108
 
106
109
  const response = await this._commonCall(type, msg);
@@ -126,20 +129,34 @@ export class DeviceCommands {
126
129
  console.log('_filterCommonTypes: ', res);
127
130
  if (res.type === 'Failure') {
128
131
  const { code } = res.message;
129
- let { message } = res.message;
132
+ const { message } = res.message;
133
+ let error: HardwareError | null = null;
130
134
  // Model One does not send any message in firmware update
131
135
  if (code === 'Failure_FirmwareError' && !message) {
132
- message = 'Firmware installation failed';
136
+ error = ERRORS.TypedError(HardwareErrorCode.FirmwareError);
133
137
  }
134
138
  // Failure_ActionCancelled message could be also missing
135
- if (code === 'Failure_ActionCancelled' && !message) {
136
- message = 'Action cancelled by user';
139
+ if (code === 'Failure_ActionCancelled') {
140
+ error = ERRORS.TypedError(HardwareErrorCode.ActionCancelled);
141
+ }
142
+
143
+ if (code === 'Failure_PinInvalid') {
144
+ error = ERRORS.TypedError(HardwareErrorCode.PinInvalid, message);
145
+ }
146
+
147
+ if (code === 'Failure_PinCancelled') {
148
+ error = ERRORS.TypedError(HardwareErrorCode.PinCancelled);
149
+ }
150
+
151
+ if (error) {
152
+ return Promise.reject(error);
137
153
  }
138
- // pass code and message from firmware error
154
+
139
155
  return Promise.reject(
140
- new ERRORS.OnekeyError(
141
- (code as any) || 'Failure_UnknownCode',
142
- message || 'Failure_UnknownMessage'
156
+ ERRORS.TypedError(
157
+ HardwareErrorCode.RuntimeError,
158
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
159
+ `${(code as any) || 'Failure_UnknownCode'},${message || 'Failure_UnknownMessage'}`
143
160
  )
144
161
  );
145
162
  }
@@ -204,7 +221,12 @@ export class DeviceCommands {
204
221
  });
205
222
  } else {
206
223
  console.warn('[DeviceCommands] [call] PIN callback not configured, cancelling request');
207
- reject(ERRORS.TypedError('Runtime', '_promptPin: PIN callback not configured'));
224
+ reject(
225
+ ERRORS.TypedError(
226
+ HardwareErrorCode.RuntimeError,
227
+ '_promptPin: PIN callback not configured'
228
+ )
229
+ );
208
230
  }
209
231
  });
210
232
  }
@@ -1,4 +1,5 @@
1
1
  import { Transport, OneKeyDeviceInfo as DeviceDescriptor } from '@onekeyfe/hd-transport';
2
+ import { safeThrowError } from '../constants';
2
3
  import { DataManager } from '../data-manager';
3
4
  import TransportManager from '../data-manager/TransportManager';
4
5
  import { initLog } from '../utils';
@@ -98,8 +99,7 @@ export default class DeviceConnector {
98
99
  Log.debug('diff result: ', diff);
99
100
  return diff;
100
101
  } catch (error) {
101
- throw new Error(error);
102
- // empty
102
+ safeThrowError(error);
103
103
  }
104
104
  }
105
105
 
@@ -152,7 +152,7 @@ export default class DeviceConnector {
152
152
  }
153
153
  return res;
154
154
  } catch (error) {
155
- throw new Error(error);
155
+ safeThrowError(error);
156
156
  }
157
157
  }
158
158
 
@@ -161,7 +161,7 @@ export default class DeviceConnector {
161
161
  const res = await this.transport.release(session, onclose);
162
162
  return res;
163
163
  } catch (error) {
164
- throw new Error(error);
164
+ safeThrowError(error);
165
165
  }
166
166
  }
167
167
 
@@ -1,4 +1,4 @@
1
- import { serializeError } from '../constants/errors';
1
+ import { serializeError } from '@onekeyfe/hd-shared';
2
2
  import { IFRAME } from './iframe';
3
3
  import { CommonParams, CoreApi } from '../types';
4
4
 
@@ -1,3 +1,4 @@
1
+ import { HardwareError } from '@onekeyfe/hd-shared';
1
2
  import { Unsuccessful } from '../types/params';
2
3
  import { IFrameCallMessage, IFrameCancelMessage } from './call';
3
4
  import { DeviceEventMessage } from './device';
@@ -40,10 +41,13 @@ export const parseMessage = (messageData: any): CoreMessage => {
40
41
  return message;
41
42
  };
42
43
 
43
- export const createErrorMessage = (error: Error & { code?: string }): Unsuccessful => ({
44
- success: false,
45
- payload: {
46
- error: error.message,
47
- code: error.code,
48
- },
49
- });
44
+ export const createErrorMessage = (error: Error & { code?: string | number }): Unsuccessful => {
45
+ let payload = { error: error.message, code: error.code };
46
+ if (error instanceof HardwareError) {
47
+ payload = { error: error.message, code: error.errorCode };
48
+ }
49
+ return {
50
+ success: false,
51
+ payload,
52
+ };
53
+ };
@@ -1,7 +1,7 @@
1
+ import type { Deferred } from '@onekeyfe/hd-shared';
1
2
  import type { DEVICE } from './device';
2
3
  import type { Device } from '../device/Device';
3
4
  import type { UiResponseEvent } from './ui-response';
4
- import type { Deferred } from '../utils/deferred';
5
5
 
6
6
  export type UiPromiseResponse =
7
7
  | UiResponseEvent
@@ -6,7 +6,7 @@ export type Params<T> = CommonParams & T & { bundle?: undefined };
6
6
 
7
7
  export interface Unsuccessful {
8
8
  success: false;
9
- payload: { error: string; code?: string };
9
+ payload: { error: string; code?: string | number };
10
10
  }
11
11
 
12
12
  export interface Success<T> {
@@ -2,7 +2,6 @@ import { initLog, enableLog } from './logger';
2
2
 
3
3
  export * from './assets';
4
4
  export * from './versionUtils';
5
- export * from './deferred';
6
5
  export {
7
6
  getDeviceType,
8
7
  getDeviceTypeByBleName,
@@ -1,9 +0,0 @@
1
- export declare type Deferred<T, I = any, D = any> = {
2
- id?: I;
3
- data?: D;
4
- promise: Promise<T>;
5
- resolve: (t: T) => void;
6
- reject: (e: Error) => void;
7
- };
8
- export declare function create<T, I = any, D = any>(arg?: I, data?: D): Deferred<T, I, D>;
9
- //# sourceMappingURL=deferred.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../../src/utils/deferred.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI;IAC1C,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5B,CAAC;AAEF,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA0BhF"}
@@ -1,35 +0,0 @@
1
- export type Deferred<T, I = any, D = any> = {
2
- id?: I;
3
- data?: D;
4
- promise: Promise<T>;
5
- resolve: (t: T) => void;
6
- reject: (e: Error) => void;
7
- };
8
-
9
- export function create<T, I = any, D = any>(arg?: I, data?: D): Deferred<T, I, D> {
10
- let localResolve: (t: T) => void = (_t: T) => {};
11
- let localReject: (e?: Error) => void = (_e?: Error) => {};
12
- let id: I | undefined;
13
-
14
- // eslint-disable-next-line no-async-promise-executor
15
- const promise: Promise<T> = new Promise(async (resolve, reject) => {
16
- localResolve = resolve;
17
- localReject = reject;
18
- if (typeof arg === 'function') {
19
- try {
20
- await arg();
21
- } catch (error) {
22
- reject(error);
23
- }
24
- }
25
- if (typeof arg === 'string') id = arg;
26
- });
27
-
28
- return {
29
- id,
30
- data,
31
- resolve: localResolve,
32
- reject: localReject,
33
- promise,
34
- };
35
- }