@trezor/connect 9.0.0-beta.1

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 (495) hide show
  1. package/LICENSE.md +50 -0
  2. package/README.md +38 -0
  3. package/lib/api/applyFlags.d.ts +8 -0
  4. package/lib/api/applyFlags.js +37 -0
  5. package/lib/api/applySettings.d.ts +8 -0
  6. package/lib/api/applySettings.js +57 -0
  7. package/lib/api/authorizeCoinJoin.d.ts +7 -0
  8. package/lib/api/authorizeCoinJoin.js +45 -0
  9. package/lib/api/backupDevice.d.ts +7 -0
  10. package/lib/api/backupDevice.js +31 -0
  11. package/lib/api/binance/binanceSignTx.d.ts +6 -0
  12. package/lib/api/binance/binanceSignTx.js +91 -0
  13. package/lib/api/binanceGetAddress.d.ts +22 -0
  14. package/lib/api/binanceGetAddress.js +126 -0
  15. package/lib/api/binanceGetPublicKey.d.ts +10 -0
  16. package/lib/api/binanceGetPublicKey.js +72 -0
  17. package/lib/api/binanceSignTransaction.d.ts +12 -0
  18. package/lib/api/binanceSignTransaction.js +31 -0
  19. package/lib/api/bitcoin/Fees.d.ts +15 -0
  20. package/lib/api/bitcoin/Fees.js +175 -0
  21. package/lib/api/bitcoin/TransactionComposer.d.ts +36 -0
  22. package/lib/api/bitcoin/TransactionComposer.js +150 -0
  23. package/lib/api/bitcoin/__fixtures__/inputs.d.ts +112 -0
  24. package/lib/api/bitcoin/__fixtures__/inputs.js +102 -0
  25. package/lib/api/bitcoin/__fixtures__/signtxVerify.d.ts +147 -0
  26. package/lib/api/bitcoin/__fixtures__/signtxVerify.js +216 -0
  27. package/lib/api/bitcoin/enhanceSignTx.d.ts +4 -0
  28. package/lib/api/bitcoin/enhanceSignTx.js +63 -0
  29. package/lib/api/bitcoin/index.d.ts +10 -0
  30. package/lib/api/bitcoin/index.js +13 -0
  31. package/lib/api/bitcoin/inputs.d.ts +8 -0
  32. package/lib/api/bitcoin/inputs.js +60 -0
  33. package/lib/api/bitcoin/outputs.d.ts +8 -0
  34. package/lib/api/bitcoin/outputs.js +115 -0
  35. package/lib/api/bitcoin/refTx.d.ts +11 -0
  36. package/lib/api/bitcoin/refTx.js +220 -0
  37. package/lib/api/bitcoin/signtx.d.ts +25 -0
  38. package/lib/api/bitcoin/signtx.js +164 -0
  39. package/lib/api/bitcoin/signtxLegacy.d.ts +4 -0
  40. package/lib/api/bitcoin/signtxLegacy.js +136 -0
  41. package/lib/api/bitcoin/signtxVerify.d.ts +8 -0
  42. package/lib/api/bitcoin/signtxVerify.js +130 -0
  43. package/lib/api/blockchainDisconnect.d.ts +13 -0
  44. package/lib/api/blockchainDisconnect.js +34 -0
  45. package/lib/api/blockchainEstimateFee.d.ts +12 -0
  46. package/lib/api/blockchainEstimateFee.js +70 -0
  47. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +12 -0
  48. package/lib/api/blockchainGetAccountBalanceHistory.js +41 -0
  49. package/lib/api/blockchainGetCurrentFiatRates.d.ts +15 -0
  50. package/lib/api/blockchainGetCurrentFiatRates.js +33 -0
  51. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +17 -0
  52. package/lib/api/blockchainGetFiatRatesForTimestamps.js +33 -0
  53. package/lib/api/blockchainGetTransactions.d.ts +12 -0
  54. package/lib/api/blockchainGetTransactions.js +33 -0
  55. package/lib/api/blockchainSetCustomBackend.d.ts +11 -0
  56. package/lib/api/blockchainSetCustomBackend.js +38 -0
  57. package/lib/api/blockchainSubscribe.d.ts +14 -0
  58. package/lib/api/blockchainSubscribe.js +38 -0
  59. package/lib/api/blockchainSubscribeFiatRates.d.ts +14 -0
  60. package/lib/api/blockchainSubscribeFiatRates.js +33 -0
  61. package/lib/api/blockchainUnsubscribe.d.ts +14 -0
  62. package/lib/api/blockchainUnsubscribe.js +38 -0
  63. package/lib/api/blockchainUnsubscribeFiatRates.d.ts +13 -0
  64. package/lib/api/blockchainUnsubscribeFiatRates.js +29 -0
  65. package/lib/api/cardano/cardanoAddressParameters.d.ts +8 -0
  66. package/lib/api/cardano/cardanoAddressParameters.js +100 -0
  67. package/lib/api/cardano/cardanoAuxiliaryData.d.ts +6 -0
  68. package/lib/api/cardano/cardanoAuxiliaryData.js +51 -0
  69. package/lib/api/cardano/cardanoCertificate.d.ts +14 -0
  70. package/lib/api/cardano/cardanoCertificate.js +149 -0
  71. package/lib/api/cardano/cardanoInputs.d.ts +13 -0
  72. package/lib/api/cardano/cardanoInputs.js +34 -0
  73. package/lib/api/cardano/cardanoOutputs.d.ts +8 -0
  74. package/lib/api/cardano/cardanoOutputs.js +38 -0
  75. package/lib/api/cardano/cardanoTokenBundle.d.ts +8 -0
  76. package/lib/api/cardano/cardanoTokenBundle.js +36 -0
  77. package/lib/api/cardano/cardanoWitnesses.d.ts +5 -0
  78. package/lib/api/cardano/cardanoWitnesses.js +48 -0
  79. package/lib/api/cardanoGetAddress.d.ts +23 -0
  80. package/lib/api/cardanoGetAddress.js +158 -0
  81. package/lib/api/cardanoGetNativeScriptHash.d.ts +12 -0
  82. package/lib/api/cardanoGetNativeScriptHash.js +79 -0
  83. package/lib/api/cardanoGetPublicKey.d.ts +10 -0
  84. package/lib/api/cardanoGetPublicKey.js +78 -0
  85. package/lib/api/cardanoSignTransaction.d.ts +48 -0
  86. package/lib/api/cardanoSignTransaction.js +283 -0
  87. package/lib/api/changePin.d.ts +7 -0
  88. package/lib/api/changePin.js +22 -0
  89. package/lib/api/cipherKeyValue.d.ts +8 -0
  90. package/lib/api/cipherKeyValue.js +56 -0
  91. package/lib/api/common/Discovery.d.ts +35 -0
  92. package/lib/api/common/Discovery.js +113 -0
  93. package/lib/api/common/__fixtures__/paramsValidator.d.ts +596 -0
  94. package/lib/api/common/__fixtures__/paramsValidator.js +355 -0
  95. package/lib/api/common/paramsValidator.d.ts +14 -0
  96. package/lib/api/common/paramsValidator.js +140 -0
  97. package/lib/api/composeTransaction.d.ts +33 -0
  98. package/lib/api/composeTransaction.js +270 -0
  99. package/lib/api/customMessage.d.ts +13 -0
  100. package/lib/api/customMessage.js +56 -0
  101. package/lib/api/eos/eosSignTx.d.ts +17 -0
  102. package/lib/api/eos/eosSignTx.js +347 -0
  103. package/lib/api/eosGetPublicKey.d.ts +10 -0
  104. package/lib/api/eosGetPublicKey.js +73 -0
  105. package/lib/api/eosSignTransaction.d.ts +16 -0
  106. package/lib/api/eosSignTransaction.js +36 -0
  107. package/lib/api/ethereum/__fixtures__/ethereumSignTypedData.d.ts +225 -0
  108. package/lib/api/ethereum/__fixtures__/ethereumSignTypedData.js +341 -0
  109. package/lib/api/ethereum/ethereumSignTx.d.ts +13 -0
  110. package/lib/api/ethereum/ethereumSignTx.js +92 -0
  111. package/lib/api/ethereum/ethereumSignTypedData.d.ts +9 -0
  112. package/lib/api/ethereum/ethereumSignTypedData.js +120 -0
  113. package/lib/api/ethereumGetAddress.d.ts +28 -0
  114. package/lib/api/ethereumGetAddress.js +133 -0
  115. package/lib/api/ethereumGetPublicKey.d.ts +15 -0
  116. package/lib/api/ethereumGetPublicKey.js +79 -0
  117. package/lib/api/ethereumSignMessage.d.ts +7 -0
  118. package/lib/api/ethereumSignMessage.js +41 -0
  119. package/lib/api/ethereumSignTransaction.d.ts +20 -0
  120. package/lib/api/ethereumSignTransaction.js +82 -0
  121. package/lib/api/ethereumSignTypedData.d.ts +14 -0
  122. package/lib/api/ethereumSignTypedData.js +151 -0
  123. package/lib/api/ethereumVerifyMessage.d.ts +7 -0
  124. package/lib/api/ethereumVerifyMessage.js +34 -0
  125. package/lib/api/firmware/getBinary.d.ts +20 -0
  126. package/lib/api/firmware/getBinary.js +37 -0
  127. package/lib/api/firmware/modifyFirmware.d.ts +6 -0
  128. package/lib/api/firmware/modifyFirmware.js +18 -0
  129. package/lib/api/firmwareUpdate.d.ts +15 -0
  130. package/lib/api/firmwareUpdate.js +89 -0
  131. package/lib/api/getAccountInfo.d.ts +98 -0
  132. package/lib/api/getAccountInfo.js +326 -0
  133. package/lib/api/getAddress.d.ts +28 -0
  134. package/lib/api/getAddress.js +152 -0
  135. package/lib/api/getCoinInfo.d.ts +11 -0
  136. package/lib/api/getCoinInfo.js +27 -0
  137. package/lib/api/getDeviceState.d.ts +8 -0
  138. package/lib/api/getDeviceState.js +15 -0
  139. package/lib/api/getFeatures.d.ts +6 -0
  140. package/lib/api/getFeatures.js +18 -0
  141. package/lib/api/getOwnershipId.d.ts +10 -0
  142. package/lib/api/getOwnershipId.js +75 -0
  143. package/lib/api/getOwnershipProof.d.ts +14 -0
  144. package/lib/api/getOwnershipProof.js +86 -0
  145. package/lib/api/getPublicKey.d.ts +15 -0
  146. package/lib/api/getPublicKey.js +84 -0
  147. package/lib/api/getSettings.d.ts +6 -0
  148. package/lib/api/getSettings.js +16 -0
  149. package/lib/api/index.d.ts +64 -0
  150. package/lib/api/index.js +134 -0
  151. package/lib/api/management/uploadFirmware.d.ts +6 -0
  152. package/lib/api/management/uploadFirmware.js +49 -0
  153. package/lib/api/nem/nemSignTx.d.ts +4 -0
  154. package/lib/api/nem/nemSignTx.js +139 -0
  155. package/lib/api/nemGetAddress.d.ts +22 -0
  156. package/lib/api/nemGetAddress.js +144 -0
  157. package/lib/api/nemSignTransaction.d.ts +7 -0
  158. package/lib/api/nemSignTransaction.js +29 -0
  159. package/lib/api/pushTransaction.d.ts +14 -0
  160. package/lib/api/pushTransaction.js +40 -0
  161. package/lib/api/rebootToBootloader.d.ts +8 -0
  162. package/lib/api/rebootToBootloader.js +43 -0
  163. package/lib/api/recoveryDevice.d.ts +8 -0
  164. package/lib/api/recoveryDevice.js +57 -0
  165. package/lib/api/requestLogin.d.ts +12 -0
  166. package/lib/api/requestLogin.js +63 -0
  167. package/lib/api/resetDevice.d.ts +9 -0
  168. package/lib/api/resetDevice.js +59 -0
  169. package/lib/api/rippleGetAddress.d.ts +22 -0
  170. package/lib/api/rippleGetAddress.js +126 -0
  171. package/lib/api/rippleSignTransaction.d.ts +10 -0
  172. package/lib/api/rippleSignTransaction.js +54 -0
  173. package/lib/api/setProxy.d.ts +8 -0
  174. package/lib/api/setProxy.js +26 -0
  175. package/lib/api/signMessage.d.ts +7 -0
  176. package/lib/api/signMessage.js +51 -0
  177. package/lib/api/signTransaction.d.ts +21 -0
  178. package/lib/api/signTransaction.js +146 -0
  179. package/lib/api/stellar/stellarSignTx.d.ts +5 -0
  180. package/lib/api/stellar/stellarSignTx.js +198 -0
  181. package/lib/api/stellarGetAddress.d.ts +22 -0
  182. package/lib/api/stellarGetAddress.js +126 -0
  183. package/lib/api/stellarSignTransaction.d.ts +23 -0
  184. package/lib/api/stellarSignTransaction.js +62 -0
  185. package/lib/api/tezos/tezosSignTx.d.ts +4 -0
  186. package/lib/api/tezos/tezosSignTx.js +237 -0
  187. package/lib/api/tezosGetAddress.d.ts +22 -0
  188. package/lib/api/tezosGetAddress.js +126 -0
  189. package/lib/api/tezosGetPublicKey.d.ts +10 -0
  190. package/lib/api/tezosGetPublicKey.js +72 -0
  191. package/lib/api/tezosSignTransaction.d.ts +7 -0
  192. package/lib/api/tezosSignTransaction.js +30 -0
  193. package/lib/api/verifyMessage.d.ts +7 -0
  194. package/lib/api/verifyMessage.js +47 -0
  195. package/lib/api/wipeDevice.d.ts +8 -0
  196. package/lib/api/wipeDevice.js +41 -0
  197. package/lib/backend/BlockchainLink.d.ts +75 -0
  198. package/lib/backend/BlockchainLink.js +298 -0
  199. package/lib/constants/cardano.d.ts +9 -0
  200. package/lib/constants/cardano.js +14 -0
  201. package/lib/constants/errors.d.ts +49 -0
  202. package/lib/constants/errors.js +62 -0
  203. package/lib/constants/index.d.ts +6 -0
  204. package/lib/constants/index.js +10 -0
  205. package/lib/constants/nem.d.ts +22 -0
  206. package/lib/constants/nem.js +28 -0
  207. package/lib/constants/network.d.ts +13 -0
  208. package/lib/constants/network.js +15 -0
  209. package/lib/core/AbstractMethod.d.ts +59 -0
  210. package/lib/core/AbstractMethod.js +159 -0
  211. package/lib/core/index.d.ts +16 -0
  212. package/lib/core/index.js +671 -0
  213. package/lib/core/method.d.ts +6 -0
  214. package/lib/core/method.js +19 -0
  215. package/lib/data/DataManager.d.ts +31 -0
  216. package/lib/data/DataManager.js +98 -0
  217. package/lib/data/coinInfo.d.ts +37 -0
  218. package/lib/data/coinInfo.js +278 -0
  219. package/lib/data/config.d.ts +98 -0
  220. package/lib/data/config.js +201 -0
  221. package/lib/data/connectSettings.d.ts +6 -0
  222. package/lib/data/connectSettings.js +150 -0
  223. package/lib/data/firmwareInfo.d.ts +11 -0
  224. package/lib/data/firmwareInfo.js +148 -0
  225. package/lib/data/transportInfo.d.ts +4 -0
  226. package/lib/data/transportInfo.js +29 -0
  227. package/lib/data/udevInfo.d.ts +3 -0
  228. package/lib/data/udevInfo.js +21 -0
  229. package/lib/data/version.d.ts +3 -0
  230. package/lib/data/version.js +7 -0
  231. package/lib/device/AbortController.d.ts +21 -0
  232. package/lib/device/AbortController.js +40 -0
  233. package/lib/device/DescriptorStream.d.ts +28 -0
  234. package/lib/device/DescriptorStream.js +139 -0
  235. package/lib/device/Device.d.ts +105 -0
  236. package/lib/device/Device.js +527 -0
  237. package/lib/device/DeviceCommands.d.ts +63 -0
  238. package/lib/device/DeviceCommands.js +465 -0
  239. package/lib/device/DeviceList.d.ts +76 -0
  240. package/lib/device/DeviceList.js +411 -0
  241. package/lib/events/blockchain.d.ts +56 -0
  242. package/lib/events/blockchain.js +18 -0
  243. package/lib/events/call.d.ts +41 -0
  244. package/lib/events/call.js +14 -0
  245. package/lib/events/core.d.ts +20 -0
  246. package/lib/events/core.js +28 -0
  247. package/lib/events/device.d.ts +40 -0
  248. package/lib/events/device.js +28 -0
  249. package/lib/events/iframe.d.ts +39 -0
  250. package/lib/events/iframe.js +18 -0
  251. package/lib/events/index.d.ts +62 -0
  252. package/lib/events/index.js +21 -0
  253. package/lib/events/popup.d.ts +51 -0
  254. package/lib/events/popup.js +22 -0
  255. package/lib/events/transport.d.ts +62 -0
  256. package/lib/events/transport.js +21 -0
  257. package/lib/events/ui-promise.d.ts +12 -0
  258. package/lib/events/ui-promise.js +3 -0
  259. package/lib/events/ui-request.d.ts +180 -0
  260. package/lib/events/ui-request.js +50 -0
  261. package/lib/events/ui-response.d.ts +97 -0
  262. package/lib/events/ui-response.js +25 -0
  263. package/lib/exports.d.ts +5 -0
  264. package/lib/exports.js +10 -0
  265. package/lib/factory.d.ts +20 -0
  266. package/lib/factory.js +122 -0
  267. package/lib/index-browser.d.ts +4 -0
  268. package/lib/index-browser.js +29 -0
  269. package/lib/index.d.ts +11 -0
  270. package/lib/index.js +236 -0
  271. package/lib/types/account.d.ts +37 -0
  272. package/lib/types/account.js +3 -0
  273. package/lib/types/api/applyFlags.d.ts +4 -0
  274. package/lib/types/api/applyFlags.js +3 -0
  275. package/lib/types/api/applySettings.d.ts +4 -0
  276. package/lib/types/api/applySettings.js +3 -0
  277. package/lib/types/api/authorizeCoinJoin.d.ts +14 -0
  278. package/lib/types/api/authorizeCoinJoin.js +3 -0
  279. package/lib/types/api/backupDevice.d.ts +4 -0
  280. package/lib/types/api/backupDevice.js +3 -0
  281. package/lib/types/api/binanceGetAddress.d.ts +4 -0
  282. package/lib/types/api/binanceGetAddress.js +3 -0
  283. package/lib/types/api/binanceGetPublicKey.d.ts +4 -0
  284. package/lib/types/api/binanceGetPublicKey.js +3 -0
  285. package/lib/types/api/binanceSignTransaction.d.ts +31 -0
  286. package/lib/types/api/binanceSignTransaction.js +3 -0
  287. package/lib/types/api/blockchainDisconnect.d.ts +5 -0
  288. package/lib/types/api/blockchainDisconnect.js +3 -0
  289. package/lib/types/api/blockchainEstimateFee.d.ts +29 -0
  290. package/lib/types/api/blockchainEstimateFee.js +3 -0
  291. package/lib/types/api/blockchainGetAccountBalanceHistory.d.ts +4 -0
  292. package/lib/types/api/blockchainGetAccountBalanceHistory.js +3 -0
  293. package/lib/types/api/blockchainGetCurrentFiatRates.d.ts +4 -0
  294. package/lib/types/api/blockchainGetCurrentFiatRates.js +3 -0
  295. package/lib/types/api/blockchainGetFiatRatesForTimestamps.d.ts +4 -0
  296. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +3 -0
  297. package/lib/types/api/blockchainGetTransactions.d.ts +7 -0
  298. package/lib/types/api/blockchainGetTransactions.js +3 -0
  299. package/lib/types/api/blockchainSetCustomBackend.d.ts +7 -0
  300. package/lib/types/api/blockchainSetCustomBackend.js +3 -0
  301. package/lib/types/api/blockchainSubscribe.d.ts +7 -0
  302. package/lib/types/api/blockchainSubscribe.js +3 -0
  303. package/lib/types/api/blockchainSubscribeFiatRates.d.ts +7 -0
  304. package/lib/types/api/blockchainSubscribeFiatRates.js +3 -0
  305. package/lib/types/api/blockchainUnsubscribe.d.ts +5 -0
  306. package/lib/types/api/blockchainUnsubscribe.js +3 -0
  307. package/lib/types/api/blockchainUnsubscribeFiatRates.d.ts +5 -0
  308. package/lib/types/api/blockchainUnsubscribeFiatRates.js +3 -0
  309. package/lib/types/api/cancel.d.ts +2 -0
  310. package/lib/types/api/cancel.js +3 -0
  311. package/lib/types/api/cardanoGetAddress.d.ts +35 -0
  312. package/lib/types/api/cardanoGetAddress.js +3 -0
  313. package/lib/types/api/cardanoGetNativeScriptHash.d.ts +21 -0
  314. package/lib/types/api/cardanoGetNativeScriptHash.js +3 -0
  315. package/lib/types/api/cardanoGetPublicKey.d.ts +16 -0
  316. package/lib/types/api/cardanoGetPublicKey.js +3 -0
  317. package/lib/types/api/cardanoSignTransaction.d.ts +130 -0
  318. package/lib/types/api/cardanoSignTransaction.js +3 -0
  319. package/lib/types/api/changePin.d.ts +4 -0
  320. package/lib/types/api/changePin.js +3 -0
  321. package/lib/types/api/cipherKeyValue.d.ts +17 -0
  322. package/lib/types/api/cipherKeyValue.js +3 -0
  323. package/lib/types/api/composeTransaction.d.ts +92 -0
  324. package/lib/types/api/composeTransaction.js +3 -0
  325. package/lib/types/api/customMessage.d.ts +12 -0
  326. package/lib/types/api/customMessage.js +3 -0
  327. package/lib/types/api/disableWebUSB.d.ts +2 -0
  328. package/lib/types/api/disableWebUSB.js +3 -0
  329. package/lib/types/api/dispose.d.ts +2 -0
  330. package/lib/types/api/dispose.js +3 -0
  331. package/lib/types/api/eosGetPublicKey.d.ts +14 -0
  332. package/lib/types/api/eosGetPublicKey.js +3 -0
  333. package/lib/types/api/eosSignTransaction.d.ts +111 -0
  334. package/lib/types/api/eosSignTransaction.js +3 -0
  335. package/lib/types/api/ethereumGetAddress.d.ts +4 -0
  336. package/lib/types/api/ethereumGetAddress.js +3 -0
  337. package/lib/types/api/ethereumGetPublicKey.d.ts +5 -0
  338. package/lib/types/api/ethereumGetPublicKey.js +3 -0
  339. package/lib/types/api/ethereumSignMessage.d.ts +9 -0
  340. package/lib/types/api/ethereumSignMessage.js +3 -0
  341. package/lib/types/api/ethereumSignTransaction.d.ts +40 -0
  342. package/lib/types/api/ethereumSignTransaction.js +3 -0
  343. package/lib/types/api/ethereumSignTypedData.d.ts +42 -0
  344. package/lib/types/api/ethereumSignTypedData.js +3 -0
  345. package/lib/types/api/ethereumVerifyMessage.d.ts +10 -0
  346. package/lib/types/api/ethereumVerifyMessage.js +3 -0
  347. package/lib/types/api/firmwareUpdate.d.ts +14 -0
  348. package/lib/types/api/firmwareUpdate.js +3 -0
  349. package/lib/types/api/getAccountInfo.d.ts +14 -0
  350. package/lib/types/api/getAccountInfo.js +3 -0
  351. package/lib/types/api/getAddress.d.ts +13 -0
  352. package/lib/types/api/getAddress.js +3 -0
  353. package/lib/types/api/getCoinInfo.d.ts +4 -0
  354. package/lib/types/api/getCoinInfo.js +3 -0
  355. package/lib/types/api/getDeviceState.d.ts +6 -0
  356. package/lib/types/api/getDeviceState.js +3 -0
  357. package/lib/types/api/getFeatures.d.ts +4 -0
  358. package/lib/types/api/getFeatures.js +3 -0
  359. package/lib/types/api/getOwnershipId.d.ts +15 -0
  360. package/lib/types/api/getOwnershipId.js +3 -0
  361. package/lib/types/api/getOwnershipProof.d.ts +19 -0
  362. package/lib/types/api/getOwnershipProof.js +3 -0
  363. package/lib/types/api/getPublicKey.d.ts +19 -0
  364. package/lib/types/api/getPublicKey.js +3 -0
  365. package/lib/types/api/getSettings.d.ts +4 -0
  366. package/lib/types/api/getSettings.js +3 -0
  367. package/lib/types/api/index.d.ts +149 -0
  368. package/lib/types/api/index.js +3 -0
  369. package/lib/types/api/init.d.ts +5 -0
  370. package/lib/types/api/init.js +3 -0
  371. package/lib/types/api/manifest.d.ts +3 -0
  372. package/lib/types/api/manifest.js +3 -0
  373. package/lib/types/api/nemGetAddress.d.ts +7 -0
  374. package/lib/types/api/nemGetAddress.js +3 -0
  375. package/lib/types/api/nemSignTransaction.d.ts +92 -0
  376. package/lib/types/api/nemSignTransaction.js +3 -0
  377. package/lib/types/api/off.d.ts +11 -0
  378. package/lib/types/api/off.js +3 -0
  379. package/lib/types/api/on.d.ts +14 -0
  380. package/lib/types/api/on.js +3 -0
  381. package/lib/types/api/pushTransaction.d.ts +10 -0
  382. package/lib/types/api/pushTransaction.js +3 -0
  383. package/lib/types/api/rebootToBootloader.d.ts +4 -0
  384. package/lib/types/api/rebootToBootloader.js +3 -0
  385. package/lib/types/api/recoveryDevice.d.ts +7 -0
  386. package/lib/types/api/recoveryDevice.js +3 -0
  387. package/lib/types/api/removeAllListeners.d.ts +3 -0
  388. package/lib/types/api/removeAllListeners.js +3 -0
  389. package/lib/types/api/renderWebUSBButton.d.ts +2 -0
  390. package/lib/types/api/renderWebUSBButton.js +3 -0
  391. package/lib/types/api/requestLogin.d.ts +20 -0
  392. package/lib/types/api/requestLogin.js +3 -0
  393. package/lib/types/api/resetDevice.d.ts +16 -0
  394. package/lib/types/api/resetDevice.js +3 -0
  395. package/lib/types/api/rippleGetAddress.d.ts +4 -0
  396. package/lib/types/api/rippleGetAddress.js +3 -0
  397. package/lib/types/api/rippleSignTransaction.d.ts +23 -0
  398. package/lib/types/api/rippleSignTransaction.js +3 -0
  399. package/lib/types/api/setProxy.d.ts +9 -0
  400. package/lib/types/api/setProxy.js +3 -0
  401. package/lib/types/api/signMessage.d.ts +11 -0
  402. package/lib/types/api/signMessage.js +3 -0
  403. package/lib/types/api/signTransaction.d.ts +70 -0
  404. package/lib/types/api/signTransaction.js +3 -0
  405. package/lib/types/api/stellarGetAddress.d.ts +4 -0
  406. package/lib/types/api/stellarGetAddress.js +3 -0
  407. package/lib/types/api/stellarSignTransaction.d.ts +182 -0
  408. package/lib/types/api/stellarSignTransaction.js +3 -0
  409. package/lib/types/api/tezosGetAddress.d.ts +4 -0
  410. package/lib/types/api/tezosGetAddress.js +3 -0
  411. package/lib/types/api/tezosGetPublicKey.d.ts +4 -0
  412. package/lib/types/api/tezosGetPublicKey.js +3 -0
  413. package/lib/types/api/tezosSignTransaction.d.ts +61 -0
  414. package/lib/types/api/tezosSignTransaction.js +3 -0
  415. package/lib/types/api/uiResponse.d.ts +3 -0
  416. package/lib/types/api/uiResponse.js +3 -0
  417. package/lib/types/api/verifyMessage.d.ts +11 -0
  418. package/lib/types/api/verifyMessage.js +3 -0
  419. package/lib/types/api/wipeDevice.d.ts +4 -0
  420. package/lib/types/api/wipeDevice.js +3 -0
  421. package/lib/types/coinInfo.d.ts +79 -0
  422. package/lib/types/coinInfo.js +3 -0
  423. package/lib/types/device.d.ts +92 -0
  424. package/lib/types/device.js +3 -0
  425. package/lib/types/firmware.d.ts +36 -0
  426. package/lib/types/firmware.js +3 -0
  427. package/lib/types/index.d.ts +15 -0
  428. package/lib/types/index.js +11 -0
  429. package/lib/types/params.d.ts +56 -0
  430. package/lib/types/params.js +3 -0
  431. package/lib/types/settings.d.ts +34 -0
  432. package/lib/types/settings.js +3 -0
  433. package/lib/types/utils.d.ts +15 -0
  434. package/lib/types/utils.js +3 -0
  435. package/lib/utils/__fixtures__/accountUtils.d.ts +4 -0
  436. package/lib/utils/__fixtures__/accountUtils.js +32 -0
  437. package/lib/utils/__fixtures__/addressUtils.d.ts +10 -0
  438. package/lib/utils/__fixtures__/addressUtils.js +214 -0
  439. package/lib/utils/__fixtures__/ethereumUtils.d.ts +3 -0
  440. package/lib/utils/__fixtures__/ethereumUtils.js +20 -0
  441. package/lib/utils/__fixtures__/formatUtils.d.ts +3 -0
  442. package/lib/utils/__fixtures__/formatUtils.js +15 -0
  443. package/lib/utils/__fixtures__/hdnodeUtils.d.ts +186 -0
  444. package/lib/utils/__fixtures__/hdnodeUtils.js +206 -0
  445. package/lib/utils/accountUtils.d.ts +11 -0
  446. package/lib/utils/accountUtils.js +99 -0
  447. package/lib/utils/addressUtils.d.ts +3 -0
  448. package/lib/utils/addressUtils.js +32 -0
  449. package/lib/utils/assets-browser.d.ts +2 -0
  450. package/lib/utils/assets-browser.js +21 -0
  451. package/lib/utils/assets.d.ts +2 -0
  452. package/lib/utils/assets.js +28 -0
  453. package/lib/utils/bip39.d.ts +3 -0
  454. package/lib/utils/bip39.js +2053 -0
  455. package/lib/utils/browserUtils.d.ts +21 -0
  456. package/lib/utils/browserUtils.js +100 -0
  457. package/lib/utils/bufferUtils.d.ts +3 -0
  458. package/lib/utils/bufferUtils.js +11 -0
  459. package/lib/utils/debug.d.ts +24 -0
  460. package/lib/utils/debug.js +90 -0
  461. package/lib/utils/deferred.d.ts +18 -0
  462. package/lib/utils/deferred.js +66 -0
  463. package/lib/utils/deviceFeaturesUtils.d.ts +6 -0
  464. package/lib/utils/deviceFeaturesUtils.js +115 -0
  465. package/lib/utils/ethereumUtils.d.ts +3 -0
  466. package/lib/utils/ethereumUtils.js +12 -0
  467. package/lib/utils/firmwareUtils.d.ts +7 -0
  468. package/lib/utils/firmwareUtils.js +28 -0
  469. package/lib/utils/formatUtils.d.ts +8 -0
  470. package/lib/utils/formatUtils.js +57 -0
  471. package/lib/utils/hdnodeUtils.d.ts +8 -0
  472. package/lib/utils/hdnodeUtils.js +80 -0
  473. package/lib/utils/interactionTimeout.d.ts +10 -0
  474. package/lib/utils/interactionTimeout.js +34 -0
  475. package/lib/utils/objectUtils.d.ts +10 -0
  476. package/lib/utils/objectUtils.js +37 -0
  477. package/lib/utils/pathUtils.d.ts +20 -0
  478. package/lib/utils/pathUtils.js +159 -0
  479. package/lib/utils/promiseUtils.d.ts +2 -0
  480. package/lib/utils/promiseUtils.js +8 -0
  481. package/lib/utils/urlUtils.d.ts +5 -0
  482. package/lib/utils/urlUtils.js +27 -0
  483. package/lib/utils/versionUtils.d.ts +6 -0
  484. package/lib/utils/versionUtils.js +72 -0
  485. package/lib/utils/windowsUtils.d.ts +2 -0
  486. package/lib/utils/windowsUtils.js +6 -0
  487. package/lib/workers/RNUsbPlugin.d.ts +31 -0
  488. package/lib/workers/RNUsbPlugin.js +65 -0
  489. package/lib/workers/workers-browser.d.ts +8 -0
  490. package/lib/workers/workers-browser.js +19 -0
  491. package/lib/workers/workers-react-native.d.ts +8 -0
  492. package/lib/workers/workers-react-native.js +19 -0
  493. package/lib/workers/workers.d.ts +10 -0
  494. package/lib/workers/workers.js +17 -0
  495. package/package.json +62 -0
