@trezor/connect 9.7.0-beta.1 → 9.7.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 (408) hide show
  1. package/CHANGELOG.md +43 -12
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.js +31 -26
  4. package/lib/api/applySettings.js +43 -40
  5. package/lib/api/authenticateDevice.js +82 -54
  6. package/lib/api/authorizeCoinjoin.js +35 -28
  7. package/lib/api/backupDevice.js +32 -27
  8. package/lib/api/bitcoin/TransactionComposer.js +131 -123
  9. package/lib/api/bitcoin/createPendingTx.js +55 -52
  10. package/lib/api/bitcoin/enhanceSignTx.js +57 -55
  11. package/lib/api/bitcoin/index.js +4 -1
  12. package/lib/api/bitcoin/inputs.js +71 -46
  13. package/lib/api/bitcoin/outputs.js +108 -85
  14. package/lib/api/bitcoin/refTx.d.ts +1 -1
  15. package/lib/api/bitcoin/refTx.js +233 -201
  16. package/lib/api/bitcoin/signtx.js +208 -152
  17. package/lib/api/bitcoin/signtxLegacy.js +169 -119
  18. package/lib/api/bitcoin/signtxVerify.js +80 -67
  19. package/lib/api/bitcoin/transactionBytes.js +61 -59
  20. package/lib/api/bleUnpair.js +28 -25
  21. package/lib/api/blockchainDisconnect.js +31 -24
  22. package/lib/api/blockchainEstimateFee.js +94 -61
  23. package/lib/api/blockchainEvmRpcCall.js +51 -34
  24. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +1 -1
  25. package/lib/api/blockchainGetAccountBalanceHistory.js +50 -32
  26. package/lib/api/blockchainGetCurrentFiatRates.d.ts +1 -1
  27. package/lib/api/blockchainGetCurrentFiatRates.js +43 -29
  28. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +1 -1
  29. package/lib/api/blockchainGetFiatRatesForTimestamps.js +49 -32
  30. package/lib/api/blockchainGetInfo.js +31 -22
  31. package/lib/api/blockchainGetTransactions.d.ts +1 -1
  32. package/lib/api/blockchainGetTransactions.js +36 -24
  33. package/lib/api/blockchainSetCustomBackend.js +34 -25
  34. package/lib/api/blockchainSubscribe.js +57 -36
  35. package/lib/api/blockchainSubscribeFiatRates.js +36 -24
  36. package/lib/api/blockchainUnsubscribe.js +57 -37
  37. package/lib/api/blockchainUnsubscribeFiatRates.js +31 -22
  38. package/lib/api/cancelCoinjoinAuthorization.js +26 -20
  39. package/lib/api/cardano/api/cardanoComposeTransaction.js +75 -50
  40. package/lib/api/cardano/api/cardanoGetAddress.js +105 -102
  41. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +59 -56
  42. package/lib/api/cardano/api/cardanoGetPublicKey.js +58 -58
  43. package/lib/api/cardano/api/cardanoSignMessage.js +81 -78
  44. package/lib/api/cardano/api/cardanoSignTransaction.js +269 -240
  45. package/lib/api/cardano/api/index.js +40 -7
  46. package/lib/api/cardano/cardanoAddressParameters.js +71 -65
  47. package/lib/api/cardano/cardanoAuxiliaryData.js +68 -63
  48. package/lib/api/cardano/cardanoCertificate.js +124 -119
  49. package/lib/api/cardano/cardanoInputs.js +33 -33
  50. package/lib/api/cardano/cardanoOutputs.d.ts +1 -1
  51. package/lib/api/cardano/cardanoOutputs.js +63 -61
  52. package/lib/api/cardano/cardanoTokenBundle.d.ts +2 -2
  53. package/lib/api/cardano/cardanoTokenBundle.js +18 -13
  54. package/lib/api/cardano/cardanoUtils.js +94 -89
  55. package/lib/api/cardano/cardanoWitnesses.js +46 -42
  56. package/lib/api/changeLanguage.js +40 -29
  57. package/lib/api/changePin.js +21 -16
  58. package/lib/api/changeWipeCode.js +24 -16
  59. package/lib/api/cipherKeyValue.js +42 -41
  60. package/lib/api/common/Discovery.js +114 -112
  61. package/lib/api/common/paramsValidator.js +110 -116
  62. package/lib/api/composeTransaction.d.ts +1 -1
  63. package/lib/api/composeTransaction.js +307 -256
  64. package/lib/api/discoverAccounts.js +291 -191
  65. package/lib/api/eos/api/eosGetPublicKey.js +56 -52
  66. package/lib/api/eos/api/eosSignTransaction.js +35 -26
  67. package/lib/api/eos/api/index.js +16 -3
  68. package/lib/api/eos/eosSignTx.js +308 -312
  69. package/lib/api/ethereum/api/ethereumGetAddress.js +106 -107
  70. package/lib/api/ethereum/api/ethereumGetPublicKey.js +72 -62
  71. package/lib/api/ethereum/api/ethereumSignMessage.js +55 -48
  72. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +33 -0
  73. package/lib/api/ethereum/api/ethereumSignTransaction.js +137 -132
  74. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +4 -4
  75. package/lib/api/ethereum/api/ethereumSignTypedData.js +183 -181
  76. package/lib/api/ethereum/api/ethereumVerifyMessage.js +27 -24
  77. package/lib/api/ethereum/api/index.js +40 -7
  78. package/lib/api/ethereum/ethereumDefinitions.js +94 -87
  79. package/lib/api/ethereum/ethereumSignTx.js +116 -111
  80. package/lib/api/ethereum/ethereumSignTypedData.js +98 -95
  81. package/lib/api/evoluGetDelegatedIdentityKey.js +30 -26
  82. package/lib/api/evoluGetNode.js +24 -19
  83. package/lib/api/evoluSignRegistrationRequest.js +26 -21
  84. package/lib/api/firmware/calculateFirmwareHash.js +44 -32
  85. package/lib/api/firmware/getBinary.js +30 -22
  86. package/lib/api/firmware/index.js +46 -8
  87. package/lib/api/firmware/modifyFirmware.js +13 -12
  88. package/lib/api/firmware/parseFirmwareHeaders.js +29 -30
  89. package/lib/api/firmware/uploadFirmware.js +84 -67
  90. package/lib/api/firmware/verifyEntropy.js +88 -83
  91. package/lib/api/getAccountDescriptor.js +118 -120
  92. package/lib/api/getAccountInfo.d.ts +14 -14
  93. package/lib/api/getAccountInfo.js +316 -287
  94. package/lib/api/getAddress.js +128 -118
  95. package/lib/api/getCoinInfo.js +22 -17
  96. package/lib/api/getDeviceState.js +16 -10
  97. package/lib/api/getFeatures.d.ts +1 -1
  98. package/lib/api/getFeatures.js +15 -12
  99. package/lib/api/getFirmwareHash.js +23 -18
  100. package/lib/api/getNonce.js +12 -9
  101. package/lib/api/getOwnershipId.js +57 -51
  102. package/lib/api/getOwnershipProof.js +66 -60
  103. package/lib/api/getPublicKey.js +72 -66
  104. package/lib/api/getSettings.js +12 -9
  105. package/lib/api/index.js +346 -58
  106. package/lib/api/loadDevice.js +40 -35
  107. package/lib/api/monero/api/index.js +28 -5
  108. package/lib/api/monero/api/moneroGetAddress.js +108 -97
  109. package/lib/api/monero/api/moneroGetWatchKey.js +37 -32
  110. package/lib/api/monero/api/moneroKeyImageSync.js +111 -107
  111. package/lib/api/monero/api/moneroSignTransaction.js +173 -185
  112. package/lib/api/nem/api/index.js +16 -3
  113. package/lib/api/nem/api/nemGetAddress.js +107 -102
  114. package/lib/api/nem/api/nemSignTransaction.js +25 -20
  115. package/lib/api/nem/nemSignTx.js +128 -125
  116. package/lib/api/pushTransaction.js +31 -27
  117. package/lib/api/recoveryDevice.js +44 -39
  118. package/lib/api/requestLogin.d.ts +0 -1
  119. package/lib/api/requestLogin.js +47 -52
  120. package/lib/api/resetDevice.js +100 -90
  121. package/lib/api/ripple/api/index.js +16 -3
  122. package/lib/api/ripple/api/rippleGetAddress.js +92 -88
  123. package/lib/api/ripple/api/rippleSignTransaction.js +44 -34
  124. package/lib/api/setBrightness.js +21 -16
  125. package/lib/api/setBusy.js +27 -20
  126. package/lib/api/setProxy.js +22 -15
  127. package/lib/api/showDeviceTutorial.js +18 -15
  128. package/lib/api/signMessage.js +50 -46
  129. package/lib/api/signTransaction.js +325 -238
  130. package/lib/api/solana/additionalInfo.js +17 -14
  131. package/lib/api/solana/api/index.js +28 -5
  132. package/lib/api/solana/api/solanaComposeTransaction.js +46 -50
  133. package/lib/api/solana/api/solanaGetAddress.js +92 -90
  134. package/lib/api/solana/api/solanaGetPublicKey.js +56 -52
  135. package/lib/api/solana/api/solanaSignTransaction.js +175 -168
  136. package/lib/api/solana/solanaDefinitions.js +32 -25
  137. package/lib/api/solana/solanaUtils.d.ts +2 -2
  138. package/lib/api/solana/solanaUtils.js +231 -177
  139. package/lib/api/stellar/api/index.js +16 -3
  140. package/lib/api/stellar/api/stellarGetAddress.js +92 -88
  141. package/lib/api/stellar/api/stellarSignTransaction.js +51 -44
  142. package/lib/api/stellar/stellarSignTx.js +184 -179
  143. package/lib/api/tezos/api/index.js +22 -4
  144. package/lib/api/tezos/api/tezosGetAddress.js +92 -88
  145. package/lib/api/tezos/api/tezosGetPublicKey.js +55 -51
  146. package/lib/api/tezos/api/tezosSignTransaction.js +23 -18
  147. package/lib/api/tezos/tezosSignTx.js +183 -169
  148. package/lib/api/thpGetCredentials.js +23 -20
  149. package/lib/api/thpRemoveCredentials.js +28 -21
  150. package/lib/api/unlockPath.js +28 -21
  151. package/lib/api/verifyMessage.js +35 -33
  152. package/lib/api/wipeDevice.js +39 -34
  153. package/lib/backend/BackendManager.js +127 -107
  154. package/lib/backend/Blockchain.d.ts +1 -1
  155. package/lib/backend/Blockchain.js +220 -205
  156. package/lib/backend/BlockchainLink.js +17 -5
  157. package/lib/backend/fees/BitcoinFeeLevels.js +41 -34
  158. package/lib/backend/fees/EthereumFeeLevels.js +51 -51
  159. package/lib/backend/fees/MiscFeeLevels.js +25 -24
  160. package/lib/backend/fees/index.js +28 -21
  161. package/lib/constants/cardano.js +11 -8
  162. package/lib/constants/errors.js +72 -65
  163. package/lib/constants/firmware.js +5 -5
  164. package/lib/constants/index.js +16 -3
  165. package/lib/constants/nem.js +19 -16
  166. package/lib/constants/network.js +15 -22
  167. package/lib/constants/utxo.js +4 -1
  168. package/lib/core/AbstractMethod.d.ts +1 -1
  169. package/lib/core/AbstractMethod.js +248 -224
  170. package/lib/core/index.js +936 -775
  171. package/lib/core/method.js +19 -16
  172. package/lib/core/method.native.js +28 -23
  173. package/lib/core/onCallFirmwareUpdate.js +368 -299
  174. package/lib/data/DataManager.js +85 -77
  175. package/lib/data/analyticsInfo.js +35 -29
  176. package/lib/data/coinInfo.js +154 -156
  177. package/lib/data/config.d.ts +1 -1
  178. package/lib/data/config.js +362 -330
  179. package/lib/data/connectSettings.js +131 -144
  180. package/lib/data/defaultFeeLevels.js +154 -108
  181. package/lib/data/firmwareInfo.d.ts +1 -0
  182. package/lib/data/firmwareInfo.js +407 -377
  183. package/lib/data/thpSettings.js +36 -35
  184. package/lib/data/udevInfo.js +24 -24
  185. package/lib/data/version.d.ts +1 -1
  186. package/lib/data/version.js +6 -5
  187. package/lib/device/Device.d.ts +6 -7
  188. package/lib/device/Device.js +731 -749
  189. package/lib/device/DeviceCommands.js +226 -194
  190. package/lib/device/DeviceCurrentSession.d.ts +333 -333
  191. package/lib/device/DeviceCurrentSession.js +235 -236
  192. package/lib/device/DeviceList.d.ts +2 -0
  193. package/lib/device/DeviceList.js +219 -181
  194. package/lib/device/StateStorage.js +32 -29
  195. package/lib/device/TransportList.d.ts +1 -1
  196. package/lib/device/TransportList.js +37 -36
  197. package/lib/device/TransportManager.js +136 -140
  198. package/lib/device/calculateRevisionForDevice.js +20 -14
  199. package/lib/device/checkFirmwareRevision.js +66 -54
  200. package/lib/device/resolveDescriptorForTaproot.js +26 -16
  201. package/lib/device/thp/handshake.js +95 -82
  202. package/lib/device/thp/index.js +53 -38
  203. package/lib/device/thp/pairing.js +209 -199
  204. package/lib/device/thp/session.js +27 -19
  205. package/lib/device/thp/thpCall.js +53 -43
  206. package/lib/device/workflow/checkFirmwareHash.js +77 -67
  207. package/lib/device/workflow/checkFirmwareHashWithRetries.js +32 -29
  208. package/lib/device/workflow/handshake.js +50 -41
  209. package/lib/device/workflow/index.js +10 -2
  210. package/lib/device/workflow/trezorPushNotification.js +68 -64
  211. package/lib/device/workflow/validateState.js +155 -129
  212. package/lib/events/blockchain.js +13 -10
  213. package/lib/events/call.d.ts +6 -4
  214. package/lib/events/call.js +14 -13
  215. package/lib/events/core.js +24 -21
  216. package/lib/events/device.d.ts +2 -2
  217. package/lib/events/device.js +32 -19
  218. package/lib/events/iframe.js +13 -10
  219. package/lib/events/index.d.ts +0 -1
  220. package/lib/events/index.js +6 -3
  221. package/lib/events/popup.js +20 -17
  222. package/lib/events/transport.d.ts +2 -2
  223. package/lib/events/transport.js +16 -11
  224. package/lib/events/ui-promise.js +4 -1
  225. package/lib/events/ui-request.d.ts +0 -4
  226. package/lib/events/ui-request.js +48 -46
  227. package/lib/events/ui-response.d.ts +2 -2
  228. package/lib/events/ui-response.js +20 -17
  229. package/lib/events/webextension.js +9 -6
  230. package/lib/exports.js +10 -2
  231. package/lib/factory.d.ts +3 -2
  232. package/lib/factory.js +34 -143
  233. package/lib/impl/core-in-module.d.ts +1 -6
  234. package/lib/impl/core-in-module.js +187 -191
  235. package/lib/impl/dynamic.d.ts +0 -1
  236. package/lib/impl/dynamic.js +108 -97
  237. package/lib/index-browser.d.ts +1 -0
  238. package/lib/index-browser.js +18 -16
  239. package/lib/index.d.ts +2 -0
  240. package/lib/index.js +144 -148
  241. package/lib/types/account.js +4 -1
  242. package/lib/types/api/applyFlags.js +4 -1
  243. package/lib/types/api/applySettings.d.ts +2 -2
  244. package/lib/types/api/applySettings.js +7 -7
  245. package/lib/types/api/authenticateDevice.js +7 -4
  246. package/lib/types/api/authorizeCoinjoin.js +13 -10
  247. package/lib/types/api/backupDevice.js +4 -1
  248. package/lib/types/api/bitcoin/index.d.ts +5 -2
  249. package/lib/types/api/bitcoin/index.js +14 -11
  250. package/lib/types/api/bleUnpair.js +4 -1
  251. package/lib/types/api/blockchainDisconnect.js +4 -1
  252. package/lib/types/api/blockchainEstimateFee.js +4 -1
  253. package/lib/types/api/blockchainEvmRpcCall.js +4 -1
  254. package/lib/types/api/blockchainGetAccountBalanceHistory.js +4 -1
  255. package/lib/types/api/blockchainGetCurrentFiatRates.js +4 -1
  256. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +4 -1
  257. package/lib/types/api/blockchainGetInfo.js +4 -1
  258. package/lib/types/api/blockchainGetTransactions.js +4 -1
  259. package/lib/types/api/blockchainSetCustomBackend.js +4 -1
  260. package/lib/types/api/blockchainSubscribe.js +4 -1
  261. package/lib/types/api/blockchainSubscribeFiatRates.js +4 -1
  262. package/lib/types/api/blockchainUnsubscribe.js +4 -1
  263. package/lib/types/api/blockchainUnsubscribeFiatRates.js +4 -1
  264. package/lib/types/api/cancel.js +4 -1
  265. package/lib/types/api/cancelCoinjoinAuthorization.js +5 -2
  266. package/lib/types/api/cardano/index.d.ts +4 -4
  267. package/lib/types/api/cardano/index.js +173 -180
  268. package/lib/types/api/cardanoComposeTransaction.js +76 -65
  269. package/lib/types/api/cardanoGetAddress.js +4 -1
  270. package/lib/types/api/cardanoGetNativeScriptHash.js +4 -1
  271. package/lib/types/api/cardanoGetPublicKey.js +4 -1
  272. package/lib/types/api/cardanoSignMessage.js +4 -1
  273. package/lib/types/api/cardanoSignTransaction.js +4 -1
  274. package/lib/types/api/changeLanguage.d.ts +1 -1
  275. package/lib/types/api/changeLanguage.js +13 -13
  276. package/lib/types/api/changePin.js +4 -1
  277. package/lib/types/api/changeWipeCode.js +4 -1
  278. package/lib/types/api/cipherKeyValue.d.ts +2 -2
  279. package/lib/types/api/cipherKeyValue.js +11 -8
  280. package/lib/types/api/composeTransaction.js +4 -1
  281. package/lib/types/api/device.js +1 -2
  282. package/lib/types/api/disableWebUSB.js +4 -1
  283. package/lib/types/api/discoverAccounts.js +204 -55
  284. package/lib/types/api/dispose.js +4 -1
  285. package/lib/types/api/eos/index.d.ts +3 -3
  286. package/lib/types/api/eos/index.js +106 -162
  287. package/lib/types/api/eosGetPublicKey.js +4 -1
  288. package/lib/types/api/eosSignTransaction.js +4 -1
  289. package/lib/types/api/ethereum/index.d.ts +7 -7
  290. package/lib/types/api/ethereum/index.js +70 -67
  291. package/lib/types/api/ethereumGetAddress.js +4 -1
  292. package/lib/types/api/ethereumGetPublicKey.js +4 -1
  293. package/lib/types/api/ethereumSignMessage.js +4 -1
  294. package/lib/types/api/ethereumSignTransaction.js +4 -1
  295. package/lib/types/api/ethereumSignTypedData.js +4 -1
  296. package/lib/types/api/ethereumVerifyMessage.js +4 -1
  297. package/lib/types/api/evoluGetDelegatedIdentityKey.js +4 -1
  298. package/lib/types/api/evoluGetNode.js +4 -1
  299. package/lib/types/api/evoluSignRegistrationRequest.js +4 -1
  300. package/lib/types/api/firmwareUpdate.d.ts +1 -1
  301. package/lib/types/api/firmwareUpdate.js +12 -12
  302. package/lib/types/api/getAccountDescriptor.js +8 -5
  303. package/lib/types/api/getAccountInfo.js +4 -1
  304. package/lib/types/api/getAddress.js +11 -11
  305. package/lib/types/api/getCoinInfo.js +4 -1
  306. package/lib/types/api/getDeviceState.js +4 -1
  307. package/lib/types/api/getFeatures.js +4 -1
  308. package/lib/types/api/getFirmwareHash.js +4 -1
  309. package/lib/types/api/getNonce.d.ts +1 -1
  310. package/lib/types/api/getNonce.js +4 -1
  311. package/lib/types/api/getOwnershipId.js +8 -5
  312. package/lib/types/api/getOwnershipProof.js +14 -9
  313. package/lib/types/api/getPublicKey.js +25 -28
  314. package/lib/types/api/getSettings.js +4 -1
  315. package/lib/types/api/index.js +4 -1
  316. package/lib/types/api/init.js +4 -1
  317. package/lib/types/api/loadDevice.js +4 -1
  318. package/lib/types/api/manifest.js +4 -1
  319. package/lib/types/api/monero/index.js +117 -114
  320. package/lib/types/api/moneroGetAddress.js +4 -1
  321. package/lib/types/api/moneroGetWatchKey.js +4 -1
  322. package/lib/types/api/moneroKeyImageSync.js +4 -1
  323. package/lib/types/api/moneroSignTransaction.js +4 -1
  324. package/lib/types/api/nem/index.d.ts +7 -7
  325. package/lib/types/api/nem/index.js +78 -112
  326. package/lib/types/api/nemGetAddress.js +7 -7
  327. package/lib/types/api/nemSignTransaction.js +4 -1
  328. package/lib/types/api/off.js +4 -1
  329. package/lib/types/api/on.js +4 -1
  330. package/lib/types/api/pushTransaction.js +10 -10
  331. package/lib/types/api/recoveryDevice.d.ts +1 -1
  332. package/lib/types/api/recoveryDevice.js +7 -7
  333. package/lib/types/api/removeAllListeners.js +4 -1
  334. package/lib/types/api/renderWebUSBButton.js +4 -1
  335. package/lib/types/api/requestLogin.d.ts +4 -24
  336. package/lib/types/api/requestLogin.js +11 -13
  337. package/lib/types/api/requestWebUSBDevice.js +4 -1
  338. package/lib/types/api/resetDevice.js +4 -1
  339. package/lib/types/api/ripple/index.js +17 -14
  340. package/lib/types/api/rippleGetAddress.js +4 -1
  341. package/lib/types/api/rippleSignTransaction.js +4 -1
  342. package/lib/types/api/setBrightness.js +4 -1
  343. package/lib/types/api/setBusy.js +4 -1
  344. package/lib/types/api/setProxy.js +4 -1
  345. package/lib/types/api/setTransports.js +4 -1
  346. package/lib/types/api/showDeviceTutorial.js +4 -1
  347. package/lib/types/api/signMessage.js +4 -1
  348. package/lib/types/api/signTransaction.js +4 -1
  349. package/lib/types/api/solana/index.js +55 -56
  350. package/lib/types/api/solanaComposeTransaction.js +4 -1
  351. package/lib/types/api/solanaGetAddress.js +4 -1
  352. package/lib/types/api/solanaGetPublicKey.js +4 -1
  353. package/lib/types/api/solanaSignTransaction.js +4 -1
  354. package/lib/types/api/stellar/index.d.ts +146 -146
  355. package/lib/types/api/stellar/index.js +151 -221
  356. package/lib/types/api/stellarGetAddress.js +4 -1
  357. package/lib/types/api/stellarSignTransaction.js +4 -1
  358. package/lib/types/api/tezos/index.js +46 -43
  359. package/lib/types/api/tezosGetAddress.js +4 -1
  360. package/lib/types/api/tezosGetPublicKey.js +4 -1
  361. package/lib/types/api/tezosSignTransaction.js +4 -1
  362. package/lib/types/api/thpGetCredentials.js +4 -1
  363. package/lib/types/api/thpRemoveCredentials.js +4 -1
  364. package/lib/types/api/uiResponse.js +4 -1
  365. package/lib/types/api/unlockPath.js +6 -3
  366. package/lib/types/api/verifyMessage.js +4 -1
  367. package/lib/types/api/wipeDevice.js +4 -1
  368. package/lib/types/coinInfo.js +62 -77
  369. package/lib/types/device.d.ts +7 -2
  370. package/lib/types/device.js +7 -4
  371. package/lib/types/fees.js +31 -37
  372. package/lib/types/firmware.js +4 -1
  373. package/lib/types/index.d.ts +1 -0
  374. package/lib/types/index.js +18 -3
  375. package/lib/types/params.js +25 -16
  376. package/lib/types/settings.js +4 -1
  377. package/lib/types/utils.js +4 -1
  378. package/lib/types/workflow.js +4 -1
  379. package/lib/utils/accountUtils.js +76 -81
  380. package/lib/utils/addressUtils.js +21 -21
  381. package/lib/utils/assetUtils.js +29 -26
  382. package/lib/utils/assets-browser.js +19 -13
  383. package/lib/utils/assets.js +10 -9
  384. package/lib/utils/assets.native.js +24 -23
  385. package/lib/utils/assetsTypes.js +4 -1
  386. package/lib/utils/debug.js +18 -13
  387. package/lib/utils/deviceFeaturesUtils.js +105 -127
  388. package/lib/utils/ethereumUtils.js +9 -6
  389. package/lib/utils/firmwareReleaseConfigUtils.js +69 -57
  390. package/lib/utils/firmwareUtils.js +45 -57
  391. package/lib/utils/formatUtils.d.ts +0 -1
  392. package/lib/utils/formatUtils.js +63 -62
  393. package/lib/utils/hdnodeUtils.d.ts +0 -1
  394. package/lib/utils/hdnodeUtils.js +51 -57
  395. package/lib/utils/interactionTimeout.js +26 -23
  396. package/lib/utils/pathUtils.js +132 -148
  397. package/lib/utils/popupPromiseManager.js +23 -14
  398. package/lib/utils/proxy-event-emitter.js +63 -60
  399. package/lib/utils/uiPromiseManager.js +55 -43
  400. package/lib/utils/urlUtils.js +20 -26
  401. package/lib/utils/versionCheck.js +10 -10
  402. package/lib/workers/workers-browser.d.ts +5 -5
  403. package/lib/workers/workers-browser.js +5 -2
  404. package/lib/workers/workers.d.ts +1 -1
  405. package/lib/workers/workers.js +49 -38
  406. package/lib/workers/workers.native.d.ts +5 -5
  407. package/lib/workers/workers.native.js +4 -1
  408. package/package.json +23 -20
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.parseArrayType = parseArrayType;
4
7
  exports.encodeData = encodeData;
