@onekeyfe/hd-core 0.1.36 → 0.1.39

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 (88) hide show
  1. package/dist/api/BaseMethod.d.ts +1 -0
  2. package/dist/api/BaseMethod.d.ts.map +1 -1
  3. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  4. package/dist/api/CheckBridgeStatus.d.ts.map +1 -1
  5. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  6. package/dist/api/CheckTransportRelease.d.ts.map +1 -1
  7. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  8. package/dist/api/GetFeatures.d.ts.map +1 -1
  9. package/dist/api/GetLogs.d.ts.map +1 -1
  10. package/dist/api/GetPassphraseState.d.ts +6 -0
  11. package/dist/api/GetPassphraseState.d.ts.map +1 -0
  12. package/dist/api/RequestWebUsbDevice.d.ts.map +1 -1
  13. package/dist/api/SearchDevices.d.ts.map +1 -1
  14. package/dist/api/device/DeviceBackup.d.ts.map +1 -1
  15. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  16. package/dist/api/device/DeviceFlags.d.ts.map +1 -1
  17. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  18. package/dist/api/device/DeviceRecovery.d.ts.map +1 -1
  19. package/dist/api/device/DeviceReset.d.ts.map +1 -1
  20. package/dist/api/device/DeviceSettings.d.ts +7 -0
  21. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  22. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -1
  23. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  24. package/dist/api/device/DeviceUpdateReboot.d.ts.map +1 -1
  25. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  26. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  27. package/dist/api/index.d.ts +1 -0
  28. package/dist/api/index.d.ts.map +1 -1
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/device/Device.d.ts +15 -5
  31. package/dist/device/Device.d.ts.map +1 -1
  32. package/dist/device/DeviceCommands.d.ts.map +1 -1
  33. package/dist/device/DeviceList.d.ts +2 -2
  34. package/dist/device/DeviceList.d.ts.map +1 -1
  35. package/dist/device/DevicePool.d.ts +6 -5
  36. package/dist/device/DevicePool.d.ts.map +1 -1
  37. package/dist/events/ui-request.d.ts +9 -1
  38. package/dist/events/ui-request.d.ts.map +1 -1
  39. package/dist/index.d.ts +35 -8
  40. package/dist/index.js +442 -254
  41. package/dist/inject.d.ts.map +1 -1
  42. package/dist/types/api/getPassphraseState.d.ts +3 -0
  43. package/dist/types/api/getPassphraseState.d.ts.map +1 -0
  44. package/dist/types/api/index.d.ts +2 -0
  45. package/dist/types/api/index.d.ts.map +1 -1
  46. package/dist/types/device.d.ts +5 -1
  47. package/dist/types/device.d.ts.map +1 -1
  48. package/dist/types/params.d.ts +2 -0
  49. package/dist/types/params.d.ts.map +1 -1
  50. package/dist/utils/deviceFeaturesUtils.d.ts +5 -2
  51. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  52. package/dist/utils/patch.d.ts +1 -1
  53. package/package.json +4 -4
  54. package/src/api/BaseMethod.ts +5 -0
  55. package/src/api/CheckBLEFirmwareRelease.ts +1 -0
  56. package/src/api/CheckBridgeStatus.ts +1 -0
  57. package/src/api/CheckFirmwareRelease.ts +3 -1
  58. package/src/api/CheckTransportRelease.ts +1 -0
  59. package/src/api/FirmwareUpdate.ts +1 -0
  60. package/src/api/GetFeatures.ts +1 -0
  61. package/src/api/GetLogs.ts +1 -0
  62. package/src/api/GetPassphraseState.ts +31 -0
  63. package/src/api/RequestWebUsbDevice.ts +1 -0
  64. package/src/api/SearchDevices.ts +1 -0
  65. package/src/api/device/DeviceBackup.ts +3 -1
  66. package/src/api/device/DeviceChangePin.ts +2 -0
  67. package/src/api/device/DeviceFlags.ts +2 -0
  68. package/src/api/device/DeviceRebootToBootloader.ts +3 -1
  69. package/src/api/device/DeviceRecovery.ts +2 -0
  70. package/src/api/device/DeviceReset.ts +2 -0
  71. package/src/api/device/DeviceSettings.ts +13 -2
  72. package/src/api/device/DeviceSupportFeatures.ts +3 -1
  73. package/src/api/device/DeviceUpdateReboot.ts +3 -1
  74. package/src/api/device/DeviceVerify.ts +2 -0
  75. package/src/api/device/DeviceWipe.ts +3 -1
  76. package/src/api/index.ts +1 -0
  77. package/src/core/index.ts +98 -10
  78. package/src/device/Device.ts +120 -47
  79. package/src/device/DeviceCommands.ts +13 -9
  80. package/src/device/DeviceList.ts +7 -3
  81. package/src/device/DevicePool.ts +24 -12
  82. package/src/events/ui-request.ts +10 -0
  83. package/src/inject.ts +2 -0
  84. package/src/types/api/getPassphraseState.ts +6 -0
  85. package/src/types/api/index.ts +2 -0
  86. package/src/types/device.ts +3 -1
  87. package/src/types/params.ts +8 -0
  88. package/src/utils/deviceFeaturesUtils.ts +38 -5
