@onekeyfe/hd-core 1.1.2-alpha.3 → 1.1.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.
Files changed (62) hide show
  1. package/dist/api/BaseMethod.d.ts +0 -2
  2. package/dist/api/BaseMethod.d.ts.map +1 -1
  3. package/dist/api/allnetwork/AllNetworkGetAddress.d.ts +28 -4
  4. package/dist/api/allnetwork/AllNetworkGetAddress.d.ts.map +1 -1
  5. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  6. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -1
  7. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  8. package/dist/api/device/DeviceUnlock.d.ts +2 -0
  9. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  10. package/dist/api/evm/EVMGetPublicKey.d.ts +0 -1
  11. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  12. package/dist/api/index.d.ts +0 -1
  13. package/dist/api/index.d.ts.map +1 -1
  14. package/dist/core/RequestQueue.d.ts +0 -4
  15. package/dist/core/RequestQueue.d.ts.map +1 -1
  16. package/dist/core/index.d.ts +2 -3
  17. package/dist/core/index.d.ts.map +1 -1
  18. package/dist/device/Device.d.ts +1 -4
  19. package/dist/device/Device.d.ts.map +1 -1
  20. package/dist/device/DeviceCommands.d.ts +4 -4
  21. package/dist/events/call.d.ts +0 -9
  22. package/dist/events/call.d.ts.map +1 -1
  23. package/dist/events/core.d.ts +2 -2
  24. package/dist/events/core.d.ts.map +1 -1
  25. package/dist/events/iframe.d.ts +1 -11
  26. package/dist/events/iframe.d.ts.map +1 -1
  27. package/dist/index.d.ts +12 -40
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +140 -390
  30. package/dist/inject.d.ts +0 -3
  31. package/dist/inject.d.ts.map +1 -1
  32. package/dist/types/api/allNetworkGetAddress.d.ts +2 -9
  33. package/dist/types/api/allNetworkGetAddress.d.ts.map +1 -1
  34. package/dist/types/api/evmGetPublicKey.d.ts +0 -1
  35. package/dist/types/api/evmGetPublicKey.d.ts.map +1 -1
  36. package/dist/types/api/index.d.ts +1 -2
  37. package/dist/types/api/index.d.ts.map +1 -1
  38. package/package.json +4 -4
  39. package/src/api/BaseMethod.ts +0 -3
  40. package/src/api/allnetwork/AllNetworkGetAddress.ts +407 -13
  41. package/src/api/btc/BTCGetPublicKey.ts +0 -13
  42. package/src/api/cosmos/CosmosGetPublicKey.ts +1 -1
  43. package/src/api/device/DeviceUnlock.ts +48 -1
  44. package/src/api/evm/EVMGetPublicKey.ts +3 -9
  45. package/src/api/index.ts +0 -1
  46. package/src/core/RequestQueue.ts +0 -26
  47. package/src/core/index.ts +3 -29
  48. package/src/device/Device.ts +0 -64
  49. package/src/events/call.ts +0 -10
  50. package/src/events/core.ts +1 -7
  51. package/src/events/iframe.ts +1 -12
  52. package/src/index.ts +1 -2
  53. package/src/inject.ts +0 -47
  54. package/src/types/api/allNetworkGetAddress.ts +2 -16
  55. package/src/types/api/evmGetPublicKey.ts +0 -1
  56. package/src/types/api/index.ts +1 -2
  57. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +0 -47
  58. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +0 -1
  59. package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts +0 -8
  60. package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts.map +0 -1
  61. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +0 -473
  62. package/src/api/allnetwork/AllNetworkGetAddressByLoop.ts +0 -150
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',
@@ -25826,7 +25798,6 @@ const IFRAME = {
25826
25798
  CALL: 'iframe-call',
25827
25799
  CANCEL: 'iframe-cancel',
25828
25800
  SWITCH_TRANSPORT: 'iframe-switch-transport',
25829
- CALLBACK: 'iframe-callback',
25830
25801
  };