5
8
  exports.getFieldType = getFieldType;
@@ -10,109 +13,109 @@ const paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
10
13
  const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
11
14
  const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
12
15
  function parseArrayType(arrayTypeName) {
13
- const arrayMatch = paramTypeArray.exec(arrayTypeName);
14
- if (arrayMatch === null) {
15
- throw constants_1.ERRORS.TypedError('Runtime', `typename ${arrayTypeName} could not be parsed as an EIP-712 array`);
16
- }
17
- const [_, entryTypeName, arraySize] = arrayMatch;
18
- return {
19
- entryTypeName,
20
- arraySize: parseInt(arraySize, 10) || null,
21
- };
16
+ const arrayMatch = paramTypeArray.exec(arrayTypeName);
17
+ if (arrayMatch === null) {
18
+ throw constants_1.ERRORS.TypedError('Runtime', `typename ${arrayTypeName} could not be parsed as an EIP-712 array`);
19
+ }
20
+ const [_, entryTypeName, arraySize] = arrayMatch;
21
+ return {
22
+ entryTypeName,
23
+ arraySize: parseInt(arraySize, 10) || null
24
+ };
22
25
  }
23
26
  function twosComplement(number, bytes) {
24
- if (bytes < 1 || bytes > 32) {
25
- throw constants_1.ERRORS.TypedError('Runtime', 'Int byte size must be between 1 and 32 (8 and 256 bits)');
26
- }
27
- const minValue = new bigNumber_1.BigNumber(2).exponentiatedBy(bytes * 8 - 1).negated();
28
- const maxValue = minValue.negated().minus(1);
29
- const bigNumber = new bigNumber_1.BigNumber(number);
30
- if (bigNumber.isGreaterThan(maxValue) || bigNumber.isLessThan(minValue)) {
31
- throw constants_1.ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
32
- }
33
- if (bigNumber.isPositive()) {
34
- return bigNumber;
35
- }
36
- return bigNumber.minus(minValue).minus(minValue);
27
+ if (bytes < 1 || bytes > 32) {
28
+ throw constants_1.ERRORS.TypedError('Runtime', 'Int byte size must be between 1 and 32 (8 and 256 bits)');
29
+ }
30
+ const minValue = new bigNumber_1.BigNumber(2).exponentiatedBy(bytes * 8 - 1).negated();
31
+ const maxValue = minValue.negated().minus(1);
32
+ const bigNumber = new bigNumber_1.BigNumber(number);
33
+ if (bigNumber.isGreaterThan(maxValue) || bigNumber.isLessThan(minValue)) {
34
+ throw constants_1.ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
35
+ }
36
+ if (bigNumber.isPositive()) {
37
+ return bigNumber;
38
+ }
39
+ return bigNumber.minus(minValue).minus(minValue);
37
40
  }
