@onekeyfe/hd-core 0.1.39 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/BaseMethod.d.ts +1 -0
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/index.js +255 -281
- package/package.json +4 -5
- package/src/api/BaseMethod.ts +23 -1
- package/src/api/device/DeviceSettings.ts +1 -1
- package/src/core/index.ts +20 -1
- package/src/data-manager/connectSettings.ts +1 -1
- package/src/device/Device.ts +10 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.42",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
"access": "public"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
|
-
"test": "echo \"Error: run tests from root\" && exit 1",
|
|
19
18
|
"dev": "rimraf dist && rollup -c ../../build/rollup.config.js -w",
|
|
20
19
|
"build": "rimraf dist && rollup -c ../../build/rollup.config.js",
|
|
21
20
|
"lint": "eslint .",
|
|
@@ -25,8 +24,8 @@
|
|
|
25
24
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
25
|
},
|
|
27
26
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "^0.1.
|
|
29
|
-
"@onekeyfe/hd-transport": "^0.1.
|
|
27
|
+
"@onekeyfe/hd-shared": "^0.1.42",
|
|
28
|
+
"@onekeyfe/hd-transport": "^0.1.42",
|
|
30
29
|
"axios": "^0.27.2",
|
|
31
30
|
"bignumber.js": "^9.0.2",
|
|
32
31
|
"js-sha256": "^0.9.0",
|
|
@@ -37,5 +36,5 @@
|
|
|
37
36
|
"@types/parse-uri": "^1.0.0",
|
|
38
37
|
"@types/semver": "^7.3.9"
|
|
39
38
|
},
|
|
40
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "fa65f27f4d043ebf89f03bd98393a9cb3a010199"
|
|
41
40
|
}
|
package/src/api/BaseMethod.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { supportInputPinOnSoftware } from '../utils/deviceFeaturesUtils';
|
|
1
|
+
import { supportInputPinOnSoftware, getDeviceType } from '../utils/deviceFeaturesUtils';
|
|
2
2
|
import { createDeviceMessage } from '../events/device';
|
|
3
3
|
import { UI_REQUEST } from '../constants/ui-request';
|
|
4
4
|
import { Device } from '../device/Device';
|
|
@@ -6,6 +6,9 @@ import DeviceConnector from '../device/DeviceConnector';
|
|
|
6
6
|
import { DeviceFirmwareRange } from '../types';
|
|
7
7
|
import { CoreMessage, createFirmwareMessage, DEVICE, FIRMWARE } from '../events';
|
|
8
8
|
import { getBleFirmwareReleaseInfo, getFirmwareReleaseInfo } from './firmware/releaseHelper';
|
|
9
|
+
import { getLogger, LoggerNames } from '../utils';
|
|
10
|
+
|
|
11
|
+
const Log = getLogger(LoggerNames.Method);
|
|
9
12
|
|
|
10
13
|
export abstract class BaseMethod<Params = undefined> {
|
|
11
14
|
responseID: number;
|
|
@@ -129,5 +132,24 @@ export abstract class BaseMethod<Params = undefined> {
|
|
|
129
132
|
);
|
|
130
133
|
}
|
|
131
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Check the level of safety_check when performing transactions on the test network on touch
|
|
137
|
+
* @returns {void}
|
|
138
|
+
*/
|
|
139
|
+
async checkSafetyLevelOnTestNet() {
|
|
140
|
+
const deviceType = getDeviceType(this.device.features);
|
|
141
|
+
if (deviceType !== 'touch') return;
|
|
142
|
+
let checkFlag = false;
|
|
143
|
+
if (this.name === 'evmSignTransaction' && Number(this.payload?.transaction?.chainId) !== 1) {
|
|
144
|
+
checkFlag = true;
|
|
145
|
+
}
|
|
146
|
+
if (checkFlag && this.device.features?.safety_checks === 'Strict') {
|
|
147
|
+
Log.debug('will change safety_checks level');
|
|
148
|
+
await this.device.commands.typedCall('ApplySettings', 'Success', {
|
|
149
|
+
safety_checks: 'PromptTemporarily',
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
132
154
|
dispose() {}
|
|
133
155
|
}
|
|
@@ -16,7 +16,7 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
|
|
|
16
16
|
{ name: 'autoLockDelayMs', type: 'number' },
|
|
17
17
|
{ name: 'displayRotation', type: 'number' },
|
|
18
18
|
{ name: 'passphraseAlwaysOnDevice', type: 'boolean' },
|
|
19
|
-
{ name: 'safetyChecks', type: '
|
|
19
|
+
{ name: 'safetyChecks', type: 'number' },
|
|
20
20
|
{ name: 'experimentalFeatures', type: 'boolean' },
|
|
21
21
|
]);
|
|
22
22
|
|
package/src/core/index.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
import EventEmitter from 'events';
|
|
3
3
|
import { Features, OneKeyDeviceInfo } from '@onekeyfe/hd-transport';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createDeferred,
|
|
6
|
+
Deferred,
|
|
7
|
+
ERRORS,
|
|
8
|
+
HardwareError,
|
|
9
|
+
HardwareErrorCode,
|
|
10
|
+
} from '@onekeyfe/hd-shared';
|
|
5
11
|
import {
|
|
6
12
|
getDeviceFirmwareVersion,
|
|
7
13
|
getDeviceModel,
|
|
@@ -236,6 +242,19 @@ export const callAPI = async (message: CoreMessage) => {
|
|
|
236
242
|
}
|
|
237
243
|
}
|
|
238
244
|
|
|
245
|
+
// Check the level of safety_check when performing transactions on the test network on touch
|
|
246
|
+
try {
|
|
247
|
+
await method.checkSafetyLevelOnTestNet();
|
|
248
|
+
} catch (e) {
|
|
249
|
+
const error =
|
|
250
|
+
e instanceof HardwareError
|
|
251
|
+
? e
|
|
252
|
+
: ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'open safety check failed.');
|
|
253
|
+
messageResponse = createResponseMessage(method.responseID, false, { error });
|
|
254
|
+
_callPromise?.resolve(messageResponse);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
|
|
239
258
|
try {
|
|
240
259
|
const response: object = await method.run();
|
|
241
260
|
Log.debug('Call API - Inner Method Run: ');
|
|
@@ -19,7 +19,7 @@ const initialSettings: ConnectSettings = {
|
|
|
19
19
|
trustedHost: false,
|
|
20
20
|
connectSrc: DEFAULT_DOMAIN,
|
|
21
21
|
iframeSrc: `${DEFAULT_DOMAIN}iframe.html`,
|
|
22
|
-
parentOrigin: window.location ? window.location.origin : '',
|
|
22
|
+
parentOrigin: window && window.location ? window.location.origin : '',
|
|
23
23
|
supportedBrowser:
|
|
24
24
|
typeof navigator !== 'undefined' ? !/Trident|MSIE|Edge/.test(navigator.userAgent) : true,
|
|
25
25
|
env: 'web',
|
package/src/device/Device.ts
CHANGED
|
@@ -261,12 +261,18 @@ export class Device extends EventEmitter {
|
|
|
261
261
|
|
|
262
262
|
const deviceId = _deviceId || this.features?.device_id;
|
|
263
263
|
if (!deviceId) return undefined;
|
|
264
|
+
if (!this.passphraseState) return undefined;
|
|
264
265
|
|
|
265
|
-
const key = `${deviceId}`;
|
|
266
266
|
const usePassKey = `${deviceId}@${this.passphraseState}`;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
267
|
+
|
|
268
|
+
if (!deviceSessionCache[usePassKey]) {
|
|
269
|
+
const key = `${deviceId}`;
|
|
270
|
+
if (deviceSessionCache[key]) {
|
|
271
|
+
deviceSessionCache[usePassKey] = deviceSessionCache[key];
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
return deviceSessionCache[usePassKey];
|
|
270
276
|
}
|
|
271
277
|
|
|
272
278
|
setInternalState(state: string, initSession?: boolean) {
|