@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,133 +0,0 @@
1
- import { UI_REQUEST } from "@trezor/connect-common";
2
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
- import { TransportError } from "@trezor/connect-common/lib/constants/errors.js";
4
- import { MessagesSchema as PROTO } from "@trezor/protobuf";
5
- import { Assert } from "@trezor/schema-utils";
6
- import { getRandomInt } from "@trezor/utils";
7
- import { generateEntropy, verifyEntropy } from "../api/firmware/verifyEntropy.js";
8
- import { AbstractMethod } from "../core/AbstractMethod.js";
9
- import { validatePath } from "../utils/pathUtils.js";
10
- import { calculateXPubHashes } from "./firmware/calculateXPubHash.js";
11
- export default class ResetDevice extends AbstractMethod {
12
- constructor(message) {
13
- const {
14
- payload
15
- } = message;
16
- Assert(PROTO.ResetDevice, payload);
17
- const params = {
18
- strength: payload.strength || 256,
19
- passphrase_protection: payload.passphrase_protection,
20
- pin_protection: payload.pin_protection,
21
- language: payload.language,
22
- label: payload.label,
23
- u2f_counter: payload.u2f_counter || Math.floor(Date.now() / 1000),
24
- skip_backup: payload.skip_backup,
25
- no_backup: payload.no_backup,
26
- backup_type: payload.backup_type,
27
- backup_method: payload.backup_method,
28
- entropy_check: typeof payload.entropy_check === 'boolean' ? payload.entropy_check : true
29
- };
30
- super(message, params);
31
- this.allowDeviceMode = [UI_REQUEST.INITIALIZE, UI_REQUEST.SEEDLESS];
32
- this.useDeviceState = false;
33
- this.skipFinalReload = false;
34
- }
35
- get requiredPermissions() {
36
- return [{
37
- permission: 'management'
38
- }];
39
- }
40
- get info() {
41
- return 'Setup device';
42
- }
43
- get confirmation() {
44
- return {
45
- view: 'device-management',
46
- label: 'Do you really you want to create a new wallet?'
47
- };
48
- }
49
- async resetDeviceWorkflow() {
50
- const cmd = this.getDevice().getCommands();
51
- const entropy = generateEntropy(32).toString('hex');
52
- await cmd.typedCall('ResetDevice', 'EntropyRequest', this.params);
53
- await cmd.typedCall('EntropyAck', 'Success', {
54
- entropy
55
- });
56
- }
57
- async entropyCheckWorkflow() {
58
- const cmd = this.getDevice().getCommands();
59
- const paths = ["m/84'/0'/0'", "m/44'/60'/0'"];
60
- const parsedPaths = paths.map(path => ({
61
- path,
62
- address_n: validatePath(path)
63
- }));
64
- const handleErr = error => {
65
- throw error instanceof TransportError ? error : ERRORS.TypedError('Failure_EntropyCheck', error.message);
66
- };
67
- const getXPubs = async () => {
68
- const xpubs = {};
69
- for (const {
70
- path,
71
- address_n
72
- } of parsedPaths) {
73
- const pubKey = await cmd.getPublicKey({
74
- address_n
75
- }).catch(handleErr);
76
- xpubs[path] = pubKey.xpub;
77
- }
78
- return xpubs;
79
- };
80
- let entropy = generateEntropy(32).toString('hex');
81
- let commitment = await cmd.typedCall('ResetDevice', 'EntropyRequest', this.params).then(response => response.message.entropy_commitment);
82
- await cmd.typedCall('EntropyAck', 'EntropyCheckReady', {
83
- entropy
84
- });
85
- const tries = getRandomInt(1, 5);
86
- for (let i = 0; i < tries; i++) {
87
- const xpubs = await getXPubs();
88
- const {
89
- prev_entropy,
90
- entropy_commitment
91
- } = await cmd.typedCall('EntropyCheckContinue', 'EntropyRequest', {}).then(response => response.message).catch(handleErr);
92
- const res = await verifyEntropy({
93
- type: this.params.backup_type,
94
- strength: this.params.strength,
95
- commitment,
96
- hostEntropy: entropy,
97
- trezorEntropy: prev_entropy,
98
- xpubs
99
- });
100
- if (res.error) {
101
- await this.getDevice().getCurrentSession().cancelCall();
102
- throw ERRORS.TypedError('Failure_EntropyCheck', res.error);
103
- }
104
- entropy = generateEntropy(32).toString('hex');
105
- commitment = entropy_commitment;
106
- await cmd.typedCall('EntropyAck', 'EntropyCheckReady', {
107
- entropy
108
- }).catch(handleErr);
109
- }
110
- const finalXPubs = await getXPubs();
111
- await cmd.typedCall('EntropyCheckContinue', 'Success', {
112
- finish: true
113
- });
114
- return finalXPubs;
115
- }
116
- async run() {
117
- if (this.params.entropy_check && this.getDevice().unavailableCapabilities['entropyCheck']) {
118
- this.params.entropy_check = false;
119
- }
120
- if (this.params.entropy_check) {
121
- const xpubs = await this.entropyCheckWorkflow();
122
- const xpubHashes = calculateXPubHashes(xpubs);
123
- return {
124
- message: 'Success',
125
- xpubHashes
126
- };
127
- }
128
- await this.resetDeviceWorkflow();
129
- return {
130
- message: 'Success'
131
- };
132
- }
133
- }
@@ -1,2 +0,0 @@
1
- export { default as rippleGetAddress } from "./rippleGetAddress.js";
2
- export { default as rippleSignTransaction } from "./rippleSignTransaction.js";
@@ -1,2 +0,0 @@
1
- export { default as rippleGetAddress } from "./rippleGetAddress.js";
2
- export { default as rippleSignTransaction } from "./rippleSignTransaction.js";
@@ -1,17 +0,0 @@
1
- import type { MethodMessage } from "../../../core/AbstractMethod.js";
2
- import { AbstractMiscGetAddress } from "../../common/AbstractMiscGetAddress.js";
3
- import type { MiscGetAddressParams } from "../../common/AbstractMiscGetAddress.js";
4
- export default class RippleGetAddress extends AbstractMiscGetAddress<'rippleGetAddress'> {
5
- constructor(message: MethodMessage<'rippleGetAddress'>);
6
- get info(): string;
7
- get confirmation(): {
8
- view: "export-address";
9
- label: string;
10
- };
11
- _call({
12
- proto
13
- }: MiscGetAddressParams): Promise<{
14
- mac?: string | undefined;
15
- address: string;
16
- }>;
17
- }
@@ -1,22 +0,0 @@
1
- import { getMiscNetwork } from "../../../data/coinInfo.js";
2
- import { AbstractMiscGetAddress } from "../../common/AbstractMiscGetAddress.js";
3
- export default class RippleGetAddress extends AbstractMiscGetAddress {
4
- constructor(message) {
5
- super(message, 3);
6
- this.requiredDeviceCapabilities = ['Capability_Ripple'];
7
- this.requiredFirmwareCoins = [getMiscNetwork('xrp')];
8
- }
9
- get info() {
10
- return this.getInfo('Ripple', true);
11
- }
12
- get confirmation() {
13
- return this.getConfirmation('Ripple');
14
- }
15
- async _call({
16
- proto
17
- }) {
18
- const cmd = this.getDevice().getCommands();
19
- const response = await cmd.typedCall('RippleGetAddress', 'RippleAddress', proto);
20
- return response.message;
21
- }
22
- }
@@ -1,13 +0,0 @@
1
- import { type PermissionRequest } from '@trezor/connect-common';
2
- import type { 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 RippleSignTransaction extends AbstractMethod<'rippleSignTransaction', PROTO.RippleSignTx> {
6
- constructor(message: MethodMessage<'rippleSignTransaction'>);
7
- get requiredPermissions(): PermissionRequest[];
8
- get info(): string;
9
- run(): Promise<{
10
- serializedTx: string;
11
- signature: string;
12
- }>;
13
- }
@@ -1,52 +0,0 @@
1
- import { RippleSignTransaction as RippleSignTransactionSchema } from "@trezor/connect-common";
2
- import { Assert } from "@trezor/schema-utils";
3
- import { AbstractMethod } from "../../../core/AbstractMethod.js";
4
- import { getMiscNetwork } from "../../../data/coinInfo.js";
5
- import { validatePath } from "../../../utils/pathUtils.js";
6
- import { PAYMENT_REQUEST_AMOUNT_BYTES, encodePaymentRequestAmount } from "../../../utils/paymentRequest.js";
7
- export default class RippleSignTransaction extends AbstractMethod {
8
- constructor(message) {
9
- const {
10
- payload
11
- } = message;
12
- Assert(RippleSignTransactionSchema, payload);
13
- const path = validatePath(payload.path, 5);
14
- const {
15
- transaction,
16
- chunkify
17
- } = payload;
18
- const params = {
19
- address_n: path,
20
- fee: transaction.fee,
21
- flags: transaction.flags,
22
- sequence: transaction.sequence,
23
- last_ledger_sequence: transaction.maxLedgerVersion,
24
- payment: {
25
- amount: transaction.payment.amount,
26
- destination: transaction.payment.destination,
27
- destination_tag: transaction.payment.destinationTag
28
- },
29
- payment_req: payload.payment_req ? encodePaymentRequestAmount(payload.payment_req, PAYMENT_REQUEST_AMOUNT_BYTES.DEFAULT) : undefined,
30
- chunkify: typeof chunkify === 'boolean' ? chunkify : false
31
- };
32
- super(message, params);
33
- this.requiredDeviceCapabilities = ['Capability_Ripple'];
34
- this.requiredFirmwareCoins = [getMiscNetwork('xrp')];
35
- }
36
- get requiredPermissions() {
37
- return this.coinPerms('sign', this.requiredFirmwareCoins);
38
- }
39
- get info() {
40
- return 'Sign Ripple transaction';
41
- }
42
- async run() {
43
- const cmd = this.getDevice().getCommands();
44
- const {
45
- message
46
- } = await cmd.typedCall('RippleSignTx', 'RippleSignedTx', this.params);
47
- return {
48
- serializedTx: message.serialized_tx,
49
- signature: message.signature
50
- };
51
- }
52
- }
@@ -1,15 +0,0 @@
1
- import { type CoinInfo, type PermissionRequest } from '@trezor/connect-common';
2
- import { type AddressSelection } from '@trezor/connect-common/lib/types/api/selectAccount';
3
- import type { MethodMessage, MethodReturnType } from "../core/AbstractMethod.js";
4
- import { AbstractMethod } from "../core/AbstractMethod.js";
5
- type Params = {
6
- coinInfo: CoinInfo;
7
- addressSelection?: AddressSelection;
8
- };
9
- export default class SelectAccount extends AbstractMethod<'selectAccount', Params> {
10
- constructor(message: MethodMessage<'selectAccount'>);
11
- get requiredPermissions(): PermissionRequest[];
12
- get info(): string;
13
- run(): Promise<MethodReturnType<'selectAccount'>>;
14
- }
15
- export {};
@@ -1,42 +0,0 @@
1
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
2
- import { SelectAccount as SelectAccountSchema } from "@trezor/connect-common/lib/types/api/selectAccount.js";
3
- import { Assert } from "@trezor/schema-utils";
4
- import { AbstractMethod } from "../core/AbstractMethod.js";
5
- import { getCoinInfoOrThrow } from "../data/coinInfo.js";
6
- import { isUtxoBased } from "../utils/accountUtils.js";
7
- import { getLabel } from "../utils/pathUtils.js";
8
- export default class SelectAccount extends AbstractMethod {
9
- constructor(message) {
10
- const {
11
- payload
12
- } = message;
13
- Assert(SelectAccountSchema, payload);
14
- const {
15
- selectionType
16
- } = payload;
17
- const bounds = typeof selectionType === 'object' && selectionType !== null ? selectionType : undefined;
18
- if (bounds?.minCount !== undefined && bounds.maxCount !== undefined && bounds.minCount > bounds.maxCount) {
19
- throw ERRORS.TypedError('Method_InvalidParameter', 'selectionType.minCount cannot be greater than selectionType.maxCount');
20
- }
21
- const coinInfo = getCoinInfoOrThrow(payload.coin);
22
- super(message, {
23
- coinInfo,
24
- addressSelection: payload.addressSelection
25
- });
26
- this.useDevice = false;
27
- this.useDeviceState = false;
28
- this.useUi = true;
29
- this.requiredFirmwareCoins = [coinInfo];
30
- }
31
- get requiredPermissions() {
32
- const isFullAccount = this.params.addressSelection === undefined || this.params.addressSelection === 'fullAccount';
33
- const permission = isUtxoBased(this.params.coinInfo) && isFullAccount ? 'read_xpub' : 'read_address';
34
- return this.coinPerms(permission, this.requiredFirmwareCoins);
35
- }
36
- get info() {
37
- return getLabel('Select #NETWORK account', this.params.coinInfo);
38
- }
39
- run() {
40
- return Promise.resolve([]);
41
- }
42
- }
@@ -1,12 +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 SetBrightness extends AbstractMethod<'setBrightness', PROTO.SetBrightness> {
6
- constructor(message: MethodMessage<'setBrightness'>);
7
- get requiredPermissions(): PermissionRequest[];
8
- init(): void;
9
- run(): Promise<{
10
- message: string;
11
- }>;
12
- }
@@ -1,28 +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 SetBrightness extends AbstractMethod {
5
- constructor(message) {
6
- const {
7
- payload
8
- } = message;
9
- Assert(PROTO.SetBrightness, payload);
10
- const params = {
11
- value: payload.value
12
- };
13
- super(message, params);
14
- this.skipFinalReload = false;
15
- this.useDeviceState = false;
16
- }
17
- get requiredPermissions() {
18
- return [{
19
- permission: 'management'
20
- }];
21
- }
22
- init() {}
23
- async run() {
24
- const cmd = this.getDevice().getCommands();
25
- const response = await cmd.typedCall('SetBrightness', 'Success', this.params);
26
- return response.message;
27
- }
28
- }
@@ -1,11 +0,0 @@
1
- import { type PermissionRequest } from '@trezor/connect-common';
2
- import type { 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 SetBusy extends AbstractMethod<'setBusy', PROTO.SetBusy> {
6
- constructor(message: MethodMessage<'setBusy'>);
7
- get requiredPermissions(): PermissionRequest[];
8
- run(): Promise<{
9
- message: string;
10
- }>;
11
- }
@@ -1,31 +0,0 @@
1
- import { AbstractMethod } from "../core/AbstractMethod.js";
2
- export default class SetBusy extends AbstractMethod {
3
- constructor(message) {
4
- const {
5
- payload
6
- } = message;
7
- const params = {
8
- expiry_ms: payload.expiry_ms
9
- };
10
- super(message, params);
11
- this.useDeviceState = false;
12
- this.skipFinalReload = false;
13
- this.overridePreviousCall = true;
14
- }
15
- get requiredPermissions() {
16
- return [{
17
- permission: 'management'
18
- }];
19
- }
20
- async run() {
21
- const cmd = this.getDevice().getCommands();
22
- const {
23
- message
24
- } = await cmd.typedCall('SetBusy', 'Success', this.params);
25
- if (this.keepSession && !!this.params.expiry_ms) {
26
- this.getDevice().features.busy = true;
27
- this.getDevice().emitDeviceChanged();
28
- }
29
- return message;
30
- }
31
- }
@@ -1,11 +0,0 @@
1
- import { type PermissionRequest } from '@trezor/connect-common';
2
- import type { MethodMessage } from "../core/AbstractMethod.js";
3
- import { AbstractMethod } from "../core/AbstractMethod.js";
4
- export default class ShowDeviceTutorial extends AbstractMethod<'showDeviceTutorial'> {
5
- constructor(message: MethodMessage<'showDeviceTutorial'>);
6
- get requiredPermissions(): PermissionRequest[];
7
- get info(): string;
8
- run(): Promise<{
9
- message: string;
10
- }>;
11
- }
@@ -1,21 +0,0 @@
1
- import { UI_REQUEST } from "@trezor/connect-common";
2
- import { AbstractMethod } from "../core/AbstractMethod.js";
3
- export default class ShowDeviceTutorial extends AbstractMethod {
4
- constructor(message) {
5
- super(message, undefined);
6
- this.useEmptyPassphrase = true;
7
- this.useDeviceState = false;
8
- this.allowDeviceMode = [UI_REQUEST.INITIALIZE];
9
- }
10
- get requiredPermissions() {
11
- return [];
12
- }
13
- get info() {
14
- return 'Show device tutorial';
15
- }
16
- async run() {
17
- const cmd = this.getDevice().getCommands();
18
- const response = await cmd.typedCall('ShowDeviceTutorial', 'Success');
19
- return response.message;
20
- }
21
- }
@@ -1,25 +0,0 @@
1
- import type { BitcoinNetworkInfo, PermissionRequest } from '@trezor/connect-common';
2
- import type { MessagesSchema as PROTO } from '@trezor/protobuf';
3
- import type { MethodMessage } from "../core/AbstractMethod.js";
4
- import { AbstractMethod } from "../core/AbstractMethod.js";
5
- type Params = {
6
- proto: PROTO.SignMessage;
7
- readableMessage: string;
8
- };
9
- export default class SignMessage extends AbstractMethod<'signMessage', Params> {
10
- constructor(message: MethodMessage<'signMessage'>);
11
- coinInfo: BitcoinNetworkInfo | undefined;
12
- get requiredPermissions(): PermissionRequest[];
13
- get info(): string;
14
- getButtonRequestData(code: string, name?: string): {
15
- type: "message";
16
- serializedPath: string;
17
- coin: string;
18
- message: string;
19
- } | undefined;
20
- run(): Promise<{
21
- address: string;
22
- signature: string;
23
- }>;
24
- }
25
- export {};
@@ -1,75 +0,0 @@
1
- import { SignMessage as SignMessageSchema } from "@trezor/connect-common";
2
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
- import { Assert } from "@trezor/schema-utils";
4
- import { AbstractMethod } from "../core/AbstractMethod.js";
5
- import { validateCoinPath } from "./common/paramsValidator.js";
6
- import { getBitcoinNetwork } from "../data/coinInfo.js";
7
- import { validateModelOneMessageSize } from "../device/validateMessageSize.js";
8
- import { hexToText, messageToHex } from "../utils/formatUtils.js";
9
- import { getLabel, getScriptType, getSerializedPath, validatePath } from "../utils/pathUtils.js";
10
- export default class SignMessage extends AbstractMethod {
11
- constructor(message) {
12
- const {
13
- payload
14
- } = message;
15
- Assert(SignMessageSchema, payload);
16
- const path = validatePath(payload.path);
17
- let coinInfo;
18
- if (payload.coin) {
19
- coinInfo = getBitcoinNetwork(payload.coin);
20
- if (!coinInfo) {
21
- throw ERRORS.TypedError('Method_UnknownCoin');
22
- }
23
- validateCoinPath(path, coinInfo);
24
- } else {
25
- coinInfo = getBitcoinNetwork(path);
26
- }
27
- const messageHex = payload.hex ? messageToHex(payload.message) : Buffer.from(payload.message, 'utf8').toString('hex');
28
- const readableMessage = payload.hex ? hexToText(payload.message) : payload.message;
29
- const scriptType = getScriptType(path);
30
- const proto = {
31
- address_n: path,
32
- message: messageHex,
33
- coin_name: coinInfo ? coinInfo.name : undefined,
34
- script_type: scriptType && scriptType !== 'SPENDMULTISIG' ? scriptType : 'SPENDADDRESS',
35
- no_script_type: payload.no_script_type
36
- };
37
- const params = {
38
- proto,
39
- readableMessage
40
- };
41
- super(message, params);
42
- this.coinInfo = coinInfo;
43
- this.requiredFirmwareCoins = [coinInfo];
44
- if (payload.no_script_type) {
45
- this.requiredFirmwareCapabilities = ['signMessageNoScriptType'];
46
- }
47
- }
48
- coinInfo;
49
- get requiredPermissions() {
50
- return [this.coinPerm('sign_message', this.coinInfo)];
51
- }
52
- get info() {
53
- return getLabel('Sign #NETWORK message', this.coinInfo);
54
- }
55
- getButtonRequestData(code, name) {
56
- if (code === 'ButtonRequest_Other' && name === 'sign_message') {
57
- return {
58
- type: 'message',
59
- serializedPath: getSerializedPath(this.params.proto.address_n),
60
- coin: this.coinInfo?.shortcut ?? 'BTC',
61
- message: this.params.readableMessage
62
- };
63
- }
64
- }
65
- async run() {
66
- validateModelOneMessageSize(this.getDevice(), this.params.proto.message);
67
- const cmd = this.getDevice().getCommands();
68
- const {
69
- message
70
- } = await cmd.typedCall('SignMessage', 'MessageSignature', this.params.proto);
71
- const signatureBuffer = Buffer.from(message.signature, 'hex');
72
- message.signature = signatureBuffer.toString('base64');
73
- return message;
74
- }
75
- }