38
41
  function intToHex(number, bytes, signed) {
39
- let bigNumber = new bigNumber_1.BigNumber(number);
40
- if (signed) {
41
- bigNumber = twosComplement(bigNumber, bytes);
42
- }
43
- if (bigNumber.isNegative()) {
44
- throw constants_1.ERRORS.TypedError('Runtime', `Cannot convert negative number to unsigned interger: ${number}`);
45
- }
46
- const hex = bigNumber.toString(16);
47
- const hexChars = bytes * 2;
48
- if (hex.length > hexChars) {
49
- throw constants_1.ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
50
- }
51
- return hex.padStart(bytes * 2, '0');
42
+ let bigNumber = new bigNumber_1.BigNumber(number);
43
+ if (signed) {
44
+ bigNumber = twosComplement(bigNumber, bytes);
45
+ }
46
+ if (bigNumber.isNegative()) {
47
+ throw constants_1.ERRORS.TypedError('Runtime', `Cannot convert negative number to unsigned interger: ${number}`);
48
+ }
49
+ const hex = bigNumber.toString(16);
50
+ const hexChars = bytes * 2;
51
+ if (hex.length > hexChars) {
52
+ throw constants_1.ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
53
+ }
54
+ return hex.padStart(bytes * 2, '0');
52
55
  }
