@ukeyfe/hardware-shared 1.1.24 → 1.1.26

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.
@@ -1,3 +1,4 @@
1
+ import { EFirmwareType } from './firmwareType';
1
2
  export interface IHardwareError {
2
3
  errorCode: ValueOf<typeof HardwareErrorCode>;
3
4
  message?: string;
@@ -107,6 +108,11 @@ export declare const HardwareErrorCode: {
107
108
  readonly EmmcFileWriteFirmwareError: 819;
108
109
  readonly FirmwareVerificationFailed: 820;
109
110
  readonly BridgeNeedsPermission: 821;
111
+ readonly CallQueueActionCancelled: 822;
112
+ readonly FirmwareDowngradeNotAllowed: 823;
113
+ readonly CosmosInvalidJsonMessage: 824;
114
+ readonly DeviceSettingsNotProvided: 825;
115
+ readonly DeviceSettingsLanguageNotSupport: 826;
110
116
  readonly LowlevelTrasnportConnectError: 900;
111
117
  readonly WebDeviceNotFoundOrNeedsPermission: 901;
112
118
  readonly WebDevicePromptAccessError: 902;
@@ -116,13 +122,24 @@ export declare const TypedError: (hardwareError: ErrorCodeUnion | string, messag
116
122
  export declare const serializeError: (payload: any) => any;
117
123
  export declare const CreateErrorByMessage: (message: string) => HardwareError;
118
124
  export declare const CreateHardwareErrorByBridgeError: (raw: string) => HardwareError;
119
- declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
120
- declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
125
+ declare const createNewFirmwareUnReleaseHardwareError: ({ currentVersion, requireVersion, methodName, firmwareType, }: {
126
+ currentVersion: string;
127
+ requireVersion: string;
128
+ methodName?: string | undefined;
129
+ firmwareType?: EFirmwareType | undefined;
130
+ }) => HardwareError;
131
+ declare const createNeedUpgradeFirmwareHardwareError: ({ currentVersion, requireVersion, methodName, firmwareType, }: {
132
+ currentVersion: string;
133
+ requireVersion: string;
134
+ methodName?: string | undefined;
135
+ firmwareType?: EFirmwareType | undefined;
136
+ }) => HardwareError;
121
137
  declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionTypes?: ('firmware' | 'ble')[], currentVersions?: {
122
138
  firmware?: string;
123
139
  ble?: string;
124
140
  }) => HardwareError;
125
141
  declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError;
126
142
  declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError;
127
- export { createNewFirmwareUnReleaseHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createDeprecatedHardwareError, createDefectiveFirmwareError, };
143
+ declare const createDeviceNotSupportMethodError: (methodName: string, firmwareType: EFirmwareType) => HardwareError;
144
+ export { createNewFirmwareUnReleaseHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createDeprecatedHardwareError, createDefectiveFirmwareError, createDeviceNotSupportMethodError, };
128
145
  //# sourceMappingURL=HardwareError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C,KAAK,+BAA+B,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,MAAM;CAAE,CAAC;AAE5F,KAAK,cAAc,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAsCxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,cAAc,CAAkC;IAE3D,OAAO,SAAM;IAEb,MAAM,EAAE,GAAG,CAAM;gBAEL,aAAa,EAAE,cAAc,GAAG,MAAM;CAmBnD;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwYpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAwI7B,CAAC;AAEX,eAAO,MAAM,UAAU,kBACN,cAAc,GAAG,MAAM,YAC5B,MAAM,WACP,GAAG,kBAMb,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,GAAG,QAe1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,aAOtD,CAAC;AAGF,eAAO,MAAM,gCAAgC,QAAS,MAAM,KAAG,aAQ9D,CAAC;AAEF,QAAA,MAAM,uCAAuC,mBAC3B,MAAM,kBACN,MAAM,eACT,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,sCAAsC,mBAC1B,MAAM,kBACN,MAAM,eACT,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,yCAAyC,cAClC,MAAM,GAAG,SAAS,YACnB,MAAM,GAAG,SAAS,iBACb,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,oBACnB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,kBAsBF,CAAC;AAEF,QAAA,MAAM,6BAA6B,mBACjB,MAAM,qBACH,MAAM,eACZ,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,4BAA4B,aACtB,MAAM,aACL,MAAM,cACL,MAAM,cACN,MAAM,aACP,MAAM,kBAWlB,CAAC;AAEF,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,EAC7B,4BAA4B,GAC7B,CAAC"}
1
+ {"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C,KAAK,+BAA+B,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,MAAM;CAAE,CAAC;AAE5F,KAAK,cAAc,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAsCxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,cAAc,CAAkC;IAE3D,OAAO,SAAM;IAEb,MAAM,EAAE,GAAG,CAAM;gBAEL,aAAa,EAAE,cAAc,GAAG,MAAM;CAmBnD;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ZpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BA8I7B,CAAC;AAEX,eAAO,MAAM,UAAU,kBACN,cAAc,GAAG,MAAM,YAC5B,MAAM,WACP,GAAG,kBAMb,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,GAAG,QAe1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,aAOtD,CAAC;AAGF,eAAO,MAAM,gCAAgC,QAAS,MAAM,KAAG,aAQ9D,CAAC;AAEF,QAAA,MAAM,uCAAuC;oBAM3B,MAAM;oBACN,MAAM;;;mBAcvB,CAAC;AAEF,QAAA,MAAM,sCAAsC;oBAM1B,MAAM;oBACN,MAAM;;;mBAcvB,CAAC;AAEF,QAAA,MAAM,yCAAyC,cAClC,MAAM,GAAG,SAAS,YACnB,MAAM,GAAG,SAAS,iBACb,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,oBACnB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,kBAsBF,CAAC;AAEF,QAAA,MAAM,6BAA6B,mBACjB,MAAM,qBACH,MAAM,eACZ,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,4BAA4B,aACtB,MAAM,aACL,MAAM,cACL,MAAM,cACN,MAAM,aACP,MAAM,kBAWlB,CAAC;AAEF,QAAA,MAAM,iCAAiC,eAAgB,MAAM,gBAAgB,aAAa,kBAItF,CAAC;AAEL,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,CAAC"}
@@ -3,6 +3,8 @@ export declare const UKEY_WEBUSB_FILTER: {
3
3
  vendorId: number;
4
4
  productId: number;
5
5
  }[];
6
+ export declare const ERROR_CODES_REQUIRE_RELEASE: readonly [106, 107, 109, 112, 805, 801, 802, 812];
7
+ export declare const ERROR_CODES_REQUIRE_DISCONNECT: readonly [106, 805];
6
8
  export declare enum EUKeyBleMessageKeys {
7
9
  BLE_SELECT = "$ukey-ble-select",
8
10
  BLE_SELECT_RESULT = "$ukey-ble-select-result",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA,eAAO,MAAM,kBAAkB;;;GAO9B,CAAC;AAGF,oBAAY,mBAAmB;IAE7B,UAAU,qBAAqB;IAC/B,iBAAiB,4BAA4B;IAC7C,aAAa,wBAAwB;IACrC,kBAAkB,6BAA6B;IAC/C,cAAc,yBAAyB;IACvC,oBAAoB,+BAA+B;IAGnD,mBAAmB,8BAA8B;IACjD,oBAAoB,+BAA+B;IAGnD,aAAa,wBAAwB;IACrC,oBAAoB,+BAA+B;IAGnD,uBAAuB,kCAAkC;IACzD,sBAAsB,iCAAiC;IAGvD,mBAAmB,8BAA8B;IACjD,mBAAmB,8BAA8B;IACjD,oBAAoB,+BAA+B;IACnD,iBAAiB,4BAA4B;IAC7C,oBAAoB,+BAA+B;IACnD,eAAe,0BAA0B;IACzC,mBAAmB,8BAA8B;IACjD,qBAAqB,gCAAgC;IACrD,sBAAsB,iCAAiC;IACvD,wBAAwB,mCAAmC;CAC5D;AAED,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AACxE,eAAO,MAAM,8BAA8B,yCAAyC,CAAC;AACrF,eAAO,MAAM,+BAA+B,yCAAyC,CAAC;AAItF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,UAAU,KAAG,OAa1D,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,OAY/D,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,kBAAkB;;;GAO9B,CAAC;AAMF,eAAO,MAAM,2BAA2B,mDAS9B,CAAC;AAMX,eAAO,MAAM,8BAA8B,qBAGjC,CAAC;AAGX,oBAAY,mBAAmB;IAE7B,UAAU,qBAAqB;IAC/B,iBAAiB,4BAA4B;IAC7C,aAAa,wBAAwB;IACrC,kBAAkB,6BAA6B;IAC/C,cAAc,yBAAyB;IACvC,oBAAoB,+BAA+B;IAGnD,mBAAmB,8BAA8B;IACjD,oBAAoB,+BAA+B;IAGnD,aAAa,wBAAwB;IACrC,oBAAoB,+BAA+B;IAGnD,uBAAuB,kCAAkC;IACzD,sBAAsB,iCAAiC;IAGvD,mBAAmB,8BAA8B;IACjD,mBAAmB,8BAA8B;IACjD,oBAAoB,+BAA+B;IACnD,iBAAiB,4BAA4B;IAC7C,oBAAoB,+BAA+B;IACnD,eAAe,0BAA0B;IACzC,mBAAmB,8BAA8B;IACjD,qBAAqB,gCAAgC;IACrD,sBAAsB,iCAAiC;IACvD,wBAAwB,mCAAmC;CAC5D;AAED,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AACxE,eAAO,MAAM,8BAA8B,yCAAyC,CAAC;AACrF,eAAO,MAAM,+BAA+B,yCAAyC,CAAC;AAItF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,UAAU,KAAG,OAa1D,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,OAY/D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ declare const UKEY_WEBUSB_FILTER: {
2
2
  vendorId: number;
3
3
  productId: number;
4
4
  }[];
5
+ declare const ERROR_CODES_REQUIRE_RELEASE: readonly [106, 107, 109, 112, 805, 801, 802, 812];
6
+ declare const ERROR_CODES_REQUIRE_DISCONNECT: readonly [106, 805];
5
7
  declare enum EUKeyBleMessageKeys {
6
8
  BLE_SELECT = "$ukey-ble-select",
7
9
  BLE_SELECT_RESULT = "$ukey-ble-select-result",
@@ -41,6 +43,11 @@ type Deferred<T, I = any, D = any> = {
41
43
  };
42
44
  declare function createDeferred<T, I = any, D = any>(arg?: I, data?: D): Deferred<T, I, D>;
43
45
 
46
+ declare enum EFirmwareType {
47
+ Universal = "universal",
48
+ BitcoinOnly = "bitcoinonly"
49
+ }
50
+
44
51
  interface IHardwareError {
45
52
  errorCode: ValueOf<typeof HardwareErrorCode>;
46
53
  message?: string;
@@ -150,6 +157,11 @@ declare const HardwareErrorCode: {
150
157
  readonly EmmcFileWriteFirmwareError: 819;
151
158
  readonly FirmwareVerificationFailed: 820;
152
159
  readonly BridgeNeedsPermission: 821;
160
+ readonly CallQueueActionCancelled: 822;
161
+ readonly FirmwareDowngradeNotAllowed: 823;
162
+ readonly CosmosInvalidJsonMessage: 824;
163
+ readonly DeviceSettingsNotProvided: 825;
164
+ readonly DeviceSettingsLanguageNotSupport: 826;
153
165
  readonly LowlevelTrasnportConnectError: 900;
154
166
  readonly WebDeviceNotFoundOrNeedsPermission: 901;
155
167
  readonly WebDevicePromptAccessError: 902;
@@ -159,20 +171,32 @@ declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: str
159
171
  declare const serializeError: (payload: any) => any;
160
172
  declare const CreateErrorByMessage: (message: string) => HardwareError;
161
173
  declare const CreateHardwareErrorByBridgeError: (raw: string) => HardwareError;
162
- declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
163
- declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
174
+ declare const createNewFirmwareUnReleaseHardwareError: ({ currentVersion, requireVersion, methodName, firmwareType, }: {
175
+ currentVersion: string;
176
+ requireVersion: string;
177
+ methodName?: string | undefined;
178
+ firmwareType?: EFirmwareType | undefined;
179
+ }) => HardwareError;
180
+ declare const createNeedUpgradeFirmwareHardwareError: ({ currentVersion, requireVersion, methodName, firmwareType, }: {
181
+ currentVersion: string;
182
+ requireVersion: string;
183
+ methodName?: string | undefined;
184
+ firmwareType?: EFirmwareType | undefined;
185
+ }) => HardwareError;
164
186
  declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionTypes?: ('firmware' | 'ble')[], currentVersions?: {
165
187
  firmware?: string;
166
188
  ble?: string;
167
189
  }) => HardwareError;
168
190
  declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError;
169
191
  declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError;
192
+ declare const createDeviceNotSupportMethodError: (methodName: string, firmwareType: EFirmwareType) => HardwareError;
170
193
 
171
194
  declare const HardwareError$1_createNewFirmwareUnReleaseHardwareError: typeof createNewFirmwareUnReleaseHardwareError;
172
195
  declare const HardwareError$1_createNeedUpgradeFirmwareHardwareError: typeof createNeedUpgradeFirmwareHardwareError;
173
196
  declare const HardwareError$1_createNewFirmwareForceUpdateHardwareError: typeof createNewFirmwareForceUpdateHardwareError;
174
197
  declare const HardwareError$1_createDeprecatedHardwareError: typeof createDeprecatedHardwareError;
175
198
  declare const HardwareError$1_createDefectiveFirmwareError: typeof createDefectiveFirmwareError;
199
+ declare const HardwareError$1_createDeviceNotSupportMethodError: typeof createDeviceNotSupportMethodError;
176
200
  type HardwareError$1_IHardwareError = IHardwareError;
177
201
  type HardwareError$1_HardwareError = HardwareError;
178
202
  declare const HardwareError$1_HardwareError: typeof HardwareError;
@@ -189,6 +213,7 @@ declare namespace HardwareError$1 {
189
213
  HardwareError$1_createNewFirmwareForceUpdateHardwareError as createNewFirmwareForceUpdateHardwareError,
190
214
  HardwareError$1_createDeprecatedHardwareError as createDeprecatedHardwareError,
191
215
  HardwareError$1_createDefectiveFirmwareError as createDefectiveFirmwareError,
216
+ HardwareError$1_createDeviceNotSupportMethodError as createDeviceNotSupportMethodError,
192
217
  HardwareError$1_IHardwareError as IHardwareError,
193
218
  HardwareError$1_HardwareError as HardwareError,
194
219
  HardwareError$1_HardwareErrorCode as HardwareErrorCode,
@@ -212,9 +237,4 @@ declare enum EDeviceType {
212
237
  Pro = "pro"
213
238
  }
214
239
 
215
- declare enum EFirmwareType {
216
- Universal = "universal",
217
- BitcoinOnly = "bitcoinonly"
218
- }
219
-
220
- export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EDeviceType, EFirmwareType, HardwareError$1 as ERRORS, EUKeyBleMessageKeys, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, TypedError, UKEY_NOTIFY_CHARACTERISTIC_UUID, UKEY_SERVICE_UUID, UKEY_WEBUSB_FILTER, UKEY_WRITE_CHARACTERISTIC_UUID, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, isHeaderChunk, isUkeyDevice, serializeError, wait };
240
+ export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EDeviceType, EFirmwareType, HardwareError$1 as ERRORS, ERROR_CODES_REQUIRE_DISCONNECT, ERROR_CODES_REQUIRE_RELEASE, EUKeyBleMessageKeys, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, TypedError, UKEY_NOTIFY_CHARACTERISTIC_UUID, UKEY_SERVICE_UUID, UKEY_WEBUSB_FILTER, UKEY_WRITE_CHARACTERISTIC_UUID, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createDeviceNotSupportMethodError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, isHeaderChunk, isUkeyDevice, serializeError, wait };
package/dist/index.js CHANGED
@@ -2,121 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const UKEY_WEBUSB_FILTER = [
6
- { vendorId: 0x1209, productId: 0x53c0 },
7
- { vendorId: 0x1209, productId: 0x53c1 },
8
- { vendorId: 0x1209, productId: 0x4f4a },
9
- { vendorId: 0x1209, productId: 0x4f4b },
10
- ];
11
- exports.EUKeyBleMessageKeys = void 0;
12
- (function (EUKeyBleMessageKeys) {
13
- EUKeyBleMessageKeys["BLE_SELECT"] = "$ukey-ble-select";
14
- EUKeyBleMessageKeys["BLE_SELECT_RESULT"] = "$ukey-ble-select-result";
15
- EUKeyBleMessageKeys["BLE_STOP_SCAN"] = "$ukey-ble-stop-scan";
16
- EUKeyBleMessageKeys["BLE_CANCEL_REQUEST"] = "$ukey-ble-cancel-request";
17
- EUKeyBleMessageKeys["BLE_PRE_SELECT"] = "$ukey-ble-pre-select";
18
- EUKeyBleMessageKeys["BLE_CLEAR_PRE_SELECT"] = "$ukey-ble-clear-pre-select";
19
- EUKeyBleMessageKeys["BLE_PAIRING_REQUEST"] = "$ukey-ble-pairing-request";
20
- EUKeyBleMessageKeys["BLE_PAIRING_RESPONSE"] = "$ukey-ble-pairing-response";
21
- EUKeyBleMessageKeys["BLE_ENUMERATE"] = "$ukey-ble-enumerate";
22
- EUKeyBleMessageKeys["BLE_ENUMERATE_RESULT"] = "$ukey-ble-enumerate-result";
23
- EUKeyBleMessageKeys["BLE_DEVICE_DISCONNECTED"] = "$ukey-ble-device-disconnected";
24
- EUKeyBleMessageKeys["BLE_AVAILABILITY_CHECK"] = "$ukey-ble-availability-check";
25
- EUKeyBleMessageKeys["NOBLE_BLE_ENUMERATE"] = "$ukey-noble-ble-enumerate";
26
- EUKeyBleMessageKeys["NOBLE_BLE_STOP_SCAN"] = "$ukey-noble-ble-stop-scan";
27
- EUKeyBleMessageKeys["NOBLE_BLE_GET_DEVICE"] = "$ukey-noble-ble-get-device";
28
- EUKeyBleMessageKeys["NOBLE_BLE_CONNECT"] = "$ukey-noble-ble-connect";
29
- EUKeyBleMessageKeys["NOBLE_BLE_DISCONNECT"] = "$ukey-noble-ble-disconnect";
30
- EUKeyBleMessageKeys["NOBLE_BLE_WRITE"] = "$ukey-noble-ble-write";
31
- EUKeyBleMessageKeys["NOBLE_BLE_SUBSCRIBE"] = "$ukey-noble-ble-subscribe";
32
- EUKeyBleMessageKeys["NOBLE_BLE_UNSUBSCRIBE"] = "$ukey-noble-ble-unsubscribe";
33
- EUKeyBleMessageKeys["NOBLE_BLE_NOTIFICATION"] = "$ukey-noble-ble-notification";
34
- EUKeyBleMessageKeys["NOBLE_BLE_CANCEL_PAIRING"] = "$ukey-noble-ble-cancel-pairing";
35
- })(exports.EUKeyBleMessageKeys || (exports.EUKeyBleMessageKeys = {}));
36
- const UKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
37
- const UKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
38
- const UKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
39
- const MESSAGE_TOP_CHAR = 63;
40
- const MESSAGE_HEADER_BYTE = 35;
41
- const isHeaderChunk = (chunk) => {
42
- if (chunk.length < 9)
43
- return false;
44
- const [MagicQuestionMark, sharp1, sharp2] = chunk;
45
- if (String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
46
- String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
47
- String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)) {
48
- return true;
49
- }
50
- return false;
51
- };
52
- const isUkeyDevice = (name, id) => {
53
- var _a;
54
- if ((_a = id === null || id === void 0 ? void 0 : id.startsWith) === null || _a === void 0 ? void 0 : _a.call(id, 'MI')) {
55
- return true;
56
- }
57
- const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
58
- if (name && re.exec(name)) {
59
- return true;
60
- }
61
- return false;
62
- };
63
-
64
- /******************************************************************************
65
- Copyright (c) Microsoft Corporation.
66
-
67
- Permission to use, copy, modify, and/or distribute this software for any
68
- purpose with or without fee is hereby granted.
69
-
70
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
71
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
72
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
73
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
74
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
75
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
76
- PERFORMANCE OF THIS SOFTWARE.
77
- ***************************************************************************** */
78
-
79
- function __awaiter(thisArg, _arguments, P, generator) {
80
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
81
- return new (P || (P = Promise))(function (resolve, reject) {
82
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
83
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
84
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
85
- step((generator = generator.apply(thisArg, _arguments || [])).next());
86
- });
87
- }
88
-
89
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
90
- var e = new Error(message);
91
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
92
- };
93
-
94
- function createDeferred(arg, data) {
95
- let localResolve = (_t) => { };
96
- let localReject = (_e) => { };
97
- let id;
98
- const promise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
99
- localResolve = resolve;
100
- localReject = reject;
101
- if (typeof arg === 'function') {
102
- try {
103
- yield arg();
104
- }
105
- catch (error) {
106
- reject(error);
107
- }
108
- }
109
- if (typeof arg === 'string')
110
- id = arg;
111
- }));
112
- return {
113
- id,
114
- data,
115
- resolve: localResolve,
116
- reject: localReject,
117
- promise,
118
- };
119
- }
5
+ exports.EFirmwareType = void 0;
6
+ (function (EFirmwareType) {
7
+ EFirmwareType["Universal"] = "universal";
8
+ EFirmwareType["BitcoinOnly"] = "bitcoinonly";
9
+ })(exports.EFirmwareType || (exports.EFirmwareType = {}));
120
10
 
