@ledgerhq/live-common 21.5.1-btcjs.3 → 21.7.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 (489) hide show
  1. package/lib/__tests__/test-helpers/bridge.js +2 -2
  2. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  3. package/lib/account/addAccounts.d.ts.map +1 -1
  4. package/lib/account/addAccounts.js +1 -2
  5. package/lib/account/addAccounts.js.map +1 -1
  6. package/lib/account/formatters.js +2 -2
  7. package/lib/account/formatters.js.map +1 -1
  8. package/lib/account/support.d.ts.map +1 -1
  9. package/lib/account/support.js +1 -24
  10. package/lib/account/support.js.map +1 -1
  11. package/lib/api/explorerConfig/index.d.ts.map +1 -1
  12. package/lib/api/explorerConfig/index.js +0 -43
  13. package/lib/api/explorerConfig/index.js.map +1 -1
  14. package/lib/bot/engine.js +1 -1
  15. package/lib/bot/index.d.ts +1 -2
  16. package/lib/bot/index.d.ts.map +1 -1
  17. package/lib/bot/index.js +38 -21
  18. package/lib/bot/index.js.map +1 -1
  19. package/lib/bot/test.bot.js +1 -4
  20. package/lib/bot/test.bot.js.map +1 -1
  21. package/lib/bridge/jsHelpers.d.ts +2 -6
  22. package/lib/bridge/jsHelpers.d.ts.map +1 -1
  23. package/lib/bridge/jsHelpers.js +9 -22
  24. package/lib/bridge/jsHelpers.js.map +1 -1
  25. package/lib/cross.d.ts.map +1 -1
  26. package/lib/cross.js +2 -28
  27. package/lib/cross.js.map +1 -1
  28. package/lib/env.d.ts +10 -5
  29. package/lib/env.d.ts.map +1 -1
  30. package/lib/env.js +5 -0
  31. package/lib/env.js.map +1 -1
  32. package/lib/env.react.d.ts +1 -1
  33. package/lib/env.react.d.ts.map +1 -1
  34. package/lib/exchange/swap/getKYCStatus.d.ts.map +1 -1
  35. package/lib/exchange/swap/getKYCStatus.js +11 -5
  36. package/lib/exchange/swap/getKYCStatus.js.map +1 -1
  37. package/lib/exchange/swap/mock.d.ts +2 -1
  38. package/lib/exchange/swap/mock.d.ts.map +1 -1
  39. package/lib/exchange/swap/mock.js +15 -1
  40. package/lib/exchange/swap/mock.js.map +1 -1
  41. package/lib/families/bitcoin/account.d.ts.map +1 -1
  42. package/lib/families/bitcoin/account.js +2 -3
  43. package/lib/families/bitcoin/account.js.map +1 -1
  44. package/lib/families/bitcoin/datasets/bitcoin.js +6 -6
  45. package/lib/families/bitcoin/datasets/bitcoin.js.map +1 -1
  46. package/lib/families/bitcoin/datasets/litecoin.js +3 -3
  47. package/lib/families/bitcoin/datasets/litecoin.js.map +1 -1
  48. package/lib/families/bitcoin/serialization.d.ts +2 -2
  49. package/lib/families/bitcoin/serialization.d.ts.map +1 -1
  50. package/lib/families/bitcoin/serialization.js +4 -8
  51. package/lib/families/bitcoin/serialization.js.map +1 -1
  52. package/lib/families/bitcoin/specs.d.ts +2 -0
  53. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  54. package/lib/families/bitcoin/specs.js +34 -28
  55. package/lib/families/bitcoin/specs.js.map +1 -1
  56. package/lib/families/bitcoin/speculos-deviceActions.js +2 -2
  57. package/lib/families/bitcoin/speculos-deviceActions.js.map +1 -1
  58. package/lib/families/bitcoin/test-dataset.js +1 -1
  59. package/lib/families/bitcoin/test-dataset.js.map +1 -1
  60. package/lib/families/bitcoin/transaction.d.ts +3 -3
  61. package/lib/families/bitcoin/transaction.d.ts.map +1 -1
  62. package/lib/families/bitcoin/transaction.js +61 -64
  63. package/lib/families/bitcoin/transaction.js.map +1 -1
  64. package/lib/families/bitcoin/types.d.ts +36 -66
  65. package/lib/families/bitcoin/types.d.ts.map +1 -1
  66. package/lib/families/bitcoin/types.js +1 -16
  67. package/lib/families/bitcoin/types.js.map +1 -1
  68. package/lib/families/crypto_org/js-synchronisation.d.ts.map +1 -1
  69. package/lib/families/crypto_org/js-synchronisation.js +5 -13
  70. package/lib/families/crypto_org/js-synchronisation.js.map +1 -1
  71. package/lib/families/elrond/js-synchronisation.d.ts.map +1 -1
  72. package/lib/families/elrond/js-synchronisation.js +4 -12
  73. package/lib/families/elrond/js-synchronisation.js.map +1 -1
  74. package/lib/families/elrond/logic.js +22 -3
  75. package/lib/families/elrond/logic.js.map +1 -1
  76. package/lib/families/elrond/test-dataset.d.ts.map +1 -1
  77. package/lib/families/elrond/test-dataset.js +79 -76
  78. package/lib/families/elrond/test-dataset.js.map +1 -1
  79. package/lib/families/ethereum/synchronisation.d.ts.map +1 -1
  80. package/lib/families/ethereum/synchronisation.js +5 -14
  81. package/lib/families/ethereum/synchronisation.js.map +1 -1
  82. package/lib/families/ethereum/test-dataset.d.ts.map +1 -1
  83. package/lib/families/ethereum/test-dataset.js +2 -3
  84. package/lib/families/ethereum/test-dataset.js.map +1 -1
  85. package/lib/families/polkadot/js-synchronisation.d.ts.map +1 -1
  86. package/lib/families/polkadot/js-synchronisation.js +4 -12
  87. package/lib/families/polkadot/js-synchronisation.js.map +1 -1
  88. package/lib/families/stellar/js-synchronization.d.ts.map +1 -1
  89. package/lib/families/stellar/js-synchronization.js +4 -12
  90. package/lib/families/stellar/js-synchronization.js.map +1 -1
  91. package/lib/families/tezos/synchronisation.d.ts.map +1 -1
  92. package/lib/families/tezos/synchronisation.js +7 -19
  93. package/lib/families/tezos/synchronisation.js.map +1 -1
  94. package/lib/generated/bridge/js.d.ts +0 -4
  95. package/lib/generated/bridge/js.d.ts.map +1 -1
  96. package/lib/generated/bridge/js.js +18 -20
  97. package/lib/generated/bridge/js.js.map +1 -1
  98. package/lib/generated/specs.d.ts +2 -0
  99. package/lib/generated/specs.d.ts.map +1 -1
  100. package/lib/migrations/accounts-dataset.d.ts.map +1 -1
  101. package/lib/migrations/accounts-dataset.js +2 -4
  102. package/lib/migrations/accounts-dataset.js.map +1 -1
  103. package/lib/migrations/accounts.d.ts.map +1 -1
  104. package/lib/migrations/accounts.js +0 -17
  105. package/lib/migrations/accounts.js.map +1 -1
  106. package/lib/mock/account.d.ts.map +1 -1
  107. package/lib/mock/account.js +1 -2
  108. package/lib/mock/account.js.map +1 -1
  109. package/lib/network.d.ts +3 -1
  110. package/lib/network.d.ts.map +1 -1
  111. package/lib/network.js +2 -13
  112. package/lib/network.js.map +1 -1
  113. package/package.json +2 -30
  114. package/src/.DS_Store +0 -0
  115. package/src/__tests__/.DS_Store +0 -0
  116. package/src/__tests__/__snapshots__/.DS_Store +0 -0
  117. package/src/__tests__/__snapshots__/all.libcore.ts.snap +27169 -487
  118. package/src/__tests__/__snapshots__/portfolio.v2.ts.snap +0 -3
  119. package/src/__tests__/test-helpers/bridge.ts +2 -2
  120. package/src/account/addAccounts.ts +1 -2
  121. package/src/account/formatters.ts +2 -2
  122. package/src/account/support.ts +1 -24
  123. package/src/api/explorerConfig/index.ts +4 -35
  124. package/src/bot/engine.ts +1 -1
  125. package/src/bot/index.ts +25 -10
  126. package/src/bot/test.bot.ts +1 -6
  127. package/src/bridge/jsHelpers.ts +8 -37
  128. package/src/cross.ts +2 -30
  129. package/src/env.ts +5 -0
  130. package/src/exchange/swap/getKYCStatus.ts +5 -1
  131. package/src/exchange/swap/mock.ts +11 -0
  132. package/src/families/bitcoin/account.ts +1 -2
  133. package/src/families/bitcoin/datasets/bitcoin.ts +6 -6
  134. package/src/families/bitcoin/datasets/litecoin.ts +6 -6
  135. package/src/families/bitcoin/serialization.ts +0 -6
  136. package/src/families/bitcoin/specs.ts +36 -28
  137. package/src/families/bitcoin/speculos-deviceActions.ts +1 -1
  138. package/src/families/bitcoin/test-dataset.ts +1 -1
  139. package/src/families/bitcoin/transaction.ts +93 -98
  140. package/src/families/bitcoin/types.ts +37 -95
  141. package/src/families/crypto_org/js-synchronisation.ts +4 -22
  142. package/src/families/elrond/js-synchronisation.ts +3 -11
  143. package/src/families/elrond/logic.ts +1 -1
  144. package/src/families/elrond/test-dataset.ts +89 -84
  145. package/src/families/ethereum/synchronisation.ts +4 -13
  146. package/src/families/ethereum/test-dataset.ts +2 -3
  147. package/src/families/polkadot/js-synchronisation.ts +3 -11
  148. package/src/families/stellar/js-synchronization.ts +4 -12
  149. package/src/families/tezos/synchronisation.ts +3 -15
  150. package/src/generated/bridge/js.ts +0 -3
  151. package/src/migrations/accounts-dataset.ts +0 -3
  152. package/src/migrations/accounts.ts +0 -18
  153. package/src/mock/account.ts +0 -2
  154. package/src/network.ts +9 -10
  155. package/lib/__tests__/families/bitcoin/logic.d.ts +0 -2
  156. package/lib/__tests__/families/bitcoin/logic.d.ts.map +0 -1
  157. package/lib/__tests__/families/bitcoin/logic.js +0 -39
  158. package/lib/__tests__/families/bitcoin/logic.js.map +0 -1
  159. package/lib/__tests__/families/bitcoin/wallet-btc/bitcoin.test.d.ts +0 -2
  160. package/lib/__tests__/families/bitcoin/wallet-btc/bitcoin.test.d.ts.map +0 -1
  161. package/lib/__tests__/families/bitcoin/wallet-btc/bitcoin.test.js +0 -85
  162. package/lib/__tests__/families/bitcoin/wallet-btc/bitcoin.test.js.map +0 -1
  163. package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.d.ts +0 -2
  164. package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.d.ts.map +0 -1
  165. package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.js +0 -134
  166. package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.js.map +0 -1
  167. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.d.ts +0 -2
  168. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.d.ts.map +0 -1
  169. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js +0 -119
  170. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js.map +0 -1
  171. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.d.ts +0 -2
  172. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.d.ts.map +0 -1
  173. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js +0 -196
  174. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js.map +0 -1
  175. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.d.ts +0 -2
  176. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.d.ts.map +0 -1
  177. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js +0 -376
  178. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js.map +0 -1
  179. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.reorg.integration.test.d.ts +0 -2
  180. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.reorg.integration.test.d.ts.map +0 -1
  181. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.reorg.integration.test.js +0 -250
  182. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.reorg.integration.test.js.map +0 -1
  183. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.d.ts +0 -2
  184. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.d.ts.map +0 -1
  185. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.js +0 -128
  186. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.js.map +0 -1
  187. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.d.ts +0 -2
  188. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.d.ts.map +0 -1
  189. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js +0 -396
  190. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js.map +0 -1
  191. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.d.ts +0 -2
  192. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.d.ts.map +0 -1
  193. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.js +0 -286
  194. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.js.map +0 -1
  195. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.d.ts +0 -2
  196. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.d.ts.map +0 -1
  197. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.js +0 -276
  198. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.js.map +0 -1
  199. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.d.ts +0 -2
  200. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.d.ts.map +0 -1
  201. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.js +0 -414
  202. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.js.map +0 -1
  203. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.d.ts +0 -2
  204. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.d.ts.map +0 -1
  205. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.js +0 -269
  206. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.js.map +0 -1
  207. package/lib/families/bitcoin/bridge/js.d.ts +0 -8
  208. package/lib/families/bitcoin/bridge/js.d.ts.map +0 -1
  209. package/lib/families/bitcoin/bridge/js.js +0 -149
  210. package/lib/families/bitcoin/bridge/js.js.map +0 -1
  211. package/lib/families/bitcoin/cache.d.ts +0 -28
  212. package/lib/families/bitcoin/cache.d.ts.map +0 -1
  213. package/lib/families/bitcoin/cache.js +0 -109
  214. package/lib/families/bitcoin/cache.js.map +0 -1
  215. package/lib/families/bitcoin/getAccountNetworkInfo.d.ts +0 -6
  216. package/lib/families/bitcoin/getAccountNetworkInfo.d.ts.map +0 -1
  217. package/lib/families/bitcoin/getAccountNetworkInfo.js +0 -124
  218. package/lib/families/bitcoin/getAccountNetworkInfo.js.map +0 -1
  219. package/lib/families/bitcoin/getAccountNetworkInfo.test.d.ts +0 -2
  220. package/lib/families/bitcoin/getAccountNetworkInfo.test.d.ts.map +0 -1
  221. package/lib/families/bitcoin/getAccountNetworkInfo.test.js +0 -71
  222. package/lib/families/bitcoin/getAccountNetworkInfo.test.js.map +0 -1
  223. package/lib/families/bitcoin/js-broadcast.d.ts +0 -11
  224. package/lib/families/bitcoin/js-broadcast.d.ts.map +0 -1
  225. package/lib/families/bitcoin/js-broadcast.js +0 -73
  226. package/lib/families/bitcoin/js-broadcast.js.map +0 -1
  227. package/lib/families/bitcoin/js-buildTransaction.d.ts +0 -5
  228. package/lib/families/bitcoin/js-buildTransaction.d.ts.map +0 -1
  229. package/lib/families/bitcoin/js-buildTransaction.js +0 -106
  230. package/lib/families/bitcoin/js-buildTransaction.js.map +0 -1
  231. package/lib/families/bitcoin/js-createTransaction.d.ts +0 -9
  232. package/lib/families/bitcoin/js-createTransaction.d.ts.map +0 -1
  233. package/lib/families/bitcoin/js-createTransaction.js +0 -27
  234. package/lib/families/bitcoin/js-createTransaction.js.map +0 -1
  235. package/lib/families/bitcoin/js-estimateMaxSpendable.d.ts +0 -15
  236. package/lib/families/bitcoin/js-estimateMaxSpendable.d.ts.map +0 -1
  237. package/lib/families/bitcoin/js-estimateMaxSpendable.js +0 -95
  238. package/lib/families/bitcoin/js-estimateMaxSpendable.js.map +0 -1
  239. package/lib/families/bitcoin/js-getFeesForTransaction.d.ts +0 -26
  240. package/lib/families/bitcoin/js-getFeesForTransaction.d.ts.map +0 -1
  241. package/lib/families/bitcoin/js-getFeesForTransaction.js +0 -100
  242. package/lib/families/bitcoin/js-getFeesForTransaction.js.map +0 -1
  243. package/lib/families/bitcoin/js-getTransactionStatus.d.ts +0 -5
  244. package/lib/families/bitcoin/js-getTransactionStatus.d.ts.map +0 -1
  245. package/lib/families/bitcoin/js-getTransactionStatus.js +0 -131
  246. package/lib/families/bitcoin/js-getTransactionStatus.js.map +0 -1
  247. package/lib/families/bitcoin/js-prepareTransaction.d.ts +0 -5
  248. package/lib/families/bitcoin/js-prepareTransaction.d.ts.map +0 -1
  249. package/lib/families/bitcoin/js-prepareTransaction.js +0 -80
  250. package/lib/families/bitcoin/js-prepareTransaction.js.map +0 -1
  251. package/lib/families/bitcoin/js-signOperation.d.ts +0 -10
  252. package/lib/families/bitcoin/js-signOperation.d.ts.map +0 -1
  253. package/lib/families/bitcoin/js-signOperation.js +0 -212
  254. package/lib/families/bitcoin/js-signOperation.js.map +0 -1
  255. package/lib/families/bitcoin/js-synchronisation.d.ts +0 -10
  256. package/lib/families/bitcoin/js-synchronisation.d.ts.map +0 -1
  257. package/lib/families/bitcoin/js-synchronisation.js +0 -431
  258. package/lib/families/bitcoin/js-synchronisation.js.map +0 -1
  259. package/lib/families/bitcoin/logic.d.ts +0 -34
  260. package/lib/families/bitcoin/logic.d.ts.map +0 -1
  261. package/lib/families/bitcoin/logic.js +0 -290
  262. package/lib/families/bitcoin/logic.js.map +0 -1
  263. package/lib/families/bitcoin/networks.d.ts +0 -3
  264. package/lib/families/bitcoin/networks.d.ts.map +0 -1
  265. package/lib/families/bitcoin/networks.js +0 -379
  266. package/lib/families/bitcoin/networks.js.map +0 -1
  267. package/lib/families/bitcoin/wallet-btc/account.d.ts +0 -35
  268. package/lib/families/bitcoin/wallet-btc/account.d.ts.map +0 -1
  269. package/lib/families/bitcoin/wallet-btc/account.js +0 -3
  270. package/lib/families/bitcoin/wallet-btc/account.js.map +0 -1
  271. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts +0 -19
  272. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +0 -1
  273. package/lib/families/bitcoin/wallet-btc/crypto/base.js +0 -136
  274. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +0 -1
  275. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts +0 -10
  276. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts.map +0 -1
  277. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js +0 -177
  278. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js.map +0 -1
  279. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts +0 -16
  280. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +0 -1
  281. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +0 -84
  282. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +0 -1
  283. package/lib/families/bitcoin/wallet-btc/crypto/bitcoingold.d.ts +0 -8
  284. package/lib/families/bitcoin/wallet-btc/crypto/bitcoingold.d.ts.map +0 -1
  285. package/lib/families/bitcoin/wallet-btc/crypto/bitcoingold.js +0 -36
  286. package/lib/families/bitcoin/wallet-btc/crypto/bitcoingold.js.map +0 -1
  287. package/lib/families/bitcoin/wallet-btc/crypto/dash.d.ts +0 -8
  288. package/lib/families/bitcoin/wallet-btc/crypto/dash.d.ts.map +0 -1
  289. package/lib/families/bitcoin/wallet-btc/crypto/dash.js +0 -44
  290. package/lib/families/bitcoin/wallet-btc/crypto/dash.js.map +0 -1
  291. package/lib/families/bitcoin/wallet-btc/crypto/digibyte.d.ts +0 -9
  292. package/lib/families/bitcoin/wallet-btc/crypto/digibyte.d.ts.map +0 -1
  293. package/lib/families/bitcoin/wallet-btc/crypto/digibyte.js +0 -56
  294. package/lib/families/bitcoin/wallet-btc/crypto/digibyte.js.map +0 -1
  295. package/lib/families/bitcoin/wallet-btc/crypto/doge.d.ts +0 -8
  296. package/lib/families/bitcoin/wallet-btc/crypto/doge.d.ts.map +0 -1
  297. package/lib/families/bitcoin/wallet-btc/crypto/doge.js +0 -36
  298. package/lib/families/bitcoin/wallet-btc/crypto/doge.js.map +0 -1
  299. package/lib/families/bitcoin/wallet-btc/crypto/factory.d.ts +0 -3
  300. package/lib/families/bitcoin/wallet-btc/crypto/factory.d.ts.map +0 -1
  301. package/lib/families/bitcoin/wallet-btc/crypto/factory.js +0 -130
  302. package/lib/families/bitcoin/wallet-btc/crypto/factory.js.map +0 -1
  303. package/lib/families/bitcoin/wallet-btc/crypto/index.d.ts +0 -18
  304. package/lib/families/bitcoin/wallet-btc/crypto/index.d.ts.map +0 -1
  305. package/lib/families/bitcoin/wallet-btc/crypto/index.js +0 -45
  306. package/lib/families/bitcoin/wallet-btc/crypto/index.js.map +0 -1
  307. package/lib/families/bitcoin/wallet-btc/crypto/komodo.d.ts +0 -8
  308. package/lib/families/bitcoin/wallet-btc/crypto/komodo.d.ts.map +0 -1
  309. package/lib/families/bitcoin/wallet-btc/crypto/komodo.js +0 -39
  310. package/lib/families/bitcoin/wallet-btc/crypto/komodo.js.map +0 -1
  311. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts +0 -19
  312. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts.map +0 -1
  313. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js +0 -135
  314. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js.map +0 -1
  315. package/lib/families/bitcoin/wallet-btc/crypto/peercoin.d.ts +0 -8
  316. package/lib/families/bitcoin/wallet-btc/crypto/peercoin.d.ts.map +0 -1
  317. package/lib/families/bitcoin/wallet-btc/crypto/peercoin.js +0 -38
  318. package/lib/families/bitcoin/wallet-btc/crypto/peercoin.js.map +0 -1
  319. package/lib/families/bitcoin/wallet-btc/crypto/pivx.d.ts +0 -8
  320. package/lib/families/bitcoin/wallet-btc/crypto/pivx.d.ts.map +0 -1
  321. package/lib/families/bitcoin/wallet-btc/crypto/pivx.js +0 -40
  322. package/lib/families/bitcoin/wallet-btc/crypto/pivx.js.map +0 -1
  323. package/lib/families/bitcoin/wallet-btc/crypto/qtum.d.ts +0 -8
  324. package/lib/families/bitcoin/wallet-btc/crypto/qtum.d.ts.map +0 -1
  325. package/lib/families/bitcoin/wallet-btc/crypto/qtum.js +0 -36
  326. package/lib/families/bitcoin/wallet-btc/crypto/qtum.js.map +0 -1
  327. package/lib/families/bitcoin/wallet-btc/crypto/stakenet.d.ts +0 -8
  328. package/lib/families/bitcoin/wallet-btc/crypto/stakenet.d.ts.map +0 -1
  329. package/lib/families/bitcoin/wallet-btc/crypto/stakenet.js +0 -40
  330. package/lib/families/bitcoin/wallet-btc/crypto/stakenet.js.map +0 -1
  331. package/lib/families/bitcoin/wallet-btc/crypto/stealth.d.ts +0 -8
  332. package/lib/families/bitcoin/wallet-btc/crypto/stealth.d.ts.map +0 -1
  333. package/lib/families/bitcoin/wallet-btc/crypto/stealth.js +0 -40
  334. package/lib/families/bitcoin/wallet-btc/crypto/stealth.js.map +0 -1
  335. package/lib/families/bitcoin/wallet-btc/crypto/stratis.d.ts +0 -8
  336. package/lib/families/bitcoin/wallet-btc/crypto/stratis.d.ts.map +0 -1
  337. package/lib/families/bitcoin/wallet-btc/crypto/stratis.js +0 -37
  338. package/lib/families/bitcoin/wallet-btc/crypto/stratis.js.map +0 -1
  339. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts +0 -15
  340. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts.map +0 -1
  341. package/lib/families/bitcoin/wallet-btc/crypto/types.js +0 -3
  342. package/lib/families/bitcoin/wallet-btc/crypto/types.js.map +0 -1
  343. package/lib/families/bitcoin/wallet-btc/crypto/via.d.ts +0 -8
  344. package/lib/families/bitcoin/wallet-btc/crypto/via.d.ts.map +0 -1
  345. package/lib/families/bitcoin/wallet-btc/crypto/via.js +0 -36
  346. package/lib/families/bitcoin/wallet-btc/crypto/via.js.map +0 -1
  347. package/lib/families/bitcoin/wallet-btc/crypto/vtc.d.ts +0 -8
  348. package/lib/families/bitcoin/wallet-btc/crypto/vtc.d.ts.map +0 -1
  349. package/lib/families/bitcoin/wallet-btc/crypto/vtc.js +0 -36
  350. package/lib/families/bitcoin/wallet-btc/crypto/vtc.js.map +0 -1
  351. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts +0 -18
  352. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +0 -1
  353. package/lib/families/bitcoin/wallet-btc/crypto/zec.js +0 -72
  354. package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +0 -1
  355. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts +0 -18
  356. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +0 -1
  357. package/lib/families/bitcoin/wallet-btc/crypto/zen.js +0 -97
  358. package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +0 -1
  359. package/lib/families/bitcoin/wallet-btc/explorer/index.d.ts +0 -31
  360. package/lib/families/bitcoin/wallet-btc/explorer/index.d.ts.map +0 -1
  361. package/lib/families/bitcoin/wallet-btc/explorer/index.js +0 -393
  362. package/lib/families/bitcoin/wallet-btc/explorer/index.js.map +0 -1
  363. package/lib/families/bitcoin/wallet-btc/explorer/types.d.ts +0 -13
  364. package/lib/families/bitcoin/wallet-btc/explorer/types.d.ts.map +0 -1
  365. package/lib/families/bitcoin/wallet-btc/explorer/types.js +0 -3
  366. package/lib/families/bitcoin/wallet-btc/explorer/types.js.map +0 -1
  367. package/lib/families/bitcoin/wallet-btc/index.d.ts +0 -15
  368. package/lib/families/bitcoin/wallet-btc/index.d.ts.map +0 -1
  369. package/lib/families/bitcoin/wallet-btc/index.js +0 -80
  370. package/lib/families/bitcoin/wallet-btc/index.js.map +0 -1
  371. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.d.ts +0 -13
  372. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.d.ts.map +0 -1
  373. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.js +0 -237
  374. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.js.map +0 -1
  375. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.d.ts +0 -13
  376. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.d.ts.map +0 -1
  377. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.js +0 -146
  378. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.js.map +0 -1
  379. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.d.ts +0 -13
  380. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.d.ts.map +0 -1
  381. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.js +0 -146
  382. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.js.map +0 -1
  383. package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.d.ts +0 -23
  384. package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.d.ts.map +0 -1
  385. package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.js +0 -13
  386. package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.js.map +0 -1
  387. package/lib/families/bitcoin/wallet-btc/storage/index.d.ts +0 -58
  388. package/lib/families/bitcoin/wallet-btc/storage/index.d.ts.map +0 -1
  389. package/lib/families/bitcoin/wallet-btc/storage/index.js +0 -228
  390. package/lib/families/bitcoin/wallet-btc/storage/index.js.map +0 -1
  391. package/lib/families/bitcoin/wallet-btc/storage/mock.d.ts +0 -58
  392. package/lib/families/bitcoin/wallet-btc/storage/mock.d.ts.map +0 -1
  393. package/lib/families/bitcoin/wallet-btc/storage/mock.js +0 -228
  394. package/lib/families/bitcoin/wallet-btc/storage/mock.js.map +0 -1
  395. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts +0 -63
  396. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts.map +0 -1
  397. package/lib/families/bitcoin/wallet-btc/storage/types.js +0 -3
  398. package/lib/families/bitcoin/wallet-btc/storage/types.js.map +0 -1
  399. package/lib/families/bitcoin/wallet-btc/types.d.ts +0 -25
  400. package/lib/families/bitcoin/wallet-btc/types.d.ts.map +0 -1
  401. package/lib/families/bitcoin/wallet-btc/types.js +0 -10
  402. package/lib/families/bitcoin/wallet-btc/types.js.map +0 -1
  403. package/lib/families/bitcoin/wallet-btc/utils/eventemitter.d.ts +0 -6
  404. package/lib/families/bitcoin/wallet-btc/utils/eventemitter.d.ts.map +0 -1
  405. package/lib/families/bitcoin/wallet-btc/utils/eventemitter.js +0 -64
  406. package/lib/families/bitcoin/wallet-btc/utils/eventemitter.js.map +0 -1
  407. package/lib/families/bitcoin/wallet-btc/utils.d.ts +0 -12
  408. package/lib/families/bitcoin/wallet-btc/utils.d.ts.map +0 -1
  409. package/lib/families/bitcoin/wallet-btc/utils.js +0 -166
  410. package/lib/families/bitcoin/wallet-btc/utils.js.map +0 -1
  411. package/lib/families/bitcoin/wallet-btc/wallet.d.ts +0 -73
  412. package/lib/families/bitcoin/wallet-btc/wallet.d.ts.map +0 -1
  413. package/lib/families/bitcoin/wallet-btc/wallet.js +0 -464
  414. package/lib/families/bitcoin/wallet-btc/wallet.js.map +0 -1
  415. package/lib/families/bitcoin/wallet-btc/xpub.d.ts +0 -55
  416. package/lib/families/bitcoin/wallet-btc/xpub.d.ts.map +0 -1
  417. package/lib/families/bitcoin/wallet-btc/xpub.js +0 -585
  418. package/lib/families/bitcoin/wallet-btc/xpub.js.map +0 -1
  419. package/lib/mock/Btc.d.ts +0 -16
  420. package/lib/mock/Btc.d.ts.map +0 -1
  421. package/lib/mock/Btc.js +0 -104
  422. package/lib/mock/Btc.js.map +0 -1
  423. package/src/__tests__/families/bitcoin/logic.ts +0 -40
  424. package/src/__tests__/families/bitcoin/wallet-btc/bitcoin.test.ts +0 -83
  425. package/src/__tests__/families/bitcoin/wallet-btc/utils.test.ts +0 -210
  426. package/src/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.ts +0 -56
  427. package/src/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.ts +0 -107
  428. package/src/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.ts +0 -366
  429. package/src/__tests__/families/bitcoin/wallet-btc/xpub.reorg.integration.test.ts +0 -135
  430. package/src/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.ts +0 -74
  431. package/src/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.ts +0 -330
  432. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.ts +0 -193
  433. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.ts +0 -183
  434. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.ts +0 -294
  435. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.ts +0 -167
  436. package/src/families/bitcoin/bridge/js.ts +0 -76
  437. package/src/families/bitcoin/cache.ts +0 -76
  438. package/src/families/bitcoin/getAccountNetworkInfo.test.ts +0 -27
  439. package/src/families/bitcoin/getAccountNetworkInfo.ts +0 -61
  440. package/src/families/bitcoin/js-broadcast.ts +0 -26
  441. package/src/families/bitcoin/js-buildTransaction.ts +0 -57
  442. package/src/families/bitcoin/js-createTransaction.ts +0 -27
  443. package/src/families/bitcoin/js-estimateMaxSpendable.ts +0 -36
  444. package/src/families/bitcoin/js-getFeesForTransaction.ts +0 -59
  445. package/src/families/bitcoin/js-getTransactionStatus.ts +0 -118
  446. package/src/families/bitcoin/js-prepareTransaction.ts +0 -35
  447. package/src/families/bitcoin/js-signOperation.ts +0 -164
  448. package/src/families/bitcoin/js-synchronisation.ts +0 -388
  449. package/src/families/bitcoin/logic.ts +0 -251
  450. package/src/families/bitcoin/networks.ts +0 -360
  451. package/src/families/bitcoin/wallet-btc/account.ts +0 -42
  452. package/src/families/bitcoin/wallet-btc/crypto/base.ts +0 -131
  453. package/src/families/bitcoin/wallet-btc/crypto/bitcoin.ts +0 -147
  454. package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +0 -78
  455. package/src/families/bitcoin/wallet-btc/crypto/bitcoingold.ts +0 -13
  456. package/src/families/bitcoin/wallet-btc/crypto/dash.ts +0 -21
  457. package/src/families/bitcoin/wallet-btc/crypto/digibyte.ts +0 -34
  458. package/src/families/bitcoin/wallet-btc/crypto/doge.ts +0 -13
  459. package/src/families/bitcoin/wallet-btc/crypto/factory.ts +0 -106
  460. package/src/families/bitcoin/wallet-btc/crypto/index.ts +0 -17
  461. package/src/families/bitcoin/wallet-btc/crypto/komodo.ts +0 -16
  462. package/src/families/bitcoin/wallet-btc/crypto/litecoin.ts +0 -113
  463. package/src/families/bitcoin/wallet-btc/crypto/peercoin.ts +0 -15
  464. package/src/families/bitcoin/wallet-btc/crypto/pivx.ts +0 -17
  465. package/src/families/bitcoin/wallet-btc/crypto/qtum.ts +0 -13
  466. package/src/families/bitcoin/wallet-btc/crypto/stakenet.ts +0 -17
  467. package/src/families/bitcoin/wallet-btc/crypto/stealth.ts +0 -17
  468. package/src/families/bitcoin/wallet-btc/crypto/stratis.ts +0 -14
  469. package/src/families/bitcoin/wallet-btc/crypto/types.ts +0 -42
  470. package/src/families/bitcoin/wallet-btc/crypto/via.ts +0 -13
  471. package/src/families/bitcoin/wallet-btc/crypto/vtc.ts +0 -13
  472. package/src/families/bitcoin/wallet-btc/crypto/zec.ts +0 -85
  473. package/src/families/bitcoin/wallet-btc/crypto/zen.ts +0 -112
  474. package/src/families/bitcoin/wallet-btc/explorer/index.ts +0 -305
  475. package/src/families/bitcoin/wallet-btc/explorer/types.ts +0 -20
  476. package/src/families/bitcoin/wallet-btc/index.ts +0 -54
  477. package/src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts +0 -229
  478. package/src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts +0 -81
  479. package/src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts +0 -81
  480. package/src/families/bitcoin/wallet-btc/pickingstrategies/types.ts +0 -41
  481. package/src/families/bitcoin/wallet-btc/storage/index.ts +0 -186
  482. package/src/families/bitcoin/wallet-btc/storage/mock.ts +0 -186
  483. package/src/families/bitcoin/wallet-btc/storage/types.ts +0 -66
  484. package/src/families/bitcoin/wallet-btc/types.ts +0 -26
  485. package/src/families/bitcoin/wallet-btc/utils/eventemitter.ts +0 -9
  486. package/src/families/bitcoin/wallet-btc/utils.ts +0 -153
  487. package/src/families/bitcoin/wallet-btc/wallet.ts +0 -396
  488. package/src/families/bitcoin/wallet-btc/xpub.ts +0 -470
  489. package/src/mock/Btc.ts +0 -47
