@onekeyfe/hd-core 0.1.53 → 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.
@@ -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 +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"}
@@ -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
@@ -1080,6 +1080,7 @@ declare type CoreApi = {
1080
1080
  checkFirmwareRelease: typeof checkFirmwareRelease;
1081
1081
  checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
1082
1082
  firmwareUpdate: typeof firmwareUpdate;
1083
+ firmwareUpdateV2: typeof firmwareUpdate;
1083
1084
  batchGetPublicKey: typeof batchGetPublicKey;
1084
1085
  cipherKeyValue: typeof cipherKeyValue;
1085
1086
  evmGetAddress: typeof evmGetAddress;
@@ -1206,6 +1207,7 @@ declare const UI_REQUEST: {
1206
1207
  readonly LOCATION_PERMISSION: "ui-location_permission";
1207
1208
  readonly LOCATION_SERVICE_PERMISSION: "ui-location_service_permission";
1208
1209
  readonly FIRMWARE_PROGRESS: "ui-firmware-progress";
1210
+ readonly FIRMWARE_TIP: "ui-firmware-tip";
1209
1211
  readonly NOT_IN_BOOTLOADER: "ui-device_not_in_bootloader_mode";
1210
1212
  };
1211
1213
  interface UiRequestWithoutPayload {
@@ -1244,7 +1246,16 @@ interface FirmwareProgress {
1244
1246
  progress: number;
1245
1247
  };
1246
1248
  }
1247
- 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;
1248
1259
  declare type UiEventMessage = UiEvent & {
1249
1260
  event: typeof UI_EVENT;
1250
1261
  };
@@ -1619,6 +1630,8 @@ declare enum LoggerNames {
1619
1630
  }
1620
1631
  declare const getLogger: (key: LoggerNames) => Log;
1621
1632
 
1633
+ declare const wait: (ms: number) => Promise<unknown>;
1634
+
1622
1635
  declare const getSDKVersion: () => any;
1623
1636
 
1624
1637
  declare const DEFAULT_PRIORITY = 2;
@@ -1657,4 +1670,4 @@ declare class DataManager {
1657
1670
 
1658
1671
  declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, cancel, }: InjectApi) => CoreApi;
1659
1672
 
1660
- 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
@@ -79,6 +79,7 @@ const inject = ({ call, cancel, dispose, eventEmitter, init, uiResponse, }) => {
79
79
  stellarGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'stellarGetAddress' })),
80
80
  stellarSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'stellarSignTransaction' })),
81
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' })),
82
83
  requestWebUsbDevice: () => call({ method: 'requestWebUsbDevice' }),
83
84
  tronGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'tronGetAddress' })),
84
85
  tronSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'tronSignMessage' })),
@@ -10338,6 +10339,10 @@ const LoggerMap = {
10338
10339
  };
10339
10340
  const getLogger = (key) => LoggerMap[key];
10340
10341
 
10342
+ const wait = (ms) => new Promise(resolve => {
10343
+ setTimeout(resolve, ms);
10344
+ });
10345
+
10341
10346
  const getReleaseStatus = (releases, currentVersion) => {
10342
10347
  const newVersions = releases.filter(r => semver__default["default"].gt(r.version.join('.'), currentVersion));
10343
10348
  if (newVersions.length === 0) {
@@ -10517,6 +10522,7 @@ const UI_REQUEST$1 = {
10517
10522
  LOCATION_PERMISSION: 'ui-location_permission',
10518
10523
  LOCATION_SERVICE_PERMISSION: 'ui-location_service_permission',
10519
10524
  FIRMWARE_PROGRESS: 'ui-firmware-progress',
10525
+ FIRMWARE_TIP: 'ui-firmware-tip',
10520
10526
  NOT_IN_BOOTLOADER: 'ui-device_not_in_bootloader_mode',
10521
10527
  };
10522
10528
  const createUiMessage = (type, payload) => ({
@@ -11067,6 +11073,7 @@ const UI_REQUEST = {
11067
11073
  FIRMWARE_NOT_COMPATIBLE: 'ui-device_firmware_not_compatible',
11068
11074
  FIRMWARE_NOT_INSTALLED: 'ui-device_firmware_not_installed',
11069
11075
  NOT_USE_ONEKEY_DEVICE: 'ui-device_please_use_onekey_device',
11076
+ FIRMWARE_TIP: 'ui-firmware-tip',
11070
11077
  };
11071
11078
 
11072
11079
  const pkg = require('../package.json');
@@ -12194,8 +12201,7 @@ const getBinary = ({ features, updateType, version }) => __awaiter(void 0, void
12194
12201
  if (!releaseInfo) {
12195
12202
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'no firmware found for this device');
12196
12203
  }
12197
- if (version &&
12198
- !semver__default["default"].eq(releaseInfo.version, version)) {
12204
+ if (version && !semver__default["default"].eq(releaseInfo.version.join('.'), version.join('.'))) {
12199
12205
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'firmware version mismatch');
12200
12206
  }
12201
12207
  const url = updateType === 'ble' ? releaseInfo.webUpdate : releaseInfo.url;
@@ -12228,12 +12234,22 @@ const postProgressMessage = (device, progress, postMessage) => {
12228
12234
  progress,
12229
12235
  }));
12230
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
+ };
12231
12245
  const uploadFirmware = (updateType, typedCall, postMessage, device, { payload }) => __awaiter(void 0, void 0, void 0, function* () {
12232
12246
  var _a, _b;
12233
12247
  if (((_a = device.features) === null || _a === void 0 ? void 0 : _a.major_version) === 1) {
12234
12248
  postConfirmationMessage(device);
12249
+ postProgressTip(device, 'ConfirmOnDevice', postMessage);
12235
12250
  const eraseCommand = updateType === 'firmware' ? 'FirmwareErase' : 'FirmwareErase_ex';
12236
12251
  yield typedCall(eraseCommand, 'Success', {});
12252
+ postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
12237
12253
  postProgressMessage(device, 0, postMessage);
12238
12254
  const { message } = yield typedCall('FirmwareUpload', 'Success', {
12239
12255
  payload,
@@ -12243,8 +12259,10 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload })
12243
12259
  }
12244
12260
  if (((_b = device.features) === null || _b === void 0 ? void 0 : _b.major_version) === 2) {
12245
12261
  postConfirmationMessage(device);
12262
+ postProgressTip(device, 'ConfirmOnDevice', postMessage);
12246
12263
  const length = payload.byteLength;
12247
12264
  let response = yield typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
12265
+ postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
12248
12266
  while (response.type !== 'Success') {
12249
12267
  const start = response.message.offset;
12250
12268
  const end = response.message.offset + response.message.length;
@@ -12262,7 +12280,7 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload })
12262
12280
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'uploadFirmware: unknown major_version');
12263
12281
  });