53
56
  function encodeData(typeName, data) {
54
- if (paramTypeBytes.test(typeName) || typeName === 'address') {
55
- return (0, formatUtils_1.messageToHex)(data);
56
- }
57
- if (typeName === 'string') {
58
- return Buffer.from(data, 'utf-8').toString('hex');
59
- }
60
- const numberMatch = paramTypeNumber.exec(typeName);
61
- if (numberMatch) {
62
- const [_, intType, bits] = numberMatch;
63
- const bytes = Math.ceil(parseInt(bits, 10) / 8);
64
- return intToHex(data, bytes, intType === 'int');
65
- }
66
- if (typeName === 'bool') {
67
- return data ? '01' : '00';
68
- }
69
- throw constants_1.ERRORS.TypedError('Runtime', `Unsupported data type for direct field encoding: ${typeName}`);
57
+ if (paramTypeBytes.test(typeName) || typeName === 'address') {
58
+ return (0, formatUtils_1.messageToHex)(data);
59
+ }
60
+ if (typeName === 'string') {
61
+ return Buffer.from(data, 'utf-8').toString('hex');
62
+ }
63
+ const numberMatch = paramTypeNumber.exec(typeName);
64
+ if (numberMatch) {
65
+ const [_, intType, bits] = numberMatch;
66
+ const bytes = Math.ceil(parseInt(bits, 10) / 8);
67
+ return intToHex(data, bytes, intType === 'int');
68
+ }
69
+ if (typeName === 'bool') {
70
+ return data ? '01' : '00';
71
+ }
72
+ throw constants_1.ERRORS.TypedError('Runtime', `Unsupported data type for direct field encoding: ${typeName}`);
70
73
  }
