@onekeyfe/hd-core 0.0.9 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/api/BaseMethod.d.ts +2 -0
  2. package/dist/api/BaseMethod.d.ts.map +1 -1
  3. package/dist/api/CheckBLEFirmwareRelease.d.ts +8 -1
  4. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  5. package/dist/api/CheckFirmwareRelease.d.ts +8 -1
  6. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  7. package/dist/api/FirmwareUpdate.d.ts +14 -0
  8. package/dist/api/FirmwareUpdate.d.ts.map +1 -0
  9. package/dist/api/firmware/getBinary.d.ts +33 -0
  10. package/dist/api/firmware/getBinary.d.ts.map +1 -0
  11. package/dist/api/firmware/uploadFirmware.d.ts +8 -0
  12. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -0
  13. package/dist/api/index.d.ts +1 -0
  14. package/dist/api/index.d.ts.map +1 -1
  15. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -1
  16. package/dist/constants/errors.d.ts +1 -0
  17. package/dist/constants/errors.d.ts.map +1 -1
  18. package/dist/core/index.d.ts.map +1 -1
  19. package/dist/data-manager/DataManager.d.ts +10 -0
  20. package/dist/data-manager/DataManager.d.ts.map +1 -1
  21. package/dist/device/Device.d.ts +1 -0
  22. package/dist/device/Device.d.ts.map +1 -1
  23. package/dist/device/DeviceCommands.d.ts +1 -0
  24. package/dist/device/DeviceCommands.d.ts.map +1 -1
  25. package/dist/events/ui-request.d.ts +9 -1
  26. package/dist/events/ui-request.d.ts.map +1 -1
  27. package/dist/index.d.ts +95 -6
  28. package/dist/index.js +190 -23
  29. package/dist/inject.d.ts.map +1 -1
  30. package/dist/types/api/checkBLEFirmwareRelease.d.ts +12 -2
  31. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -1
  32. package/dist/types/api/checkFirmwareRelease.d.ts +11 -1
  33. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -1
  34. package/dist/types/api/firmwareUpdate.d.ts +13 -0
  35. package/dist/types/api/firmwareUpdate.d.ts.map +1 -0
  36. package/dist/types/api/index.d.ts +2 -0
  37. package/dist/types/api/index.d.ts.map +1 -1
  38. package/dist/types/device.d.ts +38 -0
  39. package/dist/types/device.d.ts.map +1 -1
  40. package/dist/types/firmware.d.ts +2 -1
  41. package/dist/types/firmware.d.ts.map +1 -1
  42. package/dist/types/params.d.ts +3 -0
  43. package/dist/types/params.d.ts.map +1 -1
  44. package/dist/utils/assets.d.ts +1 -1
  45. package/dist/utils/assets.d.ts.map +1 -1
  46. package/dist/utils/networkUtils.d.ts.map +1 -1
  47. package/dist/utils/release.d.ts +4 -0
  48. package/dist/utils/release.d.ts.map +1 -0
  49. package/package.json +3 -3
  50. package/src/api/BaseMethod.ts +4 -0
  51. package/src/api/CheckBLEFirmwareRelease.ts +7 -1
  52. package/src/api/CheckFirmwareRelease.ts +7 -1
  53. package/src/api/FirmwareUpdate.ts +78 -0
  54. package/src/api/firmware/getBinary.ts +46 -0
  55. package/src/api/firmware/uploadFirmware.ts +72 -0
  56. package/src/api/index.ts +2 -0
  57. package/src/constants/errors.ts +1 -0
  58. package/src/core/index.ts +1 -0
  59. package/src/data-manager/DataManager.ts +36 -20
  60. package/src/device/Device.ts +4 -0
  61. package/src/device/DeviceCommands.ts +2 -0
  62. package/src/events/ui-request.ts +15 -1
  63. package/src/inject.ts +2 -0
  64. package/src/types/api/checkBLEFirmwareRelease.ts +12 -4
  65. package/src/types/api/checkFirmwareRelease.ts +11 -1
  66. package/src/types/api/firmwareUpdate.ts +21 -0
  67. package/src/types/api/index.ts +3 -0
  68. package/src/types/device.ts +44 -0
  69. package/src/types/firmware.ts +2 -1
  70. package/src/types/params.ts +2 -0
  71. package/src/utils/assets.ts +1 -1
  72. package/src/utils/networkUtils.ts +3 -1
  73. package/src/utils/release.ts +24 -0