package/LICENSE.md ADDED
@@ -0,0 +1,50 @@
1
+ # TREZOR REFERENCE SOURCE LICENSE (T-RSL)
2
+
3
+ This license governs use of the accompanying software. If you use the software,
4
+ you accept this license. If you do not accept the license, do not use the
5
+ software.
6
+
7
+ ## 1. Definitions
8
+
9
+ The terms "reproduce," "reproduction" and "distribution" have the same meaning
10
+ here as under U.S. copyright law.
11
+
12
+ "You" means the licensee of the software.
13
+
14
+ "Your company" means the company you worked for when you downloaded the
15
+ software.
16
+
17
+ "Reference use" means use of the software within your company as a reference,
18
+ in read only form, for the sole purposes of debugging your products,
19
+ maintaining your products, or enhancing the interoperability of your products
20
+ with the software, and specifically excludes the right to distribute the
21
+ software outside of your company.
22
+
23
+ "Licensed patents" means any Licensor patent claims which read directly on the
24
+ software as distributed by the Licensor under this license.
25
+
26
+ ## 2. Grant of Rights
27
+
28
+ (A) Copyright Grant - Subject to the terms of this license, the Licensor grants
29
+ you a non-transferable, non-exclusive, worldwide, royalty-free copyright
30
+ license to reproduce the software for reference use.
31
+
32
+ (B) Patent Grant - Subject to the terms of this license, the Licensor grants
33
+ you a non-transferable, non-exclusive, worldwide, royalty-free patent license
34
+ under licensed patents for reference use.
35
+
36
+ ## 3. Limitations
37
+
38
+ (A) No Trademark License - This license does not grant you any rights to use
39
+ the Licensor's name, logo, or trademarks.
40
+
41
+ (B) If you begin patent litigation against the Licensor over patents that you
42
+ think may apply to the software (including a cross-claim or counterclaim in
43
+ a lawsuit), your license to the software ends automatically.
44
+
45
+ (C) The software is licensed "as-is." You bear the risk of using it. The
46
+ Licensor gives no express warranties, guarantees or conditions. You may have
47
+ additional consumer rights under your local laws which this license cannot
48
+ change. To the extent permitted under your local laws, the Licensor excludes
49
+ the implied warranties of merchantability, fitness for a particular purpose and
50
+ non-infringement.
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # @trezor/connect API version 9.0.0-beta.1
2
+
3
+ [![Build Status](https://github.com/trezor/trezor-suite/actions/workflows/connect-test.yml/badge.svg)](https://github.com/trezor/trezor-suite/actions/workflows/connect-test.yml)
4
+ [![NPM](https://img.shields.io/npm/v/@trezor/connect.svg)](https://www.npmjs.org/package/@trezor/connect)
5
+ [![Known Vulnerabilities](https://snyk.io/test/github/trezor/connect/badge.svg?targetFile=package.json)](https://snyk.io/test/github/trezor/trezor-suite?targetFile=packages/connect/package.json)
6
+
7
+ Trezor Connect is a platform for easy integration of Trezor into 3rd party services, as well as into Trezor Suite. It provides an API with functionality to access public keys, sign transactions and authenticate users.
8
+
9
+ User interface is presented in a secure popup window served from `connect.trezor.io/<version>/popup.html`. To try it out, use [@trezor/connect-explorer](../connect-explorer) hosted [here](https://trezor.github.io/trezor-suite/connect-explorer).
10
+
11
+ - [Integration](https://github.com/trezor/trezor-suite/blob/develop/docs/packages/connect/index.md)
12
+
13
+ ## Versions
14
+
15
+ ### Version 9+ (experimental)
16
+
17
+ Since version 9 we are adopting a new versioning strategy. With every release, we are going to update two urls
18
+
19
+ - A] The latest release will always be available on https://connect.trezor.io/9/trezor-connect.js.
20
+ - B] For those who like to have more control over their dependencies, there will be also a new url created in form of https://connect.trezor.io/9.1../trezor-connect.js. Please note that these endpoints will not receive any further updates including security updates.
21
+
22
+ Version 9+ will be available as `@trezor/connect` and `@trezor/connect-web` npm packages.
23
+
24
+ ### Version 8 (stable)
25
+
26
+ Currently, we are at version 8, which has an url https://connect.trezor.io/8/trezor-connect.js.
27
+
28
+ Version 8 is available as `trezor-connect` npm package.
29
+
30
+ If you would like to find out which version is deployed precisely simply run:
31
+
32
+ `curl -s https://connect.trezor.io/8/trezor-connect.js | grep VERSION`
33
+
34
+ With regards to this repo - All updates should go to current version branch, the previous releases are in corresponding branches. The gh-pages is the same older version, that is used at trezor.github.io/connect/connect.js, and it's there for backwards compatibility; please don't touch.
35
+
36
+ ## Tests
37
+
38
+ For integration testing against trezord and emulator refer to [this document](https://github.com/trezor/trezor-suite/blob/develop/packages/integration-tests/projects/connect/README.md).
@@ -0,0 +1,8 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ import type { PROTO } from '../constants';
3
+ export default class ApplyFlags extends AbstractMethod<'applyFlags', PROTO.ApplyFlags> {
4
+ init(): void;
5
+ confirmation(): Promise<boolean>;
6
+ run(): Promise<PROTO.Success>;
7
+ }
8
+ //# sourceMappingURL=applyFlags.d.ts.map
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AbstractMethod_1 = require("../core/AbstractMethod");
4
+ const paramsValidator_1 = require("./common/paramsValidator");
5
+ const events_1 = require("../events");
6
+ class ApplyFlags extends AbstractMethod_1.AbstractMethod {
7
+ init() {
8
+ this.requiredPermissions = ['management'];
9
+ this.useDeviceState = false;
10
+ const { payload } = this;
11
+ (0, paramsValidator_1.validateParams)(payload, [{ name: 'flags', type: 'number', required: true }]);
12
+ this.params = {
13
+ flags: payload.flags,
14
+ };
15
+ }
16
+ async confirmation() {
17
+ await this.getPopupPromise().promise;
18
+ const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
19
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_CONFIRMATION, {
20
+ view: 'device-management',
21
+ customConfirmButton: {
22
+ className: 'confirm',
23
+ label: 'Proceed',
24
+ },
25
+ label: 'Do you really want to apply flags?',
26
+ }));
27
+ const uiResp = await uiPromise.promise;
28
+ return uiResp.payload;
29
+ }
30
+ async run() {
31
+ const cmd = this.device.getCommands();
32
+ const response = await cmd.typedCall('ApplyFlags', 'Success', this.params);
33
+ return response.message;
34
+ }
35
+ }
36
+ exports.default = ApplyFlags;
37
+ //# sourceMappingURL=applyFlags.js.map
@@ -0,0 +1,8 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ import type { PROTO } from '../constants';
3
+ export default class ApplySettings extends AbstractMethod<'applySettings', PROTO.ApplySettings> {
4
+ init(): void;
5
+ confirmation(): Promise<boolean>;
6
+ run(): Promise<PROTO.Success>;
7
+ }
8
+ //# sourceMappingURL=applySettings.d.ts.map
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AbstractMethod_1 = require("../core/AbstractMethod");
4
+ const events_1 = require("../events");
5
+ const paramsValidator_1 = require("./common/paramsValidator");
6
+ class ApplySettings extends AbstractMethod_1.AbstractMethod {
7
+ init() {
8
+ this.requiredPermissions = ['management'];
9
+ this.useDeviceState = false;
10
+ const { payload } = this;
11
+ (0, paramsValidator_1.validateParams)(payload, [
12
+ { name: 'language', type: 'string' },
13
+ { name: 'label', type: 'string' },
14
+ { name: 'use_passphrase', type: 'boolean' },
15
+ { name: 'homescreen', type: 'string' },
16
+ { name: 'passphrase_source', type: 'number' },
17
+ { name: 'passphrase_always_on_device', type: 'boolean' },
18
+ { name: 'auto_lock_delay_ms', type: 'number' },
19
+ { name: 'display_rotation', type: 'number' },
20
+ { name: 'safety_checks', type: 'string' },
21
+ { name: 'experimental_features', type: 'boolean' },
22
+ ]);
23
+ this.params = {
24
+ language: payload.language,
25
+ label: payload.label,
26
+ use_passphrase: payload.use_passphrase,
27
+ homescreen: payload.homescreen,
28
+ passphrase_always_on_device: payload.passphrase_always_on_device,
29
+ auto_lock_delay_ms: payload.auto_lock_delay_ms,
30
+ display_rotation: payload.display_rotation,
31
+ safety_checks: payload.safety_checks,
32
+ experimental_features: payload.experimental_features,
33
+ _passphrase_source: payload.passphrase_source,
34
+ };
35
+ }
36
+ async confirmation() {
37
+ await this.getPopupPromise().promise;
38
+ const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
39
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_CONFIRMATION, {
40
+ view: 'device-management',
41
+ customConfirmButton: {
42
+ className: 'confirm',
43
+ label: 'Proceed',
44
+ },
45
+ label: 'Do you really want to change device settings?',
46
+ }));
47
+ const uiResp = await uiPromise.promise;
48
+ return uiResp.payload;
49
+ }
50
+ async run() {
51
+ const cmd = this.device.getCommands();
52
+ const response = await cmd.typedCall('ApplySettings', 'Success', this.params);
53
+ return response.message;
54
+ }
55
+ }
56
+ exports.default = ApplySettings;
57
+ //# sourceMappingURL=applySettings.js.map
@@ -0,0 +1,7 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ import { PROTO } from '../constants';
3
+ export default class AuthorizeCoinJoin extends AbstractMethod<'authorizeCoinJoin', PROTO.AuthorizeCoinJoin> {
4
+ init(): void;
5
+ run(): Promise<PROTO.Success>;
6
+ }
7
+ //# sourceMappingURL=authorizeCoinJoin.d.ts.map
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AbstractMethod_1 = require("../core/AbstractMethod");
4
+ const paramsValidator_1 = require("./common/paramsValidator");
5
+ const pathUtils_1 = require("../utils/pathUtils");
6
+ const coinInfo_1 = require("../data/coinInfo");
7
+ class AuthorizeCoinJoin extends AbstractMethod_1.AbstractMethod {
8
+ init() {
9
+ const { payload } = this;
10
+ (0, paramsValidator_1.validateParams)(payload, [
11
+ { name: 'path', required: true },
12
+ { name: 'coordinator', type: 'string', required: true },
13
+ { name: 'maxRounds', type: 'number', required: true },
14
+ { name: 'maxCoordinatorFeeRate', type: 'number', required: true },
15
+ { name: 'maxFeePerKvbyte', type: 'number', required: true },
16
+ { name: 'coin', type: 'string' },
17
+ { name: 'scriptType', type: 'string' },
18
+ { name: 'amountUnit', type: 'uint' },
19
+ ]);
20
+ const address_n = (0, pathUtils_1.validatePath)(payload.path, 3);
21
+ const script_type = payload.scriptType || (0, pathUtils_1.getScriptType)(address_n);
22
+ const coinInfo = (0, coinInfo_1.getBitcoinNetwork)(payload.coin || address_n);
23
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, coinInfo, this.firmwareRange);
24
+ this.params = {
25
+ coordinator: payload.coordinator,
26
+ max_rounds: payload.maxRounds,
27
+ max_coordinator_fee_rate: payload.maxCoordinatorFeeRate,
28
+ max_fee_per_kvbyte: payload.maxFeePerKvbyte,
29
+ address_n,
30
+ coin_name: coinInfo === null || coinInfo === void 0 ? void 0 : coinInfo.name,
31
+ script_type,
32
+ amount_unit: payload.amountUnit,
33
+ };
34
+ }
35
+ async run() {
36
+ const cmd = this.device.getCommands();
37
+ if (!this.device.features.experimental_features) {
38
+ await cmd.typedCall('ApplySettings', 'Success', { experimental_features: true });
39
+ }
40
+ const response = await cmd.typedCall('AuthorizeCoinJoin', 'Success', this.params);
41
+ return response.message;
42
+ }
43
+ }
44
+ exports.default = AuthorizeCoinJoin;
45
+ //# sourceMappingURL=authorizeCoinJoin.js.map
@@ -0,0 +1,7 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ export default class BackupDevice extends AbstractMethod<'backupDevice'> {
3
+ init(): void;
4
+ confirmation(): Promise<boolean>;
5
+ run(): Promise<import("packages/transport/lib/types/messages").Success>;
6
+ }
7
+ //# sourceMappingURL=backupDevice.d.ts.map
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AbstractMethod_1 = require("../core/AbstractMethod");
4
+ const events_1 = require("../events");
5
+ class BackupDevice extends AbstractMethod_1.AbstractMethod {
6
+ init() {
7
+ this.requiredPermissions = ['management'];
8
+ this.useDeviceState = false;
9
+ }
10
+ async confirmation() {
11
+ await this.getPopupPromise().promise;
12
+ const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
13
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_CONFIRMATION, {
14
+ view: 'device-management',
15
+ customConfirmButton: {
16
+ className: 'confirm',
17
+ label: 'Proceed',
18
+ },
19
+ label: 'Do you want to initiate backup procedure?',
20
+ }));
21
+ const uiResp = await uiPromise.promise;
22
+ return uiResp.payload;
23
+ }
24
+ async run() {
25
+ const cmd = this.device.getCommands();
26
+ const response = await cmd.typedCall('BackupDevice', 'Success');
27
+ return response.message;
28
+ }
29
+ }
30
+ exports.default = BackupDevice;
31
+ //# sourceMappingURL=backupDevice.js.map
@@ -0,0 +1,6 @@
1
+ import { PROTO } from '../../constants';
2
+ import type { BinanceSDKTransaction, BinancePreparedTransaction } from '../../types/api/binanceSignTransaction';
3
+ import type { TypedCall } from '../../device/DeviceCommands';
4
+ export declare const validate: (tx: BinanceSDKTransaction) => BinancePreparedTransaction;
5
+ export declare const signTx: (typedCall: TypedCall, address_n: number[], tx: BinancePreparedTransaction) => Promise<PROTO.BinanceSignedTx>;
6
+ //# sourceMappingURL=binanceSignTx.d.ts.map
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signTx = exports.validate = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const paramsValidator_1 = require("../common/paramsValidator");
6
+ const processTxRequest = async (typedCall, messages, index) => {
7
+ const { type, ...params } = messages[index];
8
+ const lastOp = index + 1 >= messages.length;
9
+ if (lastOp) {
10
+ const response = await typedCall(type, 'BinanceSignedTx', params);
11
+ return response.message;
12
+ }
13
+ await typedCall(type, 'BinanceTxRequest', params);
14
+ index++;
15
+ return processTxRequest(typedCall, messages, index);
16
+ };
17
+ const validate = (tx) => {
18
+ (0, paramsValidator_1.validateParams)(tx, [
19
+ { name: 'chain_id', type: 'string', required: true },
20
+ { name: 'account_number', type: 'number' },
21
+ { name: 'memo', type: 'string' },
22
+ { name: 'sequence', type: 'number' },
23
+ { name: 'source', type: 'number' },
24
+ { name: 'message', type: 'object' },
25
+ ]);
26
+ const preparedTx = {
27
+ chain_id: tx.chain_id,
28
+ account_number: tx.account_number || 0,
29
+ memo: tx.memo,
30
+ sequence: tx.sequence || 0,
31
+ source: tx.source || 0,
32
+ messages: [],
33
+ };
34
+ const { transfer, placeOrder, cancelOrder } = tx;
35
+ if (transfer) {
36
+ (0, paramsValidator_1.validateParams)(transfer, [
37
+ { name: 'inputs', type: 'array', required: true },
38
+ { name: 'outputs', type: 'array', required: true },
39
+ ]);
40
+ preparedTx.messages.push({
41
+ ...transfer,
42
+ type: 'BinanceTransferMsg',
43
+ });
44
+ }
45
+ if (placeOrder) {
46
+ (0, paramsValidator_1.validateParams)(placeOrder, [
47
+ { name: 'id', type: 'string' },
48
+ { name: 'ordertype', type: 'number' },
49
+ { name: 'price', type: 'number' },
50
+ { name: 'quantity', type: 'number' },
51
+ { name: 'sender', type: 'string' },
52
+ { name: 'side', type: 'number' },
53
+ ]);
54
+ preparedTx.messages.push({
55
+ ...placeOrder,
56
+ type: 'BinanceOrderMsg',
57
+ });
58
+ }
59
+ if (cancelOrder) {
60
+ (0, paramsValidator_1.validateParams)(cancelOrder, [
61
+ { name: 'refid', type: 'string', required: true },
62
+ { name: 'sender', type: 'string', required: true },
63
+ { name: 'symbol', type: 'string', required: true },
64
+ ]);
65
+ preparedTx.messages.push({
66
+ ...cancelOrder,
67
+ type: 'BinanceCancelMsg',
68
+ });
69
+ }
70
+ if (preparedTx.messages.length < 1) {
71
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Transaction does not have any message');
72
+ }
73
+ return preparedTx;
74
+ };
75
+ exports.validate = validate;
76
+ const signTx = async (typedCall, address_n, tx) => {
77
+ const { account_number, chain_id, memo, sequence, source, messages } = tx;
78
+ const msg_count = messages.length;
79
+ await typedCall('BinanceSignTx', 'BinanceTxRequest', {
80
+ address_n,
81
+ msg_count,
82
+ account_number,
83
+ chain_id,
84
+ memo,
85
+ sequence,
86
+ source,
87
+ });
88
+ return processTxRequest(typedCall, messages, 0);
89
+ };
90
+ exports.signTx = signTx;
91
+ //# sourceMappingURL=binanceSignTx.js.map
@@ -0,0 +1,22 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ import { PROTO } from '../constants';
3
+ declare type Params = PROTO.BinanceGetAddress & {
4
+ address?: string;
5
+ };
6
+ export default class BinanceGetAddress extends AbstractMethod<'binanceGetAddress', Params[]> {
7
+ hasBundle?: boolean;
8
+ progress: number;
9
+ confirmed?: boolean;
10
+ init(): void;
11
+ getButtonRequestData(code: string): {
12
+ type: "address";
13
+ serializedPath: string;
14
+ address: string;
15
+ } | undefined;
16
+ confirmation(): Promise<boolean>;
17
+ noBackupConfirmation(): Promise<boolean>;
18
+ _call({ address_n, show_display }: Params): Promise<PROTO.BinanceAddress>;
19
+ run(): Promise<import("..").Address | import("..").Address[]>;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=binanceGetAddress.d.ts.map
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AbstractMethod_1 = require("../core/AbstractMethod");
4
+ const paramsValidator_1 = require("./common/paramsValidator");
5
+ const coinInfo_1 = require("../data/coinInfo");
6
+ const pathUtils_1 = require("../utils/pathUtils");
7
+ const constants_1 = require("../constants");
8
+ const events_1 = require("../events");
9
+ class BinanceGetAddress extends AbstractMethod_1.AbstractMethod {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.progress = 0;
13
+ }
14
+ init() {
15
+ this.requiredPermissions = ['read'];
16
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('BNB'), this.firmwareRange);
17
+ this.hasBundle = !!this.payload.bundle;
18
+ const payload = !this.payload.bundle
19
+ ? { ...this.payload, bundle: [this.payload] }
20
+ : this.payload;
21
+ (0, paramsValidator_1.validateParams)(payload, [
22
+ { name: 'bundle', type: 'array' },
23
+ { name: 'useEventListener', type: 'boolean' },
24
+ ]);
25
+ this.params = payload.bundle.map(batch => {
26
+ (0, paramsValidator_1.validateParams)(batch, [
27
+ { name: 'path', required: true },
28
+ { name: 'address', type: 'string' },
29
+ { name: 'showOnTrezor', type: 'boolean' },
30
+ ]);
31
+ const path = (0, pathUtils_1.validatePath)(batch.path, 3);
32
+ return {
33
+ address_n: path,
34
+ address: batch.address,
35
+ show_display: typeof batch.showOnTrezor === 'boolean' ? batch.showOnTrezor : true,
36
+ };
37
+ });
38
+ const useEventListener = payload.useEventListener &&
39
+ this.params.length === 1 &&
40
+ typeof this.params[0].address === 'string' &&
41
+ this.params[0].show_display;
42
+ this.confirmed = useEventListener;
43
+ this.useUi = !useEventListener;
44
+ if (this.params.length === 1) {
45
+ this.info = `Export Binance address for account #${(0, pathUtils_1.fromHardened)(this.params[0].address_n[2]) + 1}`;
46
+ }
47
+ else {
48
+ this.info = 'Export multiple Binance addresses';
49
+ }
50
+ }
51
+ getButtonRequestData(code) {
52
+ if (code === 'ButtonRequest_Address') {
53
+ return {
54
+ type: 'address',
55
+ serializedPath: (0, pathUtils_1.getSerializedPath)(this.params[this.progress].address_n),
56
+ address: this.params[this.progress].address || 'not-set',
57
+ };
58
+ }
59
+ }
60
+ async confirmation() {
61
+ if (this.confirmed)
62
+ return true;
63
+ await this.getPopupPromise().promise;
64
+ const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
65
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_CONFIRMATION, {
66
+ view: 'export-address',
67
+ label: this.info,
68
+ }));
69
+ const uiResp = await uiPromise.promise;
70
+ this.confirmed = uiResp.payload;
71
+ return this.confirmed;
72
+ }
73
+ async noBackupConfirmation() {
74
+ await this.getPopupPromise().promise;
75
+ const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
76
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_CONFIRMATION, {
77
+ view: 'no-backup',
78
+ }));
79
+ const uiResp = await uiPromise.promise;
80
+ return uiResp.payload;
81
+ }
82
+ async _call({ address_n, show_display }) {
83
+ const cmd = this.device.getCommands();
84
+ const response = await cmd.typedCall('BinanceGetAddress', 'BinanceAddress', {
85
+ address_n,
86
+ show_display,
87
+ });
88
+ return response.message;
89
+ }
90
+ async run() {
91
+ const responses = [];
92
+ for (let i = 0; i < this.params.length; i++) {
93
+ const batch = this.params[i];
94
+ if (batch.show_display) {
95
+ const silent = await this._call({
96
+ ...batch,
97
+ show_display: false,
98
+ });
99
+ if (typeof batch.address === 'string') {
100
+ if (batch.address !== silent.address) {
101
+ throw constants_1.ERRORS.TypedError('Method_AddressNotMatch');
102
+ }
103
+ }
104
+ else {
105
+ batch.address = silent.address;
106
+ }
107
+ }
108
+ const response = await this._call(batch);
109
+ responses.push({
110
+ path: batch.address_n,
111
+ serializedPath: (0, pathUtils_1.getSerializedPath)(batch.address_n),
112
+ address: response.address,
113
+ });
114
+ if (this.hasBundle) {
115
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.BUNDLE_PROGRESS, {
116
+ progress: i,
117
+ response,
118
+ }));
119
+ }
120
+ this.progress++;
121
+ }
122
+ return this.hasBundle ? responses : responses[0];
123
+ }
124
+ }
125
+ exports.default = BinanceGetAddress;
126
+ //# sourceMappingURL=binanceGetAddress.js.map
@@ -0,0 +1,10 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ import type { PROTO } from '../constants';
3
+ export default class BinanceGetPublicKey extends AbstractMethod<'binanceGetPublicKey', PROTO.BinanceGetPublicKey[]> {
4
+ hasBundle?: boolean;
5
+ confirmed?: boolean;
6
+ init(): void;
7
+ confirmation(): Promise<boolean>;
8
+ run(): Promise<import("..").PublicKey | import("..").PublicKey[]>;
9
+ }
10
+ //# sourceMappingURL=binanceGetPublicKey.d.ts.map
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const AbstractMethod_1 = require("../core/AbstractMethod");
4
+ const paramsValidator_1 = require("./common/paramsValidator");
5
+ const coinInfo_1 = require("../data/coinInfo");
6
+ const pathUtils_1 = require("../utils/pathUtils");
7
+ const events_1 = require("../events");
8
+ class BinanceGetPublicKey extends AbstractMethod_1.AbstractMethod {
9
+ init() {
10
+ this.requiredPermissions = ['read'];
11
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('BNB'), this.firmwareRange);
12
+ this.info = 'Export Binance public key';
13
+ this.hasBundle = !!this.payload.bundle;
14
+ const payload = !this.payload.bundle
15
+ ? { ...this.payload, bundle: [this.payload] }
16
+ : this.payload;
17
+ (0, paramsValidator_1.validateParams)(payload, [{ name: 'bundle', type: 'array' }]);
18
+ this.params = payload.bundle.map(batch => {
19
+ (0, paramsValidator_1.validateParams)(batch, [
20
+ { name: 'path', required: true },
21
+ { name: 'showOnTrezor', type: 'boolean' },
22
+ ]);
23
+ const path = (0, pathUtils_1.validatePath)(batch.path, 3);
24
+ return {
25
+ address_n: path,
26
+ show_display: typeof batch.showOnTrezor === 'boolean' ? batch.showOnTrezor : true,
27
+ };
28
+ });
29
+ }
30
+ async confirmation() {
31
+ if (this.confirmed)
32
+ return true;
33
+ await this.getPopupPromise().promise;
34
+ const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
35
+ let label;
36
+ if (this.params.length > 1) {
37
+ label = 'Export multiple Binance public keys';
38
+ }
39
+ else {
40
+ label = `Export Binance public key for account #${(0, pathUtils_1.fromHardened)(this.params[0].address_n[2]) + 1}`;
41
+ }
42
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_CONFIRMATION, {
43
+ view: 'export-address',
44
+ label,
45
+ }));
46
+ const uiResp = await uiPromise.promise;
47
+ this.confirmed = uiResp.payload;
48
+ return this.confirmed;
49
+ }
50
+ async run() {
51
+ const responses = [];
52
+ const cmd = this.device.getCommands();
53
+ for (let i = 0; i < this.params.length; i++) {
54
+ const batch = this.params[i];
55
+ const { message } = await cmd.typedCall('BinanceGetPublicKey', 'BinancePublicKey', batch);
56
+ responses.push({
57
+ path: batch.address_n,
58
+ serializedPath: (0, pathUtils_1.getSerializedPath)(batch.address_n),
59
+ publicKey: message.public_key,
60
+ });
61
+ if (this.hasBundle) {
62
+ this.postMessage((0, events_1.createUiMessage)(events_1.UI.BUNDLE_PROGRESS, {
63
+ progress: i,
64
+ response: message,
65
+ }));
66
+ }
67
+ }
68
+ return this.hasBundle ? responses : responses[0];
69
+ }
70
+ }
71
+ exports.default = BinanceGetPublicKey;
72
+ //# sourceMappingURL=binanceGetPublicKey.js.map
@@ -0,0 +1,12 @@
1
+ import { AbstractMethod } from '../core/AbstractMethod';
2
+ import type { BinancePreparedTransaction } from '../types/api/binanceSignTransaction';
3
+ declare type Params = {
4
+ path: number[];
5
+ transaction: BinancePreparedTransaction;
6
+ };
7
+ export default class BinanceSignTransaction extends AbstractMethod<'binanceSignTransaction', Params> {
8
+ init(): void;
9
+ run(): Promise<import("packages/transport/lib/types/messages").BinanceSignedTx>;
10
+ }
11
+ export {};
12
+ //# sourceMappingURL=binanceSignTransaction.d.ts.map