71
74
  const paramTypesMap = {
72
- string: constants_1.PROTO.EthereumDataType.STRING,
73
- bool: constants_1.PROTO.EthereumDataType.BOOL,
74
- address: constants_1.PROTO.EthereumDataType.ADDRESS,
75
+ string: constants_1.PROTO.EthereumDataType.STRING,
76
+ bool: constants_1.PROTO.EthereumDataType.BOOL,
77
+ address: constants_1.PROTO.EthereumDataType.ADDRESS
75
78
  };
76
79
  function getFieldType(typeName, types) {
77
- const arrayMatch = paramTypeArray.exec(typeName);
78
- if (arrayMatch) {
79
- const [_, arrayItemTypeName, arraySize] = arrayMatch;
80
- const entryType = getFieldType(arrayItemTypeName, types);
81
- return {
82
- data_type: constants_1.PROTO.EthereumDataType.ARRAY,
83
- size: parseInt(arraySize, 10) || undefined,
84
- entry_type: entryType,
85
- };
86
- }
87
- const numberMatch = paramTypeNumber.exec(typeName);
88
- if (numberMatch) {
89
- const [_, type, bits] = numberMatch;
90
- return {
91
- data_type: type === 'uint' ? constants_1.PROTO.EthereumDataType.UINT : constants_1.PROTO.EthereumDataType.INT,
92
- size: Math.floor(parseInt(bits, 10) / 8),
93
- };
94
- }
95
- const bytesMatch = paramTypeBytes.exec(typeName);
96
- if (bytesMatch) {
97
- const [_, size] = bytesMatch;
98
- return {
99
- data_type: constants_1.PROTO.EthereumDataType.BYTES,
100
- size: parseInt(size, 10) || undefined,
101
- };
102
- }
103
- const fixedSizeTypeMatch = paramTypesMap[typeName];
104
- if (fixedSizeTypeMatch) {
105
- return {
106
- data_type: fixedSizeTypeMatch,
107
- };
108
- }
109
- if (typeName in types) {
110
- return {
111
- data_type: constants_1.PROTO.EthereumDataType.STRUCT,
112
- size: types[typeName].length,
113
- struct_name: typeName,
114
- };
115
- }
116
- throw constants_1.ERRORS.TypedError('Runtime', `No type definition specified: ${typeName}`);
80
+ const arrayMatch = paramTypeArray.exec(typeName);
81
+ if (arrayMatch) {
82
+ const [_, arrayItemTypeName, arraySize] = arrayMatch;
83
+ const entryType = getFieldType(arrayItemTypeName, types);
84
+ return {
85
+ data_type: constants_1.PROTO.EthereumDataType.ARRAY,
86
+ size: parseInt(arraySize, 10) || undefined,
87
+ entry_type: entryType
88
+ };
89
+ }
90
+ const numberMatch = paramTypeNumber.exec(typeName);
91
+ if (numberMatch) {
92
+ const [_, type, bits] = numberMatch;
93
+ return {
94
+ data_type: type === 'uint' ? constants_1.PROTO.EthereumDataType.UINT : constants_1.PROTO.EthereumDataType.INT,
95
+ size: Math.floor(parseInt(bits, 10) / 8)
96
+ };
97
+ }
98
+ const bytesMatch = paramTypeBytes.exec(typeName);
99
+ if (bytesMatch) {
100
+ const [_, size] = bytesMatch;
101
+ return {
102
+ data_type: constants_1.PROTO.EthereumDataType.BYTES,
103
+ size: parseInt(size, 10) || undefined
104
+ };
105
+ }
106
+ const fixedSizeTypeMatch = paramTypesMap[typeName];
107
+ if (fixedSizeTypeMatch) {
108
+ return {
109
+ data_type: fixedSizeTypeMatch
110
+ };
111
+ }
112
+ if (typeName in types) {
113
+ return {
114
+ data_type: constants_1.PROTO.EthereumDataType.STRUCT,
115
+ size: types[typeName].length,
116
+ struct_name: typeName
117
+ };
118
+ }
119
+ throw constants_1.ERRORS.TypedError('Runtime', `No type definition specified: ${typeName}`);
117
120
  }
