@onekeyfe/hd-core 0.1.52 → 0.1.54
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/api/FirmwareUpdateV2.d.ts +16 -0
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -0
- package/dist/api/aptos/AptosGetAddress.d.ts +2 -2
- package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
- package/dist/api/firmware/getBinary.d.ts.map +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
- package/dist/api/helpers/hexUtils.d.ts +2 -0
- package/dist/api/helpers/hexUtils.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/constants/ui-request.d.ts +1 -0
- package/dist/constants/ui-request.d.ts.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +11 -1
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +16 -2
- package/dist/index.js +186 -5
- package/dist/inject.d.ts.map +1 -1
- package/dist/types/api/aptosGetAddress.d.ts +1 -0
- package/dist/types/api/aptosGetAddress.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +1 -0
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/utils/deviceFeaturesUtils.d.ts +1 -0
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/api/FirmwareUpdateV2.ts +166 -0
- package/src/api/aptos/AptosGetAddress.ts +26 -2
- package/src/api/firmware/getBinary.ts +1 -4
- package/src/api/firmware/uploadFirmware.ts +19 -0
- package/src/api/helpers/hexUtils.ts +33 -0
- package/src/api/index.ts +1 -0
- package/src/constants/ui-request.ts +2 -0
- package/src/core/index.ts +6 -1
- package/src/events/ui-request.ts +11 -1
- package/src/inject.ts +2 -0
- package/src/types/api/aptosGetAddress.ts +1 -0
- package/src/types/api/index.ts +1 -0
- package/src/utils/deviceFeaturesUtils.ts +14 -0
- package/src/utils/index.ts +5 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Deferred } from '@onekeyfe/hd-shared';
|
|
2
|
+
import { BaseMethod } from './BaseMethod';
|
|
3
|
+
declare type Params = {
|
|
4
|
+
binary?: ArrayBuffer;
|
|
5
|
+
version?: number[];
|
|
6
|
+
updateType: 'firmware' | 'ble';
|
|
7
|
+
};
|
|
8
|
+
export default class FirmwareUpdate extends BaseMethod<Params> {
|
|
9
|
+
checkPromise: Deferred<any> | null;
|
|
10
|
+
init(): void;
|
|
11
|
+
postTipMessage: (message: string) => void;
|
|
12
|
+
checkDeviceToBootloader(): void;
|
|
13
|
+
run(): Promise<import("packages/hd-transport/dist").Success>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=FirmwareUpdateV2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAA6B,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C,aAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC5D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAoCJ,cAAc,YAAa,MAAM,UAS/B;IAEF,uBAAuB;IA6BjB,GAAG;CAqEV"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AptosGetAddress as HardwareAptosGetAddress } from '@onekeyfe/hd-transport';
|
|
2
2
|
import { BaseMethod } from '../BaseMethod';
|
|
3
|
-
import { AptosAddress } from '../../types';
|
|
4
3
|
export default class AptosGetAddress extends BaseMethod<HardwareAptosGetAddress[]> {
|
|
5
4
|
hasBundle: boolean;
|
|
6
5
|
init(): void;
|
|
7
|
-
|
|
6
|
+
publicKeyToAddress(publicKey: string): string;
|
|
7
|
+
run(): Promise<any>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=AptosGetAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AptosGetAddress.d.ts","sourceRoot":"","sources":["../../../src/api/aptos/AptosGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AptosGetAddress.d.ts","sourceRoot":"","sources":["../../../src/api/aptos/AptosGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAChF,SAAS,UAAS;IAElB,IAAI;IA6BJ,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAO9B,GAAG;CAkCV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,sCAA6C,cAAc;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,sCAA6C,cAAc;;;;;;;;;;;;;;;;;;;;;;EAwBhF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadFirmware.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/uploadFirmware.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,WAAW,EAA+B,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"uploadFirmware.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/uploadFirmware.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,WAAW,EAA+B,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAsC7D,eAAO,MAAM,cAAc,eACb,UAAU,GAAG,KAAK,aACnB,SAAS,yBACG,WAAW,KAAK,IAAI,UACnC,MAAM,eACD,MAAM,cAAc,0DA4ClC,CAAC"}
|
|
@@ -4,4 +4,6 @@ export declare const addHexPrefix: (str: string) => string;
|
|
|
4
4
|
export declare const isHexString: (value: string, length?: number | undefined) => boolean;
|
|
5
5
|
export declare const stripHexStartZeroes: (str: string) => string;
|
|
6
6
|
export declare const formatAnyHex: (value: any) => any;
|
|
7
|
+
export declare function bytesToHex(uint8a: Uint8Array): string;
|
|
8
|
+
export declare function hexToBytes(hex: string): Uint8Array;
|
|
7
9
|
//# sourceMappingURL=hexUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hexUtils.d.ts","sourceRoot":"","sources":["../../../src/api/helpers/hexUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,OAAiD,CAAC;AAG7F,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAAkD,CAAC;AAGhG,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,MAAgD,CAAC;AAE5F,eAAO,MAAM,WAAW,UAAW,MAAM,yCAQxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,MAAM,WAK9C,CAAC;AAQF,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAiB1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"hexUtils.d.ts","sourceRoot":"","sources":["../../../src/api/helpers/hexUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,OAAiD,CAAC;AAG7F,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAAkD,CAAC;AAGhG,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,MAAgD,CAAC;AAE5F,eAAO,MAAM,WAAW,UAAW,MAAM,yCAQxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,MAAM,WAK9C,CAAC;AAQF,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAiB1C,CAAC;AAMF,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAQrD;AAKD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAclD"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { default as deviceSupportFeatures } from './device/DeviceSupportFeatures
|
|
|
18
18
|
export { default as deviceVerify } from './device/DeviceVerify';
|
|
19
19
|
export { default as deviceWipe } from './device/DeviceWipe';
|
|
20
20
|
export { default as firmwareUpdate } from './FirmwareUpdate';
|
|
21
|
+
export { default as firmwareUpdateV2 } from './FirmwareUpdateV2';
|
|
21
22
|
export { default as requestWebUsbDevice } from './RequestWebUsbDevice';
|
|
22
23
|
export { default as batchGetPublicKey } from './BatchGetPublicKey';
|
|
23
24
|
export { default as cipherKeyValue } from './CipherKeyValue';
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ export declare const UI_REQUEST: {
|
|
|
9
9
|
readonly FIRMWARE_NOT_COMPATIBLE: "ui-device_firmware_not_compatible";
|
|
10
10
|
readonly FIRMWARE_NOT_INSTALLED: "ui-device_firmware_not_installed";
|
|
11
11
|
readonly NOT_USE_ONEKEY_DEVICE: "ui-device_please_use_onekey_device";
|
|
12
|
+
readonly FIRMWARE_TIP: "ui-firmware-tip";
|
|
12
13
|
};
|
|
13
14
|
//# sourceMappingURL=ui-request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/constants/ui-request.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/constants/ui-request.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC"}
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAqBlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AA2BxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBA0PjD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAqBlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AA2BxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBA0PjD,CAAC;AAgLF,eAAO,MAAM,MAAM,0CAkBlB,CAAC;AA8IF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IA8CxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAIzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAmBnE,CAAC"}
|
|
@@ -14,6 +14,7 @@ export declare const UI_REQUEST: {
|
|
|
14
14
|
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
15
15
|
readonly LOCATION_SERVICE_PERMISSION: "ui-location_service_permission";
|
|
16
16
|
readonly FIRMWARE_PROGRESS: "ui-firmware-progress";
|
|
17
|
+
readonly FIRMWARE_TIP: "ui-firmware-tip";
|
|
17
18
|
readonly NOT_IN_BOOTLOADER: "ui-device_not_in_bootloader_mode";
|
|
18
19
|
};
|
|
19
20
|
export interface UiRequestWithoutPayload {
|
|
@@ -52,7 +53,16 @@ export interface FirmwareProgress {
|
|
|
52
53
|
progress: number;
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
|
-
export
|
|
56
|
+
export interface FirmwareTip {
|
|
57
|
+
type: typeof UI_REQUEST.FIRMWARE_TIP;
|
|
58
|
+
payload: {
|
|
59
|
+
device: Device;
|
|
60
|
+
data: {
|
|
61
|
+
message: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | FirmwareProgress | FirmwareTip;
|
|
56
66
|
export declare type UiEventMessage = UiEvent & {
|
|
57
67
|
event: typeof UI_EVENT;
|
|
58
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAiBb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,2BAA2B,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC;CAC5B;AAED,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,UAAU,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,UAAU,CAAC,4BAA4B,CAAC;IACrD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,UAAU,CAAC,iBAAiB,CAAC;IAC1C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,UAAU,CAAC,YAAY,CAAC;IACrC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B,CAAC;CACH;AAED,oBAAY,OAAO,GACf,uBAAuB,GACvB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,mBAAmB,GACnB,gBAAgB,GAChB,WAAW,CAAC;AAEhB,oBAAY,cAAc,GAAG,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,QAAQ,EAAE,OAAO,CAK5D,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1030,6 +1030,7 @@ declare function nearSignTransaction(connectId: string, deviceId: string, params
|
|
|
1030
1030
|
|
|
1031
1031
|
declare type AptosAddress = {
|
|
1032
1032
|
path: string;
|
|
1033
|
+
publicKey?: string;
|
|
1033
1034
|
} & AptosAddress$1;
|
|
1034
1035
|
declare type AptosGetAddressParams = {
|
|
1035
1036
|
path: string | number[];
|
|
@@ -1079,6 +1080,7 @@ declare type CoreApi = {
|
|
|
1079
1080
|
checkFirmwareRelease: typeof checkFirmwareRelease;
|
|
1080
1081
|
checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
|
|
1081
1082
|
firmwareUpdate: typeof firmwareUpdate;
|
|
1083
|
+
firmwareUpdateV2: typeof firmwareUpdate;
|
|
1082
1084
|
batchGetPublicKey: typeof batchGetPublicKey;
|
|
1083
1085
|
cipherKeyValue: typeof cipherKeyValue;
|
|
1084
1086
|
evmGetAddress: typeof evmGetAddress;
|
|
@@ -1205,6 +1207,7 @@ declare const UI_REQUEST: {
|
|
|
1205
1207
|
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
1206
1208
|
readonly LOCATION_SERVICE_PERMISSION: "ui-location_service_permission";
|
|
1207
1209
|
readonly FIRMWARE_PROGRESS: "ui-firmware-progress";
|
|
1210
|
+
readonly FIRMWARE_TIP: "ui-firmware-tip";
|
|
1208
1211
|
readonly NOT_IN_BOOTLOADER: "ui-device_not_in_bootloader_mode";
|
|
1209
1212
|
};
|
|
1210
1213
|
interface UiRequestWithoutPayload {
|
|
@@ -1243,7 +1246,16 @@ interface FirmwareProgress {
|
|
|
1243
1246
|
progress: number;
|
|
1244
1247
|
};
|
|
1245
1248
|
}
|
|
1246
|
-
|
|
1249
|
+
interface FirmwareTip {
|
|
1250
|
+
type: typeof UI_REQUEST.FIRMWARE_TIP;
|
|
1251
|
+
payload: {
|
|
1252
|
+
device: Device$1;
|
|
1253
|
+
data: {
|
|
1254
|
+
message: string;
|
|
1255
|
+
};
|
|
1256
|
+
};
|
|
1257
|
+
}
|
|
1258
|
+
declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | FirmwareProgress | FirmwareTip;
|
|
1247
1259
|
declare type UiEventMessage = UiEvent & {
|
|
1248
1260
|
event: typeof UI_EVENT;
|
|
1249
1261
|
};
|
|
@@ -1618,6 +1630,8 @@ declare enum LoggerNames {
|
|
|
1618
1630
|
}
|
|
1619
1631
|
declare const getLogger: (key: LoggerNames) => Log;
|
|
1620
1632
|
|
|
1633
|
+
declare const wait: (ms: number) => Promise<unknown>;
|
|
1634
|
+
|
|
1621
1635
|
declare const getSDKVersion: () => any;
|
|
1622
1636
|
|
|
1623
1637
|
declare const DEFAULT_PRIORITY = 2;
|
|
@@ -1656,4 +1670,4 @@ declare class DataManager {
|
|
|
1656
1670
|
|
|
1657
1671
|
declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, cancel, }: InjectApi) => CoreApi;
|
|
1658
1672
|
|
|
1659
|
-
export { AccountAddress, AccountAddresses, AptosAddress, AptosGetAddressParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BleReleaseInfoEvent, BleReleaseInfoPayload, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesPayload, DeviceFirmwareRange, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendSupportFeatures, DeviceSettingsParams, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceVerifyParams, DeviceVerifySignature, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FirmwareEvent, FirmwareMessage, FirmwareProgress, FirmwareRange, FirmwareRelease$1 as FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, LOG, LOG_EVENT, LogEvent, LogEventMessage, LogOutput, LoggerNames, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, Params, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SupportFeatureType, SupportFeatures, TransactionOptions, TransportReleaseStatus, TronAddress, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getEnv, getHDPath, getLog, getLogger, getSDKVersion, getScriptType, getTimeStamp, httpRequest, init as initCore, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, patchFeatures, safeThrowError, setLoggerPostMessage, versionCompare, versionSplit };
|
|
1673
|
+
export { AccountAddress, AccountAddresses, AptosAddress, AptosGetAddressParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BleReleaseInfoEvent, BleReleaseInfoPayload, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesPayload, DeviceFirmwareRange, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendSupportFeatures, DeviceSettingsParams, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceVerifyParams, DeviceVerifySignature, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FirmwareEvent, FirmwareMessage, FirmwareProgress, FirmwareRange, FirmwareRelease$1 as FirmwareRelease, FirmwareTip, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, LOG, LOG_EVENT, LogEvent, LogEventMessage, LogOutput, LoggerNames, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, Params, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SupportFeatureType, SupportFeatures, TransactionOptions, TransportReleaseStatus, TronAddress, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getEnv, getHDPath, getLog, getLogger, getSDKVersion, getScriptType, getTimeStamp, httpRequest, init as initCore, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, patchFeatures, safeThrowError, setLoggerPostMessage, versionCompare, versionSplit, wait };
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ var axios = require('axios');
|
|
|
8
8
|
var BigNumber = require('bignumber.js');
|
|
9
9
|
var sha256 = require('js-sha256');
|
|
10
10
|
var hdTransport = require('@onekeyfe/hd-transport');
|
|
11
|
+
var sha3 = require('js-sha3');
|
|
11
12
|
|
|
12
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
14
|
|
|
@@ -15,6 +16,7 @@ var semver__default = /*#__PURE__*/_interopDefaultLegacy(semver);
|
|
|
15
16
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
16
17
|
var BigNumber__default = /*#__PURE__*/_interopDefaultLegacy(BigNumber);
|
|
17
18
|
var sha256__default = /*#__PURE__*/_interopDefaultLegacy(sha256);
|
|
19
|
+
var sha3__default = /*#__PURE__*/_interopDefaultLegacy(sha3);
|
|
18
20
|
|
|
19
21
|
const inject = ({ call, cancel, dispose, eventEmitter, init, uiResponse, }) => {
|
|
20
22
|
const api = {
|
|
@@ -77,6 +79,7 @@ const inject = ({ call, cancel, dispose, eventEmitter, init, uiResponse, }) => {
|
|
|
77
79
|
stellarGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'stellarGetAddress' })),
|
|
78
80
|
stellarSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'stellarSignTransaction' })),
|
|
79
81
|
firmwareUpdate: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'firmwareUpdate' })),
|
|
82
|
+
firmwareUpdateV2: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'firmwareUpdateV2' })),
|
|
80
83
|
requestWebUsbDevice: () => call({ method: 'requestWebUsbDevice' }),
|
|
81
84
|
tronGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'tronGetAddress' })),
|
|
82
85
|
tronSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'tronSignMessage' })),
|
|
@@ -832,6 +835,12 @@ const getPassphraseState = (features, commands) => __awaiter(void 0, void 0, voi
|
|
|
832
835
|
});
|
|
833
836
|
return message.address;
|
|
834
837
|
});
|
|
838
|
+
const supportBatchPublicKey = (features) => {
|
|
839
|
+
if (!features)
|
|
840
|
+
return false;
|
|
841
|
+
const currentVersion = getDeviceFirmwareVersion(features).join('.');
|
|
842
|
+
return semver__default["default"].gte(currentVersion, '2.6.0');
|
|
843
|
+
};
|
|
835
844
|
|
|
836
845
|
var nested = {
|
|
837
846
|
AptosGetAddress: {
|
|
@@ -10330,6 +10339,10 @@ const LoggerMap = {
|
|
|
10330
10339
|
};
|
|
10331
10340
|
const getLogger = (key) => LoggerMap[key];
|
|
10332
10341
|
|
|
10342
|
+
const wait = (ms) => new Promise(resolve => {
|
|
10343
|
+
setTimeout(resolve, ms);
|
|
10344
|
+
});
|
|
10345
|
+
|
|
10333
10346
|
const getReleaseStatus = (releases, currentVersion) => {
|
|
10334
10347
|
const newVersions = releases.filter(r => semver__default["default"].gt(r.version.join('.'), currentVersion));
|
|
10335
10348
|
if (newVersions.length === 0) {
|
|
@@ -10509,6 +10522,7 @@ const UI_REQUEST$1 = {
|
|
|
10509
10522
|
LOCATION_PERMISSION: 'ui-location_permission',
|
|
10510
10523
|
LOCATION_SERVICE_PERMISSION: 'ui-location_service_permission',
|
|
10511
10524
|
FIRMWARE_PROGRESS: 'ui-firmware-progress',
|
|
10525
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
10512
10526
|
NOT_IN_BOOTLOADER: 'ui-device_not_in_bootloader_mode',
|
|
10513
10527
|
};
|
|
10514
10528
|
const createUiMessage = (type, payload) => ({
|
|
@@ -11059,6 +11073,7 @@ const UI_REQUEST = {
|
|
|
11059
11073
|
FIRMWARE_NOT_COMPATIBLE: 'ui-device_firmware_not_compatible',
|
|
11060
11074
|
FIRMWARE_NOT_INSTALLED: 'ui-device_firmware_not_installed',
|
|
11061
11075
|
NOT_USE_ONEKEY_DEVICE: 'ui-device_please_use_onekey_device',
|
|
11076
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
11062
11077
|
};
|
|
11063
11078
|
|
|
11064
11079
|
const pkg = require('../package.json');
|
|
@@ -11867,6 +11882,24 @@ const formatAnyHex = value => {
|
|
|
11867
11882
|
}
|
|
11868
11883
|
return value;
|
|
11869
11884
|
};
|
|
11885
|
+
Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
|
|
11886
|
+
function hexToBytes(hex) {
|
|
11887
|
+
if (typeof hex !== 'string') {
|
|
11888
|
+
throw new TypeError(`hexToBytes: expected string, got ${typeof hex}`);
|
|
11889
|
+
}
|
|
11890
|
+
if (hex.length % 2)
|
|
11891
|
+
throw new Error('hexToBytes: received invalid unpadded hex');
|
|
11892
|
+
const array = new Uint8Array(hex.length / 2);
|
|
11893
|
+
for (let i = 0; i < array.length; i++) {
|
|
11894
|
+
const j = i * 2;
|
|
11895
|
+
const hexByte = hex.slice(j, j + 2);
|
|
11896
|
+
const byte = Number.parseInt(hexByte, 16);
|
|
11897
|
+
if (Number.isNaN(byte) || byte < 0)
|
|
11898
|
+
throw new Error('Invalid byte sequence');
|
|
11899
|
+
array[i] = byte;
|
|
11900
|
+
}
|
|
11901
|
+
return array;
|
|
11902
|
+
}
|
|
11870
11903
|
|
|
11871
11904
|
const invalidParameter = (message) => hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, message);
|
|
11872
11905
|
const validateParams = (values, fields) => {
|
|
@@ -12168,8 +12201,7 @@ const getBinary = ({ features, updateType, version }) => __awaiter(void 0, void
|
|
|
12168
12201
|
if (!releaseInfo) {
|
|
12169
12202
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'no firmware found for this device');
|
|
12170
12203
|
}
|
|
12171
|
-
if (version &&
|
|
12172
|
-
!semver__default["default"].eq(releaseInfo.version, version)) {
|
|
12204
|
+
if (version && !semver__default["default"].eq(releaseInfo.version.join('.'), version.join('.'))) {
|
|
12173
12205
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'firmware version mismatch');
|
|
12174
12206
|
}
|
|
12175
12207
|
const url = updateType === 'ble' ? releaseInfo.webUpdate : releaseInfo.url;
|
|
@@ -12202,12 +12234,22 @@ const postProgressMessage = (device, progress, postMessage) => {
|
|
|
12202
12234
|
progress,
|
|
12203
12235
|
}));
|
|
12204
12236
|
};
|
|
12237
|
+
const postProgressTip = (device, message, postMessage) => {
|
|
12238
|
+
postMessage(createUiMessage(UI_REQUEST$1.FIRMWARE_TIP, {
|
|
12239
|
+
device: device.toMessageObject(),
|
|
12240
|
+
data: {
|
|
12241
|
+
message,
|
|
12242
|
+
},
|
|
12243
|
+
}));
|
|
12244
|
+
};
|
|
12205
12245
|
const uploadFirmware = (updateType, typedCall, postMessage, device, { payload }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12206
12246
|
var _a, _b;
|
|
12207
12247
|
if (((_a = device.features) === null || _a === void 0 ? void 0 : _a.major_version) === 1) {
|
|
12208
12248
|
postConfirmationMessage(device);
|
|
12249
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
12209
12250
|
const eraseCommand = updateType === 'firmware' ? 'FirmwareErase' : 'FirmwareErase_ex';
|
|
12210
12251
|
yield typedCall(eraseCommand, 'Success', {});
|
|
12252
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
12211
12253
|
postProgressMessage(device, 0, postMessage);
|
|
12212
12254
|
const { message } = yield typedCall('FirmwareUpload', 'Success', {
|
|
12213
12255
|
payload,
|
|
@@ -12217,8 +12259,10 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload })
|
|
|
12217
12259
|
}
|
|
12218
12260
|
if (((_b = device.features) === null || _b === void 0 ? void 0 : _b.major_version) === 2) {
|
|
12219
12261
|
postConfirmationMessage(device);
|
|
12262
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
12220
12263
|
const length = payload.byteLength;
|
|
12221
12264
|
let response = yield typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
|
|
12265
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
12222
12266
|
while (response.type !== 'Success') {
|
|
12223
12267
|
const start = response.message.offset;
|
|
12224
12268
|
const end = response.message.offset + response.message.length;
|
|
@@ -12236,7 +12280,7 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload })
|
|
|
12236
12280
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'uploadFirmware: unknown major_version');
|
|
12237
12281
|
});
|
|
12238
12282
|
|
|
12239
|
-
class FirmwareUpdate extends BaseMethod {
|
|
12283
|
+
class FirmwareUpdate$1 extends BaseMethod {
|
|
12240
12284
|
init() {
|
|
12241
12285
|
this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
|
|
12242
12286
|
this.requireDeviceMode = [UI_REQUEST.BOOTLOADER];
|
|
@@ -12286,6 +12330,118 @@ class FirmwareUpdate extends BaseMethod {
|
|
|
12286
12330
|
}
|
|
12287
12331
|
}
|
|
12288
12332
|
|
|
12333
|
+
class FirmwareUpdate extends BaseMethod {
|
|
12334
|
+
constructor() {
|
|
12335
|
+
super(...arguments);
|
|
12336
|
+
this.checkPromise = null;
|
|
12337
|
+
this.postTipMessage = (message) => {
|
|
12338
|
+
this.postMessage(createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
|
|
12339
|
+
device: this.device.toMessageObject(),
|
|
12340
|
+
data: {
|
|
12341
|
+
message,
|
|
12342
|
+
},
|
|
12343
|
+
}));
|
|
12344
|
+
};
|
|
12345
|
+
}
|
|
12346
|
+
init() {
|
|
12347
|
+
this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
|
|
12348
|
+
this.requireDeviceMode = [];
|
|
12349
|
+
this.useDevicePassphraseState = false;
|
|
12350
|
+
const { payload } = this;
|
|
12351
|
+
validateParams(payload, [
|
|
12352
|
+
{ name: 'version', type: 'array' },
|
|
12353
|
+
{ name: 'binary', type: 'buffer' },
|
|
12354
|
+
]);
|
|
12355
|
+
if (!payload.updateType) {
|
|
12356
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'updateType is required');
|
|
12357
|
+
}
|
|
12358
|
+
this.params = { updateType: payload.updateType };
|
|
12359
|
+
if ('version' in payload) {
|
|
12360
|
+
this.params = Object.assign(Object.assign({}, this.params), { version: payload.version });
|
|
12361
|
+
}
|
|
12362
|
+
if ('binary' in payload) {
|
|
12363
|
+
this.params = Object.assign(Object.assign({}, this.params), { binary: payload.binary });
|
|
12364
|
+
}
|
|
12365
|
+
}
|
|
12366
|
+
checkDeviceToBootloader() {
|
|
12367
|
+
this.checkPromise = hdShared.createDeferred();
|
|
12368
|
+
const intervalTimer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
12369
|
+
var _a, _b, _c, _d;
|
|
12370
|
+
const deviceDiff = yield ((_a = this.device.deviceConnector) === null || _a === void 0 ? void 0 : _a.enumerate());
|
|
12371
|
+
const devicesDescriptor = (_b = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _b !== void 0 ? _b : [];
|
|
12372
|
+
const { deviceList } = yield DevicePool.getDevices(devicesDescriptor, this.connectId);
|
|
12373
|
+
console.log('device list: ', deviceList);
|
|
12374
|
+
if (deviceList.length === 1 && ((_c = deviceList[0].features) === null || _c === void 0 ? void 0 : _c.bootloader_mode)) {
|
|
12375
|
+
this.device.updateFromCache(deviceList[0]);
|
|
12376
|
+
this.device.commands.disposed = false;
|
|
12377
|
+
clearInterval(intervalTimer);
|
|
12378
|
+
(_d = this.checkPromise) === null || _d === void 0 ? void 0 : _d.resolve(true);
|
|
12379
|
+
}
|
|
12380
|
+
}), 2000);
|
|
12381
|
+
setTimeout(() => {
|
|
12382
|
+
if (this.checkPromise) {
|
|
12383
|
+
clearInterval(intervalTimer);
|
|
12384
|
+
this.checkPromise.reject(new Error());
|
|
12385
|
+
}
|
|
12386
|
+
}, 30000);
|
|
12387
|
+
}
|
|
12388
|
+
run() {
|
|
12389
|
+
var _a, _b;
|
|
12390
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
12391
|
+
const { device, params } = this;
|
|
12392
|
+
const { features, commands } = device;
|
|
12393
|
+
if (!(features === null || features === void 0 ? void 0 : features.bootloader_mode)) {
|
|
12394
|
+
const uuid = getDeviceUUID(features);
|
|
12395
|
+
const deviceType = getDeviceType(features);
|
|
12396
|
+
if (deviceType === 'mini') {
|
|
12397
|
+
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceUnexpectedBootloaderMode));
|
|
12398
|
+
}
|
|
12399
|
+
try {
|
|
12400
|
+
this.postTipMessage('AutoRebootToBootloader');
|
|
12401
|
+
yield commands.typedCall('BixinReboot', 'Success');
|
|
12402
|
+
this.postTipMessage('GoToBootloaderSuccess');
|
|
12403
|
+
this.checkDeviceToBootloader();
|
|
12404
|
+
if (deviceType === 'classic') {
|
|
12405
|
+
DevicePool.clearDeviceCache(uuid);
|
|
12406
|
+
}
|
|
12407
|
+
delete DevicePool.devicesCache[''];
|
|
12408
|
+
yield ((_a = this.checkPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
12409
|
+
this.checkPromise = null;
|
|
12410
|
+
yield wait(1500);
|
|
12411
|
+
}
|
|
12412
|
+
catch (e) {
|
|
12413
|
+
console.log('auto go to bootloader mode failed: ', e);
|
|
12414
|
+
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'go to bootloader mode failed'));
|
|
12415
|
+
}
|
|
12416
|
+
}
|
|
12417
|
+
let binary;
|
|
12418
|
+
try {
|
|
12419
|
+
if (params.binary) {
|
|
12420
|
+
binary = this.params.binary;
|
|
12421
|
+
}
|
|
12422
|
+
else {
|
|
12423
|
+
if (!device.features) {
|
|
12424
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'no features found for this device');
|
|
12425
|
+
}
|
|
12426
|
+
this.postTipMessage('DownloadFirmware');
|
|
12427
|
+
const firmware = yield getBinary({
|
|
12428
|
+
features: device.features,
|
|
12429
|
+
version: params.version,
|
|
12430
|
+
updateType: params.updateType,
|
|
12431
|
+
});
|
|
12432
|
+
binary = firmware.binary;
|
|
12433
|
+
this.postTipMessage('DownloadFirmwareSuccess');
|
|
12434
|
+
}
|
|
12435
|
+
}
|
|
12436
|
+
catch (err) {
|
|
12437
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, (_b = err.message) !== null && _b !== void 0 ? _b : err);
|
|
12438
|
+
}
|
|
12439
|
+
yield this.device.acquire();
|
|
12440
|
+
return uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary });
|
|
12441
|
+
});
|
|
12442
|
+
}
|
|
12443
|
+
}
|
|
12444
|
+
|
|
12289
12445
|
const Log$2 = getLogger(exports.LoggerNames.Method);
|
|
12290
12446
|
class RequestWebUsbDevice extends BaseMethod {
|
|
12291
12447
|
init() {
|
|
@@ -14863,6 +15019,7 @@ class NearSignTransaction extends BaseMethod {
|
|
|
14863
15019
|
}
|
|
14864
15020
|
}
|
|
14865
15021
|
|
|
15022
|
+
const { sha3_256: sha3Hash } = sha3__default["default"];
|
|
14866
15023
|
class AptosGetAddress extends BaseMethod {
|
|
14867
15024
|
constructor() {
|
|
14868
15025
|
super(...arguments);
|
|
@@ -14890,8 +15047,27 @@ class AptosGetAddress extends BaseMethod {
|
|
|
14890
15047
|
});
|
|
14891
15048
|
});
|
|
14892
15049
|
}
|
|
15050
|
+
publicKeyToAddress(publicKey) {
|
|
15051
|
+
const hash = sha3Hash.create();
|
|
15052
|
+
hash.update(hexToBytes(publicKey));
|
|
15053
|
+
hash.update("\x00");
|
|
15054
|
+
return hash.hex();
|
|
15055
|
+
}
|
|
14893
15056
|
run() {
|
|
15057
|
+
var _a;
|
|
14894
15058
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15059
|
+
if (this.hasBundle && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features)) {
|
|
15060
|
+
const res = yield this.device.commands.typedCall('BatchGetPublickeys', 'EcdsaPublicKeys', {
|
|
15061
|
+
paths: this.params,
|
|
15062
|
+
ecdsa_curve_name: 'ed25519',
|
|
15063
|
+
});
|
|
15064
|
+
const result = res.message.public_keys.map((publicKey, index) => ({
|
|
15065
|
+
path: serializedPath(this.params[index].address_n),
|
|
15066
|
+
publicKey,
|
|
15067
|
+
address: this.publicKeyToAddress(publicKey),
|
|
15068
|
+
}));
|
|
15069
|
+
return Promise.resolve(result);
|
|
15070
|
+
}
|
|
14895
15071
|
const responses = [];
|
|
14896
15072
|
for (let i = 0; i < this.params.length; i++) {
|
|
14897
15073
|
const param = this.params[i];
|
|
@@ -14958,7 +15134,8 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
|
14958
15134
|
deviceSupportFeatures: DeviceSupportFeatures,
|
|
14959
15135
|
deviceVerify: DeviceVerify,
|
|
14960
15136
|
deviceWipe: DeviceWipe,
|
|
14961
|
-
firmwareUpdate: FirmwareUpdate,
|
|
15137
|
+
firmwareUpdate: FirmwareUpdate$1,
|
|
15138
|
+
firmwareUpdateV2: FirmwareUpdate,
|
|
14962
15139
|
requestWebUsbDevice: RequestWebUsbDevice,
|
|
14963
15140
|
batchGetPublicKey: BatchGetPublicKey,
|
|
14964
15141
|
cipherKeyValue: CipherKeyValue,
|
|
@@ -15338,7 +15515,9 @@ function initDevice(method) {
|
|
|
15338
15515
|
[device] = allDevices;
|
|
15339
15516
|
}
|
|
15340
15517
|
else if (allDevices.length > 1) {
|
|
15341
|
-
throw hdShared.ERRORS.TypedError(
|
|
15518
|
+
throw hdShared.ERRORS.TypedError(method.name === 'firmwareUpdateV2'
|
|
15519
|
+
? hdShared.HardwareErrorCode.FirmwareUpdateLimitOneDevice
|
|
15520
|
+
: hdShared.HardwareErrorCode.SelectDevice);
|
|
15342
15521
|
}
|
|
15343
15522
|
if (!device) {
|
|
15344
15523
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotFound);
|
|
@@ -15431,6 +15610,7 @@ const ensureConnected = (method, pollingId) => __awaiter(void 0, void 0, void 0,
|
|
|
15431
15610
|
hdShared.HardwareErrorCode.BleCharacteristicNotifyError,
|
|
15432
15611
|
hdShared.HardwareErrorCode.BleWriteCharacteristicError,
|
|
15433
15612
|
hdShared.HardwareErrorCode.BleAlreadyConnected,
|
|
15613
|
+
hdShared.HardwareErrorCode.FirmwareUpdateLimitOneDevice,
|
|
15434
15614
|
].includes(error.errorCode)) {
|
|
15435
15615
|
reject(error);
|
|
15436
15616
|
return;
|
|
@@ -15701,3 +15881,4 @@ exports.safeThrowError = safeThrowError;
|
|
|
15701
15881
|
exports.setLoggerPostMessage = setLoggerPostMessage;
|
|
15702
15882
|
exports.versionCompare = versionCompare;
|
|
15703
15883
|
exports.versionSplit = versionSplit;
|
|
15884
|
+
exports.wait = wait;
|
package/dist/inject.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,+DAOhB,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,+DAOhB,SAAS,KAAG,OAmKd,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { AptosAddress as HardwareAptosAddress } from '@onekeyfe/hd-transport';
|
|
|
2
2
|
import type { CommonParams, Response } from '../params';
|
|
3
3
|
export declare type AptosAddress = {
|
|
4
4
|
path: string;
|
|
5
|
+
publicKey?: string;
|
|
5
6
|
} & HardwareAptosAddress;
|
|
6
7
|
export declare type AptosGetAddressParams = {
|
|
7
8
|
path: string | number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptosGetAddress.d.ts","sourceRoot":"","sources":["../../../src/types/api/aptosGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,oBAAY,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"aptosGetAddress.d.ts","sourceRoot":"","sources":["../../../src/types/api/aptosGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,oBAAY,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,oBAAoB,CAAC;AAEzB,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG,qBAAqB,GAC3C,QAAQ,CAAC,YAAY,CAAC,CAAC;AAE1B,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG;IAAE,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAAE,GAC1D,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC"}
|
|
@@ -89,6 +89,7 @@ export declare type CoreApi = {
|
|
|
89
89
|
checkFirmwareRelease: typeof checkFirmwareRelease;
|
|
90
90
|
checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
|
|
91
91
|
firmwareUpdate: typeof firmwareUpdate;
|
|
92
|
+
firmwareUpdateV2: typeof firmwareUpdate;
|
|
92
93
|
batchGetPublicKey: typeof batchGetPublicKey;
|
|
93
94
|
cipherKeyValue: typeof cipherKeyValue;
|
|
94
95
|
evmGetAddress: typeof evmGetAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,5 @@ export declare const getDeviceBLEFirmwareVersion: (features: Features) => IVersi
|
|
|
12
12
|
export declare const supportInputPinOnSoftware: (features: Features) => SupportFeatureType;
|
|
13
13
|
export declare const supportNewPassphrase: (features?: import("packages/hd-transport/dist").Features | undefined) => SupportFeatureType;
|
|
14
14
|
export declare const getPassphraseState: (features: Features, commands: DeviceCommands) => Promise<string | false>;
|
|
15
|
+
export declare const supportBatchPublicKey: (features?: import("packages/hd-transport/dist").Features | undefined) => boolean;
|
|
15
16
|
//# sourceMappingURL=deviceFeaturesUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,cAAc,4EAA0B,YAUpD,CAAC;AAEF,eAAO,MAAM,aAAa,4EAA0B,WAUnD,CAAC;AAEF,eAAO,MAAM,yBAAyB,4EAA0B,WACvC,CAAC;AAE1B,eAAO,MAAM,sBAAsB,iCAAoB,WAAW,GAAG,IAKpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,qCAAwB,WAQ3D,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc,QAAQ,WAM/C,CAAC;AAEF,eAAO,MAAM,cAAc,aAAc,QAAQ,WAOhD,CAAC;AAKF,eAAO,MAAM,wBAAwB,aAAc,QAAQ,GAAG,SAAS,kBAOtE,CAAC;AAKF,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,aAAa,GAAG,IAQhF,CAAC;AAEF,eAAO,MAAM,yBAAyB,aAAc,QAAQ,KAAG,kBAU9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,4EAA0B,kBAW1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAoB,QAAQ,YAAY,cAAc,4BAUpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,cAAc,4EAA0B,YAUpD,CAAC;AAEF,eAAO,MAAM,aAAa,4EAA0B,WAUnD,CAAC;AAEF,eAAO,MAAM,yBAAyB,4EAA0B,WACvC,CAAC;AAE1B,eAAO,MAAM,sBAAsB,iCAAoB,WAAW,GAAG,IAKpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,qCAAwB,WAQ3D,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc,QAAQ,WAM/C,CAAC;AAEF,eAAO,MAAM,cAAc,aAAc,QAAQ,WAOhD,CAAC;AAKF,eAAO,MAAM,wBAAwB,aAAc,QAAQ,GAAG,SAAS,kBAOtE,CAAC;AAKF,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,aAAa,GAAG,IAQhF,CAAC;AAEF,eAAO,MAAM,yBAAyB,aAAc,QAAQ,KAAG,kBAU9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,4EAA0B,kBAW1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAoB,QAAQ,YAAY,cAAc,4BAUpF,CAAC;AAEF,eAAO,MAAM,qBAAqB,4EAA0B,OAY3D,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export * from './patch';
|
|
|
4
4
|
export { getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getDeviceLabel, } from './deviceFeaturesUtils';
|
|
5
5
|
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
6
6
|
export { getLogger, enableLog, LoggerNames, getLog, setLoggerPostMessage } from './logger';
|
|
7
|
+
export declare const wait: (ms: number) => Promise<unknown>;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE3F,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAG3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.54",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -24,11 +24,12 @@
|
|
|
24
24
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@onekeyfe/hd-shared": "^0.1.
|
|
28
|
-
"@onekeyfe/hd-transport": "^0.1.
|
|
27
|
+
"@onekeyfe/hd-shared": "^0.1.54",
|
|
28
|
+
"@onekeyfe/hd-transport": "^0.1.54",
|
|
29
29
|
"axios": "^0.27.2",
|
|
30
30
|
"bignumber.js": "^9.0.2",
|
|
31
31
|
"js-sha256": "^0.9.0",
|
|
32
|
+
"js-sha3": "^0.8.0",
|
|
32
33
|
"parse-uri": "^1.0.7",
|
|
33
34
|
"semver": "^7.3.7"
|
|
34
35
|
},
|
|
@@ -36,5 +37,5 @@
|
|
|
36
37
|
"@types/parse-uri": "^1.0.0",
|
|
37
38
|
"@types/semver": "^7.3.9"
|
|
38
39
|
},
|
|
39
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "d9c6d2f5fce55505f2bb067eb94ced0142251308"
|
|
40
41
|
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { createDeferred, Deferred, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
2
|
+
import { UI_REQUEST } from '../constants/ui-request';
|
|
3
|
+
import { BaseMethod } from './BaseMethod';
|
|
4
|
+
import { validateParams } from './helpers/paramsValidator';
|
|
5
|
+
import { DevicePool } from '../device/DevicePool';
|
|
6
|
+
import { getBinary } from './firmware/getBinary';
|
|
7
|
+
import { uploadFirmware } from './firmware/uploadFirmware';
|
|
8
|
+
import { getDeviceType, getDeviceUUID, wait } from '../utils';
|
|
9
|
+
import { createUiMessage } from '../events/ui-request';
|
|
10
|
+
import type { KnownDevice, Features } from '../types';
|
|
11
|
+
|
|
12
|
+
type Params = {
|
|
13
|
+
binary?: ArrayBuffer;
|
|
14
|
+
version?: number[];
|
|
15
|
+
updateType: 'firmware' | 'ble';
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export default class FirmwareUpdate extends BaseMethod<Params> {
|
|
19
|
+
checkPromise: Deferred<any> | null = null;
|
|
20
|
+
|
|
21
|
+
init() {
|
|
22
|
+
this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
|
|
23
|
+
this.requireDeviceMode = [];
|
|
24
|
+
this.useDevicePassphraseState = false;
|
|
25
|
+
|
|
26
|
+
const { payload } = this;
|
|
27
|
+
|
|
28
|
+
validateParams(payload, [
|
|
29
|
+
{ name: 'version', type: 'array' },
|
|
30
|
+
{ name: 'binary', type: 'buffer' },
|
|
31
|
+
]);
|
|
32
|
+
|
|
33
|
+
if (!payload.updateType) {
|
|
34
|
+
throw ERRORS.TypedError(
|
|
35
|
+
HardwareErrorCode.CallMethodInvalidParameter,
|
|
36
|
+
'updateType is required'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
this.params = { updateType: payload.updateType };
|
|
41
|
+
|
|
42
|
+
if ('version' in payload) {
|
|
43
|
+
this.params = {
|
|
44
|
+
...this.params,
|
|
45
|
+
version: payload.version,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if ('binary' in payload) {
|
|
50
|
+
this.params = {
|
|
51
|
+
...this.params,
|
|
52
|
+
binary: payload.binary,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
postTipMessage = (message: string) => {
|
|
58
|
+
this.postMessage(
|
|
59
|
+
createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
|
|
60
|
+
device: this.device.toMessageObject() as KnownDevice,
|
|
61
|
+
data: {
|
|
62
|
+
message,
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
checkDeviceToBootloader() {
|
|
69
|
+
this.checkPromise = createDeferred();
|
|
70
|
+
|
|
71
|
+
// check device goto bootloader mode
|
|
72
|
+
const intervalTimer: ReturnType<typeof setInterval> | undefined = setInterval(async () => {
|
|
73
|
+
const deviceDiff = await this.device.deviceConnector?.enumerate();
|
|
74
|
+
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
75
|
+
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, this.connectId);
|
|
76
|
+
console.log('device list: ', deviceList);
|
|
77
|
+
if (deviceList.length === 1 && deviceList[0].features?.bootloader_mode) {
|
|
78
|
+
// should update current device from cache
|
|
79
|
+
// because device was reboot and had some new requests
|
|
80
|
+
this.device.updateFromCache(deviceList[0]);
|
|
81
|
+
this.device.commands.disposed = false;
|
|
82
|
+
|
|
83
|
+
clearInterval(intervalTimer);
|
|
84
|
+
this.checkPromise?.resolve(true);
|
|
85
|
+
}
|
|
86
|
+
}, 2000);
|
|
87
|
+
|
|
88
|
+
// check goto bootloader mode timeout and throw error
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
if (this.checkPromise) {
|
|
91
|
+
clearInterval(intervalTimer);
|
|
92
|
+
this.checkPromise.reject(new Error());
|
|
93
|
+
}
|
|
94
|
+
}, 30000);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async run() {
|
|
98
|
+
const { device, params } = this;
|
|
99
|
+
const { features, commands } = device;
|
|
100
|
+
if (!features?.bootloader_mode) {
|
|
101
|
+
const uuid = getDeviceUUID(features as Features);
|
|
102
|
+
const deviceType = getDeviceType(features);
|
|
103
|
+
// mini should go to bootloader mode manually
|
|
104
|
+
if (deviceType === 'mini') {
|
|
105
|
+
return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceUnexpectedBootloaderMode));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// auto go to bootloader mode
|
|
109
|
+
try {
|
|
110
|
+
this.postTipMessage('AutoRebootToBootloader');
|
|
111
|
+
await commands.typedCall('BixinReboot', 'Success');
|
|
112
|
+
this.postTipMessage('GoToBootloaderSuccess');
|
|
113
|
+
this.checkDeviceToBootloader();
|
|
114
|
+
|
|
115
|
+
// force clean classic device cache so that the device can initialize again
|
|
116
|
+
if (deviceType === 'classic') {
|
|
117
|
+
DevicePool.clearDeviceCache(uuid);
|
|
118
|
+
}
|
|
119
|
+
delete DevicePool.devicesCache[''];
|
|
120
|
+
await this.checkPromise?.promise;
|
|
121
|
+
this.checkPromise = null;
|
|
122
|
+
await wait(1500);
|
|
123
|
+
} catch (e) {
|
|
124
|
+
console.log('auto go to bootloader mode failed: ', e);
|
|
125
|
+
return Promise.reject(
|
|
126
|
+
ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'go to bootloader mode failed')
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
let binary;
|
|
132
|
+
|
|
133
|
+
try {
|
|
134
|
+
if (params.binary) {
|
|
135
|
+
binary = this.params.binary;
|
|
136
|
+
} else {
|
|
137
|
+
if (!device.features) {
|
|
138
|
+
throw ERRORS.TypedError(
|
|
139
|
+
HardwareErrorCode.RuntimeError,
|
|
140
|
+
'no features found for this device'
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
this.postTipMessage('DownloadFirmware');
|
|
144
|
+
const firmware = await getBinary({
|
|
145
|
+
features: device.features,
|
|
146
|
+
version: params.version,
|
|
147
|
+
updateType: params.updateType,
|
|
148
|
+
});
|
|
149
|
+
binary = firmware.binary;
|
|
150
|
+
this.postTipMessage('DownloadFirmwareSuccess');
|
|
151
|
+
}
|
|
152
|
+
} catch (err) {
|
|
153
|
+
throw ERRORS.TypedError(HardwareErrorCode.FirmwareUpdateDownloadFailed, err.message ?? err);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
await this.device.acquire();
|
|
157
|
+
|
|
158
|
+
return uploadFirmware(
|
|
159
|
+
params.updateType,
|
|
160
|
+
this.device.getCommands().typedCall.bind(this.device.getCommands()),
|
|
161
|
+
this.postMessage,
|
|
162
|
+
device,
|
|
163
|
+
{ payload: binary }
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -4,7 +4,10 @@ import { serializedPath, validatePath } from '../helpers/pathUtils';
|
|
|
4
4
|
import { BaseMethod } from '../BaseMethod';
|
|
5
5
|
import { validateParams } from '../helpers/paramsValidator';
|
|
6
6
|
import { AptosAddress, AptosGetAddressParams } from '../../types';
|
|
7
|
-
|
|
7
|
+
import { supportBatchPublicKey } from '../../utils/deviceFeaturesUtils';
|
|
8
|
+
import sha3 from "js-sha3";
|
|
9
|
+
import { hexToBytes } from '../helpers/hexUtils';
|
|
10
|
+
const { sha3_256: sha3Hash } = sha3;
|
|
8
11
|
export default class AptosGetAddress extends BaseMethod<HardwareAptosGetAddress[]> {
|
|
9
12
|
hasBundle = false;
|
|
10
13
|
|
|
@@ -37,9 +40,30 @@ export default class AptosGetAddress extends BaseMethod<HardwareAptosGetAddress[
|
|
|
37
40
|
});
|
|
38
41
|
}
|
|
39
42
|
|
|
43
|
+
publicKeyToAddress(publicKey: string) {
|
|
44
|
+
const hash = sha3Hash.create();
|
|
45
|
+
hash.update(hexToBytes(publicKey));
|
|
46
|
+
hash.update("\x00");
|
|
47
|
+
return hash.hex();
|
|
48
|
+
}
|
|
49
|
+
|
|
40
50
|
async run() {
|
|
41
|
-
|
|
51
|
+
if (this.hasBundle && supportBatchPublicKey(this.device?.features)) {
|
|
52
|
+
// @ts-expect-error
|
|
53
|
+
const res = await this.device.commands.typedCall('BatchGetPublickeys', 'EcdsaPublicKeys', {
|
|
54
|
+
paths: this.params,
|
|
55
|
+
ecdsa_curve_name: 'ed25519',
|
|
56
|
+
});
|
|
57
|
+
// @ts-expect-error
|
|
58
|
+
const result = res.message.public_keys.map((publicKey: string, index: number) => ({
|
|
59
|
+
path: serializedPath((this.params as unknown as any[])[index].address_n),
|
|
60
|
+
publicKey,
|
|
61
|
+
address: this.publicKeyToAddress(publicKey),
|
|
62
|
+
}));
|
|
63
|
+
return Promise.resolve(result);
|
|
64
|
+
}
|
|
42
65
|
|
|
66
|
+
const responses: AptosAddress[] = [];
|
|
43
67
|
for (let i = 0; i < this.params.length; i++) {
|
|
44
68
|
const param = this.params[i];
|
|
45
69
|
|
|
@@ -20,10 +20,7 @@ export const getBinary = async ({ features, updateType, version }: GetBinaryProp
|
|
|
20
20
|
throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'no firmware found for this device');
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
if (
|
|
24
|
-
version &&
|
|
25
|
-
!semver.eq(releaseInfo.version as unknown as semver.SemVer, version as unknown as semver.SemVer)
|
|
26
|
-
) {
|
|
23
|
+
if (version && !semver.eq(releaseInfo.version.join('.'), version.join('.'))) {
|
|
27
24
|
throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'firmware version mismatch');
|
|
28
25
|
}
|
|
29
26
|
|
|
@@ -25,6 +25,21 @@ const postProgressMessage = (
|
|
|
25
25
|
);
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
const postProgressTip = (
|
|
29
|
+
device: Device,
|
|
30
|
+
message: string,
|
|
31
|
+
postMessage: (message: CoreMessage) => void
|
|
32
|
+
) => {
|
|
33
|
+
postMessage(
|
|
34
|
+
createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
|
|
35
|
+
device: device.toMessageObject() as KnownDevice,
|
|
36
|
+
data: {
|
|
37
|
+
message,
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
};
|
|
42
|
+
|
|
28
43
|
export const uploadFirmware = async (
|
|
29
44
|
updateType: 'firmware' | 'ble',
|
|
30
45
|
typedCall: TypedCall,
|
|
@@ -34,8 +49,10 @@ export const uploadFirmware = async (
|
|
|
34
49
|
) => {
|
|
35
50
|
if (device.features?.major_version === 1) {
|
|
36
51
|
postConfirmationMessage(device);
|
|
52
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
37
53
|
const eraseCommand = updateType === 'firmware' ? 'FirmwareErase' : 'FirmwareErase_ex';
|
|
38
54
|
await typedCall(eraseCommand as unknown as any, 'Success', {});
|
|
55
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
39
56
|
postProgressMessage(device, 0, postMessage);
|
|
40
57
|
const { message } = await typedCall('FirmwareUpload', 'Success', {
|
|
41
58
|
payload,
|
|
@@ -46,9 +63,11 @@ export const uploadFirmware = async (
|
|
|
46
63
|
|
|
47
64
|
if (device.features?.major_version === 2) {
|
|
48
65
|
postConfirmationMessage(device);
|
|
66
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
49
67
|
const length = payload.byteLength;
|
|
50
68
|
|
|
51
69
|
let response = await typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
|
|
70
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
52
71
|
while (response.type !== 'Success') {
|
|
53
72
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
54
73
|
const start = response.message.offset!;
|
|
@@ -47,3 +47,36 @@ export const formatAnyHex: (value: any) => any = value => {
|
|
|
47
47
|
|
|
48
48
|
return value;
|
|
49
49
|
};
|
|
50
|
+
|
|
51
|
+
const hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
|
|
52
|
+
/**
|
|
53
|
+
* @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))
|
|
54
|
+
*/
|
|
55
|
+
export function bytesToHex(uint8a: Uint8Array): string {
|
|
56
|
+
// pre-caching improves the speed 6x
|
|
57
|
+
if (!(uint8a instanceof Uint8Array)) throw new Error('Uint8Array expected');
|
|
58
|
+
let hex = '';
|
|
59
|
+
for (let i = 0; i < uint8a.length; i++) {
|
|
60
|
+
hex += hexes[uint8a[i]];
|
|
61
|
+
}
|
|
62
|
+
return hex;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @example hexToBytes('deadbeef')
|
|
67
|
+
*/
|
|
68
|
+
export function hexToBytes(hex: string): Uint8Array {
|
|
69
|
+
if (typeof hex !== 'string') {
|
|
70
|
+
throw new TypeError(`hexToBytes: expected string, got ${typeof hex}`);
|
|
71
|
+
}
|
|
72
|
+
if (hex.length % 2) throw new Error('hexToBytes: received invalid unpadded hex');
|
|
73
|
+
const array = new Uint8Array(hex.length / 2);
|
|
74
|
+
for (let i = 0; i < array.length; i++) {
|
|
75
|
+
const j = i * 2;
|
|
76
|
+
const hexByte = hex.slice(j, j + 2);
|
|
77
|
+
const byte = Number.parseInt(hexByte, 16);
|
|
78
|
+
if (Number.isNaN(byte) || byte < 0) throw new Error('Invalid byte sequence');
|
|
79
|
+
array[i] = byte;
|
|
80
|
+
}
|
|
81
|
+
return array;
|
|
82
|
+
}
|
package/src/api/index.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { default as deviceSupportFeatures } from './device/DeviceSupportFeatures
|
|
|
18
18
|
export { default as deviceVerify } from './device/DeviceVerify';
|
|
19
19
|
export { default as deviceWipe } from './device/DeviceWipe';
|
|
20
20
|
export { default as firmwareUpdate } from './FirmwareUpdate';
|
|
21
|
+
export { default as firmwareUpdateV2 } from './FirmwareUpdateV2';
|
|
21
22
|
export { default as requestWebUsbDevice } from './RequestWebUsbDevice';
|
|
22
23
|
|
|
23
24
|
export { default as batchGetPublicKey } from './BatchGetPublicKey';
|
|
@@ -9,4 +9,6 @@ export const UI_REQUEST = {
|
|
|
9
9
|
FIRMWARE_NOT_COMPATIBLE: 'ui-device_firmware_not_compatible',
|
|
10
10
|
FIRMWARE_NOT_INSTALLED: 'ui-device_firmware_not_installed',
|
|
11
11
|
NOT_USE_ONEKEY_DEVICE: 'ui-device_please_use_onekey_device',
|
|
12
|
+
|
|
13
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
12
14
|
} as const;
|
package/src/core/index.ts
CHANGED
|
@@ -345,7 +345,11 @@ function initDevice(method: BaseMethod) {
|
|
|
345
345
|
} else if (allDevices.length === 1) {
|
|
346
346
|
[device] = allDevices;
|
|
347
347
|
} else if (allDevices.length > 1) {
|
|
348
|
-
throw ERRORS.TypedError(
|
|
348
|
+
throw ERRORS.TypedError(
|
|
349
|
+
method.name === 'firmwareUpdateV2'
|
|
350
|
+
? HardwareErrorCode.FirmwareUpdateLimitOneDevice
|
|
351
|
+
: HardwareErrorCode.SelectDevice
|
|
352
|
+
);
|
|
349
353
|
}
|
|
350
354
|
|
|
351
355
|
if (!device) {
|
|
@@ -463,6 +467,7 @@ const ensureConnected = async (method: BaseMethod, pollingId: number) => {
|
|
|
463
467
|
HardwareErrorCode.BleCharacteristicNotifyError,
|
|
464
468
|
HardwareErrorCode.BleWriteCharacteristicError,
|
|
465
469
|
HardwareErrorCode.BleAlreadyConnected,
|
|
470
|
+
HardwareErrorCode.FirmwareUpdateLimitOneDevice,
|
|
466
471
|
].includes(error.errorCode)
|
|
467
472
|
) {
|
|
468
473
|
reject(error);
|
package/src/events/ui-request.ts
CHANGED
|
@@ -19,6 +19,7 @@ export const UI_REQUEST = {
|
|
|
19
19
|
LOCATION_SERVICE_PERMISSION: 'ui-location_service_permission',
|
|
20
20
|
|
|
21
21
|
FIRMWARE_PROGRESS: 'ui-firmware-progress',
|
|
22
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
22
23
|
|
|
23
24
|
NOT_IN_BOOTLOADER: 'ui-device_not_in_bootloader_mode',
|
|
24
25
|
} as const;
|
|
@@ -69,13 +70,22 @@ export interface FirmwareProgress {
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
|
|
73
|
+
export interface FirmwareTip {
|
|
74
|
+
type: typeof UI_REQUEST.FIRMWARE_TIP;
|
|
75
|
+
payload: {
|
|
76
|
+
device: Device;
|
|
77
|
+
data: { message: string };
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
72
81
|
export type UiEvent =
|
|
73
82
|
| UiRequestWithoutPayload
|
|
74
83
|
| UiRequestDeviceAction
|
|
75
84
|
| UiRequestButton
|
|
76
85
|
| UiRequestPassphraseOnDevice
|
|
86
|
+
| UiRequestPassphrase
|
|
77
87
|
| FirmwareProgress
|
|
78
|
-
|
|
|
88
|
+
| FirmwareTip;
|
|
79
89
|
|
|
80
90
|
export type UiEventMessage = UiEvent & { event: typeof UI_EVENT };
|
|
81
91
|
|
package/src/inject.ts
CHANGED
|
@@ -150,6 +150,8 @@ export const inject = ({
|
|
|
150
150
|
call({ ...params, connectId, deviceId, method: 'stellarSignTransaction' }),
|
|
151
151
|
|
|
152
152
|
firmwareUpdate: (connectId, params) => call({ ...params, connectId, method: 'firmwareUpdate' }),
|
|
153
|
+
firmwareUpdateV2: (connectId, params) =>
|
|
154
|
+
call({ ...params, connectId, method: 'firmwareUpdateV2' }),
|
|
153
155
|
requestWebUsbDevice: () => call({ method: 'requestWebUsbDevice' }),
|
|
154
156
|
|
|
155
157
|
tronGetAddress: (connectId, deviceId, params) =>
|
package/src/types/api/index.ts
CHANGED
|
@@ -116,6 +116,7 @@ export type CoreApi = {
|
|
|
116
116
|
checkFirmwareRelease: typeof checkFirmwareRelease;
|
|
117
117
|
checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
|
|
118
118
|
firmwareUpdate: typeof firmwareUpdate;
|
|
119
|
+
firmwareUpdateV2: typeof firmwareUpdate;
|
|
119
120
|
|
|
120
121
|
batchGetPublicKey: typeof batchGetPublicKey;
|
|
121
122
|
cipherKeyValue: typeof cipherKeyValue;
|
|
@@ -131,3 +131,17 @@ export const getPassphraseState = async (features: Features, commands: DeviceCom
|
|
|
131
131
|
|
|
132
132
|
return message.address;
|
|
133
133
|
};
|
|
134
|
+
|
|
135
|
+
export const supportBatchPublicKey = (features?: Features): boolean => {
|
|
136
|
+
if (!features) return false;
|
|
137
|
+
|
|
138
|
+
// TODO: support batch public key for touch
|
|
139
|
+
// const deviceType = getDeviceType(features);
|
|
140
|
+
// if (deviceType === 'touch' || deviceType === 'pro') {
|
|
141
|
+
// return true;
|
|
142
|
+
// }
|
|
143
|
+
|
|
144
|
+
const currentVersion = getDeviceFirmwareVersion(features).join('.');
|
|
145
|
+
|
|
146
|
+
return semver.gte(currentVersion, '2.6.0');
|
|
147
|
+
};
|
package/src/utils/index.ts
CHANGED
|
@@ -11,3 +11,8 @@ export {
|
|
|
11
11
|
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
12
12
|
|
|
13
13
|
export { getLogger, enableLog, LoggerNames, getLog, setLoggerPostMessage } from './logger';
|
|
14
|
+
|
|
15
|
+
export const wait = (ms: number) =>
|
|
16
|
+
new Promise(resolve => {
|
|
17
|
+
setTimeout(resolve, ms);
|
|
18
|
+
});
|