@onekeyfe/hd-core 1.1.20-alpha.1 → 1.1.20
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/SearchDevices.d.ts +1 -1
- package/dist/data-manager/DataManager.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +46 -13
- package/dist/types/device.d.ts +3 -2
- package/dist/types/device.d.ts.map +1 -1
- package/dist/types/settings.d.ts +1 -0
- package/dist/types/settings.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/data-manager/DataManager.ts +49 -13
- package/src/device/Device.ts +1 -1
- package/src/types/device.ts +3 -2
- package/src/types/settings.ts +1 -0
|
@@ -6,7 +6,7 @@ export default class SearchDevices extends BaseMethod {
|
|
|
6
6
|
run(): Promise<(import("..").KnownDevice | null)[] | {
|
|
7
7
|
connectId: string;
|
|
8
8
|
deviceType: import("..").IDeviceType;
|
|
9
|
-
|
|
9
|
+
commType: import("packages/hd-transport/dist").OneKeyDeviceCommType;
|
|
10
10
|
path: string;
|
|
11
11
|
session?: string | null | undefined;
|
|
12
12
|
debugSession?: string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/DataManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/DataManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiBjE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EAEd,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,eAAe,wEAKlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAqB7C,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,MAAM,CAAC,SAAS,EAAE,aAAa,CAyB7B;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC;IAEjC,MAAM,CAAC,QAAQ,EAAE;SAAG,OAAO,IAAI,cAAc,GAAG,IAAI;KAAE,CAGpD;IAEF,MAAM,CAAC,kBAAkB,SAAK;IAE9B,MAAM,CAAC,iBAAiB,aACZ,QAAQ,gBACJ,aAAa,KAC1B,qBAAqB,CAyBtB;IAMF,MAAM,CAAC,4BAA4B;kBAKvB,QAAQ;;sBAEJ,aAAa;6BAqB3B;IAMF,MAAM,CAAC,kBAAkB,aAAc,QAAQ,gBAAgB,aAAa,wBAe1E;IAEF,MAAM,CAAC,qBAAqB,aAAc,QAAQ,gBAAgB,aAAa,wBAmB7E;IAEF,MAAM,CAAC,0BAA0B,aACrB,QAAQ,gBACJ,aAAa,KAC1B,aAAa,GAAG,SAAS,CAa1B;IAEF,MAAM,CAAC,mCAAmC,aAC9B,QAAQ,gBACJ,aAAa,KAC1B,aAAa,GAAG,SAAS,CAgB1B;IAEF,MAAM,CAAC,oBAAoB,aAAc,QAAQ,gBAAgB,aAAa;;;QAuB5E;IAEF,MAAM,CAAC,wBAAwB,aAAc,QAAQ,gBAAgB,aAAa,yDAsBhF;IAEF,MAAM,CAAC,oBAAoB,aAAc,QAAQ,KAAG,wBAAwB,CAc1E;IAEF,MAAM,CAAC,uBAAuB,aAAc,QAAQ;;;QAalD;IAEF,MAAM,CAAC,2BAA2B,aAAc,QAAQ,4DAMtD;IAEF,MAAM,CAAC,kBAAkB,iBAAkB,MAAM,KAAG,gBAAgB,CAKlE;IAEF,MAAM,CAAC,kBAAkB;;;kBAAuC;IAEhE,OAAO,CAAC,MAAM,CAAC,yBAAyB;WA4C3B,IAAI,CAAC,QAAQ,EAAE,eAAe;IAiE3C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;WAalC,kBAAkB;IAQ/B,MAAM,CAAC,mBAAmB,CAAC,cAAc,GAAE,cAAyB,GAAG,IAAI;IAI3E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,eAAe;IAEpD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAU/E,MAAM,CAAC,YAAY,QAAS,eAAe,CAAC,KAAK,CAAC,aAC0B;IAG5E,MAAM,CAAC,eAAe,QAAS,eAAe,CAAC,KAAK,CAAC,aAA8B;IAGnF,MAAM,CAAC,eAAe,QAAS,eAAe,CAAC,KAAK,CAAC,aAAsB;CAC5E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import EventEmitter$1, { EventEmitter } from 'events';
|
|
2
2
|
import * as _onekeyfe_hd_transport from '@onekeyfe/hd-transport';
|
|
3
|
-
import {
|
|
3
|
+
import { OneKeyDeviceCommType, Messages, LowlevelTransportSharedPlugin, Features as Features$1, Success as Success$1, RecoveryDeviceType, SafetyCheckLevel, ResourceType, NextU2FCounter, SetU2FCounter, CipheredKeyValue as CipheredKeyValue$1, UintType, EthereumPublicKey, EthereumMessageSignature, Address, MultisigRedeemScriptType, InputScriptType, PublicKey, MessageSignature, SignedPsbt, PrevInput, TxOutputBinType, TxInput, TxOutputType, TxInputType, StarcoinAddress as StarcoinAddress$1, StarcoinPublicKey as StarcoinPublicKey$1, StarcoinMessageSignature, StarcoinSignedTx, NEMAddress as NEMAddress$1, NEMSignedTx, SolanaAddress as SolanaAddress$1, SolanaSignedTx as SolanaSignedTx$1, SolanaOffChainMessageVersion, SolanaOffChainMessageFormat, StellarAddress as StellarAddress$1, StellarSignedTx, TronAddress as TronAddress$1, TronResourceCode, TronSignedTx, TronMessageSignature, ConfluxAddress as ConfluxAddress$1, ConfluxMessageSignature, NearAddress as NearAddress$1, NearSignedTx, AptosAddress as AptosAddress$1, AptosMessageSignature as AptosMessageSignature$1, AptosSignedTx as AptosSignedTx$1, AlgorandAddress, AlgorandSignedTx, CosmosAddress as CosmosAddress$1, CosmosSignedTx as CosmosSignedTx$1, SuiAddress as SuiAddress$1, SuiMessageSignature, CardanoAddressParametersType, CardanoMessageSignature, FilecoinAddress as FilecoinAddress$1, FilecoinSignedTx as FilecoinSignedTx$1, PolkadotAddress as PolkadotAddress$1, PolkadotSignedTx as PolkadotSignedTx$1, KaspaAddress as KaspaAddress$1, NervosAddress as NervosAddress$1, NervosSignedTx as NervosSignedTx$1, DnxAddress as DnxAddress$1, TonWalletVersion, TonWorkChain, TonSignedMessage, TonSignedProof, ScdoAddress as ScdoAddress$1, ScdoSignedMessage, ScdoSignedTx as ScdoSignedTx$1, AlephiumMessageSignature, AlephiumSignedTx as AlephiumSignedTx$1, BenfenAddress as BenfenAddress$1, BenfenMessageSignature, OneKeyDeviceInfo, Transport, ChangeOutputScriptType } from '@onekeyfe/hd-transport';
|
|
4
4
|
export { Messages as PROTO } from '@onekeyfe/hd-transport';
|
|
5
5
|
import { EDeviceType, EFirmwareType, Deferred } from '@onekeyfe/hd-shared';
|
|
6
6
|
|
|
@@ -74,7 +74,7 @@ type KnownDevice = {
|
|
|
74
74
|
uuid: string;
|
|
75
75
|
deviceId: string | null;
|
|
76
76
|
deviceType: IDeviceType | null;
|
|
77
|
-
|
|
77
|
+
commType: OneKeyDeviceCommType | null;
|
|
78
78
|
path: string;
|
|
79
79
|
label: string;
|
|
80
80
|
bleName: string | null;
|
|
@@ -95,6 +95,7 @@ type SearchDevice = {
|
|
|
95
95
|
deviceId: string | null;
|
|
96
96
|
deviceType: IDeviceType;
|
|
97
97
|
name: string;
|
|
98
|
+
commType: OneKeyDeviceCommType;
|
|
98
99
|
};
|
|
99
100
|
type Device$1 = KnownDevice;
|
|
100
101
|
type Features = Messages.Features;
|
|
@@ -183,6 +184,7 @@ type ConnectSettings = {
|
|
|
183
184
|
preRelease?: boolean;
|
|
184
185
|
fetchConfig?: boolean;
|
|
185
186
|
extension?: string;
|
|
187
|
+
configFetcher?: (url: string) => Promise<RemoteConfigResponse | null>;
|
|
186
188
|
};
|
|
187
189
|
type IVersionArray = [number, number, number];
|
|
188
190
|
type ILocale = 'zh-CN' | 'en-US';
|
package/dist/index.js
CHANGED
|
@@ -787,7 +787,7 @@ const createLogMessage = (type, payload) => ({
|
|
|
787
787
|
|
|
788
788
|
const MAX_ENTRIES = 500;
|
|
789
789
|
let postMessage$1;
|
|
790
|
-
class Log$
|
|
790
|
+
class Log$g {
|
|
791
791
|
constructor(prefix, enabled) {
|
|
792
792
|
this.prefix = prefix;
|
|
793
793
|
this.enabled = enabled;
|
|
@@ -839,7 +839,7 @@ class Log$f {
|
|
|
839
839
|
}
|
|
840
840
|
const _logs = {};
|
|
841
841
|
const initLog = (prefix, enabled) => {
|
|
842
|
-
const instance = new Log$
|
|
842
|
+
const instance = new Log$g(prefix, !!enabled);
|
|
843
843
|
_logs[prefix] = instance;
|
|
844
844
|
return instance;
|
|
845
845
|
};
|
|
@@ -1035,7 +1035,7 @@ function patchFeatures(response) {
|
|
|
1035
1035
|
return response;
|
|
1036
1036
|
}
|
|
1037
1037
|
|
|
1038
|
-
const Log$
|
|
1038
|
+
const Log$f = getLogger(exports.LoggerNames.Core);
|
|
1039
1039
|
let globalInstanceCounter = 0;
|
|
1040
1040
|
let sdkInstanceCounter = 0;
|
|
1041
1041
|
function generateSdkInstanceId() {
|
|
@@ -1095,7 +1095,7 @@ function completeRequestContext(responseID, error) {
|
|
|
1095
1095
|
context.status = error ? 'error' : 'success';
|
|
1096
1096
|
if (error) {
|
|
1097
1097
|
context.error = error.message;
|
|
1098
|
-
Log$
|
|
1098
|
+
Log$f.error(`[RequestContext] [completeRequestContext] Error: ${formatRequestContext(context)}`);
|
|
1099
1099
|
}
|
|
1100
1100
|
globalActiveRequests.delete(responseID);
|
|
1101
1101
|
if (context.sdkInstanceId) {
|
|
@@ -25046,6 +25046,7 @@ const findLatestRelease = (releases) => {
|
|
|
25046
25046
|
};
|
|
25047
25047
|
|
|
25048
25048
|
var _a$1;
|
|
25049
|
+
const Log$e = getLogger(exports.LoggerNames.Core);
|
|
25049
25050
|
const FIRMWARE_FIELDS = [
|
|
25050
25051
|
'firmware',
|
|
25051
25052
|
'firmware-v2',
|
|
@@ -25100,13 +25101,44 @@ class DataManager {
|
|
|
25100
25101
|
if (!settings.fetchConfig) {
|
|
25101
25102
|
return;
|
|
25102
25103
|
}
|
|
25103
|
-
|
|
25104
|
-
|
|
25105
|
-
|
|
25106
|
-
|
|
25107
|
-
|
|
25108
|
-
|
|
25109
|
-
|
|
25104
|
+
const url = settings.preRelease
|
|
25105
|
+
? 'https://data.onekey.so/pre-config.json'
|
|
25106
|
+
: 'https://data.onekey.so/config.json';
|
|
25107
|
+
const urlWithCache = `${url}?noCache=${getTimeStamp()}`;
|
|
25108
|
+
let data = null;
|
|
25109
|
+
let fetchMethod = 'none';
|
|
25110
|
+
if (settings.configFetcher) {
|
|
25111
|
+
Log$e.debug('[DataConfig] Trying configFetcher (client-side fetcher)...');
|
|
25112
|
+
try {
|
|
25113
|
+
data = yield settings.configFetcher(urlWithCache);
|
|
25114
|
+
if (data) {
|
|
25115
|
+
fetchMethod = 'configFetcher';
|
|
25116
|
+
Log$e.log('[DataConfig] ConfigFetcher success');
|
|
25117
|
+
}
|
|
25118
|
+
else {
|
|
25119
|
+
Log$e.debug('[DataConfig] ConfigFetcher returned null, will fallback to axios');
|
|
25120
|
+
}
|
|
25121
|
+
}
|
|
25122
|
+
catch (e) {
|
|
25123
|
+
Log$e.warn('[DataConfig] ConfigFetcher error, will fallback to axios:', e);
|
|
25124
|
+
}
|
|
25125
|
+
}
|
|
25126
|
+
if (!data) {
|
|
25127
|
+
Log$e.debug('[DataConfig] Trying axios (SDK default fetcher)...');
|
|
25128
|
+
try {
|
|
25129
|
+
const response = yield axios__default["default"].get(urlWithCache, {
|
|
25130
|
+
timeout: 7000,
|
|
25131
|
+
});
|
|
25132
|
+
data = response.data;
|
|
25133
|
+
fetchMethod = 'axios';
|
|
25134
|
+
Log$e.log('[DataConfig] Axios fetch success');
|
|
25135
|
+
}
|
|
25136
|
+
catch (e) {
|
|
25137
|
+
Log$e.warn('[DataConfig] Axios fetch error:', e);
|
|
25138
|
+
}
|
|
25139
|
+
}
|
|
25140
|
+
if (data) {
|
|
25141
|
+
Log$e.log(`[DataConfig] Config loaded successfully via [${fetchMethod}]`);
|
|
25110
25142
|
this.deviceMap = {
|
|
25111
25143
|
[hdShared.EDeviceType.Classic]: this.enrichFirmwareReleaseInfo(data.classic),
|
|
25112
25144
|
[hdShared.EDeviceType.Classic1s]: this.enrichFirmwareReleaseInfo(data.classic1s),
|
|
@@ -25119,7 +25151,8 @@ class DataManager {
|
|
|
25119
25151
|
bridge: data.bridge,
|
|
25120
25152
|
};
|
|
25121
25153
|
}
|
|
25122
|
-
|
|
25154
|
+
else {
|
|
25155
|
+
Log$e.warn('[DataConfig] All fetch methods failed, using built-in default config');
|
|
25123
25156
|
}
|
|
25124
25157
|
});
|
|
25125
25158
|
}
|
|
@@ -27087,7 +27120,7 @@ class Device extends events.exports {
|
|
|
27087
27120
|
return {
|
|
27088
27121
|
connectId: DataManager.isBleConnect(env) ? this.mainId || null : getDeviceUUID(this.features),
|
|
27089
27122
|
uuid: getDeviceUUID(this.features),
|
|
27090
|
-
|
|
27123
|
+
commType: this.originalDescriptor.commType,
|
|
27091
27124
|
sdkInstanceId: this.sdkInstanceId,
|
|
27092
27125
|
instanceId: this.instanceId,
|
|
27093
27126
|
createdAt: this.createdAt,
|
package/dist/types/device.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EDeviceType } from '@onekeyfe/hd-shared';
|
|
2
2
|
import type { IVersionArray } from './settings';
|
|
3
3
|
import type { PROTO } from '../constants';
|
|
4
|
-
import type {
|
|
4
|
+
import type { OneKeyDeviceCommType } from '@onekeyfe/hd-transport';
|
|
5
5
|
export type DeviceStatus = 'available' | 'occupied' | 'used';
|
|
6
6
|
export declare enum EOneKeyDeviceMode {
|
|
7
7
|
bootloader = "bootloader",
|
|
@@ -18,7 +18,7 @@ export type KnownDevice = {
|
|
|
18
18
|
uuid: string;
|
|
19
19
|
deviceId: string | null;
|
|
20
20
|
deviceType: IDeviceType | null;
|
|
21
|
-
|
|
21
|
+
commType: OneKeyDeviceCommType | null;
|
|
22
22
|
path: string;
|
|
23
23
|
label: string;
|
|
24
24
|
bleName: string | null;
|
|
@@ -39,6 +39,7 @@ export type SearchDevice = {
|
|
|
39
39
|
deviceId: string | null;
|
|
40
40
|
deviceType: IDeviceType;
|
|
41
41
|
name: string;
|
|
42
|
+
commType: OneKeyDeviceCommType;
|
|
42
43
|
};
|
|
43
44
|
export type Device = KnownDevice;
|
|
44
45
|
export type Features = PROTO.Features;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/types/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/types/device.ts"],"names":[],"mappings":"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"}
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export type ConnectSettings = {
|
|
|
20
20
|
preRelease?: boolean;
|
|
21
21
|
fetchConfig?: boolean;
|
|
22
22
|
extension?: string;
|
|
23
|
+
configFetcher?: (url: string) => Promise<RemoteConfigResponse | null>;
|
|
23
24
|
};
|
|
24
25
|
export type IVersionArray = [number, number, number];
|
|
25
26
|
export type ILocale = 'zh-CN' | 'en-US';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,cAAc,GACd,UAAU,GACV,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,UAAU,CAAC;AACf,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,YAAY,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "1.1.20
|
|
3
|
+
"version": "1.1.20",
|
|
4
4
|
"description": "Core processes and APIs for communicating with OneKey hardware devices.",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "1.1.20
|
|
29
|
-
"@onekeyfe/hd-transport": "1.1.20
|
|
28
|
+
"@onekeyfe/hd-shared": "1.1.20",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.1.20",
|
|
30
30
|
"axios": "1.12.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"bytebuffer": "^5.0.1",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"@types/w3c-web-usb": "^1.0.10",
|
|
45
45
|
"@types/web-bluetooth": "^0.0.21"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3f1367f1ad5253e2207442e74fa47361df7ff442"
|
|
48
48
|
}
|
|
@@ -5,11 +5,13 @@ import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
|
|
|
5
5
|
import MessagesJSON from '../data/messages/messages.json';
|
|
6
6
|
import MessagesLegacyV1JSON from '../data/messages/messages_legacy_v1.json';
|
|
7
7
|
import {
|
|
8
|
+
LoggerNames,
|
|
8
9
|
getDeviceBLEFirmwareVersion,
|
|
9
10
|
getDeviceFirmwareVersion,
|
|
10
11
|
getDeviceType,
|
|
11
12
|
getFirmwareType,
|
|
12
13
|
getFirmwareUpdateField,
|
|
14
|
+
getLogger,
|
|
13
15
|
getTimeStamp,
|
|
14
16
|
} from '../utils';
|
|
15
17
|
import { DeviceModelToTypes } from '../types';
|
|
@@ -27,6 +29,8 @@ import type {
|
|
|
27
29
|
RemoteConfigResponse,
|
|
28
30
|
} from '../types';
|
|
29
31
|
|
|
32
|
+
const Log = getLogger(LoggerNames.Core);
|
|
33
|
+
|
|
30
34
|
export const FIRMWARE_FIELDS = [
|
|
31
35
|
'firmware',
|
|
32
36
|
'firmware-v2',
|
|
@@ -387,18 +391,50 @@ export default class DataManager {
|
|
|
387
391
|
if (!settings.fetchConfig) {
|
|
388
392
|
return;
|
|
389
393
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
394
|
+
|
|
395
|
+
const url = settings.preRelease
|
|
396
|
+
? 'https://data.onekey.so/pre-config.json'
|
|
397
|
+
: 'https://data.onekey.so/config.json';
|
|
398
|
+
|
|
399
|
+
const urlWithCache = `${url}?noCache=${getTimeStamp()}`;
|
|
400
|
+
let data: RemoteConfigResponse | null = null;
|
|
401
|
+
let fetchMethod: 'configFetcher' | 'axios' | 'none' = 'none';
|
|
402
|
+
|
|
403
|
+
// 1. Try custom configFetcher first (client-side IP direct connection support)
|
|
404
|
+
if (settings.configFetcher) {
|
|
405
|
+
Log.debug('[DataConfig] Trying configFetcher (client-side fetcher)...');
|
|
406
|
+
try {
|
|
407
|
+
data = await settings.configFetcher(urlWithCache);
|
|
408
|
+
if (data) {
|
|
409
|
+
fetchMethod = 'configFetcher';
|
|
410
|
+
Log.log('[DataConfig] ConfigFetcher success');
|
|
411
|
+
} else {
|
|
412
|
+
Log.debug('[DataConfig] ConfigFetcher returned null, will fallback to axios');
|
|
400
413
|
}
|
|
401
|
-
)
|
|
414
|
+
} catch (e) {
|
|
415
|
+
Log.warn('[DataConfig] ConfigFetcher error, will fallback to axios:', e);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// 2. Fallback to default axios request
|
|
420
|
+
if (!data) {
|
|
421
|
+
Log.debug('[DataConfig] Trying axios (SDK default fetcher)...');
|
|
422
|
+
try {
|
|
423
|
+
const response = await axios.get<RemoteConfigResponse>(urlWithCache, {
|
|
424
|
+
// because of iframe timeout is 10000
|
|
425
|
+
timeout: 7000,
|
|
426
|
+
});
|
|
427
|
+
data = response.data;
|
|
428
|
+
fetchMethod = 'axios';
|
|
429
|
+
Log.log('[DataConfig] Axios fetch success');
|
|
430
|
+
} catch (e) {
|
|
431
|
+
Log.warn('[DataConfig] Axios fetch error:', e);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// 3. Apply config if available
|
|
436
|
+
if (data) {
|
|
437
|
+
Log.log(`[DataConfig] Config loaded successfully via [${fetchMethod}]`);
|
|
402
438
|
this.deviceMap = {
|
|
403
439
|
[EDeviceType.Classic]: this.enrichFirmwareReleaseInfo(data.classic),
|
|
404
440
|
[EDeviceType.Classic1s]: this.enrichFirmwareReleaseInfo(data.classic1s),
|
|
@@ -410,8 +446,8 @@ export default class DataManager {
|
|
|
410
446
|
this.assets = {
|
|
411
447
|
bridge: data.bridge,
|
|
412
448
|
};
|
|
413
|
-
}
|
|
414
|
-
|
|
449
|
+
} else {
|
|
450
|
+
Log.warn('[DataConfig] All fetch methods failed, using built-in default config');
|
|
415
451
|
}
|
|
416
452
|
}
|
|
417
453
|
|
package/src/device/Device.ts
CHANGED
|
@@ -201,7 +201,7 @@ export class Device extends EventEmitter {
|
|
|
201
201
|
connectId: DataManager.isBleConnect(env) ? this.mainId || null : getDeviceUUID(this.features),
|
|
202
202
|
/** Hardware ID, will not change at any time */
|
|
203
203
|
uuid: getDeviceUUID(this.features),
|
|
204
|
-
|
|
204
|
+
commType: this.originalDescriptor.commType,
|
|
205
205
|
sdkInstanceId: this.sdkInstanceId,
|
|
206
206
|
instanceId: this.instanceId,
|
|
207
207
|
createdAt: this.createdAt,
|
package/src/types/device.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { EDeviceType } from '@onekeyfe/hd-shared';
|
|
|
2
2
|
|
|
3
3
|
import type { IVersionArray } from './settings';
|
|
4
4
|
import type { PROTO } from '../constants';
|
|
5
|
-
import type {
|
|
5
|
+
import type { OneKeyDeviceCommType } from '@onekeyfe/hd-transport';
|
|
6
6
|
|
|
7
7
|
export type DeviceStatus = 'available' | 'occupied' | 'used';
|
|
8
8
|
|
|
@@ -26,7 +26,7 @@ export type KnownDevice = {
|
|
|
26
26
|
uuid: string;
|
|
27
27
|
deviceId: string | null;
|
|
28
28
|
deviceType: IDeviceType | null;
|
|
29
|
-
|
|
29
|
+
commType: OneKeyDeviceCommType | null;
|
|
30
30
|
path: string;
|
|
31
31
|
label: string;
|
|
32
32
|
bleName: string | null;
|
|
@@ -50,6 +50,7 @@ export type SearchDevice = {
|
|
|
50
50
|
deviceId: string | null;
|
|
51
51
|
deviceType: IDeviceType;
|
|
52
52
|
name: string;
|
|
53
|
+
commType: OneKeyDeviceCommType;
|
|
53
54
|
};
|
|
54
55
|
|
|
55
56
|
// export type UnknownDevice = {
|
package/src/types/settings.ts
CHANGED