@trezor/connect 10.0.0-beta.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 (429) hide show
  1. package/CHANGELOG.md +56 -9
  2. package/README.md +4 -2
  3. package/lib/exports.d.ts +1 -3
  4. package/lib/exports.js +1 -3
  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.js +2 -26
  12. package/lib/index.js +1 -11
  13. package/lib/index.native.d.ts +4 -0
  14. package/lib/index.native.js +5 -0
  15. package/package.json +16 -67
  16. package/lib/api/applyFlags.d.ts +0 -20
  17. package/lib/api/applyFlags.js +0 -38
  18. package/lib/api/applySettings.d.ts +0 -20
  19. package/lib/api/applySettings.js +0 -57
  20. package/lib/api/authenticateDevice.d.ts +0 -25
  21. package/lib/api/authenticateDevice.js +0 -195
  22. package/lib/api/authorizeCoinjoin.d.ts +0 -11
  23. package/lib/api/authorizeCoinjoin.js +0 -44
  24. package/lib/api/backupDevice.d.ts +0 -19
  25. package/lib/api/backupDevice.js +0 -39
  26. package/lib/api/bitcoin/TransactionComposer.d.ts +0 -46
  27. package/lib/api/bitcoin/TransactionComposer.js +0 -147
  28. package/lib/api/bitcoin/createPendingTx.d.ts +0 -37
  29. package/lib/api/bitcoin/createPendingTx.js +0 -55
  30. package/lib/api/bitcoin/enhanceSignTx.d.ts +0 -2
  31. package/lib/api/bitcoin/enhanceSignTx.js +0 -23
  32. package/lib/api/bitcoin/index.d.ts +0 -9
  33. package/lib/api/bitcoin/index.js +0 -9
  34. package/lib/api/bitcoin/inputs.d.ts +0 -4
  35. package/lib/api/bitcoin/inputs.js +0 -63
  36. package/lib/api/bitcoin/outputs.d.ts +0 -5
  37. package/lib/api/bitcoin/outputs.js +0 -128
  38. package/lib/api/bitcoin/refTx.d.ts +0 -23
  39. package/lib/api/bitcoin/refTx.js +0 -249
  40. package/lib/api/bitcoin/signtx.d.ts +0 -30
  41. package/lib/api/bitcoin/signtx.js +0 -229
  42. package/lib/api/bitcoin/signtxLegacy.d.ts +0 -10
  43. package/lib/api/bitcoin/signtxLegacy.js +0 -186
  44. package/lib/api/bitcoin/signtxVerify.d.ts +0 -12
  45. package/lib/api/bitcoin/signtxVerify.js +0 -95
  46. package/lib/api/bitcoin/transactionBytes.d.ts +0 -3
  47. package/lib/api/bitcoin/transactionBytes.js +0 -65
  48. package/lib/api/bleUnpair.d.ts +0 -11
  49. package/lib/api/bleUnpair.js +0 -37
  50. package/lib/api/blockchainDisconnect.d.ts +0 -16
  51. package/lib/api/blockchainDisconnect.js +0 -37
  52. package/lib/api/blockchainEstimateFee.d.ts +0 -16
  53. package/lib/api/blockchainEstimateFee.js +0 -102
  54. package/lib/api/blockchainEvmRpcCall.d.ts +0 -19
  55. package/lib/api/blockchainEvmRpcCall.js +0 -57
  56. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +0 -16
  57. package/lib/api/blockchainGetAccountBalanceHistory.js +0 -60
  58. package/lib/api/blockchainGetContractInfo.d.ts +0 -16
  59. package/lib/api/blockchainGetContractInfo.js +0 -46
  60. package/lib/api/blockchainGetCurrentFiatRates.d.ts +0 -20
  61. package/lib/api/blockchainGetCurrentFiatRates.js +0 -49
  62. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +0 -23
  63. package/lib/api/blockchainGetFiatRatesForTimestamps.js +0 -55
  64. package/lib/api/blockchainGetInfo.d.ts +0 -15
  65. package/lib/api/blockchainGetInfo.js +0 -37
  66. package/lib/api/blockchainGetTransactions.d.ts +0 -18
  67. package/lib/api/blockchainGetTransactions.js +0 -47
  68. package/lib/api/blockchainSetCustomBackend.d.ts +0 -17
  69. package/lib/api/blockchainSetCustomBackend.js +0 -43
  70. package/lib/api/blockchainSubscribe.d.ts +0 -19
  71. package/lib/api/blockchainSubscribe.js +0 -66
  72. package/lib/api/blockchainSubscribeFiatRates.d.ts +0 -19
  73. package/lib/api/blockchainSubscribeFiatRates.js +0 -43
  74. package/lib/api/blockchainUnsubscribe.d.ts +0 -19
  75. package/lib/api/blockchainUnsubscribe.js +0 -66
  76. package/lib/api/blockchainUnsubscribeFiatRates.d.ts +0 -17
  77. package/lib/api/blockchainUnsubscribeFiatRates.js +0 -37
  78. package/lib/api/blockchainValidateEvmRpcUrl.d.ts +0 -17
  79. package/lib/api/blockchainValidateEvmRpcUrl.js +0 -54
  80. package/lib/api/cancelCoinjoinAuthorization.d.ts +0 -11
  81. package/lib/api/cancelCoinjoinAuthorization.js +0 -33
  82. package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +0 -10
  83. package/lib/api/cardano/api/cardanoComposeTransaction.js +0 -84
  84. package/lib/api/cardano/api/cardanoGetAddress.d.ts +0 -34
  85. package/lib/api/cardano/api/cardanoGetAddress.js +0 -130
  86. package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +0 -12
  87. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +0 -66
  88. package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +0 -22
  89. package/lib/api/cardano/api/cardanoGetPublicKey.js +0 -92
  90. package/lib/api/cardano/api/cardanoSignMessage.d.ts +0 -22
  91. package/lib/api/cardano/api/cardanoSignMessage.js +0 -90
  92. package/lib/api/cardano/api/cardanoSignTransaction.d.ts +0 -81
  93. package/lib/api/cardano/api/cardanoSignTransaction.js +0 -301
  94. package/lib/api/cardano/api/index.d.ts +0 -6
  95. package/lib/api/cardano/api/index.js +0 -6
  96. package/lib/api/cardano/cardanoAddressParameters.d.ts +0 -6
  97. package/lib/api/cardano/cardanoAddressParameters.js +0 -79
  98. package/lib/api/cardano/cardanoAuxiliaryData.d.ts +0 -4
  99. package/lib/api/cardano/cardanoAuxiliaryData.js +0 -74
  100. package/lib/api/cardano/cardanoCertificate.d.ts +0 -13
  101. package/lib/api/cardano/cardanoCertificate.js +0 -142
  102. package/lib/api/cardano/cardanoInputs.d.ts +0 -25
  103. package/lib/api/cardano/cardanoInputs.js +0 -39
  104. package/lib/api/cardano/cardanoOutputs.d.ts +0 -40
  105. package/lib/api/cardano/cardanoOutputs.js +0 -70
  106. package/lib/api/cardano/cardanoTokenBundle.d.ts +0 -12
  107. package/lib/api/cardano/cardanoTokenBundle.js +0 -21
  108. package/lib/api/cardano/cardanoUtils.d.ts +0 -17
  109. package/lib/api/cardano/cardanoUtils.js +0 -100
  110. package/lib/api/cardano/cardanoWitnesses.d.ts +0 -4
  111. package/lib/api/cardano/cardanoWitnesses.js +0 -47
  112. package/lib/api/changeLanguage.d.ts +0 -18
  113. package/lib/api/changeLanguage.js +0 -49
  114. package/lib/api/changePin.d.ts +0 -11
  115. package/lib/api/changePin.js +0 -27
  116. package/lib/api/changeWipeCode.d.ts +0 -11
  117. package/lib/api/changeWipeCode.js +0 -29
  118. package/lib/api/cipherKeyValue.d.ts +0 -17
  119. package/lib/api/cipherKeyValue.js +0 -58
  120. package/lib/api/common/AbstractMiscGetAddress.d.ts +0 -37
  121. package/lib/api/common/AbstractMiscGetAddress.js +0 -126
  122. package/lib/api/common/Discovery.d.ts +0 -33
  123. package/lib/api/common/Discovery.js +0 -119
  124. package/lib/api/common/paramsValidator.d.ts +0 -24
  125. package/lib/api/common/paramsValidator.js +0 -136
  126. package/lib/api/common/requestExistingAccounts.d.ts +0 -14
  127. package/lib/api/common/requestExistingAccounts.js +0 -20
  128. package/lib/api/composeTransaction.d.ts +0 -36
  129. package/lib/api/composeTransaction.js +0 -404
  130. package/lib/api/discoverAccounts.d.ts +0 -40
  131. package/lib/api/discoverAccounts.js +0 -360
  132. package/lib/api/ethereum/api/ethereumGetAddress.d.ts +0 -30
  133. package/lib/api/ethereum/api/ethereumGetAddress.js +0 -150
  134. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +0 -52
  135. package/lib/api/ethereum/api/ethereumGetPublicKey.js +0 -100
  136. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +0 -27
  137. package/lib/api/ethereum/api/ethereumSignMessage.js +0 -64
  138. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +0 -83
  139. package/lib/api/ethereum/api/ethereumSignTransaction.js +0 -148
  140. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +0 -117
  141. package/lib/api/ethereum/api/ethereumSignTypedData.js +0 -203
  142. package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +0 -12
  143. package/lib/api/ethereum/api/ethereumVerifyMessage.js +0 -35
  144. package/lib/api/ethereum/api/index.d.ts +0 -6
  145. package/lib/api/ethereum/api/index.js +0 -6
  146. package/lib/api/ethereum/ethereumDefinitions.d.ts +0 -53
  147. package/lib/api/ethereum/ethereumDefinitions.js +0 -135
  148. package/lib/api/ethereum/ethereumSignTx.d.ts +0 -16
  149. package/lib/api/ethereum/ethereumSignTx.js +0 -144
  150. package/lib/api/ethereum/ethereumSignTypedData.d.ts +0 -32
  151. package/lib/api/ethereum/ethereumSignTypedData.js +0 -175
  152. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +0 -14
  153. package/lib/api/evoluGetDelegatedIdentityKey.js +0 -29
  154. package/lib/api/evoluGetNode.d.ts +0 -13
  155. package/lib/api/evoluGetNode.js +0 -29
  156. package/lib/api/evoluSignRegistrationRequest.d.ts +0 -16
  157. package/lib/api/evoluSignRegistrationRequest.js +0 -33
  158. package/lib/api/firmware/calculateFirmwareHash.d.ts +0 -18
  159. package/lib/api/firmware/calculateFirmwareHash.js +0 -56
  160. package/lib/api/firmware/calculateXPubHash.d.ts +0 -14
  161. package/lib/api/firmware/calculateXPubHash.js +0 -16
  162. package/lib/api/firmware/getBinary.d.ts +0 -14
  163. package/lib/api/firmware/getBinary.js +0 -33
  164. package/lib/api/firmware/index.d.ts +0 -6
  165. package/lib/api/firmware/index.js +0 -6
  166. package/lib/api/firmware/modifyFirmware.d.ts +0 -3
  167. package/lib/api/firmware/modifyFirmware.js +0 -13
  168. package/lib/api/firmware/parseFirmwareHeaders.d.ts +0 -4
  169. package/lib/api/firmware/parseFirmwareHeaders.js +0 -26
  170. package/lib/api/firmware/uploadFirmware.d.ts +0 -27
  171. package/lib/api/firmware/uploadFirmware.js +0 -99
  172. package/lib/api/firmware/verifyEntropy.d.ts +0 -25
  173. package/lib/api/firmware/verifyEntropy.js +0 -110
  174. package/lib/api/getAccountInfo.d.ts +0 -21
  175. package/lib/api/getAccountInfo.js +0 -253
  176. package/lib/api/getAddress.d.ts +0 -45
  177. package/lib/api/getAddress.js +0 -153
  178. package/lib/api/getCoinInfo.d.ts +0 -148
  179. package/lib/api/getCoinInfo.js +0 -25
  180. package/lib/api/getDeviceState.d.ts +0 -8
  181. package/lib/api/getDeviceState.js +0 -18
  182. package/lib/api/getFeatures.d.ts +0 -71
  183. package/lib/api/getFeatures.js +0 -22
  184. package/lib/api/getFirmwareHash.d.ts +0 -11
  185. package/lib/api/getFirmwareHash.js +0 -29
  186. package/lib/api/getNonce.d.ts +0 -10
  187. package/lib/api/getNonce.js +0 -18
  188. package/lib/api/getOwnershipId.d.ts +0 -17
  189. package/lib/api/getOwnershipId.js +0 -88
  190. package/lib/api/getOwnershipProof.d.ts +0 -17
  191. package/lib/api/getOwnershipProof.js +0 -95
  192. package/lib/api/getPublicKey.d.ts +0 -54
  193. package/lib/api/getPublicKey.js +0 -106
  194. package/lib/api/getSettings.d.ts +0 -24
  195. package/lib/api/getSettings.js +0 -21
  196. package/lib/api/index.d.ts +0 -62
  197. package/lib/api/index.js +0 -62
  198. package/lib/api/loadDevice.d.ts +0 -16
  199. package/lib/api/loadDevice.js +0 -46
  200. package/lib/api/monero/api/index.d.ts +0 -4
  201. package/lib/api/monero/api/index.js +0 -4
  202. package/lib/api/monero/api/moneroGetAddress.d.ts +0 -32
  203. package/lib/api/monero/api/moneroGetAddress.js +0 -117
  204. package/lib/api/monero/api/moneroGetWatchKey.d.ts +0 -14
  205. package/lib/api/monero/api/moneroGetWatchKey.js +0 -45
  206. package/lib/api/monero/api/moneroKeyImageSync.d.ts +0 -17
  207. package/lib/api/monero/api/moneroKeyImageSync.js +0 -128
  208. package/lib/api/monero/api/moneroSignTransaction.d.ts +0 -17
  209. package/lib/api/monero/api/moneroSignTransaction.js +0 -218
  210. package/lib/api/nostr/nostrGetPublicKey.d.ts +0 -15
  211. package/lib/api/nostr/nostrGetPublicKey.js +0 -38
  212. package/lib/api/nostr/nostrSignEvent.d.ts +0 -13
  213. package/lib/api/nostr/nostrSignEvent.js +0 -36
  214. package/lib/api/pingDevice.d.ts +0 -11
  215. package/lib/api/pingDevice.js +0 -29
  216. package/lib/api/pushTransaction.d.ts +0 -19
  217. package/lib/api/pushTransaction.js +0 -39
  218. package/lib/api/recoveryDevice.d.ts +0 -20
  219. package/lib/api/recoveryDevice.js +0 -52
  220. package/lib/api/requestLogin.d.ts +0 -14
  221. package/lib/api/requestLogin.js +0 -53
  222. package/lib/api/resetDevice.d.ts +0 -22
  223. package/lib/api/resetDevice.js +0 -133
  224. package/lib/api/ripple/api/index.d.ts +0 -2
  225. package/lib/api/ripple/api/index.js +0 -2
  226. package/lib/api/ripple/api/rippleGetAddress.d.ts +0 -17
  227. package/lib/api/ripple/api/rippleGetAddress.js +0 -22
  228. package/lib/api/ripple/api/rippleSignTransaction.d.ts +0 -13
  229. package/lib/api/ripple/api/rippleSignTransaction.js +0 -52
  230. package/lib/api/selectAccount.d.ts +0 -15
  231. package/lib/api/selectAccount.js +0 -42
  232. package/lib/api/setBrightness.d.ts +0 -12
  233. package/lib/api/setBrightness.js +0 -28
  234. package/lib/api/setBusy.d.ts +0 -11
  235. package/lib/api/setBusy.js +0 -31
  236. package/lib/api/showDeviceTutorial.d.ts +0 -11
  237. package/lib/api/showDeviceTutorial.js +0 -21
  238. package/lib/api/signMessage.d.ts +0 -25
  239. package/lib/api/signMessage.js +0 -75
  240. package/lib/api/signTransaction.d.ts +0 -199
  241. package/lib/api/signTransaction.js +0 -331
  242. package/lib/api/solana/api/index.d.ts +0 -4
  243. package/lib/api/solana/api/index.js +0 -4
  244. package/lib/api/solana/api/solanaComposeTransaction.d.ts +0 -33
  245. package/lib/api/solana/api/solanaComposeTransaction.js +0 -73
  246. package/lib/api/solana/api/solanaGetAddress.d.ts +0 -17
  247. package/lib/api/solana/api/solanaGetAddress.js +0 -22
  248. package/lib/api/solana/api/solanaGetPublicKey.d.ts +0 -32
  249. package/lib/api/solana/api/solanaGetPublicKey.js +0 -86
  250. package/lib/api/solana/api/solanaSignTransaction.d.ts +0 -41
  251. package/lib/api/solana/api/solanaSignTransaction.js +0 -204
  252. package/lib/api/solana/solanaDefinitions.d.ts +0 -9
  253. package/lib/api/solana/solanaDefinitions.js +0 -33
  254. package/lib/api/stellar/api/index.d.ts +0 -2
  255. package/lib/api/stellar/api/index.js +0 -2
  256. package/lib/api/stellar/api/stellarGetAddress.d.ts +0 -17
  257. package/lib/api/stellar/api/stellarGetAddress.js +0 -22
  258. package/lib/api/stellar/api/stellarSignTransaction.d.ts +0 -20
  259. package/lib/api/stellar/api/stellarSignTransaction.js +0 -65
  260. package/lib/api/stellar/stellarSignTx.d.ts +0 -7
  261. package/lib/api/stellar/stellarSignTx.js +0 -183
  262. package/lib/api/telemetryGet.d.ts +0 -14
  263. package/lib/api/telemetryGet.js +0 -26
  264. package/lib/api/tezos/api/index.d.ts +0 -3
  265. package/lib/api/tezos/api/index.js +0 -3
  266. package/lib/api/tezos/api/tezosGetAddress.d.ts +0 -17
  267. package/lib/api/tezos/api/tezosGetAddress.js +0 -22
  268. package/lib/api/tezos/api/tezosGetPublicKey.d.ts +0 -28
  269. package/lib/api/tezos/api/tezosGetPublicKey.js +0 -84
  270. package/lib/api/tezos/api/tezosSignTransaction.d.ts +0 -14
  271. package/lib/api/tezos/api/tezosSignTransaction.js +0 -30
  272. package/lib/api/tezos/tezosSignTx.d.ts +0 -71
  273. package/lib/api/tezos/tezosSignTx.js +0 -204
  274. package/lib/api/thpGetCredentials.d.ts +0 -13
  275. package/lib/api/thpGetCredentials.js +0 -30
  276. package/lib/api/thpRemoveCredentials.d.ts +0 -15
  277. package/lib/api/thpRemoveCredentials.js +0 -44
  278. package/lib/api/tron/api/index.d.ts +0 -3
  279. package/lib/api/tron/api/index.js +0 -3
  280. package/lib/api/tron/api/tronComposeTransaction.d.ts +0 -17
  281. package/lib/api/tron/api/tronComposeTransaction.js +0 -52
  282. package/lib/api/tron/api/tronGetAddress.d.ts +0 -17
  283. package/lib/api/tron/api/tronGetAddress.js +0 -22
  284. package/lib/api/tron/api/tronSignTransaction.d.ts +0 -20
  285. package/lib/api/tron/api/tronSignTransaction.js +0 -137
  286. package/lib/api/tron/tronEncode.d.ts +0 -11
  287. package/lib/api/tron/tronEncode.js +0 -157
  288. package/lib/api/tron/tronProtobuf.d.ts +0 -5
  289. package/lib/api/tron/tronProtobuf.js +0 -28
  290. package/lib/api/unlockPath.d.ts +0 -12
  291. package/lib/api/unlockPath.js +0 -33
  292. package/lib/api/verifyMessage.d.ts +0 -16
  293. package/lib/api/verifyMessage.js +0 -46
  294. package/lib/api/wipeDevice.d.ts +0 -21
  295. package/lib/api/wipeDevice.js +0 -49
  296. package/lib/backend/BackendManager.d.ts +0 -30
  297. package/lib/backend/BackendManager.js +0 -145
  298. package/lib/backend/Blockchain.d.ts +0 -81
  299. package/lib/backend/Blockchain.js +0 -235
  300. package/lib/backend/BlockchainLink.d.ts +0 -10
  301. package/lib/backend/BlockchainLink.js +0 -19
  302. package/lib/backend/fees/BitcoinFeeLevels.d.ts +0 -19
  303. package/lib/backend/fees/BitcoinFeeLevels.js +0 -44
  304. package/lib/backend/fees/EthereumFeeLevels.d.ts +0 -17
  305. package/lib/backend/fees/EthereumFeeLevels.js +0 -63
  306. package/lib/backend/fees/MiscFeeLevels.d.ts +0 -18
  307. package/lib/backend/fees/MiscFeeLevels.js +0 -30
  308. package/lib/backend/fees/index.d.ts +0 -5
  309. package/lib/backend/fees/index.js +0 -31
  310. package/lib/core/AbstractMethod.d.ts +0 -63
  311. package/lib/core/AbstractMethod.js +0 -189
  312. package/lib/core/index.d.ts +0 -29
  313. package/lib/core/index.js +0 -805
  314. package/lib/core/method.d.ts +0 -3
  315. package/lib/core/method.js +0 -19
  316. package/lib/core/method.native.d.ts +0 -2
  317. package/lib/core/method.native.js +0 -29
  318. package/lib/core/onCallFirmwareUpdate.d.ts +0 -42
  319. package/lib/core/onCallFirmwareUpdate.js +0 -436
  320. package/lib/data/coinInfo.d.ts +0 -101
  321. package/lib/data/coinInfo.js +0 -195
  322. package/lib/data/config.d.ts +0 -8
  323. package/lib/data/config.js +0 -273
  324. package/lib/data/defaultFeeLevels.d.ts +0 -18
  325. package/lib/data/defaultFeeLevels.js +0 -200
  326. package/lib/data/enabledNetworksStore.d.ts +0 -5
  327. package/lib/data/enabledNetworksStore.js +0 -20
  328. package/lib/data/firmwareInfo.d.ts +0 -55
  329. package/lib/data/firmwareInfo.js +0 -413
  330. package/lib/data/firmwareReleaseStore.d.ts +0 -10
  331. package/lib/data/firmwareReleaseStore.js +0 -16
  332. package/lib/data/localFirmwareStore.d.ts +0 -3
  333. package/lib/data/localFirmwareStore.js +0 -8
  334. package/lib/data/protobufLoader.d.ts +0 -1
  335. package/lib/data/protobufLoader.js +0 -30
  336. package/lib/data/settingsStore.d.ts +0 -6
  337. package/lib/data/settingsStore.js +0 -21
  338. package/lib/device/Device.d.ts +0 -259
  339. package/lib/device/Device.js +0 -765
  340. package/lib/device/DeviceCommands.d.ts +0 -87
  341. package/lib/device/DeviceCommands.js +0 -248
  342. package/lib/device/DeviceCurrentSession.d.ts +0 -750
  343. package/lib/device/DeviceCurrentSession.js +0 -239
  344. package/lib/device/DeviceList.d.ts +0 -75
  345. package/lib/device/DeviceList.js +0 -243
  346. package/lib/device/TransportList.d.ts +0 -3
  347. package/lib/device/TransportList.js +0 -13
  348. package/lib/device/TransportManager.d.ts +0 -33
  349. package/lib/device/TransportManager.js +0 -144
  350. package/lib/device/calculateRevisionForDevice.d.ts +0 -10
  351. package/lib/device/calculateRevisionForDevice.js +0 -19
  352. package/lib/device/checkFirmwareRevision.d.ts +0 -22
  353. package/lib/device/checkFirmwareRevision.js +0 -104
  354. package/lib/device/resolveDescriptorForTaproot.d.ts +0 -17
  355. package/lib/device/resolveDescriptorForTaproot.js +0 -27
  356. package/lib/device/thp/handshake.d.ts +0 -3
  357. package/lib/device/thp/handshake.js +0 -100
  358. package/lib/device/thp/index.d.ts +0 -5
  359. package/lib/device/thp/index.js +0 -65
  360. package/lib/device/thp/pairing.d.ts +0 -16
  361. package/lib/device/thp/pairing.js +0 -242
  362. package/lib/device/thp/session.d.ts +0 -2
  363. package/lib/device/thp/session.js +0 -27
  364. package/lib/device/thp/thpCall.d.ts +0 -31
  365. package/lib/device/thp/thpCall.js +0 -58
  366. package/lib/device/validateMessageSize.d.ts +0 -2
  367. package/lib/device/validateMessageSize.js +0 -9
  368. package/lib/device/workflow/changeLanguage.d.ts +0 -18
  369. package/lib/device/workflow/changeLanguage.js +0 -62
  370. package/lib/device/workflow/checkFirmwareHash.d.ts +0 -12
  371. package/lib/device/workflow/checkFirmwareHash.js +0 -86
  372. package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +0 -8
  373. package/lib/device/workflow/checkFirmwareHashWithRetries.js +0 -36
  374. package/lib/device/workflow/handshake.d.ts +0 -13
  375. package/lib/device/workflow/handshake.js +0 -55
  376. package/lib/device/workflow/trezorPushNotification.d.ts +0 -5
  377. package/lib/device/workflow/trezorPushNotification.js +0 -73
  378. package/lib/device/workflow/validateState.d.ts +0 -2
  379. package/lib/device/workflow/validateState.js +0 -152
  380. package/lib/events/ui-promise.d.ts +0 -20
  381. package/lib/events/ui-promise.js +0 -1
  382. package/lib/impl/core-in-module.d.ts +0 -33
  383. package/lib/impl/core-in-module.js +0 -194
  384. package/lib/types/idevice.d.ts +0 -110
  385. package/lib/types/idevice.js +0 -1
  386. package/lib/types/typed-call-provider.d.ts +0 -29
  387. package/lib/types/typed-call-provider.js +0 -1
  388. package/lib/types/workflow.d.ts +0 -16
  389. package/lib/types/workflow.js +0 -1
  390. package/lib/utils/accountUtils.d.ts +0 -10
  391. package/lib/utils/accountUtils.js +0 -90
  392. package/lib/utils/addressUtils.d.ts +0 -2
  393. package/lib/utils/addressUtils.js +0 -24
  394. package/lib/utils/assetUtils.d.ts +0 -13
  395. package/lib/utils/assetUtils.js +0 -55
  396. package/lib/utils/assets.browser.d.ts +0 -1
  397. package/lib/utils/assets.browser.js +0 -1
  398. package/lib/utils/assets.d.ts +0 -2
  399. package/lib/utils/assets.js +0 -13
  400. package/lib/utils/assets.native.d.ts +0 -2
  401. package/lib/utils/assets.native.js +0 -23
  402. package/lib/utils/assetsTypes.d.ts +0 -5
  403. package/lib/utils/assetsTypes.js +0 -1
  404. package/lib/utils/buildOutputDescriptor.d.ts +0 -20
  405. package/lib/utils/buildOutputDescriptor.js +0 -67
  406. package/lib/utils/deviceFeaturesUtils.d.ts +0 -7
  407. package/lib/utils/deviceFeaturesUtils.js +0 -109
  408. package/lib/utils/ethereumUtils.d.ts +0 -3
  409. package/lib/utils/ethereumUtils.js +0 -7
  410. package/lib/utils/firmwareReleaseConfigUtils.d.ts +0 -19
  411. package/lib/utils/firmwareReleaseConfigUtils.js +0 -131
  412. package/lib/utils/firmwareUtils.d.ts +0 -15
  413. package/lib/utils/firmwareUtils.js +0 -57
  414. package/lib/utils/formatUtils.d.ts +0 -13
  415. package/lib/utils/formatUtils.js +0 -45
  416. package/lib/utils/hdnodeUtils.d.ts +0 -6
  417. package/lib/utils/hdnodeUtils.js +0 -62
  418. package/lib/utils/pathUtils.d.ts +0 -1
  419. package/lib/utils/pathUtils.js +0 -1
  420. package/lib/utils/paymentRequest.d.ts +0 -8
  421. package/lib/utils/paymentRequest.js +0 -25
  422. package/lib/utils/uiPromiseManager.d.ts +0 -8
  423. package/lib/utils/uiPromiseManager.js +0 -51
  424. package/lib/workers/workers.browser.d.ts +0 -10
  425. package/lib/workers/workers.browser.js +0 -16
  426. package/lib/workers/workers.d.ts +0 -10
  427. package/lib/workers/workers.js +0 -8
  428. package/lib/workers/workers.native.d.ts +0 -7
  429. package/lib/workers/workers.native.js +0 -7
