@ukeyfe/hardware-core 1.1.13

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 (1115) hide show
  1. package/.eslintrc +6 -0
  2. package/README.md +32 -0
  3. package/__tests__/benfen.test.ts +68 -0
  4. package/__tests__/checkBootloaderReleast.test.ts +114 -0
  5. package/__tests__/evmSignTransaction.test.ts +418 -0
  6. package/dist/api/BaseMethod.d.ts +46 -0
  7. package/dist/api/BaseMethod.d.ts.map +1 -0
  8. package/dist/api/CheckAllFirmwareRelease.d.ts +7 -0
  9. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -0
  10. package/dist/api/CheckBLEFirmwareRelease.d.ts +14 -0
  11. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -0
  12. package/dist/api/CheckBootloaderRelease.d.ts +15 -0
  13. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -0
  14. package/dist/api/CheckBridgeRelease.d.ts +14 -0
  15. package/dist/api/CheckBridgeRelease.d.ts.map +1 -0
  16. package/dist/api/CheckBridgeStatus.d.ts +6 -0
  17. package/dist/api/CheckBridgeStatus.d.ts.map +1 -0
  18. package/dist/api/CheckFirmwareRelease.d.ts +14 -0
  19. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -0
  20. package/dist/api/CipherKeyValue.d.ts +9 -0
  21. package/dist/api/CipherKeyValue.d.ts.map +1 -0
  22. package/dist/api/EmmcFileWrite.d.ts +13 -0
  23. package/dist/api/EmmcFileWrite.d.ts.map +1 -0
  24. package/dist/api/FirmwareUpdate.d.ts +16 -0
  25. package/dist/api/FirmwareUpdate.d.ts.map +1 -0
  26. package/dist/api/FirmwareUpdateV2.d.ts +24 -0
  27. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -0
  28. package/dist/api/FirmwareUpdateV3.d.ts +20 -0
  29. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -0
  30. package/dist/api/GetFeatures.d.ts +6 -0
  31. package/dist/api/GetFeatures.d.ts.map +1 -0
  32. package/dist/api/GetLogs.d.ts +12 -0
  33. package/dist/api/GetLogs.d.ts.map +1 -0
  34. package/dist/api/GetPassphraseState.d.ts +6 -0
  35. package/dist/api/GetPassphraseState.d.ts.map +1 -0
  36. package/dist/api/GetUkeyFeatures.d.ts +6 -0
  37. package/dist/api/GetUkeyFeatures.d.ts.map +1 -0
  38. package/dist/api/PromptWebDeviceAccess.d.ts +8 -0
  39. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -0
  40. package/dist/api/SearchDevices.d.ts +17 -0
  41. package/dist/api/SearchDevices.d.ts.map +1 -0
  42. package/dist/api/alephium/AlephiumGetAddress.d.ts +14 -0
  43. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -0
  44. package/dist/api/alephium/AlephiumSignMessage.d.ts +12 -0
  45. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -0
  46. package/dist/api/alephium/AlephiumSignTransaction.d.ts +16 -0
  47. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -0
  48. package/dist/api/algo/AlgoGetAddress.d.ts +14 -0
  49. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -0
  50. package/dist/api/algo/AlgoSignTransaction.d.ts +16 -0
  51. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -0
  52. package/dist/api/allnetwork/AllNetworkGetAddress.d.ts +6 -0
  53. package/dist/api/allnetwork/AllNetworkGetAddress.d.ts.map +1 -0
  54. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +47 -0
  55. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -0
  56. package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts +8 -0
  57. package/dist/api/allnetwork/AllNetworkGetAddressByLoop.d.ts.map +1 -0
  58. package/dist/api/aptos/AptosGetAddress.d.ts +16 -0
  59. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -0
  60. package/dist/api/aptos/AptosGetPublicKey.d.ts +13 -0
  61. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -0
  62. package/dist/api/aptos/AptosSignInMessage.d.ts +13 -0
  63. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -0
  64. package/dist/api/aptos/AptosSignMessage.d.ts +13 -0
  65. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -0
  66. package/dist/api/aptos/AptosSignTransaction.d.ts +24 -0
  67. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -0
  68. package/dist/api/benfen/BenfenGetAddress.d.ts +19 -0
  69. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -0
  70. package/dist/api/benfen/BenfenGetPublicKey.d.ts +17 -0
  71. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -0
  72. package/dist/api/benfen/BenfenSignMessage.d.ts +15 -0
  73. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -0
  74. package/dist/api/benfen/BenfenSignTransaction.d.ts +19 -0
  75. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -0
  76. package/dist/api/benfen/normalize.d.ts +9 -0
  77. package/dist/api/benfen/normalize.d.ts.map +1 -0
  78. package/dist/api/btc/BTCGetAddress.d.ts +20 -0
  79. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -0
  80. package/dist/api/btc/BTCGetPublicKey.d.ts +21 -0
  81. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -0
  82. package/dist/api/btc/BTCSignMessage.d.ts +22 -0
  83. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -0
  84. package/dist/api/btc/BTCSignPsbt.d.ts +15 -0
  85. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -0
  86. package/dist/api/btc/BTCSignTransaction.d.ts +28 -0
  87. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -0
  88. package/dist/api/btc/BTCVerifyMessage.d.ts +18 -0
  89. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -0
  90. package/dist/api/btc/helpers/btcParamsUtils.d.ts +11 -0
  91. package/dist/api/btc/helpers/btcParamsUtils.d.ts.map +1 -0
  92. package/dist/api/btc/helpers/signtx.d.ts +5 -0
  93. package/dist/api/btc/helpers/signtx.d.ts.map +1 -0
  94. package/dist/api/btc/helpers/signtxLegacy.d.ts +5 -0
  95. package/dist/api/btc/helpers/signtxLegacy.d.ts.map +1 -0
  96. package/dist/api/btc/helpers/versionLimit.d.ts +12 -0
  97. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -0
  98. package/dist/api/btc/helpers/xpubUtils.d.ts +4 -0
  99. package/dist/api/btc/helpers/xpubUtils.d.ts.map +1 -0
  100. package/dist/api/cardano/CardanoGetAddress.d.ts +17 -0
  101. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -0
  102. package/dist/api/cardano/CardanoGetPublicKey.d.ts +16 -0
  103. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -0
  104. package/dist/api/cardano/CardanoSignMessage.d.ts +19 -0
  105. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -0
  106. package/dist/api/cardano/CardanoSignTransaction.d.ts +21 -0
  107. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -0
  108. package/dist/api/cardano/helper/addressParameters.d.ts +7 -0
  109. package/dist/api/cardano/helper/addressParameters.d.ts.map +1 -0
  110. package/dist/api/cardano/helper/auxiliaryData.d.ts +5 -0
  111. package/dist/api/cardano/helper/auxiliaryData.d.ts.map +1 -0
  112. package/dist/api/cardano/helper/cardanoInputs.d.ts +14 -0
  113. package/dist/api/cardano/helper/cardanoInputs.d.ts.map +1 -0
  114. package/dist/api/cardano/helper/cardanoOutputs.d.ts +11 -0
  115. package/dist/api/cardano/helper/cardanoOutputs.d.ts.map +1 -0
  116. package/dist/api/cardano/helper/certificate.d.ts +9 -0
  117. package/dist/api/cardano/helper/certificate.d.ts.map +1 -0
  118. package/dist/api/cardano/helper/token.d.ts +3 -0
  119. package/dist/api/cardano/helper/token.d.ts.map +1 -0
  120. package/dist/api/cardano/helper/utils.d.ts +3 -0
  121. package/dist/api/cardano/helper/utils.d.ts.map +1 -0
  122. package/dist/api/cardano/helper/witnesses.d.ts +5 -0
  123. package/dist/api/cardano/helper/witnesses.d.ts.map +1 -0
  124. package/dist/api/conflux/ConfluxGetAddress.d.ts +14 -0
  125. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -0
  126. package/dist/api/conflux/ConfluxSignMessage.d.ts +12 -0
  127. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -0
  128. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +12 -0
  129. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -0
  130. package/dist/api/conflux/ConfluxSignTransaction.d.ts +17 -0
  131. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -0
  132. package/dist/api/cosmos/CosmosGetAddress.d.ts +17 -0
  133. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -0
  134. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +16 -0
  135. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -0
  136. package/dist/api/cosmos/CosmosSignTransaction.d.ts +19 -0
  137. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -0
  138. package/dist/api/device/DeviceBackup.d.ts +7 -0
  139. package/dist/api/device/DeviceBackup.d.ts.map +1 -0
  140. package/dist/api/device/DeviceCancel.d.ts +7 -0
  141. package/dist/api/device/DeviceCancel.d.ts.map +1 -0
  142. package/dist/api/device/DeviceChangePin.d.ts +7 -0
  143. package/dist/api/device/DeviceChangePin.d.ts.map +1 -0
  144. package/dist/api/device/DeviceFlags.d.ts +7 -0
  145. package/dist/api/device/DeviceFlags.d.ts.map +1 -0
  146. package/dist/api/device/DeviceFullyUploadResource.d.ts +11 -0
  147. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -0
  148. package/dist/api/device/DeviceLock.d.ts +7 -0
  149. package/dist/api/device/DeviceLock.d.ts.map +1 -0
  150. package/dist/api/device/DeviceRebootToBoardloader.d.ts +15 -0
  151. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -0
  152. package/dist/api/device/DeviceRebootToBootloader.d.ts +15 -0
  153. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -0
  154. package/dist/api/device/DeviceRecovery.d.ts +7 -0
  155. package/dist/api/device/DeviceRecovery.d.ts.map +1 -0
  156. package/dist/api/device/DeviceReset.d.ts +7 -0
  157. package/dist/api/device/DeviceReset.d.ts.map +1 -0
  158. package/dist/api/device/DeviceSettings.d.ts +14 -0
  159. package/dist/api/device/DeviceSettings.d.ts.map +1 -0
  160. package/dist/api/device/DeviceSupportFeatures.d.ts +10 -0
  161. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -0
  162. package/dist/api/device/DeviceUnlock.d.ts +7 -0
  163. package/dist/api/device/DeviceUnlock.d.ts.map +1 -0
  164. package/dist/api/device/DeviceUpdateBootloader.d.ts +12 -0
  165. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -0
  166. package/dist/api/device/DeviceUpdateReboot.d.ts +7 -0
  167. package/dist/api/device/DeviceUpdateReboot.d.ts.map +1 -0
  168. package/dist/api/device/DeviceUploadResource.d.ts +19 -0
  169. package/dist/api/device/DeviceUploadResource.d.ts.map +1 -0
  170. package/dist/api/device/DeviceVerify.d.ts +8 -0
  171. package/dist/api/device/DeviceVerify.d.ts.map +1 -0
  172. package/dist/api/device/DeviceWipe.d.ts +7 -0
  173. package/dist/api/device/DeviceWipe.d.ts.map +1 -0
  174. package/dist/api/dynex/DnxGetAddress.d.ts +14 -0
  175. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -0
  176. package/dist/api/dynex/DnxSignTransaction.d.ts +16 -0
  177. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -0
  178. package/dist/api/evm/EVMGetAddress.d.ts +10 -0
  179. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -0
  180. package/dist/api/evm/EVMGetPublicKey.d.ts +16 -0
  181. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -0
  182. package/dist/api/evm/EVMSignMessage.d.ts +7 -0
  183. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -0
  184. package/dist/api/evm/EVMSignMessageEIP712.d.ts +15 -0
  185. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -0
  186. package/dist/api/evm/EVMSignTransaction.d.ts +28 -0
  187. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -0
  188. package/dist/api/evm/EVMSignTypedData.d.ts +44 -0
  189. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -0
  190. package/dist/api/evm/EVMVerifyMessage.d.ts +7 -0
  191. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -0
  192. package/dist/api/evm/latest/getAddress.d.ts +6 -0
  193. package/dist/api/evm/latest/getAddress.d.ts.map +1 -0
  194. package/dist/api/evm/latest/getPublicKey.d.ts +6 -0
  195. package/dist/api/evm/latest/getPublicKey.d.ts.map +1 -0
  196. package/dist/api/evm/latest/signMessage.d.ts +6 -0
  197. package/dist/api/evm/latest/signMessage.d.ts.map +1 -0
  198. package/dist/api/evm/latest/signTransaction.d.ts +35 -0
  199. package/dist/api/evm/latest/signTransaction.d.ts.map +1 -0
  200. package/dist/api/evm/latest/signTypedData.d.ts +10 -0
  201. package/dist/api/evm/latest/signTypedData.d.ts.map +1 -0
  202. package/dist/api/evm/latest/signTypedHash.d.ts +11 -0
  203. package/dist/api/evm/latest/signTypedHash.d.ts.map +1 -0
  204. package/dist/api/evm/latest/verifyMessage.d.ts +6 -0
  205. package/dist/api/evm/latest/verifyMessage.d.ts.map +1 -0
  206. package/dist/api/evm/legacyV1/getAddress.d.ts +6 -0
  207. package/dist/api/evm/legacyV1/getAddress.d.ts.map +1 -0
  208. package/dist/api/evm/legacyV1/getPublicKey.d.ts +6 -0
  209. package/dist/api/evm/legacyV1/getPublicKey.d.ts.map +1 -0
  210. package/dist/api/evm/legacyV1/signMessage.d.ts +6 -0
  211. package/dist/api/evm/legacyV1/signMessage.d.ts.map +1 -0
  212. package/dist/api/evm/legacyV1/signTransaction.d.ts +10 -0
  213. package/dist/api/evm/legacyV1/signTransaction.d.ts.map +1 -0
  214. package/dist/api/evm/legacyV1/signTypedData.d.ts +10 -0
  215. package/dist/api/evm/legacyV1/signTypedData.d.ts.map +1 -0
  216. package/dist/api/evm/legacyV1/signTypedHash.d.ts +11 -0
  217. package/dist/api/evm/legacyV1/signTypedHash.d.ts.map +1 -0
  218. package/dist/api/evm/legacyV1/verifyMessage.d.ts +6 -0
  219. package/dist/api/evm/legacyV1/verifyMessage.d.ts.map +1 -0
  220. package/dist/api/filecoin/FilecoinGetAddress.d.ts +17 -0
  221. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -0
  222. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +19 -0
  223. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -0
  224. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +31 -0
  225. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -0
  226. package/dist/api/firmware/bootloaderHelper.d.ts +10 -0
  227. package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -0
  228. package/dist/api/firmware/getBinary.d.ts +38 -0
  229. package/dist/api/firmware/getBinary.d.ts.map +1 -0
  230. package/dist/api/firmware/releaseHelper.d.ts +30 -0
  231. package/dist/api/firmware/releaseHelper.d.ts.map +1 -0
  232. package/dist/api/firmware/updateBootloader.d.ts +5 -0
  233. package/dist/api/firmware/updateBootloader.d.ts.map +1 -0
  234. package/dist/api/firmware/uploadFirmware.d.ts +13 -0
  235. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -0
  236. package/dist/api/helpers/batchGetPublickeys.d.ts +7 -0
  237. package/dist/api/helpers/batchGetPublickeys.d.ts.map +1 -0
  238. package/dist/api/helpers/bigNumberUtils.d.ts +4 -0
  239. package/dist/api/helpers/bigNumberUtils.d.ts.map +1 -0
  240. package/dist/api/helpers/hexUtils.d.ts +10 -0
  241. package/dist/api/helpers/hexUtils.d.ts.map +1 -0
  242. package/dist/api/helpers/paramsValidator.d.ts +12 -0
  243. package/dist/api/helpers/paramsValidator.d.ts.map +1 -0
  244. package/dist/api/helpers/pathUtils.d.ts +16 -0
  245. package/dist/api/helpers/pathUtils.d.ts.map +1 -0
  246. package/dist/api/helpers/stringUtils.d.ts +3 -0
  247. package/dist/api/helpers/stringUtils.d.ts.map +1 -0
  248. package/dist/api/helpers/typeNameUtils.d.ts +9 -0
  249. package/dist/api/helpers/typeNameUtils.d.ts.map +1 -0
  250. package/dist/api/index.d.ts +129 -0
  251. package/dist/api/index.d.ts.map +1 -0
  252. package/dist/api/kaspa/KaspaGetAddress.d.ts +25 -0
  253. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -0
  254. package/dist/api/kaspa/KaspaSignTransaction.d.ts +27 -0
  255. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -0
  256. package/dist/api/kaspa/helpers/BufferWriter.d.ts +28 -0
  257. package/dist/api/kaspa/helpers/BufferWriter.d.ts.map +1 -0
  258. package/dist/api/kaspa/helpers/HashWriter.d.ts +22 -0
  259. package/dist/api/kaspa/helpers/HashWriter.d.ts.map +1 -0
  260. package/dist/api/kaspa/helpers/SignatureType.d.ts +8 -0
  261. package/dist/api/kaspa/helpers/SignatureType.d.ts.map +1 -0
  262. package/dist/api/kaspa/helpers/TransferSerialize.d.ts +9 -0
  263. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -0
  264. package/dist/api/lightning/LnurlAuth.d.ts +21 -0
  265. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -0
  266. package/dist/api/near/NearGetAddress.d.ts +14 -0
  267. package/dist/api/near/NearGetAddress.d.ts.map +1 -0
  268. package/dist/api/near/NearSignTransaction.d.ts +12 -0
  269. package/dist/api/near/NearSignTransaction.d.ts.map +1 -0
  270. package/dist/api/nem/NEMGetAddress.d.ts +9 -0
  271. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -0
  272. package/dist/api/nem/NEMSignTransaction.d.ts +20 -0
  273. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -0
  274. package/dist/api/neo/NeoGetAddress.d.ts +17 -0
  275. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -0
  276. package/dist/api/neo/NeoSignTransaction.d.ts +18 -0
  277. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -0
  278. package/dist/api/nervos/NervosGetAddress.d.ts +17 -0
  279. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -0
  280. package/dist/api/nervos/NervosSignTransaction.d.ts +25 -0
  281. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -0
  282. package/dist/api/nexa/NexaGetAddress.d.ts +24 -0
  283. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -0
  284. package/dist/api/nexa/NexaSignTransaction.d.ts +19 -0
  285. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -0
  286. package/dist/api/nostr/NostrDecryptMessage.d.ts +21 -0
  287. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -0
  288. package/dist/api/nostr/NostrEncryptMessage.d.ts +21 -0
  289. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -0
  290. package/dist/api/nostr/NostrGetPublicKey.d.ts +17 -0
  291. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -0
  292. package/dist/api/nostr/NostrSignEvent.d.ts +20 -0
  293. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -0
  294. package/dist/api/nostr/NostrSignSchnorr.d.ts +20 -0
  295. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -0
  296. package/dist/api/nostr/helper/index.d.ts +4 -0
  297. package/dist/api/nostr/helper/index.d.ts.map +1 -0
  298. package/dist/api/polkadot/PolkadotGetAddress.d.ts +17 -0
  299. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -0
  300. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +12 -0
  301. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -0
  302. package/dist/api/polkadot/networks.d.ts +20 -0
  303. package/dist/api/polkadot/networks.d.ts.map +1 -0
  304. package/dist/api/scdo/ScdoGetAddress.d.ts +14 -0
  305. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -0
  306. package/dist/api/scdo/ScdoSignMessage.d.ts +12 -0
  307. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -0
  308. package/dist/api/scdo/ScdoSignTransaction.d.ts +16 -0
  309. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -0
  310. package/dist/api/solana/SolGetAddress.d.ts +9 -0
  311. package/dist/api/solana/SolGetAddress.d.ts.map +1 -0
  312. package/dist/api/solana/SolSignMessage.d.ts +24 -0
  313. package/dist/api/solana/SolSignMessage.d.ts.map +1 -0
  314. package/dist/api/solana/SolSignOffchainMessage.d.ts +18 -0
  315. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -0
  316. package/dist/api/solana/SolSignTransaction.d.ts +30 -0
  317. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -0
  318. package/dist/api/starcoin/StarcoinGetAddress.d.ts +9 -0
  319. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -0
  320. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +9 -0
  321. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -0
  322. package/dist/api/starcoin/StarcoinSignMessage.d.ts +7 -0
  323. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -0
  324. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +7 -0
  325. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -0
  326. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +7 -0
  327. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -0
  328. package/dist/api/stellar/StellarGetAddress.d.ts +9 -0
  329. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -0
  330. package/dist/api/stellar/StellarSignTransaction.d.ts +335 -0
  331. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -0
  332. package/dist/api/sui/SuiGetAddress.d.ts +18 -0
  333. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -0
  334. package/dist/api/sui/SuiGetPublicKey.d.ts +16 -0
  335. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -0
  336. package/dist/api/sui/SuiSignMessage.d.ts +15 -0
  337. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -0
  338. package/dist/api/sui/SuiSignTransaction.d.ts +22 -0
  339. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -0
  340. package/dist/api/sui/normalize.d.ts +9 -0
  341. package/dist/api/sui/normalize.d.ts.map +1 -0
  342. package/dist/api/test/TestInitializeDeviceDuration.d.ts +6 -0
  343. package/dist/api/test/TestInitializeDeviceDuration.d.ts.map +1 -0
  344. package/dist/api/ton/TonGetAddress.d.ts +18 -0
  345. package/dist/api/ton/TonGetAddress.d.ts.map +1 -0
  346. package/dist/api/ton/TonSignMessage.d.ts +25 -0
  347. package/dist/api/ton/TonSignMessage.d.ts.map +1 -0
  348. package/dist/api/ton/TonSignProof.d.ts +15 -0
  349. package/dist/api/ton/TonSignProof.d.ts.map +1 -0
  350. package/dist/api/tron/TronGetAddress.d.ts +14 -0
  351. package/dist/api/tron/TronGetAddress.d.ts.map +1 -0
  352. package/dist/api/tron/TronSignMessage.d.ts +20 -0
  353. package/dist/api/tron/TronSignMessage.d.ts.map +1 -0
  354. package/dist/api/tron/TronSignTransaction.d.ts +19 -0
  355. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -0
  356. package/dist/api/u2f/GetNextU2FCounter.d.ts +7 -0
  357. package/dist/api/u2f/GetNextU2FCounter.d.ts.map +1 -0
  358. package/dist/api/u2f/SetU2FCounter.d.ts +7 -0
  359. package/dist/api/u2f/SetU2FCounter.d.ts.map +1 -0
  360. package/dist/api/utils.d.ts +5 -0
  361. package/dist/api/utils.d.ts.map +1 -0
  362. package/dist/api/xrp/XrpGetAddress.d.ts +17 -0
  363. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -0
  364. package/dist/api/xrp/XrpSignTransaction.d.ts +16 -0
  365. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -0
  366. package/dist/constants/errors.d.ts +2 -0
  367. package/dist/constants/errors.d.ts.map +1 -0
  368. package/dist/constants/index.d.ts +3 -0
  369. package/dist/constants/index.d.ts.map +1 -0
  370. package/dist/constants/ui-request.d.ts +3 -0
  371. package/dist/constants/ui-request.d.ts.map +1 -0
  372. package/dist/core/RequestQueue.d.ts +27 -0
  373. package/dist/core/RequestQueue.d.ts.map +1 -0
  374. package/dist/core/index.d.ts +28 -0
  375. package/dist/core/index.d.ts.map +1 -0
  376. package/dist/data/config.d.ts +7 -0
  377. package/dist/data/config.d.ts.map +1 -0
  378. package/dist/data-manager/CoinManager.d.ts +13 -0
  379. package/dist/data-manager/CoinManager.d.ts.map +1 -0
  380. package/dist/data-manager/DataManager.d.ts +43 -0
  381. package/dist/data-manager/DataManager.d.ts.map +1 -0
  382. package/dist/data-manager/MessagesConfig.d.ts +11 -0
  383. package/dist/data-manager/MessagesConfig.d.ts.map +1 -0
  384. package/dist/data-manager/TransportManager.d.ts +20 -0
  385. package/dist/data-manager/TransportManager.d.ts.map +1 -0
  386. package/dist/data-manager/connectSettings.d.ts +11 -0
  387. package/dist/data-manager/connectSettings.d.ts.map +1 -0
  388. package/dist/data-manager/index.d.ts +4 -0
  389. package/dist/data-manager/index.d.ts.map +1 -0
  390. package/dist/device/Device.d.ts +100 -0
  391. package/dist/device/Device.d.ts.map +1 -0
  392. package/dist/device/DeviceCommands.d.ts +116 -0
  393. package/dist/device/DeviceCommands.d.ts.map +1 -0
  394. package/dist/device/DeviceConnector.d.ts +20 -0
  395. package/dist/device/DeviceConnector.d.ts.map +1 -0
  396. package/dist/device/DeviceList.d.ts +12 -0
  397. package/dist/device/DeviceList.d.ts.map +1 -0
  398. package/dist/device/DevicePool.d.ts +43 -0
  399. package/dist/device/DevicePool.d.ts.map +1 -0
  400. package/dist/events/call.d.ts +64 -0
  401. package/dist/events/call.d.ts.map +1 -0
  402. package/dist/events/core.d.ts +19 -0
  403. package/dist/events/core.d.ts.map +1 -0
  404. package/dist/events/device.d.ts +68 -0
  405. package/dist/events/device.d.ts.map +1 -0
  406. package/dist/events/firmware.d.ts +28 -0
  407. package/dist/events/firmware.d.ts.map +1 -0
  408. package/dist/events/iframe.d.ts +42 -0
  409. package/dist/events/iframe.d.ts.map +1 -0
  410. package/dist/events/index.d.ts +11 -0
  411. package/dist/events/index.d.ts.map +1 -0
  412. package/dist/events/log.d.ts +15 -0
  413. package/dist/events/log.d.ts.map +1 -0
  414. package/dist/events/logBlockEvent.d.ts +2 -0
  415. package/dist/events/logBlockEvent.d.ts.map +1 -0
  416. package/dist/events/ui-promise.d.ts +12 -0
  417. package/dist/events/ui-promise.d.ts.map +1 -0
  418. package/dist/events/ui-request.d.ts +152 -0
  419. package/dist/events/ui-request.d.ts.map +1 -0
  420. package/dist/events/ui-response.d.ts +32 -0
  421. package/dist/events/ui-response.d.ts.map +1 -0
  422. package/dist/events/utils.d.ts +15 -0
  423. package/dist/events/utils.d.ts.map +1 -0
  424. package/dist/index.d.ts +3269 -0
  425. package/dist/index.d.ts.map +1 -0
  426. package/dist/index.js +39955 -0
  427. package/dist/inject.d.ts +20 -0
  428. package/dist/inject.d.ts.map +1 -0
  429. package/dist/lowLevelInject.d.ts +22 -0
  430. package/dist/lowLevelInject.d.ts.map +1 -0
  431. package/dist/topLevelInject.d.ts +7 -0
  432. package/dist/topLevelInject.d.ts.map +1 -0
  433. package/dist/types/api/alephiumGetAddress.d.ts +19 -0
  434. package/dist/types/api/alephiumGetAddress.d.ts.map +1 -0
  435. package/dist/types/api/alephiumSignMessage.d.ts +9 -0
  436. package/dist/types/api/alephiumSignMessage.d.ts.map +1 -0
  437. package/dist/types/api/alephiumSignTransaction.d.ts +12 -0
  438. package/dist/types/api/alephiumSignTransaction.d.ts.map +1 -0
  439. package/dist/types/api/algoGetAddress.d.ts +14 -0
  440. package/dist/types/api/algoGetAddress.d.ts.map +1 -0
  441. package/dist/types/api/algoSignTransaction.d.ts +11 -0
  442. package/dist/types/api/algoSignTransaction.d.ts.map +1 -0
  443. package/dist/types/api/allNetworkGetAddress.d.ts +71 -0
  444. package/dist/types/api/allNetworkGetAddress.d.ts.map +1 -0
  445. package/dist/types/api/aptosGetAddress.d.ts +16 -0
  446. package/dist/types/api/aptosGetAddress.d.ts.map +1 -0
  447. package/dist/types/api/aptosGetPublicKey.d.ts +15 -0
  448. package/dist/types/api/aptosGetPublicKey.d.ts.map +1 -0
  449. package/dist/types/api/aptosSignInMessage.d.ts +11 -0
  450. package/dist/types/api/aptosSignInMessage.d.ts.map +1 -0
  451. package/dist/types/api/aptosSignMessage.d.ts +20 -0
  452. package/dist/types/api/aptosSignMessage.d.ts.map +1 -0
  453. package/dist/types/api/aptosSignTransaction.d.ts +12 -0
  454. package/dist/types/api/aptosSignTransaction.d.ts.map +1 -0
  455. package/dist/types/api/benfenGetAddress.d.ts +15 -0
  456. package/dist/types/api/benfenGetAddress.d.ts.map +1 -0
  457. package/dist/types/api/benfenGetPublicKey.d.ts +14 -0
  458. package/dist/types/api/benfenGetPublicKey.d.ts.map +1 -0
  459. package/dist/types/api/benfenSignMessage.d.ts +8 -0
  460. package/dist/types/api/benfenSignMessage.d.ts.map +1 -0
  461. package/dist/types/api/benfenSignTransaction.d.ts +13 -0
  462. package/dist/types/api/benfenSignTransaction.d.ts.map +1 -0
  463. package/dist/types/api/btcGetAddress.d.ts +17 -0
  464. package/dist/types/api/btcGetAddress.d.ts.map +1 -0
  465. package/dist/types/api/btcGetPublicKey.d.ts +17 -0
  466. package/dist/types/api/btcGetPublicKey.d.ts.map +1 -0
  467. package/dist/types/api/btcSignMessage.d.ts +11 -0
  468. package/dist/types/api/btcSignMessage.d.ts.map +1 -0
  469. package/dist/types/api/btcSignPsbt.d.ts +8 -0
  470. package/dist/types/api/btcSignPsbt.d.ts.map +1 -0
  471. package/dist/types/api/btcSignTransaction.d.ts +74 -0
  472. package/dist/types/api/btcSignTransaction.d.ts.map +1 -0
  473. package/dist/types/api/btcVerifyMessage.d.ts +10 -0
  474. package/dist/types/api/btcVerifyMessage.d.ts.map +1 -0
  475. package/dist/types/api/cardano.d.ts +182 -0
  476. package/dist/types/api/cardano.d.ts.map +1 -0
  477. package/dist/types/api/cardanoGetAddress.d.ts +35 -0
  478. package/dist/types/api/cardanoGetAddress.d.ts.map +1 -0
  479. package/dist/types/api/cardanoGetPublicKey.d.ts +23 -0
  480. package/dist/types/api/cardanoGetPublicKey.d.ts.map +1 -0
  481. package/dist/types/api/cardanoSignMessage.d.ts +19 -0
  482. package/dist/types/api/cardanoSignMessage.d.ts.map +1 -0
  483. package/dist/types/api/cardanoSignTransaction.d.ts +4 -0
  484. package/dist/types/api/cardanoSignTransaction.d.ts.map +1 -0
  485. package/dist/types/api/checkAllFirmwareRelease.d.ts +24 -0
  486. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -0
  487. package/dist/types/api/checkBLEFirmwareRelease.d.ts +15 -0
  488. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -0
  489. package/dist/types/api/checkBootloaderRelease.d.ts +11 -0
  490. package/dist/types/api/checkBootloaderRelease.d.ts.map +1 -0
  491. package/dist/types/api/checkBridgeRelease.d.ts +10 -0
  492. package/dist/types/api/checkBridgeRelease.d.ts.map +1 -0
  493. package/dist/types/api/checkBridgeStatus.d.ts +3 -0
  494. package/dist/types/api/checkBridgeStatus.d.ts.map +1 -0
  495. package/dist/types/api/checkFirmwareRelease.d.ts +15 -0
  496. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -0
  497. package/dist/types/api/cipherKeyValue.d.ts +19 -0
  498. package/dist/types/api/cipherKeyValue.d.ts.map +1 -0
  499. package/dist/types/api/confluxGetAddress.d.ts +15 -0
  500. package/dist/types/api/confluxGetAddress.d.ts.map +1 -0
  501. package/dist/types/api/confluxSignMessage.d.ts +8 -0
  502. package/dist/types/api/confluxSignMessage.d.ts.map +1 -0
  503. package/dist/types/api/confluxSignMessageCIP23.d.ts +9 -0
  504. package/dist/types/api/confluxSignMessageCIP23.d.ts.map +1 -0
  505. package/dist/types/api/confluxSignTransaction.d.ts +25 -0
  506. package/dist/types/api/confluxSignTransaction.d.ts.map +1 -0
  507. package/dist/types/api/cosmosGetAddress.d.ts +15 -0
  508. package/dist/types/api/cosmosGetAddress.d.ts.map +1 -0
  509. package/dist/types/api/cosmosGetPublicKey.d.ts +16 -0
  510. package/dist/types/api/cosmosGetPublicKey.d.ts.map +1 -0
  511. package/dist/types/api/cosmosSignTransaction.d.ts +11 -0
  512. package/dist/types/api/cosmosSignTransaction.d.ts.map +1 -0
  513. package/dist/types/api/deviceBackup.d.ts +4 -0
  514. package/dist/types/api/deviceBackup.d.ts.map +1 -0
  515. package/dist/types/api/deviceCancel.d.ts +4 -0
  516. package/dist/types/api/deviceCancel.d.ts.map +1 -0
  517. package/dist/types/api/deviceChangePin.d.ts +7 -0
  518. package/dist/types/api/deviceChangePin.d.ts.map +1 -0
  519. package/dist/types/api/deviceFlags.d.ts +7 -0
  520. package/dist/types/api/deviceFlags.d.ts.map +1 -0
  521. package/dist/types/api/deviceFullyUploadResource.d.ts +6 -0
  522. package/dist/types/api/deviceFullyUploadResource.d.ts.map +1 -0
  523. package/dist/types/api/deviceLock.d.ts +4 -0
  524. package/dist/types/api/deviceLock.d.ts.map +1 -0
  525. package/dist/types/api/deviceRebootToBoardloader.d.ts +5 -0
  526. package/dist/types/api/deviceRebootToBoardloader.d.ts.map +1 -0
  527. package/dist/types/api/deviceRebootToBootloader.d.ts +4 -0
  528. package/dist/types/api/deviceRebootToBootloader.d.ts.map +1 -0
  529. package/dist/types/api/deviceRecovery.d.ts +15 -0
  530. package/dist/types/api/deviceRecovery.d.ts.map +1 -0
  531. package/dist/types/api/deviceReset.d.ts +16 -0
  532. package/dist/types/api/deviceReset.d.ts.map +1 -0
  533. package/dist/types/api/deviceSettings.d.ts +16 -0
  534. package/dist/types/api/deviceSettings.d.ts.map +1 -0
  535. package/dist/types/api/deviceSupportFeatures.d.ts +7 -0
  536. package/dist/types/api/deviceSupportFeatures.d.ts.map +1 -0
  537. package/dist/types/api/deviceUnlock.d.ts +4 -0
  538. package/dist/types/api/deviceUnlock.d.ts.map +1 -0
  539. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  540. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -0
  541. package/dist/types/api/deviceUpdateReboot.d.ts +3 -0
  542. package/dist/types/api/deviceUpdateReboot.d.ts.map +1 -0
  543. package/dist/types/api/deviceUploadResource.d.ts +12 -0
  544. package/dist/types/api/deviceUploadResource.d.ts.map +1 -0
  545. package/dist/types/api/deviceVerify.d.ts +10 -0
  546. package/dist/types/api/deviceVerify.d.ts.map +1 -0
  547. package/dist/types/api/deviceWipe.d.ts +4 -0
  548. package/dist/types/api/deviceWipe.d.ts.map +1 -0
  549. package/dist/types/api/dnxGetAddress.d.ts +14 -0
  550. package/dist/types/api/dnxGetAddress.d.ts.map +1 -0
  551. package/dist/types/api/dnxSignTransaction.d.ts +29 -0
  552. package/dist/types/api/dnxSignTransaction.d.ts.map +1 -0
  553. package/dist/types/api/emmcFileWrite.d.ts +8 -0
  554. package/dist/types/api/emmcFileWrite.d.ts.map +1 -0
  555. package/dist/types/api/event.d.ts +4 -0
  556. package/dist/types/api/event.d.ts.map +1 -0
  557. package/dist/types/api/evmGetAddress.d.ts +15 -0
  558. package/dist/types/api/evmGetAddress.d.ts.map +1 -0
  559. package/dist/types/api/evmGetPublicKey.d.ts +21 -0
  560. package/dist/types/api/evmGetPublicKey.d.ts.map +1 -0
  561. package/dist/types/api/evmSignMessage.d.ts +9 -0
  562. package/dist/types/api/evmSignMessage.d.ts.map +1 -0
  563. package/dist/types/api/evmSignMessageEIP712.d.ts +9 -0
  564. package/dist/types/api/evmSignMessageEIP712.d.ts.map +1 -0
  565. package/dist/types/api/evmSignTransaction.d.ts +68 -0
  566. package/dist/types/api/evmSignTransaction.d.ts.map +1 -0
  567. package/dist/types/api/evmSignTypedData.d.ts +34 -0
  568. package/dist/types/api/evmSignTypedData.d.ts.map +1 -0
  569. package/dist/types/api/evmVerifyMessage.d.ts +10 -0
  570. package/dist/types/api/evmVerifyMessage.d.ts.map +1 -0
  571. package/dist/types/api/export.d.ts +89 -0
  572. package/dist/types/api/export.d.ts.map +1 -0
  573. package/dist/types/api/filecoinGetAddress.d.ts +15 -0
  574. package/dist/types/api/filecoinGetAddress.d.ts.map +1 -0
  575. package/dist/types/api/filecoinSignTransaction.d.ts +15 -0
  576. package/dist/types/api/filecoinSignTransaction.d.ts.map +1 -0
  577. package/dist/types/api/firmwareUpdate.d.ts +44 -0
  578. package/dist/types/api/firmwareUpdate.d.ts.map +1 -0
  579. package/dist/types/api/getFeatures.d.ts +4 -0
  580. package/dist/types/api/getFeatures.d.ts.map +1 -0
  581. package/dist/types/api/getLogs.d.ts +3 -0
  582. package/dist/types/api/getLogs.d.ts.map +1 -0
  583. package/dist/types/api/getNextU2FCounter.d.ts +4 -0
  584. package/dist/types/api/getNextU2FCounter.d.ts.map +1 -0
  585. package/dist/types/api/getPassphraseState.d.ts +3 -0
  586. package/dist/types/api/getPassphraseState.d.ts.map +1 -0
  587. package/dist/types/api/getUkeyFeatures.d.ts +4 -0
  588. package/dist/types/api/getUkeyFeatures.d.ts.map +1 -0
  589. package/dist/types/api/index.d.ts +274 -0
  590. package/dist/types/api/index.d.ts.map +1 -0
  591. package/dist/types/api/init.d.ts +6 -0
  592. package/dist/types/api/init.d.ts.map +1 -0
  593. package/dist/types/api/kaspaGetAddress.d.ts +17 -0
  594. package/dist/types/api/kaspaGetAddress.d.ts.map +1 -0
  595. package/dist/types/api/kaspaSignTransaction.d.ts +36 -0
  596. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -0
  597. package/dist/types/api/lnurlAuth.d.ts +13 -0
  598. package/dist/types/api/lnurlAuth.d.ts.map +1 -0
  599. package/dist/types/api/nearGetAddress.d.ts +14 -0
  600. package/dist/types/api/nearGetAddress.d.ts.map +1 -0
  601. package/dist/types/api/nearSignTransaction.d.ts +8 -0
  602. package/dist/types/api/nearSignTransaction.d.ts.map +1 -0
  603. package/dist/types/api/nemGetAddress.d.ts +15 -0
  604. package/dist/types/api/nemGetAddress.d.ts.map +1 -0
  605. package/dist/types/api/nemSignTransaction.d.ts +93 -0
  606. package/dist/types/api/nemSignTransaction.d.ts.map +1 -0
  607. package/dist/types/api/neoGetAddress.d.ts +15 -0
  608. package/dist/types/api/neoGetAddress.d.ts.map +1 -0
  609. package/dist/types/api/neoSignTransaction.d.ts +12 -0
  610. package/dist/types/api/neoSignTransaction.d.ts.map +1 -0
  611. package/dist/types/api/nervosGetAddress.d.ts +15 -0
  612. package/dist/types/api/nervosGetAddress.d.ts.map +1 -0
  613. package/dist/types/api/nervosSignTransaction.d.ts +13 -0
  614. package/dist/types/api/nervosSignTransaction.d.ts.map +1 -0
  615. package/dist/types/api/nexaGetAddress.d.ts +17 -0
  616. package/dist/types/api/nexaGetAddress.d.ts.map +1 -0
  617. package/dist/types/api/nexaSignTransaction.d.ts +20 -0
  618. package/dist/types/api/nexaSignTransaction.d.ts.map +1 -0
  619. package/dist/types/api/nostrDecryptMessage.d.ts +18 -0
  620. package/dist/types/api/nostrDecryptMessage.d.ts.map +1 -0
  621. package/dist/types/api/nostrEncryptMessage.d.ts +18 -0
  622. package/dist/types/api/nostrEncryptMessage.d.ts.map +1 -0
  623. package/dist/types/api/nostrGetPublicKey.d.ts +16 -0
  624. package/dist/types/api/nostrGetPublicKey.d.ts.map +1 -0
  625. package/dist/types/api/nostrSignEvent.d.ts +44 -0
  626. package/dist/types/api/nostrSignEvent.d.ts.map +1 -0
  627. package/dist/types/api/nostrSignSchnorr.d.ts +15 -0
  628. package/dist/types/api/nostrSignSchnorr.d.ts.map +1 -0
  629. package/dist/types/api/polkadotGetAddress.d.ts +18 -0
  630. package/dist/types/api/polkadotGetAddress.d.ts.map +1 -0
  631. package/dist/types/api/polkadotSignTransaction.d.ts +12 -0
  632. package/dist/types/api/polkadotSignTransaction.d.ts.map +1 -0
  633. package/dist/types/api/promptWebDeviceAccess.d.ts +8 -0
  634. package/dist/types/api/promptWebDeviceAccess.d.ts.map +1 -0
  635. package/dist/types/api/scdoGetAddress.d.ts +14 -0
  636. package/dist/types/api/scdoGetAddress.d.ts.map +1 -0
  637. package/dist/types/api/scdoSignMessage.d.ts +8 -0
  638. package/dist/types/api/scdoSignMessage.d.ts.map +1 -0
  639. package/dist/types/api/scdoSignTransaction.d.ts +18 -0
  640. package/dist/types/api/scdoSignTransaction.d.ts.map +1 -0
  641. package/dist/types/api/searchDevices.d.ts +4 -0
  642. package/dist/types/api/searchDevices.d.ts.map +1 -0
  643. package/dist/types/api/setU2FCounter.d.ts +4 -0
  644. package/dist/types/api/setU2FCounter.d.ts.map +1 -0
  645. package/dist/types/api/solGetAddress.d.ts +14 -0
  646. package/dist/types/api/solGetAddress.d.ts.map +1 -0
  647. package/dist/types/api/solSignMessage.d.ts +11 -0
  648. package/dist/types/api/solSignMessage.d.ts.map +1 -0
  649. package/dist/types/api/solSignOffchainMessage.d.ts +15 -0
  650. package/dist/types/api/solSignOffchainMessage.d.ts.map +1 -0
  651. package/dist/types/api/solSignTransaction.d.ts +14 -0
  652. package/dist/types/api/solSignTransaction.d.ts.map +1 -0
  653. package/dist/types/api/starcoinGetAddress.d.ts +14 -0
  654. package/dist/types/api/starcoinGetAddress.d.ts.map +1 -0
  655. package/dist/types/api/starcoinGetPublicKey.d.ts +14 -0
  656. package/dist/types/api/starcoinGetPublicKey.d.ts.map +1 -0
  657. package/dist/types/api/starcoinSignMessage.d.ts +8 -0
  658. package/dist/types/api/starcoinSignMessage.d.ts.map +1 -0
  659. package/dist/types/api/starcoinSignTransaction.d.ts +8 -0
  660. package/dist/types/api/starcoinSignTransaction.d.ts.map +1 -0
  661. package/dist/types/api/starcoinVerifyMessage.d.ts +9 -0
  662. package/dist/types/api/starcoinVerifyMessage.d.ts.map +1 -0
  663. package/dist/types/api/stellarGetAddress.d.ts +14 -0
  664. package/dist/types/api/stellarGetAddress.d.ts.map +1 -0
  665. package/dist/types/api/stellarSignTransaction.d.ts +130 -0
  666. package/dist/types/api/stellarSignTransaction.d.ts.map +1 -0
  667. package/dist/types/api/suiGetAddress.d.ts +16 -0
  668. package/dist/types/api/suiGetAddress.d.ts.map +1 -0
  669. package/dist/types/api/suiGetPublicKey.d.ts +15 -0
  670. package/dist/types/api/suiGetPublicKey.d.ts.map +1 -0
  671. package/dist/types/api/suiSignMessage.d.ts +8 -0
  672. package/dist/types/api/suiSignMessage.d.ts.map +1 -0
  673. package/dist/types/api/suiSignTransaction.d.ts +11 -0
  674. package/dist/types/api/suiSignTransaction.d.ts.map +1 -0
  675. package/dist/types/api/testInitializeDeviceDuration.d.ts +3 -0
  676. package/dist/types/api/testInitializeDeviceDuration.d.ts.map +1 -0
  677. package/dist/types/api/tonGetAddress.d.ts +22 -0
  678. package/dist/types/api/tonGetAddress.d.ts.map +1 -0
  679. package/dist/types/api/tonSignMessage.d.ts +31 -0
  680. package/dist/types/api/tonSignMessage.d.ts.map +1 -0
  681. package/dist/types/api/tonSignProof.d.ts +15 -0
  682. package/dist/types/api/tonSignProof.d.ts.map +1 -0
  683. package/dist/types/api/tronGetAddress.d.ts +14 -0
  684. package/dist/types/api/tronGetAddress.d.ts.map +1 -0
  685. package/dist/types/api/tronSignMessage.d.ts +9 -0
  686. package/dist/types/api/tronSignMessage.d.ts.map +1 -0
  687. package/dist/types/api/tronSignTransaction.d.ts +72 -0
  688. package/dist/types/api/tronSignTransaction.d.ts.map +1 -0
  689. package/dist/types/api/uiResponse.d.ts +3 -0
  690. package/dist/types/api/uiResponse.d.ts.map +1 -0
  691. package/dist/types/api/xrpGetAddress.d.ts +16 -0
  692. package/dist/types/api/xrpGetAddress.d.ts.map +1 -0
  693. package/dist/types/api/xrpSignTransaction.d.ts +22 -0
  694. package/dist/types/api/xrpSignTransaction.d.ts.map +1 -0
  695. package/dist/types/device.d.ts +105 -0
  696. package/dist/types/device.d.ts.map +1 -0
  697. package/dist/types/firmware.d.ts +38 -0
  698. package/dist/types/firmware.d.ts.map +1 -0
  699. package/dist/types/index.d.ts +6 -0
  700. package/dist/types/index.d.ts.map +1 -0
  701. package/dist/types/params.d.ts +29 -0
  702. package/dist/types/params.d.ts.map +1 -0
  703. package/dist/types/settings.d.ts +82 -0
  704. package/dist/types/settings.d.ts.map +1 -0
  705. package/dist/utils/arrayUtils.d.ts +2 -0
  706. package/dist/utils/arrayUtils.d.ts.map +1 -0
  707. package/dist/utils/assets.d.ts +3 -0
  708. package/dist/utils/assets.d.ts.map +1 -0
  709. package/dist/utils/bridgeUpdate.d.ts +15 -0
  710. package/dist/utils/bridgeUpdate.d.ts.map +1 -0
  711. package/dist/utils/capabilitieUtils.d.ts +5 -0
  712. package/dist/utils/capabilitieUtils.d.ts.map +1 -0
  713. package/dist/utils/deviceFeaturesUtils.d.ts +39 -0
  714. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -0
  715. package/dist/utils/deviceInfoUtils.d.ts +10 -0
  716. package/dist/utils/deviceInfoUtils.d.ts.map +1 -0
  717. package/dist/utils/deviceVersionUtils.d.ts +6 -0
  718. package/dist/utils/deviceVersionUtils.d.ts.map +1 -0
  719. package/dist/utils/findDefectiveBatchDevice.d.ts +8 -0
  720. package/dist/utils/findDefectiveBatchDevice.d.ts.map +1 -0
  721. package/dist/utils/getMutex.d.ts +2 -0
  722. package/dist/utils/getMutex.d.ts.map +1 -0
  723. package/dist/utils/getSynchronize.d.ts +4 -0
  724. package/dist/utils/getSynchronize.d.ts.map +1 -0
  725. package/dist/utils/homescreen.d.ts +22 -0
  726. package/dist/utils/homescreen.d.ts.map +1 -0
  727. package/dist/utils/index.d.ts +13 -0
  728. package/dist/utils/index.d.ts.map +1 -0
  729. package/dist/utils/logger.d.ts +64 -0
  730. package/dist/utils/logger.d.ts.map +1 -0
  731. package/dist/utils/networkUtils.d.ts +2 -0
  732. package/dist/utils/networkUtils.d.ts.map +1 -0
  733. package/dist/utils/patch.d.ts +3 -0
  734. package/dist/utils/patch.d.ts.map +1 -0
  735. package/dist/utils/promiseUtils.d.ts +2 -0
  736. package/dist/utils/promiseUtils.d.ts.map +1 -0
  737. package/dist/utils/release.d.ts +7 -0
  738. package/dist/utils/release.d.ts.map +1 -0
  739. package/dist/utils/versionUtils.d.ts +6 -0
  740. package/dist/utils/versionUtils.d.ts.map +1 -0
  741. package/jest.config.js +6 -0
  742. package/package.json +49 -0
  743. package/src/api/BaseMethod.ts +226 -0
  744. package/src/api/CheckAllFirmwareRelease.ts +65 -0
  745. package/src/api/CheckBLEFirmwareRelease.ts +24 -0
  746. package/src/api/CheckBootloaderRelease.ts +21 -0
  747. package/src/api/CheckBridgeRelease.ts +28 -0
  748. package/src/api/CheckBridgeStatus.ts +31 -0
  749. package/src/api/CheckFirmwareRelease.ts +24 -0
  750. package/src/api/CipherKeyValue.ts +67 -0
  751. package/src/api/EmmcFileWrite.ts +49 -0
  752. package/src/api/FirmwareUpdate.ts +216 -0
  753. package/src/api/FirmwareUpdateV2.ts +391 -0
  754. package/src/api/FirmwareUpdateV3.ts +437 -0
  755. package/src/api/GetFeatures.ts +22 -0
  756. package/src/api/GetLogs.ts +40 -0
  757. package/src/api/GetPassphraseState.ts +27 -0
  758. package/src/api/GetUkeyFeatures.ts +24 -0
  759. package/src/api/PromptWebDeviceAccess.ts +75 -0
  760. package/src/api/SearchDevices.ts +49 -0
  761. package/src/api/alephium/AlephiumGetAddress.ts +83 -0
  762. package/src/api/alephium/AlephiumSignMessage.ts +50 -0
  763. package/src/api/alephium/AlephiumSignTransaction.ts +134 -0
  764. package/src/api/algo/AlgoGetAddress.ts +73 -0
  765. package/src/api/algo/AlgoSignTransaction.ts +51 -0
  766. package/src/api/allnetwork/AllNetworkGetAddress.ts +87 -0
  767. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +480 -0
  768. package/src/api/allnetwork/AllNetworkGetAddressByLoop.ts +161 -0
  769. package/src/api/aptos/AptosGetAddress.ts +128 -0
  770. package/src/api/aptos/AptosGetPublicKey.ts +63 -0
  771. package/src/api/aptos/AptosSignInMessage.ts +54 -0
  772. package/src/api/aptos/AptosSignMessage.ts +78 -0
  773. package/src/api/aptos/AptosSignTransaction.ts +71 -0
  774. package/src/api/benfen/BenfenGetAddress.ts +122 -0
  775. package/src/api/benfen/BenfenGetPublicKey.ts +67 -0
  776. package/src/api/benfen/BenfenSignMessage.ts +49 -0
  777. package/src/api/benfen/BenfenSignTransaction.ts +104 -0
  778. package/src/api/benfen/normalize.ts +51 -0
  779. package/src/api/btc/BTCGetAddress.ts +90 -0
  780. package/src/api/btc/BTCGetPublicKey.ts +172 -0
  781. package/src/api/btc/BTCSignMessage.ts +72 -0
  782. package/src/api/btc/BTCSignPsbt.ts +63 -0
  783. package/src/api/btc/BTCSignTransaction.ts +147 -0
  784. package/src/api/btc/BTCVerifyMessage.ts +46 -0
  785. package/src/api/btc/helpers/btcParamsUtils.ts +63 -0
  786. package/src/api/btc/helpers/signtx.ts +250 -0
  787. package/src/api/btc/helpers/signtxLegacy.ts +226 -0
  788. package/src/api/btc/helpers/versionLimit.ts +25 -0
  789. package/src/api/btc/helpers/xpubUtils.ts +131 -0
  790. package/src/api/cardano/CardanoGetAddress.ts +138 -0
  791. package/src/api/cardano/CardanoGetPublicKey.ts +71 -0
  792. package/src/api/cardano/CardanoSignMessage.ts +70 -0
  793. package/src/api/cardano/CardanoSignTransaction.ts +403 -0
  794. package/src/api/cardano/helper/addressParameters.ts +118 -0
  795. package/src/api/cardano/helper/auxiliaryData.ts +131 -0
  796. package/src/api/cardano/helper/cardanoInputs.ts +54 -0
  797. package/src/api/cardano/helper/cardanoOutputs.ts +88 -0
  798. package/src/api/cardano/helper/certificate.ts +244 -0
  799. package/src/api/cardano/helper/token.ts +43 -0
  800. package/src/api/cardano/helper/utils.ts +17 -0
  801. package/src/api/cardano/helper/witnesses.ts +61 -0
  802. package/src/api/conflux/ConfluxGetAddress.ts +77 -0
  803. package/src/api/conflux/ConfluxSignMessage.ts +48 -0
  804. package/src/api/conflux/ConfluxSignMessageCIP23.ts +48 -0
  805. package/src/api/conflux/ConfluxSignTransaction.ts +134 -0
  806. package/src/api/cosmos/CosmosGetAddress.ts +80 -0
  807. package/src/api/cosmos/CosmosGetPublicKey.ts +76 -0
  808. package/src/api/cosmos/CosmosSignTransaction.ts +54 -0
  809. package/src/api/device/DeviceBackup.ts +14 -0
  810. package/src/api/device/DeviceCancel.ts +14 -0
  811. package/src/api/device/DeviceChangePin.ts +24 -0
  812. package/src/api/device/DeviceFlags.ts +25 -0
  813. package/src/api/device/DeviceFullyUploadResource.ts +71 -0
  814. package/src/api/device/DeviceLock.ts +14 -0
  815. package/src/api/device/DeviceRebootToBoardloader.ts +29 -0
  816. package/src/api/device/DeviceRebootToBootloader.ts +27 -0
  817. package/src/api/device/DeviceRecovery.ts +43 -0
  818. package/src/api/device/DeviceReset.ts +45 -0
  819. package/src/api/device/DeviceSettings.ts +56 -0
  820. package/src/api/device/DeviceSupportFeatures.ts +28 -0
  821. package/src/api/device/DeviceUnlock.ts +12 -0
  822. package/src/api/device/DeviceUpdateBootloader.ts +78 -0
  823. package/src/api/device/DeviceUpdateReboot.ts +16 -0
  824. package/src/api/device/DeviceUploadResource.ts +140 -0
  825. package/src/api/device/DeviceVerify.ts +63 -0
  826. package/src/api/device/DeviceWipe.ts +14 -0
  827. package/src/api/dynex/DnxGetAddress.ts +75 -0
  828. package/src/api/dynex/DnxSignTransaction.ts +126 -0
  829. package/src/api/evm/EVMGetAddress.ts +87 -0
  830. package/src/api/evm/EVMGetPublicKey.ts +115 -0
  831. package/src/api/evm/EVMSignMessage.ts +48 -0
  832. package/src/api/evm/EVMSignMessageEIP712.ts +55 -0
  833. package/src/api/evm/EVMSignTransaction.ts +138 -0
  834. package/src/api/evm/EVMSignTypedData.ts +474 -0
  835. package/src/api/evm/EVMVerifyMessage.ts +45 -0
  836. package/src/api/evm/latest/getAddress.ts +13 -0
  837. package/src/api/evm/latest/getPublicKey.ts +13 -0
  838. package/src/api/evm/latest/signMessage.ts +19 -0
  839. package/src/api/evm/latest/signTransaction.ts +301 -0
  840. package/src/api/evm/latest/signTypedData.ts +34 -0
  841. package/src/api/evm/latest/signTypedHash.ts +44 -0
  842. package/src/api/evm/latest/verifyMessage.ts +15 -0
  843. package/src/api/evm/legacyV1/getAddress.ts +16 -0
  844. package/src/api/evm/legacyV1/getPublicKey.ts +16 -0
  845. package/src/api/evm/legacyV1/signMessage.ts +22 -0
  846. package/src/api/evm/legacyV1/signTransaction.ts +36 -0
  847. package/src/api/evm/legacyV1/signTypedData.ts +37 -0
  848. package/src/api/evm/legacyV1/signTypedHash.ts +48 -0
  849. package/src/api/evm/legacyV1/verifyMessage.ts +19 -0
  850. package/src/api/filecoin/FilecoinGetAddress.ts +79 -0
  851. package/src/api/filecoin/FilecoinSignTransaction.ts +56 -0
  852. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +417 -0
  853. package/src/api/firmware/bootloaderHelper.ts +44 -0
  854. package/src/api/firmware/getBinary.ts +88 -0
  855. package/src/api/firmware/releaseHelper.ts +67 -0
  856. package/src/api/firmware/updateBootloader.ts +71 -0
  857. package/src/api/firmware/uploadFirmware.ts +453 -0
  858. package/src/api/helpers/batchGetPublickeys.ts +76 -0
  859. package/src/api/helpers/bigNumberUtils.ts +58 -0
  860. package/src/api/helpers/hexUtils.ts +111 -0
  861. package/src/api/helpers/paramsValidator.ts +148 -0
  862. package/src/api/helpers/pathUtils.ts +144 -0
  863. package/src/api/helpers/stringUtils.ts +11 -0
  864. package/src/api/helpers/typeNameUtils.ts +135 -0
  865. package/src/api/index.ts +161 -0
  866. package/src/api/kaspa/KaspaGetAddress.ts +102 -0
  867. package/src/api/kaspa/KaspaSignTransaction.ts +180 -0
  868. package/src/api/kaspa/helpers/BufferWriter.ts +177 -0
  869. package/src/api/kaspa/helpers/HashWriter.ts +72 -0
  870. package/src/api/kaspa/helpers/SignatureType.ts +7 -0
  871. package/src/api/kaspa/helpers/TransferSerialize.ts +143 -0
  872. package/src/api/lightning/LnurlAuth.ts +51 -0
  873. package/src/api/near/NearGetAddress.ts +74 -0
  874. package/src/api/near/NearSignTransaction.ts +45 -0
  875. package/src/api/nem/NEMGetAddress.ts +71 -0
  876. package/src/api/nem/NEMSignTransaction.ts +250 -0
  877. package/src/api/neo/NeoGetAddress.ts +79 -0
  878. package/src/api/neo/NeoSignTransaction.ts +59 -0
  879. package/src/api/nervos/NervosGetAddress.ts +80 -0
  880. package/src/api/nervos/NervosSignTransaction.ts +114 -0
  881. package/src/api/nexa/NexaGetAddress.ts +87 -0
  882. package/src/api/nexa/NexaSignTransaction.ts +105 -0
  883. package/src/api/nostr/NostrDecryptMessage.ts +56 -0
  884. package/src/api/nostr/NostrEncryptMessage.ts +56 -0
  885. package/src/api/nostr/NostrGetPublicKey.ts +73 -0
  886. package/src/api/nostr/NostrSignEvent.ts +63 -0
  887. package/src/api/nostr/NostrSignSchnorr.ts +51 -0
  888. package/src/api/nostr/helper/index.ts +28 -0
  889. package/src/api/polkadot/PolkadotGetAddress.ts +83 -0
  890. package/src/api/polkadot/PolkadotSignTransaction.ts +50 -0
  891. package/src/api/polkadot/networks.ts +56 -0
  892. package/src/api/scdo/ScdoGetAddress.ts +75 -0
  893. package/src/api/scdo/ScdoSignMessage.ts +44 -0
  894. package/src/api/scdo/ScdoSignTransaction.ts +100 -0
  895. package/src/api/solana/SolGetAddress.ts +67 -0
  896. package/src/api/solana/SolSignMessage.ts +60 -0
  897. package/src/api/solana/SolSignOffchainMessage.ts +60 -0
  898. package/src/api/solana/SolSignTransaction.ts +105 -0
  899. package/src/api/starcoin/StarcoinGetAddress.ts +68 -0
  900. package/src/api/starcoin/StarcoinGetPublicKey.ts +69 -0
  901. package/src/api/starcoin/StarcoinSignMessage.ts +41 -0
  902. package/src/api/starcoin/StarcoinSignTransaction.ts +37 -0
  903. package/src/api/starcoin/StarcoinVerifyMessage.ts +34 -0
  904. package/src/api/stellar/StellarGetAddress.ts +67 -0
  905. package/src/api/stellar/StellarSignTransaction.ts +218 -0
  906. package/src/api/sui/SuiGetAddress.ts +117 -0
  907. package/src/api/sui/SuiGetPublicKey.ts +65 -0
  908. package/src/api/sui/SuiSignMessage.ts +47 -0
  909. package/src/api/sui/SuiSignTransaction.ts +120 -0
  910. package/src/api/sui/normalize.ts +28 -0
  911. package/src/api/test/TestInitializeDeviceDuration.ts +22 -0
  912. package/src/api/ton/TonGetAddress.ts +96 -0
  913. package/src/api/ton/TonSignMessage.ts +214 -0
  914. package/src/api/ton/TonSignProof.ts +62 -0
  915. package/src/api/tron/TronGetAddress.ts +74 -0
  916. package/src/api/tron/TronSignMessage.ts +82 -0
  917. package/src/api/tron/TronSignTransaction.ts +203 -0
  918. package/src/api/u2f/GetNextU2FCounter.ts +14 -0
  919. package/src/api/u2f/SetU2FCounter.ts +18 -0
  920. package/src/api/utils.ts +21 -0
  921. package/src/api/xrp/XrpGetAddress.ts +114 -0
  922. package/src/api/xrp/XrpSignTransaction.ts +70 -0
  923. package/src/constants/errors.ts +15 -0
  924. package/src/constants/index.ts +2 -0
  925. package/src/constants/ui-request.ts +3 -0
  926. package/src/core/RequestQueue.ts +133 -0
  927. package/src/core/index.ts +1167 -0
  928. package/src/data/coins/bitcoin.json +44 -0
  929. package/src/data/config.ts +25 -0
  930. package/src/data/messages/messages.json +13066 -0
  931. package/src/data/messages/messages_legacy_v1.json +10270 -0
  932. package/src/data-manager/CoinManager.ts +31 -0
  933. package/src/data-manager/DataManager.ts +355 -0
  934. package/src/data-manager/MessagesConfig.ts +20 -0
  935. package/src/data-manager/TransportManager.ts +134 -0
  936. package/src/data-manager/connectSettings.ts +120 -0
  937. package/src/data-manager/index.ts +3 -0
  938. package/src/device/Device.ts +858 -0
  939. package/src/device/DeviceCommands.ts +589 -0
  940. package/src/device/DeviceConnector.ts +112 -0
  941. package/src/device/DeviceList.ts +37 -0
  942. package/src/device/DevicePool.ts +263 -0
  943. package/src/events/call.ts +94 -0
  944. package/src/events/core.ts +64 -0
  945. package/src/events/device.ts +91 -0
  946. package/src/events/firmware.ts +40 -0
  947. package/src/events/iframe.ts +54 -0
  948. package/src/events/index.ts +10 -0
  949. package/src/events/log.ts +23 -0
  950. package/src/events/logBlockEvent.ts +6 -0
  951. package/src/events/ui-promise.ts +14 -0
  952. package/src/events/ui-request.ts +205 -0
  953. package/src/events/ui-response.ts +48 -0
  954. package/src/events/utils.ts +19 -0
  955. package/src/index.ts +67 -0
  956. package/src/inject.ts +408 -0
  957. package/src/lowLevelInject.ts +60 -0
  958. package/src/topLevelInject.ts +60 -0
  959. package/src/types/api/alephiumGetAddress.ts +31 -0
  960. package/src/types/api/alephiumSignMessage.ts +14 -0
  961. package/src/types/api/alephiumSignTransaction.ts +18 -0
  962. package/src/types/api/algoGetAddress.ts +23 -0
  963. package/src/types/api/algoSignTransaction.ts +17 -0
  964. package/src/types/api/allNetworkGetAddress.ts +129 -0
  965. package/src/types/api/aptosGetAddress.ts +28 -0
  966. package/src/types/api/aptosGetPublicKey.ts +27 -0
  967. package/src/types/api/aptosSignInMessage.ts +17 -0
  968. package/src/types/api/aptosSignMessage.ts +26 -0
  969. package/src/types/api/aptosSignTransaction.ts +18 -0
  970. package/src/types/api/benfenGetAddress.ts +24 -0
  971. package/src/types/api/benfenGetPublicKey.ts +23 -0
  972. package/src/types/api/benfenSignMessage.ts +13 -0
  973. package/src/types/api/benfenSignTransaction.ts +19 -0
  974. package/src/types/api/btcGetAddress.ts +26 -0
  975. package/src/types/api/btcGetPublicKey.ts +26 -0
  976. package/src/types/api/btcSignMessage.ts +16 -0
  977. package/src/types/api/btcSignPsbt.ts +13 -0
  978. package/src/types/api/btcSignTransaction.ts +98 -0
  979. package/src/types/api/btcVerifyMessage.ts +15 -0
  980. package/src/types/api/cardano.ts +212 -0
  981. package/src/types/api/cardanoGetAddress.ts +49 -0
  982. package/src/types/api/cardanoGetPublicKey.ts +33 -0
  983. package/src/types/api/cardanoSignMessage.ts +25 -0
  984. package/src/types/api/cardanoSignTransaction.ts +8 -0
  985. package/src/types/api/checkAllFirmwareRelease.ts +30 -0
  986. package/src/types/api/checkBLEFirmwareRelease.ts +15 -0
  987. package/src/types/api/checkBootloaderRelease.ts +15 -0
  988. package/src/types/api/checkBridgeRelease.ts +14 -0
  989. package/src/types/api/checkBridgeStatus.ts +3 -0
  990. package/src/types/api/checkFirmwareRelease.ts +15 -0
  991. package/src/types/api/cipherKeyValue.ts +28 -0
  992. package/src/types/api/confluxGetAddress.ts +24 -0
  993. package/src/types/api/confluxSignMessage.ts +13 -0
  994. package/src/types/api/confluxSignMessageCIP23.ts +14 -0
  995. package/src/types/api/confluxSignTransaction.ts +32 -0
  996. package/src/types/api/cosmosGetAddress.ts +24 -0
  997. package/src/types/api/cosmosGetPublicKey.ts +28 -0
  998. package/src/types/api/cosmosSignTransaction.ts +17 -0
  999. package/src/types/api/deviceBackup.ts +4 -0
  1000. package/src/types/api/deviceCancel.ts +4 -0
  1001. package/src/types/api/deviceChangePin.ts +11 -0
  1002. package/src/types/api/deviceFlags.ts +11 -0
  1003. package/src/types/api/deviceFullyUploadResource.ts +9 -0
  1004. package/src/types/api/deviceLock.ts +4 -0
  1005. package/src/types/api/deviceRebootToBoardloader.ts +6 -0
  1006. package/src/types/api/deviceRebootToBootloader.ts +4 -0
  1007. package/src/types/api/deviceRecovery.ts +19 -0
  1008. package/src/types/api/deviceReset.ts +20 -0
  1009. package/src/types/api/deviceSettings.ts +20 -0
  1010. package/src/types/api/deviceSupportFeatures.ts +6 -0
  1011. package/src/types/api/deviceUnlock.ts +4 -0
  1012. package/src/types/api/deviceUpdateBootloader.ts +9 -0
  1013. package/src/types/api/deviceUpdateReboot.ts +3 -0
  1014. package/src/types/api/deviceUploadResource.ts +16 -0
  1015. package/src/types/api/deviceVerify.ts +15 -0
  1016. package/src/types/api/deviceWipe.ts +4 -0
  1017. package/src/types/api/dnxGetAddress.ts +23 -0
  1018. package/src/types/api/dnxSignTransaction.ts +36 -0
  1019. package/src/types/api/emmcFileWrite.ts +12 -0
  1020. package/src/types/api/event.ts +8 -0
  1021. package/src/types/api/evmGetAddress.ts +24 -0
  1022. package/src/types/api/evmGetPublicKey.ts +36 -0
  1023. package/src/types/api/evmSignMessage.ts +14 -0
  1024. package/src/types/api/evmSignMessageEIP712.ts +14 -0
  1025. package/src/types/api/evmSignTransaction.ts +80 -0
  1026. package/src/types/api/evmSignTypedData.ts +42 -0
  1027. package/src/types/api/evmVerifyMessage.ts +15 -0
  1028. package/src/types/api/export.ts +191 -0
  1029. package/src/types/api/filecoinGetAddress.ts +24 -0
  1030. package/src/types/api/filecoinSignTransaction.ts +24 -0
  1031. package/src/types/api/firmwareUpdate.ts +63 -0
  1032. package/src/types/api/getFeatures.ts +4 -0
  1033. package/src/types/api/getLogs.ts +3 -0
  1034. package/src/types/api/getNextU2FCounter.ts +7 -0
  1035. package/src/types/api/getPassphraseState.ts +6 -0
  1036. package/src/types/api/getUkeyFeatures.ts +7 -0
  1037. package/src/types/api/index.ts +437 -0
  1038. package/src/types/api/init.ts +11 -0
  1039. package/src/types/api/kaspaGetAddress.ts +26 -0
  1040. package/src/types/api/kaspaSignTransaction.ts +44 -0
  1041. package/src/types/api/lnurlAuth.ts +22 -0
  1042. package/src/types/api/nearGetAddress.ts +23 -0
  1043. package/src/types/api/nearSignTransaction.ts +13 -0
  1044. package/src/types/api/nemGetAddress.ts +24 -0
  1045. package/src/types/api/nemSignTransaction.ts +118 -0
  1046. package/src/types/api/neoGetAddress.ts +24 -0
  1047. package/src/types/api/neoSignTransaction.ts +18 -0
  1048. package/src/types/api/nervosGetAddress.ts +24 -0
  1049. package/src/types/api/nervosSignTransaction.ts +19 -0
  1050. package/src/types/api/nexaGetAddress.ts +26 -0
  1051. package/src/types/api/nexaSignTransaction.ts +28 -0
  1052. package/src/types/api/nostrDecryptMessage.ts +25 -0
  1053. package/src/types/api/nostrEncryptMessage.ts +25 -0
  1054. package/src/types/api/nostrGetPublicKey.ts +28 -0
  1055. package/src/types/api/nostrSignEvent.ts +52 -0
  1056. package/src/types/api/nostrSignSchnorr.ts +22 -0
  1057. package/src/types/api/polkadotGetAddress.ts +30 -0
  1058. package/src/types/api/polkadotSignTransaction.ts +18 -0
  1059. package/src/types/api/promptWebDeviceAccess.ts +6 -0
  1060. package/src/types/api/scdoGetAddress.ts +23 -0
  1061. package/src/types/api/scdoSignMessage.ts +13 -0
  1062. package/src/types/api/scdoSignTransaction.ts +24 -0
  1063. package/src/types/api/searchDevices.ts +5 -0
  1064. package/src/types/api/setU2FCounter.ts +7 -0
  1065. package/src/types/api/solGetAddress.ts +23 -0
  1066. package/src/types/api/solSignMessage.ts +17 -0
  1067. package/src/types/api/solSignOffchainMessage.ts +21 -0
  1068. package/src/types/api/solSignTransaction.ts +23 -0
  1069. package/src/types/api/starcoinGetAddress.ts +23 -0
  1070. package/src/types/api/starcoinGetPublicKey.ts +23 -0
  1071. package/src/types/api/starcoinSignMessage.ts +13 -0
  1072. package/src/types/api/starcoinSignTransaction.ts +13 -0
  1073. package/src/types/api/starcoinVerifyMessage.ts +14 -0
  1074. package/src/types/api/stellarGetAddress.ts +23 -0
  1075. package/src/types/api/stellarSignTransaction.ts +154 -0
  1076. package/src/types/api/suiGetAddress.ts +28 -0
  1077. package/src/types/api/suiGetPublicKey.ts +27 -0
  1078. package/src/types/api/suiSignMessage.ts +13 -0
  1079. package/src/types/api/suiSignTransaction.ts +17 -0
  1080. package/src/types/api/testInitializeDeviceDuration.ts +6 -0
  1081. package/src/types/api/tonGetAddress.ts +34 -0
  1082. package/src/types/api/tonSignMessage.ts +42 -0
  1083. package/src/types/api/tonSignProof.ts +25 -0
  1084. package/src/types/api/tronGetAddress.ts +23 -0
  1085. package/src/types/api/tronSignMessage.ts +14 -0
  1086. package/src/types/api/tronSignTransaction.ts +89 -0
  1087. package/src/types/api/uiResponse.ts +3 -0
  1088. package/src/types/api/xrpGetAddress.ts +28 -0
  1089. package/src/types/api/xrpSignTransaction.ts +29 -0
  1090. package/src/types/device.ts +185 -0
  1091. package/src/types/firmware.ts +41 -0
  1092. package/src/types/global.d.ts +3 -0
  1093. package/src/types/index.ts +5 -0
  1094. package/src/types/params.ts +59 -0
  1095. package/src/types/settings.ts +104 -0
  1096. package/src/utils/arrayUtils.ts +7 -0
  1097. package/src/utils/assets.ts +5 -0
  1098. package/src/utils/bridgeUpdate.ts +77 -0
  1099. package/src/utils/capabilitieUtils.ts +12 -0
  1100. package/src/utils/deviceFeaturesUtils.ts +340 -0
  1101. package/src/utils/deviceInfoUtils.ts +166 -0
  1102. package/src/utils/deviceVersionUtils.ts +78 -0
  1103. package/src/utils/findDefectiveBatchDevice.ts +38 -0
  1104. package/src/utils/getMutex.ts +41 -0
  1105. package/src/utils/getSynchronize.ts +25 -0
  1106. package/src/utils/homescreen.ts +343 -0
  1107. package/src/utils/index.ts +42 -0
  1108. package/src/utils/logger.ts +187 -0
  1109. package/src/utils/networkUtils.ts +25 -0
  1110. package/src/utils/patch.ts +14 -0
  1111. package/src/utils/promiseUtils.ts +4 -0
  1112. package/src/utils/release.ts +41 -0
  1113. package/src/utils/semver.test.js +53 -0
  1114. package/src/utils/versionUtils.ts +120 -0
  1115. package/tsconfig.json +11 -0
