@trezor/connect 10.0.0-alpha.1 → 10.0.0-beta.1

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 (822) hide show
  1. package/CHANGELOG.md +112 -63
  2. package/README.md +2 -2
  3. package/lib/api/applyFlags.d.ts +20 -0
  4. package/lib/api/applyFlags.js +38 -0
  5. package/lib/api/applySettings.d.ts +20 -0
  6. package/lib/api/applySettings.js +57 -0
  7. package/lib/api/authenticateDevice.d.ts +25 -0
  8. package/lib/api/authenticateDevice.js +195 -0
  9. package/lib/api/authorizeCoinjoin.d.ts +11 -0
  10. package/lib/api/authorizeCoinjoin.js +44 -0
  11. package/lib/api/backupDevice.d.ts +19 -0
  12. package/lib/api/backupDevice.js +39 -0
  13. package/lib/api/bitcoin/TransactionComposer.d.ts +46 -0
  14. package/lib/api/bitcoin/TransactionComposer.js +147 -0
  15. package/lib/api/bitcoin/createPendingTx.d.ts +37 -0
  16. package/lib/api/bitcoin/createPendingTx.js +55 -0
  17. package/lib/api/bitcoin/enhanceSignTx.d.ts +2 -0
  18. package/lib/api/bitcoin/enhanceSignTx.js +23 -0
  19. package/lib/api/bitcoin/index.d.ts +9 -0
  20. package/lib/api/bitcoin/index.js +9 -0
  21. package/lib/api/bitcoin/inputs.d.ts +4 -0
  22. package/lib/api/bitcoin/inputs.js +63 -0
  23. package/lib/api/bitcoin/outputs.d.ts +5 -0
  24. package/lib/api/bitcoin/outputs.js +128 -0
  25. package/lib/api/bitcoin/refTx.d.ts +23 -0
  26. package/lib/api/bitcoin/refTx.js +249 -0
  27. package/lib/api/bitcoin/signtx.d.ts +30 -0
  28. package/lib/api/bitcoin/signtx.js +229 -0
  29. package/lib/api/bitcoin/signtxLegacy.d.ts +10 -0
  30. package/lib/api/bitcoin/signtxLegacy.js +186 -0
  31. package/lib/api/bitcoin/signtxVerify.d.ts +12 -0
  32. package/lib/api/bitcoin/signtxVerify.js +95 -0
  33. package/lib/api/bitcoin/transactionBytes.d.ts +3 -0
  34. package/lib/api/bitcoin/transactionBytes.js +65 -0
  35. package/lib/api/bleUnpair.d.ts +11 -0
  36. package/lib/api/bleUnpair.js +37 -0
  37. package/lib/api/blockchainDisconnect.d.ts +16 -0
  38. package/lib/api/blockchainDisconnect.js +37 -0
  39. package/lib/api/blockchainEstimateFee.d.ts +16 -0
  40. package/lib/api/blockchainEstimateFee.js +102 -0
  41. package/lib/api/blockchainEvmRpcCall.d.ts +19 -0
  42. package/lib/api/blockchainEvmRpcCall.js +57 -0
  43. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +16 -0
  44. package/lib/api/blockchainGetAccountBalanceHistory.js +60 -0
  45. package/lib/api/blockchainGetContractInfo.d.ts +16 -0
  46. package/lib/api/blockchainGetContractInfo.js +46 -0
  47. package/lib/api/blockchainGetCurrentFiatRates.d.ts +20 -0
  48. package/lib/api/blockchainGetCurrentFiatRates.js +49 -0
  49. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +23 -0
  50. package/lib/api/blockchainGetFiatRatesForTimestamps.js +55 -0
  51. package/lib/api/blockchainGetInfo.d.ts +15 -0
  52. package/lib/api/blockchainGetInfo.js +37 -0
  53. package/lib/api/blockchainGetTransactions.d.ts +18 -0
  54. package/lib/api/blockchainGetTransactions.js +47 -0
  55. package/lib/api/blockchainSetCustomBackend.d.ts +17 -0
  56. package/lib/api/blockchainSetCustomBackend.js +43 -0
  57. package/lib/api/blockchainSubscribe.d.ts +19 -0
  58. package/lib/api/blockchainSubscribe.js +66 -0
  59. package/lib/api/blockchainSubscribeFiatRates.d.ts +19 -0
  60. package/lib/api/blockchainSubscribeFiatRates.js +43 -0
  61. package/lib/api/blockchainUnsubscribe.d.ts +19 -0
  62. package/lib/api/blockchainUnsubscribe.js +66 -0
  63. package/lib/api/blockchainUnsubscribeFiatRates.d.ts +17 -0
  64. package/lib/api/blockchainUnsubscribeFiatRates.js +37 -0
  65. package/lib/api/blockchainValidateEvmRpcUrl.d.ts +17 -0
  66. package/lib/api/blockchainValidateEvmRpcUrl.js +54 -0
  67. package/lib/api/cancelCoinjoinAuthorization.d.ts +11 -0
  68. package/lib/api/cancelCoinjoinAuthorization.js +33 -0
  69. package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +10 -0
  70. package/lib/api/cardano/api/cardanoComposeTransaction.js +84 -0
  71. package/lib/api/cardano/api/cardanoGetAddress.d.ts +34 -0
  72. package/lib/api/cardano/api/cardanoGetAddress.js +130 -0
  73. package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +12 -0
  74. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +66 -0
  75. package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +22 -0
  76. package/lib/api/cardano/api/cardanoGetPublicKey.js +92 -0
  77. package/lib/api/cardano/api/cardanoSignMessage.d.ts +22 -0
  78. package/lib/api/cardano/api/cardanoSignMessage.js +90 -0
  79. package/lib/api/cardano/api/cardanoSignTransaction.d.ts +81 -0
  80. package/lib/api/cardano/api/cardanoSignTransaction.js +301 -0
  81. package/lib/api/cardano/api/index.d.ts +6 -0
  82. package/lib/api/cardano/api/index.js +6 -0
  83. package/lib/api/cardano/cardanoAddressParameters.d.ts +6 -0
  84. package/lib/api/cardano/cardanoAddressParameters.js +79 -0
  85. package/lib/api/cardano/cardanoAuxiliaryData.d.ts +4 -0
  86. package/lib/api/cardano/cardanoAuxiliaryData.js +74 -0
  87. package/lib/api/cardano/cardanoCertificate.d.ts +13 -0
  88. package/lib/api/cardano/cardanoCertificate.js +142 -0
  89. package/lib/api/cardano/cardanoInputs.d.ts +25 -0
  90. package/lib/api/cardano/cardanoInputs.js +39 -0
  91. package/lib/api/cardano/cardanoOutputs.d.ts +40 -0
  92. package/lib/api/cardano/cardanoOutputs.js +70 -0
  93. package/lib/api/cardano/cardanoTokenBundle.d.ts +12 -0
  94. package/lib/api/cardano/cardanoUtils.d.ts +17 -0
  95. package/lib/api/cardano/cardanoUtils.js +100 -0
  96. package/lib/api/cardano/cardanoWitnesses.d.ts +4 -0
  97. package/lib/api/changeLanguage.d.ts +18 -0
  98. package/lib/api/changeLanguage.js +49 -0
  99. package/lib/api/changePin.d.ts +11 -0
  100. package/lib/api/changePin.js +27 -0
  101. package/lib/api/changeWipeCode.d.ts +11 -0
  102. package/lib/api/changeWipeCode.js +29 -0
  103. package/lib/api/cipherKeyValue.d.ts +17 -0
  104. package/lib/api/cipherKeyValue.js +58 -0
  105. package/lib/api/common/AbstractMiscGetAddress.d.ts +37 -0
  106. package/lib/api/common/AbstractMiscGetAddress.js +126 -0
  107. package/lib/api/common/Discovery.d.ts +33 -0
  108. package/lib/api/common/Discovery.js +119 -0
  109. package/lib/api/common/paramsValidator.d.ts +24 -0
  110. package/lib/api/common/paramsValidator.js +136 -0
  111. package/lib/api/common/requestExistingAccounts.d.ts +14 -0
  112. package/lib/api/common/requestExistingAccounts.js +20 -0
  113. package/lib/api/composeTransaction.d.ts +36 -0
  114. package/lib/api/composeTransaction.js +404 -0
  115. package/lib/api/discoverAccounts.d.ts +40 -0
  116. package/lib/api/discoverAccounts.js +360 -0
  117. package/lib/api/ethereum/api/ethereumGetAddress.d.ts +30 -0
  118. package/lib/api/ethereum/api/ethereumGetAddress.js +150 -0
  119. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +52 -0
  120. package/lib/api/ethereum/api/ethereumGetPublicKey.js +100 -0
  121. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +27 -0
  122. package/lib/api/ethereum/api/ethereumSignMessage.js +64 -0
  123. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +83 -0
  124. package/lib/api/ethereum/api/ethereumSignTransaction.js +148 -0
  125. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +117 -0
  126. package/lib/api/ethereum/api/ethereumSignTypedData.js +203 -0
  127. package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +12 -0
  128. package/lib/api/ethereum/api/ethereumVerifyMessage.js +35 -0
  129. package/lib/api/ethereum/api/index.d.ts +6 -0
  130. package/lib/api/ethereum/api/index.js +6 -0
  131. package/lib/api/ethereum/ethereumDefinitions.d.ts +53 -0
  132. package/lib/api/ethereum/ethereumDefinitions.js +135 -0
  133. package/lib/api/ethereum/ethereumSignTx.d.ts +16 -0
  134. package/lib/api/ethereum/ethereumSignTx.js +144 -0
  135. package/lib/api/ethereum/ethereumSignTypedData.d.ts +32 -0
  136. package/lib/api/ethereum/ethereumSignTypedData.js +175 -0
  137. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +14 -0
  138. package/lib/api/evoluGetDelegatedIdentityKey.js +29 -0
  139. package/lib/api/evoluGetNode.d.ts +13 -0
  140. package/lib/api/evoluGetNode.js +29 -0
  141. package/lib/api/evoluSignRegistrationRequest.d.ts +16 -0
  142. package/lib/api/evoluSignRegistrationRequest.js +33 -0
  143. package/lib/api/firmware/calculateFirmwareHash.d.ts +18 -0
  144. package/lib/api/firmware/calculateXPubHash.d.ts +14 -0
  145. package/lib/api/firmware/calculateXPubHash.js +16 -0
  146. package/lib/api/firmware/getBinary.d.ts +14 -0
  147. package/lib/api/firmware/getBinary.js +33 -0
  148. package/lib/api/firmware/index.d.ts +6 -0
  149. package/lib/api/firmware/index.js +6 -0
  150. package/lib/api/firmware/modifyFirmware.d.ts +3 -0
  151. package/lib/api/firmware/parseFirmwareHeaders.d.ts +4 -0
  152. package/lib/api/firmware/uploadFirmware.d.ts +27 -0
  153. package/lib/api/firmware/uploadFirmware.js +99 -0
  154. package/lib/api/firmware/verifyEntropy.d.ts +25 -0
  155. package/lib/api/firmware/verifyEntropy.js +110 -0
  156. package/lib/api/getAccountInfo.d.ts +21 -0
  157. package/lib/api/getAccountInfo.js +253 -0
  158. package/lib/api/getAddress.d.ts +45 -0
  159. package/lib/api/getAddress.js +153 -0
  160. package/lib/api/getCoinInfo.d.ts +148 -0
  161. package/lib/api/getCoinInfo.js +25 -0
  162. package/lib/api/getDeviceState.d.ts +8 -0
  163. package/lib/api/getDeviceState.js +18 -0
  164. package/lib/api/getFeatures.d.ts +71 -0
  165. package/lib/api/getFeatures.js +22 -0
  166. package/lib/api/getFirmwareHash.d.ts +11 -0
  167. package/lib/api/getFirmwareHash.js +29 -0
  168. package/lib/api/getNonce.d.ts +10 -0
  169. package/lib/api/getNonce.js +18 -0
  170. package/lib/api/getOwnershipId.d.ts +17 -0
  171. package/lib/api/getOwnershipId.js +88 -0
  172. package/lib/api/getOwnershipProof.d.ts +17 -0
  173. package/lib/api/getOwnershipProof.js +95 -0
  174. package/lib/api/getPublicKey.d.ts +54 -0
  175. package/lib/api/getPublicKey.js +106 -0
  176. package/lib/api/getSettings.d.ts +24 -0
  177. package/lib/api/getSettings.js +21 -0
  178. package/lib/api/index.d.ts +62 -0
  179. package/lib/api/index.js +62 -0
  180. package/lib/api/loadDevice.d.ts +16 -0
  181. package/lib/api/loadDevice.js +46 -0
  182. package/lib/api/monero/api/index.d.ts +4 -0
  183. package/lib/api/monero/api/index.js +4 -0
  184. package/lib/api/monero/api/moneroGetAddress.d.ts +32 -0
  185. package/lib/api/monero/api/moneroGetAddress.js +117 -0
  186. package/lib/api/monero/api/moneroGetWatchKey.d.ts +14 -0
  187. package/lib/api/monero/api/moneroGetWatchKey.js +45 -0
  188. package/lib/api/monero/api/moneroKeyImageSync.d.ts +17 -0
  189. package/lib/api/monero/api/moneroKeyImageSync.js +128 -0
  190. package/lib/api/monero/api/moneroSignTransaction.d.ts +17 -0
  191. package/lib/api/monero/api/moneroSignTransaction.js +218 -0
  192. package/lib/api/nostr/nostrGetPublicKey.d.ts +15 -0
  193. package/lib/api/nostr/nostrGetPublicKey.js +38 -0
  194. package/lib/api/nostr/nostrSignEvent.d.ts +13 -0
  195. package/lib/api/nostr/nostrSignEvent.js +36 -0
  196. package/lib/api/pingDevice.d.ts +11 -0
  197. package/lib/api/pingDevice.js +29 -0
  198. package/lib/api/pushTransaction.d.ts +19 -0
  199. package/lib/api/pushTransaction.js +39 -0
  200. package/lib/api/recoveryDevice.d.ts +20 -0
  201. package/lib/api/recoveryDevice.js +52 -0
  202. package/lib/api/requestLogin.d.ts +14 -0
  203. package/lib/api/requestLogin.js +53 -0
  204. package/lib/api/resetDevice.d.ts +22 -0
  205. package/lib/api/resetDevice.js +133 -0
  206. package/lib/api/ripple/api/index.d.ts +2 -0
  207. package/lib/api/ripple/api/index.js +2 -0
  208. package/lib/api/ripple/api/rippleGetAddress.d.ts +17 -0
  209. package/lib/api/ripple/api/rippleGetAddress.js +22 -0
  210. package/lib/api/ripple/api/rippleSignTransaction.d.ts +13 -0
  211. package/lib/api/ripple/api/rippleSignTransaction.js +52 -0
  212. package/lib/api/selectAccount.d.ts +15 -0
  213. package/lib/api/selectAccount.js +42 -0
  214. package/lib/api/setBrightness.d.ts +12 -0
  215. package/lib/api/setBrightness.js +28 -0
  216. package/lib/api/setBusy.d.ts +11 -0
  217. package/lib/api/setBusy.js +31 -0
  218. package/lib/api/showDeviceTutorial.d.ts +11 -0
  219. package/lib/api/showDeviceTutorial.js +21 -0
  220. package/lib/api/signMessage.d.ts +25 -0
  221. package/lib/api/signMessage.js +75 -0
  222. package/lib/api/signTransaction.d.ts +199 -0
  223. package/lib/api/signTransaction.js +331 -0
  224. package/lib/api/solana/api/index.d.ts +4 -0
  225. package/lib/api/solana/api/index.js +4 -0
  226. package/lib/api/solana/api/solanaComposeTransaction.d.ts +33 -0
  227. package/lib/api/solana/api/solanaComposeTransaction.js +73 -0
  228. package/lib/api/solana/api/solanaGetAddress.d.ts +17 -0
  229. package/lib/api/solana/api/solanaGetAddress.js +22 -0
  230. package/lib/api/solana/api/solanaGetPublicKey.d.ts +32 -0
  231. package/lib/api/solana/api/solanaGetPublicKey.js +86 -0
  232. package/lib/api/solana/api/solanaSignTransaction.d.ts +41 -0
  233. package/lib/api/solana/api/solanaSignTransaction.js +204 -0
  234. package/lib/api/solana/solanaDefinitions.d.ts +9 -0
  235. package/lib/api/solana/solanaDefinitions.js +33 -0
  236. package/lib/api/stellar/api/index.d.ts +2 -0
  237. package/lib/api/stellar/api/index.js +2 -0
  238. package/lib/api/stellar/api/stellarGetAddress.d.ts +17 -0
  239. package/lib/api/stellar/api/stellarGetAddress.js +22 -0
  240. package/lib/api/stellar/api/stellarSignTransaction.d.ts +20 -0
  241. package/lib/api/stellar/api/stellarSignTransaction.js +65 -0
  242. package/lib/api/stellar/stellarSignTx.d.ts +7 -0
  243. package/lib/api/stellar/stellarSignTx.js +183 -0
  244. package/lib/api/telemetryGet.d.ts +14 -0
  245. package/lib/api/telemetryGet.js +26 -0
  246. package/lib/api/tezos/api/index.d.ts +3 -0
  247. package/lib/api/tezos/api/index.js +3 -0
  248. package/lib/api/tezos/api/tezosGetAddress.d.ts +17 -0
  249. package/lib/api/tezos/api/tezosGetAddress.js +22 -0
  250. package/lib/api/tezos/api/tezosGetPublicKey.d.ts +28 -0
  251. package/lib/api/tezos/api/tezosGetPublicKey.js +84 -0
  252. package/lib/api/tezos/api/tezosSignTransaction.d.ts +14 -0
  253. package/lib/api/tezos/api/tezosSignTransaction.js +30 -0
  254. package/lib/api/tezos/tezosSignTx.d.ts +71 -0
  255. package/lib/api/tezos/tezosSignTx.js +204 -0
  256. package/lib/api/thpGetCredentials.d.ts +13 -0
  257. package/lib/api/thpGetCredentials.js +30 -0
  258. package/lib/api/thpRemoveCredentials.d.ts +15 -0
  259. package/lib/api/thpRemoveCredentials.js +44 -0
  260. package/lib/api/tron/api/index.d.ts +3 -0
  261. package/lib/api/tron/api/index.js +3 -0
  262. package/lib/api/tron/api/tronComposeTransaction.d.ts +17 -0
  263. package/lib/api/tron/api/tronComposeTransaction.js +52 -0
  264. package/lib/api/tron/api/tronGetAddress.d.ts +17 -0
  265. package/lib/api/tron/api/tronGetAddress.js +22 -0
  266. package/lib/api/tron/api/tronSignTransaction.d.ts +20 -0
  267. package/lib/api/tron/api/tronSignTransaction.js +137 -0
  268. package/lib/api/tron/tronEncode.d.ts +11 -0
  269. package/lib/api/tron/tronEncode.js +157 -0
  270. package/lib/api/tron/tronProtobuf.d.ts +5 -0
  271. package/lib/api/unlockPath.d.ts +12 -0
  272. package/lib/api/unlockPath.js +33 -0
  273. package/lib/api/verifyMessage.d.ts +16 -0
  274. package/lib/api/verifyMessage.js +46 -0
  275. package/lib/api/wipeDevice.d.ts +21 -0
  276. package/lib/api/wipeDevice.js +49 -0
  277. package/lib/backend/BackendManager.d.ts +30 -0
  278. package/lib/backend/BackendManager.js +145 -0
  279. package/lib/backend/Blockchain.d.ts +81 -0
  280. package/lib/backend/Blockchain.js +235 -0
  281. package/lib/backend/BlockchainLink.d.ts +10 -0
  282. package/lib/backend/BlockchainLink.js +19 -0
  283. package/lib/backend/fees/BitcoinFeeLevels.d.ts +19 -0
  284. package/lib/backend/fees/BitcoinFeeLevels.js +44 -0
  285. package/lib/backend/fees/EthereumFeeLevels.d.ts +17 -0
  286. package/lib/backend/fees/EthereumFeeLevels.js +63 -0
  287. package/lib/backend/fees/MiscFeeLevels.d.ts +18 -0
  288. package/lib/backend/fees/MiscFeeLevels.js +30 -0
  289. package/lib/backend/fees/index.d.ts +5 -0
  290. package/lib/backend/fees/index.js +31 -0
  291. package/lib/core/AbstractMethod.d.ts +63 -0
  292. package/lib/core/AbstractMethod.js +189 -0
  293. package/lib/core/index.d.ts +29 -0
  294. package/lib/core/index.js +805 -0
  295. package/lib/core/method.d.ts +3 -0
  296. package/lib/core/method.js +19 -0
  297. package/lib/core/method.native.d.ts +2 -0
  298. package/lib/core/method.native.js +29 -0
  299. package/lib/core/onCallFirmwareUpdate.d.ts +42 -0
  300. package/lib/core/onCallFirmwareUpdate.js +436 -0
  301. package/lib/data/coinInfo.d.ts +101 -0
  302. package/lib/data/coinInfo.js +195 -0
  303. package/lib/data/config.d.ts +8 -0
  304. package/lib/data/config.js +273 -0
  305. package/lib/data/defaultFeeLevels.d.ts +18 -0
  306. package/lib/data/defaultFeeLevels.js +200 -0
  307. package/lib/data/enabledNetworksStore.d.ts +5 -0
  308. package/lib/data/enabledNetworksStore.js +20 -0
  309. package/lib/data/firmwareInfo.d.ts +55 -0
  310. package/lib/data/firmwareInfo.js +413 -0
  311. package/lib/data/firmwareReleaseStore.d.ts +10 -0
  312. package/lib/data/firmwareReleaseStore.js +16 -0
  313. package/lib/data/localFirmwareStore.d.ts +3 -0
  314. package/lib/data/protobufLoader.d.ts +1 -0
  315. package/lib/data/protobufLoader.js +30 -0
  316. package/lib/data/settingsStore.d.ts +6 -0
  317. package/lib/data/settingsStore.js +21 -0
  318. package/lib/device/Device.d.ts +259 -0
  319. package/lib/device/Device.js +765 -0
  320. package/lib/device/DeviceCommands.d.ts +87 -0
  321. package/lib/device/DeviceCommands.js +248 -0
  322. package/lib/device/DeviceCurrentSession.d.ts +750 -0
  323. package/lib/device/DeviceCurrentSession.js +239 -0
  324. package/lib/device/DeviceList.d.ts +75 -0
  325. package/lib/device/DeviceList.js +243 -0
  326. package/lib/device/TransportList.d.ts +3 -0
  327. package/lib/device/TransportList.js +13 -0
  328. package/lib/device/TransportManager.d.ts +33 -0
  329. package/lib/device/TransportManager.js +144 -0
  330. package/lib/device/calculateRevisionForDevice.d.ts +10 -0
  331. package/lib/device/calculateRevisionForDevice.js +19 -0
  332. package/lib/device/checkFirmwareRevision.d.ts +22 -0
  333. package/lib/device/checkFirmwareRevision.js +104 -0
  334. package/lib/device/resolveDescriptorForTaproot.d.ts +17 -0
  335. package/lib/device/resolveDescriptorForTaproot.js +27 -0
  336. package/lib/device/thp/handshake.d.ts +3 -0
  337. package/lib/device/thp/handshake.js +100 -0
  338. package/lib/device/thp/index.d.ts +5 -0
  339. package/lib/device/thp/index.js +65 -0
  340. package/lib/device/thp/pairing.d.ts +16 -0
  341. package/lib/device/thp/pairing.js +242 -0
  342. package/lib/device/thp/session.d.ts +2 -0
  343. package/lib/device/thp/session.js +27 -0
  344. package/lib/device/thp/thpCall.d.ts +31 -0
  345. package/lib/device/thp/thpCall.js +58 -0
  346. package/lib/device/validateMessageSize.d.ts +2 -0
  347. package/lib/device/validateMessageSize.js +9 -0
  348. package/lib/device/workflow/changeLanguage.d.ts +18 -0
  349. package/lib/device/workflow/changeLanguage.js +62 -0
  350. package/lib/device/workflow/checkFirmwareHash.d.ts +12 -0
  351. package/lib/device/workflow/checkFirmwareHash.js +86 -0
  352. package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +8 -0
  353. package/lib/device/workflow/checkFirmwareHashWithRetries.js +36 -0
  354. package/lib/device/workflow/handshake.d.ts +13 -0
  355. package/lib/device/workflow/handshake.js +55 -0
  356. package/lib/device/workflow/trezorPushNotification.d.ts +5 -0
  357. package/lib/device/workflow/trezorPushNotification.js +73 -0
  358. package/lib/device/workflow/validateState.d.ts +2 -0
  359. package/lib/device/workflow/validateState.js +152 -0
  360. package/lib/events/ui-promise.d.ts +20 -0
  361. package/lib/exports.d.ts +3 -0
  362. package/lib/exports.js +3 -0
  363. package/lib/impl/core-in-module.d.ts +33 -0
  364. package/lib/impl/core-in-module.js +194 -0
  365. package/lib/index.browser.d.ts +7 -0
  366. package/lib/index.browser.js +34 -0
  367. package/lib/index.d.ts +4 -0
  368. package/lib/index.js +15 -0
  369. package/lib/types/idevice.d.ts +110 -0
  370. package/lib/types/typed-call-provider.d.ts +29 -0
  371. package/lib/types/workflow.d.ts +16 -0
  372. package/lib/utils/accountUtils.d.ts +10 -0
  373. package/lib/utils/accountUtils.js +90 -0
  374. package/lib/utils/addressUtils.d.ts +2 -0
  375. package/lib/utils/assetUtils.d.ts +13 -0
  376. package/lib/utils/assetUtils.js +55 -0
  377. package/lib/utils/assets.browser.d.ts +1 -0
  378. package/lib/utils/assets.browser.js +1 -0
  379. package/lib/utils/assets.d.ts +2 -0
  380. package/lib/utils/assets.js +13 -0
  381. package/lib/utils/assets.native.d.ts +2 -0
  382. package/lib/utils/assets.native.js +23 -0
  383. package/lib/utils/assetsTypes.d.ts +5 -0
  384. package/lib/utils/buildOutputDescriptor.d.ts +20 -0
  385. package/lib/utils/deviceFeaturesUtils.d.ts +7 -0
  386. package/lib/utils/deviceFeaturesUtils.js +109 -0
  387. package/lib/utils/ethereumUtils.d.ts +3 -0
  388. package/lib/utils/firmwareReleaseConfigUtils.d.ts +19 -0
  389. package/lib/utils/firmwareReleaseConfigUtils.js +131 -0
  390. package/lib/utils/firmwareUtils.d.ts +15 -0
  391. package/lib/utils/firmwareUtils.js +57 -0
  392. package/lib/utils/formatUtils.d.ts +13 -0
  393. package/lib/utils/formatUtils.js +45 -0
  394. package/lib/utils/hdnodeUtils.d.ts +6 -0
  395. package/lib/utils/hdnodeUtils.js +62 -0
  396. package/lib/utils/pathUtils.d.ts +1 -0
  397. package/lib/utils/pathUtils.js +1 -0
  398. package/lib/utils/paymentRequest.d.ts +8 -0
  399. package/lib/utils/paymentRequest.js +25 -0
  400. package/lib/utils/uiPromiseManager.d.ts +8 -0
  401. package/lib/workers/workers.browser.d.ts +10 -0
  402. package/lib/workers/workers.browser.js +16 -0
  403. package/lib/workers/workers.d.ts +10 -0
  404. package/lib/workers/workers.js +8 -0
  405. package/lib/workers/workers.native.d.ts +7 -0
  406. package/lib/workers/workers.native.js +7 -0
  407. package/package.json +57 -59
  408. package/libESM/api/applyFlags.d.mts +0 -20
  409. package/libESM/api/applyFlags.mjs +0 -36
  410. package/libESM/api/applySettings.d.mts +0 -20
  411. package/libESM/api/applySettings.mjs +0 -55
  412. package/libESM/api/authenticateDevice.d.mts +0 -9
  413. package/libESM/api/authenticateDevice.mjs +0 -108
  414. package/libESM/api/authorizeCoinjoin.d.mts +0 -11
  415. package/libESM/api/authorizeCoinjoin.mjs +0 -44
  416. package/libESM/api/backupDevice.d.mts +0 -19
  417. package/libESM/api/backupDevice.mjs +0 -36
  418. package/libESM/api/bitcoin/TransactionComposer.d.mts +0 -46
  419. package/libESM/api/bitcoin/TransactionComposer.mjs +0 -139
  420. package/libESM/api/bitcoin/createPendingTx.d.mts +0 -33
  421. package/libESM/api/bitcoin/createPendingTx.mjs +0 -54
  422. package/libESM/api/bitcoin/enhanceSignTx.d.mts +0 -2
  423. package/libESM/api/bitcoin/enhanceSignTx.mjs +0 -23
  424. package/libESM/api/bitcoin/index.d.mts +0 -9
  425. package/libESM/api/bitcoin/index.mjs +0 -9
  426. package/libESM/api/bitcoin/inputs.d.mts +0 -6
  427. package/libESM/api/bitcoin/inputs.mjs +0 -75
  428. package/libESM/api/bitcoin/outputs.d.mts +0 -5
  429. package/libESM/api/bitcoin/outputs.mjs +0 -128
  430. package/libESM/api/bitcoin/refTx.d.mts +0 -17
  431. package/libESM/api/bitcoin/refTx.mjs +0 -252
  432. package/libESM/api/bitcoin/signtx.d.mts +0 -22
  433. package/libESM/api/bitcoin/signtx.mjs +0 -213
  434. package/libESM/api/bitcoin/signtxLegacy.d.mts +0 -3
  435. package/libESM/api/bitcoin/signtxLegacy.mjs +0 -179
  436. package/libESM/api/bitcoin/signtxVerify.d.mts +0 -12
  437. package/libESM/api/bitcoin/signtxVerify.mjs +0 -86
  438. package/libESM/api/bitcoin/transactionBytes.d.mts +0 -3
  439. package/libESM/api/bitcoin/transactionBytes.mjs +0 -65
  440. package/libESM/api/bleUnpair.d.mts +0 -11
  441. package/libESM/api/bleUnpair.mjs +0 -35
  442. package/libESM/api/blockchainDisconnect.d.mts +0 -16
  443. package/libESM/api/blockchainDisconnect.mjs +0 -39
  444. package/libESM/api/blockchainEstimateFee.d.mts +0 -14
  445. package/libESM/api/blockchainEstimateFee.mjs +0 -106
  446. package/libESM/api/blockchainEvmRpcCall.d.mts +0 -17
  447. package/libESM/api/blockchainEvmRpcCall.mjs +0 -61
  448. package/libESM/api/blockchainGetAccountBalanceHistory.d.mts +0 -14
  449. package/libESM/api/blockchainGetAccountBalanceHistory.mjs +0 -64
  450. package/libESM/api/blockchainGetContractInfo.d.mts +0 -14
  451. package/libESM/api/blockchainGetContractInfo.mjs +0 -50
  452. package/libESM/api/blockchainGetCurrentFiatRates.d.mts +0 -18
  453. package/libESM/api/blockchainGetCurrentFiatRates.mjs +0 -53
  454. package/libESM/api/blockchainGetFiatRatesForTimestamps.d.mts +0 -21
  455. package/libESM/api/blockchainGetFiatRatesForTimestamps.mjs +0 -59
  456. package/libESM/api/blockchainGetInfo.d.mts +0 -13
  457. package/libESM/api/blockchainGetInfo.mjs +0 -41
  458. package/libESM/api/blockchainGetTransactions.d.mts +0 -15
  459. package/libESM/api/blockchainGetTransactions.mjs +0 -47
  460. package/libESM/api/blockchainSetCustomBackend.d.mts +0 -13
  461. package/libESM/api/blockchainSetCustomBackend.mjs +0 -41
  462. package/libESM/api/blockchainSubscribe.d.mts +0 -17
  463. package/libESM/api/blockchainSubscribe.mjs +0 -68
  464. package/libESM/api/blockchainSubscribeFiatRates.d.mts +0 -17
  465. package/libESM/api/blockchainSubscribeFiatRates.mjs +0 -47
  466. package/libESM/api/blockchainUnsubscribe.d.mts +0 -17
  467. package/libESM/api/blockchainUnsubscribe.mjs +0 -68
  468. package/libESM/api/blockchainUnsubscribeFiatRates.d.mts +0 -15
  469. package/libESM/api/blockchainUnsubscribeFiatRates.mjs +0 -41
  470. package/libESM/api/blockchainValidateEvmRpcUrl.d.mts +0 -17
  471. package/libESM/api/blockchainValidateEvmRpcUrl.mjs +0 -54
  472. package/libESM/api/cancelCoinjoinAuthorization.d.mts +0 -11
  473. package/libESM/api/cancelCoinjoinAuthorization.mjs +0 -31
  474. package/libESM/api/cardano/api/cardanoComposeTransaction.d.mts +0 -10
  475. package/libESM/api/cardano/api/cardanoComposeTransaction.mjs +0 -79
  476. package/libESM/api/cardano/api/cardanoGetAddress.d.mts +0 -30
  477. package/libESM/api/cardano/api/cardanoGetAddress.mjs +0 -116
  478. package/libESM/api/cardano/api/cardanoGetNativeScriptHash.d.mts +0 -12
  479. package/libESM/api/cardano/api/cardanoGetNativeScriptHash.mjs +0 -66
  480. package/libESM/api/cardano/api/cardanoGetPublicKey.d.mts +0 -20
  481. package/libESM/api/cardano/api/cardanoGetPublicKey.mjs +0 -72
  482. package/libESM/api/cardano/api/cardanoSignMessage.d.mts +0 -27
  483. package/libESM/api/cardano/api/cardanoSignMessage.mjs +0 -96
  484. package/libESM/api/cardano/api/cardanoSignTransaction.d.mts +0 -81
  485. package/libESM/api/cardano/api/cardanoSignTransaction.mjs +0 -298
  486. package/libESM/api/cardano/api/index.d.mts +0 -6
  487. package/libESM/api/cardano/api/index.mjs +0 -6
  488. package/libESM/api/cardano/cardanoAddressParameters.d.mts +0 -6
  489. package/libESM/api/cardano/cardanoAddressParameters.mjs +0 -79
  490. package/libESM/api/cardano/cardanoAuxiliaryData.d.mts +0 -4
  491. package/libESM/api/cardano/cardanoAuxiliaryData.mjs +0 -74
  492. package/libESM/api/cardano/cardanoCertificate.d.mts +0 -13
  493. package/libESM/api/cardano/cardanoCertificate.mjs +0 -142
  494. package/libESM/api/cardano/cardanoInputs.d.mts +0 -25
  495. package/libESM/api/cardano/cardanoInputs.mjs +0 -39
  496. package/libESM/api/cardano/cardanoOutputs.d.mts +0 -40
  497. package/libESM/api/cardano/cardanoOutputs.mjs +0 -70
  498. package/libESM/api/cardano/cardanoTokenBundle.d.mts +0 -12
  499. package/libESM/api/cardano/cardanoUtils.d.mts +0 -9
  500. package/libESM/api/cardano/cardanoUtils.mjs +0 -101
  501. package/libESM/api/cardano/cardanoWitnesses.d.mts +0 -4
  502. package/libESM/api/changeLanguage.d.mts +0 -18
  503. package/libESM/api/changeLanguage.mjs +0 -47
  504. package/libESM/api/changePin.d.mts +0 -11
  505. package/libESM/api/changePin.mjs +0 -25
  506. package/libESM/api/changeWipeCode.d.mts +0 -11
  507. package/libESM/api/changeWipeCode.mjs +0 -27
  508. package/libESM/api/cipherKeyValue.d.mts +0 -15
  509. package/libESM/api/cipherKeyValue.mjs +0 -51
  510. package/libESM/api/common/AbstractMiscGetAddress.d.mts +0 -35
  511. package/libESM/api/common/AbstractMiscGetAddress.mjs +0 -102
  512. package/libESM/api/common/Discovery.d.mts +0 -33
  513. package/libESM/api/common/Discovery.mjs +0 -116
  514. package/libESM/api/common/paramsValidator.d.mts +0 -23
  515. package/libESM/api/common/paramsValidator.mjs +0 -134
  516. package/libESM/api/common/requestExistingAccounts.d.mts +0 -9
  517. package/libESM/api/common/requestExistingAccounts.mjs +0 -20
  518. package/libESM/api/composeTransaction.d.mts +0 -36
  519. package/libESM/api/composeTransaction.mjs +0 -386
  520. package/libESM/api/discoverAccounts.d.mts +0 -38
  521. package/libESM/api/discoverAccounts.mjs +0 -363
  522. package/libESM/api/ethereum/api/ethereumGetAddress.d.mts +0 -28
  523. package/libESM/api/ethereum/api/ethereumGetAddress.mjs +0 -135
  524. package/libESM/api/ethereum/api/ethereumGetPublicKey.d.mts +0 -48
  525. package/libESM/api/ethereum/api/ethereumGetPublicKey.mjs +0 -90
  526. package/libESM/api/ethereum/api/ethereumSignMessage.d.mts +0 -27
  527. package/libESM/api/ethereum/api/ethereumSignMessage.mjs +0 -64
  528. package/libESM/api/ethereum/api/ethereumSignTransaction.d.mts +0 -83
  529. package/libESM/api/ethereum/api/ethereumSignTransaction.mjs +0 -148
  530. package/libESM/api/ethereum/api/ethereumSignTypedData.d.mts +0 -116
  531. package/libESM/api/ethereum/api/ethereumSignTypedData.mjs +0 -202
  532. package/libESM/api/ethereum/api/ethereumVerifyMessage.d.mts +0 -12
  533. package/libESM/api/ethereum/api/ethereumVerifyMessage.mjs +0 -33
  534. package/libESM/api/ethereum/api/index.d.mts +0 -6
  535. package/libESM/api/ethereum/api/index.mjs +0 -6
  536. package/libESM/api/ethereum/ethereumDefinitions.d.mts +0 -46
  537. package/libESM/api/ethereum/ethereumDefinitions.mjs +0 -103
  538. package/libESM/api/ethereum/ethereumSignTx.d.mts +0 -20
  539. package/libESM/api/ethereum/ethereumSignTx.mjs +0 -131
  540. package/libESM/api/ethereum/ethereumSignTypedData.d.mts +0 -32
  541. package/libESM/api/ethereum/ethereumSignTypedData.mjs +0 -169
  542. package/libESM/api/evoluGetDelegatedIdentityKey.d.mts +0 -14
  543. package/libESM/api/evoluGetDelegatedIdentityKey.mjs +0 -26
  544. package/libESM/api/evoluGetNode.d.mts +0 -13
  545. package/libESM/api/evoluGetNode.mjs +0 -27
  546. package/libESM/api/evoluSignRegistrationRequest.d.mts +0 -15
  547. package/libESM/api/evoluSignRegistrationRequest.mjs +0 -31
  548. package/libESM/api/firmware/calculateFirmwareHash.d.mts +0 -13
  549. package/libESM/api/firmware/calculateXPubHash.d.mts +0 -10
  550. package/libESM/api/firmware/calculateXPubHash.mjs +0 -14
  551. package/libESM/api/firmware/getBinary.d.mts +0 -10
  552. package/libESM/api/firmware/getBinary.mjs +0 -33
  553. package/libESM/api/firmware/index.d.mts +0 -6
  554. package/libESM/api/firmware/index.mjs +0 -6
  555. package/libESM/api/firmware/modifyFirmware.d.mts +0 -3
  556. package/libESM/api/firmware/parseFirmwareHeaders.d.mts +0 -4
  557. package/libESM/api/firmware/uploadFirmware.d.mts +0 -19
  558. package/libESM/api/firmware/uploadFirmware.mjs +0 -99
  559. package/libESM/api/firmware/verifyEntropy.d.mts +0 -18
  560. package/libESM/api/firmware/verifyEntropy.mjs +0 -107
  561. package/libESM/api/getAccountInfo.d.mts +0 -94
  562. package/libESM/api/getAccountInfo.mjs +0 -385
  563. package/libESM/api/getAddress.d.mts +0 -39
  564. package/libESM/api/getAddress.mjs +0 -142
  565. package/libESM/api/getCoinInfo.d.mts +0 -148
  566. package/libESM/api/getCoinInfo.mjs +0 -29
  567. package/libESM/api/getDeviceState.d.mts +0 -8
  568. package/libESM/api/getDeviceState.mjs +0 -16
  569. package/libESM/api/getFeatures.d.mts +0 -70
  570. package/libESM/api/getFeatures.mjs +0 -20
  571. package/libESM/api/getFirmwareHash.d.mts +0 -11
  572. package/libESM/api/getFirmwareHash.mjs +0 -27
  573. package/libESM/api/getNonce.d.mts +0 -10
  574. package/libESM/api/getNonce.mjs +0 -16
  575. package/libESM/api/getOwnershipId.d.mts +0 -15
  576. package/libESM/api/getOwnershipId.mjs +0 -79
  577. package/libESM/api/getOwnershipProof.d.mts +0 -15
  578. package/libESM/api/getOwnershipProof.mjs +0 -86
  579. package/libESM/api/getPublicKey.d.mts +0 -50
  580. package/libESM/api/getPublicKey.mjs +0 -88
  581. package/libESM/api/getSettings.d.mts +0 -8
  582. package/libESM/api/getSettings.mjs +0 -15
  583. package/libESM/api/index.d.mts +0 -59
  584. package/libESM/api/index.mjs +0 -59
  585. package/libESM/api/loadDevice.d.mts +0 -16
  586. package/libESM/api/loadDevice.mjs +0 -44
  587. package/libESM/api/monero/api/index.d.mts +0 -4
  588. package/libESM/api/monero/api/index.mjs +0 -4
  589. package/libESM/api/monero/api/moneroGetAddress.d.mts +0 -30
  590. package/libESM/api/monero/api/moneroGetAddress.mjs +0 -109
  591. package/libESM/api/monero/api/moneroGetWatchKey.d.mts +0 -14
  592. package/libESM/api/monero/api/moneroGetWatchKey.mjs +0 -44
  593. package/libESM/api/monero/api/moneroKeyImageSync.d.mts +0 -17
  594. package/libESM/api/monero/api/moneroKeyImageSync.mjs +0 -127
  595. package/libESM/api/monero/api/moneroSignTransaction.d.mts +0 -17
  596. package/libESM/api/monero/api/moneroSignTransaction.mjs +0 -202
  597. package/libESM/api/pingDevice.d.mts +0 -11
  598. package/libESM/api/pingDevice.mjs +0 -27
  599. package/libESM/api/pushTransaction.d.mts +0 -17
  600. package/libESM/api/pushTransaction.mjs +0 -42
  601. package/libESM/api/recoveryDevice.d.mts +0 -20
  602. package/libESM/api/recoveryDevice.mjs +0 -50
  603. package/libESM/api/requestLogin.d.mts +0 -14
  604. package/libESM/api/requestLogin.mjs +0 -48
  605. package/libESM/api/resetDevice.d.mts +0 -22
  606. package/libESM/api/resetDevice.mjs +0 -131
  607. package/libESM/api/ripple/api/index.d.mts +0 -2
  608. package/libESM/api/ripple/api/index.mjs +0 -2
  609. package/libESM/api/ripple/api/rippleGetAddress.d.mts +0 -15
  610. package/libESM/api/ripple/api/rippleGetAddress.mjs +0 -22
  611. package/libESM/api/ripple/api/rippleSignTransaction.d.mts +0 -13
  612. package/libESM/api/ripple/api/rippleSignTransaction.mjs +0 -52
  613. package/libESM/api/setBrightness.d.mts +0 -12
  614. package/libESM/api/setBrightness.mjs +0 -26
  615. package/libESM/api/setBusy.d.mts +0 -11
  616. package/libESM/api/setBusy.mjs +0 -32
  617. package/libESM/api/showDeviceTutorial.d.mts +0 -11
  618. package/libESM/api/showDeviceTutorial.mjs +0 -21
  619. package/libESM/api/signMessage.d.mts +0 -25
  620. package/libESM/api/signMessage.mjs +0 -71
  621. package/libESM/api/signTransaction.d.mts +0 -197
  622. package/libESM/api/signTransaction.mjs +0 -334
  623. package/libESM/api/solana/api/index.d.mts +0 -4
  624. package/libESM/api/solana/api/index.mjs +0 -4
  625. package/libESM/api/solana/api/solanaComposeTransaction.d.mts +0 -31
  626. package/libESM/api/solana/api/solanaComposeTransaction.mjs +0 -76
  627. package/libESM/api/solana/api/solanaGetAddress.d.mts +0 -15
  628. package/libESM/api/solana/api/solanaGetAddress.mjs +0 -22
  629. package/libESM/api/solana/api/solanaGetPublicKey.d.mts +0 -28
  630. package/libESM/api/solana/api/solanaGetPublicKey.mjs +0 -67
  631. package/libESM/api/solana/api/solanaSignTransaction.d.mts +0 -41
  632. package/libESM/api/solana/api/solanaSignTransaction.mjs +0 -203
  633. package/libESM/api/solana/solanaDefinitions.d.mts +0 -7
  634. package/libESM/api/solana/solanaDefinitions.mjs +0 -33
  635. package/libESM/api/stellar/api/index.d.mts +0 -2
  636. package/libESM/api/stellar/api/index.mjs +0 -2
  637. package/libESM/api/stellar/api/stellarGetAddress.d.mts +0 -15
  638. package/libESM/api/stellar/api/stellarGetAddress.mjs +0 -22
  639. package/libESM/api/stellar/api/stellarSignTransaction.d.mts +0 -26
  640. package/libESM/api/stellar/api/stellarSignTransaction.mjs +0 -66
  641. package/libESM/api/stellar/stellarSignTx.d.mts +0 -7
  642. package/libESM/api/stellar/stellarSignTx.mjs +0 -191
  643. package/libESM/api/telemetryGet.d.mts +0 -14
  644. package/libESM/api/telemetryGet.mjs +0 -24
  645. package/libESM/api/tezos/api/index.d.mts +0 -3
  646. package/libESM/api/tezos/api/index.mjs +0 -3
  647. package/libESM/api/tezos/api/tezosGetAddress.d.mts +0 -15
  648. package/libESM/api/tezos/api/tezosGetAddress.mjs +0 -22
  649. package/libESM/api/tezos/api/tezosGetPublicKey.d.mts +0 -24
  650. package/libESM/api/tezos/api/tezosGetPublicKey.mjs +0 -66
  651. package/libESM/api/tezos/api/tezosSignTransaction.d.mts +0 -14
  652. package/libESM/api/tezos/api/tezosSignTransaction.mjs +0 -30
  653. package/libESM/api/tezos/tezosSignTx.d.mts +0 -71
  654. package/libESM/api/tezos/tezosSignTx.mjs +0 -204
  655. package/libESM/api/thpGetCredentials.d.mts +0 -13
  656. package/libESM/api/thpGetCredentials.mjs +0 -28
  657. package/libESM/api/thpRemoveCredentials.d.mts +0 -15
  658. package/libESM/api/thpRemoveCredentials.mjs +0 -42
  659. package/libESM/api/tron/api/index.d.mts +0 -3
  660. package/libESM/api/tron/api/index.mjs +0 -3
  661. package/libESM/api/tron/api/tronComposeTransaction.d.mts +0 -17
  662. package/libESM/api/tron/api/tronComposeTransaction.mjs +0 -51
  663. package/libESM/api/tron/api/tronGetAddress.d.mts +0 -15
  664. package/libESM/api/tron/api/tronGetAddress.mjs +0 -20
  665. package/libESM/api/tron/api/tronSignTransaction.d.mts +0 -19
  666. package/libESM/api/tron/api/tronSignTransaction.mjs +0 -129
  667. package/libESM/api/tron/tronEncode.d.mts +0 -12
  668. package/libESM/api/tron/tronEncode.mjs +0 -77
  669. package/libESM/api/tron/tronProtobuf.d.mts +0 -5
  670. package/libESM/api/unlockPath.d.mts +0 -12
  671. package/libESM/api/unlockPath.mjs +0 -31
  672. package/libESM/api/verifyMessage.d.mts +0 -16
  673. package/libESM/api/verifyMessage.mjs +0 -46
  674. package/libESM/api/wipeDevice.d.mts +0 -21
  675. package/libESM/api/wipeDevice.mjs +0 -47
  676. package/libESM/backend/BackendManager.d.mts +0 -24
  677. package/libESM/backend/BackendManager.mjs +0 -137
  678. package/libESM/backend/Blockchain.d.mts +0 -81
  679. package/libESM/backend/Blockchain.mjs +0 -232
  680. package/libESM/backend/BlockchainLink.d.mts +0 -9
  681. package/libESM/backend/BlockchainLink.mjs +0 -13
  682. package/libESM/backend/fees/BitcoinFeeLevels.d.mts +0 -19
  683. package/libESM/backend/fees/BitcoinFeeLevels.mjs +0 -43
  684. package/libESM/backend/fees/EthereumFeeLevels.d.mts +0 -17
  685. package/libESM/backend/fees/EthereumFeeLevels.mjs +0 -52
  686. package/libESM/backend/fees/MiscFeeLevels.d.mts +0 -18
  687. package/libESM/backend/fees/MiscFeeLevels.mjs +0 -25
  688. package/libESM/backend/fees/index.d.mts +0 -5
  689. package/libESM/backend/fees/index.mjs +0 -30
  690. package/libESM/core/AbstractMethod.d.mts +0 -65
  691. package/libESM/core/AbstractMethod.mjs +0 -153
  692. package/libESM/core/index.d.mts +0 -27
  693. package/libESM/core/index.mjs +0 -795
  694. package/libESM/core/method.d.mts +0 -3
  695. package/libESM/core/method.mjs +0 -19
  696. package/libESM/core/method.native.d.mts +0 -2
  697. package/libESM/core/method.native.mjs +0 -29
  698. package/libESM/core/onCallFirmwareUpdate.d.mts +0 -39
  699. package/libESM/core/onCallFirmwareUpdate.mjs +0 -436
  700. package/libESM/data/coinInfo.d.mts +0 -374
  701. package/libESM/data/coinInfo.mjs +0 -183
  702. package/libESM/data/config.d.mts +0 -8
  703. package/libESM/data/config.mjs +0 -265
  704. package/libESM/data/defaultFeeLevels.d.mts +0 -18
  705. package/libESM/data/defaultFeeLevels.mjs +0 -174
  706. package/libESM/data/firmwareInfo.d.mts +0 -41
  707. package/libESM/data/firmwareInfo.mjs +0 -411
  708. package/libESM/data/firmwareReleaseStore.d.mts +0 -10
  709. package/libESM/data/firmwareReleaseStore.mjs +0 -16
  710. package/libESM/data/localFirmwareStore.d.mts +0 -3
  711. package/libESM/data/protobufLoader.d.mts +0 -1
  712. package/libESM/data/protobufLoader.mjs +0 -29
  713. package/libESM/data/settingsStore.d.mts +0 -6
  714. package/libESM/data/settingsStore.mjs +0 -21
  715. package/libESM/device/Device.d.mts +0 -237
  716. package/libESM/device/Device.mjs +0 -729
  717. package/libESM/device/DeviceCommands.d.mts +0 -77
  718. package/libESM/device/DeviceCommands.mjs +0 -245
  719. package/libESM/device/DeviceCurrentSession.d.mts +0 -3208
  720. package/libESM/device/DeviceCurrentSession.mjs +0 -240
  721. package/libESM/device/DeviceList.d.mts +0 -68
  722. package/libESM/device/DeviceList.mjs +0 -246
  723. package/libESM/device/TransportList.d.mts +0 -9
  724. package/libESM/device/TransportList.mjs +0 -41
  725. package/libESM/device/TransportManager.d.mts +0 -30
  726. package/libESM/device/TransportManager.mjs +0 -142
  727. package/libESM/device/calculateRevisionForDevice.d.mts +0 -7
  728. package/libESM/device/calculateRevisionForDevice.mjs +0 -19
  729. package/libESM/device/checkFirmwareRevision.d.mts +0 -12
  730. package/libESM/device/checkFirmwareRevision.mjs +0 -75
  731. package/libESM/device/resolveDescriptorForTaproot.d.mts +0 -14
  732. package/libESM/device/resolveDescriptorForTaproot.mjs +0 -25
  733. package/libESM/device/thp/handshake.d.mts +0 -3
  734. package/libESM/device/thp/handshake.mjs +0 -100
  735. package/libESM/device/thp/index.d.mts +0 -5
  736. package/libESM/device/thp/index.mjs +0 -65
  737. package/libESM/device/thp/pairing.d.mts +0 -16
  738. package/libESM/device/thp/pairing.mjs +0 -237
  739. package/libESM/device/thp/session.d.mts +0 -2
  740. package/libESM/device/thp/session.mjs +0 -27
  741. package/libESM/device/thp/thpCall.d.mts +0 -40
  742. package/libESM/device/thp/thpCall.mjs +0 -58
  743. package/libESM/device/validateMessageSize.d.mts +0 -2
  744. package/libESM/device/validateMessageSize.mjs +0 -9
  745. package/libESM/device/workflow/changeLanguage.d.mts +0 -14
  746. package/libESM/device/workflow/changeLanguage.mjs +0 -59
  747. package/libESM/device/workflow/checkFirmwareHash.d.mts +0 -9
  748. package/libESM/device/workflow/checkFirmwareHash.mjs +0 -86
  749. package/libESM/device/workflow/checkFirmwareHashWithRetries.d.mts +0 -8
  750. package/libESM/device/workflow/checkFirmwareHashWithRetries.mjs +0 -36
  751. package/libESM/device/workflow/handshake.d.mts +0 -9
  752. package/libESM/device/workflow/handshake.mjs +0 -55
  753. package/libESM/device/workflow/trezorPushNotification.d.mts +0 -2
  754. package/libESM/device/workflow/trezorPushNotification.mjs +0 -73
  755. package/libESM/device/workflow/validateState.d.mts +0 -2
  756. package/libESM/device/workflow/validateState.mjs +0 -153
  757. package/libESM/events/ui-promise.d.mts +0 -22
  758. package/libESM/exports.d.mts +0 -3
  759. package/libESM/exports.mjs +0 -3
  760. package/libESM/impl/core-in-module.d.mts +0 -27
  761. package/libESM/impl/core-in-module.mjs +0 -173
  762. package/libESM/index.browser.d.mts +0 -9
  763. package/libESM/index.browser.mjs +0 -50
  764. package/libESM/index.d.mts +0 -6
  765. package/libESM/index.mjs +0 -32
  766. package/libESM/index.renderer.d.mts +0 -6
  767. package/libESM/index.renderer.mjs +0 -19
  768. package/libESM/tsconfig.libESM.tsbuildinfo +0 -1
  769. package/libESM/types/idevice.d.mts +0 -109
  770. package/libESM/types/typed-call-provider.d.mts +0 -29
  771. package/libESM/types/workflow.d.mts +0 -16
  772. package/libESM/utils/accountUtils.d.mts +0 -10
  773. package/libESM/utils/accountUtils.mjs +0 -83
  774. package/libESM/utils/addressUtils.d.mts +0 -2
  775. package/libESM/utils/assetUtils.d.mts +0 -13
  776. package/libESM/utils/assetUtils.mjs +0 -56
  777. package/libESM/utils/assets.browser.d.mts +0 -1
  778. package/libESM/utils/assets.browser.mjs +0 -1
  779. package/libESM/utils/assets.d.mts +0 -2
  780. package/libESM/utils/assets.mjs +0 -13
  781. package/libESM/utils/assets.native.d.mts +0 -2
  782. package/libESM/utils/assets.native.mjs +0 -23
  783. package/libESM/utils/assetsTypes.d.mts +0 -5
  784. package/libESM/utils/buildOutputDescriptor.d.mts +0 -12
  785. package/libESM/utils/deviceFeaturesUtils.d.mts +0 -7
  786. package/libESM/utils/deviceFeaturesUtils.mjs +0 -109
  787. package/libESM/utils/ethereumUtils.d.mts +0 -3
  788. package/libESM/utils/firmwareReleaseConfigUtils.d.mts +0 -19
  789. package/libESM/utils/firmwareReleaseConfigUtils.mjs +0 -131
  790. package/libESM/utils/firmwareUtils.d.mts +0 -13
  791. package/libESM/utils/firmwareUtils.mjs +0 -54
  792. package/libESM/utils/formatUtils.d.mts +0 -15
  793. package/libESM/utils/formatUtils.mjs +0 -45
  794. package/libESM/utils/hdnodeUtils.d.mts +0 -6
  795. package/libESM/utils/hdnodeUtils.mjs +0 -62
  796. package/libESM/utils/pathUtils.d.mts +0 -17
  797. package/libESM/utils/pathUtils.mjs +0 -141
  798. package/libESM/utils/paymentRequest.d.mts +0 -8
  799. package/libESM/utils/paymentRequest.mjs +0 -25
  800. package/libESM/utils/uiPromiseManager.d.mts +0 -8
  801. package/libESM/workers/workers.browser.d.mts +0 -10
  802. package/libESM/workers/workers.browser.mjs +0 -16
  803. package/libESM/workers/workers.d.mts +0 -10
  804. package/libESM/workers/workers.mjs +0 -8
  805. package/libESM/workers/workers.native.d.mts +0 -7
  806. package/libESM/workers/workers.native.mjs +0 -7
  807. /package/{libESM/api/cardano/cardanoTokenBundle.mjs → lib/api/cardano/cardanoTokenBundle.js} +0 -0
  808. /package/{libESM/api/cardano/cardanoWitnesses.mjs → lib/api/cardano/cardanoWitnesses.js} +0 -0
  809. /package/{libESM/api/firmware/calculateFirmwareHash.mjs → lib/api/firmware/calculateFirmwareHash.js} +0 -0
  810. /package/{libESM/api/firmware/modifyFirmware.mjs → lib/api/firmware/modifyFirmware.js} +0 -0
  811. /package/{libESM/api/firmware/parseFirmwareHeaders.mjs → lib/api/firmware/parseFirmwareHeaders.js} +0 -0
  812. /package/{libESM/api/tron/tronProtobuf.mjs → lib/api/tron/tronProtobuf.js} +0 -0
  813. /package/{libESM/data/localFirmwareStore.mjs → lib/data/localFirmwareStore.js} +0 -0
  814. /package/{libESM/events/ui-promise.mjs → lib/events/ui-promise.js} +0 -0
  815. /package/{libESM/types/idevice.mjs → lib/types/idevice.js} +0 -0
  816. /package/{libESM/types/typed-call-provider.mjs → lib/types/typed-call-provider.js} +0 -0
  817. /package/{libESM/types/workflow.mjs → lib/types/workflow.js} +0 -0
  818. /package/{libESM/utils/addressUtils.mjs → lib/utils/addressUtils.js} +0 -0
  819. /package/{libESM/utils/assetsTypes.mjs → lib/utils/assetsTypes.js} +0 -0
  820. /package/{libESM/utils/buildOutputDescriptor.mjs → lib/utils/buildOutputDescriptor.js} +0 -0
  821. /package/{libESM/utils/ethereumUtils.mjs → lib/utils/ethereumUtils.js} +0 -0
  822. /package/{libESM/utils/uiPromiseManager.mjs → lib/utils/uiPromiseManager.js} +0 -0
