@onekeyfe/hd-core 1.1.27-alpha.42 → 1.1.27-alpha.45

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 (153) hide show
  1. package/__tests__/DeviceCommands.test.ts +99 -0
  2. package/__tests__/evmLedgerLegacySafety.test.ts +261 -0
  3. package/__tests__/preInitialize.test.ts +22 -0
  4. package/__tests__/protocol-v2.test.ts +233 -20
  5. package/dist/api/BaseMethod.d.ts +7 -1
  6. package/dist/api/BaseMethod.d.ts.map +1 -1
  7. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  8. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  9. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  10. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  11. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  12. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  13. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  14. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  15. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  16. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  17. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  18. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  19. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  20. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  21. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  22. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  23. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  24. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  25. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  26. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  27. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  28. package/dist/api/device/PreInitialize.d.ts +6 -0
  29. package/dist/api/device/PreInitialize.d.ts.map +1 -0
  30. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  31. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  32. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  33. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  34. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  35. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  36. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +2 -10
  37. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  38. package/dist/api/index.d.ts +1 -0
  39. package/dist/api/index.d.ts.map +1 -1
  40. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  41. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  42. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  43. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  44. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  45. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  46. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  47. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  48. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  49. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +1 -1
  50. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  51. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  52. package/dist/api/solana/SolSignMessage.d.ts +0 -1
  53. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  54. package/dist/api/solana/SolSignOffchainMessage.d.ts +0 -1
  55. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  56. package/dist/api/solana/SolSignTransaction.d.ts +0 -2
  57. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  58. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  59. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  60. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  61. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  62. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  63. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  64. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  65. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  66. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  67. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  68. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  69. package/dist/core/PollingStateManager.d.ts +8 -0
  70. package/dist/core/PollingStateManager.d.ts.map +1 -0
  71. package/dist/core/RequestQueue.d.ts +1 -1
  72. package/dist/core/RequestQueue.d.ts.map +1 -1
  73. package/dist/core/index.d.ts.map +1 -1
  74. package/dist/device/Device.d.ts +17 -1
  75. package/dist/device/Device.d.ts.map +1 -1
  76. package/dist/index.d.ts +22 -2
  77. package/dist/index.js +454 -195
  78. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  79. package/dist/types/api/index.d.ts +2 -0
  80. package/dist/types/api/index.d.ts.map +1 -1
  81. package/dist/types/api/preInitialize.d.ts +3 -0
  82. package/dist/types/api/preInitialize.d.ts.map +1 -0
  83. package/dist/types/params.d.ts +1 -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/patch.d.ts +1 -1
  87. package/package.json +4 -4
  88. package/src/api/BaseMethod.ts +82 -2
  89. package/src/api/FirmwareUpdateV3.ts +0 -4
  90. package/src/api/FirmwareUpdateV4.ts +1 -19
  91. package/src/api/GetPassphraseState.ts +4 -3
  92. package/src/api/alephium/AlephiumSignMessage.ts +1 -0
  93. package/src/api/alephium/AlephiumSignTransaction.ts +1 -0
  94. package/src/api/algo/AlgoSignTransaction.ts +1 -0
  95. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +8 -0
  96. package/src/api/aptos/AptosSignInMessage.ts +1 -0
  97. package/src/api/aptos/AptosSignMessage.ts +1 -0
  98. package/src/api/aptos/AptosSignTransaction.ts +1 -0
  99. package/src/api/benfen/BenfenSignMessage.ts +1 -0
  100. package/src/api/benfen/BenfenSignTransaction.ts +1 -0
  101. package/src/api/btc/BTCSignMessage.ts +1 -0
  102. package/src/api/btc/BTCSignPsbt.ts +1 -0
  103. package/src/api/btc/BTCSignTransaction.ts +1 -0
  104. package/src/api/cardano/CardanoSignMessage.ts +1 -0
  105. package/src/api/cardano/CardanoSignTransaction.ts +1 -0
  106. package/src/api/conflux/ConfluxSignMessage.ts +1 -0
  107. package/src/api/conflux/ConfluxSignMessageCIP23.ts +1 -0
  108. package/src/api/conflux/ConfluxSignTransaction.ts +1 -0
  109. package/src/api/cosmos/CosmosSignTransaction.ts +1 -0
  110. package/src/api/device/PreInitialize.ts +41 -0
  111. package/src/api/dynex/DnxSignTransaction.ts +1 -0
  112. package/src/api/evm/EVMSignMessage.ts +2 -0
  113. package/src/api/evm/EVMSignMessageEIP712.ts +1 -0
  114. package/src/api/evm/EVMSignTransaction.ts +2 -0
  115. package/src/api/evm/EVMSignTypedData.ts +2 -0
  116. package/src/api/filecoin/FilecoinSignTransaction.ts +1 -0
  117. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +4 -27
  118. package/src/api/index.ts +1 -0
  119. package/src/api/kaspa/KaspaSignTransaction.ts +1 -0
  120. package/src/api/near/NearSignTransaction.ts +1 -0
  121. package/src/api/nem/NEMSignTransaction.ts +1 -0
  122. package/src/api/neo/NeoSignTransaction.ts +1 -0
  123. package/src/api/nervos/NervosSignTransaction.ts +1 -0
  124. package/src/api/nexa/NexaSignTransaction.ts +2 -0
  125. package/src/api/nostr/NostrSignEvent.ts +1 -0
  126. package/src/api/nostr/NostrSignSchnorr.ts +1 -0
  127. package/src/api/polkadot/PolkadotSignTransaction.ts +1 -0
  128. package/src/api/scdo/ScdoSignMessage.ts +1 -0
  129. package/src/api/scdo/ScdoSignTransaction.ts +1 -0
  130. package/src/api/solana/SolSignMessage.ts +1 -1
  131. package/src/api/solana/SolSignOffchainMessage.ts +1 -1
  132. package/src/api/solana/SolSignTransaction.ts +1 -2
  133. package/src/api/starcoin/StarcoinSignMessage.ts +1 -0
  134. package/src/api/starcoin/StarcoinSignTransaction.ts +1 -0
  135. package/src/api/stellar/StellarSignTransaction.ts +1 -0
  136. package/src/api/sui/SuiSignMessage.ts +1 -0
  137. package/src/api/sui/SuiSignTransaction.ts +1 -0
  138. package/src/api/ton/TonSignData.ts +1 -0
  139. package/src/api/ton/TonSignMessage.ts +1 -0
  140. package/src/api/ton/TonSignProof.ts +1 -0
  141. package/src/api/tron/TronSignMessage.ts +1 -0
  142. package/src/api/tron/TronSignTransaction.ts +1 -0
  143. package/src/api/xrp/XrpSignTransaction.ts +1 -0
  144. package/src/core/PollingStateManager.ts +47 -0
  145. package/src/core/RequestQueue.ts +10 -3
  146. package/src/core/index.ts +153 -34
  147. package/src/device/Device.ts +91 -29
  148. package/src/inject.ts +1 -1
  149. package/src/protocols/protocol-v2/features.ts +5 -6
  150. package/src/types/api/index.ts +2 -0
  151. package/src/types/api/preInitialize.ts +3 -0
  152. package/src/types/params.ts +5 -0
  153. package/src/utils/deviceFeaturesUtils.ts +8 -17
