@onekeyfe/hd-core 1.1.19-alpha.1 → 1.1.19-alpha.3
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/FirmwareUpdate.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/btc/helpers/btcParamsUtils.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +4 -4
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
- package/dist/api/firmware/bootloaderHelper.d.ts +1 -1
- package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
- package/dist/api/firmware/updateBootloader.d.ts +1 -1
- package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -2
- package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -1
- package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
- package/dist/api/polkadot/networks.d.ts +7 -1
- package/dist/api/polkadot/networks.d.ts.map +1 -1
- package/dist/api/tron/TronGetAddress.d.ts +2 -2
- package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
- package/dist/api/tron/TronSignMessage.d.ts +4 -1
- package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
- package/dist/api/tron/TronSignTransaction.d.ts +3 -3
- package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
- package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +6 -6
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +116 -54
- package/dist/types/api/polkadotSignTransaction.d.ts +2 -1
- package/dist/types/api/polkadotSignTransaction.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/tracing.d.ts.map +1 -1
- package/package.json +6 -8
- package/src/api/FirmwareUpdate.ts +2 -1
- package/src/api/FirmwareUpdateV2.ts +2 -1
- package/src/api/btc/helpers/btcParamsUtils.ts +1 -0
- package/src/api/firmware/FirmwareUpdateBaseMethod.ts +16 -18
- package/src/api/firmware/bootloaderHelper.ts +3 -1
- package/src/api/firmware/updateBootloader.ts +6 -3
- package/src/api/firmware/uploadFirmware.ts +65 -35
- package/src/api/polkadot/PolkadotGetAddress.ts +5 -5
- package/src/api/polkadot/PolkadotSignTransaction.ts +8 -5
- package/src/api/polkadot/networks.ts +16 -0
- package/src/api/tron/TronGetAddress.ts +3 -2
- package/src/api/tron/TronSignMessage.ts +7 -4
- package/src/api/tron/TronSignTransaction.ts +14 -3
- package/src/api/xrp/XrpGetAddress.ts +0 -19
- package/src/core/index.ts +30 -23
- package/src/data/messages/messages.json +4 -0
- package/src/device/DeviceCommands.ts +14 -6
- package/src/types/api/polkadotSignTransaction.ts +2 -1
- package/src/utils/logger.ts +3 -2
- package/src/utils/tracing.ts +47 -60
package/src/utils/tracing.ts
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SDK Tracing Utilities
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* 支持多个 SDK 实例,每个实例有独立的追踪上下文
|
|
3
|
+
* Tracks object instances and request call chains across multiple SDK instances
|
|
6
4
|
*/
|
|
7
5
|
|
|
8
6
|
import { getLogger, LoggerNames } from './logger';
|
|
9
7
|
|
|
10
|
-
//
|
|
11
|
-
// 全局计数器(跨 SDK 实例)
|
|
12
|
-
// ============================================================
|
|
8
|
+
// Global counters (cross-SDK instances)
|
|
13
9
|
|
|
14
10
|
const Log = getLogger(LoggerNames.Core);
|
|
15
11
|
|
|
@@ -17,8 +13,8 @@ let globalInstanceCounter = 0;
|
|
|
17
13
|
let sdkInstanceCounter = 0;
|
|
18
14
|
|
|
19
15
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @returns
|
|
16
|
+
* Generate SDK instance ID
|
|
17
|
+
* @returns Format: "SDK-<number>-<timestamp>"
|
|
22
18
|
* @example "SDK-1-123456"
|
|
23
19
|
*/
|
|
24
20
|
export function generateSdkInstanceId(): string {
|
|
@@ -28,11 +24,11 @@ export function generateSdkInstanceId(): string {
|
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
/**
|
|
31
|
-
*
|
|
32
|
-
* @param type
|
|
33
|
-
* @param sdkInstanceId SDK
|
|
34
|
-
* @returns
|
|
35
|
-
* @example "SDK-1.Device-1-123456"
|
|
27
|
+
* Generate globally unique instance ID
|
|
28
|
+
* @param type Instance type (Device, DeviceCommands, BaseMethod, etc.)
|
|
29
|
+
* @param sdkInstanceId SDK instance ID (optional)
|
|
30
|
+
* @returns Format: <SDK>.<type>-<number>-<timestamp>
|
|
31
|
+
* @example "SDK-1.Device-1-123456" or "Device-1-123456"
|
|
36
32
|
*/
|
|
37
33
|
export function generateInstanceId(type: string, sdkInstanceId?: string): string {
|
|
38
34
|
globalInstanceCounter++;
|
|
@@ -41,58 +37,56 @@ export function generateInstanceId(type: string, sdkInstanceId?: string): string
|
|
|
41
37
|
return sdkInstanceId ? `${sdkInstanceId}.${baseId}` : baseId;
|
|
42
38
|
}
|
|
43
39
|
|
|
44
|
-
//
|
|
45
|
-
// 请求上下文管理
|
|
46
|
-
// ============================================================
|
|
40
|
+
// Request context management
|
|
47
41
|
|
|
48
42
|
/**
|
|
49
|
-
*
|
|
43
|
+
* Request context information
|
|
50
44
|
*/
|
|
51
45
|
export interface RequestContext {
|
|
52
|
-
/**
|
|
46
|
+
/** Request unique ID (reuses BaseMethod.responseID) */
|
|
53
47
|
responseID: number;
|
|
54
|
-
/** SDK
|
|
48
|
+
/** SDK instance ID */
|
|
55
49
|
sdkInstanceId?: string;
|
|
56
|
-
/** API
|
|
50
|
+
/** API method name */
|
|
57
51
|
methodName: string;
|
|
58
|
-
/**
|
|
52
|
+
/** Device connection ID */
|
|
59
53
|
connectId?: string;
|
|
60
|
-
/** Device
|
|
54
|
+
/** Device instance ID */
|
|
61
55
|
deviceInstanceId?: string;
|
|
62
|
-
/** DeviceCommands
|
|
56
|
+
/** DeviceCommands instance ID */
|
|
63
57
|
commandsInstanceId?: string;
|
|
64
|
-
/**
|
|
58
|
+
/** Parent request ID (for nested calls like allNetworkGetAddress) */
|
|
65
59
|
parentResponseID?: number;
|
|
66
|
-
/**
|
|
60
|
+
/** Request start time */
|
|
67
61
|
startTime: number;
|
|
68
|
-
/**
|
|
62
|
+
/** Request end time */
|
|
69
63
|
endTime?: number;
|
|
70
|
-
/**
|
|
64
|
+
/** Request status */
|
|
71
65
|
status?: 'pending' | 'running' | 'success' | 'error' | 'cancelled';
|
|
72
|
-
/**
|
|
66
|
+
/** Error message */
|
|
73
67
|
error?: string;
|
|
74
68
|
}
|
|
75
69
|
|
|
76
70
|
/**
|
|
77
|
-
* SDK
|
|
71
|
+
* SDK instance tracing context
|
|
78
72
|
*/
|
|
79
73
|
export interface SdkTracingContext {
|
|
80
|
-
/** SDK
|
|
74
|
+
/** SDK instance ID */
|
|
81
75
|
sdkInstanceId: string;
|
|
82
|
-
/**
|
|
76
|
+
/** Creation timestamp */
|
|
83
77
|
createdAt: number;
|
|
84
|
-
/**
|
|
78
|
+
/** Active requests */
|
|
85
79
|
activeRequests: Map<number, RequestContext>;
|
|
86
80
|
}
|
|
87
81
|
|
|
88
|
-
//
|
|
82
|
+
// Global SDK instance tracking map
|
|
89
83
|
const sdkInstances = new Map<string, SdkTracingContext>();
|
|
90
84
|
|
|
91
|
-
//
|
|
85
|
+
// Global request map (cross-SDK instances for quick lookup)
|
|
92
86
|
const globalActiveRequests = new Map<number, RequestContext>();
|
|
93
87
|
|
|
94
88
|
/**
|
|
95
|
-
*
|
|
89
|
+
* Create SDK instance tracing context
|
|
96
90
|
*/
|
|
97
91
|
export function createSdkTracingContext(): SdkTracingContext {
|
|
98
92
|
const sdkInstanceId = generateSdkInstanceId();
|
|
@@ -108,10 +102,10 @@ export function createSdkTracingContext(): SdkTracingContext {
|
|
|
108
102
|
}
|
|
109
103
|
|
|
110
104
|
/**
|
|
111
|
-
*
|
|
112
|
-
* @param responseID
|
|
113
|
-
* @param methodName API
|
|
114
|
-
* @param options
|
|
105
|
+
* Create and register request context
|
|
106
|
+
* @param responseID Request ID (reuses BaseMethod.responseID)
|
|
107
|
+
* @param methodName API method name
|
|
108
|
+
* @param options Additional options
|
|
115
109
|
*/
|
|
116
110
|
export function createRequestContext(
|
|
117
111
|
responseID: number,
|
|
@@ -136,10 +130,10 @@ export function createRequestContext(
|
|
|
136
130
|
status: 'pending',
|
|
137
131
|
};
|
|
138
132
|
|
|
139
|
-
//
|
|
133
|
+
// Register to global map
|
|
140
134
|
globalActiveRequests.set(context.responseID, context);
|
|
141
135
|
|
|
142
|
-
//
|
|
136
|
+
// Register to SDK instance map
|
|
143
137
|
if (options?.sdkInstanceId) {
|
|
144
138
|
const sdkContext = sdkInstances.get(options.sdkInstanceId);
|
|
145
139
|
if (sdkContext) {
|
|
@@ -151,7 +145,7 @@ export function createRequestContext(
|
|
|
151
145
|
}
|
|
152
146
|
|
|
153
147
|
/**
|
|
154
|
-
*
|
|
148
|
+
* Update request context
|
|
155
149
|
*/
|
|
156
150
|
export function updateRequestContext(responseID: number, updates: Partial<RequestContext>): void {
|
|
157
151
|
const context = globalActiveRequests.get(responseID);
|
|
@@ -161,7 +155,7 @@ export function updateRequestContext(responseID: number, updates: Partial<Reques
|
|
|
161
155
|
}
|
|
162
156
|
|
|
163
157
|
/**
|
|
164
|
-
*
|
|
158
|
+
* Complete request context
|
|
165
159
|
*/
|
|
166
160
|
export function completeRequestContext(responseID: number, error?: Error): void {
|
|
167
161
|
const context = globalActiveRequests.get(responseID);
|
|
@@ -170,16 +164,15 @@ export function completeRequestContext(responseID: number, error?: Error): void
|
|
|
170
164
|
context.status = error ? 'error' : 'success';
|
|
171
165
|
if (error) {
|
|
172
166
|
context.error = error.message;
|
|
173
|
-
// print core log
|
|
174
167
|
Log.error(
|
|
175
168
|
`[RequestContext] [completeRequestContext] Error: ${formatRequestContext(context)}`
|
|
176
169
|
);
|
|
177
170
|
}
|
|
178
171
|
|
|
179
|
-
//
|
|
172
|
+
// Remove from active list
|
|
180
173
|
globalActiveRequests.delete(responseID);
|
|
181
174
|
|
|
182
|
-
//
|
|
175
|
+
// Remove from SDK instance
|
|
183
176
|
if (context.sdkInstanceId) {
|
|
184
177
|
const sdkContext = sdkInstances.get(context.sdkInstanceId);
|
|
185
178
|
if (sdkContext) {
|
|
@@ -189,12 +182,10 @@ export function completeRequestContext(responseID: number, error?: Error): void
|
|
|
189
182
|
}
|
|
190
183
|
}
|
|
191
184
|
|
|
192
|
-
//
|
|
193
|
-
// 查询 API
|
|
194
|
-
// ============================================================
|
|
185
|
+
// Query API
|
|
195
186
|
|
|
196
187
|
/**
|
|
197
|
-
*
|
|
188
|
+
* Get active requests for specific Device instance
|
|
198
189
|
*/
|
|
199
190
|
export function getActiveRequestsByDeviceInstance(deviceInstanceId: string): RequestContext[] {
|
|
200
191
|
return Array.from(globalActiveRequests.values()).filter(
|
|
@@ -202,12 +193,10 @@ export function getActiveRequestsByDeviceInstance(deviceInstanceId: string): Req
|
|
|
202
193
|
);
|
|
203
194
|
}
|
|
204
195
|
|
|
205
|
-
//
|
|
206
|
-
// 格式化输出
|
|
207
|
-
// ============================================================
|
|
196
|
+
// Format output
|
|
208
197
|
|
|
209
198
|
/**
|
|
210
|
-
*
|
|
199
|
+
* Format request context for logging
|
|
211
200
|
*/
|
|
212
201
|
export function formatRequestContext(context: RequestContext): string {
|
|
213
202
|
const duration = context.endTime
|
|
@@ -230,22 +219,20 @@ export function formatRequestContext(context: RequestContext): string {
|
|
|
230
219
|
return parts.join(' ');
|
|
231
220
|
}
|
|
232
221
|
|
|
233
|
-
//
|
|
234
|
-
// 清理和重置
|
|
235
|
-
// ============================================================
|
|
222
|
+
// Cleanup and reset
|
|
236
223
|
|
|
237
224
|
/**
|
|
238
|
-
*
|
|
225
|
+
* Cleanup specific SDK instance
|
|
239
226
|
*/
|
|
240
227
|
export function cleanupSdkInstance(sdkInstanceId: string): void {
|
|
241
228
|
const sdkContext = sdkInstances.get(sdkInstanceId);
|
|
242
229
|
if (sdkContext) {
|
|
243
|
-
//
|
|
230
|
+
// Remove SDK requests from global active requests
|
|
244
231
|
for (const responseID of sdkContext.activeRequests.keys()) {
|
|
245
232
|
globalActiveRequests.delete(responseID);
|
|
246
233
|
}
|
|
247
234
|
|
|
248
|
-
//
|
|
235
|
+
// Remove SDK instance
|
|
249
236
|
sdkInstances.delete(sdkInstanceId);
|
|
250
237
|
}
|
|
251
238
|
}
|