121
11
  function fillStringWithArguments(value, object) {
122
12
  if (typeof value !== 'string')
@@ -267,6 +157,11 @@ const HardwareErrorCode = {
267
157
  EmmcFileWriteFirmwareError: 819,
268
158
  FirmwareVerificationFailed: 820,
269
159
  BridgeNeedsPermission: 821,
160
+ CallQueueActionCancelled: 822,
161
+ FirmwareDowngradeNotAllowed: 823,
162
+ CosmosInvalidJsonMessage: 824,
163
+ DeviceSettingsNotProvided: 825,
164
+ DeviceSettingsLanguageNotSupport: 826,
270
165
  LowlevelTrasnportConnectError: 900,
271
166
  WebDeviceNotFoundOrNeedsPermission: 901,
272
167
  WebDevicePromptAccessError: 902,
@@ -346,6 +241,7 @@ const HardwareErrorCodeMessage = {
346
241
  [HardwareErrorCode.PinInvalid]: 'Pin invalid',
347
242
  [HardwareErrorCode.PinCancelled]: 'Pin cancelled',
348
243
  [HardwareErrorCode.ActionCancelled]: 'Action cancelled by user',
244
+ [HardwareErrorCode.CallQueueActionCancelled]: 'Action cancelled by user on call queue',
349
245
  [HardwareErrorCode.FirmwareError]: 'Firmware installation failed',
350
246
  [HardwareErrorCode.ResponseUnexpectTypeError]: 'Response type is not expected',
351
247
  [HardwareErrorCode.BridgeNetworkError]: 'Bridge network error',
@@ -364,6 +260,10 @@ const HardwareErrorCodeMessage = {
364
260
  [HardwareErrorCode.EmmcFileWriteFirmwareError]: 'EMMC file write firmware error',
365
261
  [HardwareErrorCode.FirmwareVerificationFailed]: 'Firmware verification failed',
366
262
  [HardwareErrorCode.BridgeNeedsPermission]: 'Bridge needs permission',
263
+ [HardwareErrorCode.FirmwareDowngradeNotAllowed]: 'Firmware downgrade not allowed',
264
+ [HardwareErrorCode.CosmosInvalidJsonMessage]: 'Cosmos invalid JSON message, Only support Amino msgs.',
265
+ [HardwareErrorCode.DeviceSettingsNotProvided]: 'No setting provided',
266
+ [HardwareErrorCode.DeviceSettingsLanguageNotSupport]: 'Language not supported',
367
267
  [HardwareErrorCode.LowlevelTrasnportConnectError]: 'Lowlevel transport connect error',
368
268
  [HardwareErrorCode.WebDeviceNotFoundOrNeedsPermission]: 'Web-USB or Web-Bluetooth device not found or needs permission',
369
269
  [HardwareErrorCode.WebDevicePromptAccessError]: 'Web-USB or Web-Bluetooth device prompt access error',
@@ -405,11 +305,17 @@ const CreateHardwareErrorByBridgeError = (raw) => {
405
305
  }
406
306
  return TypedError(HardwareErrorCode.BridgeNetworkError, msg);
407
307
  };
408
- const createNewFirmwareUnReleaseHardwareError = (currentVersion, requireVersion, methodName) => {
308
+ const createNewFirmwareUnReleaseHardwareError = ({ currentVersion, requireVersion, methodName, firmwareType, }) => {
309
+ if ((methodName === null || methodName === void 0 ? void 0 : methodName.startsWith('btc')) === false && firmwareType === exports.EFirmwareType.BitcoinOnly) {
310
+ return createDeviceNotSupportMethodError(methodName !== null && methodName !== void 0 ? methodName : '', firmwareType);
311
+ }
409
312
  const methodInfo = methodName ? ` for method '${methodName}'` : '';
410
313
  return TypedError(HardwareErrorCode.NewFirmwareUnRelease, `Device firmware version is too low${methodInfo}, please update to the latest version`, { current: currentVersion, require: requireVersion, method: methodName });
411
314
  };
412
- const createNeedUpgradeFirmwareHardwareError = (currentVersion, requireVersion, methodName) => {
315
+ const createNeedUpgradeFirmwareHardwareError = ({ currentVersion, requireVersion, methodName, firmwareType, }) => {
316
+ if ((methodName === null || methodName === void 0 ? void 0 : methodName.startsWith('btc')) === false && firmwareType === exports.EFirmwareType.BitcoinOnly) {
317
+ return createDeviceNotSupportMethodError(methodName !== null && methodName !== void 0 ? methodName : '', firmwareType);
318
+ }
413
319
  const methodInfo = methodName ? ` for method '${methodName}'` : '';
414
320
  return TypedError(HardwareErrorCode.CallMethodNeedUpgradeFirmware, `Device firmware version is too low${methodInfo}, please update to ${requireVersion}`, { current: currentVersion, require: requireVersion, method: methodName });
415
321
  };
@@ -448,6 +354,10 @@ const createDefectiveFirmwareError = (serialNo, seVersion, deviceType, connectId
448
354
  deviceId,
449
355
  });
450
356
  };
357
+ const createDeviceNotSupportMethodError = (methodName, firmwareType) => TypedError(HardwareErrorCode.DeviceNotSupportMethod, `Device not support this method`, {
358
+ firmwareType: firmwareType.toString(),
359
+ method: methodName,
360
+ });
451
361
 
452
362
  var HardwareError$1 = /*#__PURE__*/Object.freeze({
453
363
  __proto__: null,
@@ -462,9 +372,140 @@ var HardwareError$1 = /*#__PURE__*/Object.freeze({
462
372
  createNeedUpgradeFirmwareHardwareError: createNeedUpgradeFirmwareHardwareError,
463
373
  createNewFirmwareForceUpdateHardwareError: createNewFirmwareForceUpdateHardwareError,
464
374
  createDeprecatedHardwareError: createDeprecatedHardwareError,
465
- createDefectiveFirmwareError: createDefectiveFirmwareError
375
+ createDefectiveFirmwareError: createDefectiveFirmwareError,
376
+ createDeviceNotSupportMethodError: createDeviceNotSupportMethodError
466
377
  });
467
378
 
379
+ const UKEY_WEBUSB_FILTER = [
380
+ { vendorId: 0x1209, productId: 0x53c0 },
381
+ { vendorId: 0x1209, productId: 0x53c1 },
382
+ { vendorId: 0x1209, productId: 0x4f4a },
383
+ { vendorId: 0x1209, productId: 0x4f4b },
384
+ ];
385
+ const ERROR_CODES_REQUIRE_RELEASE = [
386
+ HardwareErrorCode.DeviceInitializeFailed,
387
+ HardwareErrorCode.DeviceInterruptedFromOutside,
388
+ HardwareErrorCode.DeviceInterruptedFromUser,
389
+ HardwareErrorCode.DeviceCheckPassphraseStateError,
390
+ HardwareErrorCode.ResponseUnexpectTypeError,
391
+ HardwareErrorCode.PinInvalid,
392
+ HardwareErrorCode.PinCancelled,
393
+ HardwareErrorCode.UnexpectPassphrase,
394
+ ];
395
+ const ERROR_CODES_REQUIRE_DISCONNECT = [
396
+ HardwareErrorCode.DeviceInitializeFailed,
397
+ HardwareErrorCode.ResponseUnexpectTypeError,
398
+ ];
399
+ exports.EUKeyBleMessageKeys = void 0;
400
+ (function (EUKeyBleMessageKeys) {
401
+ EUKeyBleMessageKeys["BLE_SELECT"] = "$ukey-ble-select";
402
+ EUKeyBleMessageKeys["BLE_SELECT_RESULT"] = "$ukey-ble-select-result";
403
+ EUKeyBleMessageKeys["BLE_STOP_SCAN"] = "$ukey-ble-stop-scan";
404
+ EUKeyBleMessageKeys["BLE_CANCEL_REQUEST"] = "$ukey-ble-cancel-request";
405
+ EUKeyBleMessageKeys["BLE_PRE_SELECT"] = "$ukey-ble-pre-select";
406
+ EUKeyBleMessageKeys["BLE_CLEAR_PRE_SELECT"] = "$ukey-ble-clear-pre-select";
407
+ EUKeyBleMessageKeys["BLE_PAIRING_REQUEST"] = "$ukey-ble-pairing-request";
408
+ EUKeyBleMessageKeys["BLE_PAIRING_RESPONSE"] = "$ukey-ble-pairing-response";
409
+ EUKeyBleMessageKeys["BLE_ENUMERATE"] = "$ukey-ble-enumerate";
410
+ EUKeyBleMessageKeys["BLE_ENUMERATE_RESULT"] = "$ukey-ble-enumerate-result";
411
+ EUKeyBleMessageKeys["BLE_DEVICE_DISCONNECTED"] = "$ukey-ble-device-disconnected";
412
+ EUKeyBleMessageKeys["BLE_AVAILABILITY_CHECK"] = "$ukey-ble-availability-check";
413
+ EUKeyBleMessageKeys["NOBLE_BLE_ENUMERATE"] = "$ukey-noble-ble-enumerate";
414
+ EUKeyBleMessageKeys["NOBLE_BLE_STOP_SCAN"] = "$ukey-noble-ble-stop-scan";
415
+ EUKeyBleMessageKeys["NOBLE_BLE_GET_DEVICE"] = "$ukey-noble-ble-get-device";
416
+ EUKeyBleMessageKeys["NOBLE_BLE_CONNECT"] = "$ukey-noble-ble-connect";
417
+ EUKeyBleMessageKeys["NOBLE_BLE_DISCONNECT"] = "$ukey-noble-ble-disconnect";
418
+ EUKeyBleMessageKeys["NOBLE_BLE_WRITE"] = "$ukey-noble-ble-write";
419
+ EUKeyBleMessageKeys["NOBLE_BLE_SUBSCRIBE"] = "$ukey-noble-ble-subscribe";
420
+ EUKeyBleMessageKeys["NOBLE_BLE_UNSUBSCRIBE"] = "$ukey-noble-ble-unsubscribe";
421
+ EUKeyBleMessageKeys["NOBLE_BLE_NOTIFICATION"] = "$ukey-noble-ble-notification";
422
+ EUKeyBleMessageKeys["NOBLE_BLE_CANCEL_PAIRING"] = "$ukey-noble-ble-cancel-pairing";
423
+ })(exports.EUKeyBleMessageKeys || (exports.EUKeyBleMessageKeys = {}));
424
+ const UKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
425
+ const UKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
426
+ const UKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
427
+ const MESSAGE_TOP_CHAR = 63;
428
+ const MESSAGE_HEADER_BYTE = 35;
429
+ const isHeaderChunk = (chunk) => {
430
+ if (chunk.length < 9)
431
+ return false;
432
+ const [MagicQuestionMark, sharp1, sharp2] = chunk;
433
+ if (String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
434
+ String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
435
+ String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)) {
436
+ return true;
437
+ }
438
+ return false;
439
+ };
440
+ const isUkeyDevice = (name, id) => {
441
+ var _a;
442
+ if ((_a = id === null || id === void 0 ? void 0 : id.startsWith) === null || _a === void 0 ? void 0 : _a.call(id, 'MI')) {
443
+ return true;
444
+ }
445
+ const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
446
+ if (name && re.exec(name)) {
447
+ return true;
448
+ }
449
+ return false;
450
+ };
451
+
452
+ /******************************************************************************
453
+ Copyright (c) Microsoft Corporation.
454
+
455
+ Permission to use, copy, modify, and/or distribute this software for any
456
+ purpose with or without fee is hereby granted.
457
+
458
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
459
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
460
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
461
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
462
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
463
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
464
+ PERFORMANCE OF THIS SOFTWARE.
465
+ ***************************************************************************** */
466
+
467
+ function __awaiter(thisArg, _arguments, P, generator) {
468
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
469
+ return new (P || (P = Promise))(function (resolve, reject) {
470
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
471
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
472
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
473
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
474
+ });
475
+ }
476
+
477
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
478
+ var e = new Error(message);
479
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
480
+ };
481
+
482
+ function createDeferred(arg, data) {
483
+ let localResolve = (_t) => { };
484
+ let localReject = (_e) => { };
485
+ let id;
486
+ const promise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
487
+ localResolve = resolve;
488
+ localReject = reject;
489
+ if (typeof arg === 'function') {
490
+ try {
491
+ yield arg();
492
+ }
493
+ catch (error) {
494
+ reject(error);
495
+ }
496
+ }
497
+ if (typeof arg === 'string')
498
+ id = arg;
499
+ }));
500
+ return {
501
+ id,
502
+ data,
503
+ resolve: localResolve,
504
+ reject: localReject,
505
+ promise,
506
+ };
507
+ }
508
+
468
509
  const wait = (ms) => new Promise(resolve => {
469
510
  setTimeout(resolve, ms);
470
511
  });
