@onekeyfe/hd-core 1.1.2 → 1.1.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/BaseMethod.d.ts +2 -0
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/api/allnetwork/AllNetworkGetAddress.d.ts +4 -28
- package/dist/api/allnetwork/AllNetworkGetAddress.d.ts.map +1 -1
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +47 -0
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -0
- package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts +8 -0
- package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts.map +1 -0
- 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 +0 -2
- package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
- package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
- package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/core/RequestQueue.d.ts +4 -0
- package/dist/core/RequestQueue.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/Device.d.ts +4 -1
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +4 -4
- package/dist/events/call.d.ts +9 -0
- 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 +11 -1
- package/dist/events/iframe.d.ts.map +1 -1
- package/dist/index.d.ts +40 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +393 -140
- package/dist/inject.d.ts +3 -0
- package/dist/inject.d.ts.map +1 -1
- package/dist/types/api/allNetworkGetAddress.d.ts +9 -2
- package/dist/types/api/allNetworkGetAddress.d.ts.map +1 -1
- package/dist/types/api/evmGetPublicKey.d.ts +1 -0
- package/dist/types/api/evmGetPublicKey.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +2 -1
- package/dist/types/api/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/BaseMethod.ts +3 -0
- package/src/api/allnetwork/AllNetworkGetAddress.ts +14 -407
- package/src/api/allnetwork/AllNetworkGetAddressBase.ts +473 -0
- package/src/api/allnetwork/AllNetworkGetAddressByLoop.ts +151 -0
- package/src/api/btc/BTCGetPublicKey.ts +13 -0
- package/src/api/cosmos/CosmosGetPublicKey.ts +1 -1
- package/src/api/device/DeviceUnlock.ts +1 -48
- package/src/api/evm/EVMGetPublicKey.ts +9 -3
- package/src/api/index.ts +1 -0
- package/src/core/RequestQueue.ts +26 -0
- package/src/core/index.ts +29 -3
- package/src/device/Device.ts +64 -0
- package/src/events/call.ts +10 -0
- package/src/events/core.ts +7 -1
- package/src/events/iframe.ts +12 -1
- package/src/index.ts +2 -1
- package/src/inject.ts +47 -0
- package/src/types/api/allNetworkGetAddress.ts +16 -2
- package/src/types/api/evmGetPublicKey.ts +1 -0
- package/src/types/api/index.ts +2 -1
package/dist/index.js
CHANGED
|
@@ -26,6 +26,82 @@ 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
|
+
};
|
|
29
105
|
const inject = ({ call, cancel, dispose, eventEmitter, init, updateSettings, switchTransport, uiResponse, }) => {
|
|
30
106
|
const api = Object.assign({ on: (type, fn) => {
|
|
31
107
|
eventEmitter.on(type, fn);
|
|
@@ -77,6 +153,20 @@ const createCoreApi = (call) => ({
|
|
|
77
153
|
getNextU2FCounter: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'getNextU2FCounter' })),
|
|
78
154
|
setU2FCounter: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'setU2FCounter' })),
|
|
79
155
|
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
|
+
},
|
|
80
170
|
evmGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'evmGetAddress' })),
|
|
81
171
|
evmGetPublicKey: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'evmGetPublicKey' })),
|
|
82
172
|
evmSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'evmSignMessage' })),
|
|
@@ -684,68 +774,6 @@ const topLevelInject = () => {
|
|
|
684
774
|
return api;
|
|
685
775
|
};
|
|
686
776
|
|
|
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
|
-
|
|
749
777
|
const LOG_EVENT = 'LOG_EVENT';
|
|
750
778
|
const LOG = {
|
|
751
779
|
OUTPUT: 'log-output',
|
|
@@ -25798,6 +25826,7 @@ const IFRAME = {
|
|
|
25798
25826
|
CALL: 'iframe-call',
|
|
25799
25827
|
CANCEL: 'iframe-cancel',
|
|
25800
25828
|
SWITCH_TRANSPORT: 'iframe-switch-transport',
|
|
25829
|
+
CALLBACK: 'iframe-callback',
|
|
25801
25830
|
};
|
|
25802
25831
|
const createIFrameMessage = (type, payload) => ({
|
|
25803
25832
|
event: UI_EVENT,
|
|
@@ -26691,6 +26720,15 @@ class Device extends events.exports {
|
|
|
26691
26720
|
const env = DataManager.getSettings('env');
|
|
26692
26721
|
if ((this.isUsedHere() && !this.keepSession && this.mainId) ||
|
|
26693
26722
|
(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
|
+
}
|
|
26694
26732
|
if (this.commands) {
|
|
26695
26733
|
this.commands.dispose(false);
|
|
26696
26734
|
if (this.commands.callPromise) {
|
|
@@ -27071,6 +27109,44 @@ class Device extends events.exports {
|
|
|
27071
27109
|
return res.message;
|
|
27072
27110
|
});
|
|
27073
27111
|
}
|
|
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
|
+
return Promise.resolve(featuresRes.message);
|
|
27136
|
+
}
|
|
27137
|
+
const { type } = yield this.commands.typedCall('GetAddress', 'Address', {
|
|
27138
|
+
address_n: [toHardened(44), toHardened(1), toHardened(0), 0, 0],
|
|
27139
|
+
coin_name: 'Testnet',
|
|
27140
|
+
script_type: 'SPENDADDRESS',
|
|
27141
|
+
show_display: false,
|
|
27142
|
+
});
|
|
27143
|
+
if (type === 'CallMethodError') {
|
|
27144
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'unlock device error');
|
|
27145
|
+
}
|
|
27146
|
+
const res = yield this.commands.typedCall('GetFeatures', 'Features');
|
|
27147
|
+
return Promise.resolve(res.message);
|
|
27148
|
+
});
|
|
27149
|
+
}
|
|
27074
27150
|
checkPassphraseStateSafety(passphraseState, useEmptyPassphrase, skipPassphraseCheck) {
|
|
27075
27151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27076
27152
|
if (!this.features)
|
|
@@ -28643,42 +28719,9 @@ class DeviceUnlock extends BaseMethod {
|
|
|
28643
28719
|
init() {
|
|
28644
28720
|
this.useDevicePassphraseState = false;
|
|
28645
28721
|
}
|
|
28646
|
-
supportUnlockVersionRange() {
|
|
28647
|
-
return {
|
|
28648
|
-
pro: {
|
|
28649
|
-
min: '4.15.0',
|
|
28650
|
-
},
|
|
28651
|
-
};
|
|
28652
|
-
}
|
|
28653
28722
|
run() {
|
|
28654
|
-
var _a;
|
|
28655
28723
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28656
|
-
|
|
28657
|
-
const versionRange = getMethodVersionRange(this.device.features, type => this.supportUnlockVersionRange()[type]);
|
|
28658
|
-
if (versionRange && semver__default["default"].gte(firmwareVersion, versionRange.min)) {
|
|
28659
|
-
const res = yield this.device.commands.typedCall('UnLockDevice', 'UnLockDeviceResponse');
|
|
28660
|
-
if (this.device.features) {
|
|
28661
|
-
this.device.features.unlocked = res.message.unlocked == null ? null : res.message.unlocked;
|
|
28662
|
-
this.device.features.unlocked_attach_pin =
|
|
28663
|
-
res.message.unlocked_attach_pin == null ? undefined : res.message.unlocked_attach_pin;
|
|
28664
|
-
this.device.features.passphrase_protection =
|
|
28665
|
-
res.message.passphrase_protection == null ? null : res.message.passphrase_protection;
|
|
28666
|
-
return Promise.resolve(this.device.features);
|
|
28667
|
-
}
|
|
28668
|
-
const featuresRes = yield this.device.commands.typedCall('GetFeatures', 'Features');
|
|
28669
|
-
return Promise.resolve(featuresRes.message);
|
|
28670
|
-
}
|
|
28671
|
-
const { type } = yield this.device.commands.typedCall('GetAddress', 'Address', {
|
|
28672
|
-
address_n: [toHardened(44), toHardened(1), toHardened(0), 0, 0],
|
|
28673
|
-
coin_name: 'Testnet',
|
|
28674
|
-
script_type: 'SPENDADDRESS',
|
|
28675
|
-
show_display: false,
|
|
28676
|
-
});
|
|
28677
|
-
if (type === 'CallMethodError') {
|
|
28678
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Get the passphrase state error');
|
|
28679
|
-
}
|
|
28680
|
-
const res = yield this.device.commands.typedCall('GetFeatures', 'Features');
|
|
28681
|
-
return Promise.resolve(res.message);
|
|
28724
|
+
return this.device.unlockDevice();
|
|
28682
28725
|
});
|
|
28683
28726
|
}
|
|
28684
28727
|
}
|
|
@@ -30041,12 +30084,17 @@ const networkConfigMap = {
|
|
|
30041
30084
|
methodName: 'neoGetAddress',
|
|
30042
30085
|
},
|
|
30043
30086
|
};
|
|
30044
|
-
class
|
|
30087
|
+
class AllNetworkGetAddressBase extends BaseMethod {
|
|
30088
|
+
constructor() {
|
|
30089
|
+
super(...arguments);
|
|
30090
|
+
this.abortController = null;
|
|
30091
|
+
}
|
|
30045
30092
|
init() {
|
|
30093
|
+
var _a, _b;
|
|
30046
30094
|
this.checkDeviceId = true;
|
|
30047
30095
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
30048
30096
|
validateParams(this.payload, [{ name: 'bundle', type: 'array' }]);
|
|
30049
|
-
this.payload.bundle.forEach((batch) => {
|
|
30097
|
+
(_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle) === null || _b === void 0 ? void 0 : _b.forEach((batch) => {
|
|
30050
30098
|
validateParams(batch, [
|
|
30051
30099
|
{ name: 'path', required: true },
|
|
30052
30100
|
{ name: 'network', type: 'string', required: true },
|
|
@@ -30086,6 +30134,24 @@ class AllNetworkGetAddress extends BaseMethod {
|
|
|
30086
30134
|
try {
|
|
30087
30135
|
method.init();
|
|
30088
30136
|
(_a = method.setDevice) === null || _a === void 0 ? void 0 : _a.call(method, this.device);
|
|
30137
|
+
method.context = this.context;
|
|
30138
|
+
const onSignalAbort = () => {
|
|
30139
|
+
var _a;
|
|
30140
|
+
console.log('=====>>>>> onSignalAbort');
|
|
30141
|
+
(_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
|
|
30142
|
+
};
|
|
30143
|
+
const _onDeviceButtonHandler = (...[device, request]) => {
|
|
30144
|
+
if (request.code === 'ButtonRequest_PinEntry' ||
|
|
30145
|
+
request.code === 'ButtonRequest_AttachPin') {
|
|
30146
|
+
onSignalAbort();
|
|
30147
|
+
}
|
|
30148
|
+
else {
|
|
30149
|
+
onDeviceButtonHandler(device, request);
|
|
30150
|
+
}
|
|
30151
|
+
};
|
|
30152
|
+
this.device.on(DEVICE.BUTTON, _onDeviceButtonHandler);
|
|
30153
|
+
this.device.on(DEVICE.PIN, onSignalAbort);
|
|
30154
|
+
this.device.on(DEVICE.PASSPHRASE, onSignalAbort);
|
|
30089
30155
|
preCheckDeviceSupport(this.device, method);
|
|
30090
30156
|
const response = yield method.run();
|
|
30091
30157
|
if (!Array.isArray(response) || response.length === 0) {
|
|
@@ -30112,45 +30178,22 @@ class AllNetworkGetAddress extends BaseMethod {
|
|
|
30112
30178
|
});
|
|
30113
30179
|
}
|
|
30114
30180
|
run() {
|
|
30115
|
-
var _a
|
|
30181
|
+
var _a;
|
|
30116
30182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30117
|
-
|
|
30118
|
-
|
|
30119
|
-
|
|
30120
|
-
|
|
30121
|
-
.map((param, index) => this.generateMethodName({
|
|
30122
|
-
network: param.network,
|
|
30123
|
-
payload: param,
|
|
30124
|
-
originalIndex: index,
|
|
30125
|
-
}))
|
|
30126
|
-
.reduce((acc, cur) => {
|
|
30127
|
-
if (!acc[cur.methodName]) {
|
|
30128
|
-
acc[cur.methodName] = [];
|
|
30129
|
-
}
|
|
30130
|
-
acc[cur.methodName].push(cur);
|
|
30131
|
-
return acc;
|
|
30132
|
-
}, {});
|
|
30133
|
-
let i = 0;
|
|
30134
|
-
for (const [methodName, params] of Object.entries(methodGroups)) {
|
|
30135
|
-
const methodParams = {
|
|
30136
|
-
bundle: params.map(param => (Object.assign({}, param.params))),
|
|
30137
|
-
};
|
|
30138
|
-
const response = yield this.callMethod(methodName, methodParams);
|
|
30139
|
-
for (let i = 0; i < params.length; i++) {
|
|
30140
|
-
const { _originRequestParams, _originalIndex } = params[i];
|
|
30141
|
-
const responseKey = `${_originalIndex}`;
|
|
30142
|
-
resultMap[responseKey] = Object.assign(Object.assign({}, _originRequestParams), response[i]);
|
|
30183
|
+
if (!((_a = this.device.features) === null || _a === void 0 ? void 0 : _a.unlocked)) {
|
|
30184
|
+
const features = yield this.device.unlockDevice();
|
|
30185
|
+
if (features.passphrase_protection) {
|
|
30186
|
+
yield this.device.checkPassphraseStateSafety();
|
|
30143
30187
|
}
|
|
30144
|
-
|
|
30145
|
-
const progress = Math.round(((i + 1) / this.payload.bundle.length) * 100);
|
|
30146
|
-
this.postMessage(createUiMessage(UI_REQUEST.DEVICE_PROGRESS, { progress }));
|
|
30147
|
-
}
|
|
30148
|
-
i++;
|
|
30149
|
-
}
|
|
30150
|
-
for (let i = 0; i < bundle.length; i++) {
|
|
30151
|
-
responses.push(resultMap[i]);
|
|
30188
|
+
this.postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
|
|
30152
30189
|
}
|
|
30153
|
-
|
|
30190
|
+
this.abortController = new AbortController();
|
|
30191
|
+
return this.getAllNetworkAddress().catch(e => {
|
|
30192
|
+
if (e instanceof hdShared.HardwareError && e.errorCode === hdShared.HardwareErrorCode.RepeatUnlocking) {
|
|
30193
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RepeatUnlocking, e.message);
|
|
30194
|
+
}
|
|
30195
|
+
throw e;
|
|
30196
|
+
});
|
|
30154
30197
|
});
|
|
30155
30198
|
}
|
|
30156
30199
|
}
|
|
@@ -30171,10 +30214,7 @@ function handleSkippableHardwareError(e, device, method) {
|
|
|
30171
30214
|
let error;
|
|
30172
30215
|
if (e instanceof hdShared.HardwareError && e.errorCode !== hdShared.HardwareErrorCode.RuntimeError) {
|
|
30173
30216
|
const { errorCode } = e;
|
|
30174
|
-
if (errorCode === hdShared.HardwareErrorCode.
|
|
30175
|
-
error = e;
|
|
30176
|
-
}
|
|
30177
|
-
else if (errorCode === hdShared.HardwareErrorCode.CallMethodNeedUpgradeFirmware) {
|
|
30217
|
+
if (errorCode === hdShared.HardwareErrorCode.CallMethodNeedUpgradeFirmware) {
|
|
30178
30218
|
error = e;
|
|
30179
30219
|
}
|
|
30180
30220
|
else if (errorCode === hdShared.HardwareErrorCode.DeviceNotSupportMethod) {
|
|
@@ -30200,6 +30240,164 @@ function handleSkippableHardwareError(e, device, method) {
|
|
|
30200
30240
|
return error;
|
|
30201
30241
|
}
|
|
30202
30242
|
|
|
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,
|
|
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
|
+
|
|
30203
30401
|
var bitcoin = [
|
|
30204
30402
|
{
|
|
30205
30403
|
name: "Bitcoin",
|
|
@@ -30774,6 +30972,15 @@ class BTCGetPublicKey extends BaseMethod {
|
|
|
30774
30972
|
}
|
|
30775
30973
|
}
|
|
30776
30974
|
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
|
+
}
|
|
30777
30984
|
responses = [];
|
|
30778
30985
|
for (let i = 0; i < this.params.length; i++) {
|
|
30779
30986
|
const param = this.params[i];
|
|
@@ -31613,6 +31820,7 @@ class EVMGetPublicKey extends BaseMethod {
|
|
|
31613
31820
|
constructor() {
|
|
31614
31821
|
super(...arguments);
|
|
31615
31822
|
this.hasBundle = false;
|
|
31823
|
+
this.confirmShowOnOneKey = false;
|
|
31616
31824
|
this.useBatch = false;
|
|
31617
31825
|
}
|
|
31618
31826
|
init() {
|
|
@@ -31620,7 +31828,8 @@ class EVMGetPublicKey extends BaseMethod {
|
|
|
31620
31828
|
this.checkDeviceId = true;
|
|
31621
31829
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
31622
31830
|
this.hasBundle = !!((_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle);
|
|
31623
|
-
this.
|
|
31831
|
+
this.confirmShowOnOneKey = (_c = (_b = this.payload) === null || _b === void 0 ? void 0 : _b.bundle) === null || _c === void 0 ? void 0 : _c.some((item) => !!item.showOnOneKey);
|
|
31832
|
+
this.useBatch = !this.confirmShowOnOneKey && this.hasBundle && this.payload.useBatch;
|
|
31624
31833
|
const payload = this.hasBundle ? this.payload : { bundle: [this.payload] };
|
|
31625
31834
|
validateParams(payload, [{ name: 'bundle', type: 'array' }]);
|
|
31626
31835
|
this.params = [];
|
|
@@ -31656,7 +31865,7 @@ class EVMGetPublicKey extends BaseMethod {
|
|
|
31656
31865
|
var _a;
|
|
31657
31866
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31658
31867
|
const responses = [];
|
|
31659
|
-
if (this.useBatch &&
|
|
31868
|
+
if (this.useBatch && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features)) {
|
|
31660
31869
|
try {
|
|
31661
31870
|
const res = yield batchGetPublickeys(this.device, this.params, 'secp256k1', 60, {
|
|
31662
31871
|
includeNode: false,
|
|
@@ -38113,6 +38322,7 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
|
38113
38322
|
promptWebDeviceAccess: PromptWebDeviceAccess,
|
|
38114
38323
|
cipherKeyValue: CipherKeyValue,
|
|
38115
38324
|
allNetworkGetAddress: AllNetworkGetAddress,
|
|
38325
|
+
allNetworkGetAddressByLoop: AllNetworkGetAddressByLoop,
|
|
38116
38326
|
btcGetAddress: BTCGetAddress,
|
|
38117
38327
|
btcGetPublicKey: BTCGetPublicKey,
|
|
38118
38328
|
btcSignMessage: BTCSignMessage,
|
|
@@ -38325,6 +38535,7 @@ const Log$1 = getLogger(exports.LoggerNames.Core);
|
|
|
38325
38535
|
class RequestQueue {
|
|
38326
38536
|
constructor() {
|
|
38327
38537
|
this.requestQueue = new Map();
|
|
38538
|
+
this.pendingCallbackTasks = new Map();
|
|
38328
38539
|
this.generateRequestId = (method) => {
|
|
38329
38540
|
if (method && method.responseID != null) {
|
|
38330
38541
|
return method.responseID;
|
|
@@ -38401,6 +38612,28 @@ class RequestQueue {
|
|
|
38401
38612
|
releaseTask(requestId) {
|
|
38402
38613
|
this.requestQueue.delete(requestId);
|
|
38403
38614
|
}
|
|
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
|
+
}
|
|
38404
38637
|
}
|
|
38405
38638
|
|
|
38406
38639
|
const getMutex = () => {
|
|
@@ -38523,6 +38756,9 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
38523
38756
|
Log.debug('passphrase state change, clear device cache');
|
|
38524
38757
|
DevicePool.clearDeviceCache(method.payload.connectId);
|
|
38525
38758
|
}
|
|
38759
|
+
if (method.connectId) {
|
|
38760
|
+
yield context.waitForCallbackTasks(method.connectId);
|
|
38761
|
+
}
|
|
38526
38762
|
yield waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
|
|
38527
38763
|
const task = requestQueue.createTask(method);
|
|
38528
38764
|
let device;
|
|
@@ -38546,6 +38782,7 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
38546
38782
|
}
|
|
38547
38783
|
Log.debug('Call API - setDevice: ', device.mainId);
|
|
38548
38784
|
(_b = method.setDevice) === null || _b === void 0 ? void 0 : _b.call(method, device);
|
|
38785
|
+
method.context = context;
|
|
38549
38786
|
device.on(DEVICE.PIN, onDevicePinHandler);
|
|
38550
38787
|
device.on(DEVICE.BUTTON, onDeviceButtonHandler);
|
|
38551
38788
|
device.on(DEVICE.PASSPHRASE, message.payload.useEmptyPassphrase ? onEmptyPassphraseHandler : onDevicePassphraseHandler);
|
|
@@ -38553,6 +38790,9 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
|
|
|
38553
38790
|
device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
|
|
38554
38791
|
device.on(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE, onSelectDeviceInBootloaderForWebDeviceHandler);
|
|
38555
38792
|
try {
|
|
38793
|
+
if (method.connectId) {
|
|
38794
|
+
yield context.waitForCallbackTasks(method.connectId);
|
|
38795
|
+
}
|
|
38556
38796
|
yield waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
|
|
38557
38797
|
const inner = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
38558
38798
|
var _c, _d, _e, _f, _g;
|
|
@@ -38890,6 +39130,7 @@ const cancel = (context, connectId) => {
|
|
|
38890
39130
|
const { requestQueue, setPrePendingCallPromise } = context;
|
|
38891
39131
|
if (connectId) {
|
|
38892
39132
|
try {
|
|
39133
|
+
requestQueue.cancelCallbackTasks(connectId);
|
|
38893
39134
|
const requestIds = requestQueue.getRequestTasksId();
|
|
38894
39135
|
Log.debug(`Cancel Api connect requestQueues: length:${requestIds.length} requestIds:${requestIds.join(',')}`);
|
|
38895
39136
|
const canceledDevices = [];
|
|
@@ -39070,6 +39311,11 @@ class Core extends events.exports {
|
|
|
39070
39311
|
setPrePendingCallPromise: (promise) => {
|
|
39071
39312
|
this.prePendingCallPromise = promise;
|
|
39072
39313
|
},
|
|
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),
|
|
39073
39319
|
};
|
|
39074
39320
|
}
|
|
39075
39321
|
handleMessage(message) {
|
|
@@ -39111,6 +39357,11 @@ class Core extends events.exports {
|
|
|
39111
39357
|
cancel(this.getCoreContext(), message.payload.connectId);
|
|
39112
39358
|
break;
|
|
39113
39359
|
}
|
|
39360
|
+
case IFRAME.CALLBACK: {
|
|
39361
|
+
Log.log('callback message: ', message);
|
|
39362
|
+
postMessage(message);
|
|
39363
|
+
break;
|
|
39364
|
+
}
|
|
39114
39365
|
}
|
|
39115
39366
|
return Promise.resolve(message);
|
|
39116
39367
|
});
|
|
@@ -39209,6 +39460,7 @@ exports.UI_REQUEST = UI_REQUEST;
|
|
|
39209
39460
|
exports.UI_RESPONSE = UI_RESPONSE;
|
|
39210
39461
|
exports.checkNeedUpdateBootForClassicAndMini = checkNeedUpdateBootForClassicAndMini;
|
|
39211
39462
|
exports.checkNeedUpdateBootForTouch = checkNeedUpdateBootForTouch;
|
|
39463
|
+
exports.cleanupCallback = cleanupCallback;
|
|
39212
39464
|
exports.corsValidator = corsValidator;
|
|
39213
39465
|
exports.createDeviceMessage = createDeviceMessage;
|
|
39214
39466
|
exports.createErrorMessage = createErrorMessage;
|
|
@@ -39220,6 +39472,7 @@ exports.createUiMessage = createUiMessage;
|
|
|
39220
39472
|
exports.createUiResponse = createUiResponse;
|
|
39221
39473
|
exports["default"] = HardwareSdk;
|
|
39222
39474
|
exports.enableLog = enableLog;
|
|
39475
|
+
exports.executeCallback = executeCallback;
|
|
39223
39476
|
exports.getDeviceBLEFirmwareVersion = getDeviceBLEFirmwareVersion;
|
|
39224
39477
|
exports.getDeviceBleName = getDeviceBleName;
|
|
39225
39478
|
exports.getDeviceBoardloaderVersion = getDeviceBoardloaderVersion;
|