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

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 (432) hide show
  1. package/CHANGELOG.md +159 -63
  2. package/README.md +5 -3
  3. package/lib/exports.d.ts +1 -0
  4. package/lib/exports.js +1 -0
  5. package/lib/impl/core-in-module-native.d.ts +7 -0
  6. package/lib/impl/core-in-module-native.js +11 -0
  7. package/lib/impl/core-in-module-node.d.ts +8 -0
  8. package/lib/impl/core-in-module-node.js +12 -0
  9. package/lib/impl/core-in-module-web.d.ts +9 -0
  10. package/lib/impl/core-in-module-web.js +26 -0
  11. package/lib/index.browser.d.ts +7 -0
  12. package/lib/index.browser.js +10 -0
  13. package/lib/index.d.ts +4 -0
  14. package/lib/index.js +5 -0
  15. package/lib/index.native.d.ts +4 -0
  16. package/lib/index.native.js +5 -0
  17. package/package.json +30 -83
  18. package/libESM/api/applyFlags.d.mts +0 -20
  19. package/libESM/api/applyFlags.mjs +0 -36
  20. package/libESM/api/applySettings.d.mts +0 -20
  21. package/libESM/api/applySettings.mjs +0 -55
  22. package/libESM/api/authenticateDevice.d.mts +0 -9
  23. package/libESM/api/authenticateDevice.mjs +0 -108
  24. package/libESM/api/authorizeCoinjoin.d.mts +0 -11
  25. package/libESM/api/authorizeCoinjoin.mjs +0 -44
  26. package/libESM/api/backupDevice.d.mts +0 -19
  27. package/libESM/api/backupDevice.mjs +0 -36
  28. package/libESM/api/bitcoin/TransactionComposer.d.mts +0 -46
  29. package/libESM/api/bitcoin/TransactionComposer.mjs +0 -139
  30. package/libESM/api/bitcoin/createPendingTx.d.mts +0 -33
  31. package/libESM/api/bitcoin/createPendingTx.mjs +0 -54
  32. package/libESM/api/bitcoin/enhanceSignTx.d.mts +0 -2
  33. package/libESM/api/bitcoin/enhanceSignTx.mjs +0 -23
  34. package/libESM/api/bitcoin/index.d.mts +0 -9
  35. package/libESM/api/bitcoin/index.mjs +0 -9
  36. package/libESM/api/bitcoin/inputs.d.mts +0 -6
  37. package/libESM/api/bitcoin/inputs.mjs +0 -75
  38. package/libESM/api/bitcoin/outputs.d.mts +0 -5
  39. package/libESM/api/bitcoin/outputs.mjs +0 -128
  40. package/libESM/api/bitcoin/refTx.d.mts +0 -17
  41. package/libESM/api/bitcoin/refTx.mjs +0 -252
  42. package/libESM/api/bitcoin/signtx.d.mts +0 -22
  43. package/libESM/api/bitcoin/signtx.mjs +0 -213
  44. package/libESM/api/bitcoin/signtxLegacy.d.mts +0 -3
  45. package/libESM/api/bitcoin/signtxLegacy.mjs +0 -179
  46. package/libESM/api/bitcoin/signtxVerify.d.mts +0 -12
  47. package/libESM/api/bitcoin/signtxVerify.mjs +0 -86
  48. package/libESM/api/bitcoin/transactionBytes.d.mts +0 -3
  49. package/libESM/api/bitcoin/transactionBytes.mjs +0 -65
  50. package/libESM/api/bleUnpair.d.mts +0 -11
  51. package/libESM/api/bleUnpair.mjs +0 -35
  52. package/libESM/api/blockchainDisconnect.d.mts +0 -16
  53. package/libESM/api/blockchainDisconnect.mjs +0 -39
  54. package/libESM/api/blockchainEstimateFee.d.mts +0 -14
  55. package/libESM/api/blockchainEstimateFee.mjs +0 -106
  56. package/libESM/api/blockchainEvmRpcCall.d.mts +0 -17
  57. package/libESM/api/blockchainEvmRpcCall.mjs +0 -61
  58. package/libESM/api/blockchainGetAccountBalanceHistory.d.mts +0 -14
  59. package/libESM/api/blockchainGetAccountBalanceHistory.mjs +0 -64
  60. package/libESM/api/blockchainGetContractInfo.d.mts +0 -14
  61. package/libESM/api/blockchainGetContractInfo.mjs +0 -50
  62. package/libESM/api/blockchainGetCurrentFiatRates.d.mts +0 -18
  63. package/libESM/api/blockchainGetCurrentFiatRates.mjs +0 -53
  64. package/libESM/api/blockchainGetFiatRatesForTimestamps.d.mts +0 -21
  65. package/libESM/api/blockchainGetFiatRatesForTimestamps.mjs +0 -59
  66. package/libESM/api/blockchainGetInfo.d.mts +0 -13
  67. package/libESM/api/blockchainGetInfo.mjs +0 -41
  68. package/libESM/api/blockchainGetTransactions.d.mts +0 -15
  69. package/libESM/api/blockchainGetTransactions.mjs +0 -47
  70. package/libESM/api/blockchainSetCustomBackend.d.mts +0 -13
  71. package/libESM/api/blockchainSetCustomBackend.mjs +0 -41
  72. package/libESM/api/blockchainSubscribe.d.mts +0 -17
  73. package/libESM/api/blockchainSubscribe.mjs +0 -68
  74. package/libESM/api/blockchainSubscribeFiatRates.d.mts +0 -17
  75. package/libESM/api/blockchainSubscribeFiatRates.mjs +0 -47
  76. package/libESM/api/blockchainUnsubscribe.d.mts +0 -17
  77. package/libESM/api/blockchainUnsubscribe.mjs +0 -68
  78. package/libESM/api/blockchainUnsubscribeFiatRates.d.mts +0 -15
  79. package/libESM/api/blockchainUnsubscribeFiatRates.mjs +0 -41
  80. package/libESM/api/blockchainValidateEvmRpcUrl.d.mts +0 -17
  81. package/libESM/api/blockchainValidateEvmRpcUrl.mjs +0 -54
  82. package/libESM/api/cancelCoinjoinAuthorization.d.mts +0 -11
  83. package/libESM/api/cancelCoinjoinAuthorization.mjs +0 -31
  84. package/libESM/api/cardano/api/cardanoComposeTransaction.d.mts +0 -10
  85. package/libESM/api/cardano/api/cardanoComposeTransaction.mjs +0 -79
  86. package/libESM/api/cardano/api/cardanoGetAddress.d.mts +0 -30
  87. package/libESM/api/cardano/api/cardanoGetAddress.mjs +0 -116
  88. package/libESM/api/cardano/api/cardanoGetNativeScriptHash.d.mts +0 -12
  89. package/libESM/api/cardano/api/cardanoGetNativeScriptHash.mjs +0 -66
  90. package/libESM/api/cardano/api/cardanoGetPublicKey.d.mts +0 -20
  91. package/libESM/api/cardano/api/cardanoGetPublicKey.mjs +0 -72
  92. package/libESM/api/cardano/api/cardanoSignMessage.d.mts +0 -27
  93. package/libESM/api/cardano/api/cardanoSignMessage.mjs +0 -96
  94. package/libESM/api/cardano/api/cardanoSignTransaction.d.mts +0 -81
  95. package/libESM/api/cardano/api/cardanoSignTransaction.mjs +0 -298
  96. package/libESM/api/cardano/api/index.d.mts +0 -6
  97. package/libESM/api/cardano/api/index.mjs +0 -6
  98. package/libESM/api/cardano/cardanoAddressParameters.d.mts +0 -6
  99. package/libESM/api/cardano/cardanoAddressParameters.mjs +0 -79
  100. package/libESM/api/cardano/cardanoAuxiliaryData.d.mts +0 -4
  101. package/libESM/api/cardano/cardanoAuxiliaryData.mjs +0 -74
  102. package/libESM/api/cardano/cardanoCertificate.d.mts +0 -13
  103. package/libESM/api/cardano/cardanoCertificate.mjs +0 -142
  104. package/libESM/api/cardano/cardanoInputs.d.mts +0 -25
  105. package/libESM/api/cardano/cardanoInputs.mjs +0 -39
  106. package/libESM/api/cardano/cardanoOutputs.d.mts +0 -40
  107. package/libESM/api/cardano/cardanoOutputs.mjs +0 -70
  108. package/libESM/api/cardano/cardanoTokenBundle.d.mts +0 -12
  109. package/libESM/api/cardano/cardanoTokenBundle.mjs +0 -21
  110. package/libESM/api/cardano/cardanoUtils.d.mts +0 -9
  111. package/libESM/api/cardano/cardanoUtils.mjs +0 -101
  112. package/libESM/api/cardano/cardanoWitnesses.d.mts +0 -4
  113. package/libESM/api/cardano/cardanoWitnesses.mjs +0 -47
  114. package/libESM/api/changeLanguage.d.mts +0 -18
  115. package/libESM/api/changeLanguage.mjs +0 -47
  116. package/libESM/api/changePin.d.mts +0 -11
  117. package/libESM/api/changePin.mjs +0 -25
  118. package/libESM/api/changeWipeCode.d.mts +0 -11
  119. package/libESM/api/changeWipeCode.mjs +0 -27
  120. package/libESM/api/cipherKeyValue.d.mts +0 -15
  121. package/libESM/api/cipherKeyValue.mjs +0 -51
  122. package/libESM/api/common/AbstractMiscGetAddress.d.mts +0 -35
  123. package/libESM/api/common/AbstractMiscGetAddress.mjs +0 -102
  124. package/libESM/api/common/Discovery.d.mts +0 -33
  125. package/libESM/api/common/Discovery.mjs +0 -116
  126. package/libESM/api/common/paramsValidator.d.mts +0 -23
  127. package/libESM/api/common/paramsValidator.mjs +0 -134
  128. package/libESM/api/common/requestExistingAccounts.d.mts +0 -9
  129. package/libESM/api/common/requestExistingAccounts.mjs +0 -20
  130. package/libESM/api/composeTransaction.d.mts +0 -36
  131. package/libESM/api/composeTransaction.mjs +0 -386
  132. package/libESM/api/discoverAccounts.d.mts +0 -38
  133. package/libESM/api/discoverAccounts.mjs +0 -363
  134. package/libESM/api/ethereum/api/ethereumGetAddress.d.mts +0 -28
  135. package/libESM/api/ethereum/api/ethereumGetAddress.mjs +0 -135
  136. package/libESM/api/ethereum/api/ethereumGetPublicKey.d.mts +0 -48
  137. package/libESM/api/ethereum/api/ethereumGetPublicKey.mjs +0 -90
  138. package/libESM/api/ethereum/api/ethereumSignMessage.d.mts +0 -27
  139. package/libESM/api/ethereum/api/ethereumSignMessage.mjs +0 -64
  140. package/libESM/api/ethereum/api/ethereumSignTransaction.d.mts +0 -83
  141. package/libESM/api/ethereum/api/ethereumSignTransaction.mjs +0 -148
  142. package/libESM/api/ethereum/api/ethereumSignTypedData.d.mts +0 -116
  143. package/libESM/api/ethereum/api/ethereumSignTypedData.mjs +0 -202
  144. package/libESM/api/ethereum/api/ethereumVerifyMessage.d.mts +0 -12
  145. package/libESM/api/ethereum/api/ethereumVerifyMessage.mjs +0 -33
  146. package/libESM/api/ethereum/api/index.d.mts +0 -6
  147. package/libESM/api/ethereum/api/index.mjs +0 -6
  148. package/libESM/api/ethereum/ethereumDefinitions.d.mts +0 -46
  149. package/libESM/api/ethereum/ethereumDefinitions.mjs +0 -103
  150. package/libESM/api/ethereum/ethereumSignTx.d.mts +0 -20
  151. package/libESM/api/ethereum/ethereumSignTx.mjs +0 -131
  152. package/libESM/api/ethereum/ethereumSignTypedData.d.mts +0 -32
  153. package/libESM/api/ethereum/ethereumSignTypedData.mjs +0 -169
  154. package/libESM/api/evoluGetDelegatedIdentityKey.d.mts +0 -14
  155. package/libESM/api/evoluGetDelegatedIdentityKey.mjs +0 -26
  156. package/libESM/api/evoluGetNode.d.mts +0 -13
  157. package/libESM/api/evoluGetNode.mjs +0 -27
  158. package/libESM/api/evoluSignRegistrationRequest.d.mts +0 -15
  159. package/libESM/api/evoluSignRegistrationRequest.mjs +0 -31
  160. package/libESM/api/firmware/calculateFirmwareHash.d.mts +0 -13
  161. package/libESM/api/firmware/calculateFirmwareHash.mjs +0 -56
  162. package/libESM/api/firmware/calculateXPubHash.d.mts +0 -10
  163. package/libESM/api/firmware/calculateXPubHash.mjs +0 -14
  164. package/libESM/api/firmware/getBinary.d.mts +0 -10
  165. package/libESM/api/firmware/getBinary.mjs +0 -33
  166. package/libESM/api/firmware/index.d.mts +0 -6
  167. package/libESM/api/firmware/index.mjs +0 -6
  168. package/libESM/api/firmware/modifyFirmware.d.mts +0 -3
  169. package/libESM/api/firmware/modifyFirmware.mjs +0 -13
  170. package/libESM/api/firmware/parseFirmwareHeaders.d.mts +0 -4
  171. package/libESM/api/firmware/parseFirmwareHeaders.mjs +0 -26
  172. package/libESM/api/firmware/uploadFirmware.d.mts +0 -19
  173. package/libESM/api/firmware/uploadFirmware.mjs +0 -99
  174. package/libESM/api/firmware/verifyEntropy.d.mts +0 -18
  175. package/libESM/api/firmware/verifyEntropy.mjs +0 -107
  176. package/libESM/api/getAccountInfo.d.mts +0 -94
  177. package/libESM/api/getAccountInfo.mjs +0 -385
  178. package/libESM/api/getAddress.d.mts +0 -39
  179. package/libESM/api/getAddress.mjs +0 -142
  180. package/libESM/api/getCoinInfo.d.mts +0 -148
  181. package/libESM/api/getCoinInfo.mjs +0 -29
  182. package/libESM/api/getDeviceState.d.mts +0 -8
  183. package/libESM/api/getDeviceState.mjs +0 -16
  184. package/libESM/api/getFeatures.d.mts +0 -70
  185. package/libESM/api/getFeatures.mjs +0 -20
  186. package/libESM/api/getFirmwareHash.d.mts +0 -11
  187. package/libESM/api/getFirmwareHash.mjs +0 -27
  188. package/libESM/api/getNonce.d.mts +0 -10
  189. package/libESM/api/getNonce.mjs +0 -16
  190. package/libESM/api/getOwnershipId.d.mts +0 -15
  191. package/libESM/api/getOwnershipId.mjs +0 -79
  192. package/libESM/api/getOwnershipProof.d.mts +0 -15
  193. package/libESM/api/getOwnershipProof.mjs +0 -86
  194. package/libESM/api/getPublicKey.d.mts +0 -50
  195. package/libESM/api/getPublicKey.mjs +0 -88
  196. package/libESM/api/getSettings.d.mts +0 -8
  197. package/libESM/api/getSettings.mjs +0 -15
  198. package/libESM/api/index.d.mts +0 -59
  199. package/libESM/api/index.mjs +0 -59
  200. package/libESM/api/loadDevice.d.mts +0 -16
  201. package/libESM/api/loadDevice.mjs +0 -44
  202. package/libESM/api/monero/api/index.d.mts +0 -4
  203. package/libESM/api/monero/api/index.mjs +0 -4
  204. package/libESM/api/monero/api/moneroGetAddress.d.mts +0 -30
  205. package/libESM/api/monero/api/moneroGetAddress.mjs +0 -109
  206. package/libESM/api/monero/api/moneroGetWatchKey.d.mts +0 -14
  207. package/libESM/api/monero/api/moneroGetWatchKey.mjs +0 -44
  208. package/libESM/api/monero/api/moneroKeyImageSync.d.mts +0 -17
  209. package/libESM/api/monero/api/moneroKeyImageSync.mjs +0 -127
  210. package/libESM/api/monero/api/moneroSignTransaction.d.mts +0 -17
  211. package/libESM/api/monero/api/moneroSignTransaction.mjs +0 -202
  212. package/libESM/api/pingDevice.d.mts +0 -11
  213. package/libESM/api/pingDevice.mjs +0 -27
  214. package/libESM/api/pushTransaction.d.mts +0 -17
  215. package/libESM/api/pushTransaction.mjs +0 -42
  216. package/libESM/api/recoveryDevice.d.mts +0 -20
  217. package/libESM/api/recoveryDevice.mjs +0 -50
  218. package/libESM/api/requestLogin.d.mts +0 -14
  219. package/libESM/api/requestLogin.mjs +0 -48
  220. package/libESM/api/resetDevice.d.mts +0 -22
  221. package/libESM/api/resetDevice.mjs +0 -131
  222. package/libESM/api/ripple/api/index.d.mts +0 -2
  223. package/libESM/api/ripple/api/index.mjs +0 -2
  224. package/libESM/api/ripple/api/rippleGetAddress.d.mts +0 -15
  225. package/libESM/api/ripple/api/rippleGetAddress.mjs +0 -22
  226. package/libESM/api/ripple/api/rippleSignTransaction.d.mts +0 -13
  227. package/libESM/api/ripple/api/rippleSignTransaction.mjs +0 -52
  228. package/libESM/api/setBrightness.d.mts +0 -12
  229. package/libESM/api/setBrightness.mjs +0 -26
  230. package/libESM/api/setBusy.d.mts +0 -11
  231. package/libESM/api/setBusy.mjs +0 -32
  232. package/libESM/api/showDeviceTutorial.d.mts +0 -11
  233. package/libESM/api/showDeviceTutorial.mjs +0 -21
  234. package/libESM/api/signMessage.d.mts +0 -25
  235. package/libESM/api/signMessage.mjs +0 -71
  236. package/libESM/api/signTransaction.d.mts +0 -197
  237. package/libESM/api/signTransaction.mjs +0 -334
  238. package/libESM/api/solana/api/index.d.mts +0 -4
  239. package/libESM/api/solana/api/index.mjs +0 -4
  240. package/libESM/api/solana/api/solanaComposeTransaction.d.mts +0 -31
  241. package/libESM/api/solana/api/solanaComposeTransaction.mjs +0 -76
  242. package/libESM/api/solana/api/solanaGetAddress.d.mts +0 -15
  243. package/libESM/api/solana/api/solanaGetAddress.mjs +0 -22
  244. package/libESM/api/solana/api/solanaGetPublicKey.d.mts +0 -28
  245. package/libESM/api/solana/api/solanaGetPublicKey.mjs +0 -67
  246. package/libESM/api/solana/api/solanaSignTransaction.d.mts +0 -41
  247. package/libESM/api/solana/api/solanaSignTransaction.mjs +0 -203
  248. package/libESM/api/solana/solanaDefinitions.d.mts +0 -7
  249. package/libESM/api/solana/solanaDefinitions.mjs +0 -33
  250. package/libESM/api/stellar/api/index.d.mts +0 -2
  251. package/libESM/api/stellar/api/index.mjs +0 -2
  252. package/libESM/api/stellar/api/stellarGetAddress.d.mts +0 -15
  253. package/libESM/api/stellar/api/stellarGetAddress.mjs +0 -22
  254. package/libESM/api/stellar/api/stellarSignTransaction.d.mts +0 -26
  255. package/libESM/api/stellar/api/stellarSignTransaction.mjs +0 -66
  256. package/libESM/api/stellar/stellarSignTx.d.mts +0 -7
  257. package/libESM/api/stellar/stellarSignTx.mjs +0 -191
  258. package/libESM/api/telemetryGet.d.mts +0 -14
  259. package/libESM/api/telemetryGet.mjs +0 -24
  260. package/libESM/api/tezos/api/index.d.mts +0 -3
  261. package/libESM/api/tezos/api/index.mjs +0 -3
  262. package/libESM/api/tezos/api/tezosGetAddress.d.mts +0 -15
  263. package/libESM/api/tezos/api/tezosGetAddress.mjs +0 -22
  264. package/libESM/api/tezos/api/tezosGetPublicKey.d.mts +0 -24
  265. package/libESM/api/tezos/api/tezosGetPublicKey.mjs +0 -66
  266. package/libESM/api/tezos/api/tezosSignTransaction.d.mts +0 -14
  267. package/libESM/api/tezos/api/tezosSignTransaction.mjs +0 -30
  268. package/libESM/api/tezos/tezosSignTx.d.mts +0 -71
  269. package/libESM/api/tezos/tezosSignTx.mjs +0 -204
  270. package/libESM/api/thpGetCredentials.d.mts +0 -13
  271. package/libESM/api/thpGetCredentials.mjs +0 -28
  272. package/libESM/api/thpRemoveCredentials.d.mts +0 -15
  273. package/libESM/api/thpRemoveCredentials.mjs +0 -42
  274. package/libESM/api/tron/api/index.d.mts +0 -3
  275. package/libESM/api/tron/api/index.mjs +0 -3
  276. package/libESM/api/tron/api/tronComposeTransaction.d.mts +0 -17
  277. package/libESM/api/tron/api/tronComposeTransaction.mjs +0 -51
  278. package/libESM/api/tron/api/tronGetAddress.d.mts +0 -15
  279. package/libESM/api/tron/api/tronGetAddress.mjs +0 -20
  280. package/libESM/api/tron/api/tronSignTransaction.d.mts +0 -19
  281. package/libESM/api/tron/api/tronSignTransaction.mjs +0 -129
  282. package/libESM/api/tron/tronEncode.d.mts +0 -12
  283. package/libESM/api/tron/tronEncode.mjs +0 -77
  284. package/libESM/api/tron/tronProtobuf.d.mts +0 -5
  285. package/libESM/api/tron/tronProtobuf.mjs +0 -28
  286. package/libESM/api/unlockPath.d.mts +0 -12
  287. package/libESM/api/unlockPath.mjs +0 -31
  288. package/libESM/api/verifyMessage.d.mts +0 -16
  289. package/libESM/api/verifyMessage.mjs +0 -46
  290. package/libESM/api/wipeDevice.d.mts +0 -21
  291. package/libESM/api/wipeDevice.mjs +0 -47
  292. package/libESM/backend/BackendManager.d.mts +0 -24
  293. package/libESM/backend/BackendManager.mjs +0 -137
  294. package/libESM/backend/Blockchain.d.mts +0 -81
  295. package/libESM/backend/Blockchain.mjs +0 -232
  296. package/libESM/backend/BlockchainLink.d.mts +0 -9
  297. package/libESM/backend/BlockchainLink.mjs +0 -13
  298. package/libESM/backend/fees/BitcoinFeeLevels.d.mts +0 -19
  299. package/libESM/backend/fees/BitcoinFeeLevels.mjs +0 -43
  300. package/libESM/backend/fees/EthereumFeeLevels.d.mts +0 -17
  301. package/libESM/backend/fees/EthereumFeeLevels.mjs +0 -52
  302. package/libESM/backend/fees/MiscFeeLevels.d.mts +0 -18
  303. package/libESM/backend/fees/MiscFeeLevels.mjs +0 -25
  304. package/libESM/backend/fees/index.d.mts +0 -5
  305. package/libESM/backend/fees/index.mjs +0 -30
  306. package/libESM/core/AbstractMethod.d.mts +0 -65
  307. package/libESM/core/AbstractMethod.mjs +0 -153
  308. package/libESM/core/index.d.mts +0 -27
  309. package/libESM/core/index.mjs +0 -795
  310. package/libESM/core/method.d.mts +0 -3
  311. package/libESM/core/method.mjs +0 -19
  312. package/libESM/core/method.native.d.mts +0 -2
  313. package/libESM/core/method.native.mjs +0 -29
  314. package/libESM/core/onCallFirmwareUpdate.d.mts +0 -39
  315. package/libESM/core/onCallFirmwareUpdate.mjs +0 -436
  316. package/libESM/data/coinInfo.d.mts +0 -374
  317. package/libESM/data/coinInfo.mjs +0 -183
  318. package/libESM/data/config.d.mts +0 -8
  319. package/libESM/data/config.mjs +0 -265
  320. package/libESM/data/defaultFeeLevels.d.mts +0 -18
  321. package/libESM/data/defaultFeeLevels.mjs +0 -174
  322. package/libESM/data/firmwareInfo.d.mts +0 -41
  323. package/libESM/data/firmwareInfo.mjs +0 -411
  324. package/libESM/data/firmwareReleaseStore.d.mts +0 -10
  325. package/libESM/data/firmwareReleaseStore.mjs +0 -16
  326. package/libESM/data/localFirmwareStore.d.mts +0 -3
  327. package/libESM/data/localFirmwareStore.mjs +0 -8
  328. package/libESM/data/protobufLoader.d.mts +0 -1
  329. package/libESM/data/protobufLoader.mjs +0 -29
  330. package/libESM/data/settingsStore.d.mts +0 -6
  331. package/libESM/data/settingsStore.mjs +0 -21
  332. package/libESM/device/Device.d.mts +0 -237
  333. package/libESM/device/Device.mjs +0 -729
  334. package/libESM/device/DeviceCommands.d.mts +0 -77
  335. package/libESM/device/DeviceCommands.mjs +0 -245
  336. package/libESM/device/DeviceCurrentSession.d.mts +0 -3208
  337. package/libESM/device/DeviceCurrentSession.mjs +0 -240
  338. package/libESM/device/DeviceList.d.mts +0 -68
  339. package/libESM/device/DeviceList.mjs +0 -246
  340. package/libESM/device/TransportList.d.mts +0 -9
  341. package/libESM/device/TransportList.mjs +0 -41
  342. package/libESM/device/TransportManager.d.mts +0 -30
  343. package/libESM/device/TransportManager.mjs +0 -142
  344. package/libESM/device/calculateRevisionForDevice.d.mts +0 -7
  345. package/libESM/device/calculateRevisionForDevice.mjs +0 -19
  346. package/libESM/device/checkFirmwareRevision.d.mts +0 -12
  347. package/libESM/device/checkFirmwareRevision.mjs +0 -75
  348. package/libESM/device/resolveDescriptorForTaproot.d.mts +0 -14
  349. package/libESM/device/resolveDescriptorForTaproot.mjs +0 -25
  350. package/libESM/device/thp/handshake.d.mts +0 -3
  351. package/libESM/device/thp/handshake.mjs +0 -100
  352. package/libESM/device/thp/index.d.mts +0 -5
  353. package/libESM/device/thp/index.mjs +0 -65
  354. package/libESM/device/thp/pairing.d.mts +0 -16
  355. package/libESM/device/thp/pairing.mjs +0 -237
  356. package/libESM/device/thp/session.d.mts +0 -2
  357. package/libESM/device/thp/session.mjs +0 -27
  358. package/libESM/device/thp/thpCall.d.mts +0 -40
  359. package/libESM/device/thp/thpCall.mjs +0 -58
  360. package/libESM/device/validateMessageSize.d.mts +0 -2
  361. package/libESM/device/validateMessageSize.mjs +0 -9
  362. package/libESM/device/workflow/changeLanguage.d.mts +0 -14
  363. package/libESM/device/workflow/changeLanguage.mjs +0 -59
  364. package/libESM/device/workflow/checkFirmwareHash.d.mts +0 -9
  365. package/libESM/device/workflow/checkFirmwareHash.mjs +0 -86
  366. package/libESM/device/workflow/checkFirmwareHashWithRetries.d.mts +0 -8
  367. package/libESM/device/workflow/checkFirmwareHashWithRetries.mjs +0 -36
  368. package/libESM/device/workflow/handshake.d.mts +0 -9
  369. package/libESM/device/workflow/handshake.mjs +0 -55
  370. package/libESM/device/workflow/trezorPushNotification.d.mts +0 -2
  371. package/libESM/device/workflow/trezorPushNotification.mjs +0 -73
  372. package/libESM/device/workflow/validateState.d.mts +0 -2
  373. package/libESM/device/workflow/validateState.mjs +0 -153
  374. package/libESM/events/ui-promise.d.mts +0 -22
  375. package/libESM/events/ui-promise.mjs +0 -1
  376. package/libESM/exports.d.mts +0 -3
  377. package/libESM/exports.mjs +0 -3
  378. package/libESM/impl/core-in-module.d.mts +0 -27
  379. package/libESM/impl/core-in-module.mjs +0 -173
  380. package/libESM/index.browser.d.mts +0 -9
  381. package/libESM/index.browser.mjs +0 -50
  382. package/libESM/index.d.mts +0 -6
  383. package/libESM/index.mjs +0 -32
  384. package/libESM/index.renderer.d.mts +0 -6
  385. package/libESM/index.renderer.mjs +0 -19
  386. package/libESM/tsconfig.libESM.tsbuildinfo +0 -1
  387. package/libESM/types/idevice.d.mts +0 -109
  388. package/libESM/types/idevice.mjs +0 -1
  389. package/libESM/types/typed-call-provider.d.mts +0 -29
  390. package/libESM/types/typed-call-provider.mjs +0 -1
  391. package/libESM/types/workflow.d.mts +0 -16
  392. package/libESM/types/workflow.mjs +0 -1
  393. package/libESM/utils/accountUtils.d.mts +0 -10
  394. package/libESM/utils/accountUtils.mjs +0 -83
  395. package/libESM/utils/addressUtils.d.mts +0 -2
  396. package/libESM/utils/addressUtils.mjs +0 -24
  397. package/libESM/utils/assetUtils.d.mts +0 -13
  398. package/libESM/utils/assetUtils.mjs +0 -56
  399. package/libESM/utils/assets.browser.d.mts +0 -1
  400. package/libESM/utils/assets.browser.mjs +0 -1
  401. package/libESM/utils/assets.d.mts +0 -2
  402. package/libESM/utils/assets.mjs +0 -13
  403. package/libESM/utils/assets.native.d.mts +0 -2
  404. package/libESM/utils/assets.native.mjs +0 -23
  405. package/libESM/utils/assetsTypes.d.mts +0 -5
  406. package/libESM/utils/assetsTypes.mjs +0 -1
  407. package/libESM/utils/buildOutputDescriptor.d.mts +0 -12
  408. package/libESM/utils/buildOutputDescriptor.mjs +0 -67
  409. package/libESM/utils/deviceFeaturesUtils.d.mts +0 -7
  410. package/libESM/utils/deviceFeaturesUtils.mjs +0 -109
  411. package/libESM/utils/ethereumUtils.d.mts +0 -3
  412. package/libESM/utils/ethereumUtils.mjs +0 -7
  413. package/libESM/utils/firmwareReleaseConfigUtils.d.mts +0 -19
  414. package/libESM/utils/firmwareReleaseConfigUtils.mjs +0 -131
  415. package/libESM/utils/firmwareUtils.d.mts +0 -13
  416. package/libESM/utils/firmwareUtils.mjs +0 -54
  417. package/libESM/utils/formatUtils.d.mts +0 -15
  418. package/libESM/utils/formatUtils.mjs +0 -45
  419. package/libESM/utils/hdnodeUtils.d.mts +0 -6
  420. package/libESM/utils/hdnodeUtils.mjs +0 -62
  421. package/libESM/utils/pathUtils.d.mts +0 -17
  422. package/libESM/utils/pathUtils.mjs +0 -141
  423. package/libESM/utils/paymentRequest.d.mts +0 -8
  424. package/libESM/utils/paymentRequest.mjs +0 -25
  425. package/libESM/utils/uiPromiseManager.d.mts +0 -8
  426. package/libESM/utils/uiPromiseManager.mjs +0 -51
  427. package/libESM/workers/workers.browser.d.mts +0 -10
  428. package/libESM/workers/workers.browser.mjs +0 -16
  429. package/libESM/workers/workers.d.mts +0 -10
  430. package/libESM/workers/workers.mjs +0 -8
  431. package/libESM/workers/workers.native.d.mts +0 -7
  432. package/libESM/workers/workers.native.mjs +0 -7
