@onekeyfe/hd-core 1.2.0-alpha.141 → 1.2.0-alpha.142
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.
|
@@ -6011,7 +6011,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6011
6011
|
expect(typedCall).toHaveBeenCalledTimes(1);
|
|
6012
6012
|
});
|
|
6013
6013
|
|
|
6014
|
-
test('
|
|
6014
|
+
test('uses the device firmware version for P1 and install completion for unobservable P2', () => {
|
|
6015
6015
|
const method = new FirmwareUpdateV4({
|
|
6016
6016
|
id: 1,
|
|
6017
6017
|
payload: {
|
|
@@ -6019,7 +6019,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6019
6019
|
platform: 'desktop',
|
|
6020
6020
|
targetsToUpdate: ['app_v1', 'app_v2'],
|
|
6021
6021
|
expectedTargetVersions: {
|
|
6022
|
-
app_v1: '
|
|
6022
|
+
app_v1: '3.0.0',
|
|
6023
6023
|
app_v2: '2.0.0',
|
|
6024
6024
|
},
|
|
6025
6025
|
},
|
|
@@ -6035,7 +6035,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6035
6035
|
expect(() => (method as any).assertExpectedProtocolV2Versions()).not.toThrow();
|
|
6036
6036
|
});
|
|
6037
6037
|
|
|
6038
|
-
test('uses
|
|
6038
|
+
test('uses the firmware version for P1 and the optional DeviceInfo version for P2', () => {
|
|
6039
6039
|
const method = new FirmwareUpdateV4({
|
|
6040
6040
|
id: 1,
|
|
6041
6041
|
payload: {
|
|
@@ -6050,13 +6050,13 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6050
6050
|
});
|
|
6051
6051
|
method.init();
|
|
6052
6052
|
(method as any).protocolV2LatestFinalFeatures = {
|
|
6053
|
-
major_version:
|
|
6053
|
+
major_version: 1,
|
|
6054
6054
|
minor_version: 0,
|
|
6055
6055
|
patch_version: 0,
|
|
6056
6056
|
};
|
|
6057
6057
|
(method as any).protocolV2LatestFinalDeviceInfo = {
|
|
6058
6058
|
main_mcu: {
|
|
6059
|
-
application: { version: '
|
|
6059
|
+
application: { version: '9.9.9' },
|
|
6060
6060
|
application_data: { version: '2.0.0' },
|
|
6061
6061
|
},
|
|
6062
6062
|
};
|
|
@@ -6079,7 +6079,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6079
6079
|
});
|
|
6080
6080
|
method.init();
|
|
6081
6081
|
(method as any).protocolV2LatestFinalFeatures = {
|
|
6082
|
-
major_version:
|
|
6082
|
+
major_version: 1,
|
|
6083
6083
|
minor_version: 0,
|
|
6084
6084
|
patch_version: 0,
|
|
6085
6085
|
};
|
|
@@ -6095,7 +6095,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6095
6095
|
);
|
|
6096
6096
|
});
|
|
6097
6097
|
|
|
6098
|
-
test('rejects unobservable
|
|
6098
|
+
test('rejects an unobservable P2 version without P2 completion evidence', () => {
|
|
6099
6099
|
const method = new FirmwareUpdateV4({
|
|
6100
6100
|
id: 1,
|
|
6101
6101
|
payload: {
|
|
@@ -6103,7 +6103,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6103
6103
|
platform: 'desktop',
|
|
6104
6104
|
targetsToUpdate: ['app_v1', 'app_v2'],
|
|
6105
6105
|
expectedTargetVersions: {
|
|
6106
|
-
app_v1: '
|
|
6106
|
+
app_v1: '3.0.0',
|
|
6107
6107
|
app_v2: '2.0.0',
|
|
6108
6108
|
},
|
|
6109
6109
|
},
|
|
@@ -6118,7 +6118,7 @@ describe('Protocol V2 firmware update targets', () => {
|
|
|
6118
6118
|
(method as any).protocolV2CompletedTargetIds = new Set([4]);
|
|
6119
6119
|
|
|
6120
6120
|
expect(() => (method as any).assertExpectedProtocolV2Versions()).toThrow(
|
|
6121
|
-
'target
|
|
6121
|
+
'target app_v2 has no observable final version after status fallback'
|
|
6122
6122
|
);
|
|
6123
6123
|
});
|
|
6124
6124
|
|
|
@@ -40,7 +40,6 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
40
40
|
private validateExpectedTargetVersions;
|
|
41
41
|
private getExpectedProtocolV2TargetVersion;
|
|
42
42
|
private assertExpectedProtocolV2Versions;
|
|
43
|
-
private getProtocolV2RequestedTargets;
|
|
44
43
|
private getProtocolV2DeviceFeatures;
|
|
45
44
|
private getProtocolV2SerialNumber;
|
|
46
45
|
private getProtocolV2PreparedPlanDeviceModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkD,MAAM,qBAAqB,CAAC;AA0BlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAkC/E,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AAsFrC,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,0BAA0B,UAAQ,QAiCnC;AAuVD,eAAO,MAAM,oCAAoC,WACvC,WAAW,GAAG,UAAU,eACnB,MAAM,GAAG,SAAS,YAKhC,CAAC;AAEF,eAAO,MAAM,iCAAiC,0BACrB,MAAM,uBACR,MAAM,iBACZ,MAAM,eACR,MAAM,SAsBpB,CAAC;AAUF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IAC5F,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,OAAO,CAAC,sBAAsB,CAAC,CAAS;IAExC,OAAO,CAAC,oCAAoC,CAAS;IAErD,qBAAqB;IAIrB,OAAO,CAAC,yBAAyB,CAA4B;IAE7D,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,iCAAiC,CAAS;IAElD,OAAO,CAAC,iCAAiC,CAA6B;IAEtE,OAAO,CAAC,4BAA4B,CAAqB;IAEzD,OAAO,CAAC,6BAA6B,CAAC,CAAW;IAEjD,OAAO,CAAC,+BAA+B,CAAC,CAAuB;IAE/D,OAAO,CAAC,iCAAiC,CAA6B;IAEtE,OAAO,CAAC,kCAAkC,CAAC,CAAW;IAEtD,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,OAAO,CAAC,gCAAgC,CAAK;IAE7C,IAAI;IA6LJ,OAAO,CAAC,8BAA8B;IAwBhC,GAAG;;;;;YAKK,aAAa;YAyJb,4BAA4B;YAkB5B,0BAA0B;YAY1B,8BAA8B;YAK9B,+BAA+B;YAqG/B,gCAAgC;YAiIhC,qCAAqC;YAmJrC,gCAAgC;YAgBhC,uCAAuC;YA+HvC,8BAA8B;IA8B5C,OAAO,CAAC,8BAA8B;IA0BtC,OAAO,CAAC,kCAAkC;IAc1C,OAAO,CAAC,gCAAgC;
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -52784,11 +52784,11 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52784
52784
|
return;
|
|
52785
52785
|
const features = this.protocolV2LatestFinalFeatures;
|
|
52786
52786
|
const deviceInfo = this.protocolV2LatestFinalDeviceInfo;
|
|
52787
|
-
const requestedTargets = this.getProtocolV2RequestedTargets();
|
|
52788
|
-
const applicationTargets = requestedTargets.filter(target => target === 'app_v1' || target === 'app_v2');
|
|
52789
52787
|
const visibleVersions = {
|
|
52790
52788
|
boot: features ? getDeviceBootloaderVersion(features).join('.') : undefined,
|
|
52791
|
-
app_v1:
|
|
52789
|
+
app_v1: features
|
|
52790
|
+
? getDeviceFirmwareVersion(features).join('.')
|
|
52791
|
+
: (_c = (_b = deviceInfo === null || deviceInfo === void 0 ? void 0 : deviceInfo.main_mcu) === null || _b === void 0 ? void 0 : _b.application) === null || _c === void 0 ? void 0 : _c.version,
|
|
52792
52792
|
app_v2: (_e = (_d = deviceInfo === null || deviceInfo === void 0 ? void 0 : deviceInfo.main_mcu) === null || _d === void 0 ? void 0 : _d.application_data) === null || _e === void 0 ? void 0 : _e.version,
|
|
52793
52793
|
coprocessor: features ? getDeviceBLEFirmwareVersion(features).join('.') : undefined,
|
|
52794
52794
|
se01: (_f = features === null || features === void 0 ? void 0 : features.se01Version) !== null && _f !== void 0 ? _f : undefined,
|
|
@@ -52796,9 +52796,6 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52796
52796
|
se03: (_h = features === null || features === void 0 ? void 0 : features.se03Version) !== null && _h !== void 0 ? _h : undefined,
|
|
52797
52797
|
se04: (_j = features === null || features === void 0 ? void 0 : features.se04Version) !== null && _j !== void 0 ? _j : undefined,
|
|
52798
52798
|
};
|
|
52799
|
-
if (features && applicationTargets.length === 1 && !visibleVersions[applicationTargets[0]]) {
|
|
52800
|
-
visibleVersions[applicationTargets[0]] = getDeviceFirmwareVersion(features).join('.');
|
|
52801
|
-
}
|
|
52802
52799
|
const expectedEntries = Object.entries(expected).filter(([target]) => !targets || targets.includes(target));
|
|
52803
52800
|
for (const [target, expectedVersion] of expectedEntries) {
|
|
52804
52801
|
const targetId = (_k = Array.from(PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID.entries()).find(([, mappedTarget]) => mappedTarget === target)) === null || _k === void 0 ? void 0 : _k[0];
|
|
@@ -52807,14 +52804,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52807
52804
|
? visibleVersions[target]
|
|
52808
52805
|
: `${Math.floor(statusVersion / 0x10000) % 0x100}.${Math.floor(statusVersion / 0x100) % 0x100}.${statusVersion % 0x100}`;
|
|
52809
52806
|
if (!observedVersion) {
|
|
52810
|
-
const
|
|
52811
|
-
if (requestedTarget === 'resource' || requestedTarget === 'boot_resources')
|
|
52812
|
-
return [];
|
|
52813
|
-
const installTarget = PROTOCOL_V2_INSTALL_TARGET_BY_UPDATE_TARGET.get(requestedTarget);
|
|
52814
|
-
return installTarget ? [installTarget.targetId] : [];
|
|
52815
|
-
});
|
|
52816
|
-
const hasCompleteTargetEvidence = requestedTargetIds.length > 0 &&
|
|
52817
|
-
requestedTargetIds.every(targetId => this.protocolV2CompletedTargetIds.has(targetId));
|
|
52807
|
+
const hasCompleteTargetEvidence = targetId !== undefined && this.protocolV2CompletedTargetIds.has(targetId);
|
|
52818
52808
|
if (hasCompleteTargetEvidence) {
|
|
52819
52809
|
Log$7.warn(`Protocol V2 target ${target} has no observable final version; install completion is authoritative`);
|
|
52820
52810
|
}
|
|
@@ -52827,34 +52817,6 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52827
52817
|
}
|
|
52828
52818
|
}
|
|
52829
52819
|
}
|
|
52830
|
-
getProtocolV2RequestedTargets() {
|
|
52831
|
-
var _a, _b, _c;
|
|
52832
|
-
if ((_a = this.params.targetsToUpdate) === null || _a === void 0 ? void 0 : _a.length) {
|
|
52833
|
-
return [...new Set(this.params.targetsToUpdate)];
|
|
52834
|
-
}
|
|
52835
|
-
if ((_b = this.params.preparedPlan) === null || _b === void 0 ? void 0 : _b.targetsToUpdate.length) {
|
|
52836
|
-
return [...new Set(this.params.preparedPlan.targetsToUpdate)];
|
|
52837
|
-
}
|
|
52838
|
-
const targets = new Set();
|
|
52839
|
-
Object.keys((_c = this.params.componentArtifacts) !== null && _c !== void 0 ? _c : {}).forEach(target => targets.add(target));
|
|
52840
|
-
if (this.params.bootloaderBinary)
|
|
52841
|
-
targets.add('boot');
|
|
52842
|
-
if (this.params.applicationP1Binary)
|
|
52843
|
-
targets.add('app_v1');
|
|
52844
|
-
if (this.params.applicationP2Binary)
|
|
52845
|
-
targets.add('app_v2');
|
|
52846
|
-
if (this.params.coprocessorBinary)
|
|
52847
|
-
targets.add('coprocessor');
|
|
52848
|
-
if (this.params.se01Binary)
|
|
52849
|
-
targets.add('se01');
|
|
52850
|
-
if (this.params.se02Binary)
|
|
52851
|
-
targets.add('se02');
|
|
52852
|
-
if (this.params.se03Binary)
|
|
52853
|
-
targets.add('se03');
|
|
52854
|
-
if (this.params.se04Binary)
|
|
52855
|
-
targets.add('se04');
|
|
52856
|
-
return Array.from(targets);
|
|
52857
|
-
}
|
|
52858
52820
|
getProtocolV2DeviceFeatures() {
|
|
52859
52821
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52860
52822
|
let { features } = this.device;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.142",
|
|
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.
|
|
29
|
-
"@onekeyfe/hd-transport": "1.2.0-alpha.
|
|
28
|
+
"@onekeyfe/hd-shared": "1.2.0-alpha.142",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.2.0-alpha.142",
|
|
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": "
|
|
49
|
+
"gitHead": "fae9cf5fd2f2a064deab77c32a987f8b989fdd95"
|
|
50
50
|
}
|
|
@@ -1606,13 +1606,12 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
1606
1606
|
if (!expected) return;
|
|
1607
1607
|
const features = this.protocolV2LatestFinalFeatures;
|
|
1608
1608
|
const deviceInfo = this.protocolV2LatestFinalDeviceInfo;
|
|
1609
|
-
const requestedTargets = this.getProtocolV2RequestedTargets();
|
|
1610
|
-
const applicationTargets = requestedTargets.filter(
|
|
1611
|
-
target => target === 'app_v1' || target === 'app_v2'
|
|
1612
|
-
);
|
|
1613
1609
|
const visibleVersions: Partial<Record<FirmwareUpdateV4Target, string>> = {
|
|
1614
1610
|
boot: features ? getDeviceBootloaderVersion(features).join('.') : undefined,
|
|
1615
|
-
|
|
1611
|
+
// Protocol V2 firmware exposes P1 as the device firmware version after reboot.
|
|
1612
|
+
app_v1: features
|
|
1613
|
+
? getDeviceFirmwareVersion(features).join('.')
|
|
1614
|
+
: deviceInfo?.main_mcu?.application?.version,
|
|
1616
1615
|
app_v2: deviceInfo?.main_mcu?.application_data?.version,
|
|
1617
1616
|
coprocessor: features ? getDeviceBLEFirmwareVersion(features).join('.') : undefined,
|
|
1618
1617
|
se01: features?.se01Version ?? undefined,
|
|
@@ -1620,9 +1619,6 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
1620
1619
|
se03: features?.se03Version ?? undefined,
|
|
1621
1620
|
se04: features?.se04Version ?? undefined,
|
|
1622
1621
|
};
|
|
1623
|
-
if (features && applicationTargets.length === 1 && !visibleVersions[applicationTargets[0]]) {
|
|
1624
|
-
visibleVersions[applicationTargets[0]] = getDeviceFirmwareVersion(features).join('.');
|
|
1625
|
-
}
|
|
1626
1622
|
const expectedEntries = (
|
|
1627
1623
|
Object.entries(expected) as Array<[FirmwareUpdateV4Target, string]>
|
|
1628
1624
|
).filter(([target]) => !targets || targets.includes(target));
|
|
@@ -1639,14 +1635,8 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
1639
1635
|
Math.floor(statusVersion / 0x100) % 0x100
|
|
1640
1636
|
}.${statusVersion % 0x100}`;
|
|
1641
1637
|
if (!observedVersion) {
|
|
1642
|
-
const requestedTargetIds = requestedTargets.flatMap(requestedTarget => {
|
|
1643
|
-
if (requestedTarget === 'resource' || requestedTarget === 'boot_resources') return [];
|
|
1644
|
-
const installTarget = PROTOCOL_V2_INSTALL_TARGET_BY_UPDATE_TARGET.get(requestedTarget);
|
|
1645
|
-
return installTarget ? [installTarget.targetId] : [];
|
|
1646
|
-
});
|
|
1647
1638
|
const hasCompleteTargetEvidence =
|
|
1648
|
-
|
|
1649
|
-
requestedTargetIds.every(targetId => this.protocolV2CompletedTargetIds.has(targetId));
|
|
1639
|
+
targetId !== undefined && this.protocolV2CompletedTargetIds.has(targetId);
|
|
1650
1640
|
if (hasCompleteTargetEvidence) {
|
|
1651
1641
|
Log.warn(
|
|
1652
1642
|
`Protocol V2 target ${target} has no observable final version; install completion is authoritative`
|
|
@@ -1666,28 +1656,6 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
1666
1656
|
}
|
|
1667
1657
|
}
|
|
1668
1658
|
|
|
1669
|
-
private getProtocolV2RequestedTargets(): FirmwareUpdateV4Target[] {
|
|
1670
|
-
if (this.params.targetsToUpdate?.length) {
|
|
1671
|
-
return [...new Set(this.params.targetsToUpdate)];
|
|
1672
|
-
}
|
|
1673
|
-
if (this.params.preparedPlan?.targetsToUpdate.length) {
|
|
1674
|
-
return [...new Set(this.params.preparedPlan.targetsToUpdate)] as FirmwareUpdateV4Target[];
|
|
1675
|
-
}
|
|
1676
|
-
const targets = new Set<FirmwareUpdateV4Target>();
|
|
1677
|
-
Object.keys(this.params.componentArtifacts ?? {}).forEach(target =>
|
|
1678
|
-
targets.add(target as FirmwareUpdateV4Target)
|
|
1679
|
-
);
|
|
1680
|
-
if (this.params.bootloaderBinary) targets.add('boot');
|
|
1681
|
-
if (this.params.applicationP1Binary) targets.add('app_v1');
|
|
1682
|
-
if (this.params.applicationP2Binary) targets.add('app_v2');
|
|
1683
|
-
if (this.params.coprocessorBinary) targets.add('coprocessor');
|
|
1684
|
-
if (this.params.se01Binary) targets.add('se01');
|
|
1685
|
-
if (this.params.se02Binary) targets.add('se02');
|
|
1686
|
-
if (this.params.se03Binary) targets.add('se03');
|
|
1687
|
-
if (this.params.se04Binary) targets.add('se04');
|
|
1688
|
-
return Array.from(targets);
|
|
1689
|
-
}
|
|
1690
|
-
|
|
1691
1659
|
private async getProtocolV2DeviceFeatures(): Promise<Features> {
|
|
1692
1660
|
let { features } = this.device;
|
|
1693
1661
|
if (typeof this.device.getFeatures === 'function') {
|