@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,3 +0,0 @@
1
- import type { CoreCallMessage } from '@trezor/connect-common';
2
- import type { AbstractMethod } from './AbstractMethod';
3
- export declare const getMethod: (message: CoreCallMessage) => Promise<AbstractMethod<any>>;
@@ -1,19 +0,0 @@
1
- import { TypedError } from "@trezor/connect-common/libESM/constants/errors.mjs";
2
- import { MODULES } from "@trezor/connect-common/libESM/constants/network.mjs";
3
- import * as Methods from "../api/index.mjs";
4
- const getMethodModule = method => MODULES.find(module => method.startsWith(module));
5
- export const getMethod = async message => {
6
- const {
7
- method
8
- } = message.payload;
9
- if (typeof method !== 'string') {
10
- throw TypedError('Method_InvalidParameter', 'Message method is not set');
11
- }
12
- const methodModule = getMethodModule(method);
13
- const methods = methodModule ? await import(`../api/${methodModule}/api/index.js`) : Methods;
14
- const MethodConstructor = methods[method];
15
- if (MethodConstructor) {
16
- return new MethodConstructor(message);
17
- }
18
- throw TypedError('Method_InvalidParameter', `Method ${method} not found`);
19
- };
@@ -1,2 +0,0 @@
1
- import type { CoreCallMessage } from '@trezor/connect-common';
2
- export declare const getMethod: (message: CoreCallMessage) => Promise<any>;
@@ -1,29 +0,0 @@
1
- import { TypedError } from "@trezor/connect-common/libESM/constants/errors.mjs";
2
- import { MODULES } from "@trezor/connect-common/libESM/constants/network.mjs";
3
- import * as Methods from "../api/index.mjs";
4
- const moduleMethods = {
5
- cardano: require('../api/cardano/api'),
6
- ethereum: require('../api/ethereum/api'),
7
- monero: require('../api/monero/api'),
8
- ripple: require('../api/ripple/api'),
9
- solana: require('../api/solana/api'),
10
- stellar: require('../api/stellar/api'),
11
- tezos: require('../api/tezos/api'),
12
- tron: require('../api/tron/api')
13
- };
14
- const getMethodModule = method => MODULES.find(module => method.startsWith(module));
15
- export const getMethod = async message => {
16
- const {
17
- method
18
- } = message.payload;
19
- if (typeof method !== 'string') {
20
- throw TypedError('Method_InvalidParameter', 'Message method is not set');
21
- }
22
- const methodModule = getMethodModule(method);
23
- const methods = methodModule ? moduleMethods[methodModule] : Methods;
24
- const MethodConstructor = methods[method];
25
- if (MethodConstructor) {
26
- return new MethodConstructor(message);
27
- }
28
- throw TypedError('Method_InvalidParameter', `Method ${method} not found`);
29
- };
@@ -1,39 +0,0 @@
1
- import type { CommonParams, CoreEventMessage, DeviceUniquePath, FirmwareUpdateResponse } from '@trezor/connect-common';
2
- import type { Log } from '@trezor/connect-common/libESM/utils/debug';
3
- import type { Device } from '../device/Device';
4
- import type { DeviceList } from '../device/DeviceList';
5
- import type { UiPromiseCreator } from '../events/ui-promise';
6
- type PostMessage = (message: CoreEventMessage) => void;
7
- type ReconnectContext = {
8
- deviceList: DeviceList;
9
- device: Device;
10
- registerEvents: (device: Device) => void;
11
- postMessage: PostMessage;
12
- log: Log;
13
- abortSignal: AbortSignal;
14
- uiPromises: {
15
- create: UiPromiseCreator;
16
- rejectAll: (e: Error) => void;
17
- };
18
- };
19
- export type Params = {
20
- language?: string;
21
- baseUrl?: string;
22
- btcOnly?: boolean;
23
- binary?: ArrayBuffer;
24
- } & CommonParams;
25
- type Context = {
26
- deviceList: DeviceList;
27
- registerEvents: (device: Device) => void;
28
- postMessage: PostMessage;
29
- selectDevice: (path?: DeviceUniquePath) => Device;
30
- log: Log;
31
- abortSignal: AbortSignal;
32
- uiPromises: ReconnectContext['uiPromises'];
33
- };
34
- type OnCallFirmwareUpdateParams = {
35
- params: Params;
36
- context: Context;
37
- };
38
- export declare const onCallFirmwareUpdate: ({ params, context, }: OnCallFirmwareUpdateParams) => Promise<FirmwareUpdateResponse>;
39
- export {};
@@ -1,436 +0,0 @@
1
- import { FirmwareType, UI_REQUEST, UI_RESPONSE, createUiMessage } from "@trezor/connect-common";
2
- import { ERRORS } from "@trezor/connect-common/libESM/constants/index.mjs";
3
- import { getFirmwareOrBootloaderVersionArray } from "@trezor/device-utils";
4
- import { MessagesSchema as PROTO } from "@trezor/protobuf";
5
- import { resolveAfter } from "@trezor/utils";
6
- import { isEqual, isNewer } from "@trezor/utils/libESM/versionUtils.mjs";
7
- import { getBinary, parseFirmwareHeaders, shouldStripFwHeaders, stripFwHeaders, uploadFirmware } from "../api/firmware/index.mjs";
8
- import { getFirmwareLocation, getReleaseByVersion } from "../data/firmwareInfo.mjs";
9
- import * as settingsStore from "../data/settingsStore.mjs";
10
- import { isFirmwareCacheUsedForSelectedSource } from "../utils/firmwareUtils.mjs";
11
- const waitForThpPairingConfirmation = async ({
12
- uiPromises,
13
- postMessage,
14
- device,
15
- deviceList,
16
- abortSignal,
17
- thpPairingError
18
- }) => {
19
- const uiPromise = uiPromises.create(UI_RESPONSE.RECEIVE_CONFIRMATION, device);
20
- postMessage(createUiMessage(UI_REQUEST.REQUEST_CONFIRMATION, {
21
- view: thpPairingError ? 'thp-pairing-failed' : 'thp-pairing-start'
22
- }, {
23
- requestId: uiPromise.requestId
24
- }));
25
- const devicePath = device.getUniquePath();
26
- const disconnectListener = event => {
27
- if (event.getUniquePath() === devicePath) {
28
- uiPromise.reject(ERRORS.TypedError('Device_Disconnected'));
29
- }
30
- };
31
- const abortListener = () => {
32
- uiPromise.reject(ERRORS.TypedError('Method_Interrupted'));
33
- };
34
- try {
35
- abortSignal.addEventListener('abort', abortListener);
36
- deviceList.on('device-disconnect', disconnectListener);
37
- const uiResp = await uiPromise.promise;
38
- if (!uiResp.payload) {
39
- throw ERRORS.TypedError('Method_PermissionsNotGranted');
40
- }
41
- } finally {
42
- abortSignal.removeEventListener('abort', abortListener);
43
- deviceList.off('device-disconnect', disconnectListener);
44
- }
45
- };
46
- const WAIT_FOR_RECONNECT_TIME = 2000;
47
- const waitForReconnectedDevice = async ({
48
- bootloader,
49
- method,
50
- intermediary
51
- }, {
52
- deviceList,
53
- device,
54
- registerEvents,
55
- postMessage,
56
- log,
57
- abortSignal,
58
- uiPromises
59
- }) => {
60
- const target = intermediary || !bootloader ? 'normal' : 'bootloader';
61
- let i = 0;
62
- if (method !== 'auto') {
63
- log.debug('onCallFirmwareUpdate', 'waiting for device to disconnect');
64
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_RECONNECT, {
65
- device: device.toMessageObject(),
66
- disconnected: false,
67
- method,
68
- target,
69
- i
70
- }));
71
- await new Promise(resolve => {
72
- deviceList.once('device-disconnect', resolve);
73
- });
74
- }
75
- log.debug('onCallFirmwareUpdate', `waiting for device to reconnect in ${bootloader ? 'bootloader' : 'normal'} mode`);
76
- let reconnectedDevice;
77
- let thpPairingError = false;
78
- let skipWaitTime = false;
79
- do {
80
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_RECONNECT, {
81
- device: device.toMessageObject(),
82
- disconnected: true,
83
- method,
84
- target,
85
- i
86
- }));
87
- await resolveAfter(skipWaitTime ? 0 : WAIT_FOR_RECONNECT_TIME);
88
- skipWaitTime = false;
89
- try {
90
- reconnectedDevice = deviceList.getOnlyDevice(device.descriptor.apiType);
91
- } catch {}
92
- if (reconnectedDevice && !reconnectedDevice.features) {
93
- log.debug('onCallFirmwareUpdate', 'we were unable to read device.features on the first interaction after seeing it, retrying...');
94
- let runFn;
95
- if (reconnectedDevice.getThpState()?.properties) {
96
- try {
97
- await waitForThpPairingConfirmation({
98
- uiPromises,
99
- postMessage,
100
- device: reconnectedDevice,
101
- deviceList,
102
- thpPairingError,
103
- abortSignal
104
- });
105
- } catch (e) {
106
- if (e.code === 'Device_Disconnected') {
107
- continue;
108
- }
109
- throw e;
110
- }
111
- runFn = () => Promise.resolve();
112
- }
113
- try {
114
- registerEvents(reconnectedDevice);
115
- await reconnectedDevice.run(runFn, {
116
- skipFirmwareChecks: true,
117
- skipLanguageChecks: true
118
- });
119
- } catch (error) {
120
- uiPromises.rejectAll(error);
121
- thpPairingError = error.code === 'Device_ThpPairingTagInvalid';
122
- if (thpPairingError || error.code === 'Failure_ActionCancelled') {
123
- skipWaitTime = true;
124
- }
125
- }
126
- }
127
- i++;
128
- log.debug('onCallFirmwareUpdate', '...still waiting for device to reconnect', i);
129
- } while (!abortSignal.aborted && (!reconnectedDevice?.features || bootloader === !reconnectedDevice.features.bootloader_mode || intermediary && !isNewer(getFirmwareOrBootloaderVersionArray(reconnectedDevice.features), getFirmwareOrBootloaderVersionArray(device.features))));
130
- if (!reconnectedDevice) {
131
- throw ERRORS.TypedError('Method_Interrupted');
132
- }
133
- registerEvents(reconnectedDevice);
134
- await reconnectedDevice.currentRun;
135
- if (!reconnectedDevice.isUsedHere()) {
136
- await reconnectedDevice.acquire();
137
- }
138
- return reconnectedDevice;
139
- };
140
- const waitForBluetoothReboot = ({
141
- device,
142
- target,
143
- postMessage
144
- }) => new Promise(resolve => {
145
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_RECONNECT, {
146
- device: device.toMessageObject(),
147
- disconnected: false,
148
- method: 'auto',
149
- target,
150
- i: 0
151
- }));
152
- const handler = () => {
153
- const deviceIsReady = target === 'bootloader' && device.features?.bootloader_mode || target === 'normal' && device.getThpState()?.properties;
154
- if (deviceIsReady) {
155
- device.lifecycle.off('device-changed', handler);
156
- resolve();
157
- }
158
- };
159
- device.lifecycle.on('device-changed', handler);
160
- });
161
- const getInstallationParams = (device, params) => {
162
- const btcOnly = params.btcOnly ?? device.firmwareType === FirmwareType.BitcoinOnly;
163
- if (!device.features.bootloader_mode) {
164
- const version = params.binary ? parseFirmwareHeaders(Buffer.from(params.binary)).version : undefined;
165
- const isUpdatingToNewerVersion = !version ? device.firmwareReleaseConfigInfo?.isNewer : isNewer(version, getFirmwareOrBootloaderVersionArray(device.features));
166
- const isUpdatingToEqualFirmwareType = device.firmwareType === FirmwareType.BitcoinOnly === btcOnly;
167
- const upgrade = device.atLeast('2.6.3') && isUpdatingToNewerVersion && isUpdatingToEqualFirmwareType;
168
- const manual = !device.atLeast(['1.10.0', '2.6.0']) && !upgrade;
169
- const getUpdateFlowType = () => {
170
- if (manual) return 'manual';
171
- return upgrade ? 'reboot_and_upgrade' : 'reboot_and_wait';
172
- };
173
- return {
174
- manual,
175
- upgrade,
176
- updateFlowType: getUpdateFlowType(),
177
- btcOnly
178
- };
179
- } else {
180
- return {
181
- manual: false,
182
- upgrade: false,
183
- updateFlowType: 'unknown_flow',
184
- btcOnly
185
- };
186
- }
187
- };
188
- const getFwHeader = binary => Buffer.from(binary.slice(0, 6000)).toString('hex');
189
- const getBinaryHelper = async ({
190
- device,
191
- params,
192
- firmwareType,
193
- isIntermediary,
194
- log
195
- }) => {
196
- if (params.binary) {
197
- return Promise.resolve({
198
- binary: params.binary,
199
- binaryVersion: parseFirmwareHeaders(Buffer.from(params.binary)).version,
200
- release: undefined
201
- });
202
- }
203
- if (!device.firmwareReleaseConfigInfo) {
204
- throw ERRORS.TypedError('Runtime', 'device.firmwareReleaseConfigInfo is not set');
205
- }
206
- const deviceModel = device.features?.internal_model;
207
- const {
208
- release: {
209
- version
210
- },
211
- intermediary
212
- } = device.firmwareReleaseConfigInfo;
213
- log.debug('onCallFirmwareUpdate loading binary', 'isIntermediary', isIntermediary, 'version', version, 'firmwareType', firmwareType, 'deviceModel', deviceModel);
214
- const release = await getReleaseByVersion(device.features, version, firmwareType);
215
- if (!release) {
216
- throw new Error('Missing Firmware release for device');
217
- }
218
- const {
219
- baseUrl,
220
- path
221
- } = getFirmwareLocation({
222
- firmwareVersion: version,
223
- remotePath: release.url,
224
- deviceModel,
225
- firmwareType,
226
- intermediaryVersion: isIntermediary && intermediary ? intermediary.version : undefined
227
- });
228
- return getBinary({
229
- baseUrl,
230
- path,
231
- release
232
- });
233
- };
234
- export const onCallFirmwareUpdate = async ({
235
- params,
236
- context
237
- }) => {
238
- const {
239
- deviceList,
240
- registerEvents,
241
- postMessage,
242
- selectDevice,
243
- log
244
- } = context;
245
- log.debug('onCallFirmwareUpdate with params: ', params);
246
- const firmwareType = params.btcOnly ? FirmwareType.BitcoinOnly : FirmwareType.Universal;
247
- const device = selectDevice(params?.device?.path);
248
- if (!device.features) {
249
- throw ERRORS.TypedError('Device_NotFound', 'Device missing features');
250
- }
251
- if (deviceList.getDeviceCount() > 1 && !deviceList.getOnlyDevice(device.descriptor.apiType)) {
252
- throw ERRORS.TypedError('Device_MultipleNotSupported', 'Firmware update allowed with only 1 device connected');
253
- }
254
- log.debug('onCallFirmwareUpdate', 'device', device);
255
- registerEvents(device);
256
- const {
257
- manual,
258
- upgrade,
259
- updateFlowType,
260
- btcOnly
261
- } = getInstallationParams(device, params);
262
- log.debug('onCallFirmwareUpdate', 'installation params', {
263
- manual,
264
- upgrade,
265
- updateFlowType,
266
- btcOnly
267
- });
268
- const intermediary = !params.binary && device?.firmwareReleaseConfigInfo?.intermediary;
269
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
270
- device: device.toMessageObject(),
271
- operation: 'downloading',
272
- progress: 0
273
- }));
274
- let intermediaryBinaryInfo;
275
- let finalBinaryInfo;
276
- const fwFetchPromises = [];
277
- if (intermediary) {
278
- fwFetchPromises.push(getBinaryHelper({
279
- device,
280
- params,
281
- firmwareType,
282
- isIntermediary: true,
283
- log
284
- }));
285
- }
286
- fwFetchPromises.push(getBinaryHelper({
287
- device,
288
- params,
289
- firmwareType,
290
- isIntermediary: false,
291
- log
292
- }));
293
- const [firstResult, finalResult] = await Promise.all(fwFetchPromises);
294
- if (intermediary) {
295
- intermediaryBinaryInfo = firstResult;
296
- finalBinaryInfo = finalResult;
297
- } else {
298
- finalBinaryInfo = firstResult;
299
- }
300
- const firstBinaryInfo = intermediary ? intermediaryBinaryInfo : finalBinaryInfo;
301
- if (!firstBinaryInfo) {
302
- throw new Error('Missing binary, something went wrong.');
303
- }
304
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
305
- device: device.toMessageObject(),
306
- operation: 'downloading',
307
- progress: 100
308
- }));
309
- if (isFirmwareCacheUsedForSelectedSource(settingsStore.get('firmwareChannel')) && finalBinaryInfo.release) {
310
- const message = createUiMessage(UI_REQUEST.FIRMWARE_DOWNLOADED, {
311
- binary: finalBinaryInfo.binary,
312
- binaryVersion: finalBinaryInfo.binaryVersion,
313
- releaseVersion: finalBinaryInfo.release?.version,
314
- firmwareType,
315
- release: finalBinaryInfo.release,
316
- internalModel: device.features.internal_model
317
- });
318
- postMessage(message);
319
- }
320
- const deviceInitiallyConnectedInBootloader = device.features.bootloader_mode;
321
- let reconnectedDevice = device;
322
- if (deviceInitiallyConnectedInBootloader) {
323
- log.warn('onCallFirmwareUpdate', 'device is already in bootloader mode.');
324
- await device.acquire();
325
- } else if (manual) {
326
- reconnectedDevice = await waitForReconnectedDevice({
327
- bootloader: true,
328
- method: 'manual'
329
- }, {
330
- ...context,
331
- device
332
- });
333
- } else {
334
- const rebootParams = upgrade ? {
335
- boot_command: PROTO.BootCommand.INSTALL_UPGRADE,
336
- firmware_header: getFwHeader(firstBinaryInfo.binary)
337
- } : {};
338
- await device.acquire();
339
- const disconnectedPromise = new Promise(resolve => {
340
- deviceList.once('device-disconnect', resolve);
341
- });
342
- await device.getCommands().typedCall('RebootToBootloader', 'Success', rebootParams);
343
- log.info('onCallFirmwareUpdate', 'waiting for disconnected event after rebootToBootloader...');
344
- if (device.descriptor.apiType === 'bluetooth') {
345
- await device.release();
346
- await waitForBluetoothReboot({
347
- device,
348
- target: 'bootloader',
349
- postMessage
350
- });
351
- } else {
352
- await disconnectedPromise;
353
- if (device.features.major_version === 1) {
354
- await resolveAfter(2000);
355
- }
356
- }
357
- reconnectedDevice = await waitForReconnectedDevice({
358
- bootloader: true,
359
- method: 'auto'
360
- }, {
361
- ...context,
362
- device
363
- });
364
- }
365
- const bootloaderVersion = reconnectedDevice.getVersion();
366
- await reconnectedDevice.initialize(false);
367
- let stripped = stripFwHeaders(firstBinaryInfo.binary);
368
- const payload = !intermediary && shouldStripFwHeaders(device.features) ? stripped : firstBinaryInfo.binary;
369
- await uploadFirmware({
370
- typedCall: reconnectedDevice.getCommands().typedCall,
371
- postMessage,
372
- device: reconnectedDevice,
373
- firmwareUploadRequest: {
374
- payload
375
- },
376
- updateFlowType
377
- });
378
- log.info('onCallFirmwareUpdate', 'firmware uploaded');
379
- if (intermediary) {
380
- log.info('onCallFirmwareUpdate', '...but it was the intermediary firmware, so one more go');
381
- reconnectedDevice = await waitForReconnectedDevice({
382
- bootloader: true,
383
- method: 'manual',
384
- intermediary: true
385
- }, {
386
- ...context,
387
- device: reconnectedDevice
388
- });
389
- stripped = stripFwHeaders(finalBinaryInfo.binary);
390
- await reconnectedDevice.initialize(false);
391
- await uploadFirmware({
392
- typedCall: reconnectedDevice.getCommands().typedCall,
393
- postMessage,
394
- device: reconnectedDevice,
395
- firmwareUploadRequest: {
396
- payload: stripped
397
- },
398
- updateFlowType
399
- });
400
- }
401
- let method = 'wait';
402
- if (device.descriptor.apiType === 'bluetooth') {
403
- await waitForBluetoothReboot({
404
- device,
405
- target: 'normal',
406
- postMessage
407
- });
408
- method = 'auto';
409
- }
410
- reconnectedDevice = await waitForReconnectedDevice({
411
- bootloader: false,
412
- method
413
- }, {
414
- ...context,
415
- device: reconnectedDevice
416
- });
417
- const installedVersion = reconnectedDevice.getVersion();
418
- if (!bootloaderVersion || !installedVersion) {
419
- throw ERRORS.TypedError('Runtime', 'reconnectedDevice.installedVersion is not set');
420
- }
421
- const {
422
- binaryVersion,
423
- release
424
- } = finalBinaryInfo;
425
- const assertBinaryVersion = isEqual(installedVersion, binaryVersion);
426
- const assertReleaseVersion = release?.version ? isEqual(installedVersion, release?.version) : true;
427
- await reconnectedDevice.release();
428
- log.info('onCallFirmwareUpdate', `firmware updated to version ${installedVersion}`);
429
- return {
430
- versionCheck: assertBinaryVersion && assertReleaseVersion,
431
- bootloaderVersion,
432
- installedVersion,
433
- binaryVersion,
434
- releaseVersion: release?.version
435
- };
436
- };