@@ -480,15 +521,11 @@ exports.EDeviceType = void 0;
480
521
  EDeviceType["Pro"] = "pro";
481
522
  })(exports.EDeviceType || (exports.EDeviceType = {}));
482
523
 
483
- exports.EFirmwareType = void 0;
484
- (function (EFirmwareType) {
485
- EFirmwareType["Universal"] = "universal";
486
- EFirmwareType["BitcoinOnly"] = "bitcoinonly";
487
- })(exports.EFirmwareType || (exports.EFirmwareType = {}));
488
-
489
524
  exports.CreateErrorByMessage = CreateErrorByMessage;
490
525
  exports.CreateHardwareErrorByBridgeError = CreateHardwareErrorByBridgeError;
491
526
  exports.ERRORS = HardwareError$1;
527
+ exports.ERROR_CODES_REQUIRE_DISCONNECT = ERROR_CODES_REQUIRE_DISCONNECT;
528
+ exports.ERROR_CODES_REQUIRE_RELEASE = ERROR_CODES_REQUIRE_RELEASE;
492
529
  exports.HardwareError = HardwareError;
493
530
  exports.HardwareErrorCode = HardwareErrorCode;
494
531
  exports.HardwareErrorCodeMessage = HardwareErrorCodeMessage;
@@ -500,6 +537,7 @@ exports.UKEY_WRITE_CHARACTERISTIC_UUID = UKEY_WRITE_CHARACTERISTIC_UUID;
500
537
  exports.createDefectiveFirmwareError = createDefectiveFirmwareError;