118
121
  //# sourceMappingURL=ethereumSignTypedData.js.map
@@ -1,37 +1,41 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  const protobuf_1 = require("@trezor/protobuf");
4
7
  const protocol_1 = require("@trezor/protocol");
5
8
  const schema_utils_1 = require("@trezor/schema-utils");
6
9
  const AbstractMethod_1 = require("../core/AbstractMethod");
7
10
  const paramsValidator_1 = require("./common/paramsValidator");
8
11
  class EvoluGetDelegatedIdentityKey extends AbstractMethod_1.AbstractMethod {
9
- hasBundle;
10
- init() {
11
- this.requiredPermissions = ['read'];
12
- this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
13
- const { payload } = this;
14
- (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.EvoluGetDelegatedIdentityKey, payload);
15
- if (payload.thp !== undefined) {
16
- const staticKey = Buffer.from(payload.thp.staticHostKey, 'hex');
17
- const hostStaticKeys = protocol_1.thp.getCurve25519KeyPair(staticKey);
18
- this.params = {
19
- thp_credential: payload.thp.credential,
20
- host_static_public_key: hostStaticKeys.publicKey.toString('hex'),
21
- };
22
- }
23
- else {
24
- this.params = {};
25
- }
26
- }
27
- get info() {
28
- return 'Evolu get delegated identity key';
29
- }
30
- async run() {
31
- const cmd = this.device.getCommands();
32
- const response = await cmd.typedCall('EvoluGetDelegatedIdentityKey', 'EvoluDelegatedIdentityKey', this.params);
33
- return response.message;
12
+ hasBundle;
13
+ init() {
14
+ this.requiredPermissions = ['read'];
15
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
16
+ const {
17
+ payload
18
+ } = this;
19
+ (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.EvoluGetDelegatedIdentityKey, payload);
20
+ if (payload.thp !== undefined) {
21
+ const staticKey = Buffer.from(payload.thp.staticHostKey, 'hex');
22
+ const hostStaticKeys = protocol_1.thp.getCurve25519KeyPair(staticKey);
23
+ this.params = {
24
+ thp_credential: payload.thp.credential,
25
+ host_static_public_key: hostStaticKeys.publicKey.toString('hex')
26
+ };
27
+ } else {
28
+ this.params = {};
34
29
  }
30
+ }
31
+ get info() {
32
+ return 'Evolu get delegated identity key';
33
+ }
34
+ async run() {
35
+ const cmd = this.device.getCommands();
36
+ const response = await cmd.typedCall('EvoluGetDelegatedIdentityKey', 'EvoluDelegatedIdentityKey', this.params);
37
+ return response.message;
38
+ }
35
39
  }
36
40
  exports.default = EvoluGetDelegatedIdentityKey;
37
41
  //# sourceMappingURL=evoluGetDelegatedIdentityKey.js.map
@@ -1,28 +1,33 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  const protobuf_1 = require("@trezor/protobuf");
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const AbstractMethod_1 = require("../core/AbstractMethod");
6
9
  const paramsValidator_1 = require("./common/paramsValidator");
7
10
  class EvoluGetNode extends AbstractMethod_1.AbstractMethod {
8
- hasBundle;
9
- init() {
10
- this.requiredPermissions = ['read'];
11
- this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
12
- const { payload } = this;
13
- (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.EvoluGetNode, payload);
14
- this.params = {
15
- proof_of_delegated_identity: payload.proof_of_delegated_identity,
16
- };
17
- }
18
- get info() {
19
- return 'Evolu get node';
20
- }
21
- async run() {
22
- const cmd = this.device.getCommands();
23
- const response = await cmd.typedCall('EvoluGetNode', 'EvoluNode', this.params);
24
- return response.message;
25
- }
11
+ hasBundle;
12
+ init() {
13
+ this.requiredPermissions = ['read'];
14
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
15
+ const {
16
+ payload
17
+ } = this;
18
+ (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.EvoluGetNode, payload);
19
+ this.params = {
20
+ proof_of_delegated_identity: payload.proof_of_delegated_identity
21
+ };
22
+ }
23
+ get info() {
24
+ return 'Evolu get node';
25
+ }
26
+ async run() {
27
+ const cmd = this.device.getCommands();
28
+ const response = await cmd.typedCall('EvoluGetNode', 'EvoluNode', this.params);
29
+ return response.message;
30
+ }
26
31
  }
27
32
  exports.default = EvoluGetNode;
28
33
  //# sourceMappingURL=evoluGetNode.js.map
@@ -1,30 +1,35 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  const protobuf_1 = require("@trezor/protobuf");
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const AbstractMethod_1 = require("../core/AbstractMethod");
6
9
  const paramsValidator_1 = require("./common/paramsValidator");
7
10
  class EvoluSignRegistrationRequest extends AbstractMethod_1.AbstractMethod {
8
- hasBundle;
9
- init() {
10
- this.requiredPermissions = ['read'];
11
- this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
12
- const { payload } = this;
13
- (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.EvoluSignRegistrationRequest, payload);
14
- this.params = {
15
- challenge_from_server: payload.challenge_from_server,
16
- size_to_acquire: payload.size_to_acquire,
17
- proof_of_delegated_identity: payload.proof_of_delegated_identity,
18
- };
19
- }
20
- get info() {
21
- return 'Evolu sign registration request';
22
- }
23
- async run() {
24
- const cmd = this.device.getCommands();
25
- const response = await cmd.typedCall('EvoluSignRegistrationRequest', 'EvoluRegistrationRequest', this.params);
26
- return response.message;
27
- }
11
+ hasBundle;
12
+ init() {
13
+ this.requiredPermissions = ['read'];
14
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
15
+ const {
16
+ payload
17
+ } = this;
18
+ (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.EvoluSignRegistrationRequest, payload);
19
+ this.params = {
20
+ challenge_from_server: payload.challenge_from_server,
21
+ size_to_acquire: payload.size_to_acquire,
22
+ proof_of_delegated_identity: payload.proof_of_delegated_identity
23
+ };
24
+ }
25
+ get info() {
26
+ return 'Evolu sign registration request';
27
+ }
28
+ async run() {
29
+ const cmd = this.device.getCommands();
30
+ const response = await cmd.typedCall('EvoluSignRegistrationRequest', 'EvoluRegistrationRequest', this.params);
31
+ return response.message;
32
+ }
28
33
  }
29
34
  exports.default = EvoluSignRegistrationRequest;
30
35
  //# sourceMappingURL=evoluSignRegistrationRequest.js.map
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.calculateFirmwareHash = void 0;
4
7
  const blakejs_1 = require("blakejs");
5
8
  const device_utils_1 = require("@trezor/device-utils");
@@ -11,39 +14,48 @@ const SIZE_T3B1 = 208 * 8 * 1024;
11
14
  const SIZE_T3T1 = 208 * 8 * 1024;
12
15
  const SIZE_T3W1 = 417 * 8 * 1024;
13
16
  const firmwareSizeMap = {
14
- [device_utils_1.DeviceModelInternal.T1B1]: SIZE_T1B1,
15
- [device_utils_1.DeviceModelInternal.T2T1]: SIZE_T2T1,
16
- [device_utils_1.DeviceModelInternal.T2B1]: SIZE_T2B1,
17
- [device_utils_1.DeviceModelInternal.T3B1]: SIZE_T3B1,
18
- [device_utils_1.DeviceModelInternal.T3T1]: SIZE_T3T1,
19
- [device_utils_1.DeviceModelInternal.T3W1]: SIZE_T3W1,
17
+ [device_utils_1.DeviceModelInternal.T1B1]: SIZE_T1B1,
18
+ [device_utils_1.DeviceModelInternal.T2T1]: SIZE_T2T1,
19
+ [device_utils_1.DeviceModelInternal.T2B1]: SIZE_T2B1,
20
+ [device_utils_1.DeviceModelInternal.T3B1]: SIZE_T3B1,
21
+ [device_utils_1.DeviceModelInternal.T3T1]: SIZE_T3T1,
22
+ [device_utils_1.DeviceModelInternal.T3W1]: SIZE_T3W1
20
23
  };
21
- const getSizeForModel = ({ internal_model, firmwareVersion, }) => {
22
- const size = firmwareSizeMap[internal_model] ?? SIZE_T1B1;
23
- if (firmwareVersion !== undefined &&
24
- internal_model === device_utils_1.DeviceModelInternal.T3W1 &&
25
- utils_1.versionUtils.isEqual(firmwareVersion, [2, 9, 3])) {
26
- return size - 16 * 1024;
27
- }
28
- return size;
24
+ const getSizeForModel = ({
25
+ internal_model,
26
+ firmwareVersion
27
+ }) => {
28
+ const size = firmwareSizeMap[internal_model] ?? SIZE_T1B1;
29
+ if (firmwareVersion !== undefined && internal_model === device_utils_1.DeviceModelInternal.T3W1 && utils_1.versionUtils.isEqual(firmwareVersion, [2, 9, 3])) {
30
+ return size - 16 * 1024;
31
+ }
32
+ return size;
29
33
  };
30
- const calculateFirmwareHash = ({ internal_model, firmwareVersion, fw, key, }) => {
31
- const size = getSizeForModel({ internal_model, firmwareVersion });
32
- const padding = size - fw.byteLength;
33
- if (padding < 0) {
34
- throw new Error('Firmware too big');
35
- }
36
- const data = new Uint8Array(new ArrayBuffer(size));
37
- data.set(new Uint8Array(fw));
38
- if (padding > 0) {
39
- const zeroBytes = Buffer.alloc(padding);
40
- zeroBytes.fill(Buffer.from('ff', 'hex'));
41
- data.set(zeroBytes, fw.byteLength);
42
- }
43
- return {
44
- hash: key && key.length > 0 ? (0, blakejs_1.blake2sHex)(data, key) : (0, blakejs_1.blake2sHex)(data),
45
- challenge: key ? key.toString('hex') : '',
46
- };
34
+ const calculateFirmwareHash = ({
35
+ internal_model,
36
+ firmwareVersion,
37
+ fw,
38
+ key
39
+ }) => {
40
+ const size = getSizeForModel({
41
+ internal_model,
42
+ firmwareVersion
43
+ });
44
+ const padding = size - fw.byteLength;
45
+ if (padding < 0) {
46
+ throw new Error('Firmware too big');
47
+ }
48
+ const data = new Uint8Array(new ArrayBuffer(size));
49
+ data.set(new Uint8Array(fw));
50
+ if (padding > 0) {
51
+ const zeroBytes = Buffer.alloc(padding);
52
+ zeroBytes.fill(Buffer.from('ff', 'hex'));
53
+ data.set(zeroBytes, fw.byteLength);
54
+ }
55
+ return {
56
+ hash: key && key.length > 0 ? (0, blakejs_1.blake2sHex)(data, key) : (0, blakejs_1.blake2sHex)(data),
57
+ challenge: key ? key.toString('hex') : ''
58
+ };
47
59
  };
48
60
  exports.calculateFirmwareHash = calculateFirmwareHash;
49
61
  //# sourceMappingURL=calculateFirmwareHash.js.map
@@ -1,34 +1,42 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.getBinaryOptional = exports.getBinary = void 0;
4
7
  const utils_1 = require("@trezor/utils");
5
8
  const parseFirmwareHeaders_1 = require("./parseFirmwareHeaders");
6
9
  const constants_1 = require("../../constants");
7
10
  const assets_1 = require("../../utils/assets");
8
11
  const MIN_FIRMWARE_SIZE_BYTES = 200;
9
- const getBinary = async ({ baseUrl, path, release, }) => {
10
- const sanitizedBaseUrl = (0, utils_1.removeTrailingSlashes)(baseUrl);
11
- const url = `${sanitizedBaseUrl}/${path}`;
12
- const binaryArrayBuffer = (await (0, assets_1.httpRequest)(url, 'binary'));
13
- if (binaryArrayBuffer.byteLength < MIN_FIRMWARE_SIZE_BYTES) {
14
- throw constants_1.ERRORS.TypedError('Runtime', 'Firmware binary is too small');
15
- }
16
- const firmwareBuffer = Buffer.from(binaryArrayBuffer);
17
- const { version: binaryVersion } = (0, parseFirmwareHeaders_1.parseFirmwareHeaders)(firmwareBuffer);
18
- return {
19
- binary: binaryArrayBuffer,
20
- binaryVersion,
21
- release,
22
- };
12
+ const getBinary = async ({
13
+ baseUrl,
14
+ path,
15
+ release
16
+ }) => {
17
+ const sanitizedBaseUrl = (0, utils_1.removeTrailingSlashes)(baseUrl);
18
+ const url = `${sanitizedBaseUrl}/${path}`;
19
+ const binaryArrayBuffer = await (0, assets_1.httpRequest)(url, 'binary');
20
+ if (binaryArrayBuffer.byteLength < MIN_FIRMWARE_SIZE_BYTES) {
21
+ throw constants_1.ERRORS.TypedError('Runtime', 'Firmware binary is too small');
22
+ }
23
+ const firmwareBuffer = Buffer.from(binaryArrayBuffer);
24
+ const {
25
+ version: binaryVersion
26
+ } = (0, parseFirmwareHeaders_1.parseFirmwareHeaders)(firmwareBuffer);
27
+ return {
28
+ binary: binaryArrayBuffer,
29
+ binaryVersion,
30
+ release
31
+ };
23
32
  };
24
33
  exports.getBinary = getBinary;
25
- const getBinaryOptional = async (params) => {
26
- try {
27
- return await (0, exports.getBinary)(params);
28
- }
29
- catch {
30
- return null;
31
- }
34
+ const getBinaryOptional = async params => {
35
+ try {
36
+ return await (0, exports.getBinary)(params);
37
+ } catch {
38
+ return null;
39
+ }
32
40
  };
33
41
  exports.getBinaryOptional = getBinaryOptional;
34
42
  //# sourceMappingURL=getBinary.js.map
@@ -1,16 +1,54 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.parseFirmwareHeaders = exports.calculateFirmwareHash = exports.uploadFirmware = exports.stripFwHeaders = exports.shouldStripFwHeaders = exports.getBinaryOptional = exports.getBinary = void 0;
4
7
  var getBinary_1 = require("./getBinary");
5
- Object.defineProperty(exports, "getBinary", { enumerable: true, get: function () { return getBinary_1.getBinary; } });
6
- Object.defineProperty(exports, "getBinaryOptional", { enumerable: true, get: function () { return getBinary_1.getBinaryOptional; } });
8
+ Object.defineProperty(exports, "getBinary", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return getBinary_1.getBinary;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "getBinaryOptional", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return getBinary_1.getBinaryOptional;
18
+ }
19
+ });
7
20
  var modifyFirmware_1 = require("./modifyFirmware");
8
- Object.defineProperty(exports, "shouldStripFwHeaders", { enumerable: true, get: function () { return modifyFirmware_1.shouldStripFwHeaders; } });
9
- Object.defineProperty(exports, "stripFwHeaders", { enumerable: true, get: function () { return modifyFirmware_1.stripFwHeaders; } });
21
+ Object.defineProperty(exports, "shouldStripFwHeaders", {
22
+ enumerable: true,
23
+ get: function () {
24
+ return modifyFirmware_1.shouldStripFwHeaders;
25
+ }
26
+ });
27
+ Object.defineProperty(exports, "stripFwHeaders", {
28
+ enumerable: true,
29
+ get: function () {
30
+ return modifyFirmware_1.stripFwHeaders;
31
+ }
32
+ });
10
33
  var uploadFirmware_1 = require("./uploadFirmware");
11
- Object.defineProperty(exports, "uploadFirmware", { enumerable: true, get: function () { return uploadFirmware_1.uploadFirmware; } });
34
+ Object.defineProperty(exports, "uploadFirmware", {
35
+ enumerable: true,
36
+ get: function () {
37
+ return uploadFirmware_1.uploadFirmware;
38
+ }
39
+ });
12
40
  var calculateFirmwareHash_1 = require("./calculateFirmwareHash");
13
- Object.defineProperty(exports, "calculateFirmwareHash", { enumerable: true, get: function () { return calculateFirmwareHash_1.calculateFirmwareHash; } });
41
+ Object.defineProperty(exports, "calculateFirmwareHash", {
42
+ enumerable: true,
43
+ get: function () {
44
+ return calculateFirmwareHash_1.calculateFirmwareHash;
45
+ }
46
+ });
14
47
  var parseFirmwareHeaders_1 = require("./parseFirmwareHeaders");
15
- Object.defineProperty(exports, "parseFirmwareHeaders", { enumerable: true, get: function () { return parseFirmwareHeaders_1.parseFirmwareHeaders; } });
48
+ Object.defineProperty(exports, "parseFirmwareHeaders", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return parseFirmwareHeaders_1.parseFirmwareHeaders;
52
+ }
53
+ });
16
54
  //# sourceMappingURL=index.js.map
@@ -1,20 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.stripFwHeaders = exports.shouldStripFwHeaders = void 0;
4
7
  const utils_1 = require("@trezor/utils");
5
- const shouldStripFwHeaders = (features) => {
6
- if (features.major_version === 2)
7
- return false;
8
- return utils_1.versionUtils.isNewerOrEqual([features.major_version, features.minor_version, features.patch_version], [1, 8, 0]);
8
+ const shouldStripFwHeaders = features => {
9
+ if (features.major_version === 2) return false;
10
+ return utils_1.versionUtils.isNewerOrEqual([features.major_version, features.minor_version, features.patch_version], [1, 8, 0]);
9
11
  };
10
12
  exports.shouldStripFwHeaders = shouldStripFwHeaders;
11
- const stripFwHeaders = (fw) => {
12
- const fwView = new Uint8Array(fw);
13
- if (String.fromCharCode(...Array.from(fwView.slice(0, 4))) === 'TRZR' &&
14
- String.fromCharCode(...Array.from(fwView.slice(256, 260))) === 'TRZF') {
15
- return fw.slice(256);
16
- }
17
- return fw;
13
+ const stripFwHeaders = fw => {
14
+ const fwView = new Uint8Array(fw);
15
+ if (String.fromCharCode(...Array.from(fwView.slice(0, 4))) === 'TRZR' && String.fromCharCode(...Array.from(fwView.slice(256, 260))) === 'TRZF') {
16
+ return fw.slice(256);
17
+ }
18
+ return fw;
18
19
  };
19
20
  exports.stripFwHeaders = stripFwHeaders;
20
21
  //# sourceMappingURL=modifyFirmware.js.map