@onekeyfe/hd-core 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.
Files changed (140) hide show
  1. package/dist/api/BaseMethod.d.ts +4 -0
  2. package/dist/api/BaseMethod.d.ts.map +1 -1
  3. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  4. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  5. package/dist/api/GetLogs.d.ts +11 -0
  6. package/dist/api/GetLogs.d.ts.map +1 -0
  7. package/dist/api/firmware/releaseHelper.d.ts +18 -0
  8. package/dist/api/firmware/releaseHelper.d.ts.map +1 -0
  9. package/dist/api/index.d.ts +1 -0
  10. package/dist/api/index.d.ts.map +1 -1
  11. package/dist/constants/errors.d.ts.map +1 -1
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  14. package/dist/device/Device.d.ts +3 -1
  15. package/dist/device/Device.d.ts.map +1 -1
  16. package/dist/device/DeviceCommands.d.ts +1 -1
  17. package/dist/device/DeviceCommands.d.ts.map +1 -1
  18. package/dist/device/DeviceList.d.ts +1 -1
  19. package/dist/device/DeviceList.d.ts.map +1 -1
  20. package/dist/events/core.d.ts +3 -1
  21. package/dist/events/core.d.ts.map +1 -1
  22. package/dist/events/firmware.d.ts +21 -0
  23. package/dist/events/firmware.d.ts.map +1 -0
  24. package/dist/events/index.d.ts +2 -0
  25. package/dist/events/index.d.ts.map +1 -1
  26. package/dist/events/log.d.ts +15 -0
  27. package/dist/events/log.d.ts.map +1 -0
  28. package/dist/index.d.ts +134 -40
  29. package/dist/index.js +730 -396
  30. package/dist/inject.d.ts.map +1 -1
  31. package/dist/types/api/btcGetAddress.d.ts +2 -2
  32. package/dist/types/api/btcGetAddress.d.ts.map +1 -1
  33. package/dist/types/api/btcGetPublicKey.d.ts +2 -2
  34. package/dist/types/api/btcGetPublicKey.d.ts.map +1 -1
  35. package/dist/types/api/btcSignMessage.d.ts +1 -1
  36. package/dist/types/api/btcSignMessage.d.ts.map +1 -1
  37. package/dist/types/api/btcSignTransaction.d.ts +1 -1
  38. package/dist/types/api/btcSignTransaction.d.ts.map +1 -1
  39. package/dist/types/api/btcVerifyMessage.d.ts +1 -1
  40. package/dist/types/api/btcVerifyMessage.d.ts.map +1 -1
  41. package/dist/types/api/cipherKeyValue.d.ts +2 -2
  42. package/dist/types/api/cipherKeyValue.d.ts.map +1 -1
  43. package/dist/types/api/evmGetAddress.d.ts +2 -2
  44. package/dist/types/api/evmGetAddress.d.ts.map +1 -1
  45. package/dist/types/api/evmGetPublicKey.d.ts +2 -2
  46. package/dist/types/api/evmGetPublicKey.d.ts.map +1 -1
  47. package/dist/types/api/evmSignMessage.d.ts +1 -1
  48. package/dist/types/api/evmSignMessage.d.ts.map +1 -1
  49. package/dist/types/api/evmSignMessageEIP712.d.ts +1 -1
  50. package/dist/types/api/evmSignMessageEIP712.d.ts.map +1 -1
  51. package/dist/types/api/evmSignTransaction.d.ts +1 -1
  52. package/dist/types/api/evmSignTransaction.d.ts.map +1 -1
  53. package/dist/types/api/evmSignTypedData.d.ts +1 -1
  54. package/dist/types/api/evmSignTypedData.d.ts.map +1 -1
  55. package/dist/types/api/evmVerifyMessage.d.ts +1 -1
  56. package/dist/types/api/evmVerifyMessage.d.ts.map +1 -1
  57. package/dist/types/api/getLogs.d.ts +3 -0
  58. package/dist/types/api/getLogs.d.ts.map +1 -0
  59. package/dist/types/api/index.d.ts +2 -0
  60. package/dist/types/api/index.d.ts.map +1 -1
  61. package/dist/types/api/nemGetAddress.d.ts +2 -2
  62. package/dist/types/api/nemGetAddress.d.ts.map +1 -1
  63. package/dist/types/api/nemSignTransaction.d.ts +1 -1
  64. package/dist/types/api/nemSignTransaction.d.ts.map +1 -1
  65. package/dist/types/api/solGetAddress.d.ts +2 -2
  66. package/dist/types/api/solGetAddress.d.ts.map +1 -1
  67. package/dist/types/api/solSignTransaction.d.ts +2 -2
  68. package/dist/types/api/solSignTransaction.d.ts.map +1 -1
  69. package/dist/types/api/starcoinGetAddress.d.ts +2 -2
  70. package/dist/types/api/starcoinGetAddress.d.ts.map +1 -1
  71. package/dist/types/api/starcoinGetPublicKey.d.ts +2 -2
  72. package/dist/types/api/starcoinGetPublicKey.d.ts.map +1 -1
  73. package/dist/types/api/starcoinSignMessage.d.ts +1 -1
  74. package/dist/types/api/starcoinSignMessage.d.ts.map +1 -1
  75. package/dist/types/api/starcoinSignTransaction.d.ts +1 -1
  76. package/dist/types/api/starcoinSignTransaction.d.ts.map +1 -1
  77. package/dist/types/api/starcoinVerifyMessage.d.ts +1 -1
  78. package/dist/types/api/starcoinVerifyMessage.d.ts.map +1 -1
  79. package/dist/types/api/stellarGetAddress.d.ts +2 -2
  80. package/dist/types/api/stellarGetAddress.d.ts.map +1 -1
  81. package/dist/types/api/stellarSignTransaction.d.ts +1 -1
  82. package/dist/types/api/stellarSignTransaction.d.ts.map +1 -1
  83. package/dist/types/params.d.ts +3 -0
  84. package/dist/types/params.d.ts.map +1 -1
  85. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  86. package/dist/utils/index.d.ts +1 -2
  87. package/dist/utils/index.d.ts.map +1 -1
  88. package/dist/utils/logger.d.ts +56 -0
  89. package/dist/utils/logger.d.ts.map +1 -0
  90. package/package.json +4 -4
  91. package/src/api/BaseMethod.ts +30 -1
  92. package/src/api/CheckBLEFirmwareRelease.ts +4 -9
  93. package/src/api/CheckFirmwareRelease.ts +3 -9
  94. package/src/api/FirmwareUpdate.ts +1 -1
  95. package/src/api/GetLogs.ts +13 -0
  96. package/src/api/device/DeviceVerify.ts +1 -1
  97. package/src/api/firmware/releaseHelper.ts +24 -0
  98. package/src/api/index.ts +2 -0
  99. package/src/constants/errors.ts +5 -1
  100. package/src/core/index.ts +150 -32
  101. package/src/data-manager/TransportManager.ts +8 -6
  102. package/src/device/Device.ts +23 -7
  103. package/src/device/DeviceCommands.ts +12 -9
  104. package/src/device/DeviceConnector.ts +3 -3
  105. package/src/device/DeviceList.ts +25 -10
  106. package/src/events/core.ts +4 -0
  107. package/src/events/firmware.ts +32 -0
  108. package/src/events/index.ts +2 -0
  109. package/src/events/log.ts +23 -0
  110. package/src/inject.ts +55 -46
  111. package/src/types/api/btcGetAddress.ts +3 -5
  112. package/src/types/api/btcGetPublicKey.ts +2 -0
  113. package/src/types/api/btcSignMessage.ts +1 -0
  114. package/src/types/api/btcSignTransaction.ts +1 -0
  115. package/src/types/api/btcVerifyMessage.ts +1 -0
  116. package/src/types/api/cipherKeyValue.ts +2 -0
  117. package/src/types/api/evmGetAddress.ts +2 -0
  118. package/src/types/api/evmGetPublicKey.ts +2 -0
  119. package/src/types/api/evmSignMessage.ts +1 -0
  120. package/src/types/api/evmSignMessageEIP712.ts +1 -0
  121. package/src/types/api/evmSignTransaction.ts +1 -0
  122. package/src/types/api/evmSignTypedData.ts +1 -0
  123. package/src/types/api/evmVerifyMessage.ts +1 -0
  124. package/src/types/api/getLogs.ts +3 -0
  125. package/src/types/api/index.ts +2 -0
  126. package/src/types/api/nemGetAddress.ts +2 -0
  127. package/src/types/api/nemSignTransaction.ts +1 -0
  128. package/src/types/api/solGetAddress.ts +2 -0
  129. package/src/types/api/solSignTransaction.ts +2 -0
  130. package/src/types/api/starcoinGetAddress.ts +2 -0
  131. package/src/types/api/starcoinGetPublicKey.ts +2 -0
  132. package/src/types/api/starcoinSignMessage.ts +1 -0
  133. package/src/types/api/starcoinSignTransaction.ts +1 -0
  134. package/src/types/api/starcoinVerifyMessage.ts +1 -0
  135. package/src/types/api/stellarGetAddress.ts +2 -0
  136. package/src/types/api/stellarSignTransaction.ts +1 -0
  137. package/src/types/params.ts +12 -0
  138. package/src/utils/deviceFeaturesUtils.ts +2 -10
  139. package/src/utils/index.ts +1 -3
  140. package/src/utils/logger.ts +179 -0