501
538
  exports.createDeferred = createDeferred;
502
539
  exports.createDeprecatedHardwareError = createDeprecatedHardwareError;
540
+ exports.createDeviceNotSupportMethodError = createDeviceNotSupportMethodError;
503
541
  exports.createNeedUpgradeFirmwareHardwareError = createNeedUpgradeFirmwareHardwareError;
504
542
  exports.createNewFirmwareForceUpdateHardwareError = createNewFirmwareForceUpdateHardwareError;
505
543
  exports.createNewFirmwareUnReleaseHardwareError = createNewFirmwareUnReleaseHardwareError;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ukeyfe/hardware-shared",
3
- "version": "1.1.24",
3
+ "version": "1.1.26",
4
4
  "description": "Hardware SDK's shared tool library",
5
5
  "keywords": [
6
6
  "Hardware-SDK",
7
7
  "shared",
8
8
  "utils"
9
9
  ],
10
- "author": "Ukey",
10
+ "author": "Leon <lixiao.dev@gmail.com>",
11
11
  "homepage": "https://github.com/UKeyHQ/hardware-js-sdk#readme",
12
12
  "license": "ISC",
13
13
  "main": "dist/index.js",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/bestyourwallet/hardware-js-sdk"
20
+ "url": "git+https://github.com/UKeyHQ/hardware-js-sdk.git"
21
21
  },
