@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.
Files changed (41) hide show
  1. package/dist/api/FirmwareUpdateV2.d.ts +16 -0
  2. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -0
  3. package/dist/api/aptos/AptosGetAddress.d.ts +2 -2
  4. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  5. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  6. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  7. package/dist/api/helpers/hexUtils.d.ts +2 -0
  8. package/dist/api/helpers/hexUtils.d.ts.map +1 -1
  9. package/dist/api/index.d.ts +1 -0
  10. package/dist/api/index.d.ts.map +1 -1
  11. package/dist/constants/ui-request.d.ts +1 -0
  12. package/dist/constants/ui-request.d.ts.map +1 -1
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/events/ui-request.d.ts +11 -1
  15. package/dist/events/ui-request.d.ts.map +1 -1
  16. package/dist/index.d.ts +16 -2
  17. package/dist/index.js +186 -5
  18. package/dist/inject.d.ts.map +1 -1
  19. package/dist/types/api/aptosGetAddress.d.ts +1 -0
  20. package/dist/types/api/aptosGetAddress.d.ts.map +1 -1
  21. package/dist/types/api/index.d.ts +1 -0
  22. package/dist/types/api/index.d.ts.map +1 -1
  23. package/dist/utils/deviceFeaturesUtils.d.ts +1 -0
  24. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  25. package/dist/utils/index.d.ts +1 -0
  26. package/dist/utils/index.d.ts.map +1 -1
  27. package/package.json +5 -4
  28. package/src/api/FirmwareUpdateV2.ts +166 -0
  29. package/src/api/aptos/AptosGetAddress.ts +26 -2
  30. package/src/api/firmware/getBinary.ts +1 -4
  31. package/src/api/firmware/uploadFirmware.ts +19 -0
  32. package/src/api/helpers/hexUtils.ts +33 -0
  33. package/src/api/index.ts +1 -0
  34. package/src/constants/ui-request.ts +2 -0
  35. package/src/core/index.ts +6 -1
  36. package/src/events/ui-request.ts +11 -1
  37. package/src/inject.ts +2 -0
  38. package/src/types/api/aptosGetAddress.ts +1 -0
  39. package/src/types/api/index.ts +1 -0
  40. package/src/utils/deviceFeaturesUtils.ts +14 -0
  41. 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
- run(): Promise<AptosAddress | AptosAddress[]>;
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;AAE3C,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAChF,SAAS,UAAS;IAElB,IAAI;IA6BE,GAAG;CAoBV"}
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;;;;;;;;;;;;;;;;;;;;;;EA2BhF,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;AAuB7D,eAAO,MAAM,cAAc,eACb,UAAU,GAAG,KAAK,aACnB,SAAS,yBACG,WAAW,KAAK,IAAI,UACnC,MAAM,eACD,MAAM,cAAc,0DAwClC,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"}
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
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;;;;;;;;;;;CAWb,CAAC"}
1
+ {"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/constants/ui-request.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC"}
@@ -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;AA2KF,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"}
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 declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | FirmwareProgress | UiRequestPassphrase;
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;;;;;;;;;;;;CAgBb,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,oBAAY,OAAO,GACf,uBAAuB,GACvB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,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"}
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
- declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | FirmwareProgress | UiRequestPassphrase;
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(hdShared.HardwareErrorCode.SelectDevice);
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;
@@ -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,OAiKd,CAAC"}
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;CACd,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"}
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"}
@@ -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.52",
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.52",
28
- "@onekeyfe/hd-transport": "^0.1.52",
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": "7a53d20af1efe25b5f94c1204bb1679cfeb16666"
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
- const responses: AptosAddress[] = [];
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(HardwareErrorCode.SelectDevice);
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);
@@ -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
- | UiRequestPassphrase;
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) =>
@@ -3,6 +3,7 @@ import type { CommonParams, Response } from '../params';
3
3
 
4
4
  export type AptosAddress = {
5
5
  path: string;
6
+ publicKey?: string;
6
7
  } & HardwareAptosAddress;
7
8
 
8
9
  export type AptosGetAddressParams = {
@@ -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
+ };
@@ -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
+ });