package/dist/index.js CHANGED
@@ -67,6 +67,7 @@ const inject = ({ call, cancel, dispose, eventEmitter, init, uiResponse, }) => {
67
67
  solSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'solSignTransaction' })),
68
68
  stellarGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'stellarGetAddress' })),
69
69
  stellarSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'stellarSignTransaction' })),
70
+ firmwareUpdate: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'firmwareUpdate' })),
70
71
  };
71
72
  return api;
72
73
  };
@@ -608,6 +609,7 @@ const ERROR_CODES = {
608
609
  Method_InvalidParameter: '',
609
610
  Call_API: '',
610
611
  Call_NotResponse: 'No response data',
612
+ Method_FirmwareUpdate_DownloadFailed: '',
611
613
  Transport_InvalidProtobuf: '',
612
614
  Device_FwException: '',
613
615
  Device_UnexpectedMode: '',
@@ -720,20 +722,21 @@ const httpRequest$1 = (url, type = 'text') => __awaiter(void 0, void 0, void 0,
720
722
  const response = yield axios__default["default"].request({
721
723
  url,
722
724
  withCredentials: false,
725
+ responseType: type === 'binary' ? 'arraybuffer' : 'json',
723
726
  });
724
727
  if (+response.status === 200) {
725
728
  if (type === 'json') {
726
729
  return response.data;
727
730
  }
728
731
  if (type === 'binary') {
729
- return response.data.arrayBuffer();
732
+ return response.data;
730
733
  }
731
734
  return response.data;
732
735
  }
733
736
  throw new Error(`httpRequest error: ${url} ${response.statusText}`);
734
737
  });
735
738
 
736
- const httpRequest = (url, _type) => httpRequest$1(url);
739
+ const httpRequest = (url, type) => httpRequest$1(url, type);
737
740
  const getTimeStamp = () => new Date().getTime();
738
741
 
739
742
  const VER_NUMS = 3;
@@ -9751,6 +9754,21 @@ var MessagesJSON = {
9751
9754
  nested: nested
9752
9755
  };
9753
9756
 
9757
+ const getReleaseStatus = (releases, currentVersion) => {
9758
+ const newVersions = releases.filter(r => semver__default["default"].gt(r.version.join('.'), currentVersion));
9759
+ if (newVersions.length === 0) {
9760
+ return 'valid';
9761
+ }
9762
+ if (newVersions.some(r => r.required)) {
9763
+ return 'required';
9764
+ }
9765
+ return 'outdated';
9766
+ };
9767
+ const getReleaseChangelog = (releases, currentVersion) => {
9768
+ const newVersions = releases.filter(r => semver__default["default"].gt(r.version.join('.'), currentVersion));
9769
+ return newVersions.map(r => r.changelog);
9770
+ };
9771
+
9754
9772
  var _a;
9755
9773
  class DataManager {
9756
9774
  static load(settings) {
@@ -9818,17 +9836,26 @@ DataManager.getFirmwareStatus = (features) => {
9818
9836
  return 'unknown';
9819
9837
  }
9820
9838
  const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b.firmware) !== null && _c !== void 0 ? _c : [];
9821
- const latestFirmware = targetDeviceConfigList[targetDeviceConfigList.length - 1];
9822
- if (!latestFirmware)
9823
- return 'valid';
9824
- const latestVersion = latestFirmware.version.join('.');
9825
9839
  const currentVersion = deviceFirmwareVersion.join('.');
9826
- if (semver__default["default"].gt(latestVersion, currentVersion)) {
9827
- if (latestFirmware.required)
9828
- return 'required';
9829
- return 'outdated';
9840
+ return getReleaseStatus(targetDeviceConfigList, currentVersion);
9841
+ };
9842
+ DataManager.getFirmwareChangelog = (features) => {
9843
+ var _b, _c;
9844
+ const deviceType = getDeviceType(features);
9845
+ const deviceFirmwareVersion = getDeviceFirmwareVersion(features);
9846
+ if (features.firmware_present === false ||
9847
+ (deviceType === 'classic' && features.bootloader_mode)) {
9848
+ return [];
9830
9849
  }
9831
- return 'valid';
9850
+ const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b.firmware) !== null && _c !== void 0 ? _c : [];
9851
+ const currentVersion = deviceFirmwareVersion.join('.');
9852
+ return getReleaseChangelog(targetDeviceConfigList, currentVersion);
9853
+ };
9854
+ DataManager.getFirmwareLeatestRelease = (features) => {
9855
+ var _b, _c;
9856
+ const deviceType = getDeviceType(features);
9857
+ const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b.firmware) !== null && _c !== void 0 ? _c : [];
9858
+ return targetDeviceConfigList[targetDeviceConfigList.length - 1];
9832
9859
  };