@@ -1,29 +0,0 @@
1
- import { MessagesSchema as PROTO } from "@trezor/protobuf";
2
- import { Assert } from "@trezor/schema-utils";
3
- import { AbstractMethod } from "../core/AbstractMethod.js";
4
- export default class EvoluGetNode extends AbstractMethod {
5
- hasBundle;
6
- constructor(message) {
7
- const {
8
- payload
9
- } = message;
10
- Assert(PROTO.EvoluGetNode, payload);
11
- const params = {
12
- proof_of_delegated_identity: payload.proof_of_delegated_identity
13
- };
14
- super(message, params);
15
- }
16
- get requiredPermissions() {
17
- return [{
18
- permission: 'read_xpub'
19
- }];
20
- }
21
- get info() {
22
- return 'Evolu get node';
23
- }
24
- async run() {
25
- const cmd = this.getDevice().getCommands();
26
- const response = await cmd.typedCall('EvoluGetNode', 'EvoluNode', this.params);
27
- return response.message;
28
- }
29
- }
@@ -1,16 +0,0 @@
1
- import { type PermissionRequest } from '@trezor/connect-common';
2
- import { MessagesSchema as PROTO } from '@trezor/protobuf';
3
- import type { MethodMessage } from "../core/AbstractMethod.js";
4
- import { AbstractMethod } from "../core/AbstractMethod.js";
5
- export default class EvoluSignRegistrationRequest extends AbstractMethod<'evoluSignRegistrationRequest', PROTO.EvoluSignRegistrationRequest> {
6
- hasBundle?: boolean;
7
- constructor(message: MethodMessage<'evoluSignRegistrationRequest'>);
8
- get requiredPermissions(): PermissionRequest[];
9
- init(): void;
10
- get info(): string;
11
- run(): Promise<{
12
- rotation_index?: number | undefined;
13
- signature: string;
14
- certificate_chain: string[];
15
- }>;
16
- }
@@ -1,33 +0,0 @@
1
- import { MessagesSchema as PROTO } from "@trezor/protobuf";
2
- import { Assert } from "@trezor/schema-utils";
3
- import { AbstractMethod } from "../core/AbstractMethod.js";
4
- export default class EvoluSignRegistrationRequest extends AbstractMethod {
5
- hasBundle;
6
- constructor(message) {
7
- const {
8
- payload
9
- } = message;
10
- Assert(PROTO.EvoluSignRegistrationRequest, payload);
11
- const params = {
12
- challenge_from_server: payload.challenge_from_server,
13
- size_to_acquire: payload.size_to_acquire,
14
- proof_of_delegated_identity: payload.proof_of_delegated_identity
15
- };
16
- super(message, params);
17
- this.useEmptyPassphrase = true;
18
- }
19
- get requiredPermissions() {
20
- return [{
21
- permission: 'sign'
22
- }];
23
- }
24
- init() {}
25
- get info() {
26
- return 'Evolu sign registration request';
27
- }
28
- async run() {
29
- const cmd = this.getDevice().getCommands();
30
- const response = await cmd.typedCall('EvoluSignRegistrationRequest', 'EvoluRegistrationRequest', this.params);
31
- return response.message;
32
- }
33
- }
@@ -1,18 +0,0 @@
1
- import { DeviceModelInternal } from '@trezor/device-utils';
2
- import type { VersionArray } from '@trezor/utils/lib/versionUtils';
3
- type CalculateFirmwareHashParams = {
4
- internal_model: DeviceModelInternal;
5
- fw: Buffer;
6
- firmwareVersion: VersionArray;
7
- key?: Buffer;
8
- };
9
- export declare const calculateFirmwareHash: ({
10
- internal_model,
11
- firmwareVersion,
12
- fw,
13
- key
14
- }: CalculateFirmwareHashParams) => {
15
- hash: string;
16
- challenge: string;
17
- };
18
- export {};
@@ -1,56 +0,0 @@
1
- import { blake2s } from "@noble/hashes/blake2.js";
2
- import { bytesToHex } from "@noble/hashes/utils.js";
3
- import { DeviceModelInternal } from "@trezor/device-utils";
4
- import { versionUtils } from "@trezor/utils";
5
- const SIZE_T1B1 = (7 * 128 + 64) * 1024;
6
- const SIZE_T2T1 = 13 * 128 * 1024;
7
- const SIZE_T2B1 = 13 * 128 * 1024;
8
- const SIZE_T3B1 = 208 * 8 * 1024;
9
- const SIZE_T3T1 = 208 * 8 * 1024;
10
- const SIZE_T3W1 = 417 * 8 * 1024;
11
- const firmwareSizeMap = {
12
- [DeviceModelInternal.T1B1]: SIZE_T1B1,
13
- [DeviceModelInternal.T2T1]: SIZE_T2T1,
14
- [DeviceModelInternal.T2B1]: SIZE_T2B1,
15
- [DeviceModelInternal.T3B1]: SIZE_T3B1,
16
- [DeviceModelInternal.T3T1]: SIZE_T3T1,
17
- [DeviceModelInternal.T3W1]: SIZE_T3W1
18
- };
19
- const getSizeForModel = ({
20
- internal_model,
21
- firmwareVersion
22
- }) => {
23
- const size = firmwareSizeMap[internal_model] ?? SIZE_T1B1;
24
- if (firmwareVersion !== undefined && internal_model === DeviceModelInternal.T3W1 && versionUtils.isEqual(firmwareVersion, [2, 9, 3])) {
25
- return size - 16 * 1024;
26
- }
27
- return size;
28
- };
29
- export const calculateFirmwareHash = ({
30
- internal_model,
31
- firmwareVersion,
32
- fw,
33
- key
34
- }) => {
35
- const size = getSizeForModel({
36
- internal_model,
37
- firmwareVersion
38
- });
39
- const padding = size - fw.byteLength;
40
- if (padding < 0) {
41
- throw new Error('Firmware too big');
42
- }
43
- const data = new Uint8Array(new ArrayBuffer(size));
44
- data.set(new Uint8Array(fw));
45
- if (padding > 0) {
46
- const zeroBytes = Buffer.alloc(padding);
47
- zeroBytes.fill(Buffer.from('ff', 'hex'));
48
- data.set(zeroBytes, fw.byteLength);
49
- }
50
- return {
51
- hash: key && key.length > 0 ? bytesToHex(blake2s(data, {
52
- key
53
- })) : bytesToHex(blake2s(data)),
54
- challenge: key ? key.toString('hex') : ''
55
- };
56
- };
@@ -1,14 +0,0 @@
1
- import type { XPubHashesPerBip43Path } from '@trezor/connect-common';
2
- export declare const calculateXPubHash: (xpub: string) => string;
3
- export declare const calculateXPubHashes: (xpubs: Record<string, string>) => XPubHashesPerBip43Path;
4
- type CheckXPubWithHashesParams = {
5
- xpub: string;
6
- path: string;
7
- knownXPubHashes: XPubHashesPerBip43Path;
8
- };
9
- export declare const checkXPubWithHashes: ({
10
- xpub,
11
- path,
12
- knownXPubHashes
13
- }: CheckXPubWithHashesParams) => boolean;
14
- export {};
@@ -1,16 +0,0 @@
1
- import { sha256 } from "@noble/hashes/sha2.js";
2
- import { bytesToHex } from "@noble/hashes/utils.js";
3
- export const calculateXPubHash = xpub => bytesToHex(sha256(new TextEncoder().encode(xpub)));
4
- export const calculateXPubHashes = xpubs => {
5
- const hashes = {};
6
- Object.keys(xpubs).forEach(path => {
7
- const xpub = xpubs[path];
8
- hashes[path] = calculateXPubHash(xpub);
9
- });
10
- return hashes;
11
- };
12
- export const checkXPubWithHashes = ({
13
- xpub,
14
- path,
15
- knownXPubHashes
16
- }) => knownXPubHashes[path] === undefined || knownXPubHashes[path] === calculateXPubHash(xpub);
@@ -1,14 +0,0 @@
1
- import type { BinaryInfo } from '@trezor/connect-common';
2
- import type { FirmwareRelease } from '@trezor/device-utils';
3
- interface GetBinaryParams {
4
- baseUrl: string;
5
- path: string;
6
- release: FirmwareRelease;
7
- }
8
- export declare const getBinary: ({
9
- baseUrl,
10
- path,
11
- release
12
- }: GetBinaryParams) => Promise<BinaryInfo>;
13
- export declare const getBinaryOptional: (params: GetBinaryParams) => Promise<BinaryInfo | null>;
14
- export {};
@@ -1,33 +0,0 @@
1
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
2
- import { removeTrailingSlashes } from "@trezor/utils";
3
- import { parseFirmwareHeaders } from "./parseFirmwareHeaders.js";
4
- import { httpRequest } from "../../utils/assets.js";
5
- const MIN_FIRMWARE_SIZE_BYTES = 200;
6
- export const getBinary = async ({
7
- baseUrl,
8
- path,
9
- release
10
- }) => {
11
- const sanitizedBaseUrl = removeTrailingSlashes(baseUrl);
12
- const url = `${sanitizedBaseUrl}/${path}`;
13
- const binaryArrayBuffer = await httpRequest(url, 'binary');
14
- if (binaryArrayBuffer.byteLength < MIN_FIRMWARE_SIZE_BYTES) {
15
- throw ERRORS.TypedError('Runtime', 'Firmware binary is too small');
16
- }
17
- const firmwareBuffer = Buffer.from(binaryArrayBuffer);
18
- const {
19
- version: binaryVersion
20
- } = parseFirmwareHeaders(firmwareBuffer);
21
- return {
22
- binary: binaryArrayBuffer,
23
- binaryVersion,
24
- release
25
- };
26
- };
27
- export const getBinaryOptional = async params => {
28
- try {
29
- return await getBinary(params);
30
- } catch {
31
- return null;
32
- }
33
- };
@@ -1,6 +0,0 @@
1
- export { getBinary, getBinaryOptional } from "./getBinary.js";
2
- export { shouldStripFwHeaders, stripFwHeaders } from "./modifyFirmware.js";
3
- export { uploadFirmware } from "./uploadFirmware.js";
4
- export { calculateFirmwareHash } from "./calculateFirmwareHash.js";
5
- export { parseFirmwareHeaders } from "./parseFirmwareHeaders.js";
6
- export { calculateXPubHash, calculateXPubHashes, checkXPubWithHashes } from "./calculateXPubHash.js";
@@ -1,6 +0,0 @@
1
- export { getBinary, getBinaryOptional } from "./getBinary.js";
2
- export { shouldStripFwHeaders, stripFwHeaders } from "./modifyFirmware.js";
3
- export { uploadFirmware } from "./uploadFirmware.js";
4
- export { calculateFirmwareHash } from "./calculateFirmwareHash.js";
5
- export { parseFirmwareHeaders } from "./parseFirmwareHeaders.js";
6
- export { calculateXPubHash, calculateXPubHashes, checkXPubWithHashes } from "./calculateXPubHash.js";
@@ -1,3 +0,0 @@
1
- import type { Features } from '@trezor/connect-common';
2
- export declare const shouldStripFwHeaders: (features: Features) => boolean;
3
- export declare const stripFwHeaders: (fw: ArrayBuffer) => ArrayBuffer;
@@ -1,13 +0,0 @@
1
- import { getFirmwareOrBootloaderVersionArray } from "@trezor/device-utils";
2
- import { versionUtils } from "@trezor/utils";
3
- export const shouldStripFwHeaders = features => {
4
- if (features.major_version === 2) return false;
5
- return versionUtils.isNewerOrEqual(getFirmwareOrBootloaderVersionArray(features), [1, 8, 0]);
6
- };
7
- export const stripFwHeaders = fw => {
8
- const fwView = new Uint8Array(fw);
9
- if (String.fromCharCode(...Array.from(fwView.slice(0, 4))) === 'TRZR' && String.fromCharCode(...Array.from(fwView.slice(256, 260))) === 'TRZF') {
10
- return fw.slice(256);
11
- }
12
- return fw;
13
- };
@@ -1,4 +0,0 @@
1
- import type { VersionArray } from '@trezor/utils/lib/versionUtils';
2
- export declare const parseFirmwareHeaders: (buff: Buffer) => {
3
- version: VersionArray;
4
- };
@@ -1,26 +0,0 @@
1
- export const parseFirmwareHeaders = buff => {
2
- const vendorHeader = buff.subarray(0, 4).toString('utf8');
3
- let trezorImageHeader = '';
4
- let restbuff;
5
- if (vendorHeader === 'TRZV') {
6
- const vendorHeaderLength = buff.readUInt32LE(4);
7
- trezorImageHeader = buff.subarray(vendorHeaderLength, vendorHeaderLength + 4).toString('utf8');
8
- restbuff = buff.subarray(vendorHeaderLength + 4);
9
- } else if (vendorHeader === 'TRZR') {
10
- restbuff = buff.subarray(256 + 4);
11
- trezorImageHeader = buff.subarray(256, 256 + 4).toString('utf8');
12
- } else {
13
- restbuff = buff.subarray(4);
14
- trezorImageHeader = buff.subarray(0, 4).toString('utf8');
15
- }
16
- if (trezorImageHeader !== 'TRZF') {
17
- throw new Error(`unexpected header ${vendorHeader}`);
18
- }
19
- const version_major = restbuff.readInt8(12);
20
- const version_minor = restbuff.readInt8(13);
21
- const version_patch = restbuff.readInt8(14);
22
- const version = [version_major, version_minor, version_patch];
23
- return {
24
- version
25
- };
26
- };
@@ -1,27 +0,0 @@
1
- import type { CoreEventMessage, FirmwareUpdateFlowType, PROTO } from '@trezor/connect-common';
2
- import type { TypedCall } from "../../device/DeviceCommands.js";
3
- import type { IDevice } from "../../types/idevice.js";
4
- type UploadFirmwareProps = {
5
- typedCall: TypedCall;
6
- postMessage: (message: CoreEventMessage) => void;
7
- device: IDevice;
8
- firmwareUploadRequest: PROTO.FirmwareUpload;
9
- updateFlowType: FirmwareUpdateFlowType;
10
- };
11
- export declare const uploadFirmware: ({
12
- typedCall,
13
- postMessage,
14
- device,
15
- firmwareUploadRequest: {
16
- payload
17
- },
18
- updateFlowType
19
- }: UploadFirmwareProps) => Promise<{
20
- type: "Success";
21
- message: {
22
- message: string;
23
- };
24
- } | {
25
- message: string;
26
- }>;
27
- export {};
@@ -1,99 +0,0 @@
1
- import { DEVICE, UI_REQUEST, createUiMessage } from "@trezor/connect-common";
2
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
- import { getFirmwareVersionArray } from "@trezor/device-utils";
4
- import { TRANSPORT } from "@trezor/transport-common";
5
- import { isWithinRange } from "@trezor/utils/lib/versionUtils.js";
6
- const postConfirmationMessage = (device, updateFlowType) => {
7
- const freshInstall = device.features.firmware_present === false;
8
- if (freshInstall || updateFlowType === 'reboot_and_upgrade') return;
9
- device.emit(DEVICE.BUTTON, {
10
- device,
11
- payload: {
12
- code: 'ButtonRequest_FirmwareUpdate'
13
- }
14
- });
15
- };
16
- const postProgressMessage = (device, progress, postMessage) => {
17
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
18
- device: device.toMessageObject(),
19
- operation: 'flashing',
20
- progress
21
- }));
22
- };
23
- const FIRMWARE_ERASE_TIMEOUT_MILLISECONDS = 15_000;
24
- const TIMEOUT_MIN_FW_VERSION = '1.12.1';
25
- const TIMEOUT_MAX_FW_VERSION = '1.13.0';
26
- export const uploadFirmware = async ({
27
- typedCall,
28
- postMessage,
29
- device,
30
- firmwareUploadRequest: {
31
- payload
32
- },
33
- updateFlowType
34
- }) => {
35
- if (device.features.major_version === 1) {
36
- postConfirmationMessage(device, updateFlowType);
37
- const timeoutId = setTimeout(() => {
38
- const version = getFirmwareVersionArray(device.toMessageObject());
39
- if (version === null) return;
40
- if (isWithinRange(version, TIMEOUT_MIN_FW_VERSION, TIMEOUT_MAX_FW_VERSION)) {
41
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS_UNEXPECTED_DELAY, {}));
42
- }
43
- }, FIRMWARE_ERASE_TIMEOUT_MILLISECONDS);
44
- await typedCall('FirmwareErase', 'Success', {});
45
- clearTimeout(timeoutId);
46
- postProgressMessage(device, 0, postMessage);
47
- let i = 0;
48
- const progressTimer = setInterval(() => {
49
- i++;
50
- postProgressMessage(device, Math.min(i * 2, 99), postMessage);
51
- }, 300);
52
- const message = await typedCall('FirmwareUpload', 'Success', {
53
- payload
54
- }).finally(() => {
55
- clearInterval(progressTimer);
56
- });
57
- postProgressMessage(device, 100, postMessage);
58
- return message;
59
- }
60
- if (device.features.major_version === 2) {
61
- postConfirmationMessage(device, updateFlowType);
62
- const length = payload.byteLength;
63
- let progress = 0;
64
- let response = await typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], {
65
- length
66
- });
67
- postMessage(createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
68
- device: device.toMessageObject(),
69
- operation: 'start-flashing',
70
- progress
71
- }));
72
- while (response.type !== 'Success') {
73
- const start = response.message.offset;
74
- const end = response.message.offset + response.message.length;
75
- const chunk = payload.slice(start, end);
76
- const progressStart = Math.round(start / length * 100);
77
- const progressEnd = Math.round(end / length * 100);
78
- const progressDiff = progressEnd - progressStart;
79
- device.transport.on(TRANSPORT.SEND_MESSAGE_PROGRESS, p => {
80
- const newProgress = progressStart + Math.floor(progressDiff * p);
81
- if (start > 0 && newProgress > progress) {
82
- progress = newProgress;
83
- postProgressMessage(device, progress, postMessage);
84
- }
85
- });
86
- if (start > 0) {
87
- postProgressMessage(device, progressStart, postMessage);
88
- }
89
- response = await typedCall('FirmwareUpload', ['FirmwareRequest', 'Success'], {
90
- payload: chunk
91
- }).finally(() => {
92
- device.transport.removeAllListeners(TRANSPORT.SEND_MESSAGE_PROGRESS);
93
- });
94
- }
95
- postProgressMessage(device, 100, postMessage);
96
- return response.message;
97
- }
98
- throw ERRORS.TypedError('Runtime', 'uploadFirmware: unknown major_version');
99
- };
@@ -1,25 +0,0 @@
1
- import { MessagesSchema as PROTO } from '@trezor/protobuf';
2
- export declare const generateEntropy: (len: number) => Buffer<ArrayBuffer>;
3
- type VerifyEntropyOptions = {
4
- type?: PROTO.Enum_BackupType;
5
- strength?: number;
6
- commitment?: string;
7
- hostEntropy: string;
8
- trezorEntropy?: string;
9
- xpubs: Record<string, string>;
10
- };
11
- export declare const verifyEntropy: ({
12
- type,
13
- strength,
14
- trezorEntropy,
15
- hostEntropy,
16
- commitment,
17
- xpubs
18
- }: VerifyEntropyOptions) => Promise<{
19
- success: true;
20
- error?: undefined;
21
- } | {
22
- success: false;
23
- error: any;
24
- }>;
25
- export {};
@@ -1,110 +0,0 @@
1
- import { hmac } from "@noble/hashes/hmac.js";
2
- import { sha256 } from "@noble/hashes/sha2.js";
3
- import { randomBytes } from "@noble/hashes/utils.js";
4
- import { entropyToMnemonic, mnemonicToSeed } from "@scure/bip39";
5
- import { bip39EnglishWordlist } from "@trezor/crypto-utils";
6
- import { MessagesSchema as PROTO } from "@trezor/protobuf";
7
- import { bip32 } from "@trezor/utxo-lib";
8
- export const generateEntropy = len => {
9
- try {
10
- return Buffer.from(randomBytes(len));
11
- } catch {
12
- throw new Error('generateEntropy: Environment does not support crypto random');
13
- }
14
- };
15
- const BASE_ITERATION_COUNT = 10000;
16
- const ROUND_COUNT = 4;
17
- const roundFunction = async (i, passphrase, e, salt, r) => {
18
- const data = Buffer.concat([Buffer.from([i]), passphrase]);
19
- const iterations = Math.floor((BASE_ITERATION_COUNT << e) / ROUND_COUNT);
20
- const {
21
- subtle
22
- } = crypto;
23
- const key = await subtle.importKey('raw', data, 'PBKDF2', false, ['deriveBits']);
24
- const bits = await subtle.deriveBits({
25
- name: 'PBKDF2',
26
- hash: 'SHA-256',
27
- salt: Buffer.concat([salt, r]),
28
- iterations
29
- }, key, r.length * 8);
30
- return Buffer.from(bits);
31
- };
32
- const xor = (a, b) => {
33
- if (a.length !== b.length) {
34
- throw new Error('Buffers must be of equal length to XOR.');
35
- }
36
- const result = Buffer.alloc(a.length);
37
- for (let i = 0; i < a.length; i++) {
38
- const ai = a[i];
39
- const bi = b[i];
40
- result[i] = ai ^ bi;
41
- }
42
- return result;
43
- };
44
- const entropyToSeedSlip39 = async encryptedSecret => {
45
- const iterationExponent = 1;
46
- const passphrase = Buffer.from('', 'utf-8');
47
- const salt = Buffer.alloc(0);
48
- const half = Math.floor(encryptedSecret.length / 2);
49
- let l = encryptedSecret.subarray(0, half);
50
- let r = encryptedSecret.subarray(half);
51
- for (let round = ROUND_COUNT - 1; round >= 0; round--) {
52
- const f = await roundFunction(round, passphrase, iterationExponent, salt, r);
53
- const rr = xor(l, f);
54
- l = r;
55
- r = rr;
56
- }
57
- return Buffer.concat([r, l]);
58
- };
59
- const getEntropy = (trezorEntropy, hostEntropy, strength) => {
60
- const data = Buffer.concat([Buffer.from(trezorEntropy, 'hex'), Buffer.from(hostEntropy, 'hex')]);
61
- const entropy = sha256(data);
62
- return Buffer.from(entropy.subarray(0, Math.floor(strength / 8)));
63
- };
64
- const computeSeed = (type, secret) => {
65
- const BackupType = PROTO.Enum_BackupType;
66
- if (type && [BackupType.Slip39_Basic, BackupType.Slip39_Advanced, BackupType.Slip39_Single_Extendable, BackupType.Slip39_Basic_Extendable, BackupType.Slip39_Advanced_Extendable].includes(type)) {
67
- return entropyToSeedSlip39(secret);
68
- }
69
- return mnemonicToSeed(entropyToMnemonic(secret, [...bip39EnglishWordlist])).then(seed => Buffer.from(seed));
70
- };
71
- const verifyCommitment = (entropy, commitment) => {
72
- const hmacDigest = hmac(sha256, Buffer.from(entropy, 'hex'), Buffer.alloc(0));
73
- if (!Buffer.from(hmacDigest).equals(Buffer.from(commitment, 'hex'))) {
74
- throw new Error('Invalid entropy commitment');
75
- }
76
- };
77
- export const verifyEntropy = async ({
78
- type,
79
- strength,
80
- trezorEntropy,
81
- hostEntropy,
82
- commitment,
83
- xpubs
84
- }) => {
85
- try {
86
- if (!trezorEntropy || !commitment || !strength || Object.keys(xpubs).length < 1) {
87
- throw new Error('Missing verifyEntropy data');
88
- }
89
- verifyCommitment(trezorEntropy, commitment);
90
- const secret = getEntropy(trezorEntropy, hostEntropy, strength);
91
- const seed = await computeSeed(type, secret);
92
- const node = bip32.fromSeed(seed);
93
- Object.keys(xpubs).forEach(path => {
94
- const pubKey = node.derivePath(path);
95
- const xpub = pubKey.neutered().toBase58();
96
- const expectedXpub = xpubs[path];
97
- if (xpub !== expectedXpub) {
98
- throw new Error('verifyEntropy xpub mismatch');
99
- }
100
- });
101
- return {
102
- success: true
103
- };
104
- } catch (error) {
105
- return {
106
- success: false,
107
- error: error.message
108
- };
109
- }
110
- };
@@ -1,21 +0,0 @@
1
- import type { AccountInfo, CoinInfo, GetAccountInfo as GetAccountInfoParams, PermissionRequest } from '@trezor/connect-common';
2
- import type { MethodContext, MethodMessage } from "../core/AbstractMethod.js";
3
- import { AbstractMethod } from "../core/AbstractMethod.js";
4
- type Request = GetAccountInfoParams & {
5
- address_n: number[];
6
- coinInfo: CoinInfo;
7
- };
8
- export default class GetAccountInfo extends AbstractMethod<'getAccountInfo', Request[]> {
9
- disposed: boolean;
10
- hasBundle?: boolean;
11
- constructor(message: MethodMessage<'getAccountInfo'>);
12
- get requiredPermissions(): PermissionRequest[];
13
- get info(): string;
14
- get confirmation(): {
15
- view: "export-account-info";
16
- label: string;
17
- };
18
- run(context: MethodContext): Promise<AccountInfo | (AccountInfo | null)[]>;
19
- dispose(): void;
20
- }
21
- export {};