@onekeyfe/hd-web-sdk 0.1.14 → 0.1.18
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/build/iframe.html +1 -1
- package/build/js/iframe.7f142b7c642aad17648d.js +3 -0
- package/build/js/{iframe.3c144affd37209f8865f.js.LICENSE.txt → iframe.7f142b7c642aad17648d.js.LICENSE.txt} +0 -0
- package/build/js/iframe.7f142b7c642aad17648d.js.map +1 -0
- package/build/onekey-js-sdk.js +924 -590
- package/build/onekey-js-sdk.js.map +1 -1
- package/build/onekey-js-sdk.min.js +1 -1
- package/build/onekey-js-sdk.min.js.map +1 -1
- package/dist/iframe/index.d.ts.map +1 -1
- package/dist/iframe/index.js +1 -1
- package/dist/iframe/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/bridgeUtils.d.ts.map +1 -1
- package/dist/utils/bridgeUtils.js +7 -3
- package/dist/utils/bridgeUtils.js.map +1 -1
- package/package.json +5 -5
- package/src/iframe/index.ts +3 -2
- package/src/index.ts +17 -4
- package/src/utils/bridgeUtils.ts +8 -4
- package/build/js/iframe.3c144affd37209f8865f.js +0 -3
- package/build/js/iframe.3c144affd37209f8865f.js.map +0 -1
package/build/onekey-js-sdk.js
CHANGED
|
@@ -4072,6 +4072,9 @@ const inject = ({
|
|
|
4072
4072
|
dispose,
|
|
4073
4073
|
uiResponse,
|
|
4074
4074
|
cancel,
|
|
4075
|
+
getLogs: () => call({
|
|
4076
|
+
method: 'getLogs'
|
|
4077
|
+
}),
|
|
4075
4078
|
searchDevices: () => call({
|
|
4076
4079
|
method: 'searchDevices'
|
|
4077
4080
|
}),
|
|
@@ -4093,8 +4096,9 @@ const inject = ({
|
|
|
4093
4096
|
checkBridgeStatus: () => call({
|
|
4094
4097
|
method: 'checkBridgeStatus'
|
|
4095
4098
|
}),
|
|
4096
|
-
cipherKeyValue: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4099
|
+
cipherKeyValue: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4097
4100
|
connectId,
|
|
4101
|
+
deviceId,
|
|
4098
4102
|
method: 'cipherKeyValue'
|
|
4099
4103
|
})),
|
|
4100
4104
|
deviceBackup: connectId => call({
|
|
@@ -4137,96 +4141,119 @@ const inject = ({
|
|
|
4137
4141
|
connectId,
|
|
4138
4142
|
method: 'deviceWipe'
|
|
4139
4143
|
}),
|
|
4140
|
-
evmGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4144
|
+
evmGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4141
4145
|
connectId,
|
|
4146
|
+
deviceId,
|
|
4142
4147
|
method: 'evmGetAddress'
|
|
4143
4148
|
})),
|
|
4144
|
-
evmGetPublicKey: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4149
|
+
evmGetPublicKey: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4145
4150
|
connectId,
|
|
4151
|
+
deviceId,
|
|
4146
4152
|
method: 'evmGetPublicKey'
|
|
4147
4153
|
})),
|
|
4148
|
-
evmSignMessage: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4154
|
+
evmSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4149
4155
|
connectId,
|
|
4156
|
+
deviceId,
|
|
4150
4157
|
method: 'evmSignMessage'
|
|
4151
4158
|
})),
|
|
4152
|
-
evmSignMessageEIP712: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4159
|
+
evmSignMessageEIP712: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4153
4160
|
connectId,
|
|
4161
|
+
deviceId,
|
|
4154
4162
|
method: 'evmSignMessageEIP712'
|
|
4155
4163
|
})),
|
|
4156
|
-
evmSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4164
|
+
evmSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4157
4165
|
connectId,
|
|
4166
|
+
deviceId,
|
|
4158
4167
|
method: 'evmSignTransaction'
|
|
4159
4168
|
})),
|
|
4160
|
-
evmSignTypedData: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4169
|
+
evmSignTypedData: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4161
4170
|
connectId,
|
|
4171
|
+
deviceId,
|
|
4162
4172
|
method: 'evmSignTypedData'
|
|
4163
4173
|
})),
|
|
4164
|
-
evmVerifyMessage: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4174
|
+
evmVerifyMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4165
4175
|
connectId,
|
|
4176
|
+
deviceId,
|
|
4166
4177
|
method: 'evmVerifyMessage'
|
|
4167
4178
|
})),
|
|
4168
|
-
btcGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4179
|
+
btcGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4169
4180
|
connectId,
|
|
4181
|
+
deviceId,
|
|
4170
4182
|
method: 'btcGetAddress'
|
|
4171
4183
|
})),
|
|
4172
|
-
btcGetPublicKey: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4184
|
+
btcGetPublicKey: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4173
4185
|
connectId,
|
|
4186
|
+
deviceId,
|
|
4174
4187
|
method: 'btcGetPublicKey'
|
|
4175
4188
|
})),
|
|
4176
|
-
btcSignMessage: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4189
|
+
btcSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4177
4190
|
connectId,
|
|
4191
|
+
deviceId,
|
|
4178
4192
|
method: 'btcSignMessage'
|
|
4179
4193
|
})),
|
|
4180
|
-
btcSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4194
|
+
btcSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4181
4195
|
connectId,
|
|
4196
|
+
deviceId,
|
|
4182
4197
|
method: 'btcSignTransaction'
|
|
4183
4198
|
})),
|
|
4184
|
-
btcVerifyMessage: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4199
|
+
btcVerifyMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4185
4200
|
connectId,
|
|
4201
|
+
deviceId,
|
|
4186
4202
|
method: 'btcVerifyMessage'
|
|
4187
4203
|
})),
|
|
4188
|
-
starcoinGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4204
|
+
starcoinGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4189
4205
|
connectId,
|
|
4206
|
+
deviceId,
|
|
4190
4207
|
method: 'starcoinGetAddress'
|
|
4191
4208
|
})),
|
|
4192
|
-
starcoinGetPublicKey: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4209
|
+
starcoinGetPublicKey: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4193
4210
|
connectId,
|
|
4211
|
+
deviceId,
|
|
4194
4212
|
method: 'starcoinGetPublicKey'
|
|
4195
4213
|
})),
|
|
4196
|
-
starcoinSignMessage: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4214
|
+
starcoinSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4197
4215
|
connectId,
|
|
4216
|
+
deviceId,
|
|
4198
4217
|
method: 'starcoinSignMessage'
|
|
4199
4218
|
})),
|
|
4200
|
-
starcoinSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4219
|
+
starcoinSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4201
4220
|
connectId,
|
|
4221
|
+
deviceId,
|
|
4202
4222
|
method: 'starcoinSignTransaction'
|
|
4203
4223
|
})),
|
|
4204
|
-
starcoinVerifyMessage: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4224
|
+
starcoinVerifyMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4205
4225
|
connectId,
|
|
4226
|
+
deviceId,
|
|
4206
4227
|
method: 'starcoinVerifyMessage'
|
|
4207
4228
|
})),
|
|
4208
|
-
nemGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4229
|
+
nemGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4209
4230
|
connectId,
|
|
4231
|
+
deviceId,
|
|
4210
4232
|
method: 'nemGetAddress'
|
|
4211
4233
|
})),
|
|
4212
|
-
nemSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4234
|
+
nemSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4213
4235
|
connectId,
|
|
4236
|
+
deviceId,
|
|
4214
4237
|
method: 'nemSignTransaction'
|
|
4215
4238
|
})),
|
|
4216
|
-
solGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4239
|
+
solGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4217
4240
|
connectId,
|
|
4241
|
+
deviceId,
|
|
4218
4242
|
method: 'solGetAddress'
|
|
4219
4243
|
})),
|
|
4220
|
-
solSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4244
|
+
solSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4221
4245
|
connectId,
|
|
4246
|
+
deviceId,
|
|
4222
4247
|
method: 'solSignTransaction'
|
|
4223
4248
|
})),
|
|
4224
|
-
stellarGetAddress: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4249
|
+
stellarGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4225
4250
|
connectId,
|
|
4251
|
+
deviceId,
|
|
4226
4252
|
method: 'stellarGetAddress'
|
|
4227
4253
|
})),
|
|
4228
|
-
stellarSignTransaction: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4254
|
+
stellarSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), {
|
|
4229
4255
|
connectId,
|
|
4256
|
+
deviceId,
|
|
4230
4257
|
method: 'stellarSignTransaction'
|
|
4231
4258
|
})),
|
|
4232
4259
|
firmwareUpdate: (connectId, params) => call(Object.assign(Object.assign({}, params), {
|
|
@@ -4785,337 +4812,6 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
|
|
|
4785
4812
|
}
|
|
4786
4813
|
}
|
|
4787
4814
|
|
|
4788
|
-
const httpRequest$1 = (url, type = 'text') => __awaiter(void 0, void 0, void 0, function* () {
|
|
4789
|
-
const response = yield axios__default["default"].request({
|
|
4790
|
-
url,
|
|
4791
|
-
withCredentials: false,
|
|
4792
|
-
responseType: type === 'binary' ? 'arraybuffer' : 'json'
|
|
4793
|
-
});
|
|
4794
|
-
|
|
4795
|
-
if (+response.status === 200) {
|
|
4796
|
-
if (type === 'json') {
|
|
4797
|
-
return response.data;
|
|
4798
|
-
}
|
|
4799
|
-
|
|
4800
|
-
if (type === 'binary') {
|
|
4801
|
-
return response.data;
|
|
4802
|
-
}
|
|
4803
|
-
|
|
4804
|
-
return response.data;
|
|
4805
|
-
}
|
|
4806
|
-
|
|
4807
|
-
throw new Error(`httpRequest error: ${url} ${response.statusText}`);
|
|
4808
|
-
});
|
|
4809
|
-
|
|
4810
|
-
const httpRequest = (url, type) => httpRequest$1(url, type);
|
|
4811
|
-
|
|
4812
|
-
const getTimeStamp = () => new Date().getTime();
|
|
4813
|
-
|
|
4814
|
-
const VER_NUMS = 3;
|
|
4815
|
-
const versionRegex = new RegExp(/^[0-9]{1,3}(\.[0-9]{1,3}){0,2}$/);
|
|
4816
|
-
|
|
4817
|
-
const isValidVersionString = version => versionRegex.test(version);
|
|
4818
|
-
|
|
4819
|
-
const isValidVersionArray = version => {
|
|
4820
|
-
if (!Array.isArray(version)) {
|
|
4821
|
-
return false;
|
|
4822
|
-
}
|
|
4823
|
-
|
|
4824
|
-
if (version.length === 0 || version.length > VER_NUMS) {
|
|
4825
|
-
return false;
|
|
4826
|
-
}
|
|
4827
|
-
|
|
4828
|
-
if (version[0] === 0) {
|
|
4829
|
-
return false;
|
|
4830
|
-
}
|
|
4831
|
-
|
|
4832
|
-
for (let i = 0; i < version.length; i++) {
|
|
4833
|
-
if (typeof version[i] !== 'number' || version[i] < 0) {
|
|
4834
|
-
return false;
|
|
4835
|
-
}
|
|
4836
|
-
}
|
|
4837
|
-
|
|
4838
|
-
return true;
|
|
4839
|
-
};
|
|
4840
|
-
|
|
4841
|
-
const normalizeVersionArray = version => {
|
|
4842
|
-
if (version.length === VER_NUMS) {
|
|
4843
|
-
return version;
|
|
4844
|
-
}
|
|
4845
|
-
|
|
4846
|
-
const partialVersion = [...version];
|
|
4847
|
-
|
|
4848
|
-
for (let i = version.length; i < VER_NUMS; i++) {
|
|
4849
|
-
partialVersion.push(0);
|
|
4850
|
-
}
|
|
4851
|
-
|
|
4852
|
-
return partialVersion;
|
|
4853
|
-
};
|
|
4854
|
-
|
|
4855
|
-
const versionSplit = version => {
|
|
4856
|
-
if (!isValidVersionString(version)) {
|
|
4857
|
-
return [0, 0, 0];
|
|
4858
|
-
}
|
|
4859
|
-
|
|
4860
|
-
return version.split('.').map(v => Number(v));
|
|
4861
|
-
};
|
|
4862
|
-
|
|
4863
|
-
const versionCompare = (a, b) => {
|
|
4864
|
-
if (typeof a === 'string' && typeof b === 'string' && a === b) {
|
|
4865
|
-
return 0;
|
|
4866
|
-
}
|
|
4867
|
-
|
|
4868
|
-
const pa = typeof a === 'string' ? versionSplit(a) : a;
|
|
4869
|
-
const pb = typeof b === 'string' ? versionSplit(b) : b;
|
|
4870
|
-
const vpa = isValidVersionArray(pa);
|
|
4871
|
-
const vpb = isValidVersionArray(pb);
|
|
4872
|
-
|
|
4873
|
-
if (!vpa && !vpb) {
|
|
4874
|
-
return 0;
|
|
4875
|
-
}
|
|
4876
|
-
|
|
4877
|
-
if (!vpa && vpb) {
|
|
4878
|
-
return -1;
|
|
4879
|
-
}
|
|
4880
|
-
|
|
4881
|
-
if (vpa && !vpb) {
|
|
4882
|
-
return 1;
|
|
4883
|
-
}
|
|
4884
|
-
|
|
4885
|
-
const npa = normalizeVersionArray(pa);
|
|
4886
|
-
const npb = normalizeVersionArray(pb);
|
|
4887
|
-
|
|
4888
|
-
for (let i = 0; i < VER_NUMS; i++) {
|
|
4889
|
-
if (npa[i] > npb[i]) return 1;
|
|
4890
|
-
if (npb[i] > npa[i]) return -1;
|
|
4891
|
-
}
|
|
4892
|
-
|
|
4893
|
-
return 0;
|
|
4894
|
-
};
|
|
4895
|
-
|
|
4896
|
-
function patchFeatures(response) {
|
|
4897
|
-
if (response.type !== 'Features') {
|
|
4898
|
-
return response;
|
|
4899
|
-
}
|
|
4900
|
-
|
|
4901
|
-
if (response.message.major_version < 1) {
|
|
4902
|
-
response.message.major_version = 1;
|
|
4903
|
-
}
|
|
4904
|
-
|
|
4905
|
-
return response;
|
|
4906
|
-
}
|
|
4907
|
-
|
|
4908
|
-
const getDeviceModel = features => {
|
|
4909
|
-
if (!features || typeof features !== 'object') {
|
|
4910
|
-
return 'model_mini';
|
|
4911
|
-
}
|
|
4912
|
-
|
|
4913
|
-
if (features.model === '1') {
|
|
4914
|
-
return 'model_mini';
|
|
4915
|
-
}
|
|
4916
|
-
|
|
4917
|
-
return 'model_touch';
|
|
4918
|
-
};
|
|
4919
|
-
|
|
4920
|
-
const getDeviceType = features => {
|
|
4921
|
-
if (!features || typeof features !== 'object' || !features.serial_no) {
|
|
4922
|
-
return 'classic';
|
|
4923
|
-
}
|
|
4924
|
-
|
|
4925
|
-
const serialNo = features.serial_no;
|
|
4926
|
-
const miniFlag = serialNo.slice(0, 2);
|
|
4927
|
-
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
4928
|
-
if (miniFlag.toLowerCase() === 'tc') return 'touch';
|
|
4929
|
-
return 'classic';
|
|
4930
|
-
};
|
|
4931
|
-
|
|
4932
|
-
const getDeviceTypeOnBootloader = features => {
|
|
4933
|
-
if (!features || typeof features !== 'object') {
|
|
4934
|
-
return 'classic';
|
|
4935
|
-
}
|
|
4936
|
-
|
|
4937
|
-
if (features.model === 'T') {
|
|
4938
|
-
return 'touch';
|
|
4939
|
-
}
|
|
4940
|
-
|
|
4941
|
-
return getDeviceType(features);
|
|
4942
|
-
};
|
|
4943
|
-
|
|
4944
|
-
const getDeviceTypeByBleName = name => {
|
|
4945
|
-
if (!name) return 'classic';
|
|
4946
|
-
if (name.startsWith('MI')) return 'mini';
|
|
4947
|
-
if (name.startsWith('T')) return 'touch';
|
|
4948
|
-
return 'classic';
|
|
4949
|
-
};
|
|
4950
|
-
|
|
4951
|
-
const getDeviceTypeByDeviceId = deviceId => {
|
|
4952
|
-
if (!deviceId) {
|
|
4953
|
-
return 'classic';
|
|
4954
|
-
}
|
|
4955
|
-
|
|
4956
|
-
const miniFlag = deviceId.slice(0, 2);
|
|
4957
|
-
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
4958
|
-
return 'classic';
|
|
4959
|
-
};
|
|
4960
|
-
|
|
4961
|
-
const getDeviceUUID = features => {
|
|
4962
|
-
const deviceType = getDeviceType(features);
|
|
4963
|
-
|
|
4964
|
-
if (deviceType === 'classic') {
|
|
4965
|
-
return features.onekey_serial;
|
|
4966
|
-
}
|
|
4967
|
-
|
|
4968
|
-
return features.serial_no;
|
|
4969
|
-
};
|
|
4970
|
-
|
|
4971
|
-
const getDeviceLabel = features => {
|
|
4972
|
-
const deviceType = getDeviceType(features);
|
|
4973
|
-
|
|
4974
|
-
if (typeof features.label === 'string') {
|
|
4975
|
-
return features.label;
|
|
4976
|
-
}
|
|
4977
|
-
|
|
4978
|
-
return `My OneKey ${deviceType.charAt(0).toUpperCase() + deviceType.slice(1)}`;
|
|
4979
|
-
};
|
|
4980
|
-
|
|
4981
|
-
const getDeviceFirmwareVersion = features => {
|
|
4982
|
-
if (!features) return [0, 0, 0];
|
|
4983
|
-
|
|
4984
|
-
if (features.onekey_version) {
|
|
4985
|
-
return features.onekey_version.split('.');
|
|
4986
|
-
}
|
|
4987
|
-
|
|
4988
|
-
return [features.major_version, features.minor_version, features.patch_version];
|
|
4989
|
-
};
|
|
4990
|
-
|
|
4991
|
-
const getDeviceBLEFirmwareVersion = features => {
|
|
4992
|
-
if (!features.ble_ver) {
|
|
4993
|
-
return null;
|
|
4994
|
-
}
|
|
4995
|
-
|
|
4996
|
-
return features.ble_ver.split('.');
|
|
4997
|
-
};
|
|
4998
|
-
|
|
4999
|
-
const HD_HARDENED = 0x80000000;
|
|
5000
|
-
|
|
5001
|
-
const toHardened = n => (n | HD_HARDENED) >>> 0;
|
|
5002
|
-
|
|
5003
|
-
const fromHardened = n => (n & ~HD_HARDENED) >>> 0;
|
|
5004
|
-
|
|
5005
|
-
const PATH_NOT_VALID = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Not a valid path');
|
|
5006
|
-
const PATH_NEGATIVE_VALUES = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Path cannot contain negative values');
|
|
5007
|
-
|
|
5008
|
-
const getHDPath = path => {
|
|
5009
|
-
const parts = path.toLowerCase().split('/');
|
|
5010
|
-
if (parts[0] !== 'm') throw PATH_NOT_VALID;
|
|
5011
|
-
return parts.filter(p => p !== 'm' && p !== '').map(p => {
|
|
5012
|
-
let hardened = false;
|
|
5013
|
-
|
|
5014
|
-
if (p.substr(p.length - 1) === "'") {
|
|
5015
|
-
hardened = true;
|
|
5016
|
-
p = p.substr(0, p.length - 1);
|
|
5017
|
-
}
|
|
5018
|
-
|
|
5019
|
-
let n = parseInt(p);
|
|
5020
|
-
|
|
5021
|
-
if (Number.isNaN(n)) {
|
|
5022
|
-
throw PATH_NOT_VALID;
|
|
5023
|
-
} else if (n < 0) {
|
|
5024
|
-
throw PATH_NEGATIVE_VALUES;
|
|
5025
|
-
}
|
|
5026
|
-
|
|
5027
|
-
if (hardened) {
|
|
5028
|
-
n = toHardened(n);
|
|
5029
|
-
}
|
|
5030
|
-
|
|
5031
|
-
return n;
|
|
5032
|
-
});
|
|
5033
|
-
};
|
|
5034
|
-
|
|
5035
|
-
const isMultisigPath = path => Array.isArray(path) && path[0] === toHardened(48);
|
|
5036
|
-
|
|
5037
|
-
const isSegwitPath = path => Array.isArray(path) && path[0] === toHardened(49);
|
|
5038
|
-
|
|
5039
|
-
const getScriptType = path => {
|
|
5040
|
-
if (!Array.isArray(path) || path.length < 1) return 'SPENDADDRESS';
|
|
5041
|
-
const p1 = fromHardened(path[0]);
|
|
5042
|
-
|
|
5043
|
-
switch (p1) {
|
|
5044
|
-
case 48:
|
|
5045
|
-
return 'SPENDMULTISIG';
|
|
5046
|
-
|
|
5047
|
-
case 49:
|
|
5048
|
-
return 'SPENDP2SHWITNESS';
|
|
5049
|
-
|
|
5050
|
-
case 84:
|
|
5051
|
-
return 'SPENDWITNESS';
|
|
5052
|
-
|
|
5053
|
-
default:
|
|
5054
|
-
return 'SPENDADDRESS';
|
|
5055
|
-
}
|
|
5056
|
-
};
|
|
5057
|
-
|
|
5058
|
-
const getOutputScriptType = path => {
|
|
5059
|
-
if (!Array.isArray(path) || path.length < 1) return 'PAYTOADDRESS';
|
|
5060
|
-
|
|
5061
|
-
if (path[0] === 49) {
|
|
5062
|
-
return 'PAYTOP2SHWITNESS';
|
|
5063
|
-
}
|
|
5064
|
-
|
|
5065
|
-
const p = fromHardened(path[0]);
|
|
5066
|
-
|
|
5067
|
-
switch (p) {
|
|
5068
|
-
case 48:
|
|
5069
|
-
return 'PAYTOMULTISIG';
|
|
5070
|
-
|
|
5071
|
-
case 49:
|
|
5072
|
-
return 'PAYTOP2SHWITNESS';
|
|
5073
|
-
|
|
5074
|
-
case 84:
|
|
5075
|
-
return 'PAYTOWITNESS';
|
|
5076
|
-
|
|
5077
|
-
default:
|
|
5078
|
-
return 'PAYTOADDRESS';
|
|
5079
|
-
}
|
|
5080
|
-
};
|
|
5081
|
-
|
|
5082
|
-
const serializedPath = path => {
|
|
5083
|
-
const pathStr = path.map(p => {
|
|
5084
|
-
if (p & HD_HARDENED) {
|
|
5085
|
-
return `${p & ~HD_HARDENED}'`;
|
|
5086
|
-
}
|
|
5087
|
-
|
|
5088
|
-
return p;
|
|
5089
|
-
}).join('/');
|
|
5090
|
-
return `m/${pathStr}`;
|
|
5091
|
-
};
|
|
5092
|
-
|
|
5093
|
-
const validatePath = (path, length = 0, base = false) => {
|
|
5094
|
-
let valid;
|
|
5095
|
-
|
|
5096
|
-
if (typeof path === 'string') {
|
|
5097
|
-
valid = getHDPath(path);
|
|
5098
|
-
} else if (Array.isArray(path)) {
|
|
5099
|
-
valid = path.map(p => {
|
|
5100
|
-
const n = parseInt(p);
|
|
5101
|
-
|
|
5102
|
-
if (Number.isNaN(n)) {
|
|
5103
|
-
throw PATH_NOT_VALID;
|
|
5104
|
-
} else if (n < 0) {
|
|
5105
|
-
throw PATH_NEGATIVE_VALUES;
|
|
5106
|
-
}
|
|
5107
|
-
|
|
5108
|
-
return n;
|
|
5109
|
-
});
|
|
5110
|
-
} else {
|
|
5111
|
-
valid = undefined;
|
|
5112
|
-
}
|
|
5113
|
-
|
|
5114
|
-
if (!valid) throw PATH_NOT_VALID;
|
|
5115
|
-
if (length > 0 && valid.length < length) throw PATH_NOT_VALID;
|
|
5116
|
-
return base ? valid.splice(0, 3) : valid;
|
|
5117
|
-
};
|
|
5118
|
-
|
|
5119
4815
|
var nested = {
|
|
5120
4816
|
BinanceGetAddress: {
|
|
5121
4817
|
fields: {
|
|
@@ -13776,6 +13472,513 @@ var MessagesJSON = {
|
|
|
13776
13472
|
nested: nested
|
|
13777
13473
|
};
|
|
13778
13474
|
|
|
13475
|
+
const httpRequest$1 = (url, type = 'text') => __awaiter(void 0, void 0, void 0, function* () {
|
|
13476
|
+
const response = yield axios__default["default"].request({
|
|
13477
|
+
url,
|
|
13478
|
+
withCredentials: false,
|
|
13479
|
+
responseType: type === 'binary' ? 'arraybuffer' : 'json'
|
|
13480
|
+
});
|
|
13481
|
+
|
|
13482
|
+
if (+response.status === 200) {
|
|
13483
|
+
if (type === 'json') {
|
|
13484
|
+
return response.data;
|
|
13485
|
+
}
|
|
13486
|
+
|
|
13487
|
+
if (type === 'binary') {
|
|
13488
|
+
return response.data;
|
|
13489
|
+
}
|
|
13490
|
+
|
|
13491
|
+
return response.data;
|
|
13492
|
+
}
|
|
13493
|
+
|
|
13494
|
+
throw new Error(`httpRequest error: ${url} ${response.statusText}`);
|
|
13495
|
+
});
|
|
13496
|
+
|
|
13497
|
+
const httpRequest = (url, type) => httpRequest$1(url, type);
|
|
13498
|
+
|
|
13499
|
+
const getTimeStamp = () => new Date().getTime();
|
|
13500
|
+
|
|
13501
|
+
const VER_NUMS = 3;
|
|
13502
|
+
const versionRegex = new RegExp(/^[0-9]{1,3}(\.[0-9]{1,3}){0,2}$/);
|
|
13503
|
+
|
|
13504
|
+
const isValidVersionString = version => versionRegex.test(version);
|
|
13505
|
+
|
|
13506
|
+
const isValidVersionArray = version => {
|
|
13507
|
+
if (!Array.isArray(version)) {
|
|
13508
|
+
return false;
|
|
13509
|
+
}
|
|
13510
|
+
|
|
13511
|
+
if (version.length === 0 || version.length > VER_NUMS) {
|
|
13512
|
+
return false;
|
|
13513
|
+
}
|
|
13514
|
+
|
|
13515
|
+
if (version[0] === 0) {
|
|
13516
|
+
return false;
|
|
13517
|
+
}
|
|
13518
|
+
|
|
13519
|
+
for (let i = 0; i < version.length; i++) {
|
|
13520
|
+
if (typeof version[i] !== 'number' || version[i] < 0) {
|
|
13521
|
+
return false;
|
|
13522
|
+
}
|
|
13523
|
+
}
|
|
13524
|
+
|
|
13525
|
+
return true;
|
|
13526
|
+
};
|
|
13527
|
+
|
|
13528
|
+
const normalizeVersionArray = version => {
|
|
13529
|
+
if (version.length === VER_NUMS) {
|
|
13530
|
+
return version;
|
|
13531
|
+
}
|
|
13532
|
+
|
|
13533
|
+
const partialVersion = [...version];
|
|
13534
|
+
|
|
13535
|
+
for (let i = version.length; i < VER_NUMS; i++) {
|
|
13536
|
+
partialVersion.push(0);
|
|
13537
|
+
}
|
|
13538
|
+
|
|
13539
|
+
return partialVersion;
|
|
13540
|
+
};
|
|
13541
|
+
|
|
13542
|
+
const versionSplit = version => {
|
|
13543
|
+
if (!isValidVersionString(version)) {
|
|
13544
|
+
return [0, 0, 0];
|
|
13545
|
+
}
|
|
13546
|
+
|
|
13547
|
+
return version.split('.').map(v => Number(v));
|
|
13548
|
+
};
|
|
13549
|
+
|
|
13550
|
+
const versionCompare = (a, b) => {
|
|
13551
|
+
if (typeof a === 'string' && typeof b === 'string' && a === b) {
|
|
13552
|
+
return 0;
|
|
13553
|
+
}
|
|
13554
|
+
|
|
13555
|
+
const pa = typeof a === 'string' ? versionSplit(a) : a;
|
|
13556
|
+
const pb = typeof b === 'string' ? versionSplit(b) : b;
|
|
13557
|
+
const vpa = isValidVersionArray(pa);
|
|
13558
|
+
const vpb = isValidVersionArray(pb);
|
|
13559
|
+
|
|
13560
|
+
if (!vpa && !vpb) {
|
|
13561
|
+
return 0;
|
|
13562
|
+
}
|
|
13563
|
+
|
|
13564
|
+
if (!vpa && vpb) {
|
|
13565
|
+
return -1;
|
|
13566
|
+
}
|
|
13567
|
+
|
|
13568
|
+
if (vpa && !vpb) {
|
|
13569
|
+
return 1;
|
|
13570
|
+
}
|
|
13571
|
+
|
|
13572
|
+
const npa = normalizeVersionArray(pa);
|
|
13573
|
+
const npb = normalizeVersionArray(pb);
|
|
13574
|
+
|
|
13575
|
+
for (let i = 0; i < VER_NUMS; i++) {
|
|
13576
|
+
if (npa[i] > npb[i]) return 1;
|
|
13577
|
+
if (npb[i] > npa[i]) return -1;
|
|
13578
|
+
}
|
|
13579
|
+
|
|
13580
|
+
return 0;
|
|
13581
|
+
};
|
|
13582
|
+
|
|
13583
|
+
function patchFeatures(response) {
|
|
13584
|
+
if (response.type !== 'Features') {
|
|
13585
|
+
return response;
|
|
13586
|
+
}
|
|
13587
|
+
|
|
13588
|
+
if (response.message.major_version < 1) {
|
|
13589
|
+
response.message.major_version = 1;
|
|
13590
|
+
}
|
|
13591
|
+
|
|
13592
|
+
return response;
|
|
13593
|
+
}
|
|
13594
|
+
|
|
13595
|
+
const getDeviceModel = features => {
|
|
13596
|
+
if (!features || typeof features !== 'object') {
|
|
13597
|
+
return 'model_mini';
|
|
13598
|
+
}
|
|
13599
|
+
|
|
13600
|
+
if (features.model === '1') {
|
|
13601
|
+
return 'model_mini';
|
|
13602
|
+
}
|
|
13603
|
+
|
|
13604
|
+
return 'model_touch';
|
|
13605
|
+
};
|
|
13606
|
+
|
|
13607
|
+
const getDeviceType = features => {
|
|
13608
|
+
if (!features || typeof features !== 'object' || !features.serial_no) {
|
|
13609
|
+
return 'classic';
|
|
13610
|
+
}
|
|
13611
|
+
|
|
13612
|
+
const serialNo = features.serial_no;
|
|
13613
|
+
const miniFlag = serialNo.slice(0, 2);
|
|
13614
|
+
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
13615
|
+
if (miniFlag.toLowerCase() === 'tc') return 'touch';
|
|
13616
|
+
return 'classic';
|
|
13617
|
+
};
|
|
13618
|
+
|
|
13619
|
+
const getDeviceTypeOnBootloader = features => getDeviceType(features);
|
|
13620
|
+
|
|
13621
|
+
const getDeviceTypeByBleName = name => {
|
|
13622
|
+
if (!name) return 'classic';
|
|
13623
|
+
if (name.startsWith('MI')) return 'mini';
|
|
13624
|
+
if (name.startsWith('T')) return 'touch';
|
|
13625
|
+
return 'classic';
|
|
13626
|
+
};
|
|
13627
|
+
|
|
13628
|
+
const getDeviceTypeByDeviceId = deviceId => {
|
|
13629
|
+
if (!deviceId) {
|
|
13630
|
+
return 'classic';
|
|
13631
|
+
}
|
|
13632
|
+
|
|
13633
|
+
const miniFlag = deviceId.slice(0, 2);
|
|
13634
|
+
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
13635
|
+
return 'classic';
|
|
13636
|
+
};
|
|
13637
|
+
|
|
13638
|
+
const getDeviceUUID = features => {
|
|
13639
|
+
const deviceType = getDeviceType(features);
|
|
13640
|
+
|
|
13641
|
+
if (deviceType === 'classic') {
|
|
13642
|
+
return features.onekey_serial;
|
|
13643
|
+
}
|
|
13644
|
+
|
|
13645
|
+
return features.serial_no;
|
|
13646
|
+
};
|
|
13647
|
+
|
|
13648
|
+
const getDeviceLabel = features => {
|
|
13649
|
+
const deviceType = getDeviceType(features);
|
|
13650
|
+
|
|
13651
|
+
if (typeof features.label === 'string') {
|
|
13652
|
+
return features.label;
|
|
13653
|
+
}
|
|
13654
|
+
|
|
13655
|
+
return `My OneKey ${deviceType.charAt(0).toUpperCase() + deviceType.slice(1)}`;
|
|
13656
|
+
};
|
|
13657
|
+
|
|
13658
|
+
const getDeviceFirmwareVersion = features => {
|
|
13659
|
+
if (!features) return [0, 0, 0];
|
|
13660
|
+
|
|
13661
|
+
if (features.onekey_version) {
|
|
13662
|
+
return features.onekey_version.split('.');
|
|
13663
|
+
}
|
|
13664
|
+
|
|
13665
|
+
return [features.major_version, features.minor_version, features.patch_version];
|
|
13666
|
+
};
|
|
13667
|
+
|
|
13668
|
+
const getDeviceBLEFirmwareVersion = features => {
|
|
13669
|
+
if (!features.ble_ver) {
|
|
13670
|
+
return null;
|
|
13671
|
+
}
|
|
13672
|
+
|
|
13673
|
+
return features.ble_ver.split('.');
|
|
13674
|
+
};
|
|
13675
|
+
|
|
13676
|
+
const HD_HARDENED = 0x80000000;
|
|
13677
|
+
|
|
13678
|
+
const toHardened = n => (n | HD_HARDENED) >>> 0;
|
|
13679
|
+
|
|
13680
|
+
const fromHardened = n => (n & ~HD_HARDENED) >>> 0;
|
|
13681
|
+
|
|
13682
|
+
const PATH_NOT_VALID = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Not a valid path');
|
|
13683
|
+
const PATH_NEGATIVE_VALUES = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Path cannot contain negative values');
|
|
13684
|
+
|
|
13685
|
+
const getHDPath = path => {
|
|
13686
|
+
const parts = path.toLowerCase().split('/');
|
|
13687
|
+
if (parts[0] !== 'm') throw PATH_NOT_VALID;
|
|
13688
|
+
return parts.filter(p => p !== 'm' && p !== '').map(p => {
|
|
13689
|
+
let hardened = false;
|
|
13690
|
+
|
|
13691
|
+
if (p.substr(p.length - 1) === "'") {
|
|
13692
|
+
hardened = true;
|
|
13693
|
+
p = p.substr(0, p.length - 1);
|
|
13694
|
+
}
|
|
13695
|
+
|
|
13696
|
+
let n = parseInt(p);
|
|
13697
|
+
|
|
13698
|
+
if (Number.isNaN(n)) {
|
|
13699
|
+
throw PATH_NOT_VALID;
|
|
13700
|
+
} else if (n < 0) {
|
|
13701
|
+
throw PATH_NEGATIVE_VALUES;
|
|
13702
|
+
}
|
|
13703
|
+
|
|
13704
|
+
if (hardened) {
|
|
13705
|
+
n = toHardened(n);
|
|
13706
|
+
}
|
|
13707
|
+
|
|
13708
|
+
return n;
|
|
13709
|
+
});
|
|
13710
|
+
};
|
|
13711
|
+
|
|
13712
|
+
const isMultisigPath = path => Array.isArray(path) && path[0] === toHardened(48);
|
|
13713
|
+
|
|
13714
|
+
const isSegwitPath = path => Array.isArray(path) && path[0] === toHardened(49);
|
|
13715
|
+
|
|
13716
|
+
const getScriptType = path => {
|
|
13717
|
+
if (!Array.isArray(path) || path.length < 1) return 'SPENDADDRESS';
|
|
13718
|
+
const p1 = fromHardened(path[0]);
|
|
13719
|
+
|
|
13720
|
+
switch (p1) {
|
|
13721
|
+
case 48:
|
|
13722
|
+
return 'SPENDMULTISIG';
|
|
13723
|
+
|
|
13724
|
+
case 49:
|
|
13725
|
+
return 'SPENDP2SHWITNESS';
|
|
13726
|
+
|
|
13727
|
+
case 84:
|
|
13728
|
+
return 'SPENDWITNESS';
|
|
13729
|
+
|
|
13730
|
+
default:
|
|
13731
|
+
return 'SPENDADDRESS';
|
|
13732
|
+
}
|
|
13733
|
+
};
|
|
13734
|
+
|
|
13735
|
+
const getOutputScriptType = path => {
|
|
13736
|
+
if (!Array.isArray(path) || path.length < 1) return 'PAYTOADDRESS';
|
|
13737
|
+
|
|
13738
|
+
if (path[0] === 49) {
|
|
13739
|
+
return 'PAYTOP2SHWITNESS';
|
|
13740
|
+
}
|
|
13741
|
+
|
|
13742
|
+
const p = fromHardened(path[0]);
|
|
13743
|
+
|
|
13744
|
+
switch (p) {
|
|
13745
|
+
case 48:
|
|
13746
|
+
return 'PAYTOMULTISIG';
|
|
13747
|
+
|
|
13748
|
+
case 49:
|
|
13749
|
+
return 'PAYTOP2SHWITNESS';
|
|
13750
|
+
|
|
13751
|
+
case 84:
|
|
13752
|
+
return 'PAYTOWITNESS';
|
|
13753
|
+
|
|
13754
|
+
default:
|
|
13755
|
+
return 'PAYTOADDRESS';
|
|
13756
|
+
}
|
|
13757
|
+
};
|
|
13758
|
+
|
|
13759
|
+
const serializedPath = path => {
|
|
13760
|
+
const pathStr = path.map(p => {
|
|
13761
|
+
if (p & HD_HARDENED) {
|
|
13762
|
+
return `${p & ~HD_HARDENED}'`;
|
|
13763
|
+
}
|
|
13764
|
+
|
|
13765
|
+
return p;
|
|
13766
|
+
}).join('/');
|
|
13767
|
+
return `m/${pathStr}`;
|
|
13768
|
+
};
|
|
13769
|
+
|
|
13770
|
+
const validatePath = (path, length = 0, base = false) => {
|
|
13771
|
+
let valid;
|
|
13772
|
+
|
|
13773
|
+
if (typeof path === 'string') {
|
|
13774
|
+
valid = getHDPath(path);
|
|
13775
|
+
} else if (Array.isArray(path)) {
|
|
13776
|
+
valid = path.map(p => {
|
|
13777
|
+
const n = parseInt(p);
|
|
13778
|
+
|
|
13779
|
+
if (Number.isNaN(n)) {
|
|
13780
|
+
throw PATH_NOT_VALID;
|
|
13781
|
+
} else if (n < 0) {
|
|
13782
|
+
throw PATH_NEGATIVE_VALUES;
|
|
13783
|
+
}
|
|
13784
|
+
|
|
13785
|
+
return n;
|
|
13786
|
+
});
|
|
13787
|
+
} else {
|
|
13788
|
+
valid = undefined;
|
|
13789
|
+
}
|
|
13790
|
+
|
|
13791
|
+
if (!valid) throw PATH_NOT_VALID;
|
|
13792
|
+
if (length > 0 && valid.length < length) throw PATH_NOT_VALID;
|
|
13793
|
+
return base ? valid.splice(0, 3) : valid;
|
|
13794
|
+
};
|
|
13795
|
+
|
|
13796
|
+
const LOG_EVENT = 'LOG_EVENT';
|
|
13797
|
+
const LOG = {
|
|
13798
|
+
OUTPUT: 'log-output'
|
|
13799
|
+
};
|
|
13800
|
+
|
|
13801
|
+
const createLogMessage = (type, payload) => ({
|
|
13802
|
+
event: LOG_EVENT,
|
|
13803
|
+
type,
|
|
13804
|
+
payload
|
|
13805
|
+
});
|
|
13806
|
+
|
|
13807
|
+
const MAX_ENTRIES = 500;
|
|
13808
|
+
let postMessage$1;
|
|
13809
|
+
|
|
13810
|
+
class Log$6 {
|
|
13811
|
+
constructor(prefix, enabled) {
|
|
13812
|
+
this.prefix = prefix;
|
|
13813
|
+
this.enabled = enabled;
|
|
13814
|
+
this.messages = [];
|
|
13815
|
+
}
|
|
13816
|
+
|
|
13817
|
+
addMessage(level, prefix, ...args) {
|
|
13818
|
+
this.messages.push({
|
|
13819
|
+
level,
|
|
13820
|
+
prefix,
|
|
13821
|
+
message: args,
|
|
13822
|
+
timestamp: new Date().getTime()
|
|
13823
|
+
});
|
|
13824
|
+
|
|
13825
|
+
if (this.messages.length > MAX_ENTRIES) {
|
|
13826
|
+
this.messages.shift();
|
|
13827
|
+
}
|
|
13828
|
+
}
|
|
13829
|
+
|
|
13830
|
+
log(...args) {
|
|
13831
|
+
this.addMessage('log', this.prefix, ...args);
|
|
13832
|
+
sendLogMessage(this.prefix, ...args);
|
|
13833
|
+
|
|
13834
|
+
if (!this.enabled) {
|
|
13835
|
+
return;
|
|
13836
|
+
}
|
|
13837
|
+
|
|
13838
|
+
console.log(this.prefix, ...args);
|
|
13839
|
+
}
|
|
13840
|
+
|
|
13841
|
+
error(...args) {
|
|
13842
|
+
this.addMessage('error', this.prefix, ...args);
|
|
13843
|
+
sendLogMessage(this.prefix, ...args);
|
|
13844
|
+
|
|
13845
|
+
if (!this.enabled) {
|
|
13846
|
+
return;
|
|
13847
|
+
}
|
|
13848
|
+
|
|
13849
|
+
console.error(this.prefix, ...args);
|
|
13850
|
+
}
|
|
13851
|
+
|
|
13852
|
+
warn(...args) {
|
|
13853
|
+
this.addMessage('warn', this.prefix, ...args);
|
|
13854
|
+
sendLogMessage(this.prefix, ...args);
|
|
13855
|
+
|
|
13856
|
+
if (!this.enabled) {
|
|
13857
|
+
return;
|
|
13858
|
+
}
|
|
13859
|
+
|
|
13860
|
+
console.warn(this.prefix, ...args);
|
|
13861
|
+
}
|
|
13862
|
+
|
|
13863
|
+
debug(...args) {
|
|
13864
|
+
this.addMessage('debug', this.prefix, ...args);
|
|
13865
|
+
sendLogMessage(this.prefix, ...args);
|
|
13866
|
+
|
|
13867
|
+
if (!this.enabled) {
|
|
13868
|
+
return;
|
|
13869
|
+
}
|
|
13870
|
+
|
|
13871
|
+
console.log(this.prefix, ...args);
|
|
13872
|
+
}
|
|
13873
|
+
|
|
13874
|
+
}
|
|
13875
|
+
|
|
13876
|
+
const _logs = {};
|
|
13877
|
+
|
|
13878
|
+
const initLog = (prefix, enabled) => {
|
|
13879
|
+
const instance = new Log$6(prefix, !!enabled);
|
|
13880
|
+
_logs[prefix] = instance;
|
|
13881
|
+
return instance;
|
|
13882
|
+
};
|
|
13883
|
+
|
|
13884
|
+
const enableLog = enabled => {
|
|
13885
|
+
Object.keys(_logs).forEach(key => {
|
|
13886
|
+
_logs[key].enabled = !!enabled;
|
|
13887
|
+
});
|
|
13888
|
+
};
|
|
13889
|
+
|
|
13890
|
+
const getLog = () => {
|
|
13891
|
+
let logs = [];
|
|
13892
|
+
Object.keys(_logs).forEach(key => {
|
|
13893
|
+
logs = logs.concat(_logs[key].messages);
|
|
13894
|
+
});
|
|
13895
|
+
logs.sort((a, b) => a.timestamp - b.timestamp);
|
|
13896
|
+
return logs;
|
|
13897
|
+
};
|
|
13898
|
+
|
|
13899
|
+
const setLoggerPostMessage = postMessageFn => {
|
|
13900
|
+
postMessage$1 = postMessageFn;
|
|
13901
|
+
};
|
|
13902
|
+
|
|
13903
|
+
const serializeLog = (...args) => args.map(arg => {
|
|
13904
|
+
if (typeof arg === 'string') {
|
|
13905
|
+
return arg;
|
|
13906
|
+
}
|
|
13907
|
+
|
|
13908
|
+
if (typeof arg === 'number') {
|
|
13909
|
+
return arg;
|
|
13910
|
+
}
|
|
13911
|
+
|
|
13912
|
+
if (typeof arg === 'boolean') {
|
|
13913
|
+
return arg;
|
|
13914
|
+
}
|
|
13915
|
+
|
|
13916
|
+
if (typeof arg === 'undefined') {
|
|
13917
|
+
return arg;
|
|
13918
|
+
}
|
|
13919
|
+
|
|
13920
|
+
if (typeof arg === 'object') {
|
|
13921
|
+
return JSON.stringify(arg, getCircularReplacer());
|
|
13922
|
+
}
|
|
13923
|
+
|
|
13924
|
+
return arg;
|
|
13925
|
+
});
|
|
13926
|
+
|
|
13927
|
+
const getCircularReplacer = () => {
|
|
13928
|
+
const seen = new WeakSet();
|
|
13929
|
+
return (_, value) => {
|
|
13930
|
+
if (typeof value === 'object' && value !== null) {
|
|
13931
|
+
if (seen.has(value)) {
|
|
13932
|
+
return;
|
|
13933
|
+
}
|
|
13934
|
+
|
|
13935
|
+
seen.add(value);
|
|
13936
|
+
}
|
|
13937
|
+
|
|
13938
|
+
return value;
|
|
13939
|
+
};
|
|
13940
|
+
};
|
|
13941
|
+
|
|
13942
|
+
const sendLogMessage = (prefix, ...args) => {
|
|
13943
|
+
postMessage$1 === null || postMessage$1 === void 0 ? void 0 : postMessage$1(createLogMessage(LOG.OUTPUT, serializeLog(prefix, ...args)));
|
|
13944
|
+
};
|
|
13945
|
+
|
|
13946
|
+
exports.d0 = void 0;
|
|
13947
|
+
|
|
13948
|
+
(function (LoggerNames) {
|
|
13949
|
+
LoggerNames["Core"] = "Core";
|
|
13950
|
+
LoggerNames["Transport"] = "Transport";
|
|
13951
|
+
LoggerNames["Device"] = "Device";
|
|
13952
|
+
LoggerNames["DeviceCommands"] = "DeviceCommands";
|
|
13953
|
+
LoggerNames["DeviceConnector"] = "DeviceConnector";
|
|
13954
|
+
LoggerNames["DeviceList"] = "DeviceList";
|
|
13955
|
+
LoggerNames["HdBleSdk"] = "@onekey/hd-ble-sdk";
|
|
13956
|
+
LoggerNames["HdTransportHttp"] = "@onekey/hd-transport-http";
|
|
13957
|
+
LoggerNames["HdBleTransport"] = "@onekey/hd-ble-transport";
|
|
13958
|
+
LoggerNames["Connect"] = "@onekey/connect";
|
|
13959
|
+
LoggerNames["Iframe"] = "IFrame";
|
|
13960
|
+
LoggerNames["SendMessage"] = "[SendMessage]";
|
|
13961
|
+
LoggerNames["Method"] = "[Method]";
|
|
13962
|
+
})(exports.d0 || (exports.d0 = {}));
|
|
13963
|
+
|
|
13964
|
+
const LoggerMap = {
|
|
13965
|
+
[exports.d0.Core]: initLog(exports.d0.Core),
|
|
13966
|
+
[exports.d0.Transport]: initLog(exports.d0.Transport),
|
|
13967
|
+
[exports.d0.Device]: initLog(exports.d0.Device),
|
|
13968
|
+
[exports.d0.DeviceCommands]: initLog(exports.d0.DeviceCommands),
|
|
13969
|
+
[exports.d0.DeviceConnector]: initLog(exports.d0.DeviceConnector),
|
|
13970
|
+
[exports.d0.DeviceList]: initLog(exports.d0.DeviceList),
|
|
13971
|
+
[exports.d0.HdBleSdk]: initLog(exports.d0.HdBleSdk),
|
|
13972
|
+
[exports.d0.HdTransportHttp]: initLog(exports.d0.HdTransportHttp),
|
|
13973
|
+
[exports.d0.HdBleTransport]: initLog(exports.d0.HdBleTransport),
|
|
13974
|
+
[exports.d0.Connect]: initLog(exports.d0.Connect),
|
|
13975
|
+
[exports.d0.Iframe]: initLog(exports.d0.Iframe),
|
|
13976
|
+
[exports.d0.SendMessage]: initLog(exports.d0.SendMessage),
|
|
13977
|
+
[exports.d0.Method]: initLog(exports.d0.Method)
|
|
13978
|
+
};
|
|
13979
|
+
|
|
13980
|
+
const getLogger = key => LoggerMap[key];
|
|
13981
|
+
|
|
13779
13982
|
const getReleaseStatus = (releases, currentVersion) => {
|
|
13780
13983
|
const newVersions = releases.filter(r => semver__default["default"].gt(r.version.join('.'), currentVersion));
|
|
13781
13984
|
|
|
@@ -13948,11 +14151,13 @@ DataManager.getTransportStatus = localVersion => {
|
|
|
13948
14151
|
return isLatest ? 'valid' : 'outdated';
|
|
13949
14152
|
};
|
|
13950
14153
|
|
|
13951
|
-
const Log$5 =
|
|
14154
|
+
const Log$5 = getLogger(exports.d0.Transport);
|
|
14155
|
+
const BleLogger = getLogger(exports.d0.HdBleTransport);
|
|
14156
|
+
const HttpLogger = getLogger(exports.d0.HdTransportHttp);
|
|
13952
14157
|
|
|
13953
14158
|
class TransportManager {
|
|
13954
14159
|
static load() {
|
|
13955
|
-
|
|
14160
|
+
Log$5.debug('transport manager load');
|
|
13956
14161
|
this.defaultMessages = DataManager.getProtobufMessages();
|
|
13957
14162
|
this.currentMessages = this.defaultMessages;
|
|
13958
14163
|
}
|
|
@@ -13965,13 +14170,13 @@ class TransportManager {
|
|
|
13965
14170
|
|
|
13966
14171
|
if (env === 'react-native') {
|
|
13967
14172
|
if (!this.reactNativeInit) {
|
|
13968
|
-
yield this.transport.init();
|
|
14173
|
+
yield this.transport.init(BleLogger);
|
|
13969
14174
|
this.reactNativeInit = true;
|
|
13970
14175
|
} else {
|
|
13971
14176
|
Log$5.debug('React Native Do Not Initializing transports');
|
|
13972
14177
|
}
|
|
13973
14178
|
} else {
|
|
13974
|
-
yield this.transport.init();
|
|
14179
|
+
yield this.transport.init(HttpLogger);
|
|
13975
14180
|
}
|
|
13976
14181
|
|
|
13977
14182
|
Log$5.debug('Configuring transports');
|
|
@@ -14017,7 +14222,7 @@ class TransportManager {
|
|
|
14017
14222
|
this.transport = new TransportConstructor();
|
|
14018
14223
|
}
|
|
14019
14224
|
|
|
14020
|
-
|
|
14225
|
+
Log$5.debug('set transport: ', this.transport);
|
|
14021
14226
|
}
|
|
14022
14227
|
|
|
14023
14228
|
static getTransport() {
|
|
@@ -14154,6 +14359,18 @@ const createDeviceMessage = (type, payload) => ({
|
|
|
14154
14359
|
payload
|
|
14155
14360
|
});
|
|
14156
14361
|
|
|
14362
|
+
const FIRMWARE_EVENT = 'FIRMWARE_EVENT';
|
|
14363
|
+
const FIRMWARE = {
|
|
14364
|
+
RELEASE_INFO: 'firmware-release-info',
|
|
14365
|
+
BLE_RELEASE_INFO: 'ble-firmware-release-info'
|
|
14366
|
+
};
|
|
14367
|
+
|
|
14368
|
+
const createFirmwareMessage = (type, payload) => ({
|
|
14369
|
+
event: FIRMWARE_EVENT,
|
|
14370
|
+
type,
|
|
14371
|
+
payload
|
|
14372
|
+
});
|
|
14373
|
+
|
|
14157
14374
|
const assertType = (res, resType) => {
|
|
14158
14375
|
const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');
|
|
14159
14376
|
|
|
@@ -14162,7 +14379,7 @@ const assertType = (res, resType) => {
|
|
|
14162
14379
|
}
|
|
14163
14380
|
};
|
|
14164
14381
|
|
|
14165
|
-
const Log$4 =
|
|
14382
|
+
const Log$4 = getLogger(exports.d0.DeviceCommands);
|
|
14166
14383
|
|
|
14167
14384
|
class DeviceCommands {
|
|
14168
14385
|
constructor(device, mainId) {
|
|
@@ -14172,24 +14389,26 @@ class DeviceCommands {
|
|
|
14172
14389
|
this.disposed = false;
|
|
14173
14390
|
}
|
|
14174
14391
|
|
|
14175
|
-
dispose() {
|
|
14392
|
+
dispose(cancelRequest) {
|
|
14176
14393
|
var _a, _b;
|
|
14177
14394
|
|
|
14178
|
-
this
|
|
14395
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14396
|
+
this.disposed = true;
|
|
14179
14397
|
|
|
14180
|
-
|
|
14181
|
-
|
|
14182
|
-
|
|
14398
|
+
if (cancelRequest && this._cancelableRequest) {
|
|
14399
|
+
this._cancelableRequest();
|
|
14400
|
+
}
|
|
14183
14401
|
|
|
14184
|
-
|
|
14185
|
-
|
|
14402
|
+
this._cancelableRequest = undefined;
|
|
14403
|
+
yield (_b = (_a = this.transport).cancel) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
14404
|
+
});
|
|
14186
14405
|
}
|
|
14187
14406
|
|
|
14188
14407
|
call(type, msg = {}) {
|
|
14189
14408
|
var _a, _b;
|
|
14190
14409
|
|
|
14191
14410
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14192
|
-
|
|
14411
|
+
Log$4.debug('[DeviceCommands] [call] Sending', type);
|
|
14193
14412
|
|
|
14194
14413
|
try {
|
|
14195
14414
|
const promise = this.transport.call(this.mainId, type, msg);
|
|
@@ -14223,7 +14442,7 @@ class DeviceCommands {
|
|
|
14223
14442
|
try {
|
|
14224
14443
|
assertType(response, resType);
|
|
14225
14444
|
} catch (error) {
|
|
14226
|
-
|
|
14445
|
+
Log$4.debug('DeviceCommands typedcall error: ', error);
|
|
14227
14446
|
|
|
14228
14447
|
if (error instanceof hdShared.HardwareError) {
|
|
14229
14448
|
if (error.errorCode === hdShared.HardwareErrorCode.ResponseUnexpectTypeError) {
|
|
@@ -14248,7 +14467,7 @@ class DeviceCommands {
|
|
|
14248
14467
|
}
|
|
14249
14468
|
|
|
14250
14469
|
_filterCommonTypes(res) {
|
|
14251
|
-
|
|
14470
|
+
Log$4.debug('_filterCommonTypes: ', res);
|
|
14252
14471
|
|
|
14253
14472
|
if (res.type === 'Failure') {
|
|
14254
14473
|
const {
|
|
@@ -14310,7 +14529,12 @@ class DeviceCommands {
|
|
|
14310
14529
|
}, () => this._commonCall('Cancel', {}));
|
|
14311
14530
|
}
|
|
14312
14531
|
|
|
14313
|
-
if (res.type === 'PassphraseRequest')
|
|
14532
|
+
if (res.type === 'PassphraseRequest') {
|
|
14533
|
+
return this._commonCall('PassphraseAck', {
|
|
14534
|
+
passphrase: ''
|
|
14535
|
+
});
|
|
14536
|
+
}
|
|
14537
|
+
|
|
14314
14538
|
if (res.type === 'Deprecated_PassphraseStateRequest') ;
|
|
14315
14539
|
if (res.type === 'WordRequest') ;
|
|
14316
14540
|
return Promise.resolve(res);
|
|
@@ -14451,7 +14675,7 @@ const parseRunOptions = options => {
|
|
|
14451
14675
|
return options;
|
|
14452
14676
|
};
|
|
14453
14677
|
|
|
14454
|
-
const Log$3 =
|
|
14678
|
+
const Log$3 = getLogger(exports.d0.Device);
|
|
14455
14679
|
|
|
14456
14680
|
class Device extends events.exports {
|
|
14457
14681
|
constructor(descriptor) {
|
|
@@ -14548,7 +14772,7 @@ class Device extends events.exports {
|
|
|
14548
14772
|
});
|
|
14549
14773
|
|
|
14550
14774
|
if (this.commands) {
|
|
14551
|
-
this.commands.dispose();
|
|
14775
|
+
yield this.commands.dispose(false);
|
|
14552
14776
|
}
|
|
14553
14777
|
|
|
14554
14778
|
this.commands = new DeviceCommands(this, (_d = this.mainId) !== null && _d !== void 0 ? _d : '');
|
|
@@ -14572,7 +14796,7 @@ class Device extends events.exports {
|
|
|
14572
14796
|
|
|
14573
14797
|
if (this.isUsedHere() && !this.keepSession && this.mainId || this.mainId && env === 'react-native') {
|
|
14574
14798
|
if (this.commands) {
|
|
14575
|
-
this.commands.dispose();
|
|
14799
|
+
this.commands.dispose(false);
|
|
14576
14800
|
|
|
14577
14801
|
if (this.commands.callPromise) {
|
|
14578
14802
|
try {
|
|
@@ -14678,7 +14902,7 @@ class Device extends events.exports {
|
|
|
14678
14902
|
run(fn, options) {
|
|
14679
14903
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14680
14904
|
if (this.runPromise) {
|
|
14681
|
-
this.
|
|
14905
|
+
yield this.interruptionFromOutside();
|
|
14682
14906
|
Log$3.debug('[Device] run error:', 'Device is running, but will cancel previous operate');
|
|
14683
14907
|
}
|
|
14684
14908
|
|
|
@@ -14725,14 +14949,28 @@ class Device extends events.exports {
|
|
|
14725
14949
|
});
|
|
14726
14950
|
}
|
|
14727
14951
|
|
|
14728
|
-
|
|
14729
|
-
|
|
14730
|
-
this.commands
|
|
14731
|
-
|
|
14952
|
+
interruptionFromOutside() {
|
|
14953
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14954
|
+
if (this.commands) {
|
|
14955
|
+
yield this.commands.dispose(false);
|
|
14956
|
+
}
|
|
14732
14957
|
|
|
14733
|
-
|
|
14734
|
-
|
|
14735
|
-
|
|
14958
|
+
if (this.runPromise) {
|
|
14959
|
+
this.runPromise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceInterruptedFromOutside));
|
|
14960
|
+
}
|
|
14961
|
+
});
|
|
14962
|
+
}
|
|
14963
|
+
|
|
14964
|
+
interruptionFromUser() {
|
|
14965
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14966
|
+
if (this.commands) {
|
|
14967
|
+
yield this.commands.dispose(true);
|
|
14968
|
+
}
|
|
14969
|
+
|
|
14970
|
+
if (this.runPromise) {
|
|
14971
|
+
this.runPromise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceInterruptedFromUser));
|
|
14972
|
+
}
|
|
14973
|
+
});
|
|
14736
14974
|
}
|
|
14737
14975
|
|
|
14738
14976
|
getMode() {
|
|
@@ -14810,10 +15048,18 @@ class Device extends events.exports {
|
|
|
14810
15048
|
return null;
|
|
14811
15049
|
}
|
|
14812
15050
|
|
|
15051
|
+
checkDeviceId(deviceId) {
|
|
15052
|
+
if (this.features) {
|
|
15053
|
+
return this.features.device_id === deviceId;
|
|
15054
|
+
}
|
|
15055
|
+
|
|
15056
|
+
return false;
|
|
15057
|
+
}
|
|
15058
|
+
|
|
14813
15059
|
}
|
|
14814
15060
|
|
|
14815
|
-
const cacheDeviceMap =
|
|
14816
|
-
const Log$2 =
|
|
15061
|
+
const cacheDeviceMap = {};
|
|
15062
|
+
const Log$2 = getLogger(exports.d0.DeviceList);
|
|
14817
15063
|
|
|
14818
15064
|
class DeviceList extends events.exports {
|
|
14819
15065
|
constructor() {
|
|
@@ -14821,7 +15067,7 @@ class DeviceList extends events.exports {
|
|
|
14821
15067
|
this.devices = {};
|
|
14822
15068
|
}
|
|
14823
15069
|
|
|
14824
|
-
getDeviceLists() {
|
|
15070
|
+
getDeviceLists(connectId) {
|
|
14825
15071
|
var e_1, _a;
|
|
14826
15072
|
|
|
14827
15073
|
var _b, _c;
|
|
@@ -14831,7 +15077,22 @@ class DeviceList extends events.exports {
|
|
|
14831
15077
|
const descriptorList = (_c = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _c !== void 0 ? _c : [];
|
|
14832
15078
|
this.devices = {};
|
|
14833
15079
|
const deviceList = [];
|
|
14834
|
-
|
|
15080
|
+
Log$2.debug('get device list');
|
|
15081
|
+
|
|
15082
|
+
if (connectId) {
|
|
15083
|
+
const device = cacheDeviceMap[connectId];
|
|
15084
|
+
|
|
15085
|
+
if (device) {
|
|
15086
|
+
const exist = descriptorList.find(d => d.path === device.originalDescriptor.path);
|
|
15087
|
+
|
|
15088
|
+
if (exist) {
|
|
15089
|
+
device.updateDescriptor(exist, true);
|
|
15090
|
+
Log$2.debug('find existed Device: ', connectId);
|
|
15091
|
+
this.devices[connectId] = device;
|
|
15092
|
+
return [device];
|
|
15093
|
+
}
|
|
15094
|
+
}
|
|
15095
|
+
}
|
|
14835
15096
|
|
|
14836
15097
|
try {
|
|
14837
15098
|
for (var descriptorList_1 = __asyncValues(descriptorList), descriptorList_1_1; descriptorList_1_1 = yield descriptorList_1.next(), !descriptorList_1_1.done;) {
|
|
@@ -14846,15 +15107,14 @@ class DeviceList extends events.exports {
|
|
|
14846
15107
|
if (device.features) {
|
|
14847
15108
|
const uuid = getDeviceUUID(device.features);
|
|
14848
15109
|
|
|
14849
|
-
if (cacheDeviceMap
|
|
14850
|
-
const cache = cacheDeviceMap
|
|
15110
|
+
if (cacheDeviceMap[uuid]) {
|
|
15111
|
+
const cache = cacheDeviceMap[uuid];
|
|
14851
15112
|
cache === null || cache === void 0 ? void 0 : cache.updateFromCache(device);
|
|
14852
15113
|
device = cache;
|
|
14853
|
-
Log$2.debug('use cache device: ', uuid);
|
|
14854
15114
|
}
|
|
14855
15115
|
|
|
14856
15116
|
this.devices[uuid] = device;
|
|
14857
|
-
cacheDeviceMap
|
|
15117
|
+
cacheDeviceMap[uuid] = device;
|
|
14858
15118
|
}
|
|
14859
15119
|
}
|
|
14860
15120
|
} catch (e_1_1) {
|
|
@@ -14883,8 +15143,32 @@ class DeviceList extends events.exports {
|
|
|
14883
15143
|
|
|
14884
15144
|
}
|
|
14885
15145
|
|
|
15146
|
+
const getFirmwareReleaseInfo = features => {
|
|
15147
|
+
const firmwareStatus = DataManager.getFirmwareStatus(features);
|
|
15148
|
+
const changelog = DataManager.getFirmwareChangelog(features);
|
|
15149
|
+
const release = DataManager.getFirmwareLeatestRelease(features);
|
|
15150
|
+
return {
|
|
15151
|
+
status: firmwareStatus,
|
|
15152
|
+
changelog,
|
|
15153
|
+
release
|
|
15154
|
+
};
|
|
15155
|
+
};
|
|
15156
|
+
|
|
15157
|
+
const getBleFirmwareReleaseInfo = features => {
|
|
15158
|
+
const firmwareStatus = DataManager.getBLEFirmwareStatus(features);
|
|
15159
|
+
const changelog = DataManager.getBleFirmwareChangelog(features);
|
|
15160
|
+
const release = DataManager.getBleFirmwareLeatestRelease(features);
|
|
15161
|
+
return {
|
|
15162
|
+
status: firmwareStatus,
|
|
15163
|
+
changelog,
|
|
15164
|
+
release
|
|
15165
|
+
};
|
|
15166
|
+
};
|
|
15167
|
+
|
|
14886
15168
|
class BaseMethod {
|
|
14887
15169
|
constructor(message) {
|
|
15170
|
+
this.shouldEnsureConnected = true;
|
|
15171
|
+
this.checkDeviceId = false;
|
|
14888
15172
|
const {
|
|
14889
15173
|
payload
|
|
14890
15174
|
} = message;
|
|
@@ -14892,6 +15176,7 @@ class BaseMethod {
|
|
|
14892
15176
|
this.payload = payload;
|
|
14893
15177
|
this.responseID = message.id || 0;
|
|
14894
15178
|
this.connectId = payload.connectId || '';
|
|
15179
|
+
this.deviceId = payload.deviceId || '';
|
|
14895
15180
|
this.useDevice = true;
|
|
14896
15181
|
this.allowDeviceMode = [UI_REQUEST.INITIALIZE];
|
|
14897
15182
|
this.requireDeviceMode = [];
|
|
@@ -14906,6 +15191,21 @@ class BaseMethod {
|
|
|
14906
15191
|
this.connectId = device.originalDescriptor.path;
|
|
14907
15192
|
}
|
|
14908
15193
|
|
|
15194
|
+
checkFirmwareRelease() {
|
|
15195
|
+
if (!this.device || !this.device.features) return;
|
|
15196
|
+
const releaseInfo = getFirmwareReleaseInfo(this.device.features);
|
|
15197
|
+
|
|
15198
|
+
if (['outdated', 'required'].includes(releaseInfo.status)) {
|
|
15199
|
+
this.postMessage(createFirmwareMessage(FIRMWARE.RELEASE_INFO, releaseInfo));
|
|
15200
|
+
}
|
|
15201
|
+
|
|
15202
|
+
const bleReleaseInfo = getBleFirmwareReleaseInfo(this.device.features);
|
|
15203
|
+
|
|
15204
|
+
if (['outdated', 'required'].includes(bleReleaseInfo.status)) {
|
|
15205
|
+
this.postMessage(createFirmwareMessage(FIRMWARE.BLE_RELEASE_INFO, bleReleaseInfo));
|
|
15206
|
+
}
|
|
15207
|
+
}
|
|
15208
|
+
|
|
14909
15209
|
dispose() {}
|
|
14910
15210
|
|
|
14911
15211
|
}
|
|
@@ -16235,14 +16535,8 @@ class CheckFirmwareRelease extends BaseMethod {
|
|
|
16235
16535
|
|
|
16236
16536
|
run() {
|
|
16237
16537
|
if (this.device.features) {
|
|
16238
|
-
const
|
|
16239
|
-
|
|
16240
|
-
const release = DataManager.getFirmwareLeatestRelease(this.device.features);
|
|
16241
|
-
return Promise.resolve({
|
|
16242
|
-
status: firmwareStatus,
|
|
16243
|
-
changelog,
|
|
16244
|
-
release
|
|
16245
|
-
});
|
|
16538
|
+
const releaseInfo = getFirmwareReleaseInfo(this.device.features);
|
|
16539
|
+
return Promise.resolve(releaseInfo);
|
|
16246
16540
|
}
|
|
16247
16541
|
|
|
16248
16542
|
return Promise.resolve(null);
|
|
@@ -16253,18 +16547,13 @@ class CheckFirmwareRelease extends BaseMethod {
|
|
|
16253
16547
|
class CheckBLEFirmwareRelease extends BaseMethod {
|
|
16254
16548
|
init() {
|
|
16255
16549
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.BOOTLOADER];
|
|
16550
|
+
this.checkDeviceId = true;
|
|
16256
16551
|
}
|
|
16257
16552
|
|
|
16258
16553
|
run() {
|
|
16259
16554
|
if (this.device.features) {
|
|
16260
|
-
const
|
|
16261
|
-
|
|
16262
|
-
const release = DataManager.getBleFirmwareLeatestRelease(this.device.features);
|
|
16263
|
-
return Promise.resolve({
|
|
16264
|
-
status: firmwareStatus,
|
|
16265
|
-
changelog,
|
|
16266
|
-
release
|
|
16267
|
-
});
|
|
16555
|
+
const releaseInfo = getBleFirmwareReleaseInfo(this.device.features);
|
|
16556
|
+
return Promise.resolve(releaseInfo);
|
|
16268
16557
|
}
|
|
16269
16558
|
|
|
16270
16559
|
return Promise.resolve(null);
|
|
@@ -16288,7 +16577,7 @@ class CheckTransportRelease extends BaseMethod {
|
|
|
16288
16577
|
|
|
16289
16578
|
}
|
|
16290
16579
|
|
|
16291
|
-
class CheckBridgeStatus extends BaseMethod {
|
|
16580
|
+
class CheckBridgeStatus$1 extends BaseMethod {
|
|
16292
16581
|
init() {
|
|
16293
16582
|
this.useDevice = false;
|
|
16294
16583
|
}
|
|
@@ -16586,7 +16875,7 @@ class DeviceVerify extends BaseMethod {
|
|
|
16586
16875
|
data: sha256__default["default"].sha256(this.params.data)
|
|
16587
16876
|
}));
|
|
16588
16877
|
response = res.message;
|
|
16589
|
-
} else
|
|
16878
|
+
} else {
|
|
16590
16879
|
const signatureRes = yield this.device.commands.typedCall('SESignMessage', 'SEMessageSignature', {
|
|
16591
16880
|
message: this.params.data
|
|
16592
16881
|
});
|
|
@@ -18508,6 +18797,8 @@ class FirmwareUpdate extends BaseMethod {
|
|
|
18508
18797
|
}
|
|
18509
18798
|
|
|
18510
18799
|
run() {
|
|
18800
|
+
var _a;
|
|
18801
|
+
|
|
18511
18802
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18512
18803
|
const {
|
|
18513
18804
|
device,
|
|
@@ -18531,7 +18822,7 @@ class FirmwareUpdate extends BaseMethod {
|
|
|
18531
18822
|
binary = firmware.binary;
|
|
18532
18823
|
}
|
|
18533
18824
|
} catch (err) {
|
|
18534
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, err);
|
|
18825
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, (_a = err.message) !== null && _a !== void 0 ? _a : err);
|
|
18535
18826
|
}
|
|
18536
18827
|
|
|
18537
18828
|
return uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, {
|
|
@@ -18542,6 +18833,20 @@ class FirmwareUpdate extends BaseMethod {
|
|
|
18542
18833
|
|
|
18543
18834
|
}
|
|
18544
18835
|
|
|
18836
|
+
class CheckBridgeStatus extends BaseMethod {
|
|
18837
|
+
init() {
|
|
18838
|
+
this.useDevice = false;
|
|
18839
|
+
}
|
|
18840
|
+
|
|
18841
|
+
run() {
|
|
18842
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18843
|
+
const logs = getLog();
|
|
18844
|
+
return Promise.resolve(logs);
|
|
18845
|
+
});
|
|
18846
|
+
}
|
|
18847
|
+
|
|
18848
|
+
}
|
|
18849
|
+
|
|
18545
18850
|
var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
18546
18851
|
__proto__: null,
|
|
18547
18852
|
searchDevices: SearchDevices,
|
|
@@ -18555,7 +18860,7 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
|
18555
18860
|
checkFirmwareRelease: CheckFirmwareRelease,
|
|
18556
18861
|
checkBLEFirmwareRelease: CheckBLEFirmwareRelease,
|
|
18557
18862
|
checkTransportRelease: CheckTransportRelease,
|
|
18558
|
-
checkBridgeStatus: CheckBridgeStatus,
|
|
18863
|
+
checkBridgeStatus: CheckBridgeStatus$1,
|
|
18559
18864
|
deviceBackup: DeviceBackup,
|
|
18560
18865
|
deviceChangePin: DeviceChangePin,
|
|
18561
18866
|
deviceFlags: DeviceFlags,
|
|
@@ -18584,7 +18889,8 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
|
18584
18889
|
solSignTransaction: SolSignTransaction,
|
|
18585
18890
|
stellarGetAddress: StellarGetAddress,
|
|
18586
18891
|
stellarSignTransaction: StellarSignTransaction,
|
|
18587
|
-
firmwareUpdate: FirmwareUpdate
|
|
18892
|
+
firmwareUpdate: FirmwareUpdate,
|
|
18893
|
+
getLogs: CheckBridgeStatus
|
|
18588
18894
|
});
|
|
18589
18895
|
|
|
18590
18896
|
function findMethod(message) {
|
|
@@ -18608,6 +18914,10 @@ function findMethod(message) {
|
|
|
18608
18914
|
const safeThrowError = error => {
|
|
18609
18915
|
if (error instanceof hdShared.HardwareError) {
|
|
18610
18916
|
throw error;
|
|
18917
|
+
} else if (error.code === 'ERR_NETWORK') {
|
|
18918
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BridgeNotInstalled);
|
|
18919
|
+
} else if (error.code === 'ECONNABORTED') {
|
|
18920
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BridgeTimeoutError);
|
|
18611
18921
|
} else {
|
|
18612
18922
|
throw hdShared.ERRORS.TypedError(error);
|
|
18613
18923
|
}
|
|
@@ -18617,7 +18927,7 @@ const resolveAfter = (msec, value) => new Promise(resolve => {
|
|
|
18617
18927
|
setTimeout(resolve, msec, value);
|
|
18618
18928
|
});
|
|
18619
18929
|
|
|
18620
|
-
const Log$1 =
|
|
18930
|
+
const Log$1 = getLogger(exports.d0.DeviceConnector);
|
|
18621
18931
|
|
|
18622
18932
|
const getDiff = (current, descriptors) => {
|
|
18623
18933
|
const env = DataManager.getSettings('env');
|
|
@@ -18730,7 +19040,7 @@ class DeviceConnector {
|
|
|
18730
19040
|
|
|
18731
19041
|
acquire(path, session) {
|
|
18732
19042
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18733
|
-
|
|
19043
|
+
Log$1.debug('acquire', path, session);
|
|
18734
19044
|
const env = DataManager.getSettings('env');
|
|
18735
19045
|
|
|
18736
19046
|
try {
|
|
@@ -18773,7 +19083,7 @@ class DeviceConnector {
|
|
|
18773
19083
|
|
|
18774
19084
|
}
|
|
18775
19085
|
|
|
18776
|
-
const Log =
|
|
19086
|
+
const Log = getLogger(exports.d0.Core);
|
|
18777
19087
|
|
|
18778
19088
|
let _core;
|
|
18779
19089
|
|
|
@@ -18785,7 +19095,10 @@ let _uiPromises = [];
|
|
|
18785
19095
|
|
|
18786
19096
|
let _callPromise;
|
|
18787
19097
|
|
|
19098
|
+
const callApiQueue = [];
|
|
18788
19099
|
const deviceCacheMap = new Map();
|
|
19100
|
+
let pollingId = 1;
|
|
19101
|
+
const pollingState = {};
|
|
18789
19102
|
|
|
18790
19103
|
const callAPI = message => __awaiter(void 0, void 0, void 0, function* () {
|
|
18791
19104
|
var _a;
|
|
@@ -18817,26 +19130,28 @@ const callAPI = message => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
18817
19130
|
}
|
|
18818
19131
|
}
|
|
18819
19132
|
|
|
18820
|
-
|
|
18821
|
-
|
|
18822
|
-
|
|
18823
|
-
|
|
19133
|
+
callApiQueue.push(method);
|
|
19134
|
+
|
|
19135
|
+
if (callApiQueue.length > 1) {
|
|
19136
|
+
Log.debug('should cancel the previous method execution: ', callApiQueue);
|
|
18824
19137
|
}
|
|
18825
19138
|
|
|
18826
|
-
|
|
19139
|
+
if (pollingState[pollingId]) {
|
|
19140
|
+
pollingState[pollingId] = false;
|
|
19141
|
+
}
|
|
19142
|
+
|
|
19143
|
+
pollingId += 1;
|
|
18827
19144
|
let device;
|
|
18828
19145
|
|
|
18829
19146
|
try {
|
|
18830
|
-
|
|
18831
|
-
|
|
18832
|
-
|
|
18833
|
-
|
|
18834
|
-
}
|
|
18835
|
-
} catch (error) {
|
|
18836
|
-
return Promise.reject(error);
|
|
19147
|
+
device = yield ensureConnected(method, pollingId);
|
|
19148
|
+
} catch (e) {
|
|
19149
|
+
return createResponseMessage(method.responseID, false, {
|
|
19150
|
+
error: e
|
|
19151
|
+
});
|
|
18837
19152
|
}
|
|
18838
19153
|
|
|
18839
|
-
Log.debug('Call API - setDevice: ', device);
|
|
19154
|
+
Log.debug('Call API - setDevice: ', device.mainId);
|
|
18840
19155
|
(_a = method.setDevice) === null || _a === void 0 ? void 0 : _a.call(method, device);
|
|
18841
19156
|
device.on(DEVICE.PIN, onDevicePinHandler);
|
|
18842
19157
|
device.on(DEVICE.BUTTON, (d, code) => {
|
|
@@ -18873,6 +19188,16 @@ const callAPI = message => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
18873
19188
|
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceUnexpectedMode, unexpectedMode));
|
|
18874
19189
|
}
|
|
18875
19190
|
|
|
19191
|
+
if (method.deviceId && method.checkDeviceId) {
|
|
19192
|
+
const isSameDeviceID = device.checkDeviceId(method.deviceId);
|
|
19193
|
+
|
|
19194
|
+
if (!isSameDeviceID) {
|
|
19195
|
+
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckDeviceIdError));
|
|
19196
|
+
}
|
|
19197
|
+
}
|
|
19198
|
+
|
|
19199
|
+
method.checkFirmwareRelease();
|
|
19200
|
+
|
|
18876
19201
|
if (_deviceList) {
|
|
18877
19202
|
yield TransportManager.reconfigure(device.getFirmwareVersion());
|
|
18878
19203
|
}
|
|
@@ -18891,7 +19216,7 @@ const callAPI = message => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
18891
19216
|
}
|
|
18892
19217
|
});
|
|
18893
19218
|
|
|
18894
|
-
Log.debug('Call API - Device Run: ', device);
|
|
19219
|
+
Log.debug('Call API - Device Run: ', device.mainId);
|
|
18895
19220
|
|
|
18896
19221
|
const deviceRun = () => device.run(inner);
|
|
18897
19222
|
|
|
@@ -18900,7 +19225,7 @@ const callAPI = message => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
18900
19225
|
try {
|
|
18901
19226
|
return yield _callPromise.promise;
|
|
18902
19227
|
} catch (e) {
|
|
18903
|
-
|
|
19228
|
+
Log.debug('Device Run Error: ', e);
|
|
18904
19229
|
return createResponseMessage(method.responseID, false, {
|
|
18905
19230
|
error: e
|
|
18906
19231
|
});
|
|
@@ -18920,6 +19245,13 @@ const callAPI = message => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
18920
19245
|
}
|
|
18921
19246
|
}
|
|
18922
19247
|
|
|
19248
|
+
const index = messageResponse && messageResponse.id ? callApiQueue.findIndex(m => m.responseID === messageResponse.id) : -1;
|
|
19249
|
+
|
|
19250
|
+
if (index > -1) {
|
|
19251
|
+
callApiQueue.splice(index, 1);
|
|
19252
|
+
Log.debug('Remove the finished method from the queue: ', callApiQueue);
|
|
19253
|
+
}
|
|
19254
|
+
|
|
18923
19255
|
closePopup();
|
|
18924
19256
|
cleanup();
|
|
18925
19257
|
}
|
|
@@ -18940,7 +19272,7 @@ function initDeviceList(method) {
|
|
|
18940
19272
|
_deviceList.connector = _connector;
|
|
18941
19273
|
}
|
|
18942
19274
|
|
|
18943
|
-
yield _deviceList.getDeviceLists();
|
|
19275
|
+
yield _deviceList.getDeviceLists(method.connectId);
|
|
18944
19276
|
});
|
|
18945
19277
|
}
|
|
18946
19278
|
|
|
@@ -18993,23 +19325,118 @@ function initDeviceForBle(method) {
|
|
|
18993
19325
|
return device;
|
|
18994
19326
|
}
|
|
18995
19327
|
|
|
19328
|
+
const ensureConnected = (method, pollingId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19329
|
+
let tryCount = 0;
|
|
19330
|
+
const MAX_RETRY_COUNT = method.payload && method.payload.retryCount || 5;
|
|
19331
|
+
const POLL_INTERVAL_TIME = method.payload && method.payload.pollIntervalTime || 1000;
|
|
19332
|
+
const TIME_OUT = method.payload && method.payload.timeout || 10000;
|
|
19333
|
+
let timer = null;
|
|
19334
|
+
Log.debug(`EnsureConnected function start, MAX_RETRY_COUNT=${MAX_RETRY_COUNT}, POLL_INTERVAL_TIME=${POLL_INTERVAL_TIME} `);
|
|
19335
|
+
|
|
19336
|
+
const poll = (time = POLL_INTERVAL_TIME) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19337
|
+
return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19338
|
+
if (!pollingState[pollingId]) {
|
|
19339
|
+
Log.debug('EnsureConnected function stop, polling id: ', pollingId);
|
|
19340
|
+
reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Polling stop'));
|
|
19341
|
+
return;
|
|
19342
|
+
}
|
|
19343
|
+
|
|
19344
|
+
if (timer) {
|
|
19345
|
+
clearTimeout(timer);
|
|
19346
|
+
}
|
|
19347
|
+
|
|
19348
|
+
timer = setTimeout(() => {
|
|
19349
|
+
reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Polling timeout'));
|
|
19350
|
+
}, TIME_OUT);
|
|
19351
|
+
tryCount += 1;
|
|
19352
|
+
Log.debug('EnsureConnected function try count: ', tryCount, ' poll interval time: ', time);
|
|
19353
|
+
|
|
19354
|
+
try {
|
|
19355
|
+
yield initDeviceList(method);
|
|
19356
|
+
} catch (error) {
|
|
19357
|
+
Log.debug('device list error: ', error);
|
|
19358
|
+
|
|
19359
|
+
if (error.errorCode === hdShared.HardwareErrorCode.BridgeNotInstalled) {
|
|
19360
|
+
reject(error);
|
|
19361
|
+
return;
|
|
19362
|
+
}
|
|
19363
|
+
|
|
19364
|
+
if (error.errorCode === hdShared.HardwareErrorCode.TransportNotConfigured) {
|
|
19365
|
+
yield TransportManager.configure();
|
|
19366
|
+
}
|
|
19367
|
+
}
|
|
19368
|
+
|
|
19369
|
+
const env = DataManager.getSettings('env');
|
|
19370
|
+
let device;
|
|
19371
|
+
|
|
19372
|
+
try {
|
|
19373
|
+
if (env === 'react-native') {
|
|
19374
|
+
device = initDeviceForBle(method);
|
|
19375
|
+
} else {
|
|
19376
|
+
device = initDevice(method);
|
|
19377
|
+
}
|
|
19378
|
+
|
|
19379
|
+
if (device) {
|
|
19380
|
+
if (timer) {
|
|
19381
|
+
clearTimeout(timer);
|
|
19382
|
+
}
|
|
19383
|
+
|
|
19384
|
+
if (env === 'react-native') {
|
|
19385
|
+
yield device.acquire();
|
|
19386
|
+
yield device.initialize();
|
|
19387
|
+
}
|
|
19388
|
+
|
|
19389
|
+
resolve(device);
|
|
19390
|
+
return;
|
|
19391
|
+
}
|
|
19392
|
+
} catch (error) {
|
|
19393
|
+
Log.debug('device error: ', error);
|
|
19394
|
+
|
|
19395
|
+
if (error.errorCode === hdShared.HardwareErrorCode.BlePermissionError) {
|
|
19396
|
+
reject(error);
|
|
19397
|
+
return;
|
|
19398
|
+
}
|
|
19399
|
+
}
|
|
19400
|
+
|
|
19401
|
+
if (tryCount > 5) {
|
|
19402
|
+
if (timer) {
|
|
19403
|
+
clearTimeout(timer);
|
|
19404
|
+
}
|
|
19405
|
+
|
|
19406
|
+
Log.debug('EnsureConnected get to max try count, will return: ', tryCount);
|
|
19407
|
+
reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotFound));
|
|
19408
|
+
return;
|
|
19409
|
+
}
|
|
19410
|
+
|
|
19411
|
+
return setTimeout(() => resolve(poll(time * 1.5)), time);
|
|
19412
|
+
}));
|
|
19413
|
+
});
|
|
19414
|
+
|
|
19415
|
+
pollingState[pollingId] = true;
|
|
19416
|
+
return poll();
|
|
19417
|
+
});
|
|
19418
|
+
|
|
18996
19419
|
const cancel = connectId => {
|
|
18997
19420
|
const env = DataManager.getSettings('env');
|
|
18998
19421
|
|
|
18999
|
-
|
|
19000
|
-
|
|
19422
|
+
try {
|
|
19423
|
+
if (connectId) {
|
|
19424
|
+
let device;
|
|
19001
19425
|
|
|
19002
|
-
|
|
19003
|
-
|
|
19004
|
-
|
|
19005
|
-
|
|
19006
|
-
|
|
19007
|
-
|
|
19008
|
-
|
|
19009
|
-
|
|
19010
|
-
|
|
19426
|
+
if (env === 'react-native') {
|
|
19427
|
+
device = initDeviceForBle({
|
|
19428
|
+
connectId
|
|
19429
|
+
});
|
|
19430
|
+
} else {
|
|
19431
|
+
device = initDevice({
|
|
19432
|
+
connectId
|
|
19433
|
+
});
|
|
19434
|
+
}
|
|
19011
19435
|
|
|
19012
|
-
|
|
19436
|
+
device === null || device === void 0 ? void 0 : device.interruptionFromUser();
|
|
19437
|
+
}
|
|
19438
|
+
} catch (e) {
|
|
19439
|
+
Log.error('Cancel API Error: ', e);
|
|
19013
19440
|
}
|
|
19014
19441
|
|
|
19015
19442
|
cleanup();
|
|
@@ -19026,7 +19453,7 @@ const closePopup = () => {
|
|
|
19026
19453
|
};
|
|
19027
19454
|
|
|
19028
19455
|
const onDevicePinHandler = (...[device, type, callback]) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19029
|
-
|
|
19456
|
+
Log.debug('onDevicePinHandler');
|
|
19030
19457
|
const uiPromise = createUiPromise(UI_RESPONSE.RECEIVE_PIN, device);
|
|
19031
19458
|
postMessage(createUiMessage(UI_REQUEST$1.REQUEST_PIN, {
|
|
19032
19459
|
device: device.toMessageObject(),
|
|
@@ -19138,7 +19565,12 @@ const init = (settings, Transport) => __awaiter(void 0, void 0, void 0, function
|
|
|
19138
19565
|
Log.error('DataManager.load error');
|
|
19139
19566
|
}
|
|
19140
19567
|
|
|
19141
|
-
|
|
19568
|
+
enableLog(DataManager.getSettings('debug'));
|
|
19569
|
+
|
|
19570
|
+
if (DataManager.getSettings('env') !== 'react-native') {
|
|
19571
|
+
setLoggerPostMessage(postMessage);
|
|
19572
|
+
}
|
|
19573
|
+
|
|
19142
19574
|
initCore();
|
|
19143
19575
|
initConnector();
|
|
19144
19576
|
return _core;
|
|
@@ -19163,18 +19595,6 @@ const HardwareSdk = ({
|
|
|
19163
19595
|
cancel
|
|
19164
19596
|
});
|
|
19165
19597
|
|
|
19166
|
-
Object.defineProperty(exports, "yI", ({
|
|
19167
|
-
enumerable: true,
|
|
19168
|
-
get: function () {
|
|
19169
|
-
return hdShared.enableLog;
|
|
19170
|
-
}
|
|
19171
|
-
}));
|
|
19172
|
-
Object.defineProperty(exports, "KR", ({
|
|
19173
|
-
enumerable: true,
|
|
19174
|
-
get: function () {
|
|
19175
|
-
return hdShared.initLog;
|
|
19176
|
-
}
|
|
19177
|
-
}));
|
|
19178
19598
|
__webpack_unused_export__ = ({
|
|
19179
19599
|
enumerable: true,
|
|
19180
19600
|
get: function () {
|
|
@@ -19187,7 +19607,11 @@ __webpack_unused_export__ = DEFAULT_PRIORITY;
|
|
|
19187
19607
|
__webpack_unused_export__ = DEVICE;
|
|
19188
19608
|
__webpack_unused_export__ = DEVICE_EVENT;
|
|
19189
19609
|
__webpack_unused_export__ = DataManager;
|
|
19610
|
+
__webpack_unused_export__ = FIRMWARE;
|
|
19611
|
+
exports.SI = FIRMWARE_EVENT;
|
|
19190
19612
|
exports.Bg = IFRAME;
|
|
19613
|
+
__webpack_unused_export__ = LOG;
|
|
19614
|
+
exports.og = LOG_EVENT;
|
|
19191
19615
|
__webpack_unused_export__ = RESPONSE_EVENT;
|
|
19192
19616
|
exports.rF = UI_EVENT;
|
|
19193
19617
|
__webpack_unused_export__ = UI_REQUEST$1;
|
|
@@ -19195,11 +19619,14 @@ __webpack_unused_export__ = UI_RESPONSE;
|
|
|
19195
19619
|
__webpack_unused_export__ = corsValidator;
|
|
19196
19620
|
__webpack_unused_export__ = createDeviceMessage;
|
|
19197
19621
|
exports.xG = createErrorMessage;
|
|
19622
|
+
__webpack_unused_export__ = createFirmwareMessage;
|
|
19198
19623
|
__webpack_unused_export__ = createIFrameMessage;
|
|
19624
|
+
__webpack_unused_export__ = createLogMessage;
|
|
19199
19625
|
__webpack_unused_export__ = createResponseMessage;
|
|
19200
19626
|
__webpack_unused_export__ = createUiMessage;
|
|
19201
19627
|
__webpack_unused_export__ = createUiResponse;
|
|
19202
19628
|
exports.ZP = HardwareSdk;
|
|
19629
|
+
exports.yI = enableLog;
|
|
19203
19630
|
__webpack_unused_export__ = getDeviceLabel;
|
|
19204
19631
|
__webpack_unused_export__ = getDeviceType;
|
|
19205
19632
|
__webpack_unused_export__ = getDeviceTypeByBleName;
|
|
@@ -19207,6 +19634,8 @@ __webpack_unused_export__ = getDeviceTypeByDeviceId;
|
|
|
19207
19634
|
__webpack_unused_export__ = getDeviceUUID;
|
|
19208
19635
|
__webpack_unused_export__ = getEnv;
|
|
19209
19636
|
__webpack_unused_export__ = getHDPath;
|
|
19637
|
+
__webpack_unused_export__ = getLog;
|
|
19638
|
+
exports.jl = getLogger;
|
|
19210
19639
|
__webpack_unused_export__ = getScriptType;
|
|
19211
19640
|
__webpack_unused_export__ = getTimeStamp;
|
|
19212
19641
|
__webpack_unused_export__ = httpRequest;
|
|
@@ -19218,6 +19647,7 @@ exports._4 = parseConnectSettings;
|
|
|
19218
19647
|
exports.kW = parseMessage;
|
|
19219
19648
|
__webpack_unused_export__ = patchFeatures;
|
|
19220
19649
|
__webpack_unused_export__ = safeThrowError;
|
|
19650
|
+
exports.hZ = setLoggerPostMessage;
|
|
19221
19651
|
__webpack_unused_export__ = versionCompare;
|
|
19222
19652
|
__webpack_unused_export__ = versionSplit;
|
|
19223
19653
|
|
|
@@ -20328,6 +20758,7 @@ function createDeferred(arg, data) {
|
|
|
20328
20758
|
}
|
|
20329
20759
|
|
|
20330
20760
|
function fillStringWithArguments(value, object) {
|
|
20761
|
+
if (typeof value !== 'string') return value;
|
|
20331
20762
|
return value.replace(/\{([^}]+)\}/g, (_, arg) => object[arg] || '?');
|
|
20332
20763
|
}
|
|
20333
20764
|
|
|
@@ -20369,6 +20800,8 @@ const HardwareErrorCode = {
|
|
|
20369
20800
|
DeviceInitializeFailed: 106,
|
|
20370
20801
|
DeviceInterruptedFromOutside: 107,
|
|
20371
20802
|
DeviceUnexpectedBootloaderMode: 108,
|
|
20803
|
+
DeviceInterruptedFromUser: 109,
|
|
20804
|
+
DeviceCheckDeviceIdError: 110,
|
|
20372
20805
|
NotInitialized: 200,
|
|
20373
20806
|
IFrameNotInitialized: 300,
|
|
20374
20807
|
IFrameAleradyInitialized: 301,
|
|
@@ -20401,7 +20834,8 @@ const HardwareErrorCode = {
|
|
|
20401
20834
|
FirmwareError: 804,
|
|
20402
20835
|
ResponseUnexpectTypeError: 805,
|
|
20403
20836
|
BridgeNetworkError: 806,
|
|
20404
|
-
BridgeTimeoutError: 807
|
|
20837
|
+
BridgeTimeoutError: 807,
|
|
20838
|
+
BridgeNotInstalled: 808
|
|
20405
20839
|
};
|
|
20406
20840
|
const HardwareErrorCodeMessage = {
|
|
20407
20841
|
[HardwareErrorCode.UnknownError]: 'Unknown error occurred. Check message property.',
|
|
@@ -20412,7 +20846,9 @@ const HardwareErrorCodeMessage = {
|
|
|
20412
20846
|
[HardwareErrorCode.DeviceNotFound]: 'Device not found',
|
|
20413
20847
|
[HardwareErrorCode.DeviceInitializeFailed]: 'Device initialization failed',
|
|
20414
20848
|
[HardwareErrorCode.DeviceInterruptedFromOutside]: 'Device interrupted',
|
|
20849
|
+
[HardwareErrorCode.DeviceInterruptedFromUser]: 'Device interrupted',
|
|
20415
20850
|
[HardwareErrorCode.DeviceUnexpectedBootloaderMode]: 'Device should be in bootloader mode',
|
|
20851
|
+
[HardwareErrorCode.DeviceCheckDeviceIdError]: 'Device Id in the features is not same.',
|
|
20416
20852
|
[HardwareErrorCode.NotInitialized]: 'Not initialized',
|
|
20417
20853
|
[HardwareErrorCode.IFrameNotInitialized]: 'IFrame not initialized',
|
|
20418
20854
|
[HardwareErrorCode.IFrameAleradyInitialized]: 'IFrame alerady initialized',
|
|
@@ -20445,7 +20881,8 @@ const HardwareErrorCodeMessage = {
|
|
|
20445
20881
|
[HardwareErrorCode.FirmwareError]: 'Firmware installation failed',
|
|
20446
20882
|
[HardwareErrorCode.ResponseUnexpectTypeError]: 'Response type is not expected',
|
|
20447
20883
|
[HardwareErrorCode.BridgeNetworkError]: 'Bridge network error',
|
|
20448
|
-
[HardwareErrorCode.BridgeTimeoutError]: 'Bridge network timeout'
|
|
20884
|
+
[HardwareErrorCode.BridgeTimeoutError]: 'Bridge network timeout',
|
|
20885
|
+
[HardwareErrorCode.BridgeNotInstalled]: 'Bridge not installed'
|
|
20449
20886
|
};
|
|
20450
20887
|
|
|
20451
20888
|
const TypedError = (hardwareError, message) => {
|
|
@@ -20496,125 +20933,6 @@ var HardwareError$1 = /*#__PURE__*/Object.freeze({
|
|
|
20496
20933
|
serializeError: serializeError,
|
|
20497
20934
|
CreateErrorByMessage: CreateErrorByMessage
|
|
20498
20935
|
});
|
|
20499
|
-
const MAX_ENTRIES = 100;
|
|
20500
|
-
|
|
20501
|
-
class Log {
|
|
20502
|
-
constructor(prefix, enabled, logger) {
|
|
20503
|
-
this.prefix = prefix;
|
|
20504
|
-
this.enabled = enabled;
|
|
20505
|
-
this.messages = [];
|
|
20506
|
-
|
|
20507
|
-
if (logger) {
|
|
20508
|
-
this.logger = logger;
|
|
20509
|
-
}
|
|
20510
|
-
}
|
|
20511
|
-
|
|
20512
|
-
addMessage(level, prefix, ...args) {
|
|
20513
|
-
this.messages.push({
|
|
20514
|
-
level,
|
|
20515
|
-
prefix,
|
|
20516
|
-
message: args,
|
|
20517
|
-
timestamp: new Date().getTime()
|
|
20518
|
-
});
|
|
20519
|
-
|
|
20520
|
-
if (this.messages.length > MAX_ENTRIES) {
|
|
20521
|
-
this.messages.shift();
|
|
20522
|
-
}
|
|
20523
|
-
}
|
|
20524
|
-
|
|
20525
|
-
log(...args) {
|
|
20526
|
-
this.addMessage('log', this.prefix, ...args);
|
|
20527
|
-
|
|
20528
|
-
if (!this.enabled) {
|
|
20529
|
-
return;
|
|
20530
|
-
}
|
|
20531
|
-
|
|
20532
|
-
if (this.logger) {
|
|
20533
|
-
this.logger.info(this.prefix, ...args);
|
|
20534
|
-
} else {
|
|
20535
|
-
console.log(this.prefix, ...args);
|
|
20536
|
-
}
|
|
20537
|
-
}
|
|
20538
|
-
|
|
20539
|
-
error(...args) {
|
|
20540
|
-
this.addMessage('error', this.prefix, ...args);
|
|
20541
|
-
|
|
20542
|
-
if (!this.enabled) {
|
|
20543
|
-
return;
|
|
20544
|
-
}
|
|
20545
|
-
|
|
20546
|
-
if (this.logger) {
|
|
20547
|
-
this.logger.error(this.prefix, ...args);
|
|
20548
|
-
} else {
|
|
20549
|
-
console.error(this.prefix, ...args);
|
|
20550
|
-
}
|
|
20551
|
-
}
|
|
20552
|
-
|
|
20553
|
-
warn(...args) {
|
|
20554
|
-
this.addMessage('warn', this.prefix, ...args);
|
|
20555
|
-
|
|
20556
|
-
if (!this.enabled) {
|
|
20557
|
-
return;
|
|
20558
|
-
}
|
|
20559
|
-
|
|
20560
|
-
if (this.logger) {
|
|
20561
|
-
this.logger.warn(this.prefix, ...args);
|
|
20562
|
-
} else {
|
|
20563
|
-
console.warn(this.prefix, ...args);
|
|
20564
|
-
}
|
|
20565
|
-
}
|
|
20566
|
-
|
|
20567
|
-
debug(...args) {
|
|
20568
|
-
this.addMessage('debug', this.prefix, ...args);
|
|
20569
|
-
|
|
20570
|
-
if (!this.enabled) {
|
|
20571
|
-
return;
|
|
20572
|
-
}
|
|
20573
|
-
|
|
20574
|
-
if (this.logger) {
|
|
20575
|
-
this.logger.debug(this.prefix, ...args);
|
|
20576
|
-
} else {
|
|
20577
|
-
console.log(this.prefix, ...args);
|
|
20578
|
-
}
|
|
20579
|
-
}
|
|
20580
|
-
|
|
20581
|
-
}
|
|
20582
|
-
|
|
20583
|
-
const _logs = {};
|
|
20584
|
-
|
|
20585
|
-
const initLog = (prefix, enabled, logger) => {
|
|
20586
|
-
const instance = new Log(prefix, !!enabled, logger);
|
|
20587
|
-
_logs[prefix] = instance;
|
|
20588
|
-
return instance;
|
|
20589
|
-
};
|
|
20590
|
-
|
|
20591
|
-
const enableLog = enabled => {
|
|
20592
|
-
Object.keys(_logs).forEach(key => {
|
|
20593
|
-
_logs[key].enabled = !!enabled;
|
|
20594
|
-
});
|
|
20595
|
-
};
|
|
20596
|
-
|
|
20597
|
-
const setOutsideLogger = logger => {
|
|
20598
|
-
Object.keys(_logs).forEach(key => {
|
|
20599
|
-
_logs[key].logger = logger;
|
|
20600
|
-
});
|
|
20601
|
-
};
|
|
20602
|
-
|
|
20603
|
-
const enableLogByPrefix = (prefix, enabled) => {
|
|
20604
|
-
if (_logs[prefix]) {
|
|
20605
|
-
_logs[prefix].enabled = enabled;
|
|
20606
|
-
}
|
|
20607
|
-
};
|
|
20608
|
-
|
|
20609
|
-
const getLog = () => {
|
|
20610
|
-
let logs = [];
|
|
20611
|
-
Object.keys(_logs).forEach(key => {
|
|
20612
|
-
logs = logs.concat(_logs[key].messages);
|
|
20613
|
-
});
|
|
20614
|
-
logs.sort((a, b) => a.timestamp - b.timestamp);
|
|
20615
|
-
return logs;
|
|
20616
|
-
};
|
|
20617
|
-
|
|
20618
20936
|
exports.CreateErrorByMessage = CreateErrorByMessage;
|
|
20619
20937
|
exports.ERRORS = HardwareError$1;
|
|
20620
20938
|
exports.HardwareError = HardwareError;
|
|
@@ -20622,12 +20940,7 @@ exports.HardwareErrorCode = HardwareErrorCode;
|
|
|
20622
20940
|
exports.HardwareErrorCodeMessage = HardwareErrorCodeMessage;
|
|
20623
20941
|
exports.TypedError = TypedError;
|
|
20624
20942
|
exports.createDeferred = createDeferred;
|
|
20625
|
-
exports.enableLog = enableLog;
|
|
20626
|
-
exports.enableLogByPrefix = enableLogByPrefix;
|
|
20627
|
-
exports.getLog = getLog;
|
|
20628
|
-
exports.initLog = initLog;
|
|
20629
20943
|
exports.serializeError = serializeError;
|
|
20630
|
-
exports.setOutsideLogger = setOutsideLogger;
|
|
20631
20944
|
|
|
20632
20945
|
/***/ }),
|
|
20633
20946
|
|
|
@@ -45637,7 +45950,7 @@ function createCodeJsBridgeReceive(payloadStr) {
|
|
|
45637
45950
|
let frameBridge; // eslint-disable-next-line import/no-mutable-exports
|
|
45638
45951
|
|
|
45639
45952
|
let hostBridge;
|
|
45640
|
-
const Log = (0,dist/*
|
|
45953
|
+
const Log = (0,dist/* getLogger */.jl)(dist/* LoggerNames.SendMessage */.d0.SendMessage);
|
|
45641
45954
|
const createJsBridge = params => {
|
|
45642
45955
|
const bridge = new JsBridgeIframe(params);
|
|
45643
45956
|
|
|
@@ -45651,13 +45964,20 @@ const sendMessage = async (messages, isHost = true) => {
|
|
|
45651
45964
|
const bridge = isHost ? hostBridge : frameBridge;
|
|
45652
45965
|
|
|
45653
45966
|
try {
|
|
45654
|
-
|
|
45967
|
+
if (messages.event !== 'LOG_EVENT') {
|
|
45968
|
+
Log.debug('request: ', messages);
|
|
45969
|
+
}
|
|
45970
|
+
|
|
45655
45971
|
const result = await (bridge === null || bridge === void 0 ? void 0 : bridge.request({
|
|
45656
45972
|
scope: bridge_config.scope,
|
|
45657
45973
|
data: { ...messages
|
|
45658
45974
|
}
|
|
45659
45975
|
}));
|
|
45660
|
-
|
|
45976
|
+
|
|
45977
|
+
if (messages.event !== 'LOG_EVENT') {
|
|
45978
|
+
Log.debug('response: ', result);
|
|
45979
|
+
}
|
|
45980
|
+
|
|
45661
45981
|
return result;
|
|
45662
45982
|
} catch (error) {
|
|
45663
45983
|
Log.error(error);
|
|
@@ -45673,7 +45993,7 @@ const sendMessage = async (messages, isHost = true) => {
|
|
|
45673
45993
|
|
|
45674
45994
|
|
|
45675
45995
|
const eventEmitter = new (events_default())();
|
|
45676
|
-
const src_Log = (0,dist/*
|
|
45996
|
+
const src_Log = (0,dist/* getLogger */.jl)(dist/* LoggerNames.Connect */.d0.Connect);
|
|
45677
45997
|
|
|
45678
45998
|
let _settings = (0,dist/* parseConnectSettings */._4)();
|
|
45679
45999
|
|
|
@@ -45693,6 +46013,11 @@ const handleMessage = async message => {
|
|
|
45693
46013
|
eventEmitter.emit(message.type, message.payload);
|
|
45694
46014
|
break;
|
|
45695
46015
|
|
|
46016
|
+
case dist/* LOG_EVENT */.og:
|
|
46017
|
+
case dist/* FIRMWARE_EVENT */.SI:
|
|
46018
|
+
eventEmitter.emit(message.event, message);
|
|
46019
|
+
break;
|
|
46020
|
+
|
|
45696
46021
|
default:
|
|
45697
46022
|
src_Log.log('No need to be captured message', message.event);
|
|
45698
46023
|
}
|
|
@@ -45748,9 +46073,17 @@ const createJSBridge = messageEvent => {
|
|
|
45748
46073
|
targetOrigin: origin,
|
|
45749
46074
|
receiveHandler: async messageEvent => {
|
|
45750
46075
|
const message = (0,dist/* parseMessage */.kW)(messageEvent);
|
|
45751
|
-
|
|
46076
|
+
|
|
46077
|
+
if (message.event !== 'LOG_EVENT') {
|
|
46078
|
+
src_Log.debug('Host Bridge Receive message: ', message);
|
|
46079
|
+
}
|
|
46080
|
+
|
|
45752
46081
|
const response = await handleMessage(message);
|
|
45753
|
-
|
|
46082
|
+
|
|
46083
|
+
if (message.event !== 'LOG_EVENT') {
|
|
46084
|
+
src_Log.debug('Host Bridge response: ', response);
|
|
46085
|
+
}
|
|
46086
|
+
|
|
45754
46087
|
return response;
|
|
45755
46088
|
}
|
|
45756
46089
|
});
|
|
@@ -45766,13 +46099,14 @@ const src_init = async settings => {
|
|
|
45766
46099
|
...settings
|
|
45767
46100
|
});
|
|
45768
46101
|
(0,dist/* enableLog */.yI)(!!settings.debug);
|
|
46102
|
+
(0,dist/* setLoggerPostMessage */.hZ)(handleMessage);
|
|
45769
46103
|
src_Log.debug('init');
|
|
45770
46104
|
window.addEventListener('message', createJSBridge);
|
|
45771
46105
|
window.addEventListener('unload', src_dispose);
|
|
45772
46106
|
|
|
45773
46107
|
try {
|
|
45774
46108
|
await init({ ..._settings,
|
|
45775
|
-
version: "0.1.
|
|
46109
|
+
version: "0.1.18"
|
|
45776
46110
|
});
|
|
45777
46111
|
return true;
|
|
45778
46112
|
} catch (e) {
|