9833
9860
  DataManager.getBLEFirmwareStatus = (features) => {
9834
9861
  var _b, _c;
@@ -9838,17 +9865,25 @@ DataManager.getBLEFirmwareStatus = (features) => {
9838
9865
  return 'none';
9839
9866
  }
9840
9867
  const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b.ble) !== null && _c !== void 0 ? _c : [];
9841
- const latestBLEFirmware = targetDeviceConfigList[targetDeviceConfigList.length - 1];
9842
- if (!latestBLEFirmware)
9843
- return 'valid';
9844
- const latestVersion = latestBLEFirmware.version.join('.');
9845
9868
  const currentVersion = deviceBLEFirmwareVersion.join('.');
9846
- if (semver__default["default"].gt(latestVersion, currentVersion)) {
9847
- if (latestBLEFirmware.required)
9848
- return 'required';
9849
- return 'outdated';
9869
+ return getReleaseStatus(targetDeviceConfigList, currentVersion);
9870
+ };
9871
+ DataManager.getBleFirmwareChangelog = (features) => {
9872
+ var _b, _c;
9873
+ const deviceType = getDeviceType(features);
9874
+ const deviceBLEFirmwareVersion = getDeviceBLEFirmwareVersion(features);
9875
+ if (!deviceBLEFirmwareVersion) {
9876
+ return [];
9850
9877
  }
9851
- return 'valid';
9878
+ const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b.ble) !== null && _c !== void 0 ? _c : [];
9879
+ const currentVersion = deviceBLEFirmwareVersion.join('.');
9880
+ return getReleaseChangelog(targetDeviceConfigList, currentVersion);
9881
+ };
9882
+ DataManager.getBleFirmwareLeatestRelease = (features) => {
9883
+ var _b, _c;
9884
+ const deviceType = getDeviceType(features);
9885
+ const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b.ble) !== null && _c !== void 0 ? _c : [];
9886
+ return targetDeviceConfigList[targetDeviceConfigList.length - 1];
9852
9887
  };
9853
9888
  DataManager.getTransportStatus = (localVersion) => {
9854
9889
  var _b, _c;
@@ -9963,6 +9998,7 @@ const UI_REQUEST$1 = {
9963
9998
  CLOSE_UI_WINDOW: 'ui-close_window',
9964
9999
  BLUETOOTH_PERMISSION: 'ui-bluetooth_permission',
9965
10000
  LOCATION_PERMISSION: 'ui-location_permission',
10001
+ FIRMWARE_PROGRESS: 'ui-firmware-progress',
9966
10002
  };
9967
10003
  const createUiMessage = (type, payload) => ({
9968
10004
  event: UI_EVENT,
@@ -10379,6 +10415,9 @@ class Device extends events.exports {
10379
10415
  }
10380
10416
  });
10381
10417
  }
10418
+ getCommands() {
10419
+ return this.commands;
10420
+ }
10382
10421
  getInternalState() {
10383
10422
  return this.internalState[this.instance];
10384
10423
  }
