@onekeyfe/hd-core 1.1.19-alpha.1 → 1.1.19-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/FirmwareUpdate.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/btc/helpers/btcParamsUtils.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +4 -4
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
- package/dist/api/firmware/bootloaderHelper.d.ts +1 -1
- package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
- package/dist/api/firmware/updateBootloader.d.ts +1 -1
- package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -2
- package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -1
- package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
- package/dist/api/polkadot/networks.d.ts +7 -1
- package/dist/api/polkadot/networks.d.ts.map +1 -1
- package/dist/api/tron/TronGetAddress.d.ts +2 -2
- package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
- package/dist/api/tron/TronSignMessage.d.ts +4 -1
- package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
- package/dist/api/tron/TronSignTransaction.d.ts +3 -3
- package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
- package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +6 -6
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +116 -54
- package/dist/types/api/polkadotSignTransaction.d.ts +2 -1
- package/dist/types/api/polkadotSignTransaction.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/tracing.d.ts.map +1 -1
- package/package.json +6 -8
- package/src/api/FirmwareUpdate.ts +2 -1
- package/src/api/FirmwareUpdateV2.ts +2 -1
- package/src/api/btc/helpers/btcParamsUtils.ts +1 -0
- package/src/api/firmware/FirmwareUpdateBaseMethod.ts +16 -18
- package/src/api/firmware/bootloaderHelper.ts +3 -1
- package/src/api/firmware/updateBootloader.ts +6 -3
- package/src/api/firmware/uploadFirmware.ts +65 -35
- package/src/api/polkadot/PolkadotGetAddress.ts +5 -5
- package/src/api/polkadot/PolkadotSignTransaction.ts +8 -5
- package/src/api/polkadot/networks.ts +16 -0
- package/src/api/tron/TronGetAddress.ts +3 -2
- package/src/api/tron/TronSignMessage.ts +7 -4
- package/src/api/tron/TronSignTransaction.ts +14 -3
- package/src/api/xrp/XrpGetAddress.ts +0 -19
- package/src/core/index.ts +30 -23
- package/src/data/messages/messages.json +4 -0
- package/src/device/DeviceCommands.ts +14 -6
- package/src/types/api/polkadotSignTransaction.ts +2 -1
- package/src/utils/logger.ts +3 -2
- package/src/utils/tracing.ts +47 -60
package/dist/index.js
CHANGED
|
@@ -14,7 +14,6 @@ var blake2s = require('@noble/hashes/blake2s');
|
|
|
14
14
|
var sha256 = require('@noble/hashes/sha256');
|
|
15
15
|
var JSZip = require('jszip');
|
|
16
16
|
var sha3 = require('@noble/hashes/sha3');
|
|
17
|
-
var rippleKeypairs = require('ripple-keypairs');
|
|
18
17
|
var blake2b = require('@noble/hashes/blake2b');
|
|
19
18
|
var buffer = require('buffer');
|
|
20
19
|
|
|
@@ -11099,6 +11098,10 @@ var nested$1 = {
|
|
|
11099
11098
|
rule: "required",
|
|
11100
11099
|
type: "string",
|
|
11101
11100
|
id: 3
|
|
11101
|
+
},
|
|
11102
|
+
prefix: {
|
|
11103
|
+
type: "uint32",
|
|
11104
|
+
id: 4
|
|
11102
11105
|
}
|
|
11103
11106
|
}
|
|
11104
11107
|
},
|
|
@@ -26749,7 +26752,12 @@ class DeviceCommands {
|
|
|
26749
26752
|
const promise = this.transport.call(this.mainId, type, msg);
|
|
26750
26753
|
this.callPromise = promise;
|
|
26751
26754
|
const res = yield promise;
|
|
26752
|
-
|
|
26755
|
+
if (res.type === 'Failure') {
|
|
26756
|
+
LogCore.debug('[DeviceCommands] [call] Received', res.type, res.message);
|
|
26757
|
+
}
|
|
26758
|
+
else {
|
|
26759
|
+
LogCore.debug('[DeviceCommands] [call] Received', res.type);
|
|
26760
|
+
}
|
|
26753
26761
|
return res;
|
|
26754
26762
|
}
|
|
26755
26763
|
catch (error) {
|
|
@@ -26885,12 +26893,15 @@ class DeviceCommands {
|
|
|
26885
26893
|
(message === null || message === void 0 ? void 0 : message.includes('verify failed'))) {
|
|
26886
26894
|
error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareVerificationFailed, message);
|
|
26887
26895
|
}
|
|
26896
|
+
else if (message === null || message === void 0 ? void 0 : message.includes('Firmware downgrade not allowed')) {
|
|
26897
|
+
error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareDowngradeNotAllowed, message);
|
|
26898
|
+
}
|
|
26888
26899
|
}
|
|
26889
26900
|
if (code === 'Failure_UnexpectedMessage') {
|
|
26890
26901
|
if (callType === 'PassphraseAck') {
|
|
26891
26902
|
error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.UnexpectPassphrase);
|
|
26892
26903
|
}
|
|
26893
|
-
if (message === 'Not in Signing mode') {
|
|
26904
|
+
else if (message === 'Not in Signing mode') {
|
|
26894
26905
|
error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.NotInSigningMode);
|
|
26895
26906
|
}
|
|
26896
26907
|
}
|
|
@@ -28905,33 +28916,48 @@ const waitBleInstall = (updateType) => __awaiter(void 0, void 0, void 0, functio
|
|
|
28905
28916
|
yield wait(10 * 1000);
|
|
28906
28917
|
}
|
|
28907
28918
|
});
|
|
28908
|
-
const uploadFirmware = (updateType, typedCall, postMessage, device, { payload, rebootOnSuccess, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28919
|
+
const uploadFirmware = (updateType, typedCall, postMessage, device, { payload, rebootOnSuccess, }, isUpdateBootloader) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28909
28920
|
var _a, _b;
|
|
28910
28921
|
const deviceType = getDeviceType(device.features);
|
|
28911
28922
|
if (DeviceModelToTypes.model_mini.includes(deviceType)) {
|
|
28912
28923
|
postConfirmationMessage(device);
|
|
28913
28924
|
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
28914
28925
|
const isFirmware = updateType === 'firmware';
|
|
28915
|
-
|
|
28916
|
-
|
|
28917
|
-
|
|
28918
|
-
|
|
28919
|
-
|
|
28920
|
-
if (
|
|
28921
|
-
|
|
28922
|
-
|
|
28923
|
-
|
|
28924
|
-
|
|
28925
|
-
|
|
28926
|
-
|
|
28927
|
-
|
|
28928
|
-
|
|
28929
|
-
|
|
28930
|
-
|
|
28931
|
-
|
|
28932
|
-
|
|
28926
|
+
if (isFirmware && !isUpdateBootloader) {
|
|
28927
|
+
const newFeatures = yield typedCall('GetFeatures', 'Features', {});
|
|
28928
|
+
const deviceBootloaderVersion = getDeviceBootloaderVersion(newFeatures.message).join('.');
|
|
28929
|
+
const supportUpgradeFileHeader = semver__default["default"].gte(deviceBootloaderVersion, '2.1.0');
|
|
28930
|
+
Log$8.debug('supportUpgradeFileHeader:', supportUpgradeFileHeader);
|
|
28931
|
+
if (supportUpgradeFileHeader) {
|
|
28932
|
+
const HEADER_SIZE = 1024;
|
|
28933
|
+
if (payload.byteLength < HEADER_SIZE) {
|
|
28934
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `firmware payload too small: ${payload.byteLength} bytes, expected at least ${HEADER_SIZE} bytes`);
|
|
28935
|
+
}
|
|
28936
|
+
Log$8.debug('Uploading firmware header:', {
|
|
28937
|
+
size: HEADER_SIZE,
|
|
28938
|
+
totalSize: payload.byteLength,
|
|
28939
|
+
});
|
|
28940
|
+
postProgressTip(device, 'UploadingFirmwareHeader', postMessage);
|
|
28941
|
+
const header = new Uint8Array(payload.slice(0, HEADER_SIZE));
|
|
28942
|
+
try {
|
|
28943
|
+
const headerRes = yield typedCall('UpgradeFileHeader', 'Success', {
|
|
28944
|
+
data: bytesToHex(header),
|
|
28945
|
+
});
|
|
28946
|
+
const isUnknownMessage = (_b = (_a = headerRes.message) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.includes('Failure_UnknownMessage');
|
|
28947
|
+
if (headerRes.type !== 'Success' && !isUnknownMessage) {
|
|
28948
|
+
Log$8.error('Firmware header upload failed:', headerRes);
|
|
28949
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'failed to upload firmware header');
|
|
28950
|
+
}
|
|
28951
|
+
}
|
|
28952
|
+
catch (error) {
|
|
28953
|
+
Log$8.error('Firmware header upload failed:', error);
|
|
28954
|
+
const message = error instanceof Error ? error.message : String(error !== null && error !== void 0 ? error : '');
|
|
28955
|
+
if (!message.includes('Failure_UnknownMessage')) {
|
|
28956
|
+
throw error;
|
|
28957
|
+
}
|
|
28958
|
+
}
|
|
28959
|
+
Log$8.debug('Firmware header uploaded successfully');
|
|
28933
28960
|
}
|
|
28934
|
-
Log$8.debug('Firmware header uploaded successfully, isUnexpectedMessage:', isUnexpectedMessage);
|
|
28935
28961
|
}
|
|
28936
28962
|
const eraseCommand = isFirmware ? 'FirmwareErase' : 'FirmwareErase_ex';
|
|
28937
28963
|
const eraseRes = yield typedCall(eraseCommand, 'Success', {});
|
|
@@ -28940,15 +28966,30 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload, r
|
|
|
28940
28966
|
}
|
|
28941
28967
|
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
28942
28968
|
postProgressMessage(device, 0, 'installingFirmware', postMessage);
|
|
28943
|
-
|
|
28944
|
-
|
|
28945
|
-
|
|
28969
|
+
let updateResponse;
|
|
28970
|
+
try {
|
|
28971
|
+
updateResponse = yield typedCall('FirmwareUpload', 'Success', {
|
|
28972
|
+
payload,
|
|
28973
|
+
});
|
|
28974
|
+
}
|
|
28975
|
+
catch (error) {
|
|
28976
|
+
if (isDeviceDisconnectedError$1(error)) {
|
|
28977
|
+
Log$8.log('Rebooting device');
|
|
28978
|
+
updateResponse = {
|
|
28979
|
+
type: 'Success',
|
|
28980
|
+
message: { message: FIRMWARE_UPDATE_CONFIRM$1 },
|
|
28981
|
+
};
|
|
28982
|
+
}
|
|
28983
|
+
else {
|
|
28984
|
+
throw error;
|
|
28985
|
+
}
|
|
28986
|
+
}
|
|
28946
28987
|
postProgressMessage(device, 100, 'installingFirmware', postMessage);
|
|
28947
28988
|
yield waitBleInstall(updateType);
|
|
28948
|
-
if (type !== 'Success') {
|
|
28989
|
+
if (updateResponse.type !== 'Success') {
|
|
28949
28990
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'install firmware error');
|
|
28950
28991
|
}
|
|
28951
|
-
return message;
|
|
28992
|
+
return updateResponse.message;
|
|
28952
28993
|
}
|
|
28953
28994
|
if (DeviceModelToTypes.model_touch.includes(deviceType)) {
|
|
28954
28995
|
if (device.features) {
|
|
@@ -29431,9 +29472,9 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
29431
29472
|
startEmmcFirmwareUpdate({ path }) {
|
|
29432
29473
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29433
29474
|
const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
|
|
29434
|
-
let
|
|
29475
|
+
let updateResponse;
|
|
29435
29476
|
try {
|
|
29436
|
-
|
|
29477
|
+
updateResponse = yield typedCall('FirmwareUpdateEmmc', 'Success', {
|
|
29437
29478
|
path,
|
|
29438
29479
|
reboot_on_success: true,
|
|
29439
29480
|
});
|
|
@@ -29441,7 +29482,7 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
29441
29482
|
catch (error) {
|
|
29442
29483
|
if (isDeviceDisconnectedError(error)) {
|
|
29443
29484
|
Log$7.log('Rebooting device');
|
|
29444
|
-
|
|
29485
|
+
updateResponse = {
|
|
29445
29486
|
type: 'Success',
|
|
29446
29487
|
message: { message: FIRMWARE_UPDATE_CONFIRM },
|
|
29447
29488
|
};
|
|
@@ -29450,7 +29491,7 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
29450
29491
|
throw error;
|
|
29451
29492
|
}
|
|
29452
29493
|
}
|
|
29453
|
-
if (
|
|
29494
|
+
if (updateResponse.type !== 'Success') {
|
|
29454
29495
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareError, 'firmware update error');
|
|
29455
29496
|
}
|
|
29456
29497
|
this.postTipMessage(exports.FirmwareUpdateTipMessage.FirmwareUpdating);
|
|
@@ -29842,7 +29883,7 @@ class FirmwareUpdate extends BaseMethod {
|
|
|
29842
29883
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, (_b = err.message) !== null && _b !== void 0 ? _b : err);
|
|
29843
29884
|
}
|
|
29844
29885
|
yield this.device.acquire();
|
|
29845
|
-
const response = yield uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary, rebootOnSuccess: this.payload.rebootOnSuccess });
|
|
29886
|
+
const response = yield uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary, rebootOnSuccess: this.payload.rebootOnSuccess }, false);
|
|
29846
29887
|
if (this.connectId) {
|
|
29847
29888
|
DevicePool.clearDeviceCache(this.connectId);
|
|
29848
29889
|
}
|
|
@@ -30114,7 +30155,7 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
30114
30155
|
}
|
|
30115
30156
|
(_j = (_h = this.device) === null || _h === void 0 ? void 0 : _h.commands) === null || _j === void 0 ? void 0 : _j.checkDisposed();
|
|
30116
30157
|
yield this.device.acquire();
|
|
30117
|
-
const response = yield uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary, rebootOnSuccess: true });
|
|
30158
|
+
const response = yield uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary, rebootOnSuccess: true }, params.isUpdateBootloader);
|
|
30118
30159
|
if (this.connectId) {
|
|
30119
30160
|
DevicePool.clearDeviceCache(this.connectId);
|
|
30120
30161
|
}
|
|
@@ -34447,6 +34488,9 @@ class TronSignMessage extends BaseMethod {
|
|
|
34447
34488
|
pro: {
|
|
34448
34489
|
min: '4.16.0',
|
|
34449
34490
|
},
|
|
34491
|
+
touch: {
|
|
34492
|
+
min: '4.12.0',
|
|
34493
|
+
},
|
|
34450
34494
|
classic1s: {
|
|
34451
34495
|
min: '3.13.0',
|
|
34452
34496
|
},
|
|
@@ -34593,6 +34637,9 @@ class TronSignTransaction extends BaseMethod {
|
|
|
34593
34637
|
pro: {
|
|
34594
34638
|
min: '4.13.0',
|
|
34595
34639
|
},
|
|
34640
|
+
touch: {
|
|
34641
|
+
min: '4.12.0',
|
|
34642
|
+
},
|
|
34596
34643
|
model_classic1s: {
|
|
34597
34644
|
min: '3.12.0',
|
|
34598
34645
|
},
|
|
@@ -34608,6 +34655,12 @@ class TronSignTransaction extends BaseMethod {
|
|
|
34608
34655
|
pro: {
|
|
34609
34656
|
min: '4.15.0',
|
|
34610
34657
|
},
|
|
34658
|
+
touch: {
|
|
34659
|
+
min: '4.12.0',
|
|
34660
|
+
},
|
|
34661
|
+
model_classic1s: {
|
|
34662
|
+
min: '3.13.0',
|
|
34663
|
+
},
|
|
34611
34664
|
};
|
|
34612
34665
|
}
|
|
34613
34666
|
checkSupportDelegateContractLockPeriod() {
|
|
@@ -35302,21 +35355,8 @@ class XrpGetAddress$1 extends BaseMethod {
|
|
|
35302
35355
|
};
|
|
35303
35356
|
}
|
|
35304
35357
|
run() {
|
|
35305
|
-
var _a, _b, _c, _d
|
|
35358
|
+
var _a, _b, _c, _d;
|
|
35306
35359
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35307
|
-
if (this.hasBundle && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features) && !this.shouldConfirm) {
|
|
35308
|
-
const res = yield batchGetPublickeys(this.device, this.params, 'secp256k1', 144);
|
|
35309
|
-
const result = res.public_keys.map((publicKey, index) => ({
|
|
35310
|
-
path: serializedPath(this.params[index].address_n),
|
|
35311
|
-
address: rippleKeypairs.deriveAddress(publicKey),
|
|
35312
|
-
publicKey,
|
|
35313
|
-
pub: publicKey,
|
|
35314
|
-
}));
|
|
35315
|
-
validateResult(result, ['address', 'publicKey'], {
|
|
35316
|
-
expectedLength: this.params.length,
|
|
35317
|
-
});
|
|
35318
|
-
return Promise.resolve(result);
|
|
35319
|
-
}
|
|
35320
35360
|
const responses = [];
|
|
35321
35361
|
for (let i = 0; i < this.params.length; i++) {
|
|
35322
35362
|
const param = this.params[i];
|
|
@@ -35330,8 +35370,8 @@ class XrpGetAddress$1 extends BaseMethod {
|
|
|
35330
35370
|
responses.push({
|
|
35331
35371
|
path,
|
|
35332
35372
|
address,
|
|
35333
|
-
publicKey: (
|
|
35334
|
-
pub: (
|
|
35373
|
+
publicKey: (_b = (_a = publicKey.message) === null || _a === void 0 ? void 0 : _a.public_keys) === null || _b === void 0 ? void 0 : _b[0],
|
|
35374
|
+
pub: (_d = (_c = publicKey.message) === null || _c === void 0 ? void 0 : _c.public_keys) === null || _d === void 0 ? void 0 : _d[0],
|
|
35335
35375
|
});
|
|
35336
35376
|
this.postPreviousAddressMessage({
|
|
35337
35377
|
path,
|
|
@@ -36814,6 +36854,11 @@ var Networks;
|
|
|
36814
36854
|
Networks["Astar"] = "astar";
|
|
36815
36855
|
Networks["JoyStream"] = "joystream";
|
|
36816
36856
|
Networks["Manta"] = "manta";
|
|
36857
|
+
Networks["Hydration"] = "hydration";
|
|
36858
|
+
Networks["Bifrost"] = "bifrost";
|
|
36859
|
+
Networks["BifrostKusama"] = "bifrost-ksm";
|
|
36860
|
+
Networks["PolkadotAssetHub"] = "polkadot-assethub";
|
|
36861
|
+
Networks["KusamaAssetHub"] = "kusama-assethub";
|
|
36817
36862
|
})(Networks || (Networks = {}));
|
|
36818
36863
|
const baseVersionRange = {
|
|
36819
36864
|
model_mini: {
|
|
@@ -36854,6 +36899,16 @@ function getPolkadotVersionRangeWithBundle(networks) {
|
|
|
36854
36899
|
}
|
|
36855
36900
|
return baseVersionRange;
|
|
36856
36901
|
}
|
|
36902
|
+
function parseNetwork(network) {
|
|
36903
|
+
switch (network) {
|
|
36904
|
+
case Networks.PolkadotAssetHub:
|
|
36905
|
+
return Networks.Polkadot;
|
|
36906
|
+
case Networks.KusamaAssetHub:
|
|
36907
|
+
return Networks.Kusama;
|
|
36908
|
+
default:
|
|
36909
|
+
return network;
|
|
36910
|
+
}
|
|
36911
|
+
}
|
|
36857
36912
|
|
|
36858
36913
|
class PolkadotGetAddress extends BaseMethod {
|
|
36859
36914
|
constructor() {
|
|
@@ -36882,7 +36937,7 @@ class PolkadotGetAddress extends BaseMethod {
|
|
|
36882
36937
|
this.params.push({
|
|
36883
36938
|
address_n: addressN,
|
|
36884
36939
|
prefix,
|
|
36885
|
-
network,
|
|
36940
|
+
network: parseNetwork(network),
|
|
36886
36941
|
show_display: showOnOneKey,
|
|
36887
36942
|
});
|
|
36888
36943
|
});
|
|
@@ -36929,13 +36984,15 @@ class PolkadotSignTransaction extends BaseMethod {
|
|
|
36929
36984
|
validateParams(this.payload, [
|
|
36930
36985
|
{ name: 'path', required: true },
|
|
36931
36986
|
{ name: 'network', required: true },
|
|
36987
|
+
{ name: 'prefix' },
|
|
36932
36988
|
{ name: 'rawTx', type: 'hexString', required: true },
|
|
36933
36989
|
]);
|
|
36934
|
-
const { path, rawTx, network } = this.payload;
|
|
36990
|
+
const { path, rawTx, network, prefix } = this.payload;
|
|
36935
36991
|
const addressN = validatePath(path, 3);
|
|
36936
36992
|
this.params = {
|
|
36937
36993
|
address_n: addressN,
|
|
36938
|
-
network,
|
|
36994
|
+
network: parseNetwork(network),
|
|
36995
|
+
prefix,
|
|
36939
36996
|
raw_tx: formatAnyHex(rawTx),
|
|
36940
36997
|
};
|
|
36941
36998
|
}
|
|
@@ -39854,7 +39911,9 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
39854
39911
|
pinListeners: device.listenerCount(DEVICE.PIN),
|
|
39855
39912
|
});
|
|
39856
39913
|
}
|
|
39857
|
-
|
|
39914
|
+
else {
|
|
39915
|
+
removeDeviceListener(device);
|
|
39916
|
+
}
|
|
39858
39917
|
}
|
|
39859
39918
|
}
|
|
39860
39919
|
});
|
|
@@ -40238,6 +40297,9 @@ const onSelectDeviceInBootloaderForWebDeviceHandler = (...[device, callback]) =>
|
|
|
40238
40297
|
callback(null, uiResp.payload.deviceId);
|
|
40239
40298
|
});
|
|
40240
40299
|
const postMessage = (message) => {
|
|
40300
|
+
if (!_core) {
|
|
40301
|
+
return;
|
|
40302
|
+
}
|
|
40241
40303
|
_core.emit(CORE_EVENT, message);
|
|
40242
40304
|
};
|
|
40243
40305
|
const createUiPromise = (promiseEvent, device) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PolkadotSignedTx as HardwarePolkadotSignedTx } from '@onekeyfe/hd-transport';
|
|
1
|
+
import type { PolkadotSignedTx as HardwarePolkadotSignedTx } from '@onekeyfe/hd-transport';
|
|
2
2
|
import type { CommonParams, Response } from '../params';
|
|
3
3
|
export type PolkadotSignedTx = {
|
|
4
4
|
path: string;
|
|
@@ -6,6 +6,7 @@ export type PolkadotSignedTx = {
|
|
|
6
6
|
export type PolkadotSignTransactionParams = {
|
|
7
7
|
path: string | number[];
|
|
8
8
|
network: string;
|
|
9
|
+
prefix: number;
|
|
9
10
|
rawTx?: string;
|
|
10
11
|
};
|
|
11
12
|
export declare function polkadotSignTransaction(connectId: string, deviceId: string, params: CommonParams & PolkadotSignTransactionParams): Response<PolkadotSignedTx>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadotSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/types/api/polkadotSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"polkadotSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/types/api/polkadotSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,wBAAwB,CAAC;AAE7B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG,6BAA6B,GACnD,QAAQ,CAAC,gBAAgB,CAAC,CAAC"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,cAAM,GAAG;IACP,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,UAAU,EAAE,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAM5C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAYxD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IASlB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IASpB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IASnB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAQrB;AAID,eAAO,MAAM,OAAO,WAAY,MAAM,YAAY,OAAO,QAIxD,CAAC;AAEF,eAAO,MAAM,SAAS,aAAc,OAAO,SAI1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,MAAM,WAAW,OAAO,SAIjE,CAAC;AAEF,eAAO,MAAM,MAAM,oBAOlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,4BAA6B,WAAW,KAAK,IAAI,SAEjF,CAAC;AAuCF,oBAAY,WAAW;IACrB,IAAI,oBAAoB;IACxB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,kBAAkB,+BAA+B;IACjD,QAAQ,uBAAuB;IAC/B,eAAe,8BAA8B;IAC7C,mBAAmB,kCAAkC;IACrD,cAAc,6BAA6B;IAC3C,iBAAiB,iCAAiC;IAClD,iBAAiB,gCAAgC;IACjD,OAAO,oBAAoB;IAC3B,MAAM,WAAW;IACjB,WAAW,kBAAkB;IAC7B,MAAM,aAAa;CACpB;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAmBrB,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,WAAW,QAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAmBA,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAK/E;AAOD,MAAM,WAAW,cAAc;IAE7B,UAAU,EAAE,MAAM,CAAC;IAEnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IAEnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,iBAAiB;IAEhC,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,MAAM,CAAC;IAElB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC7C;AAWD,wBAAgB,uBAAuB,IAAI,iBAAiB,CAW3D;AAQD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,cAAc,CAyBhB;AAKD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAK/F;AAKD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAuB9E;AAOD,wBAAgB,iCAAiC,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,EAAE,CAI5F;AAOD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmBpE;AAOD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAW9D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "1.1.19-alpha.
|
|
3
|
+
"version": "1.1.19-alpha.3",
|
|
4
4
|
"description": "Core processes and APIs for communicating with OneKey hardware devices.",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "1.1.19-alpha.
|
|
29
|
-
"@onekeyfe/hd-transport": "1.1.19-alpha.
|
|
28
|
+
"@onekeyfe/hd-shared": "1.1.19-alpha.3",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.1.19-alpha.3",
|
|
30
30
|
"axios": "1.12.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"bytebuffer": "^5.0.1",
|
|
@@ -35,16 +35,14 @@
|
|
|
35
35
|
"semver": "^7.3.7"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@noble/hashes": "^1.1.3"
|
|
39
|
-
"ripple-keypairs": "^1.3.1"
|
|
38
|
+
"@noble/hashes": "^1.1.3"
|
|
40
39
|
},
|
|
41
40
|
"devDependencies": {
|
|
42
41
|
"@noble/hashes": "^1.1.3",
|
|
43
42
|
"@types/parse-uri": "^1.0.0",
|
|
44
43
|
"@types/semver": "^7.3.9",
|
|
45
44
|
"@types/w3c-web-usb": "^1.0.10",
|
|
46
|
-
"@types/web-bluetooth": "^0.0.21"
|
|
47
|
-
"ripple-keypairs": "^1.3.1"
|
|
45
|
+
"@types/web-bluetooth": "^0.0.21"
|
|
48
46
|
},
|
|
49
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "9039715c7d1ec7ebaf71ec8e22737f3f2b013ca5"
|
|
50
48
|
}
|
|
@@ -206,7 +206,8 @@ export default class FirmwareUpdate extends BaseMethod<Params> {
|
|
|
206
206
|
this.device.getCommands().typedCall.bind(this.device.getCommands()),
|
|
207
207
|
this.postMessage,
|
|
208
208
|
device,
|
|
209
|
-
{ payload: binary, rebootOnSuccess: this.payload.rebootOnSuccess }
|
|
209
|
+
{ payload: binary, rebootOnSuccess: this.payload.rebootOnSuccess },
|
|
210
|
+
false
|
|
210
211
|
);
|
|
211
212
|
|
|
212
213
|
if (this.connectId) {
|
|
@@ -395,7 +395,8 @@ export default class FirmwareUpdateV2 extends BaseMethod<Params> {
|
|
|
395
395
|
this.device.getCommands().typedCall.bind(this.device.getCommands()),
|
|
396
396
|
this.postMessage,
|
|
397
397
|
device,
|
|
398
|
-
{ payload: binary, rebootOnSuccess: true }
|
|
398
|
+
{ payload: binary, rebootOnSuccess: true },
|
|
399
|
+
params.isUpdateBootloader
|
|
399
400
|
);
|
|
400
401
|
|
|
401
402
|
if (this.connectId) {
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
createDeferred,
|
|
3
|
-
Deferred,
|
|
4
2
|
EDeviceType,
|
|
5
3
|
ERRORS,
|
|
6
4
|
HardwareError,
|
|
7
5
|
HardwareErrorCode,
|
|
6
|
+
createDeferred,
|
|
8
7
|
} from '@onekeyfe/hd-shared';
|
|
9
|
-
import { RebootType } from '@onekeyfe/hd-transport';
|
|
10
|
-
import type { KnownDevice } from '../../types';
|
|
11
8
|
|
|
12
|
-
import {
|
|
13
|
-
UI_REQUEST,
|
|
14
|
-
createUiMessage,
|
|
15
|
-
FirmwareUpdateTipMessage,
|
|
16
|
-
IFirmwareUpdateTipMessage,
|
|
17
|
-
IFirmwareUpdateProgressType,
|
|
18
|
-
} from '../../events/ui-request';
|
|
9
|
+
import { FirmwareUpdateTipMessage, UI_REQUEST, createUiMessage } from '../../events/ui-request';
|
|
19
10
|
import { DevicePool } from '../../device/DevicePool';
|
|
20
|
-
import { getDeviceType,
|
|
11
|
+
import { LoggerNames, getDeviceType, getDeviceUUID, getLogger, wait } from '../../utils';
|
|
21
12
|
import { DeviceModelToTypes } from '../../types';
|
|
22
13
|
import { DataManager } from '../../data-manager';
|
|
23
|
-
|
|
24
14
|
import { BaseMethod } from '../BaseMethod';
|
|
25
15
|
import { DEVICE } from '../../events';
|
|
26
|
-
|
|
16
|
+
|
|
17
|
+
import type {
|
|
18
|
+
IFirmwareUpdateProgressType,
|
|
19
|
+
IFirmwareUpdateTipMessage,
|
|
20
|
+
} from '../../events/ui-request';
|
|
21
|
+
import type { PROTO } from '../../constants';
|
|
22
|
+
import type { RebootType } from '@onekeyfe/hd-transport';
|
|
23
|
+
import type { Deferred } from '@onekeyfe/hd-shared';
|
|
24
|
+
import type { KnownDevice } from '../../types';
|
|
27
25
|
import type { TypedResponseMessage } from '../../device/DeviceCommands';
|
|
28
26
|
|
|
29
27
|
const Log = getLogger(LoggerNames.Method);
|
|
@@ -266,16 +264,16 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
266
264
|
*/
|
|
267
265
|
async startEmmcFirmwareUpdate({ path }: { path: string }) {
|
|
268
266
|
const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
|
|
269
|
-
let
|
|
267
|
+
let updateResponse: TypedResponseMessage<'Success'>;
|
|
270
268
|
try {
|
|
271
|
-
|
|
269
|
+
updateResponse = await typedCall('FirmwareUpdateEmmc', 'Success', {
|
|
272
270
|
path,
|
|
273
271
|
reboot_on_success: true,
|
|
274
272
|
});
|
|
275
273
|
} catch (error) {
|
|
276
274
|
if (isDeviceDisconnectedError(error)) {
|
|
277
275
|
Log.log('Rebooting device');
|
|
278
|
-
|
|
276
|
+
updateResponse = {
|
|
279
277
|
type: 'Success',
|
|
280
278
|
message: { message: FIRMWARE_UPDATE_CONFIRM },
|
|
281
279
|
};
|
|
@@ -283,7 +281,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
283
281
|
throw error;
|
|
284
282
|
}
|
|
285
283
|
}
|
|
286
|
-
if (
|
|
284
|
+
if (updateResponse.type !== 'Success') {
|
|
287
285
|
throw ERRORS.TypedError(HardwareErrorCode.FirmwareError, 'firmware update error');
|
|
288
286
|
}
|
|
289
287
|
this.postTipMessage(FirmwareUpdateTipMessage.FirmwareUpdating);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
import { EDeviceType } from '@onekeyfe/hd-shared';
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
import { getDeviceType } from '../../utils';
|
|
5
5
|
|
|
6
|
+
import type { Features, IVersionArray } from '../../types';
|
|
7
|
+
|
|
6
8
|
export function shouldUpdateBootloaderForClassicAndMini({
|
|
7
9
|
currentVersion,
|
|
8
10
|
bootloaderVersion,
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import ByteBuffer from 'bytebuffer';
|
|
2
2
|
import semver from 'semver';
|
|
3
|
-
|
|
4
|
-
import { DeviceModelToTypes
|
|
5
|
-
import {
|
|
3
|
+
|
|
4
|
+
import { DeviceModelToTypes } from '../../types';
|
|
5
|
+
import { getDeviceBootloaderVersion, getDeviceFirmwareVersion, getDeviceType } from '../../utils';
|
|
6
6
|
import { DataManager } from '../../data-manager';
|
|
7
7
|
import { shouldUpdateBootloaderForClassicAndMini } from './bootloaderHelper';
|
|
8
8
|
|
|
9
|
+
import type { Features } from '../../types';
|
|
10
|
+
import type { EFirmwareType } from '@onekeyfe/hd-shared';
|
|
11
|
+
|
|
9
12
|
export function checkNeedUpdateBootForTouch(features: Features, firmwareType: EFirmwareType) {
|
|
10
13
|
const deviceType = getDeviceType(features);
|
|
11
14
|
if (!DeviceModelToTypes.model_touch.includes(deviceType)) return false;
|