@onekeyfe/hd-shared 1.2.0-alpha.66 → 1.2.0-alpha.67
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.
- package/dist/HardwareError.d.ts +1 -1
- package/dist/HardwareError.d.ts.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/deviceType.d.ts +1 -2
- package/dist/deviceType.d.ts.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.js +7 -14
- package/package.json +2 -2
- package/src/HardwareError.test.ts +2 -2
- package/src/HardwareError.ts +6 -8
- package/src/constants.test.ts +4 -25
- package/src/constants.ts +7 -12
- package/src/deviceType.ts +0 -1
package/dist/HardwareError.d.ts
CHANGED
|
@@ -115,9 +115,9 @@ export declare const HardwareErrorCode: {
|
|
|
115
115
|
readonly DeviceSettingsLanguageNotSupport: 826;
|
|
116
116
|
readonly TooManyInputs: 827;
|
|
117
117
|
readonly PinMismatch: 828;
|
|
118
|
+
readonly KaspaPrevTxIdMismatch: 829;
|
|
118
119
|
readonly DeviceLocked: 830;
|
|
119
120
|
readonly WalletSessionInvalid: 831;
|
|
120
|
-
readonly NftStorageLimitReached: 832;
|
|
121
121
|
readonly LowlevelTrasnportConnectError: 900;
|
|
122
122
|
readonly WebDeviceNotFoundOrNeedsPermission: 901;
|
|
123
123
|
readonly WebDevicePromptAccessError: 902;
|
|
@@ -1 +1 @@
|
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAubpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAmJ7B,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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -54,7 +54,6 @@ type BluetoothDeviceIdentity = {
|
|
|
54
54
|
export declare const normalizeBleUuid: (uuid?: string | null) => string;
|
|
55
55
|
export declare const createKnownBleUuidAliases: (uuid: string) => ReadonlySet<string>;
|
|
56
56
|
export declare const matchesKnownBleUuid: (actualUuid: string | null | undefined, aliases: ReadonlySet<string>) => boolean;
|
|
57
|
-
export declare const isPro2FindMyAdvertisementName: (value?: string | null) => boolean;
|
|
58
57
|
export declare const hasOnekeyCommunicationService: (serviceUuids: Array<string | null | undefined> | null | undefined) => boolean;
|
|
59
58
|
export declare const isOnekeyBluetoothDevice: ({ id, name, localName, serviceUuids, }: BluetoothDeviceIdentity) => boolean;
|
|
60
59
|
export {};
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE7E,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,yBAAyB,eAAgB,wBAAwB,KAAG,OAQhF,CAAC;AAMF,eAAO,MAAM,2BAA2B,mDAS9B,CAAC;AAMX,eAAO,MAAM,8BAA8B,qBAGjC,CAAC;AAGX,oBAAY,qBAAqB;IAE/B,UAAU,uBAAuB;IACjC,iBAAiB,8BAA8B;IAC/C,aAAa,0BAA0B;IACvC,kBAAkB,+BAA+B;IACjD,cAAc,2BAA2B;IACzC,oBAAoB,iCAAiC;IAGrD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IAGrD,aAAa,0BAA0B;IACvC,oBAAoB,iCAAiC;IAGrD,uBAAuB,oCAAoC;IAC3D,sBAAsB,mCAAmC;IAGzD,mBAAmB,gCAAgC;IACnD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IACrD,iBAAiB,8BAA8B;IAC/C,oBAAoB,iCAAiC;IACrD,eAAe,4BAA4B;IAC3C,mBAAmB,gCAAgC;IACnD,qBAAqB,kCAAkC;IACvD,sBAAsB,mCAAmC;IACzD,wBAAwB,qCAAqC;CAC9D;AAED,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAC1E,eAAO,MAAM,gCAAgC,yCAAyC,CAAC;AACvF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAIxF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,UAAU,KAAG,OAa1D,CAAC;AAkBF,eAAO,MAAM,cAAc,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE7E,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,yBAAyB,eAAgB,wBAAwB,KAAG,OAQhF,CAAC;AAMF,eAAO,MAAM,2BAA2B,mDAS9B,CAAC;AAMX,eAAO,MAAM,8BAA8B,qBAGjC,CAAC;AAGX,oBAAY,qBAAqB;IAE/B,UAAU,uBAAuB;IACjC,iBAAiB,8BAA8B;IAC/C,aAAa,0BAA0B;IACvC,kBAAkB,+BAA+B;IACjD,cAAc,2BAA2B;IACzC,oBAAoB,iCAAiC;IAGrD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IAGrD,aAAa,0BAA0B;IACvC,oBAAoB,iCAAiC;IAGrD,uBAAuB,oCAAoC;IAC3D,sBAAsB,mCAAmC;IAGzD,mBAAmB,gCAAgC;IACnD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IACrD,iBAAiB,8BAA8B;IAC/C,oBAAoB,iCAAiC;IACrD,eAAe,4BAA4B;IAC3C,mBAAmB,gCAAgC;IACnD,qBAAqB,kCAAkC;IACvD,sBAAsB,mCAAmC;IACzD,wBAAwB,qCAAqC;CAC9D;AAED,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAC1E,eAAO,MAAM,gCAAgC,yCAAyC,CAAC;AACvF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAIxF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,UAAU,KAAG,OAa1D,CAAC;AAkBF,eAAO,MAAM,cAAc,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,OAsBjE,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;CACxD,CAAC;AAIF,eAAO,MAAM,gBAAgB,UAAW,MAAM,GAAG,IAAI,WACP,CAAC;AAE/C,eAAO,MAAM,yBAAyB,SAAU,MAAM,KAAG,YAAY,MAAM,CAc1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAClB,MAAM,GAAG,IAAI,GAAG,SAAS,WAC5B,YAAY,MAAM,CAAC,YACgB,CAAC;AAQ/C,eAAO,MAAM,6BAA6B,iBAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,YAIhE,CAAC;AAEJ,eAAO,MAAM,uBAAuB,2CAKjC,uBAAuB,KAAG,OAe5B,CAAC"}
|
package/dist/deviceType.d.ts
CHANGED
package/dist/deviceType.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceType.d.ts","sourceRoot":"","sources":["../src/deviceType.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;
|
|
1
|
+
{"version":3,"file":"deviceType.d.ts","sourceRoot":"","sources":["../src/deviceType.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;CACd"}
|
package/dist/index.d.ts
CHANGED
|
@@ -61,7 +61,6 @@ type BluetoothDeviceIdentity = {
|
|
|
61
61
|
declare const normalizeBleUuid: (uuid?: string | null) => string;
|
|
62
62
|
declare const createKnownBleUuidAliases: (uuid: string) => ReadonlySet<string>;
|
|
63
63
|
declare const matchesKnownBleUuid: (actualUuid: string | null | undefined, aliases: ReadonlySet<string>) => boolean;
|
|
64
|
-
declare const isPro2FindMyAdvertisementName: (value?: string | null) => boolean;
|
|
65
64
|
declare const hasOnekeyCommunicationService: (serviceUuids: Array<string | null | undefined> | null | undefined) => boolean;
|
|
66
65
|
declare const isOnekeyBluetoothDevice: ({ id, name, localName, serviceUuids, }: BluetoothDeviceIdentity) => boolean;
|
|
67
66
|
|
|
@@ -426,6 +425,10 @@ declare const HardwareErrorCode: {
|
|
|
426
425
|
* The two PIN entries did not match while setting/changing PIN on device
|
|
427
426
|
*/
|
|
428
427
|
readonly PinMismatch: 828;
|
|
428
|
+
/**
|
|
429
|
+
* Device refused to sign: refTxs don't match the spent input's outpoint
|
|
430
|
+
*/
|
|
431
|
+
readonly KaspaPrevTxIdMismatch: 829;
|
|
429
432
|
/**
|
|
430
433
|
* Protocol V2 device must be unlocked before the requested operation.
|
|
431
434
|
* @params: { failureCode?: string; subcode?: number; firmwareMessage?: string }
|
|
@@ -436,11 +439,6 @@ declare const HardwareErrorCode: {
|
|
|
436
439
|
* @params: { failureCode?: string; subcode?: number; firmwareMessage?: string }
|
|
437
440
|
*/
|
|
438
441
|
readonly WalletSessionInvalid: 831;
|
|
439
|
-
/**
|
|
440
|
-
* Pro2 NFT storage has reached its item limit.
|
|
441
|
-
* @params: { count: number; limit: number }
|
|
442
|
-
*/
|
|
443
|
-
readonly NftStorageLimitReached: 832;
|
|
444
442
|
/**
|
|
445
443
|
* Lowlevel transport connect error
|
|
446
444
|
*/
|
|
@@ -523,8 +521,7 @@ declare enum EDeviceType {
|
|
|
523
521
|
Mini = "mini",
|
|
524
522
|
Touch = "touch",
|
|
525
523
|
Pro = "pro",
|
|
526
|
-
Pro2 = "pro2"
|
|
527
|
-
Neo = "neo"
|
|
524
|
+
Pro2 = "pro2"
|
|
528
525
|
}
|
|
529
526
|
|
|
530
|
-
export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, ERROR_CODES_REQUIRE_DISCONNECT, ERROR_CODES_REQUIRE_RELEASE, HARDWARE_CONNECT_PROTOCOL, HardwareConnectProtocol, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createDeviceNotSupportMethodError, createKnownBleUuidAliases, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, hasOnekeyCommunicationService, isHeaderChunk, isKnownTrezorWebUsbDevice, isOnekeyBluetoothDevice, isOnekeyDevice,
|
|
527
|
+
export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, ERROR_CODES_REQUIRE_DISCONNECT, ERROR_CODES_REQUIRE_RELEASE, HARDWARE_CONNECT_PROTOCOL, HardwareConnectProtocol, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createDeviceNotSupportMethodError, createKnownBleUuidAliases, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, hasOnekeyCommunicationService, isHeaderChunk, isKnownTrezorWebUsbDevice, isOnekeyBluetoothDevice, isOnekeyDevice, matchesKnownBleUuid, normalizeBleUuid, serializeError, wait };
|
package/dist/index.js
CHANGED
|
@@ -164,9 +164,9 @@ const HardwareErrorCode = {
|
|
|
164
164
|
DeviceSettingsLanguageNotSupport: 826,
|
|
165
165
|
TooManyInputs: 827,
|
|
166
166
|
PinMismatch: 828,
|
|
167
|
+
KaspaPrevTxIdMismatch: 829,
|
|
167
168
|
DeviceLocked: 830,
|
|
168
169
|
WalletSessionInvalid: 831,
|
|
169
|
-
NftStorageLimitReached: 832,
|
|
170
170
|
LowlevelTrasnportConnectError: 900,
|
|
171
171
|
WebDeviceNotFoundOrNeedsPermission: 901,
|
|
172
172
|
WebDevicePromptAccessError: 902,
|
|
@@ -272,8 +272,8 @@ const HardwareErrorCodeMessage = {
|
|
|
272
272
|
[HardwareErrorCode.TooManyInputs]: 'Too many inputs',
|
|
273
273
|
[HardwareErrorCode.PinMismatch]: 'PIN mismatch',
|
|
274
274
|
[HardwareErrorCode.DeviceLocked]: 'Device locked',
|
|
275
|
+
[HardwareErrorCode.KaspaPrevTxIdMismatch]: 'Kaspa previous transaction id mismatch',
|
|
275
276
|
[HardwareErrorCode.WalletSessionInvalid]: 'Wallet session is invalid or expired',
|
|
276
|
-
[HardwareErrorCode.NftStorageLimitReached]: 'NFT storage limit reached. Remove an NFT from the device and try again.',
|
|
277
277
|
[HardwareErrorCode.LowlevelTrasnportConnectError]: 'Lowlevel transport connect error',
|
|
278
278
|
[HardwareErrorCode.WebDeviceNotFoundOrNeedsPermission]: 'Web-USB or Web-Bluetooth device not found or needs permission',
|
|
279
279
|
[HardwareErrorCode.WebDevicePromptAccessError]: 'Web-USB or Web-Bluetooth device prompt access error',
|
|
@@ -491,8 +491,7 @@ const isOnekeyDevice = (name, id) => {
|
|
|
491
491
|
return true;
|
|
492
492
|
if (normalizedName.startsWith('touch ') ||
|
|
493
493
|
normalizedName.startsWith('pro ') ||
|
|
494
|
-
normalizedName.startsWith('pro2 ')
|
|
495
|
-
normalizedName.startsWith('neo ')) {
|
|
494
|
+
normalizedName.startsWith('pro2 ')) {
|
|
496
495
|
return true;
|
|
497
496
|
}
|
|
498
497
|
return isOneKeyShortName(normalizedName);
|
|
@@ -515,20 +514,16 @@ const createKnownBleUuidAliases = (uuid) => {
|
|
|
515
514
|
const matchesKnownBleUuid = (actualUuid, aliases) => aliases.has(normalizeBleUuid(actualUuid));
|
|
516
515
|
const ONEKEY_COMMUNICATION_SERVICE_ALIASES = createKnownBleUuidAliases(ONEKEY_SERVICE_UUID);
|
|
517
516
|
const FIDO_SERVICE_ALIASES = createKnownBleUuidAliases('0000fffd-0000-1000-8000-00805f9b34fb');
|
|
518
|
-
const
|
|
519
|
-
var _a;
|
|
520
|
-
const normalizedName = (_a = value === null || value === void 0 ? void 0 : value.trim().toLowerCase()) !== null && _a !== void 0 ? _a : '';
|
|
521
|
-
return /\bpro\s*2\b/.test(normalizedName) && /\bfinde?\s+my\b/.test(normalizedName);
|
|
522
|
-
};
|
|
517
|
+
const isFindMyAdvertisementName = (value) => { var _a; return /\bfinde?\s+my\b/.test((_a = value === null || value === void 0 ? void 0 : value.trim().toLowerCase()) !== null && _a !== void 0 ? _a : ''); };
|
|
523
518
|
const hasOnekeyCommunicationService = (serviceUuids) => (serviceUuids !== null && serviceUuids !== void 0 ? serviceUuids : []).some(uuid => matchesKnownBleUuid(uuid, ONEKEY_COMMUNICATION_SERVICE_ALIASES));
|
|
524
519
|
const isOnekeyBluetoothDevice = ({ id, name, localName, serviceUuids, }) => {
|
|
525
520
|
const advertisedServiceUuids = serviceUuids !== null && serviceUuids !== void 0 ? serviceUuids : [];
|
|
521
|
+
if (isFindMyAdvertisementName(name) || isFindMyAdvertisementName(localName)) {
|
|
522
|
+
return false;
|
|
523
|
+
}
|
|
526
524
|
if (hasOnekeyCommunicationService(advertisedServiceUuids)) {
|
|
527
525
|
return true;
|
|
528
526
|
}
|
|
529
|
-
if (isPro2FindMyAdvertisementName(name) || isPro2FindMyAdvertisementName(localName)) {
|
|
530
|
-
return false;
|
|
531
|
-
}
|
|
532
527
|
if (advertisedServiceUuids.some(uuid => matchesKnownBleUuid(uuid, FIDO_SERVICE_ALIASES))) {
|
|
533
528
|
return false;
|
|
534
529
|
}
|
|
@@ -606,7 +601,6 @@ exports.EDeviceType = void 0;
|
|
|
606
601
|
EDeviceType["Touch"] = "touch";
|
|
607
602
|
EDeviceType["Pro"] = "pro";
|
|
608
603
|
EDeviceType["Pro2"] = "pro2";
|
|
609
|
-
EDeviceType["Neo"] = "neo";
|
|
610
604
|
})(exports.EDeviceType || (exports.EDeviceType = {}));
|
|
611
605
|
|
|
612
606
|
exports.CreateErrorByMessage = CreateErrorByMessage;
|
|
@@ -636,7 +630,6 @@ exports.isHeaderChunk = isHeaderChunk;
|
|
|
636
630
|
exports.isKnownTrezorWebUsbDevice = isKnownTrezorWebUsbDevice;
|
|
637
631
|
exports.isOnekeyBluetoothDevice = isOnekeyBluetoothDevice;
|
|
638
632
|
exports.isOnekeyDevice = isOnekeyDevice;
|
|
639
|
-
exports.isPro2FindMyAdvertisementName = isPro2FindMyAdvertisementName;
|
|
640
633
|
exports.matchesKnownBleUuid = matchesKnownBleUuid;
|
|
641
634
|
exports.normalizeBleUuid = normalizeBleUuid;
|
|
642
635
|
exports.serializeError = serializeError;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-shared",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.67",
|
|
4
4
|
"description": "Hardware SDK's shared tool library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Hardware-SDK",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"lint": "eslint .",
|
|
27
27
|
"lint:fix": "eslint . --fix"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "5fea66e8c65a1fab2ccc099b2811c8749b2487e0"
|
|
30
30
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HardwareErrorCode } from './HardwareError';
|
|
2
2
|
|
|
3
3
|
describe('HardwareErrorCode compatibility', () => {
|
|
4
|
-
test('preserves published
|
|
5
|
-
expect(HardwareErrorCode).
|
|
4
|
+
test('preserves published values when adding Protocol V2 errors', () => {
|
|
5
|
+
expect(HardwareErrorCode.KaspaPrevTxIdMismatch).toBe(829);
|
|
6
6
|
expect(HardwareErrorCode.DeviceLocked).toBe(830);
|
|
7
7
|
expect(HardwareErrorCode.WalletSessionInvalid).toBe(831);
|
|
8
8
|
});
|
package/src/HardwareError.ts
CHANGED
|
@@ -484,6 +484,11 @@ export const HardwareErrorCode = {
|
|
|
484
484
|
*/
|
|
485
485
|
PinMismatch: 828,
|
|
486
486
|
|
|
487
|
+
/**
|
|
488
|
+
* Device refused to sign: refTxs don't match the spent input's outpoint
|
|
489
|
+
*/
|
|
490
|
+
KaspaPrevTxIdMismatch: 829,
|
|
491
|
+
|
|
487
492
|
/**
|
|
488
493
|
* Protocol V2 device must be unlocked before the requested operation.
|
|
489
494
|
* @params: { failureCode?: string; subcode?: number; firmwareMessage?: string }
|
|
@@ -496,12 +501,6 @@ export const HardwareErrorCode = {
|
|
|
496
501
|
*/
|
|
497
502
|
WalletSessionInvalid: 831,
|
|
498
503
|
|
|
499
|
-
/**
|
|
500
|
-
* Pro2 NFT storage has reached its item limit.
|
|
501
|
-
* @params: { count: number; limit: number }
|
|
502
|
-
*/
|
|
503
|
-
NftStorageLimitReached: 832,
|
|
504
|
-
|
|
505
504
|
/**
|
|
506
505
|
* Lowlevel transport connect error
|
|
507
506
|
*/
|
|
@@ -654,9 +653,8 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
|
|
|
654
653
|
[HardwareErrorCode.TooManyInputs]: 'Too many inputs',
|
|
655
654
|
[HardwareErrorCode.PinMismatch]: 'PIN mismatch',
|
|
656
655
|
[HardwareErrorCode.DeviceLocked]: 'Device locked',
|
|
656
|
+
[HardwareErrorCode.KaspaPrevTxIdMismatch]: 'Kaspa previous transaction id mismatch',
|
|
657
657
|
[HardwareErrorCode.WalletSessionInvalid]: 'Wallet session is invalid or expired',
|
|
658
|
-
[HardwareErrorCode.NftStorageLimitReached]:
|
|
659
|
-
'NFT storage limit reached. Remove an NFT from the device and try again.',
|
|
660
658
|
|
|
661
659
|
/**
|
|
662
660
|
* Lowlevel transport
|
package/src/constants.test.ts
CHANGED
|
@@ -11,7 +11,6 @@ describe('hardware device identity filters', () => {
|
|
|
11
11
|
it('accepts known OneKey BLE names', () => {
|
|
12
12
|
expect(isOnekeyDevice('Touch A1B2')).toBe(true);
|
|
13
13
|
expect(isOnekeyDevice('Pro A1B2')).toBe(true);
|
|
14
|
-
expect(isOnekeyDevice('Neo A1B2')).toBe(true);
|
|
15
14
|
expect(isOnekeyDevice('K1234')).toBe(true);
|
|
16
15
|
expect(isOnekeyDevice('S8')).toBe(true);
|
|
17
16
|
});
|
|
@@ -21,14 +20,14 @@ describe('hardware device identity filters', () => {
|
|
|
21
20
|
expect(isOnekeyDevice('Ledger Nano X')).toBe(false);
|
|
22
21
|
});
|
|
23
22
|
|
|
24
|
-
it('does not identify an FFFD
|
|
23
|
+
it('does not identify an unnamed FFFD or Find My advertisement as OneKey', () => {
|
|
25
24
|
expect(isOnekeyBluetoothDevice({ name: 'Find My', serviceUuids: ['fffd'] })).toBe(false);
|
|
26
25
|
expect(
|
|
27
26
|
isOnekeyBluetoothDevice({ serviceUuids: ['0000fffd-0000-1000-8000-00805f9b34fb'] })
|
|
28
27
|
).toBe(false);
|
|
29
28
|
});
|
|
30
29
|
|
|
31
|
-
it('
|
|
30
|
+
it('keeps Pro2 communication advertisements and rejects its Find My advertisement', () => {
|
|
32
31
|
expect(
|
|
33
32
|
isOnekeyBluetoothDevice({
|
|
34
33
|
name: 'Pro2 A1B2',
|
|
@@ -38,33 +37,13 @@ describe('hardware device identity filters', () => {
|
|
|
38
37
|
expect(
|
|
39
38
|
isOnekeyBluetoothDevice({
|
|
40
39
|
localName: 'Pro2 A1B2 - Find My',
|
|
41
|
-
serviceUuids: ['
|
|
42
|
-
})
|
|
43
|
-
).toBe(true);
|
|
44
|
-
expect(
|
|
45
|
-
isOnekeyBluetoothDevice({
|
|
46
|
-
name: 'Pro2 5E9D - Finde My',
|
|
47
|
-
serviceUuids: ['0001', 'fffd'],
|
|
48
|
-
})
|
|
49
|
-
).toBe(true);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('rejects Pro2 Find My entries when the communication service is absent', () => {
|
|
53
|
-
expect(
|
|
54
|
-
isOnekeyBluetoothDevice({
|
|
55
|
-
name: 'Pro2 A1B2 - Find My',
|
|
56
|
-
})
|
|
57
|
-
).toBe(false);
|
|
58
|
-
expect(
|
|
59
|
-
isOnekeyBluetoothDevice({
|
|
60
|
-
localName: 'OneKey Pro 2 A1B2 - Find My',
|
|
61
|
-
serviceUuids: [],
|
|
40
|
+
serviceUuids: ['fffd'],
|
|
62
41
|
})
|
|
63
42
|
).toBe(false);
|
|
64
43
|
expect(
|
|
65
44
|
isOnekeyBluetoothDevice({
|
|
66
45
|
name: 'Pro2 5E9D - Finde My',
|
|
67
|
-
serviceUuids: ['fffd'],
|
|
46
|
+
serviceUuids: ['0001', 'fffd'],
|
|
68
47
|
})
|
|
69
48
|
).toBe(false);
|
|
70
49
|
});
|
package/src/constants.ts
CHANGED
|
@@ -148,8 +148,7 @@ export const isOnekeyDevice = (name: string | null, id?: string): boolean => {
|
|
|
148
148
|
if (
|
|
149
149
|
normalizedName.startsWith('touch ') ||
|
|
150
150
|
normalizedName.startsWith('pro ') ||
|
|
151
|
-
normalizedName.startsWith('pro2 ')
|
|
152
|
-
normalizedName.startsWith('neo ')
|
|
151
|
+
normalizedName.startsWith('pro2 ')
|
|
153
152
|
) {
|
|
154
153
|
return true;
|
|
155
154
|
}
|
|
@@ -192,10 +191,8 @@ export const matchesKnownBleUuid = (
|
|
|
192
191
|
const ONEKEY_COMMUNICATION_SERVICE_ALIASES = createKnownBleUuidAliases(ONEKEY_SERVICE_UUID);
|
|
193
192
|
const FIDO_SERVICE_ALIASES = createKnownBleUuidAliases('0000fffd-0000-1000-8000-00805f9b34fb');
|
|
194
193
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
return /\bpro\s*2\b/.test(normalizedName) && /\bfinde?\s+my\b/.test(normalizedName);
|
|
198
|
-
};
|
|
194
|
+
const isFindMyAdvertisementName = (value?: string | null) =>
|
|
195
|
+
/\bfinde?\s+my\b/.test(value?.trim().toLowerCase() ?? '');
|
|
199
196
|
|
|
200
197
|
export const hasOnekeyCommunicationService = (
|
|
201
198
|
serviceUuids: Array<string | null | undefined> | null | undefined
|
|
@@ -211,14 +208,12 @@ export const isOnekeyBluetoothDevice = ({
|
|
|
211
208
|
serviceUuids,
|
|
212
209
|
}: BluetoothDeviceIdentity): boolean => {
|
|
213
210
|
const advertisedServiceUuids = serviceUuids ?? [];
|
|
214
|
-
if (
|
|
215
|
-
return
|
|
211
|
+
if (isFindMyAdvertisementName(name) || isFindMyAdvertisementName(localName)) {
|
|
212
|
+
return false;
|
|
216
213
|
}
|
|
217
214
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
if (isPro2FindMyAdvertisementName(name) || isPro2FindMyAdvertisementName(localName)) {
|
|
221
|
-
return false;
|
|
215
|
+
if (hasOnekeyCommunicationService(advertisedServiceUuids)) {
|
|
216
|
+
return true;
|
|
222
217
|
}
|
|
223
218
|
|
|
224
219
|
if (advertisedServiceUuids.some(uuid => matchesKnownBleUuid(uuid, FIDO_SERVICE_ALIASES))) {
|