@onekeyfe/hd-core 1.1.21-alpha.1 → 1.1.21-alpha.3

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.
@@ -4,6 +4,7 @@ import type { Deferred } from '@onekeyfe/hd-shared';
4
4
  export declare const MIN_UPDATE_V3_BOOTLOADER_VERSION = "2.8.0";
5
5
  export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareUpdateV3Params> {
6
6
  checkPromise: Deferred<any> | null;
7
+ private isSwitchFirmware;
7
8
  init(): void;
8
9
  run(): Promise<{
9
10
  bootloaderVersion: string;
@@ -16,7 +17,9 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
16
17
  private prepareFirmwareAndBleBinary;
17
18
  private executeUpdate;
18
19
  private extractUpdateModeProgress;
20
+ private isGetFeaturesTimeoutError;
19
21
  private normalizeErrorMessage;
22
+ private canPromptWebUsbSwitchFirmwareReconnect;
20
23
  waitForDeviceReconnect(timeout: number): Promise<void>;
21
24
  }
22
25
  //# sourceMappingURL=FirmwareUpdateV3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateV3.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV3.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAG/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AAKnE,eAAO,MAAM,gCAAgC,UAAU,CAAC;AAaxD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IAC5F,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAmCE,GAAG;;;;;IA8CT,OAAO,CAAC,wBAAwB;YAiBlB,qBAAqB;YAoBrB,uBAAuB;YAiBvB,2BAA2B;YAiD3B,aAAa;IA6K3B,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,qBAAqB;IAuBvB,sBAAsB,CAAC,OAAO,EAAE,MAAM;CAoD7C"}
1
+ {"version":3,"file":"FirmwareUpdateV3.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV3.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAI/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AAKnE,eAAO,MAAM,gCAAgC,UAAU,CAAC;AAaxD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IAC5F,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,OAAO,CAAC,gBAAgB,CAAS;IAEjC,IAAI;IAmCE,GAAG;;;;;IA+CT,OAAO,CAAC,wBAAwB;YAiBlB,qBAAqB;YAoBrB,uBAAuB;YAiBvB,2BAA2B;YAiD3B,aAAa;IA2M3B,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,sCAAsC;IAexC,sBAAsB,CAAC,OAAO,EAAE,MAAM;CAuE7C"}
@@ -7,16 +7,15 @@ import type { Deferred } from '@onekeyfe/hd-shared';
7
7
  import type { TypedResponseMessage } from '../../device/DeviceCommands';
8
8
  export declare class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
9
9
  checkPromise: Deferred<any> | null;
10
- protected hasPromptedWebUsbBootloaderReauth: boolean;
11
10
  init(): void;
12
11
  run(): Promise<any>;
13
12
  isBleReconnect(): boolean;
14
13
  postTipMessage: (message: IFirmwareUpdateTipMessage) => void;
15
14
  postProcessingMessage: (type: 'firmware' | 'ble' | 'bootloader' | 'resource') => void;
16
15
  postProgressMessage: (progress: number, progressType: IFirmwareUpdateProgressType) => void;
17
- private _promptDeviceInBootloaderForWebDevice;
16
+ protected _promptDeviceInBootloaderForWebDevice(): Promise<unknown>;
17
+ protected _promptDeviceForSwitchFirmwareWebDevice(): Promise<unknown>;
18
18
  checkDeviceToBootloader(connectId: string | undefined): void;
19
- protected ensureWebUsbBootloaderReauthPrompt(): Promise<void>;
20
19
  private _checkDeviceInBootloaderMode;
21
20
  enterBootloaderMode(): Promise<true | undefined>;
22
21
  startEmmcFirmwareUpdate({ path }: {
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateBaseMethod.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateBaseMethod.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAexE,qBAAa,wBAAwB,CAAC,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,SAAS,CAAC,iCAAiC,UAAS;IAEpD,IAAI,IAAI,IAAI;IAEZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAInB,cAAc,IAAI,OAAO;IASzB,cAAc,YAAa,yBAAyB,UASlD;IAMF,qBAAqB,SAAU,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,UAM3E;IAMF,mBAAmB,aAAc,MAAM,gBAAgB,2BAA2B,UAQhF;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;cAuFrC,kCAAkC;YAmBpC,4BAA4B;IAuBpC,mBAAmB;IA8CnB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA6BlD,8BAA8B,CAAC,IAAI,EAAE,MAAM;IAW3C,uBAAuB,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,KAAK,CAAC,cAAc,GAAG;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IA4CK,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,GAAG,MAAM,EAC3B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwEnB,MAAM,CAAC,UAAU,EAAE,UAAU;CAsBpC"}
1
+ {"version":3,"file":"FirmwareUpdateBaseMethod.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateBaseMethod.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAexE,qBAAa,wBAAwB,CAAC,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI,IAAI,IAAI;IAEZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAInB,cAAc,IAAI,OAAO;IASzB,cAAc,YAAa,yBAAyB,UASlD;IAMF,qBAAqB,SAAU,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,UAM3E;IAMF,mBAAmB,aAAc,MAAM,gBAAgB,2BAA2B,UAQhF;cAEc,qCAAqC;cAkBrC,uCAAuC;IAkBvD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAmFvC,4BAA4B;IAuBpC,mBAAmB;IA8CnB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA6BlD,8BAA8B,CAAC,IAAI,EAAE,MAAM;IAW3C,uBAAuB,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,KAAK,CAAC,cAAc,GAAG;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IA4CK,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,GAAG,MAAM,EAC3B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwEnB,MAAM,CAAC,UAAU,EAAE,UAAU;CAsBpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAuClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAiB1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAmD,MAAM,WAAW,CAAC;AAI9F,OAAO,KAAK,EAEV,6BAA6B,EAE9B,MAAM,wBAAwB,CAAC;AAKhC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AA8D7D,eAAO,MAAM,OAAO,YAAmB,WAAW,WAAW,WAAW,iBAuEvE,CAAC;AAwpBF,eAAO,MAAM,MAAM,YAAa,WAAW,cAAc,MAAM,SAkF9D,CAAC;AAsEF,eAAO,MAAM,qBAAqB,gFAejC,CAAC;AAyFF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IAC5C,OAAO,CAAC,cAAc,CAAoB;IAE1C,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC,OAAO,CAAC,YAAY,CAAsB;IAG1C,OAAO,CAAC,qBAAqB,CAA4B;IAEzD,OAAO,CAAC,iBAAiB,CAAoB;;IAS7C,OAAO,CAAC,cAAc;IAoBhB,aAAa,CAAC,OAAO,EAAE,WAAW;IA0DxC,OAAO;CAMR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAIzB,CAAC;AAMF,eAAO,MAAM,IAAI,aACL,eAAe,aACd,GAAG,WACL,6BAA6B,8BAoBvC,CAAC;AAEF,eAAO,MAAM,eAAe;SAKrB,eAAe,CAAC,KAAK,CAAC;eAChB,GAAG;;UASf,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAuClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAiB1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAmD,MAAM,WAAW,CAAC;AAI9F,OAAO,KAAK,EAEV,6BAA6B,EAE9B,MAAM,wBAAwB,CAAC;AAKhC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AA8D7D,eAAO,MAAM,OAAO,YAAmB,WAAW,WAAW,WAAW,iBAuEvE,CAAC;AA4pBF,eAAO,MAAM,MAAM,YAAa,WAAW,cAAc,MAAM,SAkF9D,CAAC;AAsEF,eAAO,MAAM,qBAAqB,gFAejC,CAAC;AA0GF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IAC5C,OAAO,CAAC,cAAc,CAAoB;IAE1C,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC,OAAO,CAAC,YAAY,CAAsB;IAG1C,OAAO,CAAC,qBAAqB,CAA4B;IAEzD,OAAO,CAAC,iBAAiB,CAAoB;;IAS7C,OAAO,CAAC,cAAc;IAoBhB,aAAa,CAAC,OAAO,EAAE,WAAW;IA2DxC,OAAO;CAMR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAIzB,CAAC;AAMF,eAAO,MAAM,IAAI,aACL,eAAe,aACd,GAAG,WACL,6BAA6B,8BAoBvC,CAAC;AAEF,eAAO,MAAM,eAAe;SAKrB,eAAe,CAAC,KAAK,CAAC;eAChB,GAAG;;UASf,CAAC"}
@@ -30,6 +30,10 @@ export interface DeviceEvents {
30
30
  Device,
31
31
  (err: any, deviceId: string) => void
32
32
  ];
33
+ [DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE]: [
34
+ Device,
35
+ (err: any, deviceId: string) => void
36
+ ];
33
37
  }
34
38
  export interface Device {
35
39
  on<K extends keyof DeviceEvents>(type: K, listener: (...event: DeviceEvents[K]) => void): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export declare const DEVICE: {
21
21
  readonly WORD: "word";
22
22
  readonly SUPPORT_FEATURES: "support_features";
23
23
  readonly SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: "select_device_in_bootloader_for_web_device";
24
+ readonly SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: "select_device_for_switch_firmware_web_device";
24
25
  readonly FEATURES: "features";
25
26
  };
26
27
  export interface DeviceConnnectRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/events/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,IAAI,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;CAyBT,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC5B,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IAC/B,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;IACnF,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;CACrE;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,0BAA0B,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,MAAM,4BAA4B,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AACvF,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACrC,OAAO,EAAE,4BAA4B,CAAC;CACvC;AAED,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,YAAY,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,OAAO,YAAY,EACzB,EAAE,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,KACpC,IAAI,CAAC;AAEV,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,YAAY,EAAE,WAAW,CAQxE,CAAC"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/events/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,IAAI,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;CA0BT,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC5B,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IAC/B,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;IACnF,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;CACrE;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,0BAA0B,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,MAAM,4BAA4B,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AACvF,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACrC,OAAO,EAAE,4BAA4B,CAAC;CACvC;AAED,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,YAAY,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,OAAO,YAAY,EACzB,EAAE,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,KACpC,IAAI,CAAC;AAEV,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,YAAY,EAAE,WAAW,CAQxE,CAAC"}
@@ -10,6 +10,7 @@ export declare const UI_REQUEST: {
10
10
  readonly REQUEST_PASSPHRASE: "ui-request_passphrase";
11
11
  readonly REQUEST_PASSPHRASE_ON_DEVICE: "ui-request_passphrase_on_device";
12
12
  readonly REQUEST_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: "ui-request_select_device_in_bootloader_for_web_device";
13
+ readonly REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: "ui-request_select_device_for_switch_firmware_web_device";
13
14
  readonly CLOSE_UI_WINDOW: "ui-close_window";
14
15
  readonly CLOSE_UI_PIN_WINDOW: "ui-close_pin_window";
15
16
  readonly DEVICE_PROGRESS: "ui-device_progress";
@@ -77,6 +78,12 @@ export interface UiRequestSelectDeviceInBootloaderForWebDevice {
77
78
  device: Device;
78
79
  };
79
80
  }
81
+ export interface UiRequestSelectDeviceForSwitchFirmwareWebDevice {
82
+ type: typeof UI_REQUEST.REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE;
83
+ payload: {
84
+ device: Device;
85
+ };
86
+ }
80
87
  export interface FirmwareProcessing {
81
88
  type: typeof UI_REQUEST.FIRMWARE_PROCESSING;
82
89
  payload: {
@@ -117,7 +124,7 @@ export interface PreviousAddressResult {
117
124
  };
118
125
  };
119
126
  }
120
- export type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | UiRequestSelectDeviceInBootloaderForWebDevice | FirmwareProcessing | UiRequestSelectDeviceInBootloaderForWebDevice | FirmwareProgress | FirmwareTip | DeviceProgress | PreviousAddressResult;
127
+ export type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | UiRequestSelectDeviceInBootloaderForWebDevice | UiRequestSelectDeviceForSwitchFirmwareWebDevice | FirmwareProcessing | UiRequestSelectDeviceInBootloaderForWebDevice | FirmwareProgress | FirmwareTip | DeviceProgress | PreviousAddressResult;
121
128
  export declare enum FirmwareUpdateTipMessage {
122
129
  CheckLatestUiResource = "CheckLatestUiResource",
123
130
  StartDownloadFirmware = "StartDownloadFirmware",
@@ -133,6 +140,7 @@ export declare enum FirmwareUpdateTipMessage {
133
140
  AutoRebootToBootloader = "AutoRebootToBootloader",
134
141
  GoToBootloaderSuccess = "GoToBootloaderSuccess",
135
142
  SelectDeviceInBootloaderForWebDevice = "SelectDeviceInBootloaderForWebDevice",
143
+ SwitchFirmwareReconnectDevice = "SwitchFirmwareReconnectDevice",
136
144
  ConfirmOnDevice = "ConfirmOnDevice",
137
145
  FirmwareEraseSuccess = "FirmwareEraseSuccess",
138
146
  StartTransferData = "StartTransferData",
@@ -1 +1 @@
1
- {"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,qBAAqB,GACvC,OAAO,UAAU,CAAC,qBAAqB,GACvC,OAAO,UAAU,CAAC,8CAA8C,GAChE,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,2BAA2B,GAC7C,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,mCAAmC,CAAC;IAC1D,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC5C,OAAO,EAAE;QACP,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC;KACtD,CAAC;CACH;AAED,MAAM,MAAM,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,GAAG,yBAAyB,CAAC;KAC1F,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;QACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,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,6CAA6C;IAC5D,IAAI,EAAE,OAAO,UAAU,CAAC,2CAA2C,CAAC;IACpE,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,+CAA+C;IAC9D,IAAI,EAAE,OAAO,UAAU,CAAC,6CAA6C,CAAC;IACtE,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC5C,OAAO,EAAE;QACP,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC;KACtD,CAAC;CACH;AAED,MAAM,MAAM,2BAA2B,GAAG,cAAc,GAAG,oBAAoB,CAAC;AAChF,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;QACjB,YAAY,EAAE,2BAA2B,CAAC;KAC3C,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,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,UAAU,CAAC,eAAe,CAAC;IACxC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,UAAU,CAAC,uBAAuB,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YACJ,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,OAAO,GACf,uBAAuB,GACvB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,mBAAmB,GACnB,6CAA6C,GAC7C,+CAA+C,GAC/C,kBAAkB,GAClB,6CAA6C,GAC7C,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,qBAAqB,CAAC;AAE1B,oBAAY,wBAAwB;IAClC,qBAAqB,0BAA0B;IAE/C,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,gCAAgC,qCAAqC;IAErE,+BAA+B,oCAAoC;IACnE,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,uCAAuC,4CAA4C;IAEnF,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,oCAAoC,yCAAyC;IAC7E,6BAA6B,kCAAkC;IAC/D,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;CACpD;AAED,MAAM,MAAM,yBAAyB,GAAG,GAAG,wBAAwB,EAAE,CAAC;AAEtE,MAAM,MAAM,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"}
@@ -4,6 +4,7 @@ export declare const UI_RESPONSE: {
4
4
  readonly RECEIVE_PIN: "ui-receive_pin";
5
5
  readonly RECEIVE_PASSPHRASE: "ui-receive_passphrase";
6
6
  readonly SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: "ui-receive_select-device-in-bootloader-for-web-device";
7
+ readonly SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: "ui-receive_select-device-for-switch-firmware-web-device";
7
8
  };
8
9
  export interface UiResponsePin {
9
10
  type: typeof UI_RESPONSE.RECEIVE_PIN;
@@ -24,7 +25,13 @@ export interface UiResponseSelectDeviceInBootloaderForWebDevice {
24
25
  deviceId: string;
25
26
  };
26
27
  }
27
- export type UiResponseEvent = UiResponsePin | UiResponsePassphrase | UiResponseSelectDeviceInBootloaderForWebDevice;
28
+ export interface UiResponseSelectDeviceForSwitchFirmwareWebDevice {
29
+ type: typeof UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE;
30
+ payload: {
31
+ deviceId: string;
32
+ };
33
+ }
34
+ export type UiResponseEvent = UiResponsePin | UiResponsePassphrase | UiResponseSelectDeviceInBootloaderForWebDevice | UiResponseSelectDeviceForSwitchFirmwareWebDevice;
28
35
  export type UiResponseMessage = UiResponseEvent & {
29
36
  event: typeof UI_EVENT;
30
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ui-response.d.ts","sourceRoot":"","sources":["../../src/events/ui-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW;;;;CAKd,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,WAAW,CAAC,WAAW,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,WAAW,CAAC,kBAAkB,CAAC;IAC5C,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,8CAA8C;IAC7D,IAAI,EAAE,OAAO,WAAW,CAAC,0CAA0C,CAAC;IACpE,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,oBAAoB,GACpB,8CAA8C,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAAE,KAAK,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAE7E,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,QAAQ,EAAE,eAAe,CAQrE,CAAC"}
1
+ {"version":3,"file":"ui-response.d.ts","sourceRoot":"","sources":["../../src/events/ui-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW;;;;;CAOd,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,WAAW,CAAC,WAAW,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,WAAW,CAAC,kBAAkB,CAAC;IAC5C,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,8CAA8C;IAC7D,IAAI,EAAE,OAAO,WAAW,CAAC,0CAA0C,CAAC;IACpE,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,gDAAgD;IAC/D,IAAI,EAAE,OAAO,WAAW,CAAC,4CAA4C,CAAC;IACtE,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,oBAAoB,GACpB,8CAA8C,GAC9C,gDAAgD,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAAE,KAAK,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAE7E,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,QAAQ,EAAE,eAAe,CAQrE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2505,6 +2505,7 @@ declare const DEVICE: {
2505
2505
  readonly WORD: "word";
2506
2506
  readonly SUPPORT_FEATURES: "support_features";
2507
2507
  readonly SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: "select_device_in_bootloader_for_web_device";
2508
+ readonly SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: "select_device_for_switch_firmware_web_device";
2508
2509
  readonly FEATURES: "features";
2509
2510
  };
2510
2511
  interface DeviceConnnectRequest {
@@ -2558,6 +2559,7 @@ declare const UI_REQUEST: {
2558
2559
  readonly REQUEST_PASSPHRASE: "ui-request_passphrase";
2559
2560
  readonly REQUEST_PASSPHRASE_ON_DEVICE: "ui-request_passphrase_on_device";
2560
2561
  readonly REQUEST_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: "ui-request_select_device_in_bootloader_for_web_device";
2562
+ readonly REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: "ui-request_select_device_for_switch_firmware_web_device";
2561
2563
  readonly CLOSE_UI_WINDOW: "ui-close_window";
2562
2564
  readonly CLOSE_UI_PIN_WINDOW: "ui-close_pin_window";
2563
2565
  readonly DEVICE_PROGRESS: "ui-device_progress";
@@ -2625,6 +2627,12 @@ interface UiRequestSelectDeviceInBootloaderForWebDevice {
2625
2627
  device: Device$1;
2626
2628
  };
2627
2629
  }
2630
+ interface UiRequestSelectDeviceForSwitchFirmwareWebDevice {
2631
+ type: typeof UI_REQUEST.REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE;
2632
+ payload: {
2633
+ device: Device$1;
2634
+ };
2635
+ }
2628
2636
  interface FirmwareProcessing {
2629
2637
  type: typeof UI_REQUEST.FIRMWARE_PROCESSING;
2630
2638
  payload: {
@@ -2665,7 +2673,7 @@ interface PreviousAddressResult {
2665
2673
  };
2666
2674
  };
2667
2675
  }
2668
- type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | UiRequestSelectDeviceInBootloaderForWebDevice | FirmwareProcessing | UiRequestSelectDeviceInBootloaderForWebDevice | FirmwareProgress | FirmwareTip | DeviceProgress | PreviousAddressResult;
2676
+ type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | UiRequestSelectDeviceInBootloaderForWebDevice | UiRequestSelectDeviceForSwitchFirmwareWebDevice | FirmwareProcessing | UiRequestSelectDeviceInBootloaderForWebDevice | FirmwareProgress | FirmwareTip | DeviceProgress | PreviousAddressResult;
2669
2677
  declare enum FirmwareUpdateTipMessage {
2670
2678
  CheckLatestUiResource = "CheckLatestUiResource",
2671
2679
  StartDownloadFirmware = "StartDownloadFirmware",
@@ -2681,6 +2689,7 @@ declare enum FirmwareUpdateTipMessage {
2681
2689
  AutoRebootToBootloader = "AutoRebootToBootloader",
2682
2690
  GoToBootloaderSuccess = "GoToBootloaderSuccess",
2683
2691
  SelectDeviceInBootloaderForWebDevice = "SelectDeviceInBootloaderForWebDevice",
2692
+ SwitchFirmwareReconnectDevice = "SwitchFirmwareReconnectDevice",
2684
2693
  ConfirmOnDevice = "ConfirmOnDevice",
2685
2694
  FirmwareEraseSuccess = "FirmwareEraseSuccess",
2686
2695
  StartTransferData = "StartTransferData",
@@ -2802,6 +2811,7 @@ declare const UI_RESPONSE: {
2802
2811
  readonly RECEIVE_PIN: "ui-receive_pin";
2803
2812
  readonly RECEIVE_PASSPHRASE: "ui-receive_passphrase";
2804
2813
  readonly SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: "ui-receive_select-device-in-bootloader-for-web-device";
2814
+ readonly SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: "ui-receive_select-device-for-switch-firmware-web-device";
2805
2815
  };
2806
2816
  interface UiResponsePin {
2807
2817
  type: typeof UI_RESPONSE.RECEIVE_PIN;
@@ -2822,7 +2832,13 @@ interface UiResponseSelectDeviceInBootloaderForWebDevice {
2822
2832
  deviceId: string;
2823
2833
  };
2824
2834
  }
2825
- type UiResponseEvent = UiResponsePin | UiResponsePassphrase | UiResponseSelectDeviceInBootloaderForWebDevice;
2835
+ interface UiResponseSelectDeviceForSwitchFirmwareWebDevice {
2836
+ type: typeof UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE;
2837
+ payload: {
2838
+ deviceId: string;
2839
+ };
2840
+ }
2841
+ type UiResponseEvent = UiResponsePin | UiResponsePassphrase | UiResponseSelectDeviceInBootloaderForWebDevice | UiResponseSelectDeviceForSwitchFirmwareWebDevice;
2826
2842
  type UiResponseMessage = UiResponseEvent & {
2827
2843
  event: typeof UI_EVENT;
2828
2844
  };
@@ -3024,6 +3040,10 @@ interface DeviceEvents {
3024
3040
  Device,
3025
3041
  (err: any, deviceId: string) => void
3026
3042
  ];
3043
+ [DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE]: [
3044
+ Device,
3045
+ (err: any, deviceId: string) => void
3046
+ ];
3027
3047
  }
3028
3048
  interface Device {
3029
3049
  on<K extends keyof DeviceEvents>(type: K, listener: (...event: DeviceEvents[K]) => void): this;
@@ -3345,4 +3365,4 @@ declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, can
3345
3365
  declare const HardwareSDKLowLevel: ({ init, call, dispose, eventEmitter, addHardwareGlobalEventListener, uiResponse, cancel, updateSettings, switchTransport, }: LowLevelInjectApi) => LowLevelCoreApi;
3346
3366
  declare const HardwareTopLevelSdk: () => CoreApi;
3347
3367
 
3348
- export { AccountAddress, AccountAddresses, AlephiumAddress, AlephiumGetAddressParams, AlephiumSignMessageParams, AlephiumSignTransactionParams, AlephiumSignedTx, AlgoAddress, AlgoGetAddressParams, AlgoSignTransactionParams, AlgoSignedTx, AllFirmwareRelease, AllNetworkAddressParams, AllNetworkGetAddressParams, AptosAddress, AptosGetAddressParams, AptosGetPublicKeyParams, AptosMessageSignature, AptosPublicKey, AptosSignInMessageParams, AptosSignInMessageSignature, AptosSignMessageParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BenfenAddress, BenfenGetAddressParams, BenfenGetPublicKeyParams, BenfenPublicKey, BenfenSignMessageParams, BenfenSignTransactionParams, BenfenSignedTx, BleReleaseInfoEvent, BleReleaseInfoPayload, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CardanoAddress, CardanoGetAddressMethodParams, CardanoGetAddressParams, CardanoSignMessageMethodParams, CardanoSignMessageParams, CardanoSignTransaction, CardanoSignedTxData, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, CosmosAddress, CosmosGetAddressParams, CosmosGetPublicKeyParams, CosmosPublicKey, CosmosSignTransactionParams, CosmosSignedTx, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesPayload, DeviceFirmwareRange, DeviceFlagsParams, DeviceModelToTypes, DeviceProgress, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendSupportFeatures, DeviceSettingsParams, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceTypeToModels, DeviceUploadResourceParams, DeviceUploadResourceResponse, DeviceVerifyParams, DeviceVerifySignature, DnxAddress, DnxGetAddressParams, DnxSignTransactionParams, DnxSignature, DnxTxKey, EOneKeyDeviceMode, EVMAccessList, EVMAddress, EVMAuthorization, EVMAuthorizationSignature, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMTransactionEIP7702, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FilecoinAddress, FilecoinGetAddressParams, FilecoinSignTransactionParams, FilecoinSignedTx, FirmwareEvent, FirmwareMessage, FirmwareProcessing, FirmwareProgress, FirmwareRange, FirmwareRelease, FirmwareTip, FirmwareUpdateBinaryParams, FirmwareUpdateParams, FirmwareUpdateTipMessage, FirmwareUpdateV3Params, HardwareSDKLowLevel, HardwareTopLevelSdk, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareField, IFirmwareReleaseInfo, IFirmwareUpdateProgressType, IFirmwareUpdateTipMessage, IFrameBridge, IFrameCallMessage, IFrameCallback, IFrameCallbackMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, IFrameSwitchTransport, IFrameSwitchTransportMessage, ILocale, ITransportStatus, IVersionArray, IVersionRange, KaspaAddress, KaspaGetAddressParams, KaspaSignInputParams, KaspaSignOutputParams, KaspaSignTransactionParams, KaspaSignature, KnownDevice, LOG, LOG_EVENT, LogBlockEvent, LogEvent, LogEventMessage, LogOutput, LoggerNames, LowLevelCoreApi, LowLevelInjectApi, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, NervosAddress, NervosGetAddressParams, NervosSignTransactionParams, NervosSignedTx, NexaAddress, NexaGetAddressParams, NexaSignInputParams, NexaSignOutputParams, NexaSignTransactionParams, NexaSignature, OnekeyFeatures, Params, PassphraseRequestPayload, PolkadotAddress, PolkadotGetAddressParams, PolkadotSignTransactionParams, PolkadotSignedTx, PostMessageEvent, PreviousAddressResult, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, RequestContext, Response, ScdoAddress, ScdoGetAddressParams, ScdoSignMessageParams, ScdoSignTransactionParams, ScdoSignedTx, SdkTracingContext, SearchDevice, SignedTransaction, SolSignMessageParams, SolSignMessageResponse, SolSignOffchainMessageParams, SolSignOffchainMessageResponse, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SuiAddress, SuiGetAddressParams, SuiGetPublicKeyParams, SuiPublicKey, SuiSignMessageParams, SuiSignTransactionParams, SuiSignedTx, SupportFeatureType, SupportFeatures, TonAddress, TonGetAddressParams, TonSignMessageParams, TonSignProofParams, TopLevelInjectApi, TransactionOptions, TransportReleaseStatus, TronAddress, TronDelegateResourceContract, TronFreezeBalanceV2Contract, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, TronUnDelegateResourceContract, TronUnfreezeBalanceV2Contract, TronWithdrawBalanceContract, TronWithdrawExpireUnfreezeContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestFirmwareProgressing, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestSelectDeviceInBootloaderForWebDevice, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UiResponseSelectDeviceInBootloaderForWebDevice, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, checkNeedUpdateBootForClassicAndMini, checkNeedUpdateBootForTouch, cleanupCallback, cleanupSdkInstance, completeRequestContext, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createRequestContext, createResponseMessage, createSdkTracingContext, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, executeCallback, formatRequestContext, generateInstanceId, generateSdkInstanceId, getActiveRequestsByDeviceInstance, getDeviceBLEFirmwareVersion, getDeviceBleName, getDeviceBoardloaderVersion, getDeviceBootloaderVersion, getDeviceFirmwareVersion, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceUUID, getEnv, getFirmwareType, getFirmwareUpdateField, getFirmwareUpdateFieldArray, getHDPath, getHomeScreenDefaultList, getHomeScreenHex, getHomeScreenSize, getLog, getLogger, getMethodVersionRange, getOutputScriptType, getSDKVersion, getScriptType, getTimeStamp, httpRequest, init as initCore, isBleConnect, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, patchFeatures, safeThrowError, setLoggerPostMessage, supportInputPinOnSoftware, switchTransport, transportEnv, updateRequestContext, versionCompare, versionSplit, wait, whitelist, whitelistExtension };
3368
+ export { AccountAddress, AccountAddresses, AlephiumAddress, AlephiumGetAddressParams, AlephiumSignMessageParams, AlephiumSignTransactionParams, AlephiumSignedTx, AlgoAddress, AlgoGetAddressParams, AlgoSignTransactionParams, AlgoSignedTx, AllFirmwareRelease, AllNetworkAddressParams, AllNetworkGetAddressParams, AptosAddress, AptosGetAddressParams, AptosGetPublicKeyParams, AptosMessageSignature, AptosPublicKey, AptosSignInMessageParams, AptosSignInMessageSignature, AptosSignMessageParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BenfenAddress, BenfenGetAddressParams, BenfenGetPublicKeyParams, BenfenPublicKey, BenfenSignMessageParams, BenfenSignTransactionParams, BenfenSignedTx, BleReleaseInfoEvent, BleReleaseInfoPayload, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CardanoAddress, CardanoGetAddressMethodParams, CardanoGetAddressParams, CardanoSignMessageMethodParams, CardanoSignMessageParams, CardanoSignTransaction, CardanoSignedTxData, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, CosmosAddress, CosmosGetAddressParams, CosmosGetPublicKeyParams, CosmosPublicKey, CosmosSignTransactionParams, CosmosSignedTx, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesPayload, DeviceFirmwareRange, DeviceFlagsParams, DeviceModelToTypes, DeviceProgress, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendSupportFeatures, DeviceSettingsParams, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceTypeToModels, DeviceUploadResourceParams, DeviceUploadResourceResponse, DeviceVerifyParams, DeviceVerifySignature, DnxAddress, DnxGetAddressParams, DnxSignTransactionParams, DnxSignature, DnxTxKey, EOneKeyDeviceMode, EVMAccessList, EVMAddress, EVMAuthorization, EVMAuthorizationSignature, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMTransactionEIP7702, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FilecoinAddress, FilecoinGetAddressParams, FilecoinSignTransactionParams, FilecoinSignedTx, FirmwareEvent, FirmwareMessage, FirmwareProcessing, FirmwareProgress, FirmwareRange, FirmwareRelease, FirmwareTip, FirmwareUpdateBinaryParams, FirmwareUpdateParams, FirmwareUpdateTipMessage, FirmwareUpdateV3Params, HardwareSDKLowLevel, HardwareTopLevelSdk, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareField, IFirmwareReleaseInfo, IFirmwareUpdateProgressType, IFirmwareUpdateTipMessage, IFrameBridge, IFrameCallMessage, IFrameCallback, IFrameCallbackMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, IFrameSwitchTransport, IFrameSwitchTransportMessage, ILocale, ITransportStatus, IVersionArray, IVersionRange, KaspaAddress, KaspaGetAddressParams, KaspaSignInputParams, KaspaSignOutputParams, KaspaSignTransactionParams, KaspaSignature, KnownDevice, LOG, LOG_EVENT, LogBlockEvent, LogEvent, LogEventMessage, LogOutput, LoggerNames, LowLevelCoreApi, LowLevelInjectApi, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, NervosAddress, NervosGetAddressParams, NervosSignTransactionParams, NervosSignedTx, NexaAddress, NexaGetAddressParams, NexaSignInputParams, NexaSignOutputParams, NexaSignTransactionParams, NexaSignature, OnekeyFeatures, Params, PassphraseRequestPayload, PolkadotAddress, PolkadotGetAddressParams, PolkadotSignTransactionParams, PolkadotSignedTx, PostMessageEvent, PreviousAddressResult, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, RequestContext, Response, ScdoAddress, ScdoGetAddressParams, ScdoSignMessageParams, ScdoSignTransactionParams, ScdoSignedTx, SdkTracingContext, SearchDevice, SignedTransaction, SolSignMessageParams, SolSignMessageResponse, SolSignOffchainMessageParams, SolSignOffchainMessageResponse, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SuiAddress, SuiGetAddressParams, SuiGetPublicKeyParams, SuiPublicKey, SuiSignMessageParams, SuiSignTransactionParams, SuiSignedTx, SupportFeatureType, SupportFeatures, TonAddress, TonGetAddressParams, TonSignMessageParams, TonSignProofParams, TopLevelInjectApi, TransactionOptions, TransportReleaseStatus, TronAddress, TronDelegateResourceContract, TronFreezeBalanceV2Contract, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, TronUnDelegateResourceContract, TronUnfreezeBalanceV2Contract, TronWithdrawBalanceContract, TronWithdrawExpireUnfreezeContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestFirmwareProgressing, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestSelectDeviceForSwitchFirmwareWebDevice, UiRequestSelectDeviceInBootloaderForWebDevice, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UiResponseSelectDeviceForSwitchFirmwareWebDevice, UiResponseSelectDeviceInBootloaderForWebDevice, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, checkNeedUpdateBootForClassicAndMini, checkNeedUpdateBootForTouch, cleanupCallback, cleanupSdkInstance, completeRequestContext, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createRequestContext, createResponseMessage, createSdkTracingContext, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, executeCallback, formatRequestContext, generateInstanceId, generateSdkInstanceId, getActiveRequestsByDeviceInstance, getDeviceBLEFirmwareVersion, getDeviceBleName, getDeviceBoardloaderVersion, getDeviceBootloaderVersion, getDeviceFirmwareVersion, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceUUID, getEnv, getFirmwareType, getFirmwareUpdateField, getFirmwareUpdateFieldArray, getHDPath, getHomeScreenDefaultList, getHomeScreenHex, getHomeScreenSize, getLog, getLogger, getMethodVersionRange, getOutputScriptType, getSDKVersion, getScriptType, getTimeStamp, httpRequest, init as initCore, isBleConnect, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, patchFeatures, safeThrowError, setLoggerPostMessage, supportInputPinOnSoftware, switchTransport, transportEnv, updateRequestContext, versionCompare, versionSplit, wait, whitelist, whitelistExtension };
package/dist/index.js CHANGED
@@ -26190,6 +26190,7 @@ const UI_REQUEST = {
26190
26190
  REQUEST_PASSPHRASE: 'ui-request_passphrase',
26191
26191
  REQUEST_PASSPHRASE_ON_DEVICE: 'ui-request_passphrase_on_device',
26192
26192
  REQUEST_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: 'ui-request_select_device_in_bootloader_for_web_device',
26193
+ REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: 'ui-request_select_device_for_switch_firmware_web_device',
26193
26194
  CLOSE_UI_WINDOW: 'ui-close_window',
26194
26195
  CLOSE_UI_PIN_WINDOW: 'ui-close_pin_window',
26195
26196
  DEVICE_PROGRESS: 'ui-device_progress',
@@ -26231,6 +26232,7 @@ exports.FirmwareUpdateTipMessage = void 0;
26231
26232
  FirmwareUpdateTipMessage["AutoRebootToBootloader"] = "AutoRebootToBootloader";
26232
26233
  FirmwareUpdateTipMessage["GoToBootloaderSuccess"] = "GoToBootloaderSuccess";
26233
26234
  FirmwareUpdateTipMessage["SelectDeviceInBootloaderForWebDevice"] = "SelectDeviceInBootloaderForWebDevice";
26235
+ FirmwareUpdateTipMessage["SwitchFirmwareReconnectDevice"] = "SwitchFirmwareReconnectDevice";
26234
26236
  FirmwareUpdateTipMessage["ConfirmOnDevice"] = "ConfirmOnDevice";
26235
26237
  FirmwareUpdateTipMessage["FirmwareEraseSuccess"] = "FirmwareEraseSuccess";
26236
26238
  FirmwareUpdateTipMessage["StartTransferData"] = "StartTransferData";
@@ -26275,6 +26277,7 @@ const UI_RESPONSE = {
26275
26277
  RECEIVE_PIN: 'ui-receive_pin',
26276
26278
  RECEIVE_PASSPHRASE: 'ui-receive_passphrase',
26277
26279
  SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: 'ui-receive_select-device-in-bootloader-for-web-device',
26280
+ SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: 'ui-receive_select-device-for-switch-firmware-web-device',
26278
26281
  };
26279
26282
  const createUiResponse = (type, payload) => ({
26280
26283
  event: UI_EVENT,
@@ -26302,6 +26305,7 @@ const DEVICE = {
26302
26305
  WORD: 'word',
26303
26306
  SUPPORT_FEATURES: 'support_features',
26304
26307
  SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: 'select_device_in_bootloader_for_web_device',
26308
+ SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: 'select_device_for_switch_firmware_web_device',
26305
26309
  FEATURES: 'features',
26306
26310
  };
26307
26311
  const createDeviceMessage = (type, payload) => ({
@@ -29369,7 +29373,6 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
29369
29373
  constructor() {
29370
29374
  super(...arguments);
29371
29375
  this.checkPromise = null;
29372
- this.hasPromptedWebUsbBootloaderReauth = false;
29373
29376
  this.postTipMessage = (message) => {
29374
29377
  this.postMessage(createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
29375
29378
  device: this.device.toMessageObject(),
@@ -29415,6 +29418,22 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
29415
29418
  });
29416
29419
  });
29417
29420
  }
29421
+ _promptDeviceForSwitchFirmwareWebDevice() {
29422
+ return __awaiter(this, void 0, void 0, function* () {
29423
+ return new Promise((resolve, reject) => {
29424
+ if (this.device.listenerCount(DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE) > 0) {
29425
+ this.device.emit(DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE, this.device, (err, deviceId) => {
29426
+ if (err) {
29427
+ reject(err);
29428
+ }
29429
+ else {
29430
+ resolve(deviceId);
29431
+ }
29432
+ });
29433
+ }
29434
+ });
29435
+ });
29436
+ }
29418
29437
  checkDeviceToBootloader(connectId) {
29419
29438
  var _a, _b;
29420
29439
  this.checkPromise = hdShared.createDeferred();
@@ -29477,23 +29496,6 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
29477
29496
  }
29478
29497
  }, 30000);
29479
29498
  }
29480
- ensureWebUsbBootloaderReauthPrompt() {
29481
- return __awaiter(this, void 0, void 0, function* () {
29482
- if (this.hasPromptedWebUsbBootloaderReauth ||
29483
- !DataManager.isBrowserWebUsb(DataManager.getSettings('env')) ||
29484
- this.device.listenerCount(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE) === 0) {
29485
- return;
29486
- }
29487
- this.hasPromptedWebUsbBootloaderReauth = true;
29488
- this.postTipMessage(exports.FirmwareUpdateTipMessage.SelectDeviceInBootloaderForWebDevice);
29489
- try {
29490
- yield this._promptDeviceInBootloaderForWebDevice();
29491
- }
29492
- catch (error) {
29493
- Log$7.log('WebUSB 设备重新授权失败: ', error);
29494
- }
29495
- });
29496
- }
29497
29499
  _checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer) {
29498
29500
  var _a, _b, _c, _d, _e;
29499
29501
  return __awaiter(this, void 0, void 0, function* () {
@@ -30250,6 +30252,7 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30250
30252
  constructor() {
30251
30253
  super(...arguments);
30252
30254
  this.checkPromise = null;
30255
+ this.isSwitchFirmware = false;
30253
30256
  }
30254
30257
  init() {
30255
30258
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.NOT_INITIALIZE];
@@ -30295,6 +30298,7 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30295
30298
  }
30296
30299
  const deviceFirmwareType = getFirmwareType(features);
30297
30300
  const firmwareType = (_a = this.params.firmwareType) !== null && _a !== void 0 ? _a : deviceFirmwareType;
30301
+ this.isSwitchFirmware = firmwareType !== deviceFirmwareType;
30298
30302
  let resourceBinary = null;
30299
30303
  let fwBinaryMap = [];
30300
30304
  let bootloaderBinary = null;
@@ -30504,18 +30508,22 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30504
30508
  this.postProgressMessage(0, 'installingFirmware');
30505
30509
  const installStartTime = Date.now();
30506
30510
  const maxWaitTimeForInstallingFirmware = 5 * 60 * 1000;
30511
+ let getFeaturesTimeoutCount = 0;
30512
+ const maxGetFeaturesTimeoutBeforeReauth = 3;
30507
30513
  while (true) {
30508
30514
  if (Date.now() - installStartTime > maxWaitTimeForInstallingFirmware) {
30509
30515
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware update process timeout after 5 minutes');
30510
30516
  }
30511
30517
  try {
30512
30518
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
30519
+ const timeoutMs = 3000;
30513
30520
  const featuresRes = yield Promise.race([
30514
30521
  typedCall('GetFeatures', 'Features', {}),
30515
30522
  new Promise((_, reject) => {
30516
- setTimeout(() => reject(new Error('GetFeatures timeout after 3 seconds')), 3000);
30523
+ setTimeout(() => reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodNotResponse, 'GetFeatures timeout', { method: 'GetFeatures', timeoutMs })), timeoutMs);
30517
30524
  }),
30518
30525
  ]);
30526
+ getFeaturesTimeoutCount = 0;
30519
30527
  const features = featuresRes.message;
30520
30528
  const bootloaderVersion = getDeviceBootloaderVersion(features).join('.');
30521
30529
  const bleVersion = getDeviceBLEFirmwareVersion(features).join('.');
@@ -30532,17 +30540,31 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30532
30540
  yield hdShared.wait(1000);
30533
30541
  }
30534
30542
  catch (error) {
30543
+ Log$4.log('getFeatures error', error);
30544
+ let shouldReconnect = true;
30535
30545
  const progress = this.extractUpdateModeProgress(error);
30536
30546
  if (progress !== null) {
30547
+ getFeaturesTimeoutCount = 0;
30537
30548
  this.postProgressMessage(progress, 'installingFirmware');
30538
30549
  yield hdShared.wait(1000);
30550
+ shouldReconnect = false;
30551
+ }
30552
+ else if (this.isGetFeaturesTimeoutError(error)) {
30553
+ getFeaturesTimeoutCount += 1;
30554
+ if (getFeaturesTimeoutCount <= maxGetFeaturesTimeoutBeforeReauth) {
30555
+ yield hdShared.wait(1000);
30556
+ shouldReconnect = false;
30557
+ }
30539
30558
  }
30540
30559
  else {
30560
+ getFeaturesTimeoutCount = 0;
30561
+ }
30562
+ if (shouldReconnect) {
30541
30563
  yield hdShared.wait(1000);
30542
30564
  const reconnectTimeout = this.isBleReconnect() && (this.params.bleBinary || this.params.bleVersion)
30543
30565
  ? 3 * 60 * 1000
30544
30566
  : 60 * 1000;
30545
- yield this.ensureWebUsbBootloaderReauthPrompt();
30567
+ getFeaturesTimeoutCount = 0;
30546
30568
  yield this.waitForDeviceReconnect(reconnectTimeout);
30547
30569
  }
30548
30570
  }
@@ -30561,6 +30583,12 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30561
30583
  const progress = parseInt(match[1], 10);
30562
30584
  return Number.isNaN(progress) ? null : progress;
30563
30585
  }
30586
+ isGetFeaturesTimeoutError(error) {
30587
+ var _a;
30588
+ return (error instanceof hdShared.HardwareError &&
30589
+ error.errorCode === hdShared.HardwareErrorCode.CallMethodNotResponse &&
30590
+ ((_a = error.params) === null || _a === void 0 ? void 0 : _a.method) === 'GetFeatures');
30591
+ }
30564
30592
  normalizeErrorMessage(error) {
30565
30593
  if (!error) {
30566
30594
  return '';
@@ -30579,11 +30607,20 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30579
30607
  }
30580
30608
  return '';
30581
30609
  }
30610
+ canPromptWebUsbSwitchFirmwareReconnect() {
30611
+ if (!this.isSwitchFirmware) {
30612
+ return false;
30613
+ }
30614
+ return (DataManager.isBrowserWebUsb(DataManager.getSettings('env')) &&
30615
+ !this.payload.skipWebDevicePrompt &&
30616
+ this.device.listenerCount(DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE) > 0);
30617
+ }
30582
30618
  waitForDeviceReconnect(timeout) {
30583
30619
  var _a, _b, _c, _d;
30584
30620
  return __awaiter(this, void 0, void 0, function* () {
30585
30621
  const startTime = Date.now();
30586
30622
  const isBleReconnect = this.isBleReconnect();
30623
+ let webUsbCheckCount = 0;
30587
30624
  while (Date.now() - startTime < timeout) {
30588
30625
  try {
30589
30626
  if (isBleReconnect) {
@@ -30607,6 +30644,23 @@ class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod {
30607
30644
  else {
30608
30645
  const deviceDiff = yield ((_b = this.device.deviceConnector) === null || _b === void 0 ? void 0 : _b.enumerate());
30609
30646
  const devicesDescriptor = (_c = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _c !== void 0 ? _c : [];
30647
+ const canPromptSwitchFirmwareReconnect = this.canPromptWebUsbSwitchFirmwareReconnect();
30648
+ if (canPromptSwitchFirmwareReconnect) {
30649
+ webUsbCheckCount += 1;
30650
+ if (webUsbCheckCount > 4) {
30651
+ this.postTipMessage(exports.FirmwareUpdateTipMessage.SwitchFirmwareReconnectDevice);
30652
+ try {
30653
+ yield this._promptDeviceForSwitchFirmwareWebDevice();
30654
+ }
30655
+ catch (e) {
30656
+ Log$4.log('WebUSB re-authorization failed: ', e);
30657
+ }
30658
+ webUsbCheckCount = 0;
30659
+ }
30660
+ }
30661
+ else {
30662
+ webUsbCheckCount = 0;
30663
+ }
30610
30664
  const { deviceList } = yield DevicePool.getDevices(devicesDescriptor, this.connectId);
30611
30665
  if (deviceList.length === 1) {
30612
30666
  this.device.updateFromCache(deviceList[0]);
@@ -39895,6 +39949,7 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
39895
39949
  device.on(DEVICE.PASSPHRASE_ON_DEVICE, onEnterPassphraseOnDeviceHandler);
39896
39950
  device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
39897
39951
  device.on(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE, onSelectDeviceInBootloaderForWebDeviceHandler);
39952
+ device.on(DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE, onSelectDeviceForSwitchFirmwareWebDeviceHandler);
39898
39953
  try {
39899
39954
  if (method.connectId) {
39900
39955
  yield context.waitForCallbackTasks(method.connectId);
@@ -40450,6 +40505,15 @@ const onSelectDeviceInBootloaderForWebDeviceHandler = (...[device, callback]) =>
40450
40505
  const uiResp = yield uiPromise.promise;
40451
40506
  callback(null, uiResp.payload.deviceId);
40452
40507
  });
40508
+ const onSelectDeviceForSwitchFirmwareWebDeviceHandler = (...[device, callback]) => __awaiter(void 0, void 0, void 0, function* () {
40509
+ Log.debug('onSelectDeviceForSwitchFirmwareWebDeviceHandler');
40510
+ const uiPromise = createUiPromise(UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE, device);
40511
+ postMessage(createUiMessage(UI_REQUEST.REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE, {
40512
+ device: device.toMessageObject(),
40513
+ }));
40514
+ const uiResp = yield uiPromise.promise;
40515
+ callback(null, uiResp.payload.deviceId);
40516
+ });
40453
40517
  const postMessage = (message) => {
40454
40518
  if (!_core) {
40455
40519
  return;
@@ -40497,7 +40561,8 @@ class Core extends events.exports {
40497
40561
  switch (message.type) {
40498
40562
  case UI_RESPONSE.RECEIVE_PIN:
40499
40563
  case UI_RESPONSE.RECEIVE_PASSPHRASE:
40500
- case UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: {
40564
+ case UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE:
40565
+ case UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: {
40501
40566
  const uiPromise = findUiPromise(message.type);
40502
40567
  if (uiPromise) {
40503
40568
  Log.log('receive UI Response: ', message.type);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "1.1.21-alpha.1",
3
+ "version": "1.1.21-alpha.3",
4
4
  "description": "Core processes and APIs for communicating with OneKey hardware devices.",
5
5
  "author": "OneKey",
6
6
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
@@ -25,8 +25,8 @@
25
25
  "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
26
26
  },
27
27
  "dependencies": {
28
- "@onekeyfe/hd-shared": "1.1.21-alpha.1",
29
- "@onekeyfe/hd-transport": "1.1.21-alpha.1",
28
+ "@onekeyfe/hd-shared": "1.1.21-alpha.3",
29
+ "@onekeyfe/hd-transport": "1.1.21-alpha.3",
30
30
  "axios": "1.12.2",
31
31
  "bignumber.js": "^9.0.2",
32
32
  "bytebuffer": "^5.0.1",
@@ -44,5 +44,5 @@
44
44
  "@types/w3c-web-usb": "^1.0.10",
45
45
  "@types/web-bluetooth": "^0.0.21"
46
46
  },
47
- "gitHead": "933dbbcf45753b685ba7f76500158de42b68215b"
47
+ "gitHead": "d2759a545080e3bf0910b2c4ecdf555f77b388bd"
48
48
  }
@@ -1,4 +1,4 @@
1
- import { EDeviceType, ERRORS, HardwareErrorCode, wait } from '@onekeyfe/hd-shared';
1
+ import { EDeviceType, ERRORS, HardwareError, HardwareErrorCode, wait } from '@onekeyfe/hd-shared';
2
2
  import semver from 'semver';
3
3
  import JSZip from 'jszip';
4
4
 
@@ -17,6 +17,7 @@ import { getBinary, getSysResourceBinary } from './firmware/getBinary';
17
17
  import { DataManager } from '../data-manager';
18
18
  import { FirmwareUpdateBaseMethod } from './firmware/FirmwareUpdateBaseMethod';
19
19
  import { DevicePool } from '../device/DevicePool';
20
+ import { DEVICE } from '../events';
20
21
 
21
22
  import type { FirmwareUpdateV3Params } from '../types/api/firmwareUpdate';
22
23
  import type { Deferred, EFirmwareType } from '@onekeyfe/hd-shared';
@@ -40,6 +41,8 @@ export const MIN_UPDATE_V3_BOOTLOADER_VERSION = '2.8.0';
40
41
  export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareUpdateV3Params> {
41
42
  checkPromise: Deferred<any> | null = null;
42
43
 
44
+ private isSwitchFirmware = false;
45
+
43
46
  init() {
44
47
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.NOT_INITIALIZE];
45
48
  this.requireDeviceMode = [];
@@ -90,6 +93,7 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
90
93
 
91
94
  const deviceFirmwareType = getFirmwareType(features);
92
95
  const firmwareType = this.params.firmwareType ?? deviceFirmwareType;
96
+ this.isSwitchFirmware = firmwareType !== deviceFirmwareType;
93
97
 
94
98
  let resourceBinary: ArrayBuffer | null = null;
95
99
  let fwBinaryMap: { fileName: string; binary: ArrayBuffer }[] = [];
@@ -336,6 +340,9 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
336
340
  const installStartTime = Date.now();
337
341
  const maxWaitTimeForInstallingFirmware = 5 * 60 * 1000; // 5 minutes in milliseconds
338
342
 
343
+ let getFeaturesTimeoutCount = 0;
344
+ const maxGetFeaturesTimeoutBeforeReauth = 3;
345
+
339
346
  // eslint-disable-next-line no-constant-condition
340
347
  while (true) {
341
348
  // Check if timeout exceeded
@@ -348,12 +355,24 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
348
355
 
349
356
  try {
350
357
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
358
+ const timeoutMs = 3000;
351
359
  const featuresRes = await Promise.race<TypedResponseMessage<'Features'>>([
352
360
  typedCall('GetFeatures', 'Features', {}),
353
361
  new Promise<never>((_, reject) => {
354
- setTimeout(() => reject(new Error('GetFeatures timeout after 3 seconds')), 3000);
362
+ setTimeout(
363
+ () =>
364
+ reject(
365
+ ERRORS.TypedError(
366
+ HardwareErrorCode.CallMethodNotResponse,
367
+ 'GetFeatures timeout',
368
+ { method: 'GetFeatures', timeoutMs }
369
+ )
370
+ ),
371
+ timeoutMs
372
+ );
355
373
  }),
356
374
  ]);
375
+ getFeaturesTimeoutCount = 0;
357
376
  const features = featuresRes.message;
358
377
  const bootloaderVersion = getDeviceBootloaderVersion(features).join('.');
359
378
  const bleVersion = getDeviceBLEFirmwareVersion(features).join('.');
@@ -371,11 +390,26 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
371
390
  // Still in update mode; continue polling (e.g., iOS may return firmwareVersion 0.0.0 during switches)
372
391
  await wait(1000);
373
392
  } catch (error) {
393
+ Log.log('getFeatures error', error);
394
+ let shouldReconnect = true;
374
395
  const progress = this.extractUpdateModeProgress(error);
375
396
  if (progress !== null) {
397
+ getFeaturesTimeoutCount = 0;
376
398
  this.postProgressMessage(progress, 'installingFirmware');
377
399
  await wait(1000);
400
+ shouldReconnect = false;
401
+ } else if (this.isGetFeaturesTimeoutError(error)) {
402
+ getFeaturesTimeoutCount += 1;
403
+ // Retry transient GetFeatures timeouts to avoid unnecessary WebUSB re-authorization prompts.
404
+ if (getFeaturesTimeoutCount <= maxGetFeaturesTimeoutBeforeReauth) {
405
+ await wait(1000);
406
+ shouldReconnect = false;
407
+ }
378
408
  } else {
409
+ getFeaturesTimeoutCount = 0;
410
+ }
411
+
412
+ if (shouldReconnect) {
379
413
  await wait(1000);
380
414
  /**
381
415
  * Needs second reconnect case:
@@ -387,7 +421,7 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
387
421
  ? 3 * 60 * 1000 // 3 minutes for BLE reconnect
388
422
  : 60 * 1000; // 1 minute for normal reconnect
389
423
 
390
- await this.ensureWebUsbBootloaderReauthPrompt();
424
+ getFeaturesTimeoutCount = 0;
391
425
  await this.waitForDeviceReconnect(reconnectTimeout);
392
426
  }
393
427
  }
@@ -410,6 +444,14 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
410
444
  return Number.isNaN(progress) ? null : progress;
411
445
  }
412
446
 
447
+ private isGetFeaturesTimeoutError(error: unknown): boolean {
448
+ return (
449
+ error instanceof HardwareError &&
450
+ error.errorCode === HardwareErrorCode.CallMethodNotResponse &&
451
+ error.params?.method === 'GetFeatures'
452
+ );
453
+ }
454
+
413
455
  private normalizeErrorMessage(error: unknown): string {
414
456
  if (!error) {
415
457
  return '';
@@ -429,6 +471,17 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
429
471
  return '';
430
472
  }
431
473
 
474
+ private canPromptWebUsbSwitchFirmwareReconnect(): boolean {
475
+ if (!this.isSwitchFirmware) {
476
+ return false;
477
+ }
478
+ return (
479
+ DataManager.isBrowserWebUsb(DataManager.getSettings('env')) &&
480
+ !this.payload.skipWebDevicePrompt &&
481
+ this.device.listenerCount(DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE) > 0
482
+ );
483
+ }
484
+
432
485
  /**
433
486
  * @description Reconnect device - While update with bootloader, it will reconnect device
434
487
  * @param {number} timeout - The timeout for the reconnection
@@ -436,6 +489,7 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
436
489
  async waitForDeviceReconnect(timeout: number) {
437
490
  const startTime = Date.now();
438
491
  const isBleReconnect = this.isBleReconnect();
492
+ let webUsbCheckCount = 0;
439
493
  while (Date.now() - startTime < timeout) {
440
494
  try {
441
495
  if (isBleReconnect) {
@@ -462,6 +516,24 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
462
516
  } else {
463
517
  const deviceDiff = await this.device.deviceConnector?.enumerate();
464
518
  const devicesDescriptor = deviceDiff?.descriptors ?? [];
519
+
520
+ const canPromptSwitchFirmwareReconnect = this.canPromptWebUsbSwitchFirmwareReconnect();
521
+
522
+ if (canPromptSwitchFirmwareReconnect) {
523
+ webUsbCheckCount += 1;
524
+ if (webUsbCheckCount > 4) {
525
+ this.postTipMessage(FirmwareUpdateTipMessage.SwitchFirmwareReconnectDevice);
526
+ try {
527
+ await this._promptDeviceForSwitchFirmwareWebDevice();
528
+ } catch (e) {
529
+ Log.log('WebUSB re-authorization failed: ', e);
530
+ }
531
+ webUsbCheckCount = 0;
532
+ }
533
+ } else {
534
+ webUsbCheckCount = 0;
535
+ }
536
+
465
537
  const { deviceList } = await DevicePool.getDevices(devicesDescriptor, this.connectId);
466
538
 
467
539
  if (deviceList.length === 1) {
@@ -40,8 +40,6 @@ const isDeviceDisconnectedError = (error: unknown) => {
40
40
  export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
41
41
  checkPromise: Deferred<any> | null = null;
42
42
 
43
- protected hasPromptedWebUsbBootloaderReauth = false;
44
-
45
43
  init(): void {}
46
44
 
47
45
  run(): Promise<any> {
@@ -94,7 +92,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
94
92
  );
95
93
  };
96
94
 
97
- private async _promptDeviceInBootloaderForWebDevice() {
95
+ protected async _promptDeviceInBootloaderForWebDevice() {
98
96
  return new Promise((resolve, reject) => {
99
97
  if (this.device.listenerCount(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE) > 0) {
100
98
  this.device.emit(
@@ -112,6 +110,24 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
112
110
  });
113
111
  }
114
112
 
113
+ protected async _promptDeviceForSwitchFirmwareWebDevice() {
114
+ return new Promise((resolve, reject) => {
115
+ if (this.device.listenerCount(DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE) > 0) {
116
+ this.device.emit(
117
+ DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE,
118
+ this.device,
119
+ (err, deviceId) => {
120
+ if (err) {
121
+ reject(err);
122
+ } else {
123
+ resolve(deviceId);
124
+ }
125
+ }
126
+ );
127
+ }
128
+ });
129
+ }
130
+
115
131
  checkDeviceToBootloader(connectId: string | undefined) {
116
132
  this.checkPromise = createDeferred();
117
133
  const env = DataManager.getSettings('env');
@@ -195,29 +211,6 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
195
211
  }, 30000);
196
212
  }
197
213
 
198
- /**
199
- * 仅在 firmware 被抹掉、需要重新授权的 bootloader 场景下才提示 WebUSB
200
- * (比如 BTC-only 与通用固件互转后算作新设备)。
201
- */
202
- protected async ensureWebUsbBootloaderReauthPrompt() {
203
- if (
204
- this.hasPromptedWebUsbBootloaderReauth ||
205
- !DataManager.isBrowserWebUsb(DataManager.getSettings('env')) ||
206
- this.device.listenerCount(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE) === 0
207
- ) {
208
- return;
209
- }
210
-
211
- this.hasPromptedWebUsbBootloaderReauth = true;
212
- this.postTipMessage(FirmwareUpdateTipMessage.SelectDeviceInBootloaderForWebDevice);
213
-
214
- try {
215
- await this._promptDeviceInBootloaderForWebDevice();
216
- } catch (error) {
217
- Log.log('WebUSB 设备重新授权失败: ', error);
218
- }
219
- }
220
-
221
214
  private async _checkDeviceInBootloaderMode(
222
215
  connectId: string | undefined,
223
216
  intervalTimer?: ReturnType<typeof setInterval>,
@@ -455,8 +448,8 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
455
448
  }
456
449
 
457
450
  /**
458
- * @description 设备重启(Bootloader 侧可用)
459
- * @param rebootType 重启类型,参考 RebootType 枚举
451
+ * @description Device reboot (available in bootloader mode)
452
+ * @param rebootType Reboot type, see the RebootType enum
460
453
  */
461
454
  async reboot(rebootType: RebootType) {
462
455
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
package/src/core/index.ts CHANGED
@@ -323,6 +323,10 @@ const onCallDevice = async (
323
323
  DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE,
324
324
  onSelectDeviceInBootloaderForWebDeviceHandler
325
325
  );
326
+ device.on(
327
+ DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE,
328
+ onSelectDeviceForSwitchFirmwareWebDeviceHandler
329
+ );
326
330
 
327
331
  try {
328
332
  if (method.connectId) {
@@ -1098,6 +1102,23 @@ const onSelectDeviceInBootloaderForWebDeviceHandler = async (
1098
1102
  callback(null, uiResp.payload.deviceId);
1099
1103
  };
1100
1104
 
1105
+ const onSelectDeviceForSwitchFirmwareWebDeviceHandler = async (
1106
+ ...[device, callback]: [...DeviceEvents['select_device_for_switch_firmware_web_device']]
1107
+ ) => {
1108
+ Log.debug('onSelectDeviceForSwitchFirmwareWebDeviceHandler');
1109
+ const uiPromise = createUiPromise(
1110
+ UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE,
1111
+ device
1112
+ );
1113
+ postMessage(
1114
+ createUiMessage(UI_REQUEST.REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE, {
1115
+ device: device.toMessageObject() as KnownDevice,
1116
+ })
1117
+ );
1118
+ const uiResp = await uiPromise.promise;
1119
+ callback(null, uiResp.payload.deviceId);
1120
+ };
1121
+
1101
1122
  /**
1102
1123
  * Emit message to listener (parent).
1103
1124
  * Clear method reference from _callMethods
@@ -1169,7 +1190,8 @@ export default class Core extends EventEmitter {
1169
1190
  switch (message.type) {
1170
1191
  case UI_RESPONSE.RECEIVE_PIN:
1171
1192
  case UI_RESPONSE.RECEIVE_PASSPHRASE:
1172
- case UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: {
1193
+ case UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE:
1194
+ case UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: {
1173
1195
  const uiPromise = findUiPromise(message.type);
1174
1196
  if (uiPromise) {
1175
1197
  Log.log('receive UI Response: ', message.type);
@@ -82,6 +82,10 @@ export interface DeviceEvents {
82
82
  Device,
83
83
  (err: any, deviceId: string) => void
84
84
  ];
85
+ [DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE]: [
86
+ Device,
87
+ (err: any, deviceId: string) => void
88
+ ];
85
89
  }
86
90
 
87
91
  export interface Device {
@@ -26,6 +26,7 @@ export const DEVICE = {
26
26
  WORD: 'word',
27
27
  SUPPORT_FEATURES: 'support_features',
28
28
  SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: 'select_device_in_bootloader_for_web_device',
29
+ SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: 'select_device_for_switch_firmware_web_device',
29
30
 
30
31
  FEATURES: 'features',
31
32
  } as const;
@@ -13,6 +13,8 @@ export const UI_REQUEST = {
13
13
  REQUEST_PASSPHRASE_ON_DEVICE: 'ui-request_passphrase_on_device',
14
14
  REQUEST_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE:
15
15
  'ui-request_select_device_in_bootloader_for_web_device',
16
+ REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE:
17
+ 'ui-request_select_device_for_switch_firmware_web_device',
16
18
 
17
19
  CLOSE_UI_WINDOW: 'ui-close_window',
18
20
  CLOSE_UI_PIN_WINDOW: 'ui-close_pin_window',
@@ -106,6 +108,13 @@ export interface UiRequestSelectDeviceInBootloaderForWebDevice {
106
108
  };
107
109
  }
108
110
 
111
+ export interface UiRequestSelectDeviceForSwitchFirmwareWebDevice {
112
+ type: typeof UI_REQUEST.REQUEST_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE;
113
+ payload: {
114
+ device: Device;
115
+ };
116
+ }
117
+
109
118
  export interface FirmwareProcessing {
110
119
  type: typeof UI_REQUEST.FIRMWARE_PROCESSING;
111
120
  payload: {
@@ -156,6 +165,7 @@ export type UiEvent =
156
165
  | UiRequestPassphraseOnDevice
157
166
  | UiRequestPassphrase
158
167
  | UiRequestSelectDeviceInBootloaderForWebDevice
168
+ | UiRequestSelectDeviceForSwitchFirmwareWebDevice
159
169
  | FirmwareProcessing
160
170
  | UiRequestSelectDeviceInBootloaderForWebDevice
161
171
  | FirmwareProgress
@@ -181,6 +191,7 @@ export enum FirmwareUpdateTipMessage {
181
191
  AutoRebootToBootloader = 'AutoRebootToBootloader',
182
192
  GoToBootloaderSuccess = 'GoToBootloaderSuccess',
183
193
  SelectDeviceInBootloaderForWebDevice = 'SelectDeviceInBootloaderForWebDevice',
194
+ SwitchFirmwareReconnectDevice = 'SwitchFirmwareReconnectDevice',
184
195
  ConfirmOnDevice = 'ConfirmOnDevice',
185
196
  FirmwareEraseSuccess = 'FirmwareEraseSuccess',
186
197
  StartTransferData = 'StartTransferData',
@@ -6,6 +6,8 @@ export const UI_RESPONSE = {
6
6
  RECEIVE_PASSPHRASE: 'ui-receive_passphrase',
7
7
  SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE:
8
8
  'ui-receive_select-device-in-bootloader-for-web-device',
9
+ SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE:
10
+ 'ui-receive_select-device-for-switch-firmware-web-device',
9
11
  } as const;
10
12
 
11
13
  export interface UiResponsePin {
@@ -30,10 +32,18 @@ export interface UiResponseSelectDeviceInBootloaderForWebDevice {
30
32
  };
31
33
  }
32
34
 
35
+ export interface UiResponseSelectDeviceForSwitchFirmwareWebDevice {
36
+ type: typeof UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE;
37
+ payload: {
38
+ deviceId: string;
39
+ };
40
+ }
41
+
33
42
  export type UiResponseEvent =
34
43
  | UiResponsePin
35
44
  | UiResponsePassphrase
36
- | UiResponseSelectDeviceInBootloaderForWebDevice;
45
+ | UiResponseSelectDeviceInBootloaderForWebDevice
46
+ | UiResponseSelectDeviceForSwitchFirmwareWebDevice;
37
47
 
38
48
  export type UiResponseMessage = UiResponseEvent & { event: typeof UI_EVENT };
39
49