@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,199 +0,0 @@
1
- import type { AccountAddresses, BitcoinNetworkInfo, PROTO, PermissionRequest, RefTransaction, TransactionOptions } from '@trezor/connect-common';
2
- import type { MethodContext, MethodMessage } from "../core/AbstractMethod.js";
3
- import { AbstractMethod } from "../core/AbstractMethod.js";
4
- type Params = {
5
- inputs: PROTO.TxInputType[];
6
- outputs: PROTO.TxOutputType[];
7
- paymentRequests: PROTO.PaymentRequest[];
8
- coinjoinRequest?: PROTO.CoinJoinRequest;
9
- refTxs?: RefTransaction[];
10
- addresses?: AccountAddresses;
11
- options: TransactionOptions;
12
- coinInfo: BitcoinNetworkInfo;
13
- identity?: string;
14
- push: boolean;
15
- unlockPath?: PROTO.UnlockPath;
16
- };
17
- export default class SignTransaction extends AbstractMethod<'signTransaction', Params> {
18
- constructor(message: MethodMessage<'signTransaction'>);
19
- get requiredPermissions(): PermissionRequest[];
20
- get info(): string;
21
- payloadToPrecomposed(): Promise<undefined> | Promise<{
22
- type: "final";
23
- inputs: (({
24
- sequence?: number | undefined;
25
- multisig?: {
26
- address_n?: number[] | undefined;
27
- nodes?: {
28
- private_key?: string | undefined;
29
- fingerprint: number;
30
- depth: number;
31
- child_num: number;
32
- chain_code: string;
33
- public_key: string;
34
- }[] | undefined;
35
- pubkeys_order?: PROTO.MultisigPubkeysOrder | undefined;
36
- pubkeys: {
37
- node: string | {
38
- private_key?: string | undefined;
39
- fingerprint: number;
40
- depth: number;
41
- child_num: number;
42
- chain_code: string;
43
- public_key: string;
44
- };
45
- address_n: number[];
46
- }[];
47
- signatures: string[];
48
- m: number;
49
- } | undefined;
50
- decred_tree?: number | undefined;
51
- orig_hash?: string | undefined;
52
- orig_index?: number | undefined;
53
- decred_staking_spend?: PROTO.DecredStakingSpendType | undefined;
54
- script_pubkey?: string | undefined;
55
- coinjoin_flags?: number | undefined;
56
- script_sig?: string | undefined;
57
- witness?: string | undefined;
58
- ownership_proof?: string | undefined;
59
- commitment_data?: string | undefined;
60
- prev_hash: string;
61
- prev_index: number;
62
- amount: string | number;
63
- } & {
64
- script_type?: "SPENDADDRESS" | "SPENDMULTISIG" | "SPENDWITNESS" | "SPENDP2SHWITNESS" | "SPENDTAPROOT" | undefined;
65
- address_n: number[];
66
- }) | ({
67
- sequence?: number | undefined;
68
- multisig?: {
69
- address_n?: number[] | undefined;
70
- nodes?: {
71
- private_key?: string | undefined;
72
- fingerprint: number;
73
- depth: number;
74
- child_num: number;
75
- chain_code: string;
76
- public_key: string;
77
- }[] | undefined;
78
- pubkeys_order?: PROTO.MultisigPubkeysOrder | undefined;
79
- pubkeys: {
80
- node: string | {
81
- private_key?: string | undefined;
82
- fingerprint: number;
83
- depth: number;
84
- child_num: number;
85
- chain_code: string;
86
- public_key: string;
87
- };
88
- address_n: number[];
89
- }[];
90
- signatures: string[];
91
- m: number;
92
- } | undefined;
93
- decred_tree?: number | undefined;
94
- orig_hash?: string | undefined;
95
- orig_index?: number | undefined;
96
- decred_staking_spend?: PROTO.DecredStakingSpendType | undefined;
97
- script_pubkey?: string | undefined;
98
- coinjoin_flags?: number | undefined;
99
- script_sig?: string | undefined;
100
- witness?: string | undefined;
101
- ownership_proof?: string | undefined;
102
- commitment_data?: string | undefined;
103
- prev_hash: string;
104
- prev_index: number;
105
- amount: string | number;
106
- } & {
107
- address_n?: undefined;
108
- script_pubkey: string;
109
- script_type: "EXTERNAL";
110
- }))[];
111
- outputs: ({
112
- multisig?: {
113
- address_n?: number[] | undefined;
114
- nodes?: {
115
- private_key?: string | undefined;
116
- fingerprint: number;
117
- depth: number;
118
- child_num: number;
119
- chain_code: string;
120
- public_key: string;
121
- }[] | undefined;
122
- pubkeys_order?: PROTO.MultisigPubkeysOrder | undefined;
123
- pubkeys: {
124
- node: string | {
125
- private_key?: string | undefined;
126
- fingerprint: number;
127
- depth: number;
128
- child_num: number;
129
- chain_code: string;
130
- public_key: string;
131
- };
132
- address_n: number[];
133
- }[];
134
- signatures: string[];
135
- m: number;
136
- } | undefined;
137
- orig_hash?: string | undefined;
138
- orig_index?: number | undefined;
139
- address_n?: undefined;
140
- script_type?: "PAYTOADDRESS" | undefined;
141
- payment_req_index?: number | undefined;
142
- amount: string | number;
143
- address: string;
144
- } | {
145
- multisig?: {
146
- address_n?: number[] | undefined;
147
- nodes?: {
148
- private_key?: string | undefined;
149
- fingerprint: number;
150
- depth: number;
151
- child_num: number;
152
- chain_code: string;
153
- public_key: string;
154
- }[] | undefined;
155
- pubkeys_order?: PROTO.MultisigPubkeysOrder | undefined;
156
- pubkeys: {
157
- node: string | {
158
- private_key?: string | undefined;
159
- fingerprint: number;
160
- depth: number;
161
- child_num: number;
162
- chain_code: string;
163
- public_key: string;
164
- };
165
- address_n: number[];
166
- }[];
167
- signatures: string[];
168
- m: number;
169
- } | undefined;
170
- orig_hash?: string | undefined;
171
- orig_index?: number | undefined;
172
- script_type?: "PAYTOADDRESS" | "PAYTOSCRIPTHASH" | "PAYTOMULTISIG" | "PAYTOWITNESS" | "PAYTOP2SHWITNESS" | "PAYTOTAPROOT" | undefined;
173
- address?: undefined;
174
- payment_req_index?: number | undefined;
175
- amount: string | number;
176
- address_n: number[];
177
- } | {
178
- orig_hash?: string | undefined;
179
- orig_index?: number | undefined;
180
- address_n?: undefined;
181
- address?: undefined;
182
- payment_req_index?: number | undefined;
183
- amount: 0 | "0";
184
- script_type: "PAYTOOPRETURN";
185
- op_return_data: string;
186
- })[];
187
- outputsPermutation: number[];
188
- totalSpent: string;
189
- fee: string;
190
- feePerByte: string;
191
- bytes: number;
192
- }>;
193
- private fetchAddresses;
194
- private fetchRefTxs;
195
- run({
196
- sendCoreMessage
197
- }: MethodContext): Promise<import("@trezor/connect-common").SignedTransaction>;
198
- }
199
- export {};
@@ -1,331 +0,0 @@
1
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
2
- import { BigNumber } from "@trezor/utils/lib/bigNumber.js";
3
- import { promiseAllSequence } from "@trezor/utils/lib/promiseAllSequence.js";
4
- import { createPendingTransaction, deriveOutputScript, enhanceSignTx, getOrigTransactions, getReferencedTransactions, parseTransactionHexes, requireReferencedTransactions, signTx, signTxLegacy, transformOrigTransactions, transformReferencedTransactions, validateReferencedTransactions, validateTrezorInputs, validateTrezorOutputs, verifyTx } from "./bitcoin/index.js";
5
- import { assertBackendSupported, initBlockchain } from "../backend/BlockchainLink.js";
6
- import { AbstractMethod } from "../core/AbstractMethod.js";
7
- import { getBitcoinNetwork } from "../data/coinInfo.js";
8
- import { getLabel } from "../utils/pathUtils.js";
9
- import { PAYMENT_REQUEST_AMOUNT_BYTES, encodePaymentRequestAmount } from "../utils/paymentRequest.js";
10
- import { getTransactionVbytes } from "./bitcoin/transactionBytes.js";
11
- import { validateParams } from "./common/paramsValidator.js";
12
- export default class SignTransaction extends AbstractMethod {
13
- constructor(message) {
14
- const {
15
- payload
16
- } = message;
17
- validateParams(payload, [{
18
- name: 'coin',
19
- type: 'string',
20
- required: true
21
- }, {
22
- name: 'identity',
23
- type: 'string'
24
- }, {
25
- name: 'inputs',
26
- type: 'array',
27
- required: true
28
- }, {
29
- name: 'outputs',
30
- type: 'array',
31
- required: true
32
- }, {
33
- name: 'paymentRequests',
34
- type: 'array',
35
- allowEmpty: true
36
- }, {
37
- name: 'coinjoinRequest',
38
- type: 'object'
39
- }, {
40
- name: 'refTxs',
41
- type: 'array',
42
- allowEmpty: true
43
- }, {
44
- name: 'account',
45
- type: 'object'
46
- }, {
47
- name: 'locktime',
48
- type: 'number'
49
- }, {
50
- name: 'timestamp',
51
- type: 'number'
52
- }, {
53
- name: 'version',
54
- type: 'number'
55
- }, {
56
- name: 'expiry',
57
- type: 'number'
58
- }, {
59
- name: 'overwintered',
60
- type: 'boolean'
61
- }, {
62
- name: 'versionGroupId',
63
- type: 'number'
64
- }, {
65
- name: 'branchId',
66
- type: 'number'
67
- }, {
68
- name: 'push',
69
- type: 'boolean'
70
- }, {
71
- name: 'preauthorized',
72
- type: 'boolean'
73
- }, {
74
- name: 'amountUnit',
75
- type: ['number', 'string']
76
- }, {
77
- name: 'unlockPath',
78
- type: 'object'
79
- }, {
80
- name: 'serialize',
81
- type: 'boolean'
82
- }, {
83
- name: 'chunkify',
84
- type: 'boolean'
85
- }]);
86
- if (payload.unlockPath) {
87
- validateParams(payload.unlockPath, [{
88
- name: 'address_n',
89
- required: true,
90
- type: 'array'
91
- }, {
92
- name: 'mac',
93
- required: true,
94
- type: 'string'
95
- }]);
96
- }
97
- const coinInfo = getBitcoinNetwork(payload.coin);
98
- if (!coinInfo) {
99
- throw ERRORS.TypedError('Method_UnknownCoin');
100
- }
101
- const inputs = validateTrezorInputs(payload.inputs, coinInfo);
102
- const outputs = validateTrezorOutputs(payload.outputs, coinInfo);
103
- if (payload.paymentRequests && payload.paymentRequests.length > 0) {
104
- outputs.forEach(output => {
105
- output.payment_req_index = 0;
106
- });
107
- }
108
- if (payload.refTxs && payload.account?.transactions) {
109
- console.warn('two sources of referential transactions were passed. payload.refTxs have precedence');
110
- }
111
- const refTxs = validateReferencedTransactions({
112
- transactions: payload.refTxs || payload.account?.transactions,
113
- inputs,
114
- outputs,
115
- coinInfo,
116
- addresses: payload.account?.addresses
117
- });
118
- const outputsWithAmount = outputs.filter(output => typeof output.amount === 'string' && !Object.prototype.hasOwnProperty.call(output, 'op_return_data'));
119
- if (outputsWithAmount.length > 0) {
120
- const total = outputsWithAmount.reduce((bn, output) => bn.plus(typeof output.amount === 'string' ? output.amount : '0'), new BigNumber(0));
121
- if (total.lt(coinInfo.dustLimit)) {
122
- throw ERRORS.TypedError('Method_InvalidParameter', 'Total amount is below dust limit.');
123
- }
124
- }
125
- const paymentRequests = payload.paymentRequests?.map(p => encodePaymentRequestAmount(p, PAYMENT_REQUEST_AMOUNT_BYTES.DEFAULT)) ?? [];
126
- const params = {
127
- inputs,
128
- outputs,
129
- paymentRequests,
130
- refTxs,
131
- addresses: payload.account ? payload.account.addresses : undefined,
132
- options: enhanceSignTx({
133
- lock_time: payload.locktime,
134
- timestamp: payload.timestamp,
135
- version: payload.version,
136
- expiry: payload.expiry,
137
- overwintered: payload.overwintered,
138
- version_group_id: payload.versionGroupId,
139
- branch_id: payload.branchId,
140
- amount_unit: payload.amountUnit,
141
- serialize: payload.serialize,
142
- coinjoin_request: payload.coinjoinRequest,
143
- chunkify: typeof payload.chunkify === 'boolean' ? payload.chunkify : false
144
- }, coinInfo),
145
- coinInfo,
146
- identity: payload.identity,
147
- push: typeof payload.push === 'boolean' ? payload.push : false,
148
- unlockPath: payload.unlockPath
149
- };
150
- super(message, params);
151
- this.requiredFirmwareCoins = [coinInfo];
152
- this.preauthorized = payload.preauthorized;
153
- }
154
- get requiredPermissions() {
155
- const permissions = [this.coinPerm('sign', this.params.coinInfo)];
156
- if (this.params.push) {
157
- permissions.push(this.coinPerm('push_tx', this.params.coinInfo));
158
- }
159
- return permissions;
160
- }
161
- get info() {
162
- return getLabel('Sign #NETWORK transaction', this.params.coinInfo);
163
- }
164
- payloadToPrecomposed() {
165
- try {
166
- const {
167
- inputs,
168
- outputs,
169
- coinInfo
170
- } = this.params;
171
- const {
172
- refTxs
173
- } = this.params;
174
- const inputsTotal = inputs.reduce((bn, input) => {
175
- if (typeof input.amount === 'string') {
176
- return bn.plus(input.amount);
177
- } else {
178
- if (!refTxs) {
179
- throw ERRORS.TypedError('Runtime', 'refTxs are required for precomposed transaction info when input amount is not provided');
180
- }
181
- const refTx = refTxs.find(tx => tx.hash === input.prev_hash);
182
- const refOutput = refTx?.outputs?.[input.prev_index] ?? refTx?.bin_outputs?.[input.prev_index];
183
- if (refOutput) return bn.plus(refOutput.amount);
184
- }
185
- return bn;
186
- }, new BigNumber(0));
187
- const outputsTotal = outputs.reduce((bn, output) => bn.plus(typeof output.amount === 'string' ? output.amount : '0'), new BigNumber(0));
188
- const bytes = getTransactionVbytes(inputs, outputs, coinInfo);
189
- if (!bytes) throw ERRORS.TypedError('Runtime', 'Transaction bytes not calculated');
190
- const fee = inputsTotal.minus(outputsTotal);
191
- if (fee.lte(0)) {
192
- throw ERRORS.TypedError('Runtime', 'Computed fee is non-positive');
193
- }
194
- const feePerByte = fee.dividedBy(bytes);
195
- const result = {
196
- type: 'final',
197
- inputs,
198
- outputs,
199
- outputsPermutation: Array.from({
200
- length: outputs.length
201
- }, (_, i) => i),
202
- totalSpent: inputsTotal.toString(),
203
- fee: fee.toString(),
204
- feePerByte: feePerByte.toString(),
205
- bytes
206
- };
207
- return Promise.resolve(result);
208
- } catch (e) {
209
- console.error('Error in payloadToPrecomposed', e);
210
- return Promise.resolve(undefined);
211
- }
212
- }
213
- async fetchAddresses(blockchain) {
214
- const device = this.getDevice();
215
- const {
216
- params: {
217
- inputs,
218
- coinInfo
219
- }
220
- } = this;
221
- const accountPath = inputs.find(i => i.address_n);
222
- if (!accountPath?.address_n) {
223
- throw ERRORS.TypedError('Runtime', 'Account not found');
224
- }
225
- const address_n = accountPath.address_n.slice(0, 3);
226
- const node = await device.getCommands().getHDNode({
227
- address_n
228
- }, {
229
- coinInfo
230
- });
231
- const account = await blockchain.getAccountInfo({
232
- descriptor: node.xpubSegwit || node.xpub,
233
- details: 'tokens'
234
- });
235
- return account.addresses;
236
- }
237
- async fetchRefTxs(sendCoreMessage, useLegacySignProcess) {
238
- const {
239
- params: {
240
- inputs,
241
- outputs,
242
- options,
243
- coinInfo,
244
- identity,
245
- addresses
246
- }
247
- } = this;
248
- const requiredRefTxs = requireReferencedTransactions(inputs, options, coinInfo);
249
- const refTxsIds = requiredRefTxs ? getReferencedTransactions(inputs) : [];
250
- const origTxsIds = !useLegacySignProcess ? getOrigTransactions(inputs, outputs) : [];
251
- if (!refTxsIds.length && !origTxsIds.length) {
252
- return [];
253
- }
254
- assertBackendSupported(coinInfo);
255
- const blockchain = await initBlockchain(coinInfo, sendCoreMessage, identity);
256
- const refTxs = !refTxsIds.length ? [] : await blockchain.getTransactionHexes(refTxsIds).then(parseTransactionHexes(coinInfo.network)).then(rawTxs => transformReferencedTransactions(rawTxs));
257
- const origTxs = !origTxsIds.length ? [] : await blockchain.getTransactionHexes(origTxsIds).then(parseTransactionHexes(coinInfo.network)).then(async rawOrigTxs => {
258
- const accountAddresses = addresses ?? (await this.fetchAddresses(blockchain));
259
- if (!accountAddresses) return [];
260
- return transformOrigTransactions(rawOrigTxs, coinInfo, inputs, accountAddresses);
261
- });
262
- return refTxs.concat(origTxs);
263
- }
264
- async run({
265
- sendCoreMessage
266
- }) {
267
- const device = this.getDevice();
268
- const {
269
- params
270
- } = this;
271
- const {
272
- inputs,
273
- outputs,
274
- coinInfo
275
- } = params;
276
- const useLegacySignProcess = !!device.unavailableCapabilities.replaceTransaction;
277
- const refTxs = params.refTxs ?? (await this.fetchRefTxs(sendCoreMessage, useLegacySignProcess));
278
- let outputScripts = [];
279
- if (params.options.serialize !== false) {
280
- const getHDNode = address_n => device.getCommands().getHDNode({
281
- address_n
282
- }, {
283
- coinInfo,
284
- unlockPath: params.unlockPath
285
- });
286
- outputScripts = await promiseAllSequence(outputs.map(output => () => deriveOutputScript(getHDNode, output, coinInfo.network)));
287
- }
288
- if (this.preauthorized) {
289
- await device.getCommands().preauthorize(true);
290
- } else if (params.unlockPath) {
291
- await device.getCommands().unlockPath(params.unlockPath);
292
- }
293
- const signTxMethod = !useLegacySignProcess ? signTx : signTxLegacy;
294
- device.startPiggybackAck();
295
- const response = await signTxMethod({
296
- ...params,
297
- refTxs,
298
- typedCall: device.getCommands().typedCall
299
- });
300
- await device.stopPiggybackAck();
301
- if (!response.serializedTx) {
302
- return response;
303
- }
304
- const bitcoinTx = verifyTx(response.serializedTx, {
305
- inputs,
306
- outputs,
307
- outputScripts,
308
- network: coinInfo.network
309
- });
310
- if (bitcoinTx.hasWitnesses()) {
311
- response.witnesses = bitcoinTx.ins.map((_, i) => bitcoinTx?.getWitness(i)?.toString('hex'));
312
- }
313
- if (bitcoinTx && params.addresses) {
314
- response.signedTransaction = createPendingTransaction(bitcoinTx, {
315
- addresses: params.addresses,
316
- inputs,
317
- outputs
318
- });
319
- }
320
- if (params.push) {
321
- assertBackendSupported(coinInfo);
322
- const blockchain = await initBlockchain(coinInfo, sendCoreMessage, params.identity);
323
- const txid = await blockchain.pushTransaction(response.serializedTx);
324
- return {
325
- ...response,
326
- txid
327
- };
328
- }
329
- return response;
330
- }
331
- }
@@ -1,4 +0,0 @@
1
- export { default as solanaComposeTransaction } from "./solanaComposeTransaction.js";
2
- export { default as solanaGetAddress } from "./solanaGetAddress.js";
3
- export { default as solanaGetPublicKey } from "./solanaGetPublicKey.js";
4
- export { default as solanaSignTransaction } from "./solanaSignTransaction.js";
@@ -1,4 +0,0 @@
1
- export { default as solanaComposeTransaction } from "./solanaComposeTransaction.js";
2
- export { default as solanaGetAddress } from "./solanaGetAddress.js";
3
- export { default as solanaGetPublicKey } from "./solanaGetPublicKey.js";
4
- export { default as solanaSignTransaction } from "./solanaSignTransaction.js";
@@ -1,33 +0,0 @@
1
- import type { CoinInfo, PermissionRequest } from '@trezor/connect-common';
2
- import { SolanaComposeTransaction as SolanaComposeTransactionSchema } from '@trezor/connect-common';
3
- import type { MethodContext, MethodMessage } from "../../../core/AbstractMethod.js";
4
- import { AbstractMethod } from "../../../core/AbstractMethod.js";
5
- type SolanaComposeTransactionParams = SolanaComposeTransactionSchema & {
6
- coinInfo: CoinInfo;
7
- };
8
- export default class SolanaComposeTransaction extends AbstractMethod<'solanaComposeTransaction', SolanaComposeTransactionParams> {
9
- constructor(message: MethodMessage<'solanaComposeTransaction'>);
10
- get requiredPermissions(): PermissionRequest[];
11
- get info(): string;
12
- run({
13
- sendCoreMessage
14
- }: MethodContext): Promise<{
15
- serializedTx: string;
16
- additionalInfo: {
17
- newAccountProgramName?: undefined;
18
- tokenAccountInfo?: undefined;
19
- };
20
- } | {
21
- serializedTx: string;
22
- additionalInfo: {
23
- newAccountProgramName: "spl-token" | "spl-token-2022" | undefined;
24
- tokenAccountInfo: {
25
- baseAddress: string;
26
- tokenProgram: string;
27
- tokenMint: string;
28
- tokenAccount: string;
29
- } | undefined;
30
- };
31
- }>;
32
- }
33
- export {};
@@ -1,73 +0,0 @@
1
- import { SolanaComposeTransaction as SolanaComposeTransactionSchema } from "@trezor/connect-common";
2
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
- import { SYSTEM_PROGRAM_PUBLIC_KEY } from "@trezor/network-solana/constants";
4
- import solana from "@trezor/network-solana/runtime";
5
- import { Assert } from "@trezor/schema-utils";
6
- import { assertBackendSupported, initBlockchain } from "../../../backend/BlockchainLink.js";
7
- import { AbstractMethod } from "../../../core/AbstractMethod.js";
8
- import { getCoinInfoOrThrow } from "../../../data/coinInfo.js";
9
- export default class SolanaComposeTransaction extends AbstractMethod {
10
- constructor(message) {
11
- const {
12
- payload
13
- } = message;
14
- Assert(SolanaComposeTransactionSchema, payload);
15
- const coinInfo = getCoinInfoOrThrow(payload.coin || 'sol');
16
- assertBackendSupported(coinInfo);
17
- const params = {
18
- coinInfo,
19
- ...payload
20
- };
21
- super(message, params);
22
- this.useDevice = false;
23
- this.useUi = false;
24
- }
25
- get requiredPermissions() {
26
- return [];
27
- }
28
- get info() {
29
- return 'Compose Solana transaction';
30
- }
31
- async run({
32
- sendCoreMessage
33
- }) {
34
- const backend = await initBlockchain(this.params.coinInfo, sendCoreMessage, this.params.identity);
35
- if (this.params.serializedTx) {
36
- return {
37
- serializedTx: this.params.serializedTx,
38
- additionalInfo: {}
39
- };
40
- }
41
- if (!this.params.toAddress) {
42
- throw ERRORS.TypedError('Method_InvalidParameter', 'toAddress not found');
43
- }
44
- const {
45
- getAssociatedTokenAccountAddress,
46
- buildTokenTransferTransaction,
47
- buildTransferTransaction
48
- } = await solana();
49
- const {
50
- token,
51
- toAddress
52
- } = this.params;
53
- const [recipientAccountOwner, recipientTokenAccounts] = token ? await backend.getAccountInfo({
54
- descriptor: toAddress
55
- }).then(accountInfo => !accountInfo ? [undefined, undefined] : getAssociatedTokenAccountAddress(toAddress, token.mint, token.program).then(associatedTokenAccount => {
56
- const accountOwner = accountInfo?.misc?.owner;
57
- const tokenInfo = accountInfo?.tokens?.find(t => t.contract === token.mint)?.accounts?.find(account => associatedTokenAccount.toString() === account.publicKey);
58
- return [accountOwner, tokenInfo];
59
- })) : [undefined, undefined];
60
- const tokenTransferTxAndDestinationAddress = this.params.token?.accounts ? await buildTokenTransferTransaction(this.params.fromAddress, this.params.toAddress, recipientAccountOwner || SYSTEM_PROGRAM_PUBLIC_KEY, this.params.token.mint, this.params.amount || '0', this.params.token.decimals, this.params.token.accounts, recipientTokenAccounts, this.params.blockHash, this.params.lastValidBlockHeight, this.params.priorityFees, this.params.token.program, this.params.memo) : undefined;
61
- if (this.params.token && !tokenTransferTxAndDestinationAddress) throw ERRORS.TypedError('Method_InvalidParameter', 'Token accounts not found');
62
- const tx = tokenTransferTxAndDestinationAddress ? tokenTransferTxAndDestinationAddress.transaction : buildTransferTransaction(this.params.fromAddress, this.params.toAddress, this.params.amount, this.params.blockHash, this.params.lastValidBlockHeight, this.params.priorityFees, this.params.memo);
63
- const isCreatingAccount = this.params.token && recipientTokenAccounts === undefined && (recipientAccountOwner === SYSTEM_PROGRAM_PUBLIC_KEY || recipientAccountOwner == null);
64
- const newAccountProgramName = isCreatingAccount ? this.params.token?.program : undefined;
65
- return {
66
- serializedTx: tx.serialize(),
67
- additionalInfo: {
68
- newAccountProgramName,
69
- tokenAccountInfo: tokenTransferTxAndDestinationAddress?.tokenAccountInfo
70
- }
71
- };
72
- }
73
- }
@@ -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 SolanaGetAddress extends AbstractMiscGetAddress<'solanaGetAddress'> {
5
- constructor(message: MethodMessage<'solanaGetAddress'>);
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 SolanaGetAddress extends AbstractMiscGetAddress {
4
- constructor(message) {
5
- super(message, 2);
6
- this.requiredDeviceCapabilities = ['Capability_Solana'];
7
- this.requiredFirmwareCoins = [getMiscNetwork('sol')];
8
- }
9
- get info() {
10
- return this.getInfo('Solana', false);
11
- }
12
- get confirmation() {
13
- return this.getConfirmation('Solana');
14
- }
15
- async _call({
16
- proto
17
- }) {
18
- const cmd = this.getDevice().getCommands();
19
- const response = await cmd.typedCall('SolanaGetAddress', 'SolanaAddress', proto);
20
- return response.message;
21
- }
22
- }