@@ -0,0 +1,242 @@
1
+ import { sha256 } from "@noble/hashes/sha2.js";
2
+ import { bytesToHex, concatBytes, randomBytes } from "@noble/hashes/utils.js";
3
+ import { DEVICE } from "@trezor/connect-common";
4
+ import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
5
+ import { ThpPairingMethod, thp as protocolThp } from "@trezor/protocol";
6
+ import { createDeferred, resolveAfter } from "@trezor/utils";
7
+ import { abortThpWorkflow, thpCall } from "./thpCall.js";
8
+ import * as settingsStore from "../../data/settingsStore.js";
9
+ import { sanitizeString } from "../../utils/formatUtils.js";
10
+ const sha256Hex = (...parts) => bytesToHex(sha256(concatBytes(...parts)));
11
+ const processQrCodeTag = async (device, value) => {
12
+ const thpState = device.getThpState();
13
+ if (!thpState?.handshakeCredentials) {
14
+ throw ERRORS.TypedError('Device_ThpStateMissing');
15
+ }
16
+ const tagSha = sha256Hex(thpState.handshakeCredentials.handshakeHash, Buffer.from(value, 'hex'));
17
+ const qrCodeSecret = await thpCall(device, 'ThpQrCodeTag', {
18
+ tag: tagSha
19
+ });
20
+ protocolThp.validateQrCodeTag(thpState.handshakeCredentials, value, qrCodeSecret.message.secret);
21
+ return qrCodeSecret;
22
+ };
23
+ const processNfcTag = async (device, value) => {
24
+ const thpState = device.getThpState();
25
+ if (!thpState?.handshakeCredentials) {
26
+ throw ERRORS.TypedError('Device_ThpStateMissing');
27
+ }
28
+ if (!thpState?.nfcSecret) {
29
+ throw new Error('missing nfcSecret');
30
+ }
31
+ const tagSha = sha256Hex(Buffer.from([protocolThp.ThpPairingMethod.NFC]), thpState.handshakeCredentials.handshakeHash, Buffer.from(value, 'hex'));
32
+ const nfcTagTrezor = await thpCall(device, 'ThpNfcTagHost', {
33
+ tag: tagSha
34
+ });
35
+ protocolThp.validateNfcTag(thpState.handshakeCredentials, nfcTagTrezor.message.tag, thpState.nfcSecret);
36
+ return nfcTagTrezor;
37
+ };
38
+ const processCodeEntry = async (device, value) => {
39
+ const codeValue = Buffer.from(value, 'ascii');
40
+ const thpState = device.getThpState();
41
+ if (!thpState?.handshakeCredentials) {
42
+ throw ERRORS.TypedError('Device_ThpStateMissing');
43
+ }
44
+ const hostKeys = protocolThp.getCpaceHostKeys(codeValue, thpState.handshakeCredentials.handshakeHash);
45
+ const tag = protocolThp.getSharedSecret(thpState.handshakeCredentials.trezorCpacePublicKey, hostKeys.privateKey).toString('hex');
46
+ const codeEntrySecret = await thpCall(device, 'ThpCodeEntryCpaceHostTag', {
47
+ tag,
48
+ cpace_host_public_key: hostKeys.publicKey.toString('hex')
49
+ });
50
+ protocolThp.validateCodeEntryTag(thpState.handshakeCredentials, value, codeEntrySecret.message.secret);
51
+ return codeEntrySecret;
52
+ };
53
+ const processThpPairingResponse = (device, payload) => {
54
+ if ('selectedMethod' in payload) {
55
+ const selectedMethod = protocolThp.getThpPairingMethod(payload.selectedMethod);
56
+ device.getThpState()?.setPairingMethod(selectedMethod);
57
+ return thpCall(device, 'ThpSelectMethod', {
58
+ selected_pairing_method: selectedMethod
59
+ });
60
+ }
61
+ const selectedMethod = device.getThpState()?.pairingMethod;
62
+ if (selectedMethod === ThpPairingMethod.QrCode) {
63
+ return processQrCodeTag(device, payload.tag);
64
+ }
65
+ if (selectedMethod === ThpPairingMethod.NFC) {
66
+ return processNfcTag(device, payload.tag);
67
+ }
68
+ if (selectedMethod === ThpPairingMethod.CodeEntry) {
69
+ return processCodeEntry(device, payload.tag);
70
+ }
71
+ throw ERRORS.TypedError('Device_ThpPairingMethodsException');
72
+ };
73
+ const waitForPairingCancel = device => {
74
+ const readAbort = new AbortController();
75
+ device.getThpState()?.setExpectedResponses([0x04]);
76
+ const readCancel = device.getCurrentSession().receive({
77
+ signal: readAbort.signal
78
+ });
79
+ return {
80
+ readAbort,
81
+ readCancel
82
+ };
83
+ };
84
+ const waitForPairingTag = async device => {
85
+ const thpState = device.getThpState();
86
+ if (!thpState?.handshakeCredentials) {
87
+ throw ERRORS.TypedError('Device_ThpStateMissing');
88
+ }
89
+ if (thpState.pairingMethod === undefined) {
90
+ throw ERRORS.TypedError('Device_ThpPairingMethodsException');
91
+ }
92
+ const dfd = createDeferred();
93
+ const {
94
+ readAbort,
95
+ readCancel
96
+ } = waitForPairingCancel(device);
97
+ const cancelResult = readCancel.then(readResult => {
98
+ if (readResult.success) {
99
+ let code, message;
100
+ const {
101
+ payload
102
+ } = readResult;
103
+ if (payload.type === 'Failure') {
104
+ code = payload.message.code;
105
+ message = payload.message.message;
106
+ } else {
107
+ message = `Unexpected message type: ${readResult.payload.type}`;
108
+ }
109
+ dfd.resolve({
110
+ error: ERRORS.TypedError(code || 'ThpUnknownError', message)
111
+ });
112
+ }
113
+ }).catch(() => {});
114
+ thpState.setPairingTagPromise({
115
+ abort: async () => {
116
+ readAbort.abort();
117
+ await cancelResult;
118
+ }
119
+ });
120
+ const payload = {
121
+ availableMethods: thpState.handshakeCredentials.pairingMethods,
122
+ selectedMethod: thpState.pairingMethod,
123
+ nfcData: thpState.nfcData?.toString('hex')
124
+ };
125
+ device.prompt(DEVICE.THP_PAIRING, {
126
+ payload
127
+ }).then(response => {
128
+ if (response.success) {
129
+ dfd.resolve(response.payload);
130
+ } else {
131
+ abortThpWorkflow(device).then(() => {
132
+ dfd.resolve({
133
+ error: ERRORS.TypedError('ThpUnknownError', response.error.message)
134
+ });
135
+ });
136
+ }
137
+ });
138
+ const pairingResponse = await dfd.promise;
139
+ readAbort.abort();
140
+ await readCancel;
141
+ thpState.setPairingTagPromise(undefined);
142
+ if ('error' in pairingResponse) {
143
+ throw pairingResponse.error;
144
+ }
145
+ await resolveAfter(500);
146
+ return processThpPairingResponse(device, pairingResponse).catch(e => {
147
+ if (e.code === 'Failure_FirmwareError' || e.code === 'Failure_DataError') {
148
+ if ('tag' in pairingResponse) {
149
+ device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
150
+ status: 'invalid-tag',
151
+ tag: pairingResponse.tag
152
+ });
153
+ }
154
+ throw ERRORS.TypedError('Device_ThpPairingTagInvalid', e.message);
155
+ }
156
+ throw ERRORS.TypedError(e.code, e.message);
157
+ });
158
+ };
159
+ export const getThpCredentials = async (device, autoconnect = false) => {
160
+ const thpState = device.getThpState();
161
+ if (!thpState?.handshakeCredentials) {
162
+ throw ERRORS.TypedError('Device_ThpStateMissing');
163
+ }
164
+ const credentials = await thpCall(device, 'ThpCredentialRequest', {
165
+ autoconnect,
166
+ host_static_public_key: thpState.handshakeCredentials.hostStaticPublicKey.toString('hex'),
167
+ credential: thpState.pairingCredentials[0]?.credential
168
+ });
169
+ const host_static_key = thpState.handshakeCredentials.staticKey.toString('hex');
170
+ return {
171
+ ...credentials.message,
172
+ autoconnect,
173
+ host_static_key
174
+ };
175
+ };
176
+ export const thpPairingEnd = async device => {
177
+ const result = await thpCall(device, 'ThpEndRequest', {});
178
+ device.getThpState()?.setPhase('paired');
179
+ return result;
180
+ };
181
+ export const thpPairing = async device => {
182
+ const thpState = device.getThpState();
183
+ if (!thpState?.handshakeCredentials) {
184
+ throw ERRORS.TypedError('Device_ThpStateMissing');
185
+ }
186
+ if (thpState.isPaired && thpState.pairingMethod !== protocolThp.ThpPairingMethod.SkipPairing) {
187
+ if (!thpState.isAutoconnectPaired) {
188
+ await getThpCredentials(device, false);
189
+ }
190
+ return thpPairingEnd(device);
191
+ }
192
+ const {
193
+ pairingMethods
194
+ } = thpState.handshakeCredentials;
195
+ const selected_pairing_method = pairingMethods[0];
196
+ thpState.setPairingMethod(selected_pairing_method);
197
+ const settings = settingsStore.get('thp');
198
+ await thpCall(device, 'ThpPairingRequest', {
199
+ host_name: sanitizeString(settings?.hostName) || 'Unknown hostName',
200
+ app_name: sanitizeString(settings?.appName) || 'Unknown appName'
201
+ });
202
+ const selectMethod = await thpCall(device, 'ThpSelectMethod', {
203
+ selected_pairing_method
204
+ });
205
+ if (selectMethod.type === 'ThpEndResponse') {
206
+ thpState.setIsPaired(true);
207
+ device.getThpState()?.setPhase('paired');
208
+ return;
209
+ }
210
+ if (selectMethod.type === 'ThpCodeEntryCommitment') {
211
+ const codeEntryChallenge = Buffer.from(randomBytes(32));
212
+ const handshakeCommitment = Buffer.from(selectMethod.message.commitment, 'hex');
213
+ thpState.updateHandshakeCredentials({
214
+ handshakeCommitment,
215
+ codeEntryChallenge
216
+ });
217
+ const codeEntryCpace = await thpCall(device, 'ThpCodeEntryChallenge', {
218
+ challenge: codeEntryChallenge.toString('hex')
219
+ });
220
+ thpState.updateHandshakeCredentials({
221
+ trezorCpacePublicKey: Buffer.from(codeEntryCpace.message.cpace_trezor_public_key, 'hex')
222
+ });
223
+ await waitForPairingTag(device);
224
+ }
225
+ if (selectMethod.type === 'ThpPairingPreparationsFinished') {
226
+ if (thpState.pairingMethod === protocolThp.ThpPairingMethod.NFC) {
227
+ thpState.setNfcSecret(Buffer.from(randomBytes(16)));
228
+ }
229
+ await waitForPairingTag(device);
230
+ }
231
+ const credentials = await getThpCredentials(device, false);
232
+ device.emit(DEVICE.THP_CREDENTIALS_CHANGED, {
233
+ credentials
234
+ });
235
+ const settings1 = settingsStore.get('thp');
236
+ if (settings1) {
237
+ settings1.knownCredentials?.push(credentials);
238
+ }
239
+ thpState.setPairingCredentials([credentials]);
240
+ thpState.setIsPaired(true);
241
+ await thpPairingEnd(device);
242
+ };
@@ -0,0 +1,2 @@
1
+ import type { IDevice } from "../../types/idevice.js";
2
+ export declare const createThpSession: (device: IDevice, deriveCardano: boolean) => Promise<number>;
@@ -0,0 +1,27 @@
1
+ import { thpCall } from "./thpCall.js";
2
+ export const createThpSession = async (device, deriveCardano) => {
3
+ let passphrase;
4
+ if (device.features.passphrase_protection === false) {
5
+ passphrase = {
6
+ passphrase: ''
7
+ };
8
+ } else {
9
+ passphrase = await device.prompt('passphrase', {}).then(promptRes => {
10
+ if (!promptRes.success) {
11
+ return {
12
+ passphrase: ''
13
+ };
14
+ }
15
+ return promptRes.payload.passphraseOnDevice ? {
16
+ on_device: true
17
+ } : {
18
+ passphrase: promptRes.payload.value.normalize('NFKD')
19
+ };
20
+ });
21
+ }
22
+ await thpCall(device, 'ThpCreateNewSession', {
23
+ ...passphrase,
24
+ derive_cardano: deriveCardano
25
+ });
26
+ return 0;
27
+ };
@@ -0,0 +1,31 @@
1
+ import type { thp as protocolThp } from '@trezor/protocol';
2
+ import type { IDevice } from "../../types/idevice.js";
3
+ type ThpTypedCall = {
4
+ ThpCreateChannelRequest: 'ThpCreateChannelResponse';
5
+ ThpHandshakeInitRequest: 'ThpHandshakeInitResponse';
6
+ ThpHandshakeCompletionRequest: 'ThpHandshakeCompletionResponse';
7
+ ThpPairingRequest: 'ThpPairingRequestApproved';
8
+ ThpSelectMethod: ['ThpCodeEntryCommitment', 'ThpEndResponse', 'ThpPairingRequestApproved', 'ThpPairingPreparationsFinished'];
9
+ ThpCodeEntryChallenge: ['ThpCodeEntryCpaceTrezor'];
10
+ ThpCodeEntryCpaceHostTag: 'ThpCodeEntrySecret';
11
+ ThpQrCodeTag: 'ThpQrCodeSecret';
12
+ ThpNfcTagHost: 'ThpNfcTagTrezor';
13
+ ThpCredentialRequest: 'ThpCredentialResponse';
14
+ ThpEndRequest: 'ThpEndResponse';
15
+ ThpCreateNewSession: 'Success';
16
+ };
17
+ type ThpMessage = protocolThp.ThpMessageType & {
18
+ Success: Record<never, never>;
19
+ };
20
+ type TypedPayloadItem<K> = K extends keyof ThpMessage ? {
21
+ type: K;
22
+ message: ThpMessage[K];
23
+ } : never;
24
+ type ExtractFromArray<A extends any[]> = { [K in keyof A]: TypedPayloadItem<A[K]> }[number];
25
+ type MessageKey = keyof ThpTypedCall;
26
+ type TypedPayload<T extends MessageKey> = ThpTypedCall[T] extends any[] ? ExtractFromArray<ThpTypedCall[T]> : TypedPayloadItem<ThpTypedCall[T]>;
27
+ type ThpCallResponse = { [K in keyof ThpTypedCall]: TypedPayload<K> };
28
+ type ThpMessagePayload<T extends MessageKey = MessageKey> = ThpMessage[T];
29
+ export declare const thpCall: <T extends MessageKey>(device: IDevice, name: T, data: ThpMessagePayload<T>) => Promise<ThpCallResponse[T]>;
30
+ export declare const abortThpWorkflow: (device: IDevice) => Promise<void>;
31
+ export {};
@@ -0,0 +1,58 @@
1
+ import { DEVICE } from "@trezor/connect-common";
2
+ import { TypedError } from "@trezor/connect-common/lib/constants/errors.js";
3
+ export const thpCall = async (device, name, data) => {
4
+ const thpState = device.getThpState();
5
+ if (!thpState) {
6
+ throw TypedError('Device_ThpStateMissing');
7
+ }
8
+ const result = await device.getCurrentSession().call(name, data);
9
+ if (!result.success) {
10
+ throw result.error;
11
+ }
12
+ thpState.setCancelablePromise(false);
13
+ if (result.payload.type === 'ButtonRequest') {
14
+ thpState.setCancelablePromise(true);
15
+ if (result.payload.message.code === 'ButtonRequest_PassphraseEntry') {
16
+ device.emit(DEVICE.PASSPHRASE_ON_DEVICE);
17
+ } else {
18
+ device.emit(DEVICE.BUTTON, {
19
+ device,
20
+ payload: result.payload.message
21
+ });
22
+ }
23
+ return thpCall(device, 'ButtonAck', {});
24
+ }
25
+ if (result.payload.type === 'Failure') {
26
+ const {
27
+ code,
28
+ message
29
+ } = result.payload.message;
30
+ throw TypedError(code || 'Failure_UnknownCode', message);
31
+ }
32
+ if (result.payload.type === 'ThpError') {
33
+ const {
34
+ code,
35
+ message
36
+ } = result.payload.message;
37
+ throw TypedError(code, message);
38
+ }
39
+ return result.payload;
40
+ };
41
+ export const abortThpWorkflow = async device => {
42
+ const thpState = device.getThpState();
43
+ if (!thpState || !device.currentRun) {
44
+ return Promise.resolve();
45
+ }
46
+ if (thpState.pairingTagPromise) {
47
+ await thpState.pairingTagPromise.abort();
48
+ await device.getCurrentSession().cancelCall();
49
+ thpState.resetState();
50
+ device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
51
+ status: 'canceled'
52
+ });
53
+ } else if (thpState.cancelablePromise) {
54
+ thpState.sync('send', 'Cancel');
55
+ await device.getCurrentSession().send('Cancel', {});
56
+ await device.currentRun;
57
+ }
58
+ };
@@ -0,0 +1,2 @@
1
+ import type { Device } from "./Device.js";
2
+ export declare const validateModelOneMessageSize: (device: Device, messageHex: string) => void;
@@ -0,0 +1,9 @@
1
+ import { TypedError } from "@trezor/connect-common/lib/constants/errors.js";
2
+ export const validateModelOneMessageSize = (device, messageHex) => {
3
+ if (device.features?.major_version === 1) {
4
+ const byteSize = messageHex.length / 2;
5
+ if (byteSize > 1024) {
6
+ throw TypedError('Method_DataOverflowModelOne');
7
+ }
8
+ }
9
+ };
@@ -0,0 +1,18 @@
1
+ import type { IDevice } from "../../types/idevice.js";
2
+ type Context = {
3
+ device: IDevice;
4
+ } & ({
5
+ language?: undefined;
6
+ binary: ArrayBuffer;
7
+ } | {
8
+ language: string;
9
+ binary?: undefined;
10
+ });
11
+ export declare const changeLanguage: ({
12
+ device,
13
+ language,
14
+ binary
15
+ }: Context) => Promise<{
16
+ message: string;
17
+ }>;
18
+ export {};
@@ -0,0 +1,62 @@
1
+ import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
2
+ import { getLanguage } from "../../data/firmwareInfo.js";
3
+ const uploadTranslationData = async (device, payload) => {
4
+ if (payload === null) {
5
+ const response = await device.getCurrentSession().typedCall('ChangeLanguage', ['Success'], {
6
+ data_length: 0
7
+ });
8
+ return response.message;
9
+ }
10
+ const length = payload.byteLength;
11
+ device.startPiggybackAck();
12
+ let response = await device.getCurrentSession().typedCall('ChangeLanguage', ['DataChunkRequest', 'Success'], {
13
+ data_length: length
14
+ });
15
+ while (response.type !== 'Success') {
16
+ const start = response.message.data_offset;
17
+ const end = response.message.data_offset + response.message.data_length;
18
+ const chunk = payload.slice(start, end);
19
+ response = await device.getCurrentSession().typedCall('DataChunkAck', ['DataChunkRequest', 'Success'], {
20
+ data_chunk: Buffer.from(chunk).toString('hex')
21
+ });
22
+ }
23
+ await device.stopPiggybackAck();
24
+ return response.message;
25
+ };
26
+ export const changeLanguage = async ({
27
+ device,
28
+ language,
29
+ binary
30
+ }) => {
31
+ if (language === 'en-US') {
32
+ return uploadTranslationData(device, null);
33
+ }
34
+ if (binary) {
35
+ return uploadTranslationData(device, binary);
36
+ }
37
+ const version = device.getVersion();
38
+ if (!version) {
39
+ throw ERRORS.TypedError('Runtime', 'changeLanguage: device version unknown');
40
+ }
41
+ if (!device.firmwareType) {
42
+ throw ERRORS.TypedError('Runtime', 'changeLanguage: firmware type unknown');
43
+ }
44
+ if (!device.currentRelease) {
45
+ throw ERRORS.TypedError('Runtime', 'changeLanguage: release not found');
46
+ }
47
+ const {
48
+ translations
49
+ } = device.currentRelease;
50
+ const languageBinPath = translations[language];
51
+ const downloadedBinary = await getLanguage(languageBinPath);
52
+ if (!downloadedBinary) {
53
+ throw ERRORS.TypedError('Runtime', 'changeLanguage: translation not found');
54
+ }
55
+ let dataToSend;
56
+ if (Buffer.isBuffer(downloadedBinary)) {
57
+ dataToSend = new Uint8Array(downloadedBinary).buffer;
58
+ } else {
59
+ dataToSend = downloadedBinary;
60
+ }
61
+ return uploadTranslationData(device, dataToSend);
62
+ };
@@ -0,0 +1,12 @@
1
+ import type { FirmwareHashCheckResult } from '@trezor/connect-common';
2
+ import { type Logger } from '@trezor/utils';
3
+ import type { IDevice } from "../../types/idevice.js";
4
+ type Context = {
5
+ device: IDevice;
6
+ logger: Logger;
7
+ };
8
+ export declare const checkFirmwareHash: ({
9
+ device,
10
+ logger
11
+ }: Context) => Promise<FirmwareHashCheckResult | null>;
12
+ export {};
@@ -0,0 +1,86 @@
1
+ import { randomBytes } from "@noble/hashes/utils.js";
2
+ import { serializeError } from "@trezor/utils";
3
+ import { calculateFirmwareHash, getBinaryOptional, stripFwHeaders } from "../../api/firmware/index.js";
4
+ import { getFirmwareLocation, getReleaseByVersion } from "../../data/firmwareInfo.js";
5
+ import * as settingsStore from "../../data/settingsStore.js";
6
+ import { getFirmwareType } from "../../utils/firmwareUtils.js";
7
+ const createFailResult = (error, errorPayload) => ({
8
+ success: false,
9
+ error,
10
+ errorPayload
11
+ });
12
+ export const checkFirmwareHash = async ({
13
+ device,
14
+ logger
15
+ }) => {
16
+ const enabled = settingsStore.get('enableFirmwareHashCheck');
17
+ if (!enabled) return createFailResult('check-skipped');
18
+ const firmwareVersion = device.getVersion();
19
+ if (firmwareVersion === undefined || !device.features || device.features.bootloader_mode) {
20
+ return null;
21
+ }
22
+ const firmwareType = getFirmwareType(device.features);
23
+ const release = await getReleaseByVersion(device.features, firmwareVersion, firmwareType);
24
+ if (!release) return createFailResult('unknown-release');
25
+ const firmwareLocation = getFirmwareLocation({
26
+ firmwareVersion,
27
+ remotePath: release.url,
28
+ deviceModel: device.features.internal_model,
29
+ firmwareType: getFirmwareType(device.features)
30
+ });
31
+ const {
32
+ baseUrl,
33
+ path
34
+ } = firmwareLocation;
35
+ const timeoutThresholdsPerModel = settingsStore.get('firmwareHashCheckTimeouts');
36
+ if (firmwareVersion === undefined || !device.features || device.features.bootloader_mode) {
37
+ return null;
38
+ }
39
+ const checkSupported = !device.unavailableCapabilities.getFirmwareHash;
40
+ if (!checkSupported) return createFailResult('check-unsupported');
41
+ const firmwareBinary = await getBinaryOptional({
42
+ baseUrl,
43
+ path,
44
+ release
45
+ });
46
+ if (firmwareBinary === null) {
47
+ return createFailResult('check-unsupported');
48
+ }
49
+ if (firmwareBinary.binary.byteLength < 200) {
50
+ logger.warn(`Firmware binary for hash check suspiciously small (< 200 b)`);
51
+ return createFailResult('check-unsupported');
52
+ }
53
+ const strippedBinary = stripFwHeaders(firmwareBinary.binary);
54
+ const {
55
+ hash: expectedHash,
56
+ challenge
57
+ } = calculateFirmwareHash({
58
+ internal_model: device.features.internal_model,
59
+ firmwareVersion,
60
+ fw: Buffer.from(strippedBinary),
61
+ key: Buffer.from(randomBytes(32))
62
+ });
63
+ try {
64
+ const ts = performance.now();
65
+ const deviceResponse = await device.getCurrentSession().typedCall('GetFirmwareHash', 'FirmwareHash', {
66
+ challenge
67
+ });
68
+ if (!deviceResponse?.message?.hash) {
69
+ return createFailResult('other-error', 'Device response is missing hash');
70
+ }
71
+ if (deviceResponse.message.hash !== expectedHash) {
72
+ return createFailResult('hash-mismatch');
73
+ }
74
+ const duration = performance.now() - ts;
75
+ logger.debug('GetFirmwareHash time', duration);
76
+ const timeoutThreshold = timeoutThresholdsPerModel?.[device.features.internal_model];
77
+ if (timeoutThreshold !== undefined && duration > timeoutThreshold) {
78
+ return createFailResult('takes-too-long');
79
+ }
80
+ return {
81
+ success: true
82
+ };
83
+ } catch (errorPayload) {
84
+ return createFailResult('other-error', serializeError(errorPayload));
85
+ }
86
+ };
@@ -0,0 +1,8 @@
1
+ import { type Logger } from '@trezor/utils';
2
+ import type { IDevice } from "../../types/idevice.js";
3
+ type Context = {
4
+ device: IDevice;
5
+ logger: Logger;
6
+ };
7
+ export declare const checkFirmwareHashWithRetries: (context: Context) => Promise<void>;
8
+ export {};
@@ -0,0 +1,36 @@
1
+ import { FIRMWARE } from "@trezor/connect-common";
2
+ import { isArrayMember } from "@trezor/utils";
3
+ import { checkFirmwareHash } from "./checkFirmwareHash.js";
4
+ const PROBE_CHECK_TIME_RETRIES = 4;
5
+ const probeCheckTime = async context => {
6
+ for (let i = 0; i < PROBE_CHECK_TIME_RETRIES; i++) {
7
+ const result = await checkFirmwareHash(context);
8
+ if (result !== null && (result.success || result.error !== 'takes-too-long')) {
9
+ context.device.setAuthenticityChecks(result);
10
+ return;
11
+ }
12
+ }
13
+ };
14
+ export const checkFirmwareHashWithRetries = async context => {
15
+ const lastResult = context.device.getAuthenticityChecks().firmwareHash;
16
+ const notDoneYet = lastResult === null;
17
+ const attemptsDone = lastResult?.attemptCount ?? 0;
18
+ if (attemptsDone >= FIRMWARE.HASH_CHECK_MAX_ATTEMPTS) return;
19
+ const wasError = lastResult !== null && !lastResult.success;
20
+ const wasErrorRetriable = wasError && isArrayMember(lastResult.error, FIRMWARE.HASH_CHECK_RETRIABLE_ERRORS);
21
+ const lastErrorPayload = wasError ? lastResult?.errorPayload : null;
22
+ if (notDoneYet || wasErrorRetriable) {
23
+ const result = await checkFirmwareHash(context);
24
+ context.device.setAuthenticityChecks(result);
25
+ if (result === null) return;
26
+ result.attemptCount = attemptsDone + 1;
27
+ if (!result.success && result.error === 'takes-too-long') {
28
+ await probeCheckTime(context);
29
+ }
30
+ if (result.success && lastErrorPayload) {
31
+ result.warningPayload = {
32
+ lastErrorPayload
33
+ };
34
+ }
35
+ }
36
+ };
@@ -0,0 +1,13 @@
1
+ import { type Logger } from '@trezor/utils';
2
+ import type { WorkflowContext } from "../../types/workflow.js";
3
+ type Context = {
4
+ device: WorkflowContext['device'];
5
+ signal: AbortSignal;
6
+ logger?: Logger;
7
+ };
8
+ export declare const handshakeCancel: ({
9
+ device,
10
+ logger,
11
+ signal
12
+ }: Context) => Promise<void>;
13
+ export {};
@@ -0,0 +1,55 @@
1
+ import { TypedError } from "@trezor/connect-common/lib/constants/errors.js";
2
+ import { PROTOCOL_MALFORMED } from "@trezor/protocol/lib/errors.js";
3
+ import { TRANSPORT_ERROR } from "@trezor/transport-common";
4
+ import { resolveAfter, versionUtils } from "@trezor/utils";
5
+ const CANCEL_TIMEOUT = 1_000;
6
+ const ATTEMPTS_LIMIT = 10;
7
+ const isLegacyBridge = transport => transport.name === 'BridgeTransport' && !versionUtils.isNewerOrEqual(transport.version, '3.0.0');
8
+ export const handshakeCancel = async ({
9
+ device,
10
+ logger,
11
+ signal
12
+ }) => {
13
+ if (device.features || device.getThpState()?.properties) {
14
+ return;
15
+ }
16
+ const timeout = device.possibleT1 ? CANCEL_TIMEOUT : undefined;
17
+ logger?.debug('handshake Cancel start');
18
+ const send = await device.getCurrentSession().send('Cancel', {}, {
19
+ signal,
20
+ timeout
21
+ });
22
+ if (!send.success) {
23
+ logger?.debug(`handshake Cancel send error ${send.error}`);
24
+ return;
25
+ }
26
+ logger?.debug('handshake Cancel sent');
27
+ for (let attempt = 0; attempt < ATTEMPTS_LIMIT; ++attempt) {
28
+ logger?.debug(`handshake Cancel read attempt ${attempt}`);
29
+ const result = await device.getCurrentSession().receive({
30
+ signal,
31
+ timeout: CANCEL_TIMEOUT
32
+ });
33
+ if (!result.success && result.error.message === TRANSPORT_ERROR.ABORTED_BY_TIMEOUT) {
34
+ if (isLegacyBridge(device.transport)) {
35
+ await resolveAfter(501);
36
+ }
37
+ await device.acquire();
38
+ }
39
+ if (!result.success && result.error.message !== PROTOCOL_MALFORMED) {
40
+ logger?.debug(`handshake Cancel read error: ${result.error}`);
41
+ return;
42
+ } else if (result.success) {
43
+ logger?.debug(`handshake Cancel read success: ${result.payload.type}`);
44
+ if (result.payload.type === 'Failure' && result.payload.message.code === 'Failure_InvalidProtocol') {
45
+ logger?.debug(`handshake Cancel protocol v2 detected`);
46
+ device.setupThp();
47
+ }
48
+ if (result.payload.type === 'Failure' && result.payload.message.code === 'Failure_Busy') {
49
+ throw TypedError(result.payload.message.code, result.payload.message.message);
50
+ }
51
+ return;
52
+ }
53
+ }
54
+ logger?.debug(`handshake Cancel attempts limit reached`);
55
+ };