@@ -19,7 +19,7 @@ import { existCapability } from './capabilitieUtils';
19
19
 
20
20
  import type { Device } from '../device/Device';
21
21
  import type { DeviceCommands } from '../device/DeviceCommands';
22
- import type { Features, SupportFeatureType } from '../types';
22
+ import type { Features, IDeviceType, SupportFeatureType } from '../types';
23
23
 
24
24
  export const getSupportProtocolV1MessageSchema = (
25
25
  features: Features | undefined
@@ -98,7 +98,6 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
98
98
  const { features, commands } = device;
99
99
  const locked = features?.unlocked === false;
100
100
  const deviceType = getDeviceType(features);
101
- const isPro2 = deviceType === EDeviceType.Pro2;
102
101
 
103
102
  const { passphraseState, newSession, unlockedAttachPin } = await getPassphraseState(
104
103
  features,
@@ -112,8 +111,7 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
112
111
 
113
112
  // 如果可以获取到 passphraseState,但是设备 features 显示设备未开启 passphrase,需要刷新设备状态
114
113
  // if passphraseState can be obtained, but the device features show that the device has not enabled passphrase, the device status needs to be refreshed
115
- const needRefreshWithPassphrase =
116
- !isPro2 && passphraseState && features?.passphrase_protection !== true;
114
+ const needRefreshWithPassphrase = passphraseState && features?.passphrase_protection !== true;
117
115
  // 如果 Touch/Pro 在之前是锁定状态,刷新设备状态
118
116
  // if Touch/Pro was locked before, refresh the device state
119
117
  const needRefreshWithLocked = isModeT && locked;
@@ -123,19 +121,10 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
123
121
  await device.getFeatures();
124
122
  }
125
123
 
126
- if (isPro2 && device.features) {
127
- if (passphraseState) {
128
- device.features.passphrase_protection = true;
129
- }
130
- if (newSession) {
131
- device.features.session_id = newSession;
132
- }
133
- }
134
-
135
124
  // Attach to pin try to fix internal state
136
125
  if (features?.device_id) {
137
126
  device.updateInternalState(
138
- (device.features?.passphrase_protection ?? false) || isPro2,
127
+ device.features?.passphrase_protection ?? false,
139
128
  passphraseState,
140
129
  device.features?.device_id ?? '',
141
130
  newSession,
@@ -146,6 +135,10 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
146
135
  return { passphraseState, newSession, unlockedAttachPin };
147
136
  };
148
137
 
138
+ const supportProSeriesAttachPinPassphrase = (deviceType: IDeviceType, firmwareVersion: string) =>
139
+ (deviceType === EDeviceType.Pro || deviceType === EDeviceType.Pro2) &&
140
+ semver.gte(firmwareVersion, '4.15.0');
141
+
149
142
  export const getPassphraseState = async (
150
143
  features: Features | undefined,
151
144
  commands: DeviceCommands,
@@ -171,9 +164,7 @@ export const getPassphraseState = async (
171
164
  );
172
165
  const supportGetPassphraseState =
173
166
  supportAttachPinCapability ||
174
- // Pro2 V2 暂未从 features 暴露 capabilities,先直连该方法用于固件联调。
175
- deviceType === EDeviceType.Pro2 ||
176
- (deviceType === EDeviceType.Pro && semver.gte(firmwareVersion.join('.'), '4.15.0'));
167
+ supportProSeriesAttachPinPassphrase(deviceType, firmwareVersion.join('.'));
177
168
 
178
169
  if (supportGetPassphraseState) {
179
170
  const payload: GetPassphraseStateMessage = options?.onlyMainPin