@@ -12,10 +12,12 @@ export type SolanaGetAddressParams = {
12
12
 
13
13
  export declare function solGetAddress(
14
14
  connectId: string,
15
+ deviceId: string,
15
16
  params: CommonParams & SolanaGetAddressParams
16
17
  ): Response<SolanaAddress>;
17
18
 
18
19
  export declare function solGetAddress(
19
20
  connectId: string,
21
+ deviceId: string,
20
22
  params: CommonParams & { bundle?: SolanaGetAddressParams[] }
21
23
  ): Response<Array<SolanaAddress>>;
@@ -12,10 +12,12 @@ export type SolanaSignTransactionParams = {
12
12
 
13
13
  export declare function solSignTransaction(
14
14
  connectId: string,
15
+ deviceId: string,
15
16
  params: CommonParams & SolanaSignTransactionParams
16
17
  ): Response<SolanaSignedTx>;
17
18
 
18
19
  export declare function solSignTransaction(
19
20
  connectId: string,
21
+ deviceId: string,
20
22
  params: CommonParams & { bundle?: SolanaSignTransactionParams[] }
21
23
  ): Response<Array<SolanaSignedTx>>;
@@ -12,10 +12,12 @@ export type StarcoinGetAddressParams = {
12
12
 
13
13
  export declare function starcoinGetAddress(
14
14
  connectId: string,
15
+ deviceId: string,
15
16
  params: CommonParams & StarcoinGetAddressParams
16
17
  ): Response<StarcoinAddress>;
17
18
 
18
19
  export declare function starcoinGetAddress(
19
20
  connectId: string,
21
+ deviceId: string,
20
22
  params: CommonParams & { bundle?: StarcoinGetAddressParams[] }
21
23
  ): Response<Array<StarcoinAddress>>;
@@ -12,10 +12,12 @@ export type StarcoinGetPublicKeyParams = {
12
12
 
13
13
  export declare function starcoinGetPublicKey(
14
14
  connectId: string,
15
+ deviceId: string,
15
16
  params: CommonParams & StarcoinGetPublicKeyParams
16
17
  ): Response<StarcoinPublicKey>;
17
18
 
18
19
  export declare function starcoinGetPublicKey(
19
20
  connectId: string,
21
+ deviceId: string,
20
22
  params: CommonParams & { bundle?: StarcoinGetPublicKeyParams[] }
21
23
  ): Response<Array<StarcoinPublicKey>>;
@@ -8,5 +8,6 @@ export type StarcoinSignMessageParams = {
8
8
 
9
9
  export declare function starcoinSignMessage(
10
10
  connectId: string,
11
+ deviceId: string,
11
12
  params: CommonParams & StarcoinSignMessageParams
12
13
  ): Response<StarcoinMessageSignature>;
@@ -8,5 +8,6 @@ export type StarcoinSignTransactionParams = {
8
8
 
9
9
  export declare function starcoinSignTransaction(
10
10
  connectId: string,
11
+ deviceId: string,
11
12
  params: CommonParams & StarcoinSignTransactionParams
12
13
  ): Response<StarcoinSignedTx>;
@@ -9,5 +9,6 @@ export type StarcoinVerifyMessageParams = {
9
9
 
10
10
  export declare function starcoinVerifyMessage(
11
11
  connectId: string,
12
+ deviceId: string,
12
13
  params: CommonParams & StarcoinVerifyMessageParams
13
14
  ): Response<Success>;
@@ -12,10 +12,12 @@ export type StellarGetAddressParams = {
12
12
 
13
13
  export declare function stellarGetAddress(
14
14
  connectId: string,
15
+ deviceId: string,
15
16
  params: CommonParams & StellarGetAddressParams
16
17
  ): Response<StellarAddress>;
17
18
 
18
19
  export declare function stellarGetAddress(
19
20
  connectId: string,
21
+ deviceId: string,
20
22
  params: CommonParams & { bundle?: StellarGetAddressParams[] }
21
23
  ): Response<Array<StellarAddress>>;
@@ -149,5 +149,6 @@ export type StellarSignTransactionParams = {
149
149
 
150
150
  export declare function stellarSignTransaction(
151
151
  connectId: string,
152
+ deviceId: string,
152
153
  params: CommonParams & StellarSignTransactionParams
153
154
  ): Response<StellarSignedTx>;
@@ -1,5 +1,17 @@
1
1
  export interface CommonParams {
2
2
  keepSession?: boolean;
3
+ /**
4
+ * polling connect max retry count
5
+ */
6
+ retryCount?: number;
7
+ /**
8
+ * polling interval time
9
+ */
10
+ pollIntervalTime?: number;
11
+ /**
12
+ * Timeout time for single polling
13
+ */
14
+ timeout?: number;
3
15
  }
4
16
 
5
17
  export type Params<T> = CommonParams & T & { bundle?: undefined };
@@ -24,16 +24,8 @@ export const getDeviceType = (features?: Features): IDeviceType => {
24
24
  return 'classic';
25
25
  };
26
26
 
27
- export const getDeviceTypeOnBootloader = (features?: Features): IDeviceType => {
28
- if (!features || typeof features !== 'object') {
29
- return 'classic';
30
- }
31
- if (features.model === 'T') {
32
- return 'touch';
33
- }
34
-
35
- return getDeviceType(features);
36
- };
27
+ export const getDeviceTypeOnBootloader = (features?: Features): IDeviceType =>
28
+ getDeviceType(features);
37
29
 
38
30
  export const getDeviceTypeByBleName = (name?: string): IDeviceType | null => {
39
31
  if (!name) return 'classic';
@@ -1,5 +1,3 @@
1
- import { initLog, enableLog } from '@onekeyfe/hd-shared';
2
-
3
1
  export * from './assets';
4
2
  export * from './versionUtils';
5
3
  export * from './patch';
@@ -12,4 +10,4 @@ export {
12
10
  } from './deviceFeaturesUtils';
13
11
  export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
14
12
 
15
- export { initLog, enableLog };
13
+ export { getLogger, enableLog, LoggerNames, getLog, setLoggerPostMessage } from './logger';
@@ -0,0 +1,179 @@
1
+ import { CoreMessage } from '../events';
2
+ import { createLogMessage, LOG } from '../events/log';
3
+
4
+ type LogMessage = {
5
+ level: string;
6
+ prefix: string;
7
+ message: any[];
8
+ timestamp: number;
9
+ };
10
+
11
+ const MAX_ENTRIES = 500;
12
+
13
+ let postMessage: (message: CoreMessage) => void;
14
+
15
+ class Log {
16
+ prefix: string;
17
+
18
+ enabled: boolean;
19
+
20
+ messages: LogMessage[];
21
+
22
+ constructor(prefix: string, enabled: boolean) {
23
+ this.prefix = prefix;
24
+ this.enabled = enabled;
25
+ this.messages = [];
26
+ }
27
+
28
+ addMessage(level: string, prefix: string, ...args: any[]) {
29
+ this.messages.push({
30
+ level,
31
+ prefix,
32
+ message: args,
33
+ timestamp: new Date().getTime(),
34
+ });
35
+ if (this.messages.length > MAX_ENTRIES) {
36
+ this.messages.shift();
37
+ }
38
+ }
39
+
40
+ log(...args: any[]) {
41
+ this.addMessage('log', this.prefix, ...args);
42
+ sendLogMessage(this.prefix, ...args);
43
+ if (!this.enabled) {
44
+ return;
45
+ }
46
+ console.log(this.prefix, ...args);
47
+ }
48
+
49
+ error(...args: any[]) {
50
+ this.addMessage('error', this.prefix, ...args);
51
+ sendLogMessage(this.prefix, ...args);
52
+ if (!this.enabled) {
53
+ return;
54
+ }
55
+ console.error(this.prefix, ...args);
56
+ }
57
+
58
+ warn(...args: any[]) {
59
+ this.addMessage('warn', this.prefix, ...args);
60
+ sendLogMessage(this.prefix, ...args);
61
+ if (!this.enabled) {
62
+ return;
63
+ }
64
+ console.warn(this.prefix, ...args);
65
+ }
66
+
67
+ debug(...args: any[]) {
68
+ this.addMessage('debug', this.prefix, ...args);
69
+ sendLogMessage(this.prefix, ...args);
70
+ if (!this.enabled) {
71
+ return;
72
+ }
73
+ console.log(this.prefix, ...args);
74
+ }
75
+ }
76
+
77
+ const _logs: { [k: string]: Log } = {};
78
+
79
+ export const initLog = (prefix: string, enabled?: boolean) => {
80
+ const instance = new Log(prefix, !!enabled);
81
+ _logs[prefix] = instance;
82
+ return instance;
83
+ };
84
+
85
+ export const enableLog = (enabled?: boolean) => {
86
+ Object.keys(_logs).forEach(key => {
87
+ _logs[key].enabled = !!enabled;
88
+ });
89
+ };
90
+
91
+ export const enableLogByPrefix = (prefix: string, enabled: boolean) => {
92
+ if (_logs[prefix]) {
93
+ _logs[prefix].enabled = enabled;
94
+ }
95
+ };
96
+
97
+ export const getLog = () => {
98
+ let logs: LogMessage[] = [];
99
+ Object.keys(_logs).forEach(key => {
100
+ logs = logs.concat(_logs[key].messages);
101
+ });
102
+ logs.sort((a, b) => a.timestamp - b.timestamp);
103
+ return logs;
104
+ };
105
+
106
+ export const setLoggerPostMessage = (postMessageFn: (message: CoreMessage) => void) => {
107
+ postMessage = postMessageFn;
108
+ };
109
+
110
+ const serializeLog = (...args: any[]) =>
111
+ args.map(arg => {
112
+ if (typeof arg === 'string') {
113
+ return arg;
114
+ }
115
+ if (typeof arg === 'number') {
116
+ return arg;
117
+ }
118
+ if (typeof arg === 'boolean') {
119
+ return arg;
120
+ }
121
+ if (typeof arg === 'undefined') {
122
+ return arg;
123
+ }
124
+ if (typeof arg === 'object') {
125
+ return JSON.stringify(arg, getCircularReplacer());
126
+ }
127
+ return arg;
128
+ });
129
+
130
+ const getCircularReplacer = () => {
131
+ const seen = new WeakSet();
132
+ return (_: string, value: any) => {
133
+ if (typeof value === 'object' && value !== null) {
134
+ if (seen.has(value)) {
135
+ return;
136
+ }
137
+ seen.add(value);
138
+ }
139
+ return value;
140
+ };
141
+ };
142
+
143
+ const sendLogMessage = (prefix: string, ...args: any[]) => {
144
+ postMessage?.(createLogMessage(LOG.OUTPUT, serializeLog(prefix, ...args)));
145
+ };
146
+
147
+ export enum LoggerNames {
148
+ Core = 'Core',
149
+ Transport = 'Transport',
150
+ Device = 'Device',
151
+ DeviceCommands = 'DeviceCommands',
152
+ DeviceConnector = 'DeviceConnector',
153
+ DeviceList = 'DeviceList',
154
+ HdBleSdk = '@onekey/hd-ble-sdk',
155
+ HdTransportHttp = '@onekey/hd-transport-http',
156
+ HdBleTransport = '@onekey/hd-ble-transport',
157
+ Connect = '@onekey/connect',
158
+ Iframe = 'IFrame',
159
+ SendMessage = '[SendMessage]',
160
+ Method = '[Method]',
161
+ }
162
+
163
+ export const LoggerMap = {
164
+ [LoggerNames.Core]: initLog(LoggerNames.Core),
165
+ [LoggerNames.Transport]: initLog(LoggerNames.Transport),
166
+ [LoggerNames.Device]: initLog(LoggerNames.Device),
167
+ [LoggerNames.DeviceCommands]: initLog(LoggerNames.DeviceCommands),
168
+ [LoggerNames.DeviceConnector]: initLog(LoggerNames.DeviceConnector),
169
+ [LoggerNames.DeviceList]: initLog(LoggerNames.DeviceList),
170
+ [LoggerNames.HdBleSdk]: initLog(LoggerNames.HdBleSdk),
171
+ [LoggerNames.HdTransportHttp]: initLog(LoggerNames.HdTransportHttp),
172
+ [LoggerNames.HdBleTransport]: initLog(LoggerNames.HdBleTransport),
173
+ [LoggerNames.Connect]: initLog(LoggerNames.Connect),
174
+ [LoggerNames.Iframe]: initLog(LoggerNames.Iframe),
175
+ [LoggerNames.SendMessage]: initLog(LoggerNames.SendMessage),
176
+ [LoggerNames.Method]: initLog(LoggerNames.Method),
177
+ };
178
+
179
+ export const getLogger = (key: LoggerNames) => LoggerMap[key];