22
22
  "scripts": {
23
23
  "dev": "rimraf dist && rollup -c ../../build/rollup.config.js -w",
@@ -25,5 +25,5 @@
25
25
  "lint": "eslint .",
26
26
  "lint:fix": "eslint . --fix"
27
27
  },
28
- "gitHead": "d09d2092c0aff842b8675d7cffae2b1ffeb8fef0"
28
+ "gitHead": "ca0b502d1ac83fdd0883d5e278e20bd80ac08f29"
29
29
  }
@@ -1,3 +1,5 @@
1
+ import { EFirmwareType } from './firmwareType';
2
+
1
3
  export interface IHardwareError {
2
4
  errorCode: ValueOf<typeof HardwareErrorCode>;
3
5
  message?: string;
@@ -452,6 +454,25 @@ export const HardwareErrorCode = {
452
454
  */
453
455
  BridgeNeedsPermission: 821,
454
456
 
457
+ CallQueueActionCancelled: 822,
458
+ /**
459
+ * Firmware downgrade not allowed
460
+ */
461
+ FirmwareDowngradeNotAllowed: 823,
462
+ /**
463
+ * Cosmos invalid JSON message, Only support Amino msgs.
464
+ */
465
+ CosmosInvalidJsonMessage: 824,
466
+ /**
467
+ * No setting provided
468
+ */
469
+ DeviceSettingsNotProvided: 825,
470
+
471
+ /**
472
+ * Language not supported
473
+ */
474
+ DeviceSettingsLanguageNotSupport: 826,
475
+
455
476
  /**
456
477
  * Lowlevel transport connect error
457
478
  */
@@ -577,6 +598,7 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
577
598
  [HardwareErrorCode.PinInvalid]: 'Pin invalid',
578
599
  [HardwareErrorCode.PinCancelled]: 'Pin cancelled',
579
600
  [HardwareErrorCode.ActionCancelled]: 'Action cancelled by user',
601
+ [HardwareErrorCode.CallQueueActionCancelled]: 'Action cancelled by user on call queue',
580
602
  [HardwareErrorCode.FirmwareError]: 'Firmware installation failed',
581
603
  [HardwareErrorCode.ResponseUnexpectTypeError]: 'Response type is not expected',
582
604
  [HardwareErrorCode.BridgeNetworkError]: 'Bridge network error',
@@ -595,6 +617,11 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
595
617
  [HardwareErrorCode.EmmcFileWriteFirmwareError]: 'EMMC file write firmware error',
596
618
  [HardwareErrorCode.FirmwareVerificationFailed]: 'Firmware verification failed',
597
619
  [HardwareErrorCode.BridgeNeedsPermission]: 'Bridge needs permission',
620
+ [HardwareErrorCode.FirmwareDowngradeNotAllowed]: 'Firmware downgrade not allowed',
621
+ [HardwareErrorCode.CosmosInvalidJsonMessage]:
622
+ 'Cosmos invalid JSON message, Only support Amino msgs.',
623
+ [HardwareErrorCode.DeviceSettingsNotProvided]: 'No setting provided',
624
+ [HardwareErrorCode.DeviceSettingsLanguageNotSupport]: 'Language not supported',
598
625
 
599
626
  /**
600
627
  * Lowlevel transport
@@ -654,11 +681,21 @@ export const CreateHardwareErrorByBridgeError = (raw: string): HardwareError =>
654
681
  return TypedError(HardwareErrorCode.BridgeNetworkError, msg);
655
682
  };
656
683
 
657
- const createNewFirmwareUnReleaseHardwareError = (
658
- currentVersion: string,
659
- requireVersion: string,
660
- methodName?: string
661
- ) => {
684
+ const createNewFirmwareUnReleaseHardwareError = ({
685
+ currentVersion,
686
+ requireVersion,
687
+ methodName,
688
+ firmwareType,
689
+ }: {
690
+ currentVersion: string;
691
+ requireVersion: string;
692
+ methodName?: string;
693
+ firmwareType?: EFirmwareType;
694
+ }) => {
695
+ if (methodName?.startsWith('btc') === false && firmwareType === EFirmwareType.BitcoinOnly) {
696
+ return createDeviceNotSupportMethodError(methodName ?? '', firmwareType);
697
+ }
698
+
662
699
  const methodInfo = methodName ? ` for method '${methodName}'` : '';
663
700
  return TypedError(
664
701
  HardwareErrorCode.NewFirmwareUnRelease,
@@ -667,11 +704,21 @@ const createNewFirmwareUnReleaseHardwareError = (
667
704
  );
668
705
  };
669
706
 
670
- const createNeedUpgradeFirmwareHardwareError = (
671
- currentVersion: string,
672
- requireVersion: string,
673
- methodName?: string
674
- ) => {
707
+ const createNeedUpgradeFirmwareHardwareError = ({
708
+ currentVersion,
709
+ requireVersion,
710
+ methodName,
711
+ firmwareType,
712
+ }: {
713
+ currentVersion: string;
714
+ requireVersion: string;
715
+ methodName?: string;
716
+ firmwareType?: EFirmwareType;
717
+ }) => {
718
+ if (methodName?.startsWith('btc') === false && firmwareType === EFirmwareType.BitcoinOnly) {
719
+ return createDeviceNotSupportMethodError(methodName ?? '', firmwareType);
720
+ }
721
+
675
722
  const methodInfo = methodName ? ` for method '${methodName}'` : '';
676
723
  return TypedError(
677
724
  HardwareErrorCode.CallMethodNeedUpgradeFirmware,
@@ -742,10 +789,17 @@ const createDefectiveFirmwareError = (
742
789
  });
743
790
  };
744
791
 
792
+ const createDeviceNotSupportMethodError = (methodName: string, firmwareType: EFirmwareType) =>
793
+ TypedError(HardwareErrorCode.DeviceNotSupportMethod, `Device not support this method`, {
794
+ firmwareType: firmwareType.toString(),
795
+ method: methodName,
796
+ });
797
+
745
798
  export {
746
799
  createNewFirmwareUnReleaseHardwareError,
747
800
  createNeedUpgradeFirmwareHardwareError,
748
801
  createNewFirmwareForceUpdateHardwareError,
749
802
  createDeprecatedHardwareError,
750
803
  createDefectiveFirmwareError,
804
+ createDeviceNotSupportMethodError,
751
805
  };
package/src/constants.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { HardwareErrorCode } from './HardwareError';
2
+
1
3
  export const UKEY_WEBUSB_FILTER = [
2
4
  { vendorId: 0x1209, productId: 0x53c0 }, // Classic Boot、Classic1s Boot、Mini Boot
3
5
  { vendorId: 0x1209, productId: 0x53c1 }, // Classic Firmware、Classic1s Firmware、Mini Firmware、Pro Firmware、Touch Firmware
@@ -7,6 +9,30 @@ export const UKEY_WEBUSB_FILTER = [
7
9
  // { vendorId: 0x1209, productId: 0x4f50 }, // Touch Board
8
10
  ];
9
11
 
12
+ /**
13
+ * Error codes that require device release after occurrence
14
+ * These errors indicate the device is in an invalid state and needs to be released
15
+ */
16
+ export const ERROR_CODES_REQUIRE_RELEASE = [
17
+ HardwareErrorCode.DeviceInitializeFailed,
18
+ HardwareErrorCode.DeviceInterruptedFromOutside,
19
+ HardwareErrorCode.DeviceInterruptedFromUser,
20
+ HardwareErrorCode.DeviceCheckPassphraseStateError,
21
+ HardwareErrorCode.ResponseUnexpectTypeError,
22
+ HardwareErrorCode.PinInvalid,
23
+ HardwareErrorCode.PinCancelled,
24
+ HardwareErrorCode.UnexpectPassphrase,
25
+ ] as const;
26
+
27
+ /**
28
+ * Error codes that require device disconnect before release
29
+ * These errors indicate a communication failure that requires full reconnection
30
+ */
31
+ export const ERROR_CODES_REQUIRE_DISCONNECT = [
32
+ HardwareErrorCode.DeviceInitializeFailed,
33
+ HardwareErrorCode.ResponseUnexpectTypeError,
34
+ ] as const;
35
+
10
36
  // BLE IPC communication message types
11
37
  export enum EUKeyBleMessageKeys {
12
38
  // BLE device selection related