@onetokenfe/hd-core 1.1.23

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 (382) 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 +115 -0
  5. package/__tests__/evmSignTransaction.test.ts +419 -0
  6. package/jest.config.js +6 -0
  7. package/package.json +48 -0
  8. package/src/api/BaseMethod.ts +275 -0
  9. package/src/api/CheckAllFirmwareRelease.ts +73 -0
  10. package/src/api/CheckBLEFirmwareRelease.ts +23 -0
  11. package/src/api/CheckBootloaderRelease.ts +32 -0
  12. package/src/api/CheckBridgeRelease.ts +28 -0
  13. package/src/api/CheckBridgeStatus.ts +32 -0
  14. package/src/api/CheckFirmwareRelease.ts +31 -0
  15. package/src/api/CheckFirmwareTypeAvailable.tsx +30 -0
  16. package/src/api/CipherKeyValue.ts +68 -0
  17. package/src/api/FirmwareUpdate.ts +219 -0
  18. package/src/api/FirmwareUpdateV2.ts +408 -0
  19. package/src/api/FirmwareUpdateV3.ts +560 -0
  20. package/src/api/GetFeatures.ts +23 -0
  21. package/src/api/GetLogs.ts +40 -0
  22. package/src/api/GetOnetokenFeatures.ts +25 -0
  23. package/src/api/GetPassphraseState.ts +28 -0
  24. package/src/api/PromptWebDeviceAccess.ts +77 -0
  25. package/src/api/SearchDevices.ts +50 -0
  26. package/src/api/alephium/AlephiumGetAddress.ts +84 -0
  27. package/src/api/alephium/AlephiumSignMessage.ts +51 -0
  28. package/src/api/alephium/AlephiumSignTransaction.ts +135 -0
  29. package/src/api/algo/AlgoGetAddress.ts +73 -0
  30. package/src/api/algo/AlgoSignTransaction.ts +52 -0
  31. package/src/api/allnetwork/AllNetworkGetAddress.ts +88 -0
  32. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +529 -0
  33. package/src/api/allnetwork/AllNetworkGetAddressByLoop.ts +162 -0
  34. package/src/api/aptos/AptosGetAddress.ts +129 -0
  35. package/src/api/aptos/AptosGetPublicKey.ts +64 -0
  36. package/src/api/aptos/AptosSignInMessage.ts +55 -0
  37. package/src/api/aptos/AptosSignMessage.ts +79 -0
  38. package/src/api/aptos/AptosSignTransaction.ts +72 -0
  39. package/src/api/benfen/BenfenGetAddress.ts +122 -0
  40. package/src/api/benfen/BenfenGetPublicKey.ts +68 -0
  41. package/src/api/benfen/BenfenSignMessage.ts +50 -0
  42. package/src/api/benfen/BenfenSignTransaction.ts +105 -0
  43. package/src/api/benfen/normalize.ts +51 -0
  44. package/src/api/btc/BTCGetAddress.ts +91 -0
  45. package/src/api/btc/BTCGetPublicKey.ts +174 -0
  46. package/src/api/btc/BTCSignMessage.ts +73 -0
  47. package/src/api/btc/BTCSignPsbt.ts +65 -0
  48. package/src/api/btc/BTCSignTransaction.ts +148 -0
  49. package/src/api/btc/BTCVerifyMessage.ts +46 -0
  50. package/src/api/btc/helpers/btcParamsUtils.ts +64 -0
  51. package/src/api/btc/helpers/signtx.ts +251 -0
  52. package/src/api/btc/helpers/signtxLegacy.ts +227 -0
  53. package/src/api/btc/helpers/versionLimit.ts +25 -0
  54. package/src/api/btc/helpers/xpubUtils.ts +132 -0
  55. package/src/api/cardano/CardanoGetAddress.ts +139 -0
  56. package/src/api/cardano/CardanoGetPublicKey.ts +72 -0
  57. package/src/api/cardano/CardanoSignMessage.ts +73 -0
  58. package/src/api/cardano/CardanoSignTransaction.ts +404 -0
  59. package/src/api/cardano/helper/addressParameters.ts +120 -0
  60. package/src/api/cardano/helper/auxiliaryData.ts +133 -0
  61. package/src/api/cardano/helper/cardanoInputs.ts +55 -0
  62. package/src/api/cardano/helper/cardanoOutputs.ts +89 -0
  63. package/src/api/cardano/helper/certificate.ts +246 -0
  64. package/src/api/cardano/helper/token.ts +44 -0
  65. package/src/api/cardano/helper/utils.ts +17 -0
  66. package/src/api/cardano/helper/witnesses.ts +62 -0
  67. package/src/api/conflux/ConfluxGetAddress.ts +78 -0
  68. package/src/api/conflux/ConfluxSignMessage.ts +49 -0
  69. package/src/api/conflux/ConfluxSignMessageCIP23.ts +49 -0
  70. package/src/api/conflux/ConfluxSignTransaction.ts +135 -0
  71. package/src/api/cosmos/CosmosGetAddress.ts +80 -0
  72. package/src/api/cosmos/CosmosGetPublicKey.ts +77 -0
  73. package/src/api/cosmos/CosmosSignTransaction.ts +68 -0
  74. package/src/api/device/DeviceBackup.ts +15 -0
  75. package/src/api/device/DeviceCancel.ts +15 -0
  76. package/src/api/device/DeviceChangePin.ts +25 -0
  77. package/src/api/device/DeviceFlags.ts +26 -0
  78. package/src/api/device/DeviceFullyUploadResource.ts +80 -0
  79. package/src/api/device/DeviceLock.ts +15 -0
  80. package/src/api/device/DeviceRebootToBoardloader.ts +30 -0
  81. package/src/api/device/DeviceRebootToBootloader.ts +28 -0
  82. package/src/api/device/DeviceRecovery.ts +44 -0
  83. package/src/api/device/DeviceReset.ts +46 -0
  84. package/src/api/device/DeviceSettings.ts +96 -0
  85. package/src/api/device/DeviceSupportFeatures.ts +29 -0
  86. package/src/api/device/DeviceUnlock.ts +13 -0
  87. package/src/api/device/DeviceUpdateBootloader.ts +111 -0
  88. package/src/api/device/DeviceUpdateReboot.ts +17 -0
  89. package/src/api/device/DeviceUploadResource.ts +204 -0
  90. package/src/api/device/DeviceVerify.ts +65 -0
  91. package/src/api/device/DeviceWipe.ts +15 -0
  92. package/src/api/dynex/DnxGetAddress.ts +75 -0
  93. package/src/api/dynex/DnxSignTransaction.ts +126 -0
  94. package/src/api/evm/EVMGetAddress.ts +88 -0
  95. package/src/api/evm/EVMGetPublicKey.ts +116 -0
  96. package/src/api/evm/EVMSignMessage.ts +49 -0
  97. package/src/api/evm/EVMSignMessageEIP712.ts +56 -0
  98. package/src/api/evm/EVMSignTransaction.ts +141 -0
  99. package/src/api/evm/EVMSignTypedData.ts +477 -0
  100. package/src/api/evm/EVMVerifyMessage.ts +46 -0
  101. package/src/api/evm/latest/getAddress.ts +13 -0
  102. package/src/api/evm/latest/getPublicKey.ts +17 -0
  103. package/src/api/evm/latest/signMessage.ts +19 -0
  104. package/src/api/evm/latest/signTransaction.ts +303 -0
  105. package/src/api/evm/latest/signTypedData.ts +34 -0
  106. package/src/api/evm/latest/signTypedHash.ts +46 -0
  107. package/src/api/evm/latest/verifyMessage.ts +15 -0
  108. package/src/api/evm/legacyV1/getAddress.ts +16 -0
  109. package/src/api/evm/legacyV1/getPublicKey.ts +20 -0
  110. package/src/api/evm/legacyV1/signMessage.ts +22 -0
  111. package/src/api/evm/legacyV1/signTransaction.ts +37 -0
  112. package/src/api/evm/legacyV1/signTypedData.ts +37 -0
  113. package/src/api/evm/legacyV1/signTypedHash.ts +50 -0
  114. package/src/api/evm/legacyV1/verifyMessage.ts +19 -0
  115. package/src/api/filecoin/FilecoinGetAddress.ts +80 -0
  116. package/src/api/filecoin/FilecoinSignTransaction.ts +57 -0
  117. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +476 -0
  118. package/src/api/firmware/bootloaderHelper.ts +46 -0
  119. package/src/api/firmware/getBinary.ts +99 -0
  120. package/src/api/firmware/releaseHelper.ts +78 -0
  121. package/src/api/firmware/updateBootloader.ts +82 -0
  122. package/src/api/firmware/uploadFirmware.ts +541 -0
  123. package/src/api/helpers/batchGetPublickeys.ts +84 -0
  124. package/src/api/helpers/bigNumberUtils.ts +58 -0
  125. package/src/api/helpers/hexUtils.ts +111 -0
  126. package/src/api/helpers/paramsValidator.ts +165 -0
  127. package/src/api/helpers/pathUtils.ts +145 -0
  128. package/src/api/helpers/stringUtils.ts +11 -0
  129. package/src/api/helpers/typeNameUtils.ts +137 -0
  130. package/src/api/index.ts +161 -0
  131. package/src/api/kaspa/KaspaGetAddress.ts +103 -0
  132. package/src/api/kaspa/KaspaSignTransaction.ts +182 -0
  133. package/src/api/kaspa/helpers/BufferWriter.ts +177 -0
  134. package/src/api/kaspa/helpers/HashWriter.ts +74 -0
  135. package/src/api/kaspa/helpers/SignatureType.ts +7 -0
  136. package/src/api/kaspa/helpers/TransferSerialize.ts +144 -0
  137. package/src/api/lightning/LnurlAuth.ts +52 -0
  138. package/src/api/near/NearGetAddress.ts +75 -0
  139. package/src/api/near/NearSignTransaction.ts +46 -0
  140. package/src/api/nem/NEMGetAddress.ts +72 -0
  141. package/src/api/nem/NEMSignTransaction.ts +251 -0
  142. package/src/api/neo/NeoGetAddress.ts +80 -0
  143. package/src/api/neo/NeoSignTransaction.ts +59 -0
  144. package/src/api/nervos/NervosGetAddress.ts +80 -0
  145. package/src/api/nervos/NervosSignTransaction.ts +116 -0
  146. package/src/api/nexa/NexaGetAddress.ts +88 -0
  147. package/src/api/nexa/NexaSignTransaction.ts +107 -0
  148. package/src/api/nostr/NostrDecryptMessage.ts +57 -0
  149. package/src/api/nostr/NostrEncryptMessage.ts +57 -0
  150. package/src/api/nostr/NostrGetPublicKey.ts +74 -0
  151. package/src/api/nostr/NostrSignEvent.ts +65 -0
  152. package/src/api/nostr/NostrSignSchnorr.ts +52 -0
  153. package/src/api/nostr/helper/index.ts +28 -0
  154. package/src/api/polkadot/PolkadotGetAddress.ts +83 -0
  155. package/src/api/polkadot/PolkadotSignTransaction.ts +53 -0
  156. package/src/api/polkadot/networks.ts +72 -0
  157. package/src/api/scdo/ScdoGetAddress.ts +76 -0
  158. package/src/api/scdo/ScdoSignMessage.ts +45 -0
  159. package/src/api/scdo/ScdoSignTransaction.ts +106 -0
  160. package/src/api/solana/SolGetAddress.ts +68 -0
  161. package/src/api/solana/SolSignMessage.ts +61 -0
  162. package/src/api/solana/SolSignOffchainMessage.ts +61 -0
  163. package/src/api/solana/SolSignTransaction.ts +108 -0
  164. package/src/api/starcoin/StarcoinGetAddress.ts +69 -0
  165. package/src/api/starcoin/StarcoinGetPublicKey.ts +70 -0
  166. package/src/api/starcoin/StarcoinSignMessage.ts +42 -0
  167. package/src/api/starcoin/StarcoinSignTransaction.ts +38 -0
  168. package/src/api/starcoin/StarcoinVerifyMessage.ts +35 -0
  169. package/src/api/stellar/StellarGetAddress.ts +68 -0
  170. package/src/api/stellar/StellarSignTransaction.ts +220 -0
  171. package/src/api/sui/SuiGetAddress.ts +117 -0
  172. package/src/api/sui/SuiGetPublicKey.ts +66 -0
  173. package/src/api/sui/SuiSignMessage.ts +48 -0
  174. package/src/api/sui/SuiSignTransaction.ts +126 -0
  175. package/src/api/sui/normalize.ts +28 -0
  176. package/src/api/test/TestInitializeDeviceDuration.ts +22 -0
  177. package/src/api/ton/TonGetAddress.ts +96 -0
  178. package/src/api/ton/TonSignMessage.ts +217 -0
  179. package/src/api/ton/TonSignProof.ts +62 -0
  180. package/src/api/tron/TronGetAddress.ts +75 -0
  181. package/src/api/tron/TronSignMessage.ts +89 -0
  182. package/src/api/tron/TronSignTransaction.ts +214 -0
  183. package/src/api/u2f/GetNextU2FCounter.ts +15 -0
  184. package/src/api/u2f/SetU2FCounter.ts +19 -0
  185. package/src/api/utils.ts +23 -0
  186. package/src/api/xrp/XrpGetAddress.ts +96 -0
  187. package/src/api/xrp/XrpSignTransaction.ts +71 -0
  188. package/src/constants/errors.ts +15 -0
  189. package/src/constants/index.ts +2 -0
  190. package/src/constants/ui-request.ts +3 -0
  191. package/src/core/RequestQueue.ts +134 -0
  192. package/src/core/index.ts +1320 -0
  193. package/src/data/coins/bitcoin.json +44 -0
  194. package/src/data/config.ts +25 -0
  195. package/src/data/messages/messages.json +13167 -0
  196. package/src/data/messages/messages_legacy_v1.json +10282 -0
  197. package/src/data-manager/CoinManager.ts +31 -0
  198. package/src/data-manager/DataManager.ts +499 -0
  199. package/src/data-manager/MessagesConfig.ts +28 -0
  200. package/src/data-manager/TransportManager.ts +140 -0
  201. package/src/data-manager/connectSettings.ts +121 -0
  202. package/src/data-manager/index.ts +3 -0
  203. package/src/device/Device.ts +884 -0
  204. package/src/device/DeviceCommands.ts +631 -0
  205. package/src/device/DeviceConnector.ts +124 -0
  206. package/src/device/DeviceList.ts +39 -0
  207. package/src/device/DevicePool.ts +266 -0
  208. package/src/events/call.ts +95 -0
  209. package/src/events/core.ts +65 -0
  210. package/src/events/device.ts +92 -0
  211. package/src/events/firmware.ts +43 -0
  212. package/src/events/iframe.ts +55 -0
  213. package/src/events/index.ts +10 -0
  214. package/src/events/log.ts +23 -0
  215. package/src/events/logBlockEvent.ts +6 -0
  216. package/src/events/ui-promise.ts +14 -0
  217. package/src/events/ui-request.ts +216 -0
  218. package/src/events/ui-response.ts +59 -0
  219. package/src/events/utils.ts +19 -0
  220. package/src/index.ts +70 -0
  221. package/src/inject.ts +408 -0
  222. package/src/lowLevelInject.ts +61 -0
  223. package/src/topLevelInject.ts +62 -0
  224. package/src/types/api/alephiumGetAddress.ts +31 -0
  225. package/src/types/api/alephiumSignMessage.ts +14 -0
  226. package/src/types/api/alephiumSignTransaction.ts +18 -0
  227. package/src/types/api/algoGetAddress.ts +23 -0
  228. package/src/types/api/algoSignTransaction.ts +17 -0
  229. package/src/types/api/allNetworkGetAddress.ts +130 -0
  230. package/src/types/api/aptosGetAddress.ts +28 -0
  231. package/src/types/api/aptosGetPublicKey.ts +27 -0
  232. package/src/types/api/aptosSignInMessage.ts +17 -0
  233. package/src/types/api/aptosSignMessage.ts +26 -0
  234. package/src/types/api/aptosSignTransaction.ts +18 -0
  235. package/src/types/api/benfenGetAddress.ts +24 -0
  236. package/src/types/api/benfenGetPublicKey.ts +23 -0
  237. package/src/types/api/benfenSignMessage.ts +13 -0
  238. package/src/types/api/benfenSignTransaction.ts +19 -0
  239. package/src/types/api/btcGetAddress.ts +26 -0
  240. package/src/types/api/btcGetPublicKey.ts +26 -0
  241. package/src/types/api/btcSignMessage.ts +16 -0
  242. package/src/types/api/btcSignPsbt.ts +13 -0
  243. package/src/types/api/btcSignTransaction.ts +98 -0
  244. package/src/types/api/btcVerifyMessage.ts +15 -0
  245. package/src/types/api/cardano.ts +212 -0
  246. package/src/types/api/cardanoGetAddress.ts +49 -0
  247. package/src/types/api/cardanoGetPublicKey.ts +33 -0
  248. package/src/types/api/cardanoSignMessage.ts +31 -0
  249. package/src/types/api/cardanoSignTransaction.ts +8 -0
  250. package/src/types/api/checkAllFirmwareRelease.ts +34 -0
  251. package/src/types/api/checkBLEFirmwareRelease.ts +15 -0
  252. package/src/types/api/checkBootloaderRelease.ts +19 -0
  253. package/src/types/api/checkBridgeRelease.ts +14 -0
  254. package/src/types/api/checkBridgeStatus.ts +3 -0
  255. package/src/types/api/checkFirmwareRelease.ts +23 -0
  256. package/src/types/api/checkFirmwareTypeAvailable.ts +12 -0
  257. package/src/types/api/cipherKeyValue.ts +28 -0
  258. package/src/types/api/confluxGetAddress.ts +24 -0
  259. package/src/types/api/confluxSignMessage.ts +13 -0
  260. package/src/types/api/confluxSignMessageCIP23.ts +14 -0
  261. package/src/types/api/confluxSignTransaction.ts +32 -0
  262. package/src/types/api/cosmosGetAddress.ts +24 -0
  263. package/src/types/api/cosmosGetPublicKey.ts +28 -0
  264. package/src/types/api/cosmosSignTransaction.ts +17 -0
  265. package/src/types/api/deviceBackup.ts +4 -0
  266. package/src/types/api/deviceCancel.ts +4 -0
  267. package/src/types/api/deviceChangePin.ts +11 -0
  268. package/src/types/api/deviceFlags.ts +11 -0
  269. package/src/types/api/deviceFullyUploadResource.ts +15 -0
  270. package/src/types/api/deviceLock.ts +4 -0
  271. package/src/types/api/deviceRebootToBoardloader.ts +6 -0
  272. package/src/types/api/deviceRebootToBootloader.ts +4 -0
  273. package/src/types/api/deviceRecovery.ts +19 -0
  274. package/src/types/api/deviceReset.ts +20 -0
  275. package/src/types/api/deviceSettings.ts +23 -0
  276. package/src/types/api/deviceSupportFeatures.ts +6 -0
  277. package/src/types/api/deviceUnlock.ts +4 -0
  278. package/src/types/api/deviceUpdateBootloader.ts +13 -0
  279. package/src/types/api/deviceUpdateReboot.ts +3 -0
  280. package/src/types/api/deviceUploadResource.ts +21 -0
  281. package/src/types/api/deviceVerify.ts +15 -0
  282. package/src/types/api/deviceWipe.ts +4 -0
  283. package/src/types/api/dnxGetAddress.ts +23 -0
  284. package/src/types/api/dnxSignTransaction.ts +36 -0
  285. package/src/types/api/event.ts +8 -0
  286. package/src/types/api/evmGetAddress.ts +24 -0
  287. package/src/types/api/evmGetPublicKey.ts +36 -0
  288. package/src/types/api/evmSignMessage.ts +14 -0
  289. package/src/types/api/evmSignMessageEIP712.ts +14 -0
  290. package/src/types/api/evmSignTransaction.ts +80 -0
  291. package/src/types/api/evmSignTypedData.ts +42 -0
  292. package/src/types/api/evmVerifyMessage.ts +15 -0
  293. package/src/types/api/export.ts +194 -0
  294. package/src/types/api/filecoinGetAddress.ts +24 -0
  295. package/src/types/api/filecoinSignTransaction.ts +24 -0
  296. package/src/types/api/firmwareUpdate.ts +66 -0
  297. package/src/types/api/getFeatures.ts +4 -0
  298. package/src/types/api/getLogs.ts +3 -0
  299. package/src/types/api/getNextU2FCounter.ts +7 -0
  300. package/src/types/api/getOnetokenFeatures.ts +7 -0
  301. package/src/types/api/getPassphraseState.ts +6 -0
  302. package/src/types/api/index.ts +404 -0
  303. package/src/types/api/init.ts +11 -0
  304. package/src/types/api/kaspaGetAddress.ts +26 -0
  305. package/src/types/api/kaspaSignTransaction.ts +44 -0
  306. package/src/types/api/lnurlAuth.ts +22 -0
  307. package/src/types/api/nearGetAddress.ts +23 -0
  308. package/src/types/api/nearSignTransaction.ts +13 -0
  309. package/src/types/api/nemGetAddress.ts +24 -0
  310. package/src/types/api/nemSignTransaction.ts +118 -0
  311. package/src/types/api/neoGetAddress.ts +24 -0
  312. package/src/types/api/neoSignTransaction.ts +18 -0
  313. package/src/types/api/nervosGetAddress.ts +24 -0
  314. package/src/types/api/nervosSignTransaction.ts +19 -0
  315. package/src/types/api/nexaGetAddress.ts +26 -0
  316. package/src/types/api/nexaSignTransaction.ts +28 -0
  317. package/src/types/api/nostrDecryptMessage.ts +25 -0
  318. package/src/types/api/nostrEncryptMessage.ts +25 -0
  319. package/src/types/api/nostrGetPublicKey.ts +28 -0
  320. package/src/types/api/nostrSignEvent.ts +52 -0
  321. package/src/types/api/nostrSignSchnorr.ts +22 -0
  322. package/src/types/api/polkadotGetAddress.ts +30 -0
  323. package/src/types/api/polkadotSignTransaction.ts +19 -0
  324. package/src/types/api/promptWebDeviceAccess.ts +6 -0
  325. package/src/types/api/scdoGetAddress.ts +23 -0
  326. package/src/types/api/scdoSignMessage.ts +13 -0
  327. package/src/types/api/scdoSignTransaction.ts +24 -0
  328. package/src/types/api/searchDevices.ts +4 -0
  329. package/src/types/api/setU2FCounter.ts +7 -0
  330. package/src/types/api/solGetAddress.ts +23 -0
  331. package/src/types/api/solSignMessage.ts +17 -0
  332. package/src/types/api/solSignOffchainMessage.ts +24 -0
  333. package/src/types/api/solSignTransaction.ts +27 -0
  334. package/src/types/api/starcoinGetAddress.ts +23 -0
  335. package/src/types/api/starcoinGetPublicKey.ts +23 -0
  336. package/src/types/api/starcoinSignMessage.ts +13 -0
  337. package/src/types/api/starcoinSignTransaction.ts +13 -0
  338. package/src/types/api/starcoinVerifyMessage.ts +14 -0
  339. package/src/types/api/stellarGetAddress.ts +23 -0
  340. package/src/types/api/stellarSignTransaction.ts +154 -0
  341. package/src/types/api/suiGetAddress.ts +28 -0
  342. package/src/types/api/suiGetPublicKey.ts +27 -0
  343. package/src/types/api/suiSignMessage.ts +13 -0
  344. package/src/types/api/suiSignTransaction.ts +17 -0
  345. package/src/types/api/testInitializeDeviceDuration.ts +6 -0
  346. package/src/types/api/tonGetAddress.ts +34 -0
  347. package/src/types/api/tonSignMessage.ts +42 -0
  348. package/src/types/api/tonSignProof.ts +25 -0
  349. package/src/types/api/tronGetAddress.ts +23 -0
  350. package/src/types/api/tronSignMessage.ts +14 -0
  351. package/src/types/api/tronSignTransaction.ts +89 -0
  352. package/src/types/api/uiResponse.ts +3 -0
  353. package/src/types/api/xrpGetAddress.ts +28 -0
  354. package/src/types/api/xrpSignTransaction.ts +29 -0
  355. package/src/types/device.ts +194 -0
  356. package/src/types/firmware.ts +41 -0
  357. package/src/types/global.d.ts +3 -0
  358. package/src/types/index.ts +5 -0
  359. package/src/types/params.ts +64 -0
  360. package/src/types/settings.ts +144 -0
  361. package/src/utils/arrayUtils.ts +7 -0
  362. package/src/utils/assets.ts +5 -0
  363. package/src/utils/bridgeUpdate.ts +80 -0
  364. package/src/utils/capabilitieUtils.ts +12 -0
  365. package/src/utils/deviceFeaturesUtils.ts +352 -0
  366. package/src/utils/deviceInfoUtils.ts +167 -0
  367. package/src/utils/deviceSettings.ts +109 -0
  368. package/src/utils/deviceVersionUtils.ts +79 -0
  369. package/src/utils/findDefectiveBatchDevice.ts +39 -0
  370. package/src/utils/getMutex.ts +41 -0
  371. package/src/utils/getSynchronize.ts +25 -0
  372. package/src/utils/homescreen.ts +345 -0
  373. package/src/utils/index.ts +44 -0
  374. package/src/utils/logger.ts +190 -0
  375. package/src/utils/networkUtils.ts +25 -0
  376. package/src/utils/patch.ts +14 -0
  377. package/src/utils/promiseUtils.ts +4 -0
  378. package/src/utils/release.ts +42 -0
  379. package/src/utils/semver.test.js +53 -0
  380. package/src/utils/tracing.ts +238 -0
  381. package/src/utils/versionUtils.ts +120 -0
  382. package/tsconfig.json +11 -0