12264
12282
 
12265
- class FirmwareUpdate extends BaseMethod {
12283
+ class FirmwareUpdate$1 extends BaseMethod {
12266
12284
  init() {
12267
12285
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
12268
12286
  this.requireDeviceMode = [UI_REQUEST.BOOTLOADER];
@@ -12312,6 +12330,118 @@ class FirmwareUpdate extends BaseMethod {
12312
12330
  }
12313
12331
  }
12314
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
+
12315
12445
  const Log$2 = getLogger(exports.LoggerNames.Method);
12316
12446
  class RequestWebUsbDevice extends BaseMethod {
12317
12447
  init() {
@@ -15004,7 +15134,8 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
15004
15134
  deviceSupportFeatures: DeviceSupportFeatures,
15005
15135
  deviceVerify: DeviceVerify,
15006
15136
  deviceWipe: DeviceWipe,
15007
- firmwareUpdate: FirmwareUpdate,
15137
+ firmwareUpdate: FirmwareUpdate$1,
15138
+ firmwareUpdateV2: FirmwareUpdate,
15008
15139
  requestWebUsbDevice: RequestWebUsbDevice,
15009
15140
  batchGetPublicKey: BatchGetPublicKey,
15010
15141
  cipherKeyValue: CipherKeyValue,
@@ -15384,7 +15515,9 @@ function initDevice(method) {
15384
15515
  [device] = allDevices;
15385
15516
  }
15386
15517
  else if (allDevices.length > 1) {
15387
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.SelectDevice);
15518
+ throw hdShared.ERRORS.TypedError(method.name === 'firmwareUpdateV2'
15519
+ ? hdShared.HardwareErrorCode.FirmwareUpdateLimitOneDevice
15520
+ : hdShared.HardwareErrorCode.SelectDevice);
15388
15521
  }
15389
15522
  if (!device) {
15390
15523
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotFound);
@@ -15477,6 +15610,7 @@ const ensureConnected = (method, pollingId) => __awaiter(void 0, void 0, void 0,
15477
15610
  hdShared.HardwareErrorCode.BleCharacteristicNotifyError,
15478
15611
  hdShared.HardwareErrorCode.BleWriteCharacteristicError,
15479
15612
  hdShared.HardwareErrorCode.BleAlreadyConnected,
15613
+ hdShared.HardwareErrorCode.FirmwareUpdateLimitOneDevice,
15480
15614
  ].includes(error.errorCode)) {
15481
15615
  reject(error);
15482
15616
  return;
@@ -15747,3 +15881,4 @@ exports.safeThrowError = safeThrowError;
15747
15881
  exports.setLoggerPostMessage = setLoggerPostMessage;
15748
15882
  exports.versionCompare = versionCompare;
15749
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"}
@@ -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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"}
@@ -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.53",
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,8 +24,8 @@
24
24
  "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
25
25
  },
26
26
  "dependencies": {
27
- "@onekeyfe/hd-shared": "^0.1.53",
28
- "@onekeyfe/hd-transport": "^0.1.53",
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",
@@ -37,5 +37,5 @@
37
37
  "@types/parse-uri": "^1.0.0",
38
38
  "@types/semver": "^7.3.9"
39
39
  },
40
- "gitHead": "33a915c10a4f664e60f0eacc6b75bfc913b0e8e3"
40
+ "gitHead": "d9c6d2f5fce55505f2bb067eb94ced0142251308"
41
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
+ }
@@ -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!;
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) =>
@@ -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;
@@ -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
+ });