@@ -0,0 +1,1167 @@
1
+ import semver from 'semver';
2
+ import EventEmitter from 'events';
3
+ import { Features, LowlevelTransportSharedPlugin, UKeyDeviceInfo } from '@ukeyfe/hardware-transport';
4
+ import {
5
+ createDeferred,
6
+ Deferred,
7
+ ERRORS,
8
+ HardwareError,
9
+ HardwareErrorCode,
10
+ createDeprecatedHardwareError,
11
+ createNeedUpgradeFirmwareHardwareError,
12
+ createNewFirmwareForceUpdateHardwareError,
13
+ createNewFirmwareUnReleaseHardwareError,
14
+ createDefectiveFirmwareError,
15
+ } from '@ukeyfe/hardware-shared';
16
+ import {
17
+ getDeviceFirmwareVersion,
18
+ getDeviceBLEFirmwareVersion,
19
+ enableLog,
20
+ getLogger,
21
+ LoggerNames,
22
+ setLoggerPostMessage,
23
+ wait,
24
+ getMethodVersionRange,
25
+ } from '../utils';
26
+ import {
27
+ findDefectiveBatchDevice,
28
+ getDefectiveDeviceInfo,
29
+ } from '../utils/findDefectiveBatchDevice';
30
+ import { supportNewPassphrase } from '../utils/deviceFeaturesUtils';
31
+ import { Device, DeviceEvents, InitOptions, RunOptions } from '../device/Device';
32
+ import { DeviceList } from '../device/DeviceList';
33
+ import { DevicePool } from '../device/DevicePool';
34
+ import { findMethod } from '../api/utils';
35
+ import { DataManager } from '../data-manager';
36
+
37
+ import { UI_REQUEST as UI_REQUEST_CONST } from '../constants/ui-request';
38
+ import {
39
+ CORE_EVENT,
40
+ CoreMessage,
41
+ createDeviceMessage,
42
+ createResponseMessage,
43
+ createUiMessage,
44
+ DEVICE,
45
+ IFRAME,
46
+ IFrameCallMessage,
47
+ UI_REQUEST,
48
+ UI_RESPONSE,
49
+ UiPromise,
50
+ UiPromiseResponse,
51
+ } from '../events';
52
+ import type { BaseMethod } from '../api/BaseMethod';
53
+ import type { ConnectSettings, KnownDevice } from '../types';
54
+ import TransportManager from '../data-manager/TransportManager';
55
+ import DeviceConnector from '../device/DeviceConnector';
56
+ import RequestQueue from './RequestQueue';
57
+ import { getSynchronize } from '../utils/getSynchronize';
58
+
59
+ const Log = getLogger(LoggerNames.Core);
60
+
61
+ export type CoreContext = ReturnType<Core['getCoreContext']>;
62
+
63
+ function hasDeriveCardano(method: BaseMethod): boolean {
64
+ if (
65
+ method.name.startsWith('allNetworkGetAddress') &&
66
+ method.payload &&
67
+ method.payload.bundle &&
68
+ // @ts-expect-error
69
+ method.payload.bundle.some(net => net && net.network === 'ada')
70
+ ) {
71
+ return true;
72
+ }
73
+
74
+ return method.name.startsWith('cardano') || method.payload?.deriveCardano;
75
+ }
76
+
77
+ const parseInitOptions = (method?: BaseMethod): InitOptions => ({
78
+ initSession: method?.payload.initSession,
79
+ passphraseState: method?.payload.passphraseState,
80
+ deviceId: method?.payload.deviceId,
81
+ deriveCardano: method && hasDeriveCardano(method),
82
+ });
83
+
84
+ let _core: Core;
85
+ let _deviceList: DeviceList | undefined;
86
+ let _connector: DeviceConnector | undefined;
87
+ let _uiPromises: UiPromise<UiPromiseResponse['type']>[] = []; // Waiting for ui response
88
+
89
+ const deviceCacheMap = new Map<string, Device>();
90
+ let pollingId = 1;
91
+ const pollingState: Record<number, boolean> = {};
92
+
93
+ let preConnectCache: {
94
+ passphraseState: string | undefined;
95
+ } = {
96
+ passphraseState: undefined,
97
+ };
98
+
99
+ export const callAPI = async (context: CoreContext, message: CoreMessage) => {
100
+ if (!message.id || !message.payload || message.type !== IFRAME.CALL) {
101
+ return Promise.reject(ERRORS.TypedError('on call: message.id or message.payload is missing'));
102
+ }
103
+
104
+ // find api method
105
+ let method: BaseMethod;
106
+ try {
107
+ method = findMethod(message as IFrameCallMessage);
108
+ method.connector = _connector;
109
+ method.postMessage = postMessage;
110
+ method.init();
111
+ } catch (error) {
112
+ return Promise.reject(error);
113
+ }
114
+
115
+ DevicePool.emitter.on(DEVICE.CONNECT, onDeviceConnectHandler);
116
+
117
+ if (!method.useDevice) {
118
+ try {
119
+ const response = await method.run();
120
+ return createResponseMessage(method.responseID, true, response);
121
+ } catch (error) {
122
+ return createResponseMessage(method.responseID, false, { error });
123
+ }
124
+ }
125
+ // push method to queue
126
+ // callApiQueue.push(method);
127
+
128
+ // if (callApiQueue.length > 1) {
129
+ // Log.debug(
130
+ // 'should cancel the previous method execution: ',
131
+ // callApiQueue.map(m => m.name)
132
+ // );
133
+ // }
134
+
135
+ const { requestQueue, methodSynchronize } = context;
136
+ const error = await methodSynchronize(() => {
137
+ for (const requestId of requestQueue.getRequestTasksId()) {
138
+ const task = requestQueue.getTask(requestId);
139
+ Log.debug(
140
+ 'pre request task: ',
141
+ `task?.id: ${task?.id},
142
+ task?.method.connectId: ${task?.method.connectId},
143
+ task?.method.deviceId: ${task?.method.deviceId},
144
+ task?.method.name: ${task?.method.name}`
145
+ );
146
+ // if (task) {
147
+ // return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceBusy));
148
+ // }
149
+ }
150
+ return null;
151
+ });
152
+
153
+ if (error) {
154
+ return createResponseMessage(method.responseID, false, { error });
155
+ }
156
+
157
+ return onCallDevice(context, message, method);
158
+ };
159
+
160
+ const waitWithTimeout = async (promise: Promise<any>, timeout: number) => {
161
+ const timeoutPromise = new Promise((_, reject) => {
162
+ setTimeout(() => reject(new Error('Request timeout')), timeout);
163
+ });
164
+ return Promise.race([promise, timeoutPromise]);
165
+ };
166
+
167
+ const waitForPendingPromise = async (
168
+ getPrePendingCallPromise: () => Promise<void> | undefined,
169
+ removePrePendingCallPromise?: (promise: Promise<void> | undefined) => void
170
+ ) => {
171
+ const pendingPromise = getPrePendingCallPromise();
172
+ if (pendingPromise) {
173
+ Log.debug('pre pending call promise before call method, wait for it');
174
+ try {
175
+ await waitWithTimeout(pendingPromise, 5 * 1000);
176
+ } catch (error) {
177
+ // ignore timeout error
178
+ }
179
+ removePrePendingCallPromise?.(pendingPromise);
180
+ Log.debug('pre pending call promise before call method done');
181
+ }
182
+ };
183
+
184
+ const onCallDevice = async (
185
+ context: CoreContext,
186
+ message: CoreMessage,
187
+ method: BaseMethod
188
+ ): Promise<any> => {
189
+ let messageResponse: any;
190
+
191
+ const { requestQueue, getPrePendingCallPromise, setPrePendingCallPromise } = context;
192
+
193
+ const connectStateChange = preConnectCache.passphraseState !== method.payload.passphraseState;
194
+
195
+ preConnectCache = {
196
+ passphraseState: method.payload.passphraseState,
197
+ };
198
+
199
+ if (connectStateChange || method.payload.initSession) {
200
+ Log.debug('passphrase state change, clear device cache');
201
+ DevicePool.clearDeviceCache(method.payload.connectId);
202
+ }
203
+
204
+ // wait for previous callback tasks to complete (ensure device does not call concurrently)
205
+ if (method.connectId) {
206
+ await context.waitForCallbackTasks(method.connectId);
207
+ }
208
+
209
+ await waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
210
+
211
+ const task = requestQueue.createTask(method);
212
+
213
+ let device: Device;
214
+ try {
215
+ /**
216
+ * Polling to ensure successful connection
217
+ */
218
+ if (pollingState[pollingId]) {
219
+ pollingState[pollingId] = false;
220
+ }
221
+ pollingId += 1;
222
+
223
+ device = await ensureConnected(context, method, pollingId, task.abortController?.signal);
224
+ } catch (e) {
225
+ console.log('ensureConnected error: ', e);
226
+
227
+ if (e.name === 'AbortError' || e.message === 'Request aborted') {
228
+ requestQueue.releaseTask(method.responseID);
229
+ return createResponseMessage(method.responseID, false, {
230
+ error: ERRORS.TypedError(HardwareErrorCode.ActionCancelled, 'Request cancelled by user'),
231
+ });
232
+ }
233
+ requestQueue.releaseTask(method.responseID);
234
+ return createResponseMessage(method.responseID, false, { error: e });
235
+ }
236
+
237
+ Log.debug('Call API - setDevice: ', device.mainId);
238
+ method.setDevice?.(device);
239
+ method.context = context;
240
+
241
+ device.on(DEVICE.PIN, onDevicePinHandler);
242
+ device.on(DEVICE.BUTTON, onDeviceButtonHandler);
243
+ device.on(
244
+ DEVICE.PASSPHRASE,
245
+ message.payload.useEmptyPassphrase ? onEmptyPassphraseHandler : onDevicePassphraseHandler
246
+ );
247
+ device.on(DEVICE.PASSPHRASE_ON_DEVICE, onEnterPassphraseOnDeviceHandler);
248
+ device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
249
+ device.on(
250
+ DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE,
251
+ onSelectDeviceInBootloaderForWebDeviceHandler
252
+ );
253
+
254
+ try {
255
+ if (method.connectId) {
256
+ await context.waitForCallbackTasks(method.connectId);
257
+ }
258
+
259
+ await waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
260
+
261
+ const inner = async (): Promise<void> => {
262
+ // check firmware version
263
+ const versionRange = getMethodVersionRange(
264
+ device.features,
265
+ type => method.getVersionRange()[type]
266
+ );
267
+
268
+ if (device.features) {
269
+ await DataManager.checkAndReloadData();
270
+
271
+ // 检测故障固件设备
272
+ if (findDefectiveBatchDevice(device.features)) {
273
+ const defectiveInfo = getDefectiveDeviceInfo(device.features);
274
+ if (defectiveInfo) {
275
+ throw createDefectiveFirmwareError(
276
+ defectiveInfo.serialNo,
277
+ defectiveInfo.seVersion || 'Unknown',
278
+ defectiveInfo.deviceType,
279
+ method.connectId,
280
+ method.deviceId
281
+ );
282
+ }
283
+ }
284
+
285
+ const newVersionStatus = DataManager.getFirmwareStatus(device.features);
286
+ const bleVersionStatus = DataManager.getBLEFirmwareStatus(device.features);
287
+
288
+ const currentFirmwareVersion = getDeviceFirmwareVersion(device.features).join('.');
289
+ const currentBleVersion = getDeviceBLEFirmwareVersion(device.features).join('.');
290
+ if (
291
+ (newVersionStatus === 'required' || bleVersionStatus === 'required') &&
292
+ method.skipForceUpdateCheck === false
293
+ ) {
294
+ // Get current version information for error reporting
295
+ const currentVersions = {
296
+ firmware: currentFirmwareVersion,
297
+ ble: currentBleVersion,
298
+ };
299
+
300
+ // Provide more specific error message based on which version check failed
301
+ const requiredUpdates: ('firmware' | 'ble')[] = [];
302
+ if (newVersionStatus === 'required') {
303
+ requiredUpdates.push('firmware');
304
+ }
305
+ if (bleVersionStatus === 'required') {
306
+ requiredUpdates.push('ble');
307
+ }
308
+ throw createNewFirmwareForceUpdateHardwareError(
309
+ method.connectId,
310
+ method.deviceId,
311
+ requiredUpdates,
312
+ currentVersions
313
+ );
314
+ }
315
+
316
+ if (versionRange) {
317
+ if (
318
+ semver.valid(versionRange.min) &&
319
+ semver.lt(currentFirmwareVersion, versionRange.min)
320
+ ) {
321
+ if (newVersionStatus === 'none' || newVersionStatus === 'valid') {
322
+ throw createNewFirmwareUnReleaseHardwareError(
323
+ currentFirmwareVersion,
324
+ versionRange.min,
325
+ method.name
326
+ );
327
+ }
328
+
329
+ return Promise.reject(
330
+ createNeedUpgradeFirmwareHardwareError(
331
+ currentFirmwareVersion,
332
+ versionRange.min,
333
+ method.name
334
+ )
335
+ );
336
+ }
337
+ if (
338
+ versionRange.max &&
339
+ semver.valid(versionRange.max) &&
340
+ semver.gte(currentFirmwareVersion, versionRange.max)
341
+ ) {
342
+ return Promise.reject(
343
+ createDeprecatedHardwareError(currentFirmwareVersion, versionRange.max, method.name)
344
+ );
345
+ }
346
+ } else if (method.strictCheckDeviceSupport) {
347
+ throw ERRORS.TypedError(
348
+ HardwareErrorCode.DeviceNotSupportMethod,
349
+ `Method '${method.name}' is not supported by this device`
350
+ );
351
+ }
352
+ }
353
+
354
+ // check call method mode
355
+ const unexpectedMode = device.hasUnexpectedMode(
356
+ method.allowDeviceMode,
357
+ method.requireDeviceMode
358
+ );
359
+ if (unexpectedMode) {
360
+ if (unexpectedMode === UI_REQUEST_CONST.NOT_IN_BOOTLOADER) {
361
+ return Promise.reject(ERRORS.TypedError(HardwareErrorCode.RequiredButInBootloaderMode));
362
+ }
363
+ if (unexpectedMode === UI_REQUEST_CONST.BOOTLOADER) {
364
+ return Promise.reject(ERRORS.TypedError(HardwareErrorCode.NotAllowInBootloaderMode));
365
+ }
366
+ return Promise.reject(
367
+ ERRORS.TypedError(HardwareErrorCode.DeviceUnexpectedMode, unexpectedMode)
368
+ );
369
+ }
370
+
371
+ if (method.deviceId && method.checkDeviceId) {
372
+ const isSameDeviceID = device.checkDeviceId(method.deviceId);
373
+ if (!isSameDeviceID) {
374
+ return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceCheckDeviceIdError));
375
+ }
376
+ }
377
+
378
+ /**
379
+ * check firmware release info
380
+ */
381
+ method.checkFirmwareRelease();
382
+
383
+ /**
384
+ * check additional supported feature
385
+ */
386
+ method.checkDeviceSupportFeature();
387
+
388
+ // reconfigure messages
389
+ if (_deviceList) {
390
+ await TransportManager.reconfigure(device.features);
391
+ }
392
+
393
+ // Check to see if it is safe to use Passphrase
394
+ checkPassphraseEnableState(method, device.features);
395
+
396
+ if (device.hasUsePassphrase() && method.useDevicePassphraseState) {
397
+ // check version
398
+ const support = supportNewPassphrase(device.features);
399
+ if (!support.support) {
400
+ return Promise.reject(
401
+ ERRORS.TypedError(
402
+ HardwareErrorCode.DeviceNotSupportPassphrase,
403
+ `Device not support passphrase, please update to ${support.require}`,
404
+ {
405
+ require: support.require,
406
+ }
407
+ )
408
+ );
409
+ }
410
+
411
+ // Check Device passphrase State
412
+ const passphraseStateSafety = await device.checkPassphraseStateSafety(
413
+ method.payload?.passphraseState,
414
+ method.payload?.useEmptyPassphrase,
415
+ method.payload?.skipPassphraseCheck
416
+ );
417
+
418
+ // Double check, handles the special case of Touch/Pro
419
+ checkPassphraseEnableState(method, device.features);
420
+
421
+ if (!passphraseStateSafety) {
422
+ DevicePool.clearDeviceCache(method.payload.connectId);
423
+ return Promise.reject(
424
+ ERRORS.TypedError(HardwareErrorCode.DeviceCheckPassphraseStateError)
425
+ );
426
+ }
427
+
428
+ // close pin popup window
429
+ postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
430
+ }
431
+
432
+ // Automatic check safety_check level for Kovan, Ropsten, Rinkeby, Goerli test networks.
433
+ try {
434
+ await method.checkSafetyLevelOnTestNet();
435
+ } catch (e) {
436
+ const error =
437
+ e instanceof HardwareError
438
+ ? e
439
+ : ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'open safety check failed.');
440
+ // messageResponse = createResponseMessage(method.responseID, false, { error });
441
+ // requestQueue.resolveRequest(method.responseID, messageResponse);
442
+ // return;
443
+ throw error;
444
+ }
445
+
446
+ method.device?.commands?.checkDisposed();
447
+
448
+ try {
449
+ const response: object = await method.run();
450
+ Log.debug('Call API - Inner Method Run: ');
451
+ messageResponse = createResponseMessage(method.responseID, true, response);
452
+ requestQueue.resolveRequest(method.responseID, messageResponse);
453
+ } catch (error) {
454
+ Log.debug('Call API - Inner Method Run Error: ', error);
455
+ messageResponse = createResponseMessage(method.responseID, false, { error });
456
+ requestQueue.resolveRequest(method.responseID, messageResponse);
457
+ }
458
+ };
459
+ Log.debug('Call API - Device Run: ', device.mainId);
460
+
461
+ const runOptions: RunOptions = {
462
+ keepSession: method.payload.keepSession,
463
+ ...parseInitOptions(method),
464
+ };
465
+ const deviceRun = () => device.run(inner, runOptions);
466
+ task.callPromise = createDeferred<any>(deviceRun);
467
+
468
+ try {
469
+ return await task.callPromise.promise;
470
+ } catch (e) {
471
+ Log.debug('Device Run Error: ', e);
472
+ return createResponseMessage(method.responseID, false, { error: e });
473
+ }
474
+ } catch (error) {
475
+ messageResponse = createResponseMessage(method.responseID, false, { error });
476
+ requestQueue.rejectRequest(
477
+ method.responseID,
478
+ ERRORS.TypedError(HardwareErrorCode.CallMethodError, error.message)
479
+ );
480
+ Log.debug('Call API - Run Error: ', error);
481
+ } finally {
482
+ const response = messageResponse;
483
+
484
+ if (response) {
485
+ if (method) {
486
+ method.dispose();
487
+ }
488
+ }
489
+
490
+ // remove method from queue
491
+ // const index = method.responseID
492
+ // ? callApiQueue.findIndex(m => m.responseID === method.responseID)
493
+ // : -1;
494
+ // if (index > -1) {
495
+ // callApiQueue.splice(index, 1);
496
+ // Log.debug(
497
+ // 'Remove the finished method from the queue: ',
498
+ // callApiQueue.map(m => m.name)
499
+ // );
500
+ // }
501
+
502
+ requestQueue.releaseTask(method.responseID);
503
+
504
+ closePopup();
505
+
506
+ cleanup();
507
+
508
+ removeDeviceListener(device);
509
+ }
510
+ };
511
+
512
+ async function initDeviceList(method: BaseMethod) {
513
+ const env = DataManager.getSettings('env');
514
+ if (DataManager.isBleConnect(env) && method.connectId) {
515
+ await TransportManager.configure();
516
+ return;
517
+ }
518
+
519
+ if (!_deviceList) {
520
+ _deviceList = new DeviceList();
521
+ await TransportManager.configure();
522
+ _deviceList.connector = _connector;
523
+ }
524
+
525
+ await _deviceList.getDeviceLists(method.connectId, parseInitOptions(method));
526
+ }
527
+
528
+ function initDevice(method: BaseMethod) {
529
+ if (!_deviceList) {
530
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceListNotInitialized);
531
+ }
532
+
533
+ let device: Device | typeof undefined;
534
+ const allDevices = _deviceList.allDevices();
535
+
536
+ if (method.payload?.detectBootloaderDevice && allDevices.some(d => d.features?.bootloader_mode)) {
537
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceDetectInBootloaderMode);
538
+ }
539
+
540
+ if (method.connectId) {
541
+ device = _deviceList.getDevice(method.connectId);
542
+ } else if (allDevices.length === 1) {
543
+ [device] = allDevices;
544
+ } else if (allDevices.length > 1) {
545
+ throw ERRORS.TypedError(
546
+ [
547
+ 'firmwareUpdateV3',
548
+ 'firmwareUpdateV2',
549
+ 'checkFirmwareRelease',
550
+ 'checkBootloaderRelease',
551
+ 'checkBLEFirmwareRelease',
552
+ ].includes(method.name)
553
+ ? HardwareErrorCode.FirmwareUpdateLimitOneDevice
554
+ : HardwareErrorCode.SelectDevice
555
+ );
556
+ }
557
+
558
+ if (!device) {
559
+ const env = DataManager.getSettings('env');
560
+ if (DataManager.isWebUsbConnect(env)) {
561
+ if (!method.payload.skipWebDevicePrompt) {
562
+ postMessage(createUiMessage(UI_REQUEST.WEB_DEVICE_PROMPT_ACCESS_PERMISSION));
563
+ }
564
+ throw ERRORS.TypedError(HardwareErrorCode.WebDeviceNotFoundOrNeedsPermission);
565
+ }
566
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceNotFound);
567
+ }
568
+
569
+ // inject properties
570
+ device.deviceConnector = _connector;
571
+
572
+ return device;
573
+ }
574
+
575
+ function initDeviceForBle(method: BaseMethod) {
576
+ if (!method.connectId && !_deviceList) {
577
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceListNotInitialized);
578
+ }
579
+
580
+ if (!method.connectId) {
581
+ return initDevice(method);
582
+ }
583
+
584
+ let device: Device;
585
+ if (deviceCacheMap.has(method.connectId)) {
586
+ device = deviceCacheMap.get(method.connectId) as Device;
587
+ } else {
588
+ device = Device.fromDescriptor({ id: method.connectId } as UKeyDeviceInfo);
589
+ deviceCacheMap.set(method.connectId, device);
590
+ }
591
+ device.deviceConnector = _connector;
592
+ return device;
593
+ }
594
+
595
+ /**
596
+ * If the Bluetooth connection times out, retry 6 times
597
+ */
598
+ let bleTimeoutRetry = 0;
599
+
600
+ async function connectDeviceForBle(method: BaseMethod, device: Device) {
601
+ try {
602
+ await device.acquire();
603
+ await device.initialize(parseInitOptions(method));
604
+ } catch (err) {
605
+ if (err.errorCode === HardwareErrorCode.BleTimeoutError && bleTimeoutRetry <= 5) {
606
+ bleTimeoutRetry += 1;
607
+ Log.debug(`Bletooth connect timeout and will retry, retry count: ${bleTimeoutRetry}`);
608
+ await wait(3000);
609
+ await connectDeviceForBle(method, device);
610
+ } else {
611
+ throw err;
612
+ }
613
+ }
614
+ }
615
+
616
+ type IPollFn<T> = (time?: number) => T;
617
+ // eslint-disable-next-line @typescript-eslint/require-await
618
+ const ensureConnected = async (
619
+ _context: CoreContext,
620
+ method: BaseMethod,
621
+ pollingId: number,
622
+ abortSignal?: AbortSignal
623
+ ) => {
624
+ let tryCount = 0;
625
+ const MAX_RETRY_COUNT =
626
+ method.payload && typeof method.payload.retryCount === 'number' ? method.payload.retryCount : 5;
627
+ const POLL_INTERVAL_TIME = (method.payload && method.payload.pollIntervalTime) || 1000;
628
+ const TIME_OUT = (method.payload && method.payload.timeout) || 10000;
629
+ let timer: ReturnType<typeof setTimeout> | null = null;
630
+
631
+ Log.debug(
632
+ `EnsureConnected function start, MAX_RETRY_COUNT=${MAX_RETRY_COUNT}, POLL_INTERVAL_TIME=${POLL_INTERVAL_TIME} `
633
+ );
634
+
635
+ const poll: IPollFn<Promise<Device>> = async (time = POLL_INTERVAL_TIME) =>
636
+ // eslint-disable-next-line no-async-promise-executor
637
+ new Promise(async (resolve, reject) => {
638
+ const abort = () => {
639
+ if (abortSignal && abortSignal.aborted) {
640
+ if (timer) {
641
+ clearTimeout(timer);
642
+ }
643
+ reject(ERRORS.TypedError(HardwareErrorCode.ActionCancelled));
644
+ return true;
645
+ }
646
+ return false;
647
+ };
648
+
649
+ if (abort()) {
650
+ return;
651
+ }
652
+
653
+ if (!pollingState[pollingId]) {
654
+ Log.debug('EnsureConnected function stop, polling id: ', pollingId);
655
+ reject(ERRORS.TypedError(HardwareErrorCode.PollingStop));
656
+ return;
657
+ }
658
+
659
+ // 单次连接确保不超时
660
+ if (timer) {
661
+ clearTimeout(timer);
662
+ }
663
+ timer = setTimeout(() => {
664
+ reject(ERRORS.TypedError(HardwareErrorCode.PollingTimeout));
665
+ }, TIME_OUT);
666
+
667
+ tryCount += 1;
668
+ Log.debug('EnsureConnected function try count: ', tryCount, ' poll interval time: ', time);
669
+ try {
670
+ await initDeviceList(method);
671
+ } catch (error) {
672
+ Log.debug('device list error: ', error);
673
+ if (
674
+ [
675
+ HardwareErrorCode.BridgeNotInstalled,
676
+ HardwareErrorCode.BridgeTimeoutError,
677
+ HardwareErrorCode.BridgeNeedsPermission,
678
+ ].includes(error.errorCode)
679
+ ) {
680
+ _deviceList = undefined;
681
+ reject(error);
682
+ return;
683
+ }
684
+ if (error.errorCode === HardwareErrorCode.TransportNotConfigured) {
685
+ await TransportManager.configure();
686
+ }
687
+ }
688
+
689
+ if (abort()) {
690
+ return;
691
+ }
692
+
693
+ const env = DataManager.getSettings('env');
694
+ let device: Device;
695
+ try {
696
+ if (DataManager.isBleConnect(env)) {
697
+ device = initDeviceForBle(method);
698
+ } else {
699
+ device = initDevice(method);
700
+ }
701
+
702
+ if (device) {
703
+ if (timer) {
704
+ clearTimeout(timer);
705
+ }
706
+
707
+ /**
708
+ * Bluetooth should call initialize here
709
+ */
710
+ if (DataManager.isBleConnect(env)) {
711
+ bleTimeoutRetry = 0;
712
+
713
+ if (abort()) {
714
+ return;
715
+ }
716
+ await connectDeviceForBle(method, device);
717
+ }
718
+ resolve(device);
719
+ return;
720
+ }
721
+ } catch (error) {
722
+ Log.debug('device error: ', error);
723
+ if ([HardwareErrorCode.BleCharacteristicNotifyChangeFailure].includes(error.errorCode)) {
724
+ postMessage(createUiMessage(UI_REQUEST.BLUETOOTH_CHARACTERISTIC_NOTIFY_CHANGE_FAILURE));
725
+ }
726
+ if (
727
+ [
728
+ HardwareErrorCode.BlePoweredOff,
729
+ HardwareErrorCode.BleUnsupported,
730
+ HardwareErrorCode.BlePermissionError,
731
+ HardwareErrorCode.BleLocationError,
732
+ HardwareErrorCode.BleLocationServicesDisabled,
733
+ HardwareErrorCode.BleDeviceNotBonded,
734
+ HardwareErrorCode.BleDeviceBondError,
735
+ HardwareErrorCode.BleDeviceBondedCanceled,
736
+ HardwareErrorCode.BleCharacteristicNotifyError,
737
+ HardwareErrorCode.BleTimeoutError,
738
+ HardwareErrorCode.BleWriteCharacteristicError,
739
+ HardwareErrorCode.BleAlreadyConnected,
740
+ HardwareErrorCode.FirmwareUpdateLimitOneDevice,
741
+ HardwareErrorCode.SelectDevice,
742
+ HardwareErrorCode.DeviceDetectInBootloaderMode,
743
+ HardwareErrorCode.BleCharacteristicNotifyChangeFailure,
744
+ HardwareErrorCode.WebDeviceNotFoundOrNeedsPermission,
745
+ HardwareErrorCode.BridgeNeedsPermission,
746
+ ].includes(error.errorCode)
747
+ ) {
748
+ reject(error);
749
+ return;
750
+ }
751
+ }
752
+
753
+ if (tryCount > MAX_RETRY_COUNT) {
754
+ if (timer) {
755
+ clearTimeout(timer);
756
+ }
757
+ Log.debug('EnsureConnected get to max try count, will return: ', tryCount);
758
+ reject(ERRORS.TypedError(HardwareErrorCode.DeviceNotFound));
759
+ return;
760
+ }
761
+
762
+ if (abort()) {
763
+ return;
764
+ }
765
+
766
+ // eslint-disable-next-line no-promise-executor-return
767
+ return setTimeout(() => resolve(poll(time * 1.5)), time);
768
+ });
769
+ pollingState[pollingId] = true;
770
+ return poll();
771
+ };
772
+
773
+ export const cancel = (context: CoreContext, connectId?: string) => {
774
+ const { requestQueue, setPrePendingCallPromise } = context;
775
+ if (connectId) {
776
+ try {
777
+ // let device;
778
+ // if (DataManager.isBleConnect(env)) {
779
+ // device = initDeviceForBle({ connectId } as BaseMethod);
780
+ // } else {
781
+ // device = initDevice({ connectId } as BaseMethod);
782
+ // }
783
+ // setPrePendingCallPromise(device?.interruptionFromUser());
784
+ // requestQueue.abortRequestsByConnectId(connectId);
785
+
786
+ // cancel callback tasks
787
+ requestQueue.cancelCallbackTasks(connectId);
788
+
789
+ const requestIds = requestQueue.getRequestTasksId();
790
+ Log.debug(
791
+ `Cancel Api connect requestQueues: length:${requestIds.length} requestIds:${requestIds.join(
792
+ ','
793
+ )}`
794
+ );
795
+ const canceledDevices: Device[] = [];
796
+ for (const requestId of requestIds) {
797
+ const task = requestQueue.getTask(requestId);
798
+ Log.debug('Cancel Api connect task: ', task);
799
+ if (task && task.method?.device) {
800
+ if (!canceledDevices.includes(task.method.device)) {
801
+ const { device } = task.method;
802
+ setPrePendingCallPromise(device?.interruptionFromUser());
803
+ canceledDevices.push(device);
804
+ }
805
+ requestQueue.rejectRequest(
806
+ requestId,
807
+ ERRORS.TypedError(HardwareErrorCode.ActionCancelled)
808
+ );
809
+ }
810
+ }
811
+ requestQueue.abortRequestsByConnectId(connectId);
812
+ } catch (e) {
813
+ Log.error('Cancel API Error: ', e);
814
+ }
815
+ } else {
816
+ const env = DataManager.getSettings('env');
817
+ if (DataManager.isBleConnect(env)) {
818
+ Log.debug('Cancel Api all _deviceList: ');
819
+ const canceledDevices: Device[] = [];
820
+ for (const requestId of requestQueue.getRequestTasksId()) {
821
+ const task = requestQueue.getTask(requestId);
822
+ Log.debug('Cancel Api connect task: ', task);
823
+ if (task && task.method?.device) {
824
+ if (!canceledDevices.includes(task.method.device)) {
825
+ const { device } = task.method;
826
+ device?.interruptionFromUser();
827
+ canceledDevices.push(device);
828
+ }
829
+
830
+ requestQueue.rejectRequest(
831
+ requestId,
832
+ ERRORS.TypedError(HardwareErrorCode.ActionCancelled)
833
+ );
834
+ }
835
+ }
836
+ } else {
837
+ _deviceList?.allDevices().forEach(device => {
838
+ Log.debug('device: ', device, ' device.hasDeviceAcquire: ', device.hasDeviceAcquire());
839
+ if (device.hasDeviceAcquire()) {
840
+ device?.interruptionFromUser();
841
+ }
842
+ });
843
+
844
+ requestQueue.getRequestTasksId().forEach(requestId => {
845
+ requestQueue.rejectRequest(requestId, ERRORS.TypedError(HardwareErrorCode.ActionCancelled));
846
+ });
847
+ }
848
+ }
849
+
850
+ cleanup();
851
+ closePopup();
852
+ };
853
+
854
+ const checkPassphraseEnableState = (method: BaseMethod, features?: Features) => {
855
+ if (!method.useDevicePassphraseState) return;
856
+
857
+ if (features?.passphrase_protection === true) {
858
+ const hasNoPassphraseState =
859
+ method.payload.passphraseState == null || method.payload.passphraseState === '';
860
+ const shouldRequirePassphrase =
861
+ !method.payload.useEmptyPassphrase && !method.payload.skipPassphraseCheck;
862
+
863
+ if (hasNoPassphraseState && shouldRequirePassphrase) {
864
+ DevicePool.clearDeviceCache(method.payload.connectId);
865
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceOpenedPassphrase);
866
+ }
867
+ }
868
+
869
+ if (features?.passphrase_protection === false && method.payload.passphraseState) {
870
+ DevicePool.clearDeviceCache(method.payload.connectId);
871
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceNotOpenedPassphrase);
872
+ }
873
+ };
874
+
875
+ const cleanup = () => {
876
+ _uiPromises = [];
877
+ Log.debug('Cleanup...');
878
+ };
879
+
880
+ const removeDeviceListener = (device: Device) => {
881
+ device.removeAllListeners();
882
+ DevicePool.emitter.removeAllListeners(DEVICE.CONNECT);
883
+ // DevicePool.emitter.removeListener(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
884
+ };
885
+
886
+ /**
887
+ * Force close popup
888
+ */
889
+ const closePopup = () => {
890
+ postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_WINDOW));
891
+ };
892
+
893
+ const onDeviceConnectHandler = (device: Device) => {
894
+ const env = DataManager.getSettings('env');
895
+ const deviceObject = DataManager.isBleConnect(env) ? device : device.toMessageObject();
896
+ postMessage(createDeviceMessage(DEVICE.CONNECT, { device: deviceObject as KnownDevice }));
897
+ };
898
+
899
+ const onDeviceDisconnectHandler = (device: Device) => {
900
+ const env = DataManager.getSettings('env');
901
+ const deviceObject = DataManager.isBleConnect(env) ? device : device.toMessageObject();
902
+ postMessage(createDeviceMessage(DEVICE.DISCONNECT, { device: deviceObject as KnownDevice }));
903
+ };
904
+
905
+ const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin']) => {
906
+ Log.log('request Input PIN');
907
+ // create ui promise
908
+ const uiPromise = createUiPromise(UI_RESPONSE.RECEIVE_PIN, device);
909
+ // request pin view
910
+ postMessage(
911
+ createUiMessage(UI_REQUEST.REQUEST_PIN, {
912
+ device: device.toMessageObject() as unknown as KnownDevice,
913
+ type,
914
+ })
915
+ );
916
+ // wait for pin
917
+ const uiResp = await uiPromise.promise;
918
+ // callback.apply(null, [null, pin]);
919
+ callback(null, uiResp.payload);
920
+ };
921
+
922
+ export const onDeviceButtonHandler = (...[device, request]: [...DeviceEvents['button']]) => {
923
+ postMessage(createDeviceMessage(DEVICE.BUTTON, { ...request, device: device.toMessageObject() }));
924
+
925
+ if (request.code === 'ButtonRequest_PinEntry' || request.code === 'ButtonRequest_AttachPin') {
926
+ Log.log('request Confirm Input PIN or Attach PIN');
927
+ postMessage(
928
+ createUiMessage(UI_REQUEST.REQUEST_PIN, {
929
+ device: device.toMessageObject() as KnownDevice,
930
+ type: request.code,
931
+ })
932
+ );
933
+ } else {
934
+ Log.log('request Confirm Button');
935
+ postMessage(createUiMessage(UI_REQUEST.REQUEST_BUTTON, { device: device.toMessageObject() }));
936
+ }
937
+ };
938
+
939
+ const onDeviceFeaturesHandler = (...[_, features]: [...DeviceEvents['features']]) => {
940
+ postMessage(createDeviceMessage(DEVICE.FEATURES, { ...features }));
941
+ };
942
+
943
+ const onDevicePassphraseHandler = async (
944
+ ...[device, requestPayload, callback]: DeviceEvents['passphrase']
945
+ ) => {
946
+ Log.debug('onDevicePassphraseHandler');
947
+ const uiPromise = createUiPromise(UI_RESPONSE.RECEIVE_PASSPHRASE, device);
948
+ postMessage(
949
+ createUiMessage(UI_REQUEST.REQUEST_PASSPHRASE, {
950
+ device: device.toMessageObject() as KnownDevice,
951
+ passphraseState: device.passphraseState,
952
+ existsAttachPinUser: requestPayload.existsAttachPinUser,
953
+ })
954
+ );
955
+ // wait for passphrase
956
+ const uiResp = await uiPromise.promise;
957
+ const { value, passphraseOnDevice, save, attachPinOnDevice } = uiResp.payload;
958
+ // send as PassphrasePromptResponse
959
+ callback({
960
+ passphrase: value.normalize('NFKD'),
961
+ passphraseOnDevice,
962
+ attachPinOnDevice,
963
+ cache: save,
964
+ });
965
+ };
966
+
967
+ const onEmptyPassphraseHandler = (...[_, , callback]: DeviceEvents['passphrase']) => {
968
+ Log.debug('onEmptyPassphraseHandler');
969
+ // send as PassphrasePromptResponse
970
+ callback({ passphrase: '' });
971
+ };
972
+
973
+ const onEnterPassphraseOnDeviceHandler = (
974
+ ...[device]: [...DeviceEvents['passphrase_on_device']]
975
+ ) => {
976
+ postMessage(
977
+ createUiMessage(UI_REQUEST.REQUEST_PASSPHRASE_ON_DEVICE, {
978
+ device: device.toMessageObject() as KnownDevice,
979
+ passphraseState: device.passphraseState,
980
+ })
981
+ );
982
+ };
983
+
984
+ const onSelectDeviceInBootloaderForWebDeviceHandler = async (
985
+ ...[device, callback]: [...DeviceEvents['select_device_in_bootloader_for_web_device']]
986
+ ) => {
987
+ Log.debug('onSelectDeviceInBootloaderForWebDeviceHandler');
988
+ const uiPromise = createUiPromise(UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE, device);
989
+ postMessage(
990
+ createUiMessage(UI_REQUEST.REQUEST_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE, {
991
+ device: device.toMessageObject() as KnownDevice,
992
+ })
993
+ );
994
+ const uiResp = await uiPromise.promise;
995
+ callback(null, uiResp.payload.deviceId);
996
+ };
997
+
998
+ /**
999
+ * Emit message to listener (parent).
1000
+ * Clear method reference from _callMethods
1001
+ * @param {CoreMessage} message
1002
+ * @returns {void}
1003
+ * @memberof Core
1004
+ */
1005
+ const postMessage = (message: CoreMessage) => {
1006
+ _core.emit(CORE_EVENT, message);
1007
+ };
1008
+
1009
+ const createUiPromise = <T extends UiPromiseResponse['type']>(promiseEvent: T, device?: Device) => {
1010
+ const uiPromise: UiPromise<T> = createDeferred(promiseEvent, device);
1011
+ _uiPromises.push(uiPromise as any);
1012
+
1013
+ return uiPromise;
1014
+ };
1015
+
1016
+ const findUiPromise = <T extends UiPromiseResponse['type']>(promiseEvent: T) =>
1017
+ _uiPromises.find(p => p.id === promiseEvent);
1018
+
1019
+ const removeUiPromise = (promise: Deferred<any>) => {
1020
+ _uiPromises = _uiPromises.filter(p => p !== promise);
1021
+ };
1022
+
1023
+ export default class Core extends EventEmitter {
1024
+ private requestQueue = new RequestQueue();
1025
+
1026
+ // background task
1027
+ private prePendingCallPromise: Promise<void> | undefined;
1028
+
1029
+ private methodSynchronize = getSynchronize();
1030
+
1031
+ private getCoreContext() {
1032
+ return {
1033
+ requestQueue: this.requestQueue,
1034
+ methodSynchronize: this.methodSynchronize,
1035
+ getPrePendingCallPromise: () => this.prePendingCallPromise,
1036
+ setPrePendingCallPromise: (promise: Promise<void> | undefined) => {
1037
+ this.prePendingCallPromise = promise;
1038
+ },
1039
+ // callback 任务管理
1040
+ registerCallbackTask: (connectId: string, callbackPromise: Deferred<any>) => {
1041
+ this.requestQueue.registerPendingCallbackTask(connectId, callbackPromise);
1042
+ },
1043
+ waitForCallbackTasks: (connectId: string) =>
1044
+ this.requestQueue.waitForPendingCallbackTasks(connectId),
1045
+ cancelCallbackTasks: (connectId: string) => this.requestQueue.cancelCallbackTasks(connectId),
1046
+ };
1047
+ }
1048
+
1049
+ async handleMessage(message: CoreMessage) {
1050
+ switch (message.type) {
1051
+ case UI_RESPONSE.RECEIVE_PIN:
1052
+ case UI_RESPONSE.RECEIVE_PASSPHRASE:
1053
+ case UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE: {
1054
+ const uiPromise = findUiPromise(message.type);
1055
+ if (uiPromise) {
1056
+ Log.log('receive UI Response: ', message.type);
1057
+ uiPromise.resolve(message);
1058
+ removeUiPromise(uiPromise);
1059
+ }
1060
+ break;
1061
+ }
1062
+
1063
+ case UI_REQUEST.BLUETOOTH_UNSUPPORTED:
1064
+ case UI_REQUEST.BLUETOOTH_POWERED_OFF:
1065
+ case UI_REQUEST.BLUETOOTH_PERMISSION:
1066
+ case UI_REQUEST.BLUETOOTH_CHARACTERISTIC_NOTIFY_CHANGE_FAILURE:
1067
+ case UI_REQUEST.LOCATION_PERMISSION:
1068
+ case UI_REQUEST.LOCATION_SERVICE_PERMISSION: {
1069
+ postMessage(message);
1070
+ break;
1071
+ }
1072
+
1073
+ case IFRAME.CALL: {
1074
+ Log.log('call API: ', message);
1075
+ const response = await callAPI(this.getCoreContext(), message);
1076
+ const { success, payload } = response;
1077
+ Log.log('call API Response: ', response);
1078
+ if (success) {
1079
+ return response;
1080
+ }
1081
+
1082
+ return {
1083
+ ...response,
1084
+ payload: {
1085
+ ...payload,
1086
+ connectId: message.payload?.connectId ?? '',
1087
+ deviceId: message.payload?.deviceId ?? '',
1088
+ },
1089
+ };
1090
+ }
1091
+ case IFRAME.CANCEL: {
1092
+ Log.log('cancel API: ', message);
1093
+ cancel(this.getCoreContext(), message.payload.connectId);
1094
+ break;
1095
+ }
1096
+ case IFRAME.CALLBACK: {
1097
+ Log.log('callback message: ', message);
1098
+ postMessage(message);
1099
+ break;
1100
+ }
1101
+ default:
1102
+ break;
1103
+ }
1104
+ return Promise.resolve(message);
1105
+ }
1106
+
1107
+ dispose() {
1108
+ // empty
1109
+ }
1110
+ }
1111
+
1112
+ export const initCore = () => {
1113
+ _core = new Core();
1114
+ return _core;
1115
+ };
1116
+
1117
+ export const initConnector = () => {
1118
+ _connector = new DeviceConnector();
1119
+ DevicePool.emitter.on(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1120
+ return _connector;
1121
+ };
1122
+
1123
+ const initTransport = (Transport: any, plugin?: LowlevelTransportSharedPlugin) => {
1124
+ TransportManager.setTransport(Transport, plugin);
1125
+ };
1126
+
1127
+ export const init = async (
1128
+ settings: ConnectSettings,
1129
+ Transport: any,
1130
+ plugin?: LowlevelTransportSharedPlugin
1131
+ ) => {
1132
+ try {
1133
+ try {
1134
+ await DataManager.load(settings);
1135
+ initTransport(Transport, plugin);
1136
+ } catch {
1137
+ Log.error('DataManager.load error');
1138
+ }
1139
+ enableLog(DataManager.getSettings('debug'));
1140
+ if (DataManager.getSettings('env') !== 'react-native') {
1141
+ setLoggerPostMessage(postMessage);
1142
+ }
1143
+ initCore();
1144
+ initConnector();
1145
+
1146
+ return _core;
1147
+ } catch (error) {
1148
+ Log.error('core init', error);
1149
+ }
1150
+ };
1151
+
1152
+ export const switchTransport = ({
1153
+ env,
1154
+ Transport,
1155
+ plugin,
1156
+ }: {
1157
+ env: ConnectSettings['env'];
1158
+ Transport: any;
1159
+ plugin?: LowlevelTransportSharedPlugin;
1160
+ }) => {
1161
+ DataManager.updateEnv(env);
1162
+ TransportManager.setTransport(Transport, plugin);
1163
+ _deviceList = undefined;
1164
+ DevicePool.resetState();
1165
+ _connector = undefined;
1166
+ initConnector();
1167
+ };