package/src/inject.ts ADDED
@@ -0,0 +1,408 @@
1
+ import type { Unsuccessful } from './types';
2
+ import type { EventEmitter } from 'events';
3
+ import type { CallMethod } from './events';
4
+ import type { CoreApi } from './types/api';
5
+ import type { AllNetworkAddress } from './types/api/allNetworkGetAddress';
6
+
7
+ type CallbackFunction = (data?: any, error?: Unsuccessful) => void;
8
+
9
+ const callbackManager = new Map<string, CallbackFunction>();
10
+
11
+ const generateCallbackId = () =>
12
+ `callback_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
13
+
14
+ const registerCallback = (id: string, callback: CallbackFunction) => {
15
+ callbackManager.set(id, callback);
16
+ };
17
+
18
+ const executeCallback = (id: string, ...args: any[]) => {
19
+ const callback = callbackManager.get(id);
20
+ if (callback) {
21
+ callback(...args);
22
+ }
23
+ };
24
+
25
+ const cleanupCallback = (id: string) => {
26
+ callbackManager.delete(id);
27
+ };
28
+
29
+ export { executeCallback, cleanupCallback };
30
+
31
+ export interface InjectApi {
32
+ call: CallMethod;
33
+ eventEmitter: EventEmitter;
34
+ init: CoreApi['init'];
35
+ updateSettings: CoreApi['updateSettings'];
36
+ dispose: CoreApi['dispose'];
37
+ uiResponse: CoreApi['uiResponse'];
38
+ cancel: CoreApi['cancel'];
39
+ switchTransport: CoreApi['switchTransport'];
40
+ }
41
+
42
+ export const inject = ({
43
+ call,
44
+ cancel,
45
+ dispose,
46
+ eventEmitter,
47
+ init,
48
+ updateSettings,
49
+ switchTransport,
50
+ uiResponse,
51
+ }: InjectApi): CoreApi => {
52
+ const api: CoreApi = {
53
+ on: <T extends string, P extends (...args: any[]) => any>(type: T, fn: P) => {
54
+ eventEmitter.on(type, fn);
55
+ },
56
+
57
+ emit: () => {},
58
+
59
+ off: (type, fn) => {
60
+ eventEmitter.removeListener(type, fn);
61
+ },
62
+
63
+ removeAllListeners: type => {
64
+ eventEmitter.removeAllListeners(type);
65
+ },
66
+
67
+ init,
68
+
69
+ call,
70
+
71
+ dispose,
72
+
73
+ uiResponse,
74
+
75
+ cancel,
76
+
77
+ updateSettings,
78
+
79
+ switchTransport,
80
+
81
+ ...createCoreApi(call),
82
+ };
83
+ return api;
84
+ };
85
+
86
+ export const createCoreApi = (
87
+ call: CoreApi['call']
88
+ ): Omit<
89
+ CoreApi,
90
+ | 'on'
91
+ | 'off'
92
+ | 'emit'
93
+ | 'removeAllListeners'
94
+ | 'init'
95
+ | 'call'
96
+ | 'dispose'
97
+ | 'uiResponse'
98
+ | 'cancel'
99
+ | 'updateSettings'
100
+ | 'switchTransport'
101
+ > => ({
102
+ getLogs: () => call({ method: 'getLogs' }),
103
+ /**
104
+ * 搜索设备
105
+ */
106
+ searchDevices: () => call({ method: 'searchDevices' }),
107
+
108
+ /**
109
+ * 获取设备信息
110
+ */
111
+ getFeatures: (connectId, params) => call({ ...params, connectId, method: 'getFeatures' }),
112
+ getonetokenfeatures: (connectId, params) =>
113
+ call({ ...params, connectId, method: 'getonetokenfeatures' }),
114
+
115
+ /**
116
+ * 检查固件版本
117
+ */
118
+ checkFirmwareRelease: connectId => call({ connectId, method: 'checkFirmwareRelease' }),
119
+
120
+ /**
121
+ * 检查蓝牙固件版本
122
+ */
123
+ checkBLEFirmwareRelease: connectId => call({ connectId, method: 'checkBLEFirmwareRelease' }),
124
+
125
+ /**
126
+ * 检查 Bridge 是否安装
127
+ */
128
+ checkBridgeStatus: () => call({ method: 'checkBridgeStatus' }),
129
+
130
+ checkBridgeRelease: (connectId, params) =>
131
+ call({ ...params, connectId, method: 'checkBridgeRelease' }),
132
+
133
+ checkBootloaderRelease: (connectId, params) =>
134
+ call({ ...params, connectId, method: 'checkBootloaderRelease' }),
135
+
136
+ checkAllFirmwareRelease: (connectId, params) =>
137
+ call({ ...params, connectId, method: 'checkAllFirmwareRelease' }),
138
+ checkFirmwareTypeAvailable: params => call({ ...params, method: 'checkFirmwareTypeAvailable' }),
139
+
140
+ cipherKeyValue: (connectId, deviceId, params) =>
141
+ call({ ...params, connectId, deviceId, method: 'cipherKeyValue' }),
142
+
143
+ testInitializeDeviceDuration: (connectId, params) =>
144
+ call({ ...params, connectId, method: 'testInitializeDeviceDuration' }),
145
+
146
+ deviceBackup: connectId => call({ connectId, method: 'deviceBackup' }),
147
+ deviceChangePin: (connectId, params) => call({ ...params, connectId, method: 'deviceChangePin' }),
148
+ deviceFlags: (connectId, params) => call({ ...params, connectId, method: 'deviceFlags' }),
149
+ deviceRebootToBoardloader: connectId => call({ connectId, method: 'deviceRebootToBoardloader' }),
150
+ deviceRebootToBootloader: connectId => call({ connectId, method: 'deviceRebootToBootloader' }),
151
+ deviceRecovery: (connectId, params) => call({ ...params, connectId, method: 'deviceRecovery' }),
152
+ deviceReset: (connectId, params) => call({ ...params, connectId, method: 'deviceReset' }),
153
+ deviceSettings: (connectId, params) => call({ ...params, connectId, method: 'deviceSettings' }),
154
+ deviceUpdateReboot: connectId => call({ connectId, method: 'deviceUpdateReboot' }),
155
+ deviceUploadResource: (connectId, params) =>
156
+ call({ ...params, connectId, method: 'deviceUploadResource' }),
157
+ deviceSupportFeatures: connectId => call({ connectId, method: 'deviceSupportFeatures' }),
158
+ deviceVerify: (connectId, params) => call({ ...params, connectId, method: 'deviceVerify' }),
159
+ deviceWipe: connectId => call({ connectId, method: 'deviceWipe' }),
160
+ deviceFullyUploadResource: (connectId, params) =>
161
+ call({ ...params, connectId, method: 'deviceFullyUploadResource' }),
162
+ deviceUpdateBootloader: (connectId, params) =>
163
+ call({ ...params, connectId, method: 'deviceUpdateBootloader' }),
164
+ getPassphraseState: (connectId, params) =>
165
+ call({ ...params, connectId, method: 'getPassphraseState' }),
166
+ deviceCancel: (connectId, params) => call({ ...params, connectId, method: 'deviceCancel' }),
167
+ deviceLock: (connectId, params) => call({ ...params, connectId, method: 'deviceLock' }),
168
+ deviceUnlock: (connectId, params) =>
169
+ call({ ...params, useEmptyPassphrase: true, connectId, method: 'deviceUnlock' }),
170
+
171
+ getNextU2FCounter: (connectId, params) =>
172
+ call({ ...params, connectId, method: 'getNextU2FCounter' }),
173
+ setU2FCounter: (connectId, params) => call({ ...params, connectId, method: 'setU2FCounter' }),
174
+
175
+ allNetworkGetAddress: (connectId, deviceId, params) =>
176
+ call({ ...params, connectId, deviceId, method: 'allNetworkGetAddress' }),
177
+ allNetworkGetAddressByLoop: (connectId, deviceId, params) => {
178
+ const { onLoopItemResponse, onAllItemsResponse, ...restParams } = params;
179
+
180
+ const callbackId = generateCallbackId();
181
+ registerCallback(callbackId, onLoopItemResponse);
182
+
183
+ const callbackIdFinish = generateCallbackId();
184
+ registerCallback(callbackIdFinish, (data?: AllNetworkAddress[], error?: Unsuccessful) => {
185
+ onAllItemsResponse?.(data, error);
186
+ cleanupCallback(callbackIdFinish);
187
+ cleanupCallback(callbackId);
188
+ });
189
+
190
+ return call({
191
+ ...restParams,
192
+ connectId,
193
+ deviceId,
194
+ method: 'allNetworkGetAddressByLoop',
195
+ callbackId,
196
+ callbackIdFinish,
197
+ });
198
+ },
199
+
200
+ evmGetAddress: (connectId, deviceId, params) =>
201
+ call({ ...params, connectId, deviceId, method: 'evmGetAddress' }),
202
+ evmGetPublicKey: (connectId, deviceId, params) =>
203
+ call({ ...params, connectId, deviceId, method: 'evmGetPublicKey' }),
204
+ evmSignMessage: (connectId, deviceId, params) =>
205
+ call({ ...params, connectId, deviceId, method: 'evmSignMessage' }),
206
+ evmSignMessageEIP712: (connectId, deviceId, params) =>
207
+ call({ ...params, connectId, deviceId, method: 'evmSignMessageEIP712' }),
208
+ evmSignTransaction: (connectId, deviceId, params) =>
209
+ call({ ...params, connectId, deviceId, method: 'evmSignTransaction' }),
210
+ evmSignTypedData: (connectId, deviceId, params) =>
211
+ call({ ...params, connectId, deviceId, method: 'evmSignTypedData' }),
212
+ evmVerifyMessage: (connectId, deviceId, params) =>
213
+ call({ ...params, connectId, deviceId, method: 'evmVerifyMessage' }),
214
+
215
+ btcGetAddress: (connectId, deviceId, params) =>
216
+ call({ ...params, connectId, deviceId, method: 'btcGetAddress' }),
217
+ btcGetPublicKey: (connectId, deviceId, params) =>
218
+ call({ ...params, connectId, deviceId, method: 'btcGetPublicKey' }),
219
+ btcSignMessage: (connectId, deviceId, params) =>
220
+ call({ ...params, connectId, deviceId, method: 'btcSignMessage' }),
221
+ btcSignPsbt: (connectId, deviceId, params) =>
222
+ call({ ...params, connectId, deviceId, method: 'btcSignPsbt' }),
223
+ btcSignTransaction: (connectId, deviceId, params) =>
224
+ call({ ...params, connectId, deviceId, method: 'btcSignTransaction' }),
225
+ btcVerifyMessage: (connectId, deviceId, params) =>
226
+ call({ ...params, connectId, deviceId, method: 'btcVerifyMessage' }),
227
+
228
+ starcoinGetAddress: (connectId, deviceId, params) =>
229
+ call({ ...params, connectId, deviceId, method: 'starcoinGetAddress' }),
230
+ starcoinGetPublicKey: (connectId, deviceId, params) =>
231
+ call({ ...params, connectId, deviceId, method: 'starcoinGetPublicKey' }),
232
+ starcoinSignMessage: (connectId, deviceId, params) =>
233
+ call({ ...params, connectId, deviceId, method: 'starcoinSignMessage' }),
234
+ starcoinSignTransaction: (connectId, deviceId, params) =>
235
+ call({ ...params, connectId, deviceId, method: 'starcoinSignTransaction' }),
236
+ starcoinVerifyMessage: (connectId, deviceId, params) =>
237
+ call({ ...params, connectId, deviceId, method: 'starcoinVerifyMessage' }),
238
+
239
+ nemGetAddress: (connectId, deviceId, params) =>
240
+ call({ ...params, connectId, deviceId, method: 'nemGetAddress' }),
241
+ nemSignTransaction: (connectId, deviceId, params) =>
242
+ call({ ...params, connectId, deviceId, method: 'nemSignTransaction' }),
243
+
244
+ solGetAddress: (connectId, deviceId, params) =>
245
+ call({ ...params, connectId, deviceId, method: 'solGetAddress' }),
246
+ solSignTransaction: (connectId, deviceId, params) =>
247
+ call({ ...params, connectId, deviceId, method: 'solSignTransaction' }),
248
+ solSignOffchainMessage: (connectId, deviceId, params) =>
249
+ call({ ...params, connectId, deviceId, method: 'solSignOffchainMessage' }),
250
+ solSignMessage: (connectId, deviceId, params) =>
251
+ call({ ...params, connectId, deviceId, method: 'solSignMessage' }),
252
+
253
+ stellarGetAddress: (connectId, deviceId, params) =>
254
+ call({ ...params, connectId, deviceId, method: 'stellarGetAddress' }),
255
+ stellarSignTransaction: (connectId, deviceId, params) =>
256
+ call({ ...params, connectId, deviceId, method: 'stellarSignTransaction' }),
257
+
258
+ firmwareUpdate: (connectId, params) => call({ ...params, connectId, method: 'firmwareUpdate' }),
259
+ firmwareUpdateV2: (connectId, params) =>
260
+ call({ ...params, connectId, method: 'firmwareUpdateV2' }),
261
+ firmwareUpdateV3: (connectId, params) =>
262
+ call({ ...params, connectId, method: 'firmwareUpdateV3' }),
263
+ promptWebDeviceAccess: params => call({ ...params, method: 'promptWebDeviceAccess' }),
264
+
265
+ tronGetAddress: (connectId, deviceId, params) =>
266
+ call({ ...params, connectId, deviceId, method: 'tronGetAddress' }),
267
+ tronSignMessage: (connectId, deviceId, params) =>
268
+ call({ ...params, connectId, deviceId, method: 'tronSignMessage' }),
269
+ tronSignTransaction: (connectId, deviceId, params) =>
270
+ call({ ...params, connectId, deviceId, method: 'tronSignTransaction' }),
271
+
272
+ confluxGetAddress: (connectId, deviceId, params) =>
273
+ call({ ...params, connectId, deviceId, method: 'confluxGetAddress' }),
274
+ confluxSignMessage: (connectId, deviceId, params) =>
275
+ call({ ...params, connectId, deviceId, method: 'confluxSignMessage' }),
276
+ confluxSignMessageCIP23: (connectId, deviceId, params) =>
277
+ call({ ...params, connectId, deviceId, method: 'confluxSignMessageCIP23' }),
278
+ confluxSignTransaction: (connectId, deviceId, params) =>
279
+ call({ ...params, connectId, deviceId, method: 'confluxSignTransaction' }),
280
+
281
+ nearGetAddress: (connectId, deviceId, params) =>
282
+ call({ ...params, connectId, deviceId, method: 'nearGetAddress' }),
283
+ nearSignTransaction: (connectId, deviceId, params) =>
284
+ call({ ...params, connectId, deviceId, method: 'nearSignTransaction' }),
285
+
286
+ aptosGetAddress: (connectId, deviceId, params) =>
287
+ call({ ...params, connectId, deviceId, method: 'aptosGetAddress' }),
288
+ aptosGetPublicKey: (connectId, deviceId, params) =>
289
+ call({ ...params, connectId, deviceId, method: 'aptosGetPublicKey' }),
290
+ aptosSignMessage: (connectId, deviceId, params) =>
291
+ call({ ...params, connectId, deviceId, method: 'aptosSignMessage' }),
292
+ aptosSignInMessage: (connectId, deviceId, params) =>
293
+ call({ ...params, connectId, deviceId, method: 'aptosSignInMessage' }),
294
+ aptosSignTransaction: (connectId, deviceId, params) =>
295
+ call({ ...params, connectId, deviceId, method: 'aptosSignTransaction' }),
296
+
297
+ algoGetAddress: (connectId, deviceId, params) =>
298
+ call({ ...params, connectId, deviceId, method: 'algoGetAddress' }),
299
+ algoSignTransaction: (connectId, deviceId, params) =>
300
+ call({ ...params, connectId, deviceId, method: 'algoSignTransaction' }),
301
+
302
+ cosmosGetAddress: (connectId, deviceId, params) =>
303
+ call({ ...params, connectId, deviceId, method: 'cosmosGetAddress' }),
304
+ cosmosGetPublicKey: (connectId, deviceId, params) =>
305
+ call({ ...params, connectId, deviceId, method: 'cosmosGetPublicKey' }),
306
+ cosmosSignTransaction: (connectId, deviceId, params) =>
307
+ call({ ...params, connectId, deviceId, method: 'cosmosSignTransaction' }),
308
+
309
+ xrpGetAddress: (connectId, deviceId, params) =>
310
+ call({ ...params, connectId, deviceId, method: 'xrpGetAddress' }),
311
+ xrpSignTransaction: (connectId, deviceId, params) =>
312
+ call({ ...params, connectId, deviceId, method: 'xrpSignTransaction' }),
313
+
314
+ suiGetAddress: (connectId, deviceId, params) =>
315
+ call({ ...params, connectId, deviceId, method: 'suiGetAddress' }),
316
+ suiGetPublicKey: (connectId, deviceId, params) =>
317
+ call({ ...params, connectId, deviceId, method: 'suiGetPublicKey' }),
318
+ suiSignMessage: (connectId, deviceId, params) =>
319
+ call({ ...params, connectId, deviceId, method: 'suiSignMessage' }),
320
+ suiSignTransaction: (connectId, deviceId, params) =>
321
+ call({ ...params, connectId, deviceId, method: 'suiSignTransaction' }),
322
+
323
+ cardanoGetAddress: (connectId, deviceId, params) =>
324
+ call({ ...params, connectId, deviceId, method: 'cardanoGetAddress' }),
325
+ cardanoGetPublicKey: (connectId, deviceId, params) =>
326
+ call({ ...params, connectId, deviceId, method: 'cardanoGetPublicKey' }),
327
+ cardanoSignTransaction: (connectId, deviceId, params) =>
328
+ call({ ...params, connectId, deviceId, method: 'cardanoSignTransaction' }),
329
+ cardanoSignMessage: (connectId, deviceId, params) =>
330
+ call({ ...params, connectId, deviceId, method: 'cardanoSignMessage' }),
331
+
332
+ filecoinGetAddress: (connectId, deviceId, params) =>
333
+ call({ ...params, connectId, deviceId, method: 'filecoinGetAddress' }),
334
+ filecoinSignTransaction: (connectId, deviceId, params) =>
335
+ call({ ...params, connectId, deviceId, method: 'filecoinSignTransaction' }),
336
+
337
+ polkadotGetAddress: (connectId, deviceId, params) =>
338
+ call({ ...params, connectId, deviceId, method: 'polkadotGetAddress' }),
339
+ polkadotSignTransaction: (connectId, deviceId, params) =>
340
+ call({ ...params, connectId, deviceId, method: 'polkadotSignTransaction' }),
341
+
342
+ kaspaGetAddress: (connectId, deviceId, params) =>
343
+ call({ ...params, connectId, deviceId, method: 'kaspaGetAddress' }),
344
+ kaspaSignTransaction: (connectId, deviceId, params) =>
345
+ call({ ...params, connectId, deviceId, method: 'kaspaSignTransaction' }),
346
+ nexaGetAddress: (connectId, deviceId, params) =>
347
+ call({ ...params, connectId, deviceId, method: 'nexaGetAddress' }),
348
+ nexaSignTransaction: (connectId, deviceId, params) =>
349
+ call({ ...params, connectId, deviceId, method: 'nexaSignTransaction' }),
350
+
351
+ nostrGetPublicKey: (connectId, deviceId, params) =>
352
+ call({ ...params, connectId, deviceId, method: 'nostrGetPublicKey' }),
353
+ nostrSignEvent: (connectId, deviceId, params) =>
354
+ call({ ...params, connectId, deviceId, method: 'nostrSignEvent' }),
355
+ nostrEncryptMessage: (connectId, deviceId, params) =>
356
+ call({ ...params, connectId, deviceId, method: 'nostrEncryptMessage' }),
357
+ nostrDecryptMessage: (connectId, deviceId, params) =>
358
+ call({ ...params, connectId, deviceId, method: 'nostrDecryptMessage' }),
359
+ nostrSignSchnorr: (connectId, deviceId, params) =>
360
+ call({ ...params, connectId, deviceId, method: 'nostrSignSchnorr' }),
361
+ lnurlAuth: (connectId, deviceId, params) =>
362
+ call({ ...params, connectId, deviceId, method: 'lnurlAuth' }),
363
+
364
+ nervosGetAddress: (connectId, deviceId, params) =>
365
+ call({ ...params, connectId, deviceId, method: 'nervosGetAddress' }),
366
+ nervosSignTransaction: (connectId, deviceId, params) =>
367
+ call({ ...params, connectId, deviceId, method: 'nervosSignTransaction' }),
368
+
369
+ dnxGetAddress: (connectId, deviceId, params) =>
370
+ call({ ...params, connectId, deviceId, method: 'dnxGetAddress' }),
371
+ dnxSignTransaction: (connectId, deviceId, params) =>
372
+ call({ ...params, connectId, deviceId, method: 'dnxSignTransaction' }),
373
+
374
+ tonGetAddress: (connectId, deviceId, params) =>
375
+ call({ ...params, connectId, deviceId, method: 'tonGetAddress' }),
376
+ tonSignMessage: (connectId, deviceId, params) =>
377
+ call({ ...params, connectId, deviceId, method: 'tonSignMessage' }),
378
+ tonSignProof: (connectId, deviceId, params) =>
379
+ call({ ...params, connectId, deviceId, method: 'tonSignProof' }),
380
+
381
+ scdoGetAddress: (connectId, deviceId, params) =>
382
+ call({ ...params, connectId, deviceId, method: 'scdoGetAddress' }),
383
+ scdoSignMessage: (connectId, deviceId, params) =>
384
+ call({ ...params, connectId, deviceId, method: 'scdoSignMessage' }),
385
+ scdoSignTransaction: (connectId, deviceId, params) =>
386
+ call({ ...params, connectId, deviceId, method: 'scdoSignTransaction' }),
387
+
388
+ alephiumGetAddress: (connectId, deviceId, params) =>
389
+ call({ ...params, connectId, deviceId, method: 'alephiumGetAddress' }),
390
+ alephiumSignMessage: (connectId, deviceId, params) =>
391
+ call({ ...params, connectId, deviceId, method: 'alephiumSignMessage' }),
392
+ alephiumSignTransaction: (connectId, deviceId, params) =>
393
+ call({ ...params, connectId, deviceId, method: 'alephiumSignTransaction' }),
394
+
395
+ benfenGetAddress: (connectId, deviceId, params) =>
396
+ call({ ...params, connectId, deviceId, method: 'benfenGetAddress' }),
397
+ benfenGetPublicKey: (connectId, deviceId, params) =>
398
+ call({ ...params, connectId, deviceId, method: 'benfenGetPublicKey' }),
399
+ benfenSignTransaction: (connectId, deviceId, params) =>
400
+ call({ ...params, connectId, deviceId, method: 'benfenSignTransaction' }),
401
+ benfenSignMessage: (connectId, deviceId, params) =>
402
+ call({ ...params, connectId, deviceId, method: 'benfenSignMessage' }),
403
+
404
+ neoGetAddress: (connectId, deviceId, params) =>
405
+ call({ ...params, connectId, deviceId, method: 'neoGetAddress' }),
406
+ neoSignTransaction: (connectId, deviceId, params) =>
407
+ call({ ...params, connectId, deviceId, method: 'neoSignTransaction' }),
408
+ });
@@ -0,0 +1,61 @@
1
+ import { createCoreApi } from './inject';
2
+
3
+ import type { EventEmitter } from 'events';
4
+ import type { CallMethod, CoreMessage } from './events';
5
+ import type { CoreApi } from './types/api';
6
+
7
+ type IAddHardwareGlobalEventListener = (coreMessage: CoreMessage) => void;
8
+
9
+ export interface LowLevelInjectApi {
10
+ call: CallMethod;
11
+ eventEmitter: EventEmitter;
12
+ init: CoreApi['init'];
13
+ dispose: CoreApi['dispose'];
14
+ uiResponse: CoreApi['uiResponse'];
15
+ cancel: CoreApi['cancel'];
16
+ updateSettings: CoreApi['updateSettings'];
17
+ switchTransport: CoreApi['switchTransport'];
18
+ addHardwareGlobalEventListener: (listener: IAddHardwareGlobalEventListener) => void;
19
+ }
20
+
21
+ export type LowLevelCoreApi = Omit<CoreApi, 'on' | 'off'> & {
22
+ addHardwareGlobalEventListener: (listener: IAddHardwareGlobalEventListener) => void;
23
+ };
24
+
25
+ export const lowLevelInject = ({
26
+ call,
27
+ cancel,
28
+ dispose,
29
+ eventEmitter,
30
+ init,
31
+ uiResponse,
32
+ updateSettings,
33
+ switchTransport,
34
+ addHardwareGlobalEventListener,
35
+ }: LowLevelInjectApi): LowLevelCoreApi => {
36
+ const api: LowLevelCoreApi = {
37
+ addHardwareGlobalEventListener,
38
+ removeAllListeners: type => {
39
+ eventEmitter.removeAllListeners(type);
40
+ },
41
+
42
+ init,
43
+
44
+ call,
45
+
46
+ dispose,
47
+
48
+ uiResponse,
49
+
50
+ cancel,
51
+
52
+ updateSettings,
53
+
54
+ switchTransport,
55
+
56
+ emit: () => {},
57
+
58
+ ...createCoreApi(call),
59
+ };
60
+ return api;
61
+ };
@@ -0,0 +1,62 @@
1
+ import EventEmitter from 'events';
2
+
3
+ import { createCoreApi } from './inject';
4
+
5
+ import type { ConnectSettings } from './types/settings';
6
+ import type { CoreApi } from './types/api';
7
+ import type { LowLevelCoreApi } from './lowLevelInject';
8
+
9
+ export interface TopLevelInjectApi {
10
+ init: CoreApi['init'];
11
+ call: CoreApi['call'];
12
+ }
13
+
14
+ const eventEmitter = new EventEmitter();
15
+
16
+ export const topLevelInject = () => {
17
+ let lowLevelApi: LowLevelCoreApi | undefined;
18
+ const call = (params: any) => {
19
+ if (!lowLevelApi) return Promise.resolve(undefined);
20
+ return lowLevelApi.call(params);
21
+ };
22
+ const api: CoreApi = {
23
+ on: <T extends string, P extends (...args: any[]) => any>(type: T, fn: P) => {
24
+ eventEmitter.on(type, fn);
25
+ },
26
+
27
+ emit: (eventName: string, ...args: any[]) => {
28
+ eventEmitter.emit(eventName, ...args);
29
+ },
30
+
31
+ off: (type, fn) => {
32
+ eventEmitter.emit(type, fn);
33
+ },
34
+
35
+ init: (settings, hardwareLowLeverApi) => {
36
+ lowLevelApi = hardwareLowLeverApi;
37
+ return lowLevelApi?.init(settings) ?? Promise.resolve(false);
38
+ },
39
+
40
+ call,
41
+
42
+ ...createCoreApi(call),
43
+
44
+ removeAllListeners: type => {
45
+ eventEmitter.removeAllListeners(type);
46
+ lowLevelApi?.removeAllListeners(type);
47
+ },
48
+
49
+ dispose: () => lowLevelApi?.dispose(),
50
+
51
+ uiResponse: response => lowLevelApi?.uiResponse(response),
52
+
53
+ cancel: (connectId?: string) => lowLevelApi?.cancel(connectId),
54
+
55
+ updateSettings: settings => lowLevelApi?.updateSettings(settings) ?? Promise.resolve(false),
56
+
57
+ switchTransport: (env: ConnectSettings['env']) =>
58
+ lowLevelApi?.switchTransport(env) ?? Promise.resolve({ success: false }),
59
+ };
60
+
61
+ return api;
62
+ };
@@ -0,0 +1,31 @@
1
+ import type { CommonParams, Response } from '../params';
2
+
3
+ export type AlephiumAddress = {
4
+ path: string;
5
+ /**
6
+ * @deprecated Use `pub` instead.
7
+ */
8
+ publicKey?: string;
9
+ pub?: string;
10
+ address: string;
11
+ derivedPath: string;
12
+ };
13
+
14
+ export type AlephiumGetAddressParams = {
15
+ path: string | number[];
16
+ showOnOneToken?: boolean;
17
+ includePublicKey?: boolean;
18
+ group: number | undefined | null;
19
+ };
20
+
21
+ export declare function alephiumGetAddress(
22
+ connectId: string,
23
+ deviceId: string,
24
+ params: CommonParams & AlephiumGetAddressParams
25
+ ): Response<AlephiumAddress>;
26
+
27
+ export declare function alephiumGetAddress(
28
+ connectId: string,
29
+ deviceId: string,
30
+ params: CommonParams & { bundle?: AlephiumGetAddressParams[] }
31
+ ): Response<Array<AlephiumAddress>>;
@@ -0,0 +1,14 @@
1
+ import type { AlephiumMessageSignature } from '@onetokenfe/hd-transport';
2
+ import type { CommonParams, Response } from '../params';
3
+
4
+ export type AlephiumSignMessageParams = {
5
+ path: string | number[];
6
+ messageHex: string;
7
+ messageType: 'alephium' | 'sha256' | 'blake2b' | 'identity';
8
+ };
9
+
10
+ export declare function alephiumSignMessage(
11
+ connectId: string,
12
+ deviceId: string,
13
+ params: CommonParams & AlephiumSignMessageParams
14
+ ): Response<AlephiumMessageSignature>;
@@ -0,0 +1,18 @@
1
+ import type { AlephiumSignedTx as HardwareAlephiumSignedTx } from '@onetokenfe/hd-transport';
2
+ import type { CommonParams, Response } from '../params';
3
+
4
+ export type AlephiumSignedTx = {
5
+ path: string;
6
+ } & HardwareAlephiumSignedTx;
7
+
8
+ export type AlephiumSignTransactionParams = {
9
+ path: string | number[];
10
+ rawTx: string;
11
+ scriptOpt?: string;
12
+ };
13
+
14
+ export declare function alephiumSignTransaction(
15
+ connectId: string,
16
+ deviceId: string,
17
+ params: CommonParams & AlephiumSignTransactionParams
18
+ ): Response<AlephiumSignedTx>;
@@ -0,0 +1,23 @@
1
+ import type { AlgorandAddress as HardwareAlgoGetAddress } from '@onetokenfe/hd-transport';
2
+ import type { CommonParams, Response } from '../params';
3
+
4
+ export type AlgoAddress = {
5
+ path: string;
6
+ } & HardwareAlgoGetAddress;
7
+
8
+ export type AlgoGetAddressParams = {
9
+ path: string | number[];
10
+ showOnOneToken?: boolean;
11
+ };
12
+
13
+ export declare function algoGetAddress(
14
+ connectId: string,
15
+ deviceId: string,
16
+ params: CommonParams & AlgoGetAddressParams
17
+ ): Response<AlgoAddress>;
18
+
19
+ export declare function algoGetAddress(
20
+ connectId: string,
21
+ deviceId: string,
22
+ params: CommonParams & { bundle?: AlgoGetAddressParams[] }
23
+ ): Response<Array<AlgoAddress>>;
@@ -0,0 +1,17 @@
1
+ import type { AlgorandSignedTx as HardwareAlgorandSignedTx } from '@onetokenfe/hd-transport';
2
+ import type { CommonParams, Response } from '../params';
3
+
4
+ export type AlgoSignedTx = {
5
+ path: string;
6
+ } & HardwareAlgorandSignedTx;
7
+
8
+ export type AlgoSignTransactionParams = {
9
+ path: string | number[];
10
+ rawTx?: string;
11
+ };
12
+
13
+ export declare function algoSignTransaction(
14
+ connectId: string,
15
+ deviceId: string,
16
+ params: CommonParams & AlgoSignTransactionParams
17
+ ): Response<AlgoSignedTx>;