@@ -1,396 +0,0 @@
1
- require("bitcore-lib");
2
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
- // @ts-ignore
4
- import { flatten } from "lodash";
5
- import BigNumber from "bignumber.js";
6
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
- // @ts-ignore
8
- import { BufferWriter } from "bitcoinjs-lib/src/bufferutils";
9
- import * as bitcoin from "bitcoinjs-lib";
10
-
11
- import Btc from "@ledgerhq/hw-app-btc";
12
- import { log } from "@ledgerhq/logs";
13
- import { Transaction } from "@ledgerhq/hw-app-btc/lib/types";
14
- import { Currency } from "./crypto/types";
15
-
16
- import { TransactionInfo, DerivationModes } from "./types";
17
- import { Account, SerializedAccount } from "./account";
18
- import Xpub from "./xpub";
19
- import { IExplorer } from "./explorer/types";
20
- import BitcoinLikeExplorer from "./explorer";
21
- import { IStorage } from "./storage/types";
22
- import BitcoinLikeStorage from "./storage";
23
- import { PickingStrategy } from "./pickingstrategies/types";
24
- import * as utils from "./utils";
25
- import cryptoFactory from "./crypto/factory";
26
-
27
- class BitcoinLikeWallet {
28
- explorerInstances: { [key: string]: IExplorer } = {};
29
-
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- explorers: { [key: string]: (explorerURI: string) => IExplorer } = {
32
- ledgerv3: (explorerURI) =>
33
- new BitcoinLikeExplorer({
34
- explorerURI,
35
- explorerVersion: "v3",
36
- }),
37
- ledgerv2: (explorerURI) =>
38
- new BitcoinLikeExplorer({
39
- explorerURI,
40
- explorerVersion: "v2",
41
- }),
42
- };
43
-
44
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
- accountStorages: { [key: string]: (...args: any[]) => IStorage } = {
46
- mock: () => new BitcoinLikeStorage(),
47
- };
48
-
49
- getExplorer(explorer: "ledgerv3" | "ledgerv2", explorerURI: string) {
50
- const id = `explorer-${explorer}-uri-${explorerURI}`;
51
- this.explorerInstances[id] =
52
- this.explorerInstances[id] || this.explorers[explorer](explorerURI);
53
- return this.explorerInstances[id];
54
- }
55
-
56
- async generateAccount(params: {
57
- xpub?: string;
58
- btc?: Btc;
59
- path: string;
60
- index: number;
61
- currency: Currency;
62
- network: "mainnet" | "testnet";
63
- derivationMode: DerivationModes;
64
- explorer: "ledgerv3" | "ledgerv2";
65
- explorerURI: string;
66
- storage: "mock";
67
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
- storageParams: any[];
69
- }): Promise<Account> {
70
- const crypto = cryptoFactory(params.currency);
71
-
72
- let { xpub } = params;
73
-
74
- if (!xpub) {
75
- // Xpub not provided, generate it using the hwapp
76
-
77
- if (!params.btc) {
78
- // hwapp not provided
79
- throw new Error("generateAccount need either a hwapp or xpub");
80
- }
81
-
82
- xpub = await this.generateXpub(
83
- params.btc,
84
- params.currency,
85
- params.path,
86
- params.index
87
- );
88
- }
89
-
90
- if (!xpub) {
91
- throw new Error("Error while generating the xpub");
92
- }
93
-
94
- const storage = this.accountStorages[params.storage](
95
- ...params.storageParams
96
- );
97
- const explorer = this.getExplorer(params.explorer, params.explorerURI);
98
- return {
99
- params,
100
- xpub: new Xpub({
101
- storage,
102
- explorer,
103
- crypto,
104
- xpub,
105
- derivationMode: params.derivationMode,
106
- }),
107
- };
108
- }
109
-
110
- // eslint-disable-next-line class-methods-use-this
111
- async exportToSerializedAccount(
112
- account: Account
113
- ): Promise<SerializedAccount> {
114
- const data = await account.xpub.storage.export();
115
-
116
- return {
117
- ...account,
118
- xpub: {
119
- xpub: account.xpub.xpub,
120
- data,
121
- },
122
- };
123
- }
124
-
125
- async generateXpub(
126
- btc: Btc,
127
- currency: Currency,
128
- path: string,
129
- index: number
130
- ): Promise<string> {
131
- const parentDerivation = await btc.getWalletPublicKey(`${path}`);
132
- const accountDerivation = await btc.getWalletPublicKey(`${path}/${index}'`);
133
-
134
- // parent
135
- const publicKeyParentCompressed = utils.compressPublicKey(
136
- parentDerivation.publicKey
137
- );
138
- const publicKeyParentCompressedHex = utils.parseHexString(
139
- publicKeyParentCompressed
140
- );
141
- let result = bitcoin.crypto.sha256(
142
- Buffer.from(publicKeyParentCompressedHex)
143
- );
144
- result = bitcoin.crypto.ripemd160(result);
145
- // eslint-disable-next-line no-bitwise
146
- const fingerprint =
147
- ((result[0] << 24) | (result[1] << 16) | (result[2] << 8) | result[3]) >>>
148
- 0;
149
-
150
- // account
151
- const publicKeyAccountCompressed = utils.compressPublicKey(
152
- accountDerivation.publicKey
153
- );
154
- // eslint-disable-next-line no-bitwise
155
- const childnum = (0x80000000 | index) >>> 0;
156
-
157
- const { network } = cryptoFactory(currency);
158
- const xpubRaw = utils.createXPUB(
159
- 3,
160
- fingerprint,
161
- childnum,
162
- accountDerivation.chainCode,
163
- publicKeyAccountCompressed,
164
- network.bip32.public
165
- );
166
-
167
- return utils.encodeBase58Check(xpubRaw);
168
- }
169
-
170
- async importFromSerializedAccount(
171
- account: SerializedAccount
172
- ): Promise<Account> {
173
- const crypto = cryptoFactory(account.params.currency);
174
- const storage = this.accountStorages[account.params.storage](
175
- ...account.params.storageParams
176
- );
177
- const explorer = this.getExplorer(
178
- account.params.explorer,
179
- account.params.explorerURI
180
- );
181
-
182
- const xpub = new Xpub({
183
- storage,
184
- explorer,
185
- crypto,
186
- xpub: account.xpub.xpub,
187
- derivationMode: account.params.derivationMode,
188
- });
189
-
190
- await xpub.storage.load(account.xpub.data);
191
-
192
- return {
193
- ...account,
194
- xpub,
195
- };
196
- }
197
-
198
- // eslint-disable-next-line class-methods-use-this
199
- async syncAccount(account: Account) {
200
- return account.xpub.sync();
201
- }
202
-
203
- // eslint-disable-next-line class-methods-use-this
204
- async getAccountNewReceiveAddress(account: Account) {
205
- const address = await account.xpub.getNewAddress(0, 1);
206
- return address;
207
- }
208
-
209
- // eslint-disable-next-line class-methods-use-this
210
- async getAccountNewChangeAddress(account: Account) {
211
- const address = await account.xpub.getNewAddress(1, 1);
212
- return address;
213
- }
214
-
215
- // eslint-disable-next-line class-methods-use-this
216
- async getAccountTransactions(account: Account) {
217
- const txs = await account.xpub.storage.export();
218
- return txs;
219
- }
220
-
221
- // eslint-disable-next-line class-methods-use-this
222
- async getAccountUnspentUtxos(account: Account) {
223
- const addresses = await account.xpub.getXpubAddresses();
224
- return flatten(
225
- await Promise.all(
226
- addresses.map((address) =>
227
- account.xpub.storage.getAddressUnspentUtxos(address)
228
- )
229
- )
230
- );
231
- }
232
-
233
- // eslint-disable-next-line class-methods-use-this
234
- async estimateAccountMaxSpendable(account: Account, feePerByte: number) {
235
- const addresses = await account.xpub.getXpubAddresses();
236
- const utxos = flatten(
237
- await Promise.all(
238
- addresses.map((address) =>
239
- account.xpub.storage.getAddressUnspentUtxos(address)
240
- )
241
- )
242
- );
243
- const balance = await account.xpub.getXpubBalance();
244
- // fees if we use all utxo
245
- const fees =
246
- feePerByte *
247
- utils.estimateTxSize(
248
- utxos.length,
249
- 1,
250
- account.xpub.crypto,
251
- account.xpub.derivationMode
252
- );
253
- const maxSpendable = balance.minus(fees);
254
- return maxSpendable.lt(0) ? new BigNumber(0) : maxSpendable;
255
- }
256
-
257
- // eslint-disable-next-line class-methods-use-this
258
- async getAccountBalance(account: Account) {
259
- const balance = await account.xpub.getXpubBalance();
260
- return balance;
261
- }
262
-
263
- // eslint-disable-next-line class-methods-use-this
264
- async getAccountPendings(account: Account) {
265
- const addresses = await account.xpub.getXpubAddresses();
266
- return flatten(
267
- await Promise.all(
268
- addresses.map((address) => account.xpub.explorer.getPendings(address))
269
- )
270
- );
271
- }
272
-
273
- // eslint-disable-next-line class-methods-use-this
274
- async buildAccountTx(params: {
275
- fromAccount: Account;
276
- dest: string;
277
- amount: BigNumber;
278
- feePerByte: number;
279
- utxoPickingStrategy: PickingStrategy;
280
- sequence?: number;
281
- }): Promise<TransactionInfo> {
282
- const changeAddress = await params.fromAccount.xpub.getNewAddress(1, 1);
283
- const txInfo = await params.fromAccount.xpub.buildTx({
284
- destAddress: params.dest,
285
- amount: params.amount,
286
- feePerByte: params.feePerByte,
287
- changeAddress,
288
- utxoPickingStrategy: params.utxoPickingStrategy,
289
- sequence: params.sequence,
290
- });
291
- return txInfo;
292
- }
293
-
294
- // eslint-disable-next-line class-methods-use-this
295
- async signAccountTx(params: {
296
- btc: Btc;
297
- fromAccount: Account;
298
- txInfo: TransactionInfo;
299
- lockTime?: number;
300
- sigHashType?: number;
301
- segwit?: boolean;
302
- additionals?: Array<string>;
303
- expiryHeight?: Buffer;
304
- onDeviceSignatureRequested?: () => void;
305
- onDeviceSignatureGranted?: () => void;
306
- onDeviceStreaming?: (arg0: {
307
- progress: number;
308
- total: number;
309
- index: number;
310
- }) => void;
311
- }) {
312
- const {
313
- btc,
314
- fromAccount,
315
- txInfo,
316
- lockTime,
317
- sigHashType,
318
- segwit,
319
- additionals,
320
- expiryHeight,
321
- onDeviceSignatureRequested,
322
- onDeviceSignatureGranted,
323
- onDeviceStreaming,
324
- } = params;
325
-
326
- const length = txInfo.outputs.reduce((sum, output) => {
327
- return sum + 8 + output.script.length + 1;
328
- }, 1);
329
- const buffer = Buffer.allocUnsafe(length);
330
- const bufferWriter = new BufferWriter(buffer, 0);
331
- bufferWriter.writeVarInt(txInfo.outputs.length);
332
- txInfo.outputs.forEach((txOut) => {
333
- // xpub splits output into smaller outputs than SAFE_MAX_INT anyway
334
- bufferWriter.writeUInt64(txOut.value.toNumber());
335
- bufferWriter.writeVarSlice(txOut.script);
336
- });
337
- const outputScriptHex = buffer.toString("hex");
338
-
339
- const associatedKeysets = txInfo.associatedDerivations.map(
340
- ([account, index]) =>
341
- `${fromAccount.params.path}/${fromAccount.params.index}'/${account}/${index}`
342
- );
343
- type Inputs = [
344
- Transaction,
345
- number,
346
- string | null | undefined,
347
- number | null | undefined
348
- ][];
349
- const inputs: Inputs = txInfo.inputs.map((i) => [
350
- btc.splitTransaction(i.txHex, true),
351
- i.output_index,
352
- null,
353
- null,
354
- ]);
355
-
356
- log("hw", `createPaymentTransactionNew`, {
357
- associatedKeysets,
358
- outputScriptHex,
359
- lockTime,
360
- sigHashType,
361
- segwit,
362
- additionals: additionals || [],
363
- expiryHeight: expiryHeight && expiryHeight.toString("hex"),
364
- });
365
-
366
- const lastOutputIndex = txInfo.outputs.length - 1;
367
-
368
- const tx = await btc.createPaymentTransactionNew({
369
- inputs,
370
- associatedKeysets,
371
- outputScriptHex,
372
- ...(params.lockTime && { lockTime: params.lockTime }),
373
- ...(params.sigHashType && { sigHashType: params.sigHashType }),
374
- ...(params.segwit && { segwit: params.segwit }),
375
- // initialTimestamp,
376
- ...(params.expiryHeight && { expiryHeight: params.expiryHeight }),
377
- ...(txInfo.outputs[lastOutputIndex]?.isChange && {
378
- changePath: `${fromAccount.params.path}/${fromAccount.params.index}'/${txInfo.changeAddress.account}/${txInfo.changeAddress.index}`,
379
- }),
380
- additionals: additionals || [],
381
- onDeviceSignatureRequested,
382
- onDeviceSignatureGranted,
383
- onDeviceStreaming,
384
- });
385
-
386
- return tx;
387
- }
388
-
389
- // eslint-disable-next-line class-methods-use-this
390
- async broadcastTx(fromAccount: Account, tx: string) {
391
- const res = await fromAccount.xpub.broadcastTx(tx);
392
- return res.data.result;
393
- }
394
- }
395
-
396
- export default BitcoinLikeWallet;