Skip to content

Commit f2d2ffc

Browse files
Fix/not support method (#621)
* fix: error message * chore: release 1.1.19
1 parent 3f2601d commit f2d2ffc

File tree

21 files changed

+156
-100
lines changed

21 files changed

+156
-100
lines changed

packages/connect-examples/electron-example/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "hardware-example",
33
"productName": "HardwareExample",
44
"executableName": "onekey-hardware-example",
5-
"version": "1.1.19-alpha.8",
5+
"version": "1.1.19",
66
"author": "OneKey",
77
"description": "End-to-end encrypted workspaces for teams",
88
"main": "dist/index.js",
@@ -22,7 +22,7 @@
2222
"ts:check": "yarn tsc --noEmit"
2323
},
2424
"dependencies": {
25-
"@onekeyfe/hd-transport-electron": "1.1.19-alpha.8",
25+
"@onekeyfe/hd-transport-electron": "1.1.19",
2626
"@stoprocent/noble": "2.3.4",
2727
"debug": "4.3.4",
2828
"electron-is-dev": "^3.0.1",

packages/connect-examples/expo-example/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "expo-example",
3-
"version": "1.1.19-alpha.8",
3+
"version": "1.1.19",
44
"scripts": {
55
"start": "cross-env CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client",
66
"android": "yarn expo run:android",
@@ -19,10 +19,10 @@
1919
"@noble/ed25519": "^2.1.0",
2020
"@noble/hashes": "^1.3.3",
2121
"@noble/secp256k1": "^1.7.1",
22-
"@onekeyfe/hd-ble-sdk": "1.1.19-alpha.8",
23-
"@onekeyfe/hd-common-connect-sdk": "1.1.19-alpha.8",
24-
"@onekeyfe/hd-core": "1.1.19-alpha.8",
25-
"@onekeyfe/hd-web-sdk": "1.1.19-alpha.8",
22+
"@onekeyfe/hd-ble-sdk": "1.1.19",
23+
"@onekeyfe/hd-common-connect-sdk": "1.1.19",
24+
"@onekeyfe/hd-core": "1.1.19",
25+
"@onekeyfe/hd-web-sdk": "1.1.19",
2626
"@onekeyfe/react-native-ble-utils": "^0.1.3",
2727
"@polkadot/util-crypto": "13.1.1",
2828
"@react-native-async-storage/async-storage": "1.21.0",

packages/connect-examples/expo-playground/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "onekey-hardware-playground",
3-
"version": "1.1.19-alpha.8",
3+
"version": "1.1.19",
44
"private": true,
55
"sideEffects": [
66
"app/utils/shim.js",
@@ -17,9 +17,9 @@
1717
},
1818
"dependencies": {
1919
"@noble/hashes": "^1.8.0",
20-
"@onekeyfe/hd-common-connect-sdk": "1.1.19-alpha.8",
21-
"@onekeyfe/hd-core": "1.1.19-alpha.8",
22-
"@onekeyfe/hd-shared": "1.1.19-alpha.8",
20+
"@onekeyfe/hd-common-connect-sdk": "1.1.19",
21+
"@onekeyfe/hd-core": "1.1.19",
22+
"@onekeyfe/hd-shared": "1.1.19",
2323
"@radix-ui/react-checkbox": "^1.3.2",
2424
"@radix-ui/react-dialog": "^1.1.14",
2525
"@radix-ui/react-dropdown-menu": "^2.1.15",

packages/core/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@onekeyfe/hd-core",
3-
"version": "1.1.19-alpha.8",
3+
"version": "1.1.19",
44
"description": "Core processes and APIs for communicating with OneKey hardware devices.",
55
"author": "OneKey",
66
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
@@ -25,8 +25,8 @@
2525
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
2626
},
2727
"dependencies": {
28-
"@onekeyfe/hd-shared": "1.1.19-alpha.8",
29-
"@onekeyfe/hd-transport": "1.1.19-alpha.8",
28+
"@onekeyfe/hd-shared": "1.1.19",
29+
"@onekeyfe/hd-transport": "1.1.19",
3030
"axios": "1.12.2",
3131
"bignumber.js": "^9.0.2",
3232
"bytebuffer": "^5.0.1",

packages/core/src/api/BaseMethod.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import semver from 'semver';
22
import {
3-
ERRORS,
4-
HardwareErrorCode,
3+
createDeviceNotSupportMethodError,
54
createNeedUpgradeFirmwareHardwareError,
65
} from '@onekeyfe/hd-shared';
76

@@ -17,12 +16,13 @@ import {
1716
getLogger,
1817
getMethodVersionRange,
1918
} from '../utils';
19+
import { generateInstanceId } from '../utils/tracing';
2020

2121
import type { Device } from '../device/Device';
2222
import type DeviceConnector from '../device/DeviceConnector';
2323
import type { DeviceFirmwareRange, KnownDevice } from '../types';
2424
import type { CoreMessage } from '../events';
25-
import { generateInstanceId, RequestContext } from '../utils/tracing';
25+
import type { RequestContext } from '../utils/tracing';
2626
import type { CoreContext } from '../core';
2727

2828
const Log = getLogger(LoggerNames.Method);
@@ -224,17 +224,19 @@ export abstract class BaseMethod<Params = undefined> {
224224

225225
if (!versionRange) {
226226
if (options?.strictCheckDeviceSupport) {
227-
throw ERRORS.TypedError(
228-
HardwareErrorCode.DeviceNotSupportMethod,
229-
'Device does not support this method'
230-
);
227+
throw createDeviceNotSupportMethodError(this.name, getFirmwareType(this.device.features));
231228
}
232229
// Equipment that does not need to be repaired
233230
return;
234231
}
235232

236233
if (semver.valid(firmwareVersion) && semver.lt(firmwareVersion, versionRange.min)) {
237-
throw createNeedUpgradeFirmwareHardwareError(firmwareVersion, versionRange.min);
234+
throw createNeedUpgradeFirmwareHardwareError({
235+
currentVersion: firmwareVersion,
236+
requireVersion: versionRange.min,
237+
methodName: this.name,
238+
firmwareType: getFirmwareType(this.device.features),
239+
});
238240
}
239241
}
240242

packages/core/src/api/allnetwork/AllNetworkGetAddressBase.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { validateParams } from '../helpers/paramsValidator';
1212
import { PROTO } from '../../constants';
1313
import { findMethod } from '../utils';
1414
import { DEVICE, IFRAME, createUiMessage } from '../../events';
15-
import { getDeviceFirmwareVersion, getMethodVersionRange } from '../../utils';
15+
import { getDeviceFirmwareVersion, getFirmwareType, getMethodVersionRange } from '../../utils';
1616
import { UI_REQUEST } from '../../constants/ui-request';
1717
import { onDeviceButtonHandler } from '../../core';
1818
import {
@@ -463,9 +463,14 @@ function preCheckDeviceSupport(device: Device, method: BaseMethod) {
463463
semver.valid(versionRange.min) &&
464464
semver.lt(currentVersion, versionRange.min)
465465
) {
466-
throw ERRORS.createNeedUpgradeFirmwareHardwareError(currentVersion, versionRange.min);
466+
throw ERRORS.createNeedUpgradeFirmwareHardwareError({
467+
currentVersion,
468+
requireVersion: versionRange.min,
469+
methodName: method.name,
470+
firmwareType: getFirmwareType(device.features),
471+
});
467472
} else if (method.strictCheckDeviceSupport && !versionRange) {
468-
throw ERRORS.TypedError(HardwareErrorCode.DeviceNotSupportMethod);
473+
throw ERRORS.createDeviceNotSupportMethodError(method.name, getFirmwareType(device.features));
469474
}
470475
}
471476

@@ -483,7 +488,10 @@ function handleSkippableHardwareError(
483488
} else if (errorCode === HardwareErrorCode.DeviceNotSupportMethod) {
484489
error = e;
485490
}
486-
} else if (e.message?.includes('Failure_UnexpectedMessage')) {
491+
} else if (
492+
e.message?.includes('Failure_UnexpectedMessage') ||
493+
e.message?.includes('Failure_UnknownMessage')
494+
) {
487495
const versionRange = getMethodVersionRange(
488496
device.features,
489497
type => method.getVersionRange()[type]
@@ -495,9 +503,17 @@ function handleSkippableHardwareError(
495503
semver.valid(versionRange.min) &&
496504
semver.lt(currentVersion, versionRange.min)
497505
) {
498-
error = ERRORS.createNeedUpgradeFirmwareHardwareError(currentVersion, versionRange.min);
506+
error = ERRORS.createNeedUpgradeFirmwareHardwareError({
507+
currentVersion,
508+
requireVersion: versionRange.min,
509+
methodName: method.name,
510+
firmwareType: getFirmwareType(device.features),
511+
});
499512
} else {
500-
error = ERRORS.TypedError(HardwareErrorCode.DeviceNotSupportMethod, e.message);
513+
error = ERRORS.createDeviceNotSupportMethodError(
514+
method.name,
515+
getFirmwareType(device.features)
516+
);
501517
}
502518
} else if (
503519
e.message?.toLowerCase()?.includes('forbidden key path') ||

packages/core/src/api/helpers/batchGetPublickeys.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
import { EcdsaPublicKeys, Path } from '@onekeyfe/hd-transport';
1+
import {
2+
HardwareErrorCode,
3+
TypedError,
4+
createDeviceNotSupportMethodError,
5+
} from '@onekeyfe/hd-shared';
26

3-
import { TypedError, HardwareErrorCode } from '@onekeyfe/hd-shared';
4-
import { Device } from '../../device/Device';
57
import { supportBatchPublicKey } from '../../utils/deviceFeaturesUtils';
68
import { isEqualBip44CoinType } from './pathUtils';
79
import { splitArray } from '../../utils/arrayUtils';
8-
import { getDeviceType } from '../../utils';
10+
import { getDeviceType, getFirmwareType } from '../../utils';
911
import { DeviceModelToTypes } from '../../types';
1012

13+
import type { EcdsaPublicKeys, Path } from '@onekeyfe/hd-transport';
14+
import type { Device } from '../../device/Device';
15+
1116
export async function batchGetPublickeys(
1217
device: Device,
1318
paths: Path[],
@@ -25,7 +30,7 @@ export async function batchGetPublickeys(
2530

2631
const supportsBatchPublicKey = supportBatchPublicKey(device.features, options);
2732
if (!supportsBatchPublicKey) {
28-
throw TypedError(HardwareErrorCode.DeviceNotSupportMethod);
33+
throw createDeviceNotSupportMethodError('BatchGetPublickeys', getFirmwareType(device.features));
2934
}
3035

3136
const existsPathNotEqualCoinType = paths.find(p => !isEqualBip44CoinType(p.address_n, coinType));
@@ -53,7 +58,10 @@ export async function batchGetPublickeys(
5358
include_node: options?.includeNode ?? false,
5459
});
5560
if (res.type !== 'EcdsaPublicKeys') {
56-
throw TypedError(HardwareErrorCode.DeviceNotSupportMethod, 'BatchGetPublickeys failed');
61+
throw createDeviceNotSupportMethodError(
62+
'BatchGetPublickeys',
63+
getFirmwareType(device.features)
64+
);
5765
} else {
5866
result.root_fingerprint = res.message.root_fingerprint;
5967
result.public_keys.push(...res.message.public_keys);

packages/core/src/api/tron/TronSignMessage.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { TronMessageType } from '@onekeyfe/hd-transport';
2-
import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2+
import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
33

44
import { UI_REQUEST } from '../../constants/ui-request';
55
import { validatePath } from '../helpers/pathUtils';
66
import { BaseMethod } from '../BaseMethod';
77
import { validateParams } from '../helpers/paramsValidator';
88
import { stripHexPrefix } from '../helpers/hexUtils';
9+
import { getFirmwareType } from '../../utils';
910

1011
import type { TronSignMessage as HardwareTronSignMessage } from '@onekeyfe/hd-transport';
1112

@@ -25,9 +26,9 @@ export default class TronSignMessage extends BaseMethod<HardwareTronSignMessage>
2526
const addressN = validatePath(path, 3);
2627

2728
if (this.payload.messageType === 'V1' || this.payload.messageType == null) {
28-
throw ERRORS.TypedError(
29-
HardwareErrorCode.DeviceNotSupportMethod,
30-
'not support tron message v1'
29+
throw createDeviceNotSupportMethodError(
30+
'TronSignMessage',
31+
getFirmwareType(this.device.features)
3132
);
3233
}
3334

packages/core/src/core/index.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
createDefectiveFirmwareError,
88
createDeferred,
99
createDeprecatedHardwareError,
10+
createDeviceNotSupportMethodError,
1011
createNeedUpgradeFirmwareHardwareError,
1112
createNewFirmwareForceUpdateHardwareError,
1213
createNewFirmwareUnReleaseHardwareError,
@@ -387,19 +388,21 @@ const onCallDevice = async (
387388
semver.lt(currentFirmwareVersion, versionRange.min)
388389
) {
389390
if (newVersionStatus === 'none' || newVersionStatus === 'valid') {
390-
throw createNewFirmwareUnReleaseHardwareError(
391-
currentFirmwareVersion,
392-
versionRange.min,
393-
method.name
394-
);
391+
throw createNewFirmwareUnReleaseHardwareError({
392+
currentVersion: currentFirmwareVersion,
393+
requireVersion: versionRange.min,
394+
methodName: method.name,
395+
firmwareType: getFirmwareType(device.features),
396+
});
395397
}
396398

397399
return Promise.reject(
398-
createNeedUpgradeFirmwareHardwareError(
399-
currentFirmwareVersion,
400-
versionRange.min,
401-
method.name
402-
)
400+
createNeedUpgradeFirmwareHardwareError({
401+
currentVersion: currentFirmwareVersion,
402+
requireVersion: versionRange.min,
403+
methodName: method.name,
404+
firmwareType: getFirmwareType(device.features),
405+
})
403406
);
404407
}
405408
if (
@@ -412,10 +415,7 @@ const onCallDevice = async (
412415
);
413416
}
414417
} else if (method.strictCheckDeviceSupport) {
415-
throw ERRORS.TypedError(
416-
HardwareErrorCode.DeviceNotSupportMethod,
417-
`Method '${method.name}' is not supported by this device`
418-
);
418+
throw createDeviceNotSupportMethodError(method.name, getFirmwareType(device.features));
419419
}
420420
}
421421

packages/hd-ble-sdk/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@onekeyfe/hd-ble-sdk",
3-
"version": "1.1.19-alpha.8",
3+
"version": "1.1.19",
44
"author": "OneKey",
55
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
66
"license": "ISC",
@@ -20,8 +20,8 @@
2020
"lint:fix": "eslint . --fix"
2121
},
2222
"dependencies": {
23-
"@onekeyfe/hd-core": "1.1.19-alpha.8",
24-
"@onekeyfe/hd-shared": "1.1.19-alpha.8",
25-
"@onekeyfe/hd-transport-react-native": "1.1.19-alpha.8"
23+
"@onekeyfe/hd-core": "1.1.19",
24+
"@onekeyfe/hd-shared": "1.1.19",
25+
"@onekeyfe/hd-transport-react-native": "1.1.19"
2626
}
2727
}

0 commit comments

Comments
 (0)