@@ -1,237 +0,0 @@
1
- import { createHash, randomBytes } from "crypto";
2
- import { DEVICE } from "@trezor/connect-common";
3
- import { ERRORS } from "@trezor/connect-common/libESM/constants/index.mjs";
4
- import { ThpPairingMethod, thp as protocolThp } from "@trezor/protocol";
5
- import { createDeferred, resolveAfter } from "@trezor/utils";
6
- import { abortThpWorkflow, thpCall } from "./thpCall.mjs";
7
- import * as settingsStore from "../../data/settingsStore.mjs";
8
- import { sanitizeString } from "../../utils/formatUtils.mjs";
9
- const processQrCodeTag = async (device, value) => {
10
- const thpState = device.getThpState();
11
- if (!thpState?.handshakeCredentials) {
12
- throw ERRORS.TypedError('Device_ThpStateMissing');
13
- }
14
- const tagSha = createHash('sha256').update(thpState.handshakeCredentials.handshakeHash).update(Buffer.from(value, 'hex')).digest('hex');
15
- const qrCodeSecret = await thpCall(device, 'ThpQrCodeTag', {
16
- tag: tagSha
17
- });
18
- protocolThp.validateQrCodeTag(thpState.handshakeCredentials, value, qrCodeSecret.message.secret);
19
- return qrCodeSecret;
20
- };
21
- const processNfcTag = async (device, value) => {
22
- const thpState = device.getThpState();
23
- if (!thpState?.handshakeCredentials) {
24
- throw ERRORS.TypedError('Device_ThpStateMissing');
25
- }
26
- if (!thpState?.nfcSecret) {
27
- throw new Error('missing nfcSecret');
28
- }
29
- const tagSha = createHash('sha256').update(Buffer.from([protocolThp.ThpPairingMethod.NFC])).update(thpState.handshakeCredentials.handshakeHash).update(Buffer.from(value, 'hex')).digest('hex');
30
- const nfcTagTrezor = await thpCall(device, 'ThpNfcTagHost', {
31
- tag: tagSha
32
- });
33
- protocolThp.validateNfcTag(thpState.handshakeCredentials, nfcTagTrezor.message.tag, thpState.nfcSecret);
34
- return nfcTagTrezor;
35
- };
36
- const processCodeEntry = async (device, value) => {
37
- const codeValue = Buffer.from(value, 'ascii');
38
- const thpState = device.getThpState();
39
- if (!thpState?.handshakeCredentials) {
40
- throw ERRORS.TypedError('Device_ThpStateMissing');
41
- }
42
- const hostKeys = protocolThp.getCpaceHostKeys(codeValue, thpState.handshakeCredentials.handshakeHash);
43
- const tag = protocolThp.getSharedSecret(thpState.handshakeCredentials.trezorCpacePublicKey, hostKeys.privateKey).toString('hex');
44
- const codeEntrySecret = await thpCall(device, 'ThpCodeEntryCpaceHostTag', {
45
- tag,
46
- cpace_host_public_key: hostKeys.publicKey.toString('hex')
47
- });
48
- protocolThp.validateCodeEntryTag(thpState.handshakeCredentials, value, codeEntrySecret.message.secret);
49
- return codeEntrySecret;
50
- };
51
- const processThpPairingResponse = (device, payload) => {
52
- if ('selectedMethod' in payload) {
53
- const selectedMethod = protocolThp.getThpPairingMethod(payload.selectedMethod);
54
- device.getThpState()?.setPairingMethod(selectedMethod);
55
- return thpCall(device, 'ThpSelectMethod', {
56
- selected_pairing_method: selectedMethod
57
- });
58
- }
59
- const selectedMethod = device.getThpState()?.pairingMethod;
60
- if (selectedMethod === ThpPairingMethod.QrCode) {
61
- return processQrCodeTag(device, payload.tag);
62
- }
63
- if (selectedMethod === ThpPairingMethod.NFC) {
64
- return processNfcTag(device, payload.tag);
65
- }
66
- if (selectedMethod === ThpPairingMethod.CodeEntry) {
67
- return processCodeEntry(device, payload.tag);
68
- }
69
- throw ERRORS.TypedError('Device_ThpPairingMethodsException');
70
- };
71
- const waitForPairingCancel = device => {
72
- const readAbort = new AbortController();
73
- device.getThpState()?.setExpectedResponses([0x04]);
74
- const readCancel = device.getCurrentSession().receive({
75
- signal: readAbort.signal
76
- });
77
- return {
78
- readAbort,
79
- readCancel
80
- };
81
- };
82
- const waitForPairingTag = async device => {
83
- const thpState = device.getThpState();
84
- if (!thpState?.handshakeCredentials) {
85
- throw ERRORS.TypedError('Device_ThpStateMissing');
86
- }
87
- if (thpState.pairingMethod === undefined) {
88
- throw ERRORS.TypedError('Device_ThpPairingMethodsException');
89
- }
90
- const dfd = createDeferred();
91
- const {
92
- readAbort,
93
- readCancel
94
- } = waitForPairingCancel(device);
95
- const cancelResult = readCancel.then(readResult => {
96
- if (readResult.success) {
97
- let code, message;
98
- const {
99
- payload
100
- } = readResult;
101
- if (payload.type === 'Failure') {
102
- code = payload.message.code;
103
- message = payload.message.message;
104
- } else {
105
- message = `Unexpected message type: ${readResult.payload.type}`;
106
- }
107
- dfd.resolve({
108
- error: ERRORS.TypedError(code || 'ThpUnknownError', message)
109
- });
110
- }
111
- }).catch(() => {});
112
- thpState.setPairingTagPromise({
113
- abort: async () => {
114
- readAbort.abort();
115
- await cancelResult;
116
- }
117
- });
118
- const payload = {
119
- availableMethods: thpState.handshakeCredentials.pairingMethods,
120
- selectedMethod: thpState.pairingMethod,
121
- nfcData: thpState.nfcData?.toString('hex')
122
- };
123
- device.prompt(DEVICE.THP_PAIRING, {
124
- payload
125
- }).then(response => {
126
- if (response.success) {
127
- dfd.resolve(response.payload);
128
- } else {
129
- abortThpWorkflow(device).then(() => {
130
- dfd.resolve({
131
- error: ERRORS.TypedError('ThpUnknownError', response.error.message)
132
- });
133
- });
134
- }
135
- });
136
- const pairingResponse = await dfd.promise;
137
- readAbort.abort();
138
- await readCancel;
139
- thpState.setPairingTagPromise(undefined);
140
- if ('error' in pairingResponse) {
141
- throw pairingResponse.error;
142
- }
143
- await resolveAfter(500);
144
- return processThpPairingResponse(device, pairingResponse).catch(e => {
145
- if (e.code === 'Failure_FirmwareError' || e.code === 'Failure_DataError') {
146
- if ('tag' in pairingResponse) {
147
- device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
148
- status: 'invalid-tag',
149
- tag: pairingResponse.tag
150
- });
151
- }
152
- throw ERRORS.TypedError('Device_ThpPairingTagInvalid', e.message);
153
- }
154
- throw ERRORS.TypedError(e.code, e.message);
155
- });
156
- };
157
- export const getThpCredentials = async (device, autoconnect = false) => {
158
- const thpState = device.getThpState();
159
- if (!thpState?.handshakeCredentials) {
160
- throw ERRORS.TypedError('Device_ThpStateMissing');
161
- }
162
- const credentials = await thpCall(device, 'ThpCredentialRequest', {
163
- autoconnect,
164
- host_static_public_key: thpState.handshakeCredentials.hostStaticPublicKey.toString('hex'),
165
- credential: thpState.pairingCredentials[0]?.credential
166
- });
167
- const host_static_key = thpState.handshakeCredentials.staticKey.toString('hex');
168
- return {
169
- ...credentials.message,
170
- autoconnect,
171
- host_static_key
172
- };
173
- };
174
- export const thpPairingEnd = async device => {
175
- const result = await thpCall(device, 'ThpEndRequest', {});
176
- device.getThpState()?.setPhase('paired');
177
- return result;
178
- };
179
- export const thpPairing = async device => {
180
- const thpState = device.getThpState();
181
- if (!thpState?.handshakeCredentials) {
182
- throw ERRORS.TypedError('Device_ThpStateMissing');
183
- }
184
- if (thpState.isPaired && thpState.pairingMethod !== protocolThp.ThpPairingMethod.SkipPairing) {
185
- if (!thpState.isAutoconnectPaired) {
186
- await getThpCredentials(device, false);
187
- }
188
- return thpPairingEnd(device);
189
- }
190
- const [selected_pairing_method] = thpState.handshakeCredentials.pairingMethods;
191
- thpState.setPairingMethod(selected_pairing_method);
192
- const settings = settingsStore.get('thp');
193
- await thpCall(device, 'ThpPairingRequest', {
194
- host_name: sanitizeString(settings?.hostName) || 'Unknown hostName',
195
- app_name: sanitizeString(settings?.appName) || 'Unknown appName'
196
- });
197
- const selectMethod = await thpCall(device, 'ThpSelectMethod', {
198
- selected_pairing_method
199
- });
200
- if (selectMethod.type === 'ThpEndResponse') {
201
- thpState.setIsPaired(true);
202
- device.getThpState()?.setPhase('paired');
203
- return;
204
- }
205
- if (selectMethod.type === 'ThpCodeEntryCommitment') {
206
- const codeEntryChallenge = randomBytes(32);
207
- const handshakeCommitment = Buffer.from(selectMethod.message.commitment, 'hex');
208
- thpState.updateHandshakeCredentials({
209
- handshakeCommitment,
210
- codeEntryChallenge
211
- });
212
- const codeEntryCpace = await thpCall(device, 'ThpCodeEntryChallenge', {
213
- challenge: codeEntryChallenge.toString('hex')
214
- });
215
- thpState.updateHandshakeCredentials({
216
- trezorCpacePublicKey: Buffer.from(codeEntryCpace.message.cpace_trezor_public_key, 'hex')
217
- });
218
- await waitForPairingTag(device);
219
- }
220
- if (selectMethod.type === 'ThpPairingPreparationsFinished') {
221
- if (thpState.pairingMethod === protocolThp.ThpPairingMethod.NFC) {
222
- thpState.setNfcSecret(randomBytes(16));
223
- }
224
- await waitForPairingTag(device);
225
- }
226
- const credentials = await getThpCredentials(device, false);
227
- device.emit(DEVICE.THP_CREDENTIALS_CHANGED, {
228
- credentials
229
- });
230
- const settings1 = settingsStore.get('thp');
231
- if (settings1) {
232
- settings1.knownCredentials?.push(credentials);
233
- }
234
- thpState.setPairingCredentials([credentials]);
235
- thpState.setIsPaired(true);
236
- await thpPairingEnd(device);
237
- };
@@ -1,2 +0,0 @@
1
- import type { IDevice } from '../../types/idevice';
2
- export declare const createThpSession: (device: IDevice, deriveCardano: boolean) => Promise<number>;
@@ -1,27 +0,0 @@
1
- import { thpCall } from "./thpCall.mjs";
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
- };
@@ -1,40 +0,0 @@
1
- import type { thp as protocolThp } from '@trezor/protocol';
2
- import type { IDevice } from '../../types/idevice';
3
- type ThpTypedCall = {
4
- ThpCreateChannelRequest: 'ThpCreateChannelResponse';
5
- ThpHandshakeInitRequest: 'ThpHandshakeInitResponse';
6
- ThpHandshakeCompletionRequest: 'ThpHandshakeCompletionResponse';
7
- ThpPairingRequest: 'ThpPairingRequestApproved';
8
- ThpSelectMethod: [
9
- 'ThpCodeEntryCommitment',
10
- 'ThpEndResponse',
11
- 'ThpPairingRequestApproved',
12
- 'ThpPairingPreparationsFinished'
13
- ];
14
- ThpCodeEntryChallenge: ['ThpCodeEntryCpaceTrezor'];
15
- ThpCodeEntryCpaceHostTag: 'ThpCodeEntrySecret';
16
- ThpQrCodeTag: 'ThpQrCodeSecret';
17
- ThpNfcTagHost: 'ThpNfcTagTrezor';
18
- ThpCredentialRequest: 'ThpCredentialResponse';
19
- ThpEndRequest: 'ThpEndResponse';
20
- ThpCreateNewSession: 'Success';
21
- };
22
- type ThpMessage = protocolThp.ThpMessageType & {
23
- Success: Record<never, never>;
24
- };
25
- type TypedPayloadItem<K> = K extends keyof ThpMessage ? {
26
- type: K;
27
- message: ThpMessage[K];
28
- } : never;
29
- type ExtractFromArray<A extends any[]> = {
30
- [K in keyof A]: TypedPayloadItem<A[K]>;
31
- }[number];
32
- type MessageKey = keyof ThpTypedCall;
33
- type TypedPayload<T extends MessageKey> = ThpTypedCall[T] extends any[] ? ExtractFromArray<ThpTypedCall[T]> : TypedPayloadItem<ThpTypedCall[T]>;
34
- type ThpCallResponse = {
35
- [K in keyof ThpTypedCall]: TypedPayload<K>;
36
- };
37
- type ThpMessagePayload<T extends MessageKey = MessageKey> = ThpMessage[T];
38
- export declare const thpCall: <T extends MessageKey>(device: IDevice, name: T, data: ThpMessagePayload<T>) => Promise<ThpCallResponse[T]>;
39
- export declare const abortThpWorkflow: (device: IDevice) => Promise<void>;
40
- export {};
@@ -1,58 +0,0 @@
1
- import { DEVICE } from "@trezor/connect-common";
2
- import { TypedError } from "@trezor/connect-common/libESM/constants/errors.mjs";
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
- };
@@ -1,2 +0,0 @@
1
- import type { Device } from './Device';
2
- export declare const validateModelOneMessageSize: (device: Device, messageHex: string) => void;
@@ -1,9 +0,0 @@
1
- import { TypedError } from "@trezor/connect-common/libESM/constants/errors.mjs";
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
- };
@@ -1,14 +0,0 @@
1
- import type { IDevice } from '../../types/idevice';
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: ({ device, language, binary }: Context) => Promise<{
12
- message: string;
13
- }>;
14
- export {};
@@ -1,59 +0,0 @@
1
- import { ERRORS } from "@trezor/connect-common/libESM/constants/index.mjs";
2
- import { getLanguage } from "../../data/firmwareInfo.mjs";
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 languageBinPath = device.currentRelease.translations[language];
48
- const downloadedBinary = await getLanguage(languageBinPath);
49
- if (!downloadedBinary) {
50
- throw ERRORS.TypedError('Runtime', 'changeLanguage: translation not found');
51
- }
52
- let dataToSend;
53
- if (Buffer.isBuffer(downloadedBinary)) {
54
- dataToSend = new Uint8Array(downloadedBinary).buffer;
55
- } else {
56
- dataToSend = downloadedBinary;
57
- }
58
- return uploadTranslationData(device, dataToSend);
59
- };
@@ -1,9 +0,0 @@
1
- import type { FirmwareHashCheckResult } from '@trezor/connect-common';
2
- import type { Log } from '@trezor/connect-common/libESM/utils/debug';
3
- import type { IDevice } from '../../types/idevice';
4
- type Context = {
5
- device: IDevice;
6
- logger: Log;
7
- };
8
- export declare const checkFirmwareHash: ({ device, logger, }: Context) => Promise<FirmwareHashCheckResult | null>;
9
- export {};
@@ -1,86 +0,0 @@
1
- import { randomBytes } from "crypto";
2
- import { serializeError } from "@trezor/utils";
3
- import { calculateFirmwareHash, getBinaryOptional, stripFwHeaders } from "../../api/firmware/index.mjs";
4
- import { getFirmwareLocation, getReleaseByVersion } from "../../data/firmwareInfo.mjs";
5
- import * as settingsStore from "../../data/settingsStore.mjs";
6
- import { getFirmwareType } from "../../utils/firmwareUtils.mjs";
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: 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
- };
@@ -1,8 +0,0 @@
1
- import type { Log } from '@trezor/connect-common/libESM/utils/debug';
2
- import type { IDevice } from '../../types/idevice';
3
- type Context = {
4
- device: IDevice;
5
- logger: Log;
6
- };
7
- export declare const checkFirmwareHashWithRetries: (context: Context) => Promise<void>;
8
- export {};
@@ -1,36 +0,0 @@
1
- import { FIRMWARE } from "@trezor/connect-common";
2
- import { isArrayMember } from "@trezor/utils";
3
- import { checkFirmwareHash } from "./checkFirmwareHash.mjs";
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
- };
@@ -1,9 +0,0 @@
1
- import type { Log } from '@trezor/connect-common/libESM/utils/debug';
2
- import type { WorkflowContext } from '../../types/workflow';
3
- type Context = {
4
- device: WorkflowContext['device'];
5
- signal: AbortSignal;
6
- logger?: Log;
7
- };
8
- export declare const handshakeCancel: ({ device, logger, signal }: Context) => Promise<void>;
9
- export {};
@@ -1,55 +0,0 @@
1
- import { TypedError } from "@trezor/connect-common/libESM/constants/errors.mjs";
2
- import { PROTOCOL_MALFORMED } from "@trezor/protocol/libESM/errors.mjs";
3
- import { TRANSPORT_ERROR } from "@trezor/transport";
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
- };
@@ -1,2 +0,0 @@
1
- import type { TpnWorkflowContext } from '../../types/workflow';
2
- export declare const trezorPushNotificationHandler: ({ device, message }: TpnWorkflowContext) => Promise<void>;