@@ -131,6 +131,8 @@ type FeaturesNarrowing =
131
131
 
132
132
  export type StrictFeatures = Features & FeaturesNarrowing;
133
133
 
134
+ export type SupportFeatureType = { support: boolean; require?: string };
135
+
134
136
  export type SupportFeatures = {
135
- inputPinOnSoftware: boolean;
137
+ inputPinOnSoftware: SupportFeatureType;
136
138
  };
@@ -12,6 +12,14 @@ export interface CommonParams {
12
12
  * Timeout time for single polling
13
13
  */
14
14
  timeout?: number;
15
+ /**
16
+ * passphrase state
17
+ */
18
+ passphraseState?: string;
19
+ /**
20
+ * Every init session
21
+ */
22
+ initSession?: boolean;
15
23
  }
16
24
 
17
25
  export type Params<T> = CommonParams & T & { bundle?: undefined };
@@ -1,5 +1,13 @@
1
1
  import semver from 'semver';
2
- import type { Features, IVersionArray, IDeviceType, IDeviceModel } from '../types';
2
+ import { toHardened } from '../api/helpers/pathUtils';
3
+ import { DeviceCommands } from '../device/DeviceCommands';
4
+ import type {
5
+ Features,
6
+ IVersionArray,
7
+ IDeviceType,
8
+ IDeviceModel,
9
+ SupportFeatureType,
10
+ } from '../types';
3
11
 
4
12
  export const getDeviceModel = (features?: Features): IDeviceModel => {
5
13
  if (!features || typeof features !== 'object') {
@@ -87,14 +95,39 @@ export const getDeviceBLEFirmwareVersion = (features: Features): IVersionArray |
87
95
  return features.ble_ver.split('.') as unknown as IVersionArray;
88
96
  };
89
97
 
90
- export const supportInputPinOnSoftware = (features: Features): boolean => {
91
- if (!features) return false;
98
+ export const supportInputPinOnSoftware = (features: Features): SupportFeatureType => {
99
+ if (!features) return { support: false };
92
100
 
93
101
  const deviceType = getDeviceType(features);
94
102
  if (deviceType === 'touch') {
95
- return false;
103
+ return { support: false };
104
+ }
105
+
106
+ const currentVersion = getDeviceFirmwareVersion(features).join('.');
107
+ return { support: semver.gte(currentVersion, '2.3.0'), require: '2.3.0' };
108
+ };
109
+
110
+ export const supportNewPassphrase = (features?: Features): SupportFeatureType => {
111
+ if (!features) return { support: false };
112
+
113
+ const deviceType = getDeviceType(features);
114
+ if (deviceType === 'touch' || deviceType === 'pro') {
115
+ return { support: true };
96
116
  }
97
117
 
98
118
  const currentVersion = getDeviceFirmwareVersion(features).join('.');
99
- return semver.gte(currentVersion, '2.3.0');
119
+
120
+ return { support: semver.gte(currentVersion, '2.4.0'), require: '2.4.0' };
121
+ };
122
+
123
+ export const getPassphraseState = async (features: Features, commands: DeviceCommands) => {
124
+ if (!features) return false;
125
+ const { message } = await commands.typedCall('GetAddress', 'Address', {
126
+ address_n: [toHardened(44), toHardened(1), toHardened(0), 0, 0],
127
+ coin_name: 'Testnet',
128
+ script_type: 'SPENDADDRESS',
129
+ show_display: false,
130
+ });
131
+
132
+ return message.address;
100
133
  };