@@ -11555,7 +11594,13 @@ class CheckFirmwareRelease extends BaseMethod {
11555
11594
  run() {
11556
11595
  if (this.device.features) {
11557
11596
  const firmwareStatus = DataManager.getFirmwareStatus(this.device.features);
11558
- return Promise.resolve(firmwareStatus);
11597
+ const changelog = DataManager.getFirmwareChangelog(this.device.features);
11598
+ const release = DataManager.getFirmwareLeatestRelease(this.device.features);
11599
+ return Promise.resolve({
11600
+ status: firmwareStatus,
11601
+ changelog,
11602
+ release,
11603
+ });
11559
11604
  }
11560
11605
  return Promise.resolve(null);
11561
11606
  }
@@ -11568,7 +11613,13 @@ class CheckBLEFirmwareRelease extends BaseMethod {
11568
11613
  run() {
11569
11614
  if (this.device.features) {
11570
11615
  const firmwareStatus = DataManager.getBLEFirmwareStatus(this.device.features);
11571
- return Promise.resolve(firmwareStatus);
11616
+ const changelog = DataManager.getBleFirmwareChangelog(this.device.features);
11617
+ const release = DataManager.getBleFirmwareLeatestRelease(this.device.features);
11618
+ return Promise.resolve({
11619
+ status: firmwareStatus,
11620
+ changelog,
11621
+ release,
11622
+ });
11572
11623
  }
11573
11624
  return Promise.resolve(null);
11574
11625
  }
@@ -12830,6 +12881,120 @@ class StellarSignTransaction extends BaseMethod {
12830
12881
  }
12831
12882
  }
12832
12883
 
12884
+ const getBinary = ({ features, updateType, version }) => __awaiter(void 0, void 0, void 0, function* () {
12885
+ const releaseInfo = getInfo({ features, updateType });
12886
+ if (!releaseInfo) {
12887
+ throw TypedError('Runtime', 'no firmware found for this device');
12888
+ }
12889
+ if (version &&
12890
+ !semver__default["default"].eq(releaseInfo.version, version)) {
12891
+ throw TypedError('Runtime', 'firmware version mismatch');
12892
+ }
12893
+ const url = updateType === 'ble' ? releaseInfo.webUpdate : releaseInfo.url;
12894
+ const fw = yield httpRequest(url, 'binary');
12895
+ return Object.assign(Object.assign({}, releaseInfo), { binary: fw });
12896
+ });
12897
+ const getInfo = ({ features, updateType }) => {
12898
+ var _a, _b, _c;
12899
+ const deviceType = getDeviceType(features);
12900
+ const { deviceMap } = DataManager;
12901
+ const releaseInfo = (_c = (_b = (_a = deviceMap === null || deviceMap === void 0 ? void 0 : deviceMap[deviceType]) === null || _a === void 0 ? void 0 : _a[updateType]) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;
12902
+ return releaseInfo;
12903
+ };
12904
+
12905
+ const postConfirmationMessage = (device) => {
12906
+ var _a;
12907
+ if ((_a = device.features) === null || _a === void 0 ? void 0 : _a.firmware_present) {
12908
+ device.emit(DEVICE.BUTTON, device, { code: 'ButtonRequest_FirmwareUpdate' });
12909
+ }
12910
+ };
12911
+ const postProgressMessage = (device, progress, postMessage) => {
12912
+ postMessage(createUiMessage(UI_REQUEST$1.FIRMWARE_PROGRESS, {
12913
+ device: device.toMessageObject(),
12914
+ progress,
12915
+ }));
12916
+ };
12917
+ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload }) => __awaiter(void 0, void 0, void 0, function* () {
12918
+ var _a, _b;
12919
+ if (((_a = device.features) === null || _a === void 0 ? void 0 : _a.major_version) === 1) {
12920
+ postConfirmationMessage(device);
12921
+ const eraseCommand = updateType === 'firmware' ? 'FirmwareErase' : 'FirmwareErase_ex';
12922
+ yield typedCall(eraseCommand, 'Success', {});
12923
+ postProgressMessage(device, 0, postMessage);
12924
+ const { message } = yield typedCall('FirmwareUpload', 'Success', {
12925
+ payload,
12926
+ });
12927
+ return message;
12928
+ }
12929
+ if (((_b = device.features) === null || _b === void 0 ? void 0 : _b.major_version) === 2) {
12930
+ postConfirmationMessage(device);
12931
+ const length = payload.byteLength;
12932
+ let response = yield typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
12933
+ while (response.type !== 'Success') {
12934
+ const start = response.message.offset;
12935
+ const end = response.message.offset + response.message.length;
12936
+ const chunk = payload.slice(start, end);
12937
+ if (start > 0) {
12938
+ postProgressMessage(device, Math.round((start / length) * 100), postMessage);
12939
+ }
12940
+ response = yield typedCall('FirmwareUpload', ['FirmwareRequest', 'Success'], {
12941
+ payload: chunk,
12942
+ });
12943
+ }
12944
+ postProgressMessage(device, 100, postMessage);
12945
+ return response.message;
12946
+ }
12947
+ throw TypedError('Runtime', 'uploadFirmware: unknown major_version');
12948
+ });
12949
+
12950
+ class FirmwareUpdate extends BaseMethod {
12951
+ init() {
12952
+ this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
12953
+ this.requireDeviceMode = [UI_REQUEST.BOOTLOADER];
12954
+ const { payload } = this;
12955
+ validateParams(payload, [
12956
+ { name: 'version', type: 'array' },
12957
+ { name: 'binary', type: 'buffer' },
12958
+ ]);
12959
+ if (!payload.updateType) {
12960
+ throw TypedError('Method_InvalidParameter', 'updateType is required');
12961
+ }
12962
+ this.params = { updateType: payload.updateType };
12963
+ if ('version' in payload) {
12964
+ this.params = Object.assign(Object.assign({}, this.params), { version: payload.version });
12965
+ }
12966
+ if ('binary' in payload) {
12967
+ this.params = Object.assign(Object.assign({}, this.params), { binary: payload.binary });
12968
+ }
12969
+ }
12970
+ run() {
12971
+ return __awaiter(this, void 0, void 0, function* () {
12972
+ const { device, params } = this;
12973
+ let binary;
12974
+ try {
12975
+ if (params.binary) {
12976
+ binary = this.params.binary;
12977
+ }
12978
+ else {
12979
+ if (!device.features) {
12980
+ throw TypedError('Runtime', 'no features found for this device');
12981
+ }
12982
+ const firmware = yield getBinary({
12983
+ features: device.features,
12984
+ version: params.version,
12985
+ updateType: params.updateType,
12986
+ });
12987
+ binary = firmware.binary;
12988
+ }
12989
+ }
12990
+ catch (err) {
12991
+ throw TypedError('Method_FirmwareUpdate_DownloadFailed', err);
12992
+ }
12993
+ return uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary });
12994
+ });
12995
+ }
12996
+ }
12997
+
12833
12998
  var ApiMethods = /*#__PURE__*/Object.freeze({
12834
12999
  __proto__: null,
12835
13000
  searchDevices: SearchDevices,
@@ -12869,7 +13034,8 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
12869
13034
  solGetAddress: SolGetAddress,
12870
13035
  solSignTransaction: SolSignTransaction,
12871
13036
  stellarGetAddress: StellarGetAddress,
12872
- stellarSignTransaction: StellarSignTransaction
13037
+ stellarSignTransaction: StellarSignTransaction,
13038
+ firmwareUpdate: FirmwareUpdate
12873
13039
  });
12874
13040
 
12875
13041
  function findMethod(message) {
@@ -13043,6 +13209,7 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
13043
13209
  try {
13044
13210
  method = findMethod(message);
13045
13211
  method.connector = _connector;
13212
+ method.postMessage = postMessage;
13046
13213
  method.init();
13047
13214
  }
13048
13215
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,+DAOhB,SAAS,KAAG,OA4Gd,CAAC"}
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,+DAOhB,SAAS,KAAG,OA8Gd,CAAC"}
@@ -1,4 +1,14 @@
1
1
  import type { Response } from '../params';
2
- import type { IDeviceFirmwareStatus } from '../device';
3
- export declare function checkBLEFirmwareRelease(connectId?: string): Response<IDeviceFirmwareStatus>;
2
+ import type { IDeviceBLEFirmwareStatus } from '../device';
3
+ import { IBLEFirmwareReleaseInfo } from '../settings';
4
+ declare type BleFirmwareRelease = {
5
+ status: IDeviceBLEFirmwareStatus;
6
+ changelog: {
7
+ 'zh-CN': string;
8
+ 'en-US': string;
9
+ }[];
10
+ release: IBLEFirmwareReleaseInfo;
11
+ };
12
+ export declare function checkBLEFirmwareRelease(connectId?: string): Response<BleFirmwareRelease>;
13
+ export {};
4
14
  //# sourceMappingURL=checkBLEFirmwareRelease.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkBLEFirmwareRelease.d.ts","sourceRoot":"","sources":["../../../src/types/api/checkBLEFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"checkBLEFirmwareRelease.d.ts","sourceRoot":"","sources":["../../../src/types/api/checkBLEFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,aAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,OAAO,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
@@ -1,4 +1,14 @@
1
1
  import type { Response } from '../params';
2
2
  import type { IDeviceFirmwareStatus } from '../device';
3
- export declare function checkFirmwareRelease(connectId?: string): Response<IDeviceFirmwareStatus>;
3
+ import { IFirmwareReleaseInfo } from '../settings';
4
+ declare type FirmwareRelease = {
5
+ status: IDeviceFirmwareStatus;
6
+ changelog: {
7
+ 'en-US': string;
8
+ 'zh-CN': string;
9
+ }[];
10
+ release: IFirmwareReleaseInfo;
11
+ };
12
+ export declare function checkFirmwareRelease(connectId?: string): Response<FirmwareRelease>;
13
+ export {};
4
14
  //# sourceMappingURL=checkFirmwareRelease.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkFirmwareRelease.d.ts","sourceRoot":"","sources":["../../../src/types/api/checkFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"checkFirmwareRelease.d.ts","sourceRoot":"","sources":["../../../src/types/api/checkFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,aAAK,eAAe,GAAG;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { PROTO } from '../../constants';
2
+ import type { Params, Response } from '../params';
3
+ export interface FirmwareUpdateBinary {
4
+ binary: ArrayBuffer;
5
+ }
6
+ export interface FirmwareUpdate {
7
+ version: number[];
8
+ btcOnly?: boolean;
9
+ updateType: 'firmware' | 'ble';
10
+ }
11
+ export declare function firmwareUpdate(connectId: string | undefined, params: Params<FirmwareUpdate>): Response<PROTO.Success>;
12
+ export declare function firmwareUpdate(connectId: string | undefined, params: Params<FirmwareUpdateBinary>): Response<PROTO.Success>;
13
+ //# sourceMappingURL=firmwareUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,GAC7B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,GACnC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC"}
@@ -39,6 +39,7 @@ import { solSignTransaction } from './solSignTransaction';
39
39
  import { stellarGetAddress } from './stellarGetAddress';
40
40
  import { stellarSignTransaction } from './stellarSignTransaction';
41
41
  import { cipherKeyValue } from './cipherKeyValue';
42
+ import { firmwareUpdate } from './firmwareUpdate';
42
43
  export * from './export';
43
44
  export declare type CoreApi = {
44
45
  init: typeof init;
@@ -87,5 +88,6 @@ export declare type CoreApi = {
87
88
  solSignTransaction: typeof solSignTransaction;
88
89
  stellarGetAddress: typeof stellarGetAddress;
89
90
  stellarSignTransaction: typeof stellarSignTransaction;
91
+ firmwareUpdate: typeof firmwareUpdate;
90
92
  };
91
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"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"}
@@ -41,4 +41,42 @@ export declare type DeviceFirmwareRange = {
41
41
  max?: string;
42
42
  };
43
43
  };
44
+ declare type FeaturesNarrowing = {
45
+ major_version: 2;
46
+ fw_major: null;
47
+ fw_minor: null;
48
+ fw_patch: null;
49
+ bootloader_mode: true;
50
+ firmware_present: false;
51
+ } | {
52
+ major_version: 2;
53
+ fw_major: null;
54
+ fw_minor: null;
55
+ fw_patch: null;
56
+ bootloader_mode: null;
57
+ firmware_present: null;
58
+ } | {
59
+ major_version: 2;
60
+ fw_major: 2;
61
+ fw_minor: number;
62
+ fw_patch: number;
63
+ bootloader_mode: true;
64
+ firmware_present: true;
65
+ } | {
66
+ major_version: 1;
67
+ fw_major: null;
68
+ fw_minor: null;
69
+ fw_patch: null;
70
+ bootloader_mode: true;
71
+ firmware_present: false;
72
+ } | {
73
+ major_version: 1;
74
+ fw_major: null;
75
+ fw_minor: null;
76
+ fw_patch: null;
77
+ bootloader_mode: true;
78
+ firmware_present: true;
79
+ };
80
+ export declare type StrictFeatures = Features & FeaturesNarrowing;
81
+ export {};
44
82
  //# sourceMappingURL=device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/types/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,oBAAY,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7D,oBAAY,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAE7E,oBAAY,qBAAqB,GAC7B,eAAe,GACf,YAAY,GACZ,iBAAiB,GACjB,yBAAyB,CAAC;AAE9B,oBAAY,uBAAuB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;CAAE,CAAC;AAE/E,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,kBAAkB,EAAE,aAAa,GAAG,IAAI,CAAC;IACzC,eAAe,EAAE,aAAa,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAgCF,oBAAY,MAAM,GAAG,WAAW,CAAC;AAEjC,oBAAY,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAEtC,oBAAY,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAI/D,oBAAY,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAExD,oBAAY,qBAAqB,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3F,oBAAY,wBAAwB,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9F,oBAAY,gBAAgB,GAAG,OAAO,GAAG,UAAU,CAAC;AAEpD,oBAAY,mBAAmB,GAAG;KAC/B,UAAU,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;CAC3E,CAAC"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/types/device.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ export interface FirmwareRange {
8
8
  max: string;
9
9
  };
10
10
  }
11
- export declare type VersionArray = [1 | 2, number, number];
11
+ export declare type MajorVersion = 1 | 2;
12
+ export declare type VersionArray = [MajorVersion, number, number];
12
13
  export declare type FirmwareRelease = {
13
14
  required: boolean;
14
15
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"firmware.d.ts","sourceRoot":"","sources":["../../src/types/firmware.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,oBAAY,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,oBAAY,eAAe,GAAG;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,oBAAoB,EAAE,YAAY,CAAC;IACnC,sBAAsB,EAAE,YAAY,CAAC;IACrC,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,oBAAY,sBAAsB,GAAG,OAAO,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"firmware.d.ts","sourceRoot":"","sources":["../../src/types/firmware.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,oBAAY,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAY,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1D,oBAAY,eAAe,GAAG;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,oBAAoB,EAAE,YAAY,CAAC;IACnC,sBAAsB,EAAE,YAAY,CAAC;IACrC,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,oBAAY,sBAAsB,GAAG,OAAO,GAAG,UAAU,CAAC"}
@@ -1,6 +1,9 @@
1
1
  export interface CommonParams {
2
2
  keepSession?: boolean;
3
3
  }
4
+ export declare type Params<T> = CommonParams & T & {
5
+ bundle?: undefined;
6
+ };
4
7
  export interface Unsuccessful {
5
8
  success: false;
6
9
  payload: {
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,oBAAY,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oBAAY,MAAM,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,oBAAY,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const httpRequest: (url: string, _type: string) => any;
1
+ export declare const httpRequest: (url: string, type: string) => any;
2
2
  export declare const getTimeStamp: () => number;
3
3
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAS,MAAM,SAAS,MAAM,KAAG,GAA8B,CAAC;AAExF,eAAO,MAAM,YAAY,cAA6B,CAAC"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAS,MAAM,QAAQ,MAAM,KAAG,GAAoC,CAAC;AAE7F,eAAO,MAAM,YAAY,cAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"networkUtils.d.ts","sourceRoot":"","sources":["../../src/utils/networkUtils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAe,MAAM,gCAe5C,CAAC"}
1
+ {"version":3,"file":"networkUtils.d.ts","sourceRoot":"","sources":["../../src/utils/networkUtils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAe,MAAM,gCAiB5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IBLEFirmwareReleaseInfo, IDeviceFirmwareStatus, IFirmwareReleaseInfo } from '../types';
2
+ export declare const getReleaseStatus: (releases: (IFirmwareReleaseInfo | IBLEFirmwareReleaseInfo)[], currentVersion: string) => IDeviceFirmwareStatus;
3
+ export declare const getReleaseChangelog: (releases: (IFirmwareReleaseInfo | IBLEFirmwareReleaseInfo)[], currentVersion: string) => IFirmwareReleaseInfo['changelog'][];
4
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/utils/release.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhG,eAAO,MAAM,gBAAgB,aACjB,CAAC,oBAAoB,GAAG,uBAAuB,CAAC,EAAE,kBAC5C,MAAM,KACrB,qBASF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,CAAC,oBAAoB,GAAG,uBAAuB,CAAC,EAAE,kBAC5C,MAAM,KACrB,oBAAoB,CAAC,WAAW,CAAC,EAGnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "0.0.9",
3
+ "version": "0.1.1",
4
4
  "description": "> TODO: description",
5
5
  "author": "OneKey",
6
6
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
@@ -25,7 +25,7 @@
25
25
  "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
26
26
  },
27
27
  "dependencies": {
28
- "@onekeyfe/hd-transport": "^0.0.9",
28
+ "@onekeyfe/hd-transport": "^0.1.1",
29
29
  "axios": "^0.27.2",
30
30
  "bignumber.js": "^9.0.2",
31
31
  "parse-uri": "^1.0.7",
@@ -35,5 +35,5 @@
35
35
  "@types/parse-uri": "^1.0.0",
36
36
  "@types/semver": "^7.3.9"
37
37
  },
38
- "gitHead": "728d72e4c7ddc10227fff49c3cb8d4a0ff205fac"
38
+ "gitHead": "006c48af97498aad26719d9839979ecc2c55aea6"
39
39
  }
@@ -2,6 +2,7 @@ import { UI_REQUEST } from '../constants/ui-request';
2
2
  import { Device } from '../device/Device';
3
3
  import DeviceConnector from '../device/DeviceConnector';
4
4
  import { DeviceFirmwareRange } from '../types';
5
+ import { CoreMessage } from '../events';
5
6
 
6
7
  export abstract class BaseMethod<Params = undefined> {
7
8
  responseID: number;
@@ -48,6 +49,9 @@ export abstract class BaseMethod<Params = undefined> {
48
49
  */
49
50
  requireDeviceMode: string[];
50
51
 
52
+ // @ts-expect-error: strictPropertyInitialization
53
+ postMessage: (message: CoreMessage) => void;
54
+
51
55
  constructor(message: { id?: number; payload: any }) {
52
56
  const { payload } = message;
53
57
  this.name = payload.method;
@@ -11,7 +11,13 @@ export default class CheckBLEFirmwareRelease extends BaseMethod {
11
11
  run() {
12
12
  if (this.device.features) {
13
13
  const firmwareStatus = DataManager.getBLEFirmwareStatus(this.device.features);
14
- return Promise.resolve(firmwareStatus);
14
+ const changelog = DataManager.getBleFirmwareChangelog(this.device.features);
15
+ const release = DataManager.getBleFirmwareLeatestRelease(this.device.features);
16
+ return Promise.resolve({
17
+ status: firmwareStatus,
18
+ changelog,
19
+ release,
20
+ });
15
21
  }
16
22
  return Promise.resolve(null);
17
23
  }
@@ -8,7 +8,13 @@ export default class CheckFirmwareRelease extends BaseMethod {
8
8
  run() {
9
9
  if (this.device.features) {
10
10
  const firmwareStatus = DataManager.getFirmwareStatus(this.device.features);
11
- return Promise.resolve(firmwareStatus);
11
+ const changelog = DataManager.getFirmwareChangelog(this.device.features);
12
+ const release = DataManager.getFirmwareLeatestRelease(this.device.features);
13
+ return Promise.resolve({
14
+ status: firmwareStatus,
15
+ changelog,
16
+ release,
17
+ });
12
18
  }
13
19
  return Promise.resolve(null);
14
20
  }