@onekeyfe/hd-core 1.2.0-alpha.135 → 1.2.0-alpha.137

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.
@@ -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":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAmB,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAEL,aAAa,EAQd,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAalD,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAE5B,KAAK,MAAM,IAAI,WAAW,EAC1B,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAI/C,OAAO,EAKL,KAAK,qBAAqB,EAO3B,MAAM,mCAAmC,CAAC;AAI3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EACV,gBAAgB,IAAI,gBAAgB,EACpC,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAK9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,WAAW,CAAC;AA6BhB,MAAM,WAAW,YAAY;IAC3B,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,GAAG,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAChG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACnF,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACrE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACnE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACnE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACtD,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACnD,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACnB,MAAM;QACN,wBAAwB;QACxB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI;KAC5D,CAAC;IACF,CAAC,MAAM,CAAC,0CAA0C,CAAC,EAAE;QACnD,MAAM;QACN,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;KACrC,CAAC;IACF,CAAC,MAAM,CAAC,4CAA4C,CAAC,EAAE;QACrD,MAAM;QACN,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;KACrC,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAE/F,GAAG,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAEhG,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAChF;AAeD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,GAChB,IAAI,CAEN;AAED,qBAAa,MAAO,SAAQ,YAAY;IAItC,kBAAkB,EAAE,gBAAgB,CAAC;IAErC,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAOlB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKvB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAQ;IAMhD,QAAQ,EAAE,cAAc,CAAC;IAKzB,OAAO,CAAC,gBAAgB,CAAC,CAAoC;IAK7D,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,UAAU,CAA0B;IAG5C,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,wBAAwB,CAAC,CAAe;IAGhD,OAAO,CAAC,+BAA+B,CAAC,CAAwB;IAGhE,OAAO,CAAC,oCAAoC,CAAC,CAAS;IAEtD,OAAO,CAAC,uBAAuB,CAAC,CAK9B;IAEF,OAAO,CAAC,8BAA8B,CAAK;IAE3C,IAAI,KAAK;;mBAER;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAGnC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAY1C;IAED,UAAU,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAGnC,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAE1C,aAAa,EAAE,MAAM,EAAE,CAAM;IAE7B,uBAAuB,EAAE,uBAAuB,CAAM;IAEtD,QAAQ,SAAK;IAEb,aAAa,EAAE,MAAM,EAAE,CAAM;IAE7B,gBAAgB,UAAS;IAKzB,WAAW,UAAS;IAEpB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAa;IAEhD,sBAAsB,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAGxC,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAGlC,OAAO,CAAC,iBAAiB,CAAC,CAExB;IAGF,OAAO,CAAC,wBAAwB,CAAC,CAAS;gBAE9B,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM;IAahE,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM;IAMlF,eAAe,IAAI,WAAW,GAAG,IAAI;IAmDrC,OAAO,CACL,eAAe,CAAC,EAAE,uBAAuB,EACzC,OAAO,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE;IAoC1C,OAAO,CACX,gBAAgB,CAAC,EAAE,uBAAuB,EAC1C,OAAO,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE;IAiG5E,OAAO;IA4CP,aAAa,CAAC,WAAW,CAAC,EAAE,WAAW;IAU7C,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE;IAStD,mBAAmB;IAKnB,wBAAwB,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE;IAM/D,qBAAqB,CAAC,KAAK,EAAE,MAAM;IAKnC,yBAAyB,CAAC,UAAU,EAAE,MAAM;IAI5C,yBAAyB;IAIzB,WAAW;IAWX,WAAW,IAAI,IAAI,GAAG,IAAI;IAI1B,YAAY;IAIZ,oBAAoB;IAIpB,kBAAkB;IAIlB,kBAAkB;IAIlB,YAAY;IASZ,iBAAiB;IAIjB,eAAe;IAIf,qBAAqB;IAiBrB,8BAA8B;IAI9B,sBAAsB;IAItB,+BAA+B;IAI/B,kCAAkC;IAKlC,iCAAiC;IAKjC,sBAAsB;IAItB,4BAA4B,CAC1B,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,KAAK,aAAa,GAAG,SAAS;IAwBzF,oBAAoB,IAAI,kBAAkB;IAkB1C,yBAAyB,IAAI,kBAAkB;IAkB/C,uBAAuB,IAAI,kBAAkB;IAkB7C,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,mCAAmC;IAQ3C,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAqBnC,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM;;;;IAO3C,mBAAmB,CACjB,gBAAgB,EAAE,OAAO,EACzB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,iBAAiB,GAAE,MAAM,GAAG,IAAW,EACvC,UAAU,GAAE,UAAU,GAAG,QAAmB;IA+B9C,OAAO,CAAC,gBAAgB;IAqBxB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM;IAYrC,0BAA0B,CAAC,SAAS,CAAC,EAAE,MAAM;IAMvC,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW;YAqHxB,qBAAqB;IAmB7B,WAAW;IAaX,cAAc,CAAC,MAAM,GAAE,sBAA2B;IA6ElD,sCAAsC;IAI5C,eAAe,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO;IAkB/E,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,uBAAuB;;;IAuBpE,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,uBAAuB;IAYvE,8BAA8B,CAClC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC,YAAY,CAAC;IA+ClB,2BAA2B,CAC/B,UAAU,CAAC,EAAE,oBAAoB,EACjC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,0BAA0B,CAAC,EAAE,OAAO,CAAC;KACtC;IAsDH,wBAAwB,CACtB,UAAU,CAAC,EAAE,oBAAoB,EACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,WAAW,CAAC,EAAE,qBAAqB,EACnC,YAAY,CAAC,EAAE,YAAY;IAiB7B,sBAAsB,CAAC,MAAM,EAAE,YAAY;IAS3C,OAAO,CAAC,gCAAgC;IASxC,yBAAyB;IAKzB,mBAAmB;IAkBnB,oBAAoB,CAAC,UAAU,EAAE,gBAAgB;IAiDjD,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,UAAQ;IAqBlE,eAAe,CAAC,MAAM,EAAE,MAAM;IAaxB,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU;IA2BlD,SAAS,CAAC,CAAC,EACf,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC;IA8FtB,uBAAuB;IASvB,oBAAoB;IAwB1B,mBAAmB,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC;IAW/D,qBAAqB;IAIrB,OAAO;IAkBP,SAAS;IAMT,kBAAkB;IAKlB,qBAAqB;IAKrB,MAAM;IAIN,gBAAgB;IAQhB,UAAU;IAQV,eAAe,IAAI,OAAO;IAI1B,YAAY;IAKZ,WAAW;IAUX,aAAa;IAKb,UAAU;IAKV,YAAY,IAAI,OAAO;IAIvB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;IAsBpD,gBAAgB;IAchB,aAAa,CAAC,QAAQ,EAAE,MAAM;IAIxB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,4BAA4B;IAU5B,+BAA+B,CAC7B,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,EACzC,UAAU,EAAE,yBAAyB,CAAC,YAAY,CAAC,EACnD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;KAChD,GACA,yBAAyB,GAAG,SAAS;IAsBxC,yBAAyB,CACvB,KAAK,EAAE,yBAAyB,EAChC,OAAO,GAAE,yBAAyB,CAAC,SAAS,CAAe;IAQ7D,6BAA6B,CAC3B,OAAO,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAC9C,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAwBxC,8BAA8B;IAI9B,yBAAyB,IAAI,mBAAmB;IAS1C,YAAY,CAChB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,OAAO,CAAC,EAAE,yBAAyB,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAmG3D,0BAA0B,CAC9B,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,OAAO,EAC5B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,aAAa,CAAC,EAAE,OAAO;CAyD1B;AAED,eAAe,MAAM,CAAC"}
@@ -14,7 +14,7 @@ export default class DeviceConnector {
14
14
  enumerate(): Promise<DeviceDescriptorDiff | undefined>;
15
15
  listen(): Promise<void>;
16
16
  stop(): void;
17
- acquire(path: string, session?: string | null, forceCleanRunPromise?: boolean, expectedProtocol?: HardwareConnectProtocol, protocolHint?: HardwareConnectProtocol): Promise<string | undefined>;
17
+ acquire(path: string, session?: string | null, forceCleanRunPromise?: boolean, expectedProtocol?: HardwareConnectProtocol, protocolHint?: HardwareConnectProtocol, forceProtocolDetection?: boolean): Promise<string | undefined>;
18
18
  release(session: string, onclose: boolean, keepSession?: boolean): Promise<void>;
19
19
  disconnect(session: string | undefined | null): Promise<void>;
20
20
  promptDeviceAccess(): Promise<USBDevice | BluetoothDevice | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceConnector.d.ts","sourceRoot":"","sources":["../../src/device/DeviceConnector.ts"],"names":[],"mappings":";;AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI9F,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,eAAe,SAAK;IAEpB,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAQ;IAE1C,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAElC,SAAS,UAAS;;IAQlB,OAAO,CAAC,kBAAkB;IAYpB,SAAS;IAWT,MAAM;IAgCZ,IAAI;IAIE,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,oBAAoB,CAAC,EAAE,OAAO,EAC9B,gBAAgB,CAAC,EAAE,uBAAuB,EAC1C,YAAY,CAAC,EAAE,uBAAuB;IAkDlC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO;IAShE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAWnD,kBAAkB,IAAI,OAAO,CAAC,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC;IAQjE,oBAAoB;CAGrB"}
1
+ {"version":3,"file":"DeviceConnector.d.ts","sourceRoot":"","sources":["../../src/device/DeviceConnector.ts"],"names":[],"mappings":";;AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI9F,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,eAAe,SAAK;IAEpB,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAQ;IAE1C,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAElC,SAAS,UAAS;;IAQlB,OAAO,CAAC,kBAAkB;IAYpB,SAAS;IAWT,MAAM;IAgCZ,IAAI;IAIE,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,oBAAoB,CAAC,EAAE,OAAO,EAC9B,gBAAgB,CAAC,EAAE,uBAAuB,EAC1C,YAAY,CAAC,EAAE,uBAAuB,EACtC,sBAAsB,CAAC,EAAE,OAAO;IAoD5B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO;IAShE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAWnD,kBAAkB,IAAI,OAAO,CAAC,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC;IAQjE,oBAAoB;CAGrB"}
package/dist/index.d.ts CHANGED
@@ -713,7 +713,7 @@ declare class DeviceConnector {
713
713
  enumerate(): Promise<DeviceDescriptorDiff | undefined>;
714
714
  listen(): Promise<void>;
715
715
  stop(): void;
716
- acquire(path: string, session?: string | null, forceCleanRunPromise?: boolean, expectedProtocol?: HardwareConnectProtocol, protocolHint?: HardwareConnectProtocol): Promise<string | undefined>;
716
+ acquire(path: string, session?: string | null, forceCleanRunPromise?: boolean, expectedProtocol?: HardwareConnectProtocol, protocolHint?: HardwareConnectProtocol, forceProtocolDetection?: boolean): Promise<string | undefined>;
717
717
  release(session: string, onclose: boolean, keepSession?: boolean): Promise<void>;
718
718
  disconnect(session: string | undefined | null): Promise<void>;
719
719
  promptDeviceAccess(): Promise<USBDevice | BluetoothDevice | null>;
package/dist/index.js CHANGED
@@ -43538,7 +43538,7 @@ const DEVICE_CONTROL_CALLS = new Set([
43538
43538
  'DeviceCertificateSign',
43539
43539
  'DeviceMiscUsbMscControl',
43540
43540
  ]);
43541
- const isProtocolV2ActionCancelledMessage = (message) => /^(?:cancel(?:led|ed)(?: on device)?|confirm dismissed|update cancel(?:led|ed)|user cancel(?:led|ed)(?:\s+.*)?)$/i.test(message);
43541
+ const isProtocolV2ActionCancelledMessage = (message) => /^(?:cancel(?:led|ed)(?: on device)?|confirm dismissed|user cancel(?:led|ed)(?:\s+.*)?)$/i.test(message);
43542
43542
  function shouldReduceDebugForCall(type) {
43543
43543
  return HIGH_VOLUME_DEBUG_CALLS.has(type);
43544
43544
  }
@@ -45240,12 +45240,12 @@ class Device extends events.exports {
45240
45240
  try {
45241
45241
  let acquireResult;
45242
45242
  if (DataManager.isBleConnect(env)) {
45243
- acquireResult = yield ((_a = this.deviceConnector) === null || _a === void 0 ? void 0 : _a.acquire(this.originalDescriptor.id, undefined, true, strictProtocol, undefined));
45243
+ acquireResult = yield ((_a = this.deviceConnector) === null || _a === void 0 ? void 0 : _a.acquire(this.originalDescriptor.id, undefined, true, strictProtocol, undefined, options === null || options === void 0 ? void 0 : options.forceProtocolDetection));
45244
45244
  this.mainId = (_b = acquireResult === null || acquireResult === void 0 ? void 0 : acquireResult.uuid) !== null && _b !== void 0 ? _b : '';
45245
45245
  Log$h.debug('Expected uuid:', this.mainId);
45246
45246
  }
45247
45247
  else {
45248
- acquireResult = yield ((_c = this.deviceConnector) === null || _c === void 0 ? void 0 : _c.acquire(this.originalDescriptor.path, this.originalDescriptor.session, undefined, strictProtocol, undefined));
45248
+ acquireResult = yield ((_c = this.deviceConnector) === null || _c === void 0 ? void 0 : _c.acquire(this.originalDescriptor.path, this.originalDescriptor.session, undefined, strictProtocol, undefined, options === null || options === void 0 ? void 0 : options.forceProtocolDetection));
45249
45249
  this.mainId = acquireResult;
45250
45250
  Log$h.debug('Expected session id:', this.mainId);
45251
45251
  }
@@ -45617,11 +45617,9 @@ class Device extends events.exports {
45617
45617
  yield TransportManager.reconfigure(this.features);
45618
45618
  });
45619
45619
  const expectedDeviceId = options === null || options === void 0 ? void 0 : options.deviceId;
45620
- if (expectedDeviceId) {
45620
+ if (expectedDeviceId && !(this.features && this.checkDeviceId(expectedDeviceId))) {
45621
45621
  this.passphraseState = undefined;
45622
- const { message } = yield this.commands.typedCall('GetFeatures', 'Features', {});
45623
- this._updateFeatures(message);
45624
- yield TransportManager.reconfigure(this.features);
45622
+ yield callInitialize({ is_contains_attach: true });
45625
45623
  if (!this.checkDeviceId(expectedDeviceId)) {
45626
45624
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckDeviceIdError);
45627
45625
  }
@@ -45641,7 +45639,23 @@ class Device extends events.exports {
45641
45639
  if (options === null || options === void 0 ? void 0 : options.deriveCardano) {
45642
45640
  payload.derive_cardano = true;
45643
45641
  }
45644
- yield callInitialize(payload, options === null || options === void 0 ? void 0 : options.initSession);
45642
+ if (this.features) {
45643
+ yield TransportManager.reconfigure(this.features);
45644
+ }
45645
+ const assertExpectedDeviceIdentity = () => {
45646
+ if (expectedDeviceId && !this.checkDeviceId(expectedDeviceId)) {
45647
+ this.clearInternalState();
45648
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckDeviceIdError);
45649
+ }
45650
+ };
45651
+ try {
45652
+ yield callInitialize(payload, options === null || options === void 0 ? void 0 : options.initSession);
45653
+ }
45654
+ catch (error) {
45655
+ assertExpectedDeviceIdentity();
45656
+ throw error;
45657
+ }
45658
+ assertExpectedDeviceIdentity();
45645
45659
  }
45646
45660
  catch (error) {
45647
45661
  Log$h.error('Initialization failed:', error);
@@ -46115,17 +46129,14 @@ class Device extends events.exports {
46115
46129
  const error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceInterruptedFromUser);
46116
46130
  const cleanupPromise = this.runCleanupPromise;
46117
46131
  const { cancelableAction } = this;
46118
- const env = DataManager.getSettings('env');
46119
46132
  if (cancelableAction) {
46120
46133
  yield cancelableAction(error);
46121
46134
  }
46122
46135
  else if (this.isProtocolV2() &&
46123
- (DataManager.isBleConnect(env) ||
46124
- DataManager.isBrowserWebUsb(env) ||
46125
- DataManager.isDesktopWebUsb(env)) &&
46136
+ DataManager.isBleConnect(DataManager.getSettings('env')) &&
46126
46137
  this.hasDeviceAcquire()) {
46127
46138
  yield ((_b = (_a = this.commands) === null || _a === void 0 ? void 0 : _a.cancelDevice) === null || _b === void 0 ? void 0 : _b.call(_a).catch(cancelError => {
46128
- Log$h.debug('Protocol V2 fallback cancel error', cancelError);
46139
+ Log$h.debug('Protocol V2 BLE fallback cancel error', cancelError);
46129
46140
  }));
46130
46141
  }
46131
46142
  yield ((_c = this.commands) === null || _c === void 0 ? void 0 : _c.cancel());
@@ -48180,7 +48191,6 @@ class DeviceChangePin extends BaseMethod {
48180
48191
  }
48181
48192
  init() {
48182
48193
  this.unlockPolicy = 'unlock-before-run';
48183
- this.protocolV2PreUnlockPinType = hdTransport.DeviceSessionPinType.Any;
48184
48194
  this.useDevicePassphraseState = false;
48185
48195
  validateParams(this.payload, [{ name: 'remove', type: 'boolean' }]);
48186
48196
  this.params = {
@@ -48790,12 +48800,7 @@ class DeviceSupportFeatures extends BaseMethod {
48790
48800
  }
48791
48801
 
48792
48802
  class DeviceVerify extends BaseMethod {
48793
- getSupportedProtocols() {
48794
- return ['V1', 'V2'];
48795
- }
48796
48803
  init() {
48797
- this.unlockPolicy = 'unlock-before-run';
48798
- this.protocolV2PreUnlockPinType = hdTransport.DeviceSessionPinType.Any;
48799
48804
  this.useDevicePassphraseState = false;
48800
48805
  validateParams(this.payload, [{ name: 'dataHex', type: 'hexString' }]);
48801
48806
  this.params = {
@@ -48834,7 +48839,6 @@ class DeviceWipe extends BaseMethod {
48834
48839
  }
48835
48840
  init() {
48836
48841
  this.unlockPolicy = 'unlock-before-run';
48837
- this.protocolV2PreUnlockPinType = hdTransport.DeviceSessionPinType.Any;
48838
48842
  this.useDevicePassphraseState = false;
48839
48843
  this.protocolV2UiInteraction = {
48840
48844
  request: 'button',
@@ -51722,8 +51726,9 @@ const PROTOCOL_V2_BOOTLOADER_RECONNECT_TIMEOUT = 90 * 1000;
51722
51726
  const PROTOCOL_V2_FINAL_RECONNECT_TIMEOUT = 3 * 60 * 1000;
51723
51727
  const PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT = 5 * 1000;
51724
51728
  const PROTOCOL_V2_FIRMWARE_STATUS_RESPONSE_TIMEOUT = 15 * 1000;
51725
- const PROTOCOL_V2_INSTALL_TIMEOUT = 5 * 60 * 1000;
51729
+ const PROTOCOL_V2_INSTALL_TIMEOUT = 8 * 60 * 1000;
51726
51730
  const PROTOCOL_V2_INSTALL_STATUS_INITIAL_DELAY = 1000;
51731
+ const PROTOCOL_V2_MISSING_TARGET_STATUS_GRACE_TIMEOUT = 30 * 1000;
51727
51732
  const PROTOCOL_V2_TARGET_STATUS_PENDING = 0;
51728
51733
  const PROTOCOL_V2_TARGET_STATUS_IN_PROGRESS = 1;
51729
51734
  const PROTOCOL_V2_TARGET_STATUS_FINISHED = 2;
@@ -51737,8 +51742,6 @@ const PROTOCOL_V2_CONNECT_SINGLE_TIMEOUT = 75 * 1000;
51737
51742
  const PROTOCOL_V2_DEVICE_INFO_READY_TIMEOUT = 30 * 1000;
51738
51743
  const PROTOCOL_V2_FILE_TRANSFER_RETRY_COUNT = 3;
51739
51744
  const PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE = 'FirmwareInstallStatusConflict';
51740
- const PROTOCOL_V2_INSTALL_FAILED_CODE = 'FirmwareInstallFailed';
51741
- const PROTOCOL_V2_INSTALL_TIMEOUT_CODE = 'FirmwareInstallTimeout';
51742
51745
  const PROTOCOL_V2_OKPP_HEADER_SIZE = 0x52a0;
51743
51746
  const PROTOCOL_V2_OKPP_PAYLOAD_HASH_OFFSET = 0x200;
51744
51747
  const PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET = 0x240;
@@ -51894,8 +51897,7 @@ const isProtocolV2FirmwareStatusEndpointUnavailable = (error) => {
51894
51897
  const isProtocolV2TerminalInstallStatusError = (error) => {
51895
51898
  var _a;
51896
51899
  return error instanceof hdShared.HardwareError &&
51897
- (error.errorCode === hdShared.HardwareErrorCode.ActionCancelled ||
51898
- error.errorCode === hdShared.HardwareErrorCode.FirmwareError ||
51900
+ (error.errorCode === hdShared.HardwareErrorCode.FirmwareError ||
51899
51901
  error.errorCode === hdShared.HardwareErrorCode.FirmwareVerificationFailed ||
51900
51902
  ((_a = error.params) === null || _a === void 0 ? void 0 : _a.firmwareUpdateCode) === PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE);
51901
51903
  };
@@ -52037,7 +52039,6 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52037
52039
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.NOT_INITIALIZE];
52038
52040
  this.requireDeviceMode = [];
52039
52041
  this.unlockPolicy = 'unlock-before-run';
52040
- this.protocolV2PreUnlockPinType = hdTransport.DeviceSessionPinType.Any;
52041
52042
  this.useDevicePassphraseState = false;
52042
52043
  this.skipForceUpdateCheck = true;
52043
52044
  const { payload } = this;
@@ -52771,9 +52772,8 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52771
52772
  ? visibleVersions[target]
52772
52773
  : `${Math.floor(statusVersion / 0x10000) % 0x100}.${Math.floor(statusVersion / 0x100) % 0x100}.${statusVersion % 0x100}`;
52773
52774
  if (!observedVersion) {
52774
- const isUnobservableApplicationSlot = applicationTargets.length > 1 && (target === 'app_v1' || target === 'app_v2');
52775
- if (this.protocolV2FinalStatusVerified || isUnobservableApplicationSlot) {
52776
- Log$7.warn(`Protocol V2 target ${target} has no observable final version; install completion is authoritative`);
52775
+ if (this.protocolV2FinalStatusVerified) {
52776
+ Log$7.warn(`Protocol V2 target ${target} has no observable final version; completed target status is authoritative`);
52777
52777
  }
52778
52778
  else {
52779
52779
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareVerificationFailed, `Protocol V2 target ${target} has no observable final version after status fallback`);
@@ -53443,6 +53443,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53443
53443
  });
53444
53444
  }
53445
53445
  assertProtocolV2TargetStatus(statusTargets, expectedTargetIds, expectedPaths = new Map()) {
53446
+ var _a, _b, _c;
53446
53447
  Log$7.log(`[FirmwareUpdateV4] DeviceFirmwareUpdateStatus records=${JSON.stringify(statusTargets)}`);
53447
53448
  const failedTarget = statusTargets.find(target => {
53448
53449
  var _a;
@@ -53457,9 +53458,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53457
53458
  path: failedTarget.path,
53458
53459
  });
53459
53460
  Log$7.error(`[FirmwareUpdateV4] firmware install failed target=${failedTargetDetails}`);
53460
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, undefined, {
53461
- firmwareUpdateCode: PROTOCOL_V2_INSTALL_FAILED_CODE,
53462
- });
53461
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, `Protocol V2 firmware target failed: target=${failedTarget.target_id} status=${(_a = failedTarget.status) !== null && _a !== void 0 ? _a : 'unknown'} payloadVersion=${(_b = failedTarget.payload_version) !== null && _b !== void 0 ? _b : 'unknown'} path=${(_c = failedTarget.path) !== null && _c !== void 0 ? _c : 'unknown'}`);
53463
53462
  }
53464
53463
  const matchingTargets = statusTargets.filter(target => { var _a; return expectedTargetIds.has((_a = normalizeProtocolV2TargetId(target.target_id)) !== null && _a !== void 0 ? _a : -1); });
53465
53464
  const seenTargetIds = new Set();
@@ -53468,8 +53467,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53468
53467
  if (targetId === undefined ||
53469
53468
  seenTargetIds.has(targetId) ||
53470
53469
  (target.path && expectedPaths.get(targetId) && target.path !== expectedPaths.get(targetId))) {
53471
- Log$7.error(`[FirmwareUpdateV4] install status conflicts with target=${target.target_id}`);
53472
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, undefined, {
53470
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 install status conflicts with target ${target.target_id}`, {
53473
53471
  firmwareUpdateCode: PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE,
53474
53472
  });
53475
53473
  }
@@ -53562,8 +53560,15 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53562
53560
  let lastError;
53563
53561
  let shouldReconnect = false;
53564
53562
  let deviceInfo;
53563
+ let missingTargetStatusSince;
53564
+ let missingTargetStatusKey;
53565
+ let normalModeWithoutInstallEvidenceSince;
53565
53566
  let installEvidenceObserved = false;
53566
53567
  let currentInstallStatusObserved = false;
53568
+ const resetMissingTargetStatusGrace = () => {
53569
+ missingTargetStatusSince = undefined;
53570
+ missingTargetStatusKey = undefined;
53571
+ };
53567
53572
  while (Date.now() - startTime < PROTOCOL_V2_INSTALL_TIMEOUT) {
53568
53573
  this.throwIfAborted();
53569
53574
  try {
@@ -53583,6 +53588,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53583
53588
  }, { timeoutMs: PROTOCOL_V2_FIRMWARE_STATUS_RESPONSE_TIMEOUT });
53584
53589
  if (statusResponse.type === 'Success') {
53585
53590
  installEvidenceObserved = true;
53591
+ resetMissingTargetStatusGrace();
53586
53592
  lastError = new Error('Protocol V2 firmware install acknowledged; waiting for target status');
53587
53593
  }
53588
53594
  const statusTargets = statusResponse.type === 'DeviceFirmwareUpdateStatus'
@@ -53604,6 +53610,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53604
53610
  if (hasMatchingTargetStatus &&
53605
53611
  (!requireCurrentInstallStatus || currentInstallStatusObserved)) {
53606
53612
  installEvidenceObserved = true;
53613
+ normalModeWithoutInstallEvidenceSince = undefined;
53607
53614
  }
53608
53615
  const matchingStatusTargets = statusTargets.filter(target => {
53609
53616
  const targetId = normalizeProtocolV2TargetId(target.target_id);
@@ -53631,6 +53638,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53631
53638
  }
53632
53639
  }
53633
53640
  if (statusTargets.length === 0) {
53641
+ resetMissingTargetStatusGrace();
53634
53642
  if (statusResponse.type !== 'Success') {
53635
53643
  lastError = new Error('Protocol V2 firmware update is waiting for user confirmation or target status');
53636
53644
  }
@@ -53638,10 +53646,23 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53638
53646
  else {
53639
53647
  const missingTargetIds = this.getProtocolV2MissingTargetIds(statusTargets, expectedTargetIds);
53640
53648
  if (missingTargetIds.length > 0) {
53649
+ const now = Date.now();
53641
53650
  const missingKey = missingTargetIds.join(',');
53651
+ if (missingTargetStatusSince === undefined || missingTargetStatusKey !== missingKey) {
53652
+ missingTargetStatusSince = now;
53653
+ missingTargetStatusKey = missingKey;
53654
+ }
53655
+ else if (now - missingTargetStatusSince >=
53656
+ PROTOCOL_V2_MISSING_TARGET_STATUS_GRACE_TIMEOUT) {
53657
+ const reportedTargetIds = statusTargets
53658
+ .map(target => normalizeProtocolV2TargetId(target.target_id))
53659
+ .filter((targetId) => targetId !== undefined);
53660
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, `Protocol V2 firmware status is missing requested records: targetIds=${missingKey} reportedTargetIds=${reportedTargetIds.join(',')}`);
53661
+ }
53642
53662
  lastError = new Error(`Protocol V2 firmware status is temporarily missing targetIds=${missingKey}`);
53643
53663
  }
53644
53664
  else {
53665
+ resetMissingTargetStatusGrace();
53645
53666
  lastError = new Error('Protocol V2 firmware targets are still installing');
53646
53667
  }
53647
53668
  }
@@ -53650,6 +53671,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53650
53671
  if (isProtocolV2TerminalInstallStatusError(error)) {
53651
53672
  throw error;
53652
53673
  }
53674
+ resetMissingTargetStatusGrace();
53653
53675
  if (isProtocolV2FirmwareStatusEndpointUnavailable(error)) {
53654
53676
  if (!currentDeviceInfo) {
53655
53677
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 device identity is unavailable during install polling');
@@ -53663,9 +53685,16 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53663
53685
  return;
53664
53686
  }
53665
53687
  if (isNormalMode) {
53688
+ const now = Date.now();
53689
+ normalModeWithoutInstallEvidenceSince !== null && normalModeWithoutInstallEvidenceSince !== void 0 ? normalModeWithoutInstallEvidenceSince : (normalModeWithoutInstallEvidenceSince = now);
53690
+ if (now - normalModeWithoutInstallEvidenceSince >=
53691
+ PROTOCOL_V2_MISSING_TARGET_STATUS_GRACE_TIMEOUT) {
53692
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, 'Protocol V2 device returned to normal mode without install ACK, target status, or version change');
53693
+ }
53666
53694
  lastError = new Error('Protocol V2 device is in normal mode but installation is not yet confirmed');
53667
53695
  }
53668
53696
  else {
53697
+ normalModeWithoutInstallEvidenceSince = undefined;
53669
53698
  lastError = new Error('Protocol V2 firmware status endpoint is unavailable while the device remains in loader mode');
53670
53699
  }
53671
53700
  }
@@ -53691,14 +53720,12 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53691
53720
  }
53692
53721
  shouldReconnect = true;
53693
53722
  deviceInfo = undefined;
53723
+ resetMissingTargetStatusGrace();
53694
53724
  Log$7.log('Protocol V2 firmware install device readiness probe failed: ', error);
53695
53725
  }
53696
53726
  yield hdShared.wait(1000);
53697
53727
  }
53698
- Log$7.error(`[FirmwareUpdateV4] install timed out after ${PROTOCOL_V2_INSTALL_TIMEOUT / 1000}s: ${this.normalizeErrorMessage(lastError)}`);
53699
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, undefined, {
53700
- firmwareUpdateCode: PROTOCOL_V2_INSTALL_TIMEOUT_CODE,
53701
- });
53728
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 firmware update status not complete within ${PROTOCOL_V2_INSTALL_TIMEOUT / 1000}s: ${this.normalizeErrorMessage(lastError)}`);
53702
53729
  });
53703
53730
  }
53704
53731
  exitProtocolV2BootloaderToNormal() {
@@ -64718,7 +64745,7 @@ class DeviceConnector {
64718
64745
  stop() {
64719
64746
  this.listening = false;
64720
64747
  }
64721
- acquire(path, session, forceCleanRunPromise, expectedProtocol, protocolHint) {
64748
+ acquire(path, session, forceCleanRunPromise, expectedProtocol, protocolHint, forceProtocolDetection) {
64722
64749
  return __awaiter(this, void 0, void 0, function* () {
64723
64750
  Log$2.debug('acquire', path, session, expectedProtocol, protocolHint);
64724
64751
  const env = DataManager.getSettings('env');
@@ -64731,6 +64758,7 @@ class DeviceConnector {
64731
64758
  forceCleanRunPromise,
64732
64759
  expectedProtocol,
64733
64760
  protocolHint,
64761
+ forceProtocolDetection,
64734
64762
  });
64735
64763
  }
64736
64764
  else {
@@ -64739,6 +64767,7 @@ class DeviceConnector {
64739
64767
  previous: session !== null && session !== void 0 ? session : null,
64740
64768
  expectedProtocol,
64741
64769
  protocolHint,
64770
+ forceProtocolDetection,
64742
64771
  });
64743
64772
  }
64744
64773
  if (expectedProtocol) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "1.2.0-alpha.135",
3
+ "version": "1.2.0-alpha.137",
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.2.0-alpha.135",
29
- "@onekeyfe/hd-transport": "1.2.0-alpha.135",
28
+ "@onekeyfe/hd-shared": "1.2.0-alpha.137",
29
+ "@onekeyfe/hd-transport": "1.2.0-alpha.137",
30
30
  "axios": "1.15.2",
31
31
  "bignumber.js": "^9.0.2",
32
32
  "buffer": "^6.0.3",
@@ -46,5 +46,5 @@
46
46
  "@types/w3c-web-usb": "^1.0.10",
47
47
  "@types/web-bluetooth": "^0.0.21"
48
48
  },
49
- "gitHead": "321e900381de2c1a9c583e90e8abfc2f8dab8266"
49
+ "gitHead": "62d2ac713a9c7a850e56c18d5732593c0b9f102c"
50
50
  }
@@ -2,7 +2,6 @@ import { EDeviceType, ERRORS, HardwareError, HardwareErrorCode, wait } from '@on
2
2
  import JSZip from 'jszip';
3
3
  import {
4
4
  DeviceRebootType,
5
- DeviceSessionPinType,
6
5
  PROTOCOL_V2_BLE_FILE_CHUNK_SIZE,
7
6
  PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE,
8
7
  PROTOCOL_V2_BLE_FIRMWARE_FILE_CHUNK_SIZE,
@@ -91,8 +90,9 @@ const PROTOCOL_V2_BOOTLOADER_RECONNECT_TIMEOUT = 90 * 1000;
91
90
  const PROTOCOL_V2_FINAL_RECONNECT_TIMEOUT = 3 * 60 * 1000;
92
91
  const PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT = 5 * 1000;
93
92
  const PROTOCOL_V2_FIRMWARE_STATUS_RESPONSE_TIMEOUT = 15 * 1000;
94
- const PROTOCOL_V2_INSTALL_TIMEOUT = 5 * 60 * 1000;
93
+ const PROTOCOL_V2_INSTALL_TIMEOUT = 8 * 60 * 1000;
95
94
  const PROTOCOL_V2_INSTALL_STATUS_INITIAL_DELAY = 1000;
95
+ const PROTOCOL_V2_MISSING_TARGET_STATUS_GRACE_TIMEOUT = 30 * 1000;
96
96
  const PROTOCOL_V2_TARGET_STATUS_PENDING = 0;
97
97
  const PROTOCOL_V2_TARGET_STATUS_IN_PROGRESS = 1;
98
98
  const PROTOCOL_V2_TARGET_STATUS_FINISHED = 2;
@@ -106,8 +106,6 @@ const PROTOCOL_V2_CONNECT_SINGLE_TIMEOUT = 75 * 1000;
106
106
  const PROTOCOL_V2_DEVICE_INFO_READY_TIMEOUT = 30 * 1000;
107
107
  const PROTOCOL_V2_FILE_TRANSFER_RETRY_COUNT = 3;
108
108
  const PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE = 'FirmwareInstallStatusConflict';
109
- const PROTOCOL_V2_INSTALL_FAILED_CODE = 'FirmwareInstallFailed';
110
- const PROTOCOL_V2_INSTALL_TIMEOUT_CODE = 'FirmwareInstallTimeout';
111
109
  const PROTOCOL_V2_OKPP_HEADER_SIZE = 0x52a0;
112
110
  const PROTOCOL_V2_OKPP_PAYLOAD_HASH_OFFSET = 0x200;
113
111
  const PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET = 0x240;
@@ -393,8 +391,7 @@ const isProtocolV2FirmwareStatusEndpointUnavailable = (error: unknown) => {
393
391
 
394
392
  const isProtocolV2TerminalInstallStatusError = (error: unknown) =>
395
393
  error instanceof HardwareError &&
396
- (error.errorCode === HardwareErrorCode.ActionCancelled ||
397
- error.errorCode === HardwareErrorCode.FirmwareError ||
394
+ (error.errorCode === HardwareErrorCode.FirmwareError ||
398
395
  error.errorCode === HardwareErrorCode.FirmwareVerificationFailed ||
399
396
  error.params?.firmwareUpdateCode === PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE);
400
397
 
@@ -602,9 +599,6 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
602
599
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.NOT_INITIALIZE];
603
600
  this.requireDeviceMode = [];
604
601
  this.unlockPolicy = 'unlock-before-run';
605
- // Protocol V2 device-management actions are not wallet-scoped, so either
606
- // the main PIN or an Attach PIN may authorize them.
607
- this.protocolV2PreUnlockPinType = DeviceSessionPinType.Any;
608
602
  this.useDevicePassphraseState = false;
609
603
  this.skipForceUpdateCheck = true;
610
604
 
@@ -1629,11 +1623,9 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
1629
1623
  Math.floor(statusVersion / 0x100) % 0x100
1630
1624
  }.${statusVersion % 0x100}`;
1631
1625
  if (!observedVersion) {
1632
- const isUnobservableApplicationSlot =
1633
- applicationTargets.length > 1 && (target === 'app_v1' || target === 'app_v2');
1634
- if (this.protocolV2FinalStatusVerified || isUnobservableApplicationSlot) {
1626
+ if (this.protocolV2FinalStatusVerified) {
1635
1627
  Log.warn(
1636
- `Protocol V2 target ${target} has no observable final version; install completion is authoritative`
1628
+ `Protocol V2 target ${target} has no observable final version; completed target status is authoritative`
1637
1629
  );
1638
1630
  } else {
1639
1631
  throw ERRORS.TypedError(
@@ -2507,9 +2499,14 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2507
2499
  path: failedTarget.path,
2508
2500
  });
2509
2501
  Log.error(`[FirmwareUpdateV4] firmware install failed target=${failedTargetDetails}`);
2510
- throw ERRORS.TypedError(HardwareErrorCode.FirmwareError, undefined, {
2511
- firmwareUpdateCode: PROTOCOL_V2_INSTALL_FAILED_CODE,
2512
- });
2502
+ throw ERRORS.TypedError(
2503
+ HardwareErrorCode.FirmwareError,
2504
+ `Protocol V2 firmware target failed: target=${failedTarget.target_id} status=${
2505
+ failedTarget.status ?? 'unknown'
2506
+ } payloadVersion=${failedTarget.payload_version ?? 'unknown'} path=${
2507
+ failedTarget.path ?? 'unknown'
2508
+ }`
2509
+ );
2513
2510
  }
2514
2511
 
2515
2512
  const matchingTargets = statusTargets.filter(target =>
@@ -2523,10 +2520,13 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2523
2520
  seenTargetIds.has(targetId) ||
2524
2521
  (target.path && expectedPaths.get(targetId) && target.path !== expectedPaths.get(targetId))
2525
2522
  ) {
2526
- Log.error(`[FirmwareUpdateV4] install status conflicts with target=${target.target_id}`);
2527
- throw ERRORS.TypedError(HardwareErrorCode.FirmwareError, undefined, {
2528
- firmwareUpdateCode: PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE,
2529
- });
2523
+ throw ERRORS.TypedError(
2524
+ HardwareErrorCode.RuntimeError,
2525
+ `Protocol V2 install status conflicts with target ${target.target_id}`,
2526
+ {
2527
+ firmwareUpdateCode: PROTOCOL_V2_INSTALL_STATUS_CONFLICT_CODE,
2528
+ }
2529
+ );
2530
2530
  }
2531
2531
  seenTargetIds.add(targetId);
2532
2532
  }
@@ -2651,8 +2651,15 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2651
2651
  // Reconnecting here probes DeviceInfo, which loaders reject while installation is active.
2652
2652
  let shouldReconnect = false;
2653
2653
  let deviceInfo: ProtocolV2DeviceInfo | undefined;
2654
+ let missingTargetStatusSince: number | undefined;
2655
+ let missingTargetStatusKey: string | undefined;
2656
+ let normalModeWithoutInstallEvidenceSince: number | undefined;
2654
2657
  let installEvidenceObserved = false;
2655
2658
  let currentInstallStatusObserved = false;
2659
+ const resetMissingTargetStatusGrace = () => {
2660
+ missingTargetStatusSince = undefined;
2661
+ missingTargetStatusKey = undefined;
2662
+ };
2656
2663
 
2657
2664
  while (Date.now() - startTime < PROTOCOL_V2_INSTALL_TIMEOUT) {
2658
2665
  // A transport release caused by an explicit workflow cancellation must not
@@ -2680,6 +2687,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2680
2687
  );
2681
2688
  if (statusResponse.type === 'Success') {
2682
2689
  installEvidenceObserved = true;
2690
+ resetMissingTargetStatusGrace();
2683
2691
  lastError = new Error(
2684
2692
  'Protocol V2 firmware install acknowledged; waiting for target status'
2685
2693
  );
@@ -2708,6 +2716,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2708
2716
  (!requireCurrentInstallStatus || currentInstallStatusObserved)
2709
2717
  ) {
2710
2718
  installEvidenceObserved = true;
2719
+ normalModeWithoutInstallEvidenceSince = undefined;
2711
2720
  }
2712
2721
  const matchingStatusTargets = statusTargets.filter(target => {
2713
2722
  const targetId = normalizeProtocolV2TargetId(target.target_id);
@@ -2749,6 +2758,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2749
2758
  }
2750
2759
 
2751
2760
  if (statusTargets.length === 0) {
2761
+ resetMissingTargetStatusGrace();
2752
2762
  if (statusResponse.type !== 'Success') {
2753
2763
  lastError = new Error(
2754
2764
  'Protocol V2 firmware update is waiting for user confirmation or target status'
@@ -2760,11 +2770,30 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2760
2770
  expectedTargetIds
2761
2771
  );
2762
2772
  if (missingTargetIds.length > 0) {
2773
+ const now = Date.now();
2763
2774
  const missingKey = missingTargetIds.join(',');
2775
+ if (missingTargetStatusSince === undefined || missingTargetStatusKey !== missingKey) {
2776
+ missingTargetStatusSince = now;
2777
+ missingTargetStatusKey = missingKey;
2778
+ } else if (
2779
+ now - missingTargetStatusSince >=
2780
+ PROTOCOL_V2_MISSING_TARGET_STATUS_GRACE_TIMEOUT
2781
+ ) {
2782
+ const reportedTargetIds = statusTargets
2783
+ .map(target => normalizeProtocolV2TargetId(target.target_id))
2784
+ .filter((targetId): targetId is number => targetId !== undefined);
2785
+ throw ERRORS.TypedError(
2786
+ HardwareErrorCode.FirmwareError,
2787
+ `Protocol V2 firmware status is missing requested records: targetIds=${missingKey} reportedTargetIds=${reportedTargetIds.join(
2788
+ ','
2789
+ )}`
2790
+ );
2791
+ }
2764
2792
  lastError = new Error(
2765
2793
  `Protocol V2 firmware status is temporarily missing targetIds=${missingKey}`
2766
2794
  );
2767
2795
  } else {
2796
+ resetMissingTargetStatusGrace();
2768
2797
  lastError = new Error('Protocol V2 firmware targets are still installing');
2769
2798
  }
2770
2799
  }
@@ -2772,6 +2801,9 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2772
2801
  if (isProtocolV2TerminalInstallStatusError(error)) {
2773
2802
  throw error;
2774
2803
  }
2804
+ // Only consecutive full status dumps can prove that a record is absent.
2805
+ // A reboot or transport interruption starts a fresh grace window.
2806
+ resetMissingTargetStatusGrace();
2775
2807
  // App firmware does not register DeviceFirmwareUpdateStatusGet. Treat the
2776
2808
  // missing endpoint as completion only after the runtime probe confirms App mode.
2777
2809
  if (isProtocolV2FirmwareStatusEndpointUnavailable(error)) {
@@ -2794,10 +2826,22 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2794
2826
  return;
2795
2827
  }
2796
2828
  if (isNormalMode) {
2829
+ const now = Date.now();
2830
+ normalModeWithoutInstallEvidenceSince ??= now;
2831
+ if (
2832
+ now - normalModeWithoutInstallEvidenceSince >=
2833
+ PROTOCOL_V2_MISSING_TARGET_STATUS_GRACE_TIMEOUT
2834
+ ) {
2835
+ throw ERRORS.TypedError(
2836
+ HardwareErrorCode.FirmwareError,
2837
+ 'Protocol V2 device returned to normal mode without install ACK, target status, or version change'
2838
+ );
2839
+ }
2797
2840
  lastError = new Error(
2798
2841
  'Protocol V2 device is in normal mode but installation is not yet confirmed'
2799
2842
  );
2800
2843
  } else {
2844
+ normalModeWithoutInstallEvidenceSince = undefined;
2801
2845
  lastError = new Error(
2802
2846
  'Protocol V2 firmware status endpoint is unavailable while the device remains in loader mode'
2803
2847
  );
@@ -2828,19 +2872,18 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
2828
2872
  }
2829
2873
  shouldReconnect = true;
2830
2874
  deviceInfo = undefined;
2875
+ resetMissingTargetStatusGrace();
2831
2876
  Log.log('Protocol V2 firmware install device readiness probe failed: ', error);
2832
2877
  }
2833
2878
  await wait(1000);
2834
2879
  }
2835
2880
 
2836
- Log.error(
2837
- `[FirmwareUpdateV4] install timed out after ${
2881
+ throw ERRORS.TypedError(
2882
+ HardwareErrorCode.RuntimeError,
2883
+ `Protocol V2 firmware update status not complete within ${
2838
2884
  PROTOCOL_V2_INSTALL_TIMEOUT / 1000
2839
2885
  }s: ${this.normalizeErrorMessage(lastError)}`
2840
2886
  );
2841
- throw ERRORS.TypedError(HardwareErrorCode.FirmwareError, undefined, {
2842
- firmwareUpdateCode: PROTOCOL_V2_INSTALL_TIMEOUT_CODE,
2843
- });
2844
2887
  }
2845
2888
 
2846
2889
  private async exitProtocolV2BootloaderToNormal() {
@@ -1,4 +1,4 @@
1
- import { DeviceSessionPinType, DeviceSettingsPage } from '@onekeyfe/hd-transport';
1
+ import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
2
2
 
3
3
  import { BaseMethod } from '../BaseMethod';
4
4
  import { validateParams } from '../helpers/paramsValidator';
@@ -13,9 +13,6 @@ export default class DeviceChangePin extends BaseMethod<ChangePin> {
13
13
 
14
14
  init() {
15
15
  this.unlockPolicy = 'unlock-before-run';
16
- // Protocol V2 device-management actions are not wallet-scoped, so either
17
- // the main PIN or an Attach PIN may authorize them.
18
- this.protocolV2PreUnlockPinType = DeviceSessionPinType.Any;
19
16
  this.useDevicePassphraseState = false;
20
17
 
21
18
  // check payload