25831
25802
  const createIFrameMessage = (type, payload) => ({
25832
25803
  event: UI_EVENT,
@@ -26720,15 +26691,6 @@ class Device extends events.exports {
26720
26691
  const env = DataManager.getSettings('env');
26721
26692
  if ((this.isUsedHere() && !this.keepSession && this.mainId) ||
26722
26693
  (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
26694
  if (this.commands) {
26733
26695
  this.commands.dispose(false);
26734
26696
  if (this.commands.callPromise) {
@@ -27109,44 +27071,6 @@ class Device extends events.exports {
27109
27071
  return res.message;
27110
27072
  });
27111
27073
  }
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
- }
27150
27074
  checkPassphraseStateSafety(passphraseState, useEmptyPassphrase, skipPassphraseCheck) {
27151
27075
  return __awaiter(this, void 0, void 0, function* () {
27152
27076
  if (!this.features)
@@ -28719,9 +28643,42 @@ class DeviceUnlock extends BaseMethod {
28719
28643
  init() {
28720
28644
  this.useDevicePassphraseState = false;
28721
28645
  }
28646
+ supportUnlockVersionRange() {
28647
+ return {
28648
+ pro: {
28649
+ min: '4.15.0',
28650
+ },
28651
+ };
28652
+ }
28722
28653
  run() {
28654
+ var _a;
28723
28655
  return __awaiter(this, void 0, void 0, function* () {
28724
- return this.device.unlockDevice();
28656
+ const firmwareVersion = (_a = getDeviceFirmwareVersion(this.device.features)) === null || _a === void 0 ? void 0 : _a.join('.');
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);
28725
28682
  });
28726
28683
  }
28727
28684
  }
@@ -30084,18 +30041,12 @@ const networkConfigMap = {
30084
30041
  methodName: 'neoGetAddress',
30085
30042
  },
30086
30043
  };
30087
- class AllNetworkGetAddressBase extends BaseMethod {
30088
- constructor() {
30089
- super(...arguments);
30090
- this.abortController = null;
30091
- }
30044
+ class AllNetworkGetAddress extends BaseMethod {
30092
30045
  init() {
30093
- var _a, _b;
30094
30046
  this.checkDeviceId = true;
30095
30047
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
30096
- this.useDevicePassphraseState = false;
30097
30048
  validateParams(this.payload, [{ name: 'bundle', type: 'array' }]);
30098
- (_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle) === null || _b === void 0 ? void 0 : _b.forEach((batch) => {
30049
+ this.payload.bundle.forEach((batch) => {
30099
30050
  validateParams(batch, [
30100
30051
  { name: 'path', required: true },
30101
30052
  { name: 'network', type: 'string', required: true },
@@ -30135,23 +30086,6 @@ class AllNetworkGetAddressBase extends BaseMethod {
30135
30086
  try {
30136
30087
  method.init();
30137
30088
  (_a = method.setDevice) === null || _a === void 0 ? void 0 : _a.call(method, this.device);
30138
- method.context = this.context;
30139
- const onSignalAbort = () => {
30140
- var _a;
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);
30155
30089
  preCheckDeviceSupport(this.device, method);
30156
30090
  const response = yield method.run();
30157
30091
  if (!Array.isArray(response) || response.length === 0) {
@@ -30178,21 +30112,45 @@ class AllNetworkGetAddressBase extends BaseMethod {
30178
30112
  });
30179
30113
  }
30180
30114
  run() {
30181
- var _a;
30115
+ var _a, _b;
30182
30116
  return __awaiter(this, void 0, void 0, function* () {
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();
30117
+ const responses = [];
30118
+ const resultMap = {};
30119
+ const { bundle } = this.payload;
30120
+ const methodGroups = bundle
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] = [];
30187
30129
  }
30188
- }
30189
- this.abortController = new AbortController();
30190
- return Promise.resolve(this.getAllNetworkAddress()).catch(e => {
30191
- if (e instanceof hdShared.HardwareError && e.errorCode === hdShared.HardwareErrorCode.RepeatUnlocking) {
30192
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RepeatUnlocking, e.message);
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]);
30193
30143
  }
30194
- throw e;
30195
- });
30144
+ if (((_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle) === null || _b === void 0 ? void 0 : _b.length) > 1) {
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]);
30152
+ }
30153
+ return Promise.resolve(responses);
30196
30154
  });
30197
30155
  }
30198
30156
  }
@@ -30213,7 +30171,10 @@ function handleSkippableHardwareError(e, device, method) {
30213
30171
  let error;
30214
30172
  if (e instanceof hdShared.HardwareError && e.errorCode !== hdShared.HardwareErrorCode.RuntimeError) {
30215
30173
  const { errorCode } = e;
30216
- if (errorCode === hdShared.HardwareErrorCode.CallMethodNeedUpgradeFirmware) {
30174
+ if (errorCode === hdShared.HardwareErrorCode.CallMethodInvalidParameter) {
30175
+ error = e;
30176
+ }
30177
+ else if (errorCode === hdShared.HardwareErrorCode.CallMethodNeedUpgradeFirmware) {
30217
30178
  error = e;
30218
30179
  }
30219
30180
  else if (errorCode === hdShared.HardwareErrorCode.DeviceNotSupportMethod) {
@@ -30239,162 +30200,6 @@ function handleSkippableHardwareError(e, device, method) {
30239
30200
  return error;
30240
30201
  }
30241
30202
 
30242
- class AllNetworkGetAddress extends AllNetworkGetAddressBase {
30243
- getAllNetworkAddress() {
30244
- var _a, _b, _c, _d;
30245
- return __awaiter(this, void 0, void 0, function* () {
30246
- const responses = [];
30247
- const resultMap = {};
30248
- const { bundle } = this.payload;
30249
- const methodGroups = bundle
30250
- .map((param, index) => this.generateMethodName({
30251
- network: param.network,
30252
- payload: param,
30253
- originalIndex: index,
30254
- }))
30255
- .reduce((acc, cur) => {
30256
- if (!acc[cur.methodName]) {
30257
- acc[cur.methodName] = [];
30258
- }
30259
- acc[cur.methodName].push(cur);
30260
- return acc;
30261
- }, {});
30262
- let i = 0;
30263
- for (const [methodName, params] of Object.entries(methodGroups)) {
30264
- const methodParams = {
30265
- bundle: params.map(param => (Object.assign({}, param.params))),
30266
- };
30267
- if ((_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
30268
- throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
30269
- }
30270
- const response = yield this.callMethod(methodName, methodParams);
30271
- if ((_b = this.abortController) === null || _b === void 0 ? void 0 : _b.signal.aborted) {
30272
- throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
30273
- }
30274
- for (let i = 0; i < params.length; i++) {
30275
- const { _originRequestParams, _originalIndex } = params[i];
30276
- const responseKey = `${_originalIndex}`;
30277
- resultMap[responseKey] = Object.assign(Object.assign({}, _originRequestParams), response[i]);
30278
- }
30279
- if (((_d = (_c = this.payload) === null || _c === void 0 ? void 0 : _c.bundle) === null || _d === void 0 ? void 0 : _d.length) > 1) {
30280
- const progress = Math.round(((i + 1) / this.payload.bundle.length) * 100);
30281
- this.postMessage(createUiMessage(UI_REQUEST.DEVICE_PROGRESS, { progress }));
30282
- }
30283
- i++;
30284
- }
30285
- for (let i = 0; i < bundle.length; i++) {
30286
- responses.push(resultMap[i]);
30287
- }
30288
- return Promise.resolve(responses);
30289
- });
30290
- }
30291
- }
30292
-
30293
- class AllNetworkGetAddressByLoop extends AllNetworkGetAddressBase {
30294
- getAllNetworkAddress() {
30295
- return __awaiter(this, void 0, void 0, function* () {
30296
- const { callbackId, callbackIdFinish } = this.payload;
30297
- if (!callbackId) {
30298
- throw new Error('callbackId is required');
30299
- }
30300
- if (!callbackIdFinish) {
30301
- throw new Error('callbackIdFinish is required');
30302
- }
30303
- const bundle = this.payload.bundle || [this.payload];
30304
- const callbackPromise = this.processCallbacksInBackground(bundle, callbackId, callbackIdFinish);
30305
- this.device.pendingCallbackPromise = hdShared.createDeferred(callbackPromise);
30306
- if (this.context && this.payload.connectId) {
30307
- this.context.registerCallbackTask(this.payload.connectId, this.device.pendingCallbackPromise);
30308
- }
30309
- return Promise.resolve([]);
30310
- });
30311
- }
30312
- processCallbacksInBackground(bundle, callbackId, callbackIdFinish) {
30313
- var _a, _b, _c;
30314
- return __awaiter(this, void 0, void 0, function* () {
30315
- try {
30316
- const allResults = [];
30317
- for (let i = 0; i < bundle.length; i++) {
30318
- const item = bundle[i];
30319
- if ((_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
30320
- throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
30321
- }
30322
- const methodParams = this.generateMethodName({
30323
- network: item.network,
30324
- payload: item,
30325
- originalIndex: i,
30326
- });
30327
- const singleMethodParams = {
30328
- bundle: [methodParams.params],
30329
- };
30330
- const response = yield this.callMethod(methodParams.methodName, singleMethodParams);
30331
- if ((_b = this.abortController) === null || _b === void 0 ? void 0 : _b.signal.aborted) {
30332
- throw new Error(hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]);
30333
- }
30334
- const singleResult = Object.assign(Object.assign({}, item), response[0]);
30335
- allResults.push(singleResult);
30336
- this.sendItemCallback(callbackId, singleResult, i);
30337
- }
30338
- this.sendFinishCallback({
30339
- callbackId: callbackIdFinish,
30340
- data: allResults,
30341
- });
30342
- }
30343
- catch (error) {
30344
- let errorCode = error.errorCode || error.code;
30345
- let errorMessage = error.message;
30346
- if (error instanceof hdShared.HardwareError) {
30347
- errorCode = error.errorCode;
30348
- errorMessage = error.message;
30349
- }
30350
- else if (error.message === hdShared.HardwareErrorCodeMessage[hdShared.HardwareErrorCode.RepeatUnlocking]) {
30351
- errorCode = hdShared.HardwareErrorCode.RepeatUnlocking;
30352
- errorMessage = error.message;
30353
- }
30354
- else {
30355
- const hardwareError = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, error.message);
30356
- errorCode = hardwareError.errorCode;
30357
- errorMessage = hardwareError.message;
30358
- }
30359
- this.sendFinishCallback({
30360
- callbackId,
30361
- error: {
30362
- success: false,
30363
- payload: {
30364
- error: errorMessage,
30365
- code: errorCode,
30366
- },
30367
- },
30368
- });
30369
- }
30370
- finally {
30371
- (_c = this.context) === null || _c === void 0 ? void 0 : _c.cancelCallbackTasks(this.payload.connectId);
30372
- }
30373
- });
30374
- }
30375
- sendFinishCallback({ callbackId, data, error, }) {
30376
- this.postMessage({
30377
- event: IFRAME.CALLBACK,
30378
- type: IFRAME.CALLBACK,
30379
- payload: {
30380
- callbackId,
30381
- data,
30382
- error,
30383
- },
30384
- });
30385
- }
30386
- sendItemCallback(callbackId, data, itemIndex) {
30387
- this.postMessage({
30388
- event: IFRAME.CALLBACK,
30389
- type: IFRAME.CALLBACK,
30390
- payload: {
30391
- callbackId,
30392
- data: Object.assign(Object.assign({}, data), { index: itemIndex }),
30393
- },
30394
- });
30395
- }
30396
- }
30397
-
30398
30203
  var bitcoin = [
30399
30204
  {
30400
30205
  name: "Bitcoin",
@@ -30969,15 +30774,6 @@ class BTCGetPublicKey extends BaseMethod {
30969
30774
  }
30970
30775
  }
30971
30776
  catch (error) {
30972
- if (error instanceof hdShared.HardwareError) {
30973
- const { errorCode } = error;
30974
- if (errorCode === hdShared.HardwareErrorCode.PinCancelled ||
30975
- errorCode === hdShared.HardwareErrorCode.ActionCancelled ||
30976
- errorCode === hdShared.HardwareErrorCode.ResponseUnexpectTypeError ||
30977
- errorCode === hdShared.HardwareErrorCode.PinInvalid) {
30978
- throw error;
30979
- }
30980
- }
30981
30777
  responses = [];
30982
30778
  for (let i = 0; i < this.params.length; i++) {
30983
30779
  const param = this.params[i];
@@ -31817,7 +31613,6 @@ class EVMGetPublicKey extends BaseMethod {
31817
31613
  constructor() {
31818
31614
  super(...arguments);
31819
31615
  this.hasBundle = false;
31820
- this.confirmShowOnOneKey = false;
31821
31616
  this.useBatch = false;
31822
31617
  }
31823
31618
  init() {
@@ -31825,8 +31620,7 @@ class EVMGetPublicKey extends BaseMethod {
31825
31620
  this.checkDeviceId = true;
31826
31621
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
31827
31622
  this.hasBundle = !!((_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle);
31828
- 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);
31829
- this.useBatch = !this.confirmShowOnOneKey && this.hasBundle && this.payload.useBatch;
31623
+ 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);
31830
31624
  const payload = this.hasBundle ? this.payload : { bundle: [this.payload] };
31831
31625
  validateParams(payload, [{ name: 'bundle', type: 'array' }]);
31832
31626
  this.params = [];
@@ -31862,7 +31656,7 @@ class EVMGetPublicKey extends BaseMethod {
31862
31656
  var _a;
31863
31657
  return __awaiter(this, void 0, void 0, function* () {
31864
31658
  const responses = [];
31865
- if (this.useBatch && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features)) {
31659
+ if (this.useBatch && this.hasBundle && supportBatchPublicKey((_a = this.device) === null || _a === void 0 ? void 0 : _a.features)) {
31866
31660
  try {
31867
31661
  const res = yield batchGetPublickeys(this.device, this.params, 'secp256k1', 60, {
31868
31662
  includeNode: false,
@@ -38319,7 +38113,6 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
38319
38113
  promptWebDeviceAccess: PromptWebDeviceAccess,
38320
38114
  cipherKeyValue: CipherKeyValue,
38321
38115
  allNetworkGetAddress: AllNetworkGetAddress,
38322
- allNetworkGetAddressByLoop: AllNetworkGetAddressByLoop,
38323
38116
  btcGetAddress: BTCGetAddress,
38324
38117
  btcGetPublicKey: BTCGetPublicKey,
38325
38118
  btcSignMessage: BTCSignMessage,
@@ -38532,7 +38325,6 @@ const Log$1 = getLogger(exports.LoggerNames.Core);
38532
38325
  class RequestQueue {
38533
38326
  constructor() {
38534
38327
  this.requestQueue = new Map();
38535
- this.pendingCallbackTasks = new Map();
38536
38328
  this.generateRequestId = (method) => {
38537
38329
  if (method && method.responseID != null) {
38538
38330
  return method.responseID;
@@ -38609,28 +38401,6 @@ class RequestQueue {
38609
38401
  releaseTask(requestId) {
38610
38402
  this.requestQueue.delete(requestId);
38611
38403
  }
38612
- registerPendingCallbackTask(connectId, callbackPromise) {
38613
- this.pendingCallbackTasks.set(connectId, callbackPromise);
38614
- callbackPromise.promise.finally(() => {
38615
- Log$1.debug(`Callback task completed for connectId: ${connectId}`);
38616
- this.pendingCallbackTasks.delete(connectId);
38617
- });
38618
- }
38619
- waitForPendingCallbackTasks(connectId) {
38620
- return __awaiter(this, void 0, void 0, function* () {
38621
- const pendingTask = this.pendingCallbackTasks.get(connectId);
38622
- if (pendingTask) {
38623
- Log$1.debug(`Waiting for pending callback task to complete for connectId: ${connectId}`);
38624
- yield pendingTask.promise;
38625
- }
38626
- });
38627
- }
38628
- cancelCallbackTasks(connectId) {
38629
- const pendingTask = this.pendingCallbackTasks.get(connectId);
38630
- if (pendingTask) {
38631
- pendingTask.resolve();
38632
- }
38633
- }
38634
38404
  }
38635
38405
 
38636
38406
  const getMutex = () => {
@@ -38753,9 +38523,6 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
38753
38523
  Log.debug('passphrase state change, clear device cache');
38754
38524
  DevicePool.clearDeviceCache(method.payload.connectId);
38755
38525
  }
38756
- if (method.connectId) {
38757
- yield context.waitForCallbackTasks(method.connectId);
38758
- }
38759
38526
  yield waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
38760
38527
  const task = requestQueue.createTask(method);
38761
38528
  let device;
@@ -38779,7 +38546,6 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
38779
38546
  }
38780
38547
  Log.debug('Call API - setDevice: ', device.mainId);
38781
38548
  (_b = method.setDevice) === null || _b === void 0 ? void 0 : _b.call(method, device);
38782
- method.context = context;
38783
38549
  device.on(DEVICE.PIN, onDevicePinHandler);
38784
38550
  device.on(DEVICE.BUTTON, onDeviceButtonHandler);
38785
38551
  device.on(DEVICE.PASSPHRASE, message.payload.useEmptyPassphrase ? onEmptyPassphraseHandler : onDevicePassphraseHandler);
@@ -38787,9 +38553,6 @@ const onCallDevice = (context, message, method) => __awaiter(void 0, void 0, voi
38787
38553
  device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
38788
38554
  device.on(DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE, onSelectDeviceInBootloaderForWebDeviceHandler);
38789
38555
  try {
38790
- if (method.connectId) {
38791
- yield context.waitForCallbackTasks(method.connectId);
38792
- }
38793
38556
  yield waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
38794
38557
  const inner = () => __awaiter(void 0, void 0, void 0, function* () {
38795
38558
  var _c, _d, _e, _f, _g;
@@ -39127,7 +38890,6 @@ const cancel = (context, connectId) => {
39127
38890
  const { requestQueue, setPrePendingCallPromise } = context;
39128
38891
  if (connectId) {
39129
38892
  try {
39130
- requestQueue.cancelCallbackTasks(connectId);
39131
38893
  const requestIds = requestQueue.getRequestTasksId();
39132
38894
  Log.debug(`Cancel Api connect requestQueues: length:${requestIds.length} requestIds:${requestIds.join(',')}`);
39133
38895
  const canceledDevices = [];
@@ -39308,11 +39070,6 @@ class Core extends events.exports {
39308
39070
  setPrePendingCallPromise: (promise) => {
39309
39071
  this.prePendingCallPromise = promise;
39310
39072
  },
39311
- registerCallbackTask: (connectId, callbackPromise) => {
39312
- this.requestQueue.registerPendingCallbackTask(connectId, callbackPromise);
39313
- },
39314
- waitForCallbackTasks: (connectId) => this.requestQueue.waitForPendingCallbackTasks(connectId),
39315
- cancelCallbackTasks: (connectId) => this.requestQueue.cancelCallbackTasks(connectId),
39316
39073
  };
39317
39074
  }
39318
39075
  handleMessage(message) {
@@ -39354,11 +39111,6 @@ class Core extends events.exports {
39354
39111
  cancel(this.getCoreContext(), message.payload.connectId);
39355
39112
  break;
39356
39113
  }
39357
- case IFRAME.CALLBACK: {
39358
- Log.log('callback message: ', message);
39359
- postMessage(message);
39360
- break;
39361
- }
39362
39114
  }
39363
39115
  return Promise.resolve(message);
39364
39116
  });
@@ -39457,7 +39209,6 @@ exports.UI_REQUEST = UI_REQUEST;
39457
39209
  exports.UI_RESPONSE = UI_RESPONSE;
39458
39210
  exports.checkNeedUpdateBootForClassicAndMini = checkNeedUpdateBootForClassicAndMini;
39459
39211
  exports.checkNeedUpdateBootForTouch = checkNeedUpdateBootForTouch;
39460
- exports.cleanupCallback = cleanupCallback;
39461
39212
  exports.corsValidator = corsValidator;
39462
39213
  exports.createDeviceMessage = createDeviceMessage;
39463
39214
  exports.createErrorMessage = createErrorMessage;
@@ -39469,7 +39220,6 @@ exports.createUiMessage = createUiMessage;
39469
39220
  exports.createUiResponse = createUiResponse;
39470
39221
  exports["default"] = HardwareSdk;
39471
39222
  exports.enableLog = enableLog;
39472
- exports.executeCallback = executeCallback;
39473
39223
  exports.getDeviceBLEFirmwareVersion = getDeviceBLEFirmwareVersion;
39474
39224
  exports.getDeviceBleName = getDeviceBleName;
39475
39225
  exports.getDeviceBoardloaderVersion = getDeviceBoardloaderVersion;