@onekeyfe/hd-core 1.1.4-alpha.0 → 1.1.4-alpha.2
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/BaseMethod.d.ts +0 -2
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/api/allnetwork/AllNetworkGetAddress.d.ts +28 -4
- package/dist/api/allnetwork/AllNetworkGetAddress.d.ts.map +1 -1
- package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
- package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -1
- package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
- package/dist/api/device/DeviceUnlock.d.ts +2 -0
- package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
- package/dist/api/evm/EVMGetPublicKey.d.ts +0 -1
- package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/core/RequestQueue.d.ts +0 -4
- package/dist/core/RequestQueue.d.ts.map +1 -1
- package/dist/core/index.d.ts +2 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/Device.d.ts +1 -4
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/events/call.d.ts +0 -9
- package/dist/events/call.d.ts.map +1 -1
- package/dist/events/core.d.ts +2 -2
- package/dist/events/core.d.ts.map +1 -1
- package/dist/events/iframe.d.ts +1 -11
- package/dist/events/iframe.d.ts.map +1 -1
- package/dist/index.d.ts +10 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +193 -402
- package/dist/inject.d.ts +0 -3
- package/dist/inject.d.ts.map +1 -1
- package/dist/types/api/allNetworkGetAddress.d.ts +2 -9
- package/dist/types/api/allNetworkGetAddress.d.ts.map +1 -1
- package/dist/types/api/evmGetPublicKey.d.ts +0 -1
- package/dist/types/api/evmGetPublicKey.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +1 -2
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/utils/findDefectiveBatchDevice.d.ts +5 -0
- package/dist/utils/findDefectiveBatchDevice.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/BaseMethod.ts +0 -3
- package/src/api/allnetwork/AllNetworkGetAddress.ts +407 -14
- package/src/api/btc/BTCGetPublicKey.ts +0 -13
- package/src/api/cosmos/CosmosGetPublicKey.ts +1 -1
- package/src/api/device/DeviceUnlock.ts +48 -1
- package/src/api/evm/EVMGetPublicKey.ts +3 -9
- package/src/api/index.ts +0 -1
- package/src/core/RequestQueue.ts +0 -26
- package/src/core/index.ts +82 -41
- package/src/device/Device.ts +0 -66
- package/src/events/call.ts +0 -10
- package/src/events/core.ts +1 -7
- package/src/events/iframe.ts +1 -12
- package/src/index.ts +1 -2
- package/src/inject.ts +0 -47
- package/src/types/api/allNetworkGetAddress.ts +2 -16
- package/src/types/api/evmGetPublicKey.ts +0 -1
- package/src/types/api/index.ts +1 -2
- package/src/utils/findDefectiveBatchDevice.ts +29 -0
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +0 -47
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +0 -1
- package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts +0 -8
- package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts.map +0 -1
- package/src/api/allnetwork/AllNetworkGetAddressBase.ts +0 -477
- package/src/api/allnetwork/AllNetworkGetAddressByLoop.ts +0 -151
package/dist/index.js
CHANGED
|
@@ -26,82 +26,6 @@ var ByteBuffer__default = /*#__PURE__*/_interopDefaultLegacy(ByteBuffer);
|
|
|
26
26
|
var BigNumber__default = /*#__PURE__*/_interopDefaultLegacy(BigNumber);
|
|
27
27
|
var JSZip__default = /*#__PURE__*/_interopDefaultLegacy(JSZip);
|
|
28
28
|
|
|
29
|
-
/******************************************************************************
|
|
30
|
-
Copyright (c) Microsoft Corporation.
|
|
31
|
-
|
|
32
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
33
|
-
purpose with or without fee is hereby granted.
|
|
34
|
-
|
|
35
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
36
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
37
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
38
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
39
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
40
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
41
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
42
|
-
***************************************************************************** */
|
|
43
|
-
|
|
44
|
-
function __rest(s, e) {
|
|
45
|
-
var t = {};
|
|
46
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
47
|
-
t[p] = s[p];
|
|
48
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
49
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
50
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
51
|
-
t[p[i]] = s[p[i]];
|
|
52
|
-
}
|
|
53
|
-
return t;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
57
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
58
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
59
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
60
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
61
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
62
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function __values(o) {
|
|
67
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
68
|
-
if (m) return m.call(o);
|
|
69
|
-
if (o && typeof o.length === "number") return {
|
|
70
|
-
next: function () {
|
|
71
|
-
if (o && i >= o.length) o = void 0;
|
|
72
|
-
return { value: o && o[i++], done: !o };
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function __asyncValues(o) {
|
|
79
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
80
|
-
var m = o[Symbol.asyncIterator], i;
|
|
81
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
82
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
83
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
87
|
-
var e = new Error(message);
|
|
88
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
const callbackManager = new Map();
|
|
92
|
-
const generateCallbackId = () => `callback_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
93
|
-
const registerCallback = (id, callback) => {
|
|
94
|
-
callbackManager.set(id, callback);
|
|
95
|
-
};
|
|
96
|
-
const executeCallback = (id, ...args) => {
|
|
97
|
-
const callback = callbackManager.get(id);
|
|
98
|
-
if (callback) {
|
|
99
|
-
callback(...args);
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const cleanupCallback = (id) => {
|
|
103
|
-
callbackManager.delete(id);
|
|
104
|
-
};
|
|
105
29
|
const inject = ({ call, cancel, dispose, eventEmitter, init, updateSettings, switchTransport, uiResponse, }) => {
|
|
106
30
|
const api = Object.assign({ on: (type, fn) => {
|
|
107
31
|
eventEmitter.on(type, fn);
|
|
@@ -153,20 +77,6 @@ const createCoreApi = (call) => ({
|
|
|
153
77
|
getNextU2FCounter: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'getNextU2FCounter' })),
|
|
154
78
|
setU2FCounter: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'setU2FCounter' })),
|
|
155
79
|
allNetworkGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'allNetworkGetAddress' })),
|
|
156
|
-
allNetworkGetAddressByLoop: (connectId, deviceId, params) => {
|
|
157
|
-
const { onLoopItemResponse, onAllItemsResponse } = params, restParams = __rest(params, ["onLoopItemResponse", "onAllItemsResponse"]);
|
|
158
|
-
const callbackId = generateCallbackId();
|
|
159
|
-
registerCallback(callbackId, onLoopItemResponse);
|
|
160
|
-
const callbackIdFinish = generateCallbackId();
|
|
161
|
-
registerCallback(callbackIdFinish, (data) => {
|
|
162
|
-
onAllItemsResponse === null || onAllItemsResponse === void 0 ? void 0 : onAllItemsResponse(data);
|
|
163
|
-
cleanupCallback(callbackIdFinish);
|
|
164
|
-
cleanupCallback(callbackId);
|
|
165
|
-
});
|
|
166
|
-
return call(Object.assign(Object.assign({}, restParams), { connectId,
|
|
167
|
-
deviceId, method: 'allNetworkGetAddressByLoop', callbackId,
|
|
168
|
-
callbackIdFinish }));
|
|
169
|
-
},
|
|
170
80
|
evmGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'evmGetAddress' })),
|
|
171
81
|
evmGetPublicKey: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'evmGetPublicKey' })),
|
|
172
82
|
evmSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'evmSignMessage' })),
|
|
@@ -774,6 +684,68 @@ const topLevelInject = () => {
|
|
|
774
684
|
return api;
|
|
775
685
|
};
|
|
776
686
|
|
|
687
|
+
/******************************************************************************
|
|
688
|
+
Copyright (c) Microsoft Corporation.
|
|
689
|
+
|
|
690
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
691
|
+
purpose with or without fee is hereby granted.
|
|
692
|
+
|
|
693
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
694
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
695
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
696
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
697
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
698
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
699
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
700
|
+
***************************************************************************** */
|
|
701
|
+
|
|
702
|
+
function __rest(s, e) {
|
|
703
|
+
var t = {};
|
|
704
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
705
|
+
t[p] = s[p];
|
|
706
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
707
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
708
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
709
|
+
t[p[i]] = s[p[i]];
|
|
710
|
+
}
|
|
711
|
+
return t;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
715
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
716
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
717
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
718
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
719
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
720
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
function __values(o) {
|
|
725
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
726
|
+
if (m) return m.call(o);
|
|
727
|
+
if (o && typeof o.length === "number") return {
|
|
728
|
+
next: function () {
|
|
729
|
+
if (o && i >= o.length) o = void 0;
|
|
730
|
+
return { value: o && o[i++], done: !o };
|
|
731
|
+
}
|
|
732
|
+
};
|
|
733
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
function __asyncValues(o) {
|
|
737
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
738
|
+
var m = o[Symbol.asyncIterator], i;
|
|
739
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
740
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
741
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
745
|
+
var e = new Error(message);
|
|
746
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
747
|
+
};
|
|
748
|
+
|
|
777
749
|
const LOG_EVENT = 'LOG_EVENT';
|
|
778
750
|
const LOG = {
|
|
779
751
|
OUTPUT: 'log-output',
|
|
@@ -25727,6 +25699,30 @@ const wait = (ms) => new Promise(resolve => {
|
|
|
25727
25699
|
setTimeout(resolve, ms);
|
|
25728
25700
|
});
|
|
25729
25701
|
|
|
25702
|
+
const findDefectiveBatchDevice = (features) => {
|
|
25703
|
+
if (!features)
|
|
25704
|
+
return;
|
|
25705
|
+
const { onekey_serial: onekeySerial, se_ver: seVer } = features;
|
|
25706
|
+
if (!onekeySerial)
|
|
25707
|
+
return;
|
|
25708
|
+
const versionNum = +onekeySerial.slice(5);
|
|
25709
|
+
if (Number.isNaN(versionNum))
|
|
25710
|
+
return;
|
|
25711
|
+
return versionNum >= 21032200001 && versionNum <= 21032201500 && seVer === '1.1.0.2';
|
|
25712
|
+
};
|
|
25713
|
+
const getDefectiveDeviceInfo = (features) => {
|
|
25714
|
+
if (!findDefectiveBatchDevice(features))
|
|
25715
|
+
return null;
|
|
25716
|
+
const serialNo = getDeviceUUID(features);
|
|
25717
|
+
const deviceType = getDeviceType(features);
|
|
25718
|
+
const seVersion = features.se_ver;
|
|
25719
|
+
return {
|
|
25720
|
+
serialNo,
|
|
25721
|
+
seVersion,
|
|
25722
|
+
deviceType: deviceType || 'Unknown',
|
|
25723
|
+
};
|
|
25724
|
+
};
|
|
25725
|
+
|
|
25730
25726
|
const CORE_EVENT = 'CORE_EVENT';
|
|
25731
25727
|
const parseMessage = (messageData) => {
|
|
25732
25728
|
const { data } = messageData;
|
|
@@ -25826,7 +25822,6 @@ const IFRAME = {
|
|
|
25826
25822
|
CALL: 'iframe-call',
|
|
25827
25823
|
CANCEL: 'iframe-cancel',
|
|
25828
25824
|
SWITCH_TRANSPORT: 'iframe-switch-transport',
|
|
25829
|
-
CALLBACK: 'iframe-callback',
|
|
25830
25825
|
};
|
|
25831
25826
|
const createIFrameMessage = (type, payload) => ({
|
|
25832
25827
|
event: UI_EVENT,
|
|
@@ -26720,15 +26715,6 @@ class Device extends events.exports {
|
|
|
26720
26715
|
const env = DataManager.getSettings('env');
|
|
26721
26716
|
if ((this.isUsedHere() && !this.keepSession && this.mainId) ||
|
|
26722
26717
|
(this.mainId && DataManager.isBleConnect(env))) {
|
|
26723
|
-
if (this.pendingCallbackPromise) {
|
|
26724
|
-
try {
|
|
26725
|
-
Log$a.debug('Waiting for callback tasks to complete before releasing device (in release method)');
|
|
26726
|
-
yield this.pendingCallbackPromise.promise;
|
|
26727
|
-
}
|
|
26728
|
-
catch (error) {
|
|
26729
|
-
Log$a.error('Error waiting for callback tasks in release method:', error);
|
|
26730
|
-
}
|
|
26731
|
-
}
|
|
26732
26718
|
if (this.commands) {
|
|
26733
26719
|
this.commands.dispose(false);
|
|
26734
26720
|
if (this.commands.callPromise) {
|
|
@@ -27109,46 +27095,6 @@ class Device extends events.exports {
|
|
|
27109
27095
|
return res.message;
|
|
27110
27096
|
});
|
|
27111
27097
|
}
|
|
27112
|
-
supportUnlockVersionRange() {
|
|
27113
|
-
return {
|
|
27114
|
-
pro: {
|
|
27115
|
-
min: '4.15.0',
|
|
27116
|
-
},
|
|
27117
|
-
};
|
|
27118
|
-
}
|
|
27119
|
-
unlockDevice() {
|
|
27120
|
-
var _a;
|
|
27121
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
27122
|
-
const firmwareVersion = (_a = getDeviceFirmwareVersion(this.features)) === null || _a === void 0 ? void 0 : _a.join('.');
|
|
27123
|
-
const versionRange = getMethodVersionRange(this.features, type => this.supportUnlockVersionRange()[type]);
|
|
27124
|
-
if (versionRange && semver__default["default"].gte(firmwareVersion, versionRange.min)) {
|
|
27125
|
-
const res = yield this.commands.typedCall('UnLockDevice', 'UnLockDeviceResponse');
|
|
27126
|
-
if (this.features) {
|
|
27127
|
-
this.features.unlocked = res.message.unlocked == null ? null : res.message.unlocked;
|
|
27128
|
-
this.features.unlocked_attach_pin =
|
|
27129
|
-
res.message.unlocked_attach_pin == null ? undefined : res.message.unlocked_attach_pin;
|
|
27130
|
-
this.features.passphrase_protection =
|
|
27131
|
-
res.message.passphrase_protection == null ? null : res.message.passphrase_protection;
|
|
27132
|
-
return Promise.resolve(this.features);
|
|
27133
|
-
}
|
|
27134
|
-
const featuresRes = yield this.commands.typedCall('GetFeatures', 'Features');
|
|
27135
|
-
this._updateFeatures(featuresRes.message);
|
|
27136
|
-
return Promise.resolve(featuresRes.message);
|
|
27137
|
-
}
|
|
27138
|
-
const { type } = yield this.commands.typedCall('GetAddress', 'Address', {
|
|
27139
|
-
address_n: [toHardened(44), toHardened(1), toHardened(0), 0, 0],
|
|
27140
|
-
coin_name: 'Testnet',
|
|
27141
|
-
script_type: 'SPENDADDRESS',
|
|
27142
|
-
show_display: false,
|
|
27143
|
-
});
|
|
27144
|
-
if (type === 'CallMethodError') {
|
|
27145
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'unlock device error');
|
|
27146
|
-
}
|
|
27147
|
-
const res = yield this.commands.typedCall('GetFeatures', 'Features');
|
|
27148
|
-
this._updateFeatures(res.message);
|
|
27149
|
-
return Promise.resolve(res.message);
|
|
27150
|
-
});
|
|
27151
|
-
}
|
|
27152
27098
|
checkPassphraseStateSafety(passphraseState, useEmptyPassphrase, skipPassphraseCheck) {
|
|
27153
27099
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27154
27100
|
if (!this.features)
|
|
@@ -28721,9 +28667,42 @@ class DeviceUnlock extends BaseMethod {
|
|
|
28721
28667
|
init() {
|
|
28722
28668
|
this.useDevicePassphraseState = false;
|
|
28723
28669
|
}
|
|
28670
|
+
supportUnlockVersionRange() {
|
|
28671
|
+
return {
|
|
28672
|
+
pro: {
|
|
28673
|
+
min: '4.15.0',
|
|
28674
|
+
},
|
|
28675
|
+
};
|
|
28676
|
+
}
|
|
28724
28677
|
run() {
|
|
28678
|
+
var _a;
|
|
28725
28679
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28726
|
-
|
|
28680
|
+
const firmwareVersion = (_a = getDeviceFirmwareVersion(this.device.features)) === null || _a === void 0 ? void 0 : _a.join('.');
|
|
28681
|
+
const versionRange = getMethodVersionRange(this.device.features, type => this.supportUnlockVersionRange()[type]);
|
|
28682
|
+
if (versionRange && semver__default["default"].gte(firmwareVersion, versionRange.min)) {
|
|
28683
|
+
const res = yield this.device.commands.typedCall('UnLockDevice', 'UnLockDeviceResponse');
|
|
28684
|
+
if (this.device.features) {
|
|
28685
|
+
this.device.features.unlocked = res.message.unlocked == null ? null : res.message.unlocked;
|
|
28686
|
+
this.device.features.unlocked_attach_pin =
|
|
28687
|
+
res.message.unlocked_attach_pin == null ? undefined : res.message.unlocked_attach_pin;
|
|
28688
|
+
this.device.features.passphrase_protection =
|
|
28689
|
+
res.message.passphrase_protection == null ? null : res.message.passphrase_protection;
|
|
28690
|
+
return Promise.resolve(this.device.features);
|
|
28691
|
+
}
|
|
28692
|
+
const featuresRes = yield this.device.commands.typedCall('GetFeatures', 'Features');
|
|
28693
|
+
return Promise.resolve(featuresRes.message);
|
|
28694
|
+
}
|
|
28695
|
+
const { type } = yield this.device.commands.typedCall('GetAddress', 'Address', {
|
|
28696
|
+
address_n: [toHardened(44), toHardened(1), toHardened(0), 0, 0],
|
|
28697
|
+
coin_name: 'Testnet',
|
|
28698
|
+
script_type: 'SPENDADDRESS',
|
|
28699
|
+
show_display: false,
|
|
28700
|
+
});
|
|
28701
|
+
if (type === 'CallMethodError') {
|
|
28702
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Get the passphrase state error');
|
|
28703
|
+
}
|
|
28704
|
+
const res = yield this.device.commands.typedCall('GetFeatures', 'Features');
|
|
28705
|
+
return Promise.resolve(res.message);
|
|
28727
28706
|
});
|
|
28728
28707
|
}
|
|
28729
28708
|
}
|
|
@@ -30086,17 +30065,12 @@ const networkConfigMap = {
|
|
|
30086
30065
|
methodName: 'neoGetAddress',
|
|
30087
30066
|
},
|
|
30088
30067
|
};
|
|
30089
|
-
class
|
|
30090
|
-
constructor() {
|
|
30091
|
-
super(...arguments);
|
|
30092
|
-
this.abortController = null;
|
|
30093
|
-
}
|
|
30068
|
+
class AllNetworkGetAddress extends BaseMethod {
|
|
30094
30069
|
init() {
|
|
30095
|
-
var _a, _b;
|
|
30096
30070
|
this.checkDeviceId = true;
|
|
30097
30071
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
30098
30072
|
validateParams(this.payload, [{ name: 'bundle', type: 'array' }]);
|
|
30099
|
-
|
|
30073
|
+
this.payload.bundle.forEach((batch) => {
|
|
30100
30074
|
validateParams(batch, [
|
|
30101
30075
|
{ name: 'path', required: true },
|
|
30102
30076
|
{ name: 'network', type: 'string', required: true },
|
|
@@ -30136,24 +30110,6 @@ class AllNetworkGetAddressBase extends BaseMethod {
|
|
|
30136
30110
|
try {
|
|
30137
30111
|
method.init();
|
|
30138
30112
|
(_a = method.setDevice) === null || _a === void 0 ? void 0 : _a.call(method, this.device);
|
|
30139
|
-
method.context = this.context;
|
|
30140
|
-
const onSignalAbort = () => {
|
|
30141
|
-
var _a;
|
|
30142
|
-
console.log('=====>>>>> onSignalAbort');
|
|
30143
|
-
(_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
|
|
30144
|
-
};
|
|
30145
|
-
const _onDeviceButtonHandler = (...[device, request]) => {
|
|
30146
|
-
if (request.code === 'ButtonRequest_PinEntry' ||
|
|
30147
|
-
request.code === 'ButtonRequest_AttachPin') {
|
|
30148
|
-
onSignalAbort();
|
|
30149
|
-
}
|
|
30150
|
-
else {
|
|
30151
|
-
onDeviceButtonHandler(device, request);
|
|
30152
|
-
}
|
|
30153
|
-
};
|
|
30154
|
-
this.device.on(DEVICE.BUTTON, _onDeviceButtonHandler);
|
|
30155
|
-
this.device.on(DEVICE.PIN, onSignalAbort);
|
|
30156
|
-
this.device.on(DEVICE.PASSPHRASE, onSignalAbort);
|
|
30157
30113
|
preCheckDeviceSupport(this.device, method);
|
|
30158
30114
|
const response = yield method.run();
|
|
30159
30115
|
if (!Array.isArray(response) || response.length === 0) {
|
|
@@ -30180,20 +30136,45 @@ class AllNetworkGetAddressBase extends BaseMethod {
|
|
|
30180
30136
|
});
|
|
30181
30137
|
}
|
|
30182
30138
|
run() {
|
|
30139
|
+
var _a, _b;
|
|
30183
30140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30184
|
-
const
|
|
30185
|
-
|
|
30186
|
-
|
|
30187
|
-
|
|
30188
|
-
|
|
30189
|
-
|
|
30190
|
-
|
|
30191
|
-
|
|
30192
|
-
|
|
30193
|
-
|
|
30141
|
+
const responses = [];
|
|
30142
|
+
const resultMap = {};
|
|
30143
|
+
const { bundle } = this.payload;
|
|
30144
|
+
const methodGroups = bundle
|
|
30145
|
+
.map((param, index) => this.generateMethodName({
|
|
30146
|
+
network: param.network,
|
|
30147
|
+
payload: param,
|
|
30148
|
+
originalIndex: index,
|
|
30149
|
+
}))
|
|
30150
|
+
.reduce((acc, cur) => {
|
|
30151
|
+
if (!acc[cur.methodName]) {
|
|
30152
|
+
acc[cur.methodName] = [];
|
|
30194
30153
|
}
|
|
30195
|
-
|
|
30196
|
-
|
|
30154
|
+
acc[cur.methodName].push(cur);
|
|
30155
|
+
return acc;
|
|
30156
|
+
}, {});
|
|
30157
|
+
let i = 0;
|
|
30158
|
+
for (const [methodName, params] of Object.entries(methodGroups)) {
|
|
30159
|
+
const methodParams = {
|
|
30160
|
+
bundle: params.map(param => (Object.assign({}, param.params))),
|
|
30161
|
+
};
|
|
30162
|
+
const response = yield this.callMethod(methodName, methodParams);
|
|
30163
|
+
for (let i = 0; i < params.length; i++) {
|
|
30164
|
+
const { _originRequestParams, _originalIndex } = params[i];
|
|
30165
|
+
const responseKey = `${_originalIndex}`;
|
|
30166
|
+
resultMap[responseKey] = Object.assign(Object.assign({}, _originRequestParams), response[i]);
|
|
30167
|
+
}
|
|
30168
|
+
if (((_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle) === null || _b === void 0 ? void 0 : _b.length) > 1) {
|
|
30169
|
+
const progress = Math.round(((i + 1) / this.payload.bundle.length) * 100);
|
|
30170
|
+
this.postMessage(createUiMessage(UI_REQUEST.DEVICE_PROGRESS, { progress }));
|
|
30171
|
+
}
|
|
30172
|
+
i++;
|
|
30173
|
+
}
|
|
30174
|
+
for (let i = 0; i < bundle.length; i++) {
|
|
30175
|
+
responses.push(resultMap[i]);
|
|
30176
|
+
}
|
|
30177
|
+
return Promise.resolve(responses);
|
|
30197
30178
|
});
|
|
30198
30179
|
}
|
|
30199
30180
|
}
|
|
@@ -30214,7 +30195,10 @@ function handleSkippableHardwareError(e, device, method) {
|
|
|
30214
30195
|
let error;
|
|
30215
30196
|
if (e instanceof hdShared.HardwareError && e.errorCode !== hdShared.HardwareErrorCode.RuntimeError) {
|
|
30216
30197
|
const { errorCode } = e;
|
|
30217
|
-
if (errorCode === hdShared.HardwareErrorCode.
|
|
30198
|
+
if (errorCode === hdShared.HardwareErrorCode.CallMethodInvalidParameter) {
|
|
30199
|
+
error = e;
|
|
30200
|
+
}
|
|
30201
|
+
else if (errorCode === hdShared.HardwareErrorCode.CallMethodNeedUpgradeFirmware) {
|
|
30218
30202
|
error = e;
|
|
30219
30203
|
}
|
|
30220
30204
|
else if (errorCode === hdShared.HardwareErrorCode.DeviceNotSupportMethod) {
|
|
@@ -30240,164 +30224,6 @@ function handleSkippableHardwareError(e, device, method) {
|
|
|
30240
30224
|
return error;
|
|
30241
30225
|
}
|
|
30242
30226
|
|
|
30243
|
-
class AllNetworkGetAddress extends AllNetworkGetAddressBase {
|
|
30244
|
-
getAllNetworkAddress() {
|
|
30245
|
-
var _a, _b, _c, _d;
|
|
30246
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
30247
|
-
const responses = [];
|
|
30248
|
-
const resultMap = {};
|
|
30249
|
-
const { bundle } = this.payload;
|
|
30250
|
-
const methodGroups = bundle
|
|
30251
|
-
.map((param, index) => this.generateMethodName({
|
|
30252
|
-
network: param.network,
|
|
30253
|
-
payload: param,
|
|
30254
|
-
originalIndex: index,
|
|
30255
|
-
}))
|
|
30256
|
-
.reduce((acc, cur) => {
|
|
30257
|
-
if (!acc[cur.methodName]) {
|
|
30258
|
-
acc[cur.methodName] = [];
|
|
30259
|
-
}
|
|
30260
|
-
acc[cur.methodName].push(cur);
|
|
30261
|
-
return acc;
|
|
30262
|
-
}, {});
|
|
30263
|
-
let i = 0;
|
|
30264
|
-
for (const [methodName, params] of Object.entries(methodGroups)) {
|
|
30265
|
-
const methodParams = {
|
|
30266
|
-
bundle: params.map(param => (Object.assign({}, param.params))),
|
|
30267
|
-
};
|
|
30268
|
-
if ((_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
|
|
30269
|
-
throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
|
|
30270
|
-
}
|
|
30271
|
-
const response = yield this.callMethod(methodName, methodParams);
|
|
30272
|
-
if ((_b = this.abortController) === null || _b === void 0 ? void 0 : _b.signal.aborted) {
|
|
30273
|
-
throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
|
|
30274
|
-
}
|
|
30275
|
-
for (let i = 0; i < params.length; i++) {
|
|
30276
|
-
const { _originRequestParams, _originalIndex } = params[i];
|
|
30277
|
-
const responseKey = `${_originalIndex}`;
|
|
30278
|
-
resultMap[responseKey] = Object.assign(Object.assign({}, _originRequestParams), response[i]);
|
|
30279
|
-
}
|
|
30280
|
-
if (((_d = (_c = this.payload) === null || _c === void 0 ? void 0 : _c.bundle) === null || _d === void 0 ? void 0 : _d.length) > 1) {
|
|
30281
|
-
const progress = Math.round(((i + 1) / this.payload.bundle.length) * 100);
|
|
30282
|
-
this.postMessage(createUiMessage(UI_REQUEST.DEVICE_PROGRESS, { progress }));
|
|
30283
|
-
}
|
|
30284
|
-
i++;
|
|
30285
|
-
}
|
|
30286
|
-
for (let i = 0; i < bundle.length; i++) {
|
|
30287
|
-
responses.push(resultMap[i]);
|
|
30288
|
-
}
|
|
30289
|
-
this.abortController = null;
|
|
30290
|
-
return Promise.resolve(responses);
|
|
30291
|
-
});
|
|
30292
|
-
}
|
|
30293
|
-
}
|
|
30294
|
-
|
|
30295
|
-
class AllNetworkGetAddressByLoop extends AllNetworkGetAddressBase {
|
|
30296
|
-
getAllNetworkAddress() {
|
|
30297
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
30298
|
-
const { callbackId, callbackIdFinish } = this.payload;
|
|
30299
|
-
if (!callbackId) {
|
|
30300
|
-
throw new Error('callbackId is required');
|
|
30301
|
-
}
|
|
30302
|
-
if (!callbackIdFinish) {
|
|
30303
|
-
throw new Error('callbackIdFinish is required');
|
|
30304
|
-
}
|
|
30305
|
-
const bundle = this.payload.bundle || [this.payload];
|
|
30306
|
-
const callbackPromise = this.processCallbacksInBackground(bundle, callbackId, callbackIdFinish);
|
|
30307
|
-
this.device.pendingCallbackPromise = hdShared.createDeferred(callbackPromise);
|
|
30308
|
-
if (this.context && this.payload.connectId) {
|
|
30309
|
-
this.context.registerCallbackTask(this.payload.connectId, this.device.pendingCallbackPromise);
|
|
30310
|
-
}
|
|
30311
|
-
return Promise.resolve([]);
|
|
30312
|
-
});
|
|
30313
|
-
}
|
|
30314
|
-
processCallbacksInBackground(bundle, callbackId, callbackIdFinish) {
|
|
30315
|
-
var _a, _b, _c;
|
|
30316
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
30317
|
-
try {
|
|
30318
|
-
const allResults = [];
|
|
30319
|
-
for (let i = 0; i < bundle.length; i++) {
|
|
30320
|
-
const item = bundle[i];
|
|
30321
|
-
if ((_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
|
|
30322
|
-
throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
|
|
30323
|
-
}
|
|
30324
|
-
const methodParams = this.generateMethodName({
|
|
30325
|
-
network: item.network,
|
|
30326
|
-
payload: item,
|
|
30327
|
-
originalIndex: i,
|
|
30328
|
-
});
|
|
30329
|
-
const singleMethodParams = {
|
|
30330
|
-
bundle: [methodParams.params],
|
|
30331
|
-
};
|
|
30332
|
-
const response = yield this.callMethod(methodParams.methodName, singleMethodParams);
|
|
30333
|
-
if ((_b = this.abortController) === null || _b === void 0 ? void 0 : _b.signal.aborted) {
|
|
30334
|
-
throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
|
|
30335
|
-
}
|
|
30336
|
-
const singleResult = Object.assign(Object.assign({}, item), response[0]);
|
|
30337
|
-
allResults.push(singleResult);
|
|
30338
|
-
this.sendItemCallback(callbackId, singleResult, i);
|
|
30339
|
-
}
|
|
30340
|
-
this.sendFinishCallback({
|
|
30341
|
-
callbackId: callbackIdFinish,
|
|
30342
|
-
data: allResults,
|
|
30343
|
-
});
|
|
30344
|
-
}
|
|
30345
|
-
catch (error) {
|
|
30346
|
-
let errorCode = error.errorCode || error.code;
|
|
30347
|
-
let errorMessage = error.message;
|
|
30348
|
-
if (error instanceof hdShared.HardwareError) {
|
|
30349
|
-
errorCode = error.errorCode;
|
|
30350
|
-
errorMessage = error.message;
|
|
30351
|
-
}
|
|
30352
|
-
else if (error.message === hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]) {
|
|
30353
|
-
errorCode = hdShared.HardwareErrorCode.RepeatUnlocking;
|
|
30354
|
-
errorMessage = error.message;
|
|
30355
|
-
}
|
|
30356
|
-
else {
|
|
30357
|
-
const hardwareError = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, error.message);
|
|
30358
|
-
errorCode = hardwareError.errorCode;
|
|
30359
|
-
errorMessage = hardwareError.message;
|
|
30360
|
-
}
|
|
30361
|
-
this.sendFinishCallback({
|
|
30362
|
-
callbackId: callbackIdFinish,
|
|
30363
|
-
error: {
|
|
30364
|
-
success: false,
|
|
30365
|
-
payload: {
|
|
30366
|
-
error: errorMessage,
|
|
30367
|
-
code: errorCode,
|
|
30368
|
-
},
|
|
30369
|
-
},
|
|
30370
|
-
});
|
|
30371
|
-
}
|
|
30372
|
-
finally {
|
|
30373
|
-
(_c = this.context) === null || _c === void 0 ? void 0 : _c.cancelCallbackTasks(this.payload.connectId);
|
|
30374
|
-
this.abortController = null;
|
|
30375
|
-
}
|
|
30376
|
-
});
|
|
30377
|
-
}
|
|
30378
|
-
sendFinishCallback({ callbackId, data, error, }) {
|
|
30379
|
-
this.postMessage({
|
|
30380
|
-
event: IFRAME.CALLBACK,
|
|
30381
|
-
type: IFRAME.CALLBACK,
|
|
30382
|
-
payload: {
|
|
30383
|
-
callbackId,
|
|
30384
|
-
data,
|
|
30385
|
-
error,
|
|
30386
|
-
},
|
|
30387
|
-
});
|
|
30388
|
-
}
|
|
30389
|
-
sendItemCallback(callbackId, data, itemIndex) {
|
|
30390
|
-
this.postMessage({
|
|
30391
|
-
event: IFRAME.CALLBACK,
|
|
30392
|
-
type: IFRAME.CALLBACK,
|
|
30393
|
-
payload: {
|
|
30394
|
-
callbackId,
|
|
30395
|
-
data: Object.assign(Object.assign({}, data), { index: itemIndex }),
|
|
30396
|
-
},
|
|
30397
|
-
});
|
|
30398
|
-
}
|
|
30399
|
-
}
|
|
30400
|
-
|
|
30401
30227
|
var bitcoin = [
|
|
30402
30228
|
{
|
|
30403
30229
|
name: "Bitcoin",
|
|
@@ -30972,15 +30798,6 @@ class BTCGetPublicKey extends BaseMethod {
|
|
|
30972
30798
|
}
|
|
30973
30799
|
}
|
|
30974
30800
|
catch (error) {
|
|
30975
|
-
if (error instanceof hdShared.HardwareError) {
|
|
30976
|
-
const { errorCode } = error;
|
|
30977
|
-
if (errorCode === hdShared.HardwareErrorCode.PinCancelled ||
|
|
30978
|
-
errorCode === hdShared.HardwareErrorCode.ActionCancelled ||
|
|
30979
|
-
errorCode === hdShared.HardwareErrorCode.ResponseUnexpectTypeError ||
|
|
30980
|
-
errorCode === hdShared.HardwareErrorCode.PinInvalid) {
|
|
30981
|
-
throw error;
|
|
30982
|
-
}
|
|
30983
|
-
}
|
|
30984
30801
|
responses = [];
|
|
30985
30802
|
for (let i = 0; i < this.params.length; i++) {
|
|
30986
30803
|
const param = this.params[i];
|
|
@@ -31820,7 +31637,6 @@ class EVMGetPublicKey extends BaseMethod {
|
|
|
31820
31637
|
constructor() {
|
|
31821
31638
|
super(...arguments);
|
|
31822
31639
|
this.hasBundle = false;
|
|
31823
|
-
this.confirmShowOnOneKey = false;
|
|
31824
31640
|
this.useBatch = false;
|
|
31825
31641
|
}
|
|
31826
31642
|
init() {
|
|
@@ -31828,8 +31644,7 @@ class EVMGetPublicKey extends BaseMethod {
|
|
|
31828
31644
|
this.checkDeviceId = true;
|
|
31829
31645
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
31830
31646
|
this.hasBundle = !!((_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle);
|
|
31831
|
-
this.
|
|
31832
|
-
this.useBatch = !this.confirmShowOnOneKey && this.hasBundle && this.payload.useBatch;
|
|
31647
|
+
this.useBatch = (_c = (_b = this.payload) === null || _b === void 0 ? void 0 : _b.bundle) === null || _c === void 0 ? void 0 : _c.every((item) => item.showOnOneKey !== true);
|
|
31833
31648
|
const payload = this.hasBundle ? this.payload : { bundle: [this.payload] };
|
|
31834
31649
|
validateParams(payload, [{ name: 'bundle', type: 'array' }]);
|
|
31835
31650
|
this.params = [];
|
|
@@ -31865,7 +31680,7 @@ class EVMGetPublicKey extends BaseMethod {
|
|
|
31865
31680
|
var _a;
|
|
31866
31681
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31867
31682
|
const responses = [];
|
|
31868
|
-
if (this.useBatch && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features)) {
|
|
31683
|
+
if (this.useBatch && this.hasBundle && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features)) {
|
|
31869
31684
|
try {
|
|
31870
31685
|
const res = yield batchGetPublickeys(this.device, this.params, 'secp256k1', 60, {
|
|
31871
31686
|
includeNode: false,
|
|
@@ -38322,7 +38137,6 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
|
38322
38137
|
promptWebDeviceAccess: PromptWebDeviceAccess,
|
|
38323
38138
|
cipherKeyValue: CipherKeyValue,
|
|
38324
38139
|
allNetworkGetAddress: AllNetworkGetAddress,
|
|
38325
|
-
allNetworkGetAddressByLoop: AllNetworkGetAddressByLoop,
|
|
38326
38140
|
btcGetAddress: BTCGetAddress,
|
|
38327
38141
|
btcGetPublicKey: BTCGetPublicKey,
|
|
38328
38142
|
btcSignMessage: BTCSignMessage,
|
|
@@ -38535,7 +38349,6 @@ const Log$1 = getLogger(exports.LoggerNames.Core);
|
|
|
38535
38349
|
class RequestQueue {
|
|
38536
38350
|
constructor() {
|
|
38537
38351
|
this.requestQueue = new Map();
|
|
38538
|
-
this.pendingCallbackTasks = new Map();
|
|
38539
38352
|
this.generateRequestId = (method) => {
|
|
38540
38353
|
if (method && method.responseID != null) {
|
|
38541
38354
|
return method.responseID;
|
|
@@ -38612,28 +38425,6 @@ class RequestQueue {
|
|
|
38612
38425
|
releaseTask(requestId) {
|
|
38613
38426
|
this.requestQueue.delete(requestId);
|
|
38614
38427
|
}
|
|
38615
|
-
registerPendingCallbackTask(connectId, callbackPromise) {
|
|
38616
|
-
this.pendingCallbackTasks.set(connectId, callbackPromise);
|
|
38617
|
-
callbackPromise.promise.finally(() => {
|
|
38618
|
-
Log$1.debug(`Callback task completed for connectId: ${connectId}`);
|
|
38619
|
-
this.pendingCallbackTasks.delete(connectId);
|
|
38620
|
-
});
|
|
38621
|
-
}
|
|
38622
|
-
waitForPendingCallbackTasks(connectId) {
|
|
38623
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
38624
|
-
const pendingTask = this.pendingCallbackTasks.get(connectId);
|
|
38625
|
-
if (pendingTask) {
|
|
38626
|
-
Log$1.debug(`Waiting for pending callback task to complete for connectId: ${connectId}`);
|
|
38627
|
-
yield pendingTask.promise;
|
|
38628
|
-
}
|
|
38629
|
-
});
|
|
38630
|
-
}
|
|
38631
|
-
cancelCallbackTasks(connectId) {
|
|
38632
|
-
const pendingTask = this.pendingCallbackTasks.get(connectId);
|
|
38633
|
-
if (pendingTask) {
|
|
38634
|
-
pendingTask.resolve();
|
|
38635
|
-
}
|
|
38636
|
-
}
|
|
38637
38428
|
}
|
|
38638
38429
|
|
|
38639
38430
|
const getMutex = () => {
|
|
@@ -38756,9 +38547,6 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
38756
38547
|
Log.debug('passphrase state change, clear device cache');
|
|
38757
38548
|
DevicePool.clearDeviceCache(method.payload.connectId);
|
|
38758
38549
|
}
|
|
38759
|
-
if (method.connectId) {
|
|
38760
|
-
yield context.waitForCallbackTasks(method.connectId);
|
|
38761
|
-
}
|
|
38762
38550
|
yield waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
|
|
38763
38551
|
const task = requestQueue.createTask(method);
|
|
38764
38552
|
let device;
|
|
@@ -38782,7 +38570,6 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
38782
38570
|
}
|
|
38783
38571
|
Log.debug('Call API - setDevice: ', device.mainId);
|
|
38784
38572
|
(_b = method.setDevice) === null || _b === void 0 ? void 0 : _b.call(method, device);
|
|
38785
|
-
method.context = context;
|
|
38786
38573
|
device.on(DEVICE.PIN, onDevicePinHandler);
|
|
38787
38574
|
device.on(DEVICE.BUTTON, onDeviceButtonHandler);
|
|
38788
38575
|
device.on(DEVICE.PASSPHRASE, message.payload.useEmptyPassphrase ? onEmptyPassphraseHandler : onDevicePassphraseHandler);
|
|
@@ -38790,37 +38577,54 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
38790
38577
|
device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
|
|
38791
38578
|
device.on(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE, onSelectDeviceInBootloaderForWebDeviceHandler);
|
|
38792
38579
|
try {
|
|
38793
|
-
if (method.connectId) {
|
|
38794
|
-
yield context.waitForCallbackTasks(method.connectId);
|
|
38795
|
-
}
|
|
38796
38580
|
yield waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
|
|
38797
38581
|
const inner = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
38798
38582
|
var _c, _d, _e, _f, _g;
|
|
38799
38583
|
const versionRange = getMethodVersionRange(device.features, type => method.getVersionRange()[type]);
|
|
38800
38584
|
if (device.features) {
|
|
38801
38585
|
yield DataManager.checkAndReloadData();
|
|
38586
|
+
if (findDefectiveBatchDevice(device.features)) {
|
|
38587
|
+
const defectiveInfo = getDefectiveDeviceInfo(device.features);
|
|
38588
|
+
if (defectiveInfo) {
|
|
38589
|
+
throw hdShared.createDefectiveFirmwareError(defectiveInfo.serialNo, defectiveInfo.seVersion || 'Unknown', defectiveInfo.deviceType, method.connectId, method.deviceId);
|
|
38590
|
+
}
|
|
38591
|
+
}
|
|
38802
38592
|
const newVersionStatus = DataManager.getFirmwareStatus(device.features);
|
|
38803
38593
|
const bleVersionStatus = DataManager.getBLEFirmwareStatus(device.features);
|
|
38594
|
+
const currentFirmwareVersion = getDeviceFirmwareVersion(device.features).join('.');
|
|
38595
|
+
const currentBleVersion = getDeviceBLEFirmwareVersion(device.features).join('.');
|
|
38804
38596
|
if ((newVersionStatus === 'required' || bleVersionStatus === 'required') &&
|
|
38805
38597
|
method.skipForceUpdateCheck === false) {
|
|
38806
|
-
|
|
38598
|
+
const currentVersions = {
|
|
38599
|
+
firmware: currentFirmwareVersion,
|
|
38600
|
+
ble: currentBleVersion,
|
|
38601
|
+
};
|
|
38602
|
+
if (newVersionStatus === 'required' && bleVersionStatus === 'required') {
|
|
38603
|
+
throw hdShared.createNewFirmwareForceUpdateHardwareError(method.connectId, method.deviceId, 'both', currentVersions);
|
|
38604
|
+
}
|
|
38605
|
+
else if (newVersionStatus === 'required') {
|
|
38606
|
+
throw hdShared.createNewFirmwareForceUpdateHardwareError(method.connectId, method.deviceId, 'firmware', currentVersions);
|
|
38607
|
+
}
|
|
38608
|
+
else {
|
|
38609
|
+
throw hdShared.createNewFirmwareForceUpdateHardwareError(method.connectId, method.deviceId, 'ble', currentVersions);
|
|
38610
|
+
}
|
|
38807
38611
|
}
|
|
38808
38612
|
if (versionRange) {
|
|
38809
|
-
|
|
38810
|
-
|
|
38613
|
+
if (semver__default["default"].valid(versionRange.min) &&
|
|
38614
|
+
semver__default["default"].lt(currentFirmwareVersion, versionRange.min)) {
|
|
38811
38615
|
if (newVersionStatus === 'none' || newVersionStatus === 'valid') {
|
|
38812
|
-
throw hdShared.createNewFirmwareUnReleaseHardwareError(
|
|
38616
|
+
throw hdShared.createNewFirmwareUnReleaseHardwareError(currentFirmwareVersion, versionRange.min, method.name);
|
|
38813
38617
|
}
|
|
38814
|
-
return Promise.reject(hdShared.createNeedUpgradeFirmwareHardwareError(
|
|
38618
|
+
return Promise.reject(hdShared.createNeedUpgradeFirmwareHardwareError(currentFirmwareVersion, versionRange.min, method.name));
|
|
38815
38619
|
}
|
|
38816
38620
|
if (versionRange.max &&
|
|
38817
38621
|
semver__default["default"].valid(versionRange.max) &&
|
|
38818
|
-
semver__default["default"].gte(
|
|
38819
|
-
return Promise.reject(hdShared.createDeprecatedHardwareError(
|
|
38622
|
+
semver__default["default"].gte(currentFirmwareVersion, versionRange.max)) {
|
|
38623
|
+
return Promise.reject(hdShared.createDeprecatedHardwareError(currentFirmwareVersion, versionRange.max, method.name));
|
|
38820
38624
|
}
|
|
38821
38625
|
}
|
|
38822
38626
|
else if (method.strictCheckDeviceSupport) {
|
|
38823
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotSupportMethod);
|
|
38627
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotSupportMethod, `Method '${method.name}' is not supported by this device`);
|
|
38824
38628
|
}
|
|
38825
38629
|
}
|
|
38826
38630
|
const unexpectedMode = device.hasUnexpectedMode(method.allowDeviceMode, method.requireDeviceMode);
|
|
@@ -39130,7 +38934,6 @@ const cancel = (context, connectId) => {
|
|
|
39130
38934
|
const { requestQueue, setPrePendingCallPromise } = context;
|
|
39131
38935
|
if (connectId) {
|
|
39132
38936
|
try {
|
|
39133
|
-
requestQueue.cancelCallbackTasks(connectId);
|
|
39134
38937
|
const requestIds = requestQueue.getRequestTasksId();
|
|
39135
38938
|
Log.debug(`Cancel Api connect requestQueues: length:${requestIds.length} requestIds:${requestIds.join(',')}`);
|
|
39136
38939
|
const canceledDevices = [];
|
|
@@ -39311,11 +39114,6 @@ class Core extends events.exports {
|
|
|
39311
39114
|
setPrePendingCallPromise: (promise) => {
|
|
39312
39115
|
this.prePendingCallPromise = promise;
|
|
39313
39116
|
},
|
|
39314
|
-
registerCallbackTask: (connectId, callbackPromise) => {
|
|
39315
|
-
this.requestQueue.registerPendingCallbackTask(connectId, callbackPromise);
|
|
39316
|
-
},
|
|
39317
|
-
waitForCallbackTasks: (connectId) => this.requestQueue.waitForPendingCallbackTasks(connectId),
|
|
39318
|
-
cancelCallbackTasks: (connectId) => this.requestQueue.cancelCallbackTasks(connectId),
|
|
39319
39117
|
};
|
|
39320
39118
|
}
|
|
39321
39119
|
handleMessage(message) {
|
|
@@ -39357,11 +39155,6 @@ class Core extends events.exports {
|
|
|
39357
39155
|
cancel(this.getCoreContext(), message.payload.connectId);
|
|
39358
39156
|
break;
|
|
39359
39157
|
}
|
|
39360
|
-
case IFRAME.CALLBACK: {
|
|
39361
|
-
Log.log('callback message: ', message);
|
|
39362
|
-
postMessage(message);
|
|
39363
|
-
break;
|
|
39364
|
-
}
|
|
39365
39158
|
}
|
|
39366
39159
|
return Promise.resolve(message);
|
|
39367
39160
|
});
|
|
@@ -39460,7 +39253,6 @@ exports.UI_REQUEST = UI_REQUEST;
|
|
|
39460
39253
|
exports.UI_RESPONSE = UI_RESPONSE;
|
|
39461
39254
|
exports.checkNeedUpdateBootForClassicAndMini = checkNeedUpdateBootForClassicAndMini;
|
|
39462
39255
|
exports.checkNeedUpdateBootForTouch = checkNeedUpdateBootForTouch;
|
|
39463
|
-
exports.cleanupCallback = cleanupCallback;
|
|
39464
39256
|
exports.corsValidator = corsValidator;
|
|
39465
39257
|
exports.createDeviceMessage = createDeviceMessage;
|
|
39466
39258
|
exports.createErrorMessage = createErrorMessage;
|
|
@@ -39472,7 +39264,6 @@ exports.createUiMessage = createUiMessage;
|
|
|
39472
39264
|
exports.createUiResponse = createUiResponse;
|
|
39473
39265
|
exports["default"] = HardwareSdk;
|
|
39474
39266
|
exports.enableLog = enableLog;
|
|
39475
|
-
exports.executeCallback = executeCallback;
|
|
39476
39267
|
exports.getDeviceBLEFirmwareVersion = getDeviceBLEFirmwareVersion;
|
|
39477
39268
|
exports.getDeviceBleName = getDeviceBleName;
|
|
39478
39269
|
exports.getDeviceBoardloaderVersion = getDeviceBoardloaderVersion;
|