@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,294 +0,0 @@
1
- import * as bip32 from "bip32";
2
- import * as bip39 from "bip39";
3
- import * as bitcoin from "bitcoinjs-lib";
4
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
5
- // @ts-ignore
6
- import coininfo from "coininfo";
7
- import axios from "axios";
8
- import BigNumber from "bignumber.js";
9
- import Xpub from "../../../../families/bitcoin/wallet-btc/xpub";
10
- import Crypto from "../../../../families/bitcoin/wallet-btc/crypto/bitcoin";
11
- import BitcoinLikeExplorer from "../../../../families/bitcoin/wallet-btc/explorer";
12
- import BitcoinLikeStorage from "../../../../families/bitcoin/wallet-btc/storage";
13
- import * as utils from "../../../../families/bitcoin/wallet-btc/utils";
14
- import {
15
- InputInfo,
16
- OutputInfo,
17
- DerivationModes,
18
- } from "../../../../families/bitcoin/wallet-btc/types";
19
- import { Merge } from "../../../../families/bitcoin/wallet-btc/pickingstrategies/Merge";
20
-
21
- const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
22
-
23
- // FIXME Skipped because Praline required on CI
24
- describe.skip("testing xpub legacy transactions", () => {
25
- const network = coininfo.bitcoin.regtest.toBitcoinJS();
26
-
27
- const explorer = new BitcoinLikeExplorer({
28
- explorerURI: "http://localhost:20000/blockchain/v3",
29
- explorerVersion: "v3",
30
- disableBatchSize: true, // https://ledgerhq.atlassian.net/browse/BACK-2191
31
- });
32
- const crypto = new Crypto({
33
- network,
34
- });
35
-
36
- const xpubs = [1, 2, 3].map((i) => {
37
- const storage = new BitcoinLikeStorage();
38
- const seed = bip39.mnemonicToSeedSync(`test${i} test${i} test${i}`);
39
- const node = bip32.fromSeed(seed, network);
40
- const signer = (account: number, index: number) =>
41
- bitcoin.ECPair.fromWIF(
42
- node.derive(account).derive(index).toWIF(),
43
- network
44
- );
45
- const xpub = new Xpub({
46
- storage,
47
- explorer,
48
- crypto,
49
- xpub: node.neutered().toBase58(),
50
- derivationMode: DerivationModes.LEGACY,
51
- });
52
-
53
- return {
54
- storage,
55
- seed,
56
- node,
57
- signer,
58
- xpub,
59
- };
60
- });
61
-
62
- beforeAll(async () => {
63
- const { address } = await xpubs[0].xpub.getNewAddress(0, 0);
64
- try {
65
- await axios.post("http://localhost:28443/chain/clear/all");
66
- await axios.post(`http://localhost:28443/chain/mine/${address}/1`);
67
- await axios.post(`http://localhost:28443/chain/faucet/${address}/7.0`);
68
- } catch (e) {
69
- // eslint-disable-next-line no-console
70
- console.log("praline setup error", e);
71
- }
72
-
73
- // time for explorer to sync
74
- await sleep(30000);
75
-
76
- try {
77
- await xpubs[0].xpub.sync();
78
- } catch (e) {
79
- // eslint-disable-next-line no-console
80
- console.log("praline explorer setup error", e);
81
- }
82
- }, 70000);
83
-
84
- it("should be setup correctly", async () => {
85
- const balance1 = await xpubs[0].xpub.getXpubBalance();
86
-
87
- expect(balance1.toNumber()).toEqual(5700000000);
88
- });
89
-
90
- let expectedFee1: number;
91
- it("should send a 1 btc tx to xpubs[1].xpub", async () => {
92
- const destAddress = await xpubs[1].xpub.getNewAddress(0, 0);
93
- const { address } = destAddress;
94
- const changeAddress = await xpubs[0].xpub.getNewAddress(1, 0);
95
-
96
- const psbt = new bitcoin.Psbt({ network });
97
-
98
- const utxoPickingStrategy = new Merge(
99
- xpubs[0].xpub.crypto,
100
- xpubs[0].xpub.derivationMode,
101
- []
102
- );
103
-
104
- const { inputs, associatedDerivations, outputs } =
105
- await xpubs[0].xpub.buildTx({
106
- destAddress: address,
107
- amount: new BigNumber(100000000),
108
- feePerByte: 100,
109
- changeAddress,
110
- utxoPickingStrategy,
111
- });
112
-
113
- inputs.forEach((i: InputInfo) => {
114
- const nonWitnessUtxo = Buffer.from(i.txHex, "hex");
115
- const tx = bitcoin.Transaction.fromHex(i.txHex);
116
-
117
- psbt.addInput({
118
- hash: tx.getId(),
119
- index: i.output_index,
120
- nonWitnessUtxo,
121
- });
122
- });
123
- outputs.forEach((output: OutputInfo) => {
124
- psbt.addOutput({
125
- script: output.script,
126
- value: output.value.toNumber(),
127
- });
128
- });
129
- expect(outputs.length).toEqual(2);
130
- inputs.forEach((_, i) => {
131
- psbt.signInput(
132
- i,
133
- xpubs[0].signer(
134
- associatedDerivations[i][0],
135
- associatedDerivations[i][1]
136
- )
137
- );
138
- psbt.validateSignaturesOfInput(i);
139
- });
140
- psbt.finalizeAllInputs();
141
- const rawTxHex = psbt.extractTransaction().toHex();
142
- try {
143
- await xpubs[0].xpub.broadcastTx(rawTxHex);
144
- } catch (e) {
145
- // eslint-disable-next-line no-console
146
- console.log("broadcast error", e);
147
- }
148
-
149
- expectedFee1 =
150
- utils.estimateTxSize(
151
- inputs.length,
152
- outputs.length,
153
- crypto,
154
- DerivationModes.LEGACY
155
- ) * 100;
156
-
157
- // time for explorer to sync
158
- await sleep(30000);
159
-
160
- const sendingAddress = await xpubs[0].xpub.getNewAddress(0, 0);
161
- const pendings = await explorer.getPendings(sendingAddress);
162
- const pendingsReceive = await explorer.getPendings(destAddress);
163
- expect(pendingsReceive.length).toEqual(1);
164
- expect(pendings.length).toEqual(1);
165
-
166
- await xpubs[0].xpub.sync();
167
- await xpubs[1].xpub.sync();
168
-
169
- // pending is seen here
170
- expect((await xpubs[0].xpub.getXpubBalance()).toNumber()).toEqual(
171
- 5700000000 - 100000000 - expectedFee1
172
- );
173
- expect((await xpubs[1].xpub.getXpubBalance()).toNumber()).toEqual(
174
- 100000000
175
- );
176
- let pendings0 = await xpubs[0].xpub.storage.getLastTx({ confirmed: false });
177
- let pendings1 = await xpubs[1].xpub.storage.getLastTx({ confirmed: false });
178
- expect(pendings0).toBeTruthy();
179
- expect(pendings1).toBeTruthy();
180
-
181
- try {
182
- const { address: mineAddress } = await xpubs[2].xpub.getNewAddress(0, 0);
183
- await axios.post(`http://localhost:28443/chain/mine/${mineAddress}/1`);
184
- } catch (e) {
185
- // eslint-disable-next-line no-console
186
- console.log("praline error");
187
- }
188
-
189
- // time for explorer to sync
190
- await sleep(30000);
191
-
192
- await xpubs[0].xpub.sync();
193
- await xpubs[1].xpub.sync();
194
-
195
- expect((await xpubs[0].xpub.getXpubBalance()).toNumber()).toEqual(
196
- 5700000000 - 100000000 - expectedFee1
197
- );
198
- expect((await xpubs[1].xpub.getXpubBalance()).toNumber()).toEqual(
199
- 100000000
200
- );
201
- pendings0 = await xpubs[0].xpub.storage.getLastTx({ confirmed: false });
202
- pendings1 = await xpubs[1].xpub.storage.getLastTx({ confirmed: false });
203
- expect(pendings0).toBeFalsy();
204
- expect(pendings1).toBeFalsy();
205
- }, 150000);
206
-
207
- let expectedFee2: number;
208
- it("should send a 1 btc tx to xpubs[1].xpub and handle output splitting", async () => {
209
- const { address } = await xpubs[1].xpub.getNewAddress(0, 0);
210
- const changeAddress = await xpubs[0].xpub.getNewAddress(1, 0);
211
-
212
- const psbt = new bitcoin.Psbt({ network });
213
-
214
- const utxoPickingStrategy = new Merge(
215
- xpubs[0].xpub.crypto,
216
- xpubs[0].xpub.derivationMode,
217
- []
218
- );
219
-
220
- xpubs[0].xpub.OUTPUT_VALUE_MAX = 70000000;
221
- const { inputs, associatedDerivations, outputs } =
222
- await xpubs[0].xpub.buildTx({
223
- destAddress: address,
224
- amount: new BigNumber(100000000),
225
- feePerByte: 100,
226
- changeAddress,
227
- utxoPickingStrategy,
228
- });
229
-
230
- inputs.forEach((i) => {
231
- const nonWitnessUtxo = Buffer.from(i.txHex, "hex");
232
- const tx = bitcoin.Transaction.fromHex(i.txHex);
233
- psbt.addInput({
234
- hash: tx.getId(),
235
- index: i.output_index,
236
- nonWitnessUtxo,
237
- });
238
- });
239
- outputs.forEach((output) => {
240
- psbt.addOutput({
241
- script: output.script,
242
- value: output.value.toNumber(),
243
- });
244
- });
245
- expect(outputs.length).toEqual(3);
246
- inputs.forEach((_, i) => {
247
- psbt.signInput(
248
- i,
249
- xpubs[0].signer(
250
- associatedDerivations[i][0],
251
- associatedDerivations[i][1]
252
- )
253
- );
254
- psbt.validateSignaturesOfInput(i);
255
- });
256
- psbt.finalizeAllInputs();
257
- const rawTxHex = psbt.extractTransaction().toHex();
258
-
259
- try {
260
- await xpubs[0].xpub.broadcastTx(rawTxHex);
261
- } catch (e) {
262
- // eslint-disable-next-line no-console
263
- console.log("broadcast error", e);
264
- }
265
-
266
- try {
267
- const { address: mineAddress } = await xpubs[2].xpub.getNewAddress(0, 0);
268
- await axios.post(`http://localhost:28443/chain/mine/${mineAddress}/1`);
269
- } catch (e) {
270
- // eslint-disable-next-line no-console
271
- console.log("praline error");
272
- }
273
-
274
- // time for explorer to sync
275
- await sleep(30000);
276
-
277
- await xpubs[0].xpub.sync();
278
- await xpubs[1].xpub.sync();
279
-
280
- expectedFee2 =
281
- utils.estimateTxSize(
282
- inputs.length,
283
- outputs.length,
284
- crypto,
285
- DerivationModes.LEGACY
286
- ) * 100;
287
- expect((await xpubs[0].xpub.getXpubBalance()).toNumber()).toEqual(
288
- 5700000000 - 100000000 - expectedFee1 - 100000000 - expectedFee2
289
- );
290
- expect((await xpubs[1].xpub.getXpubBalance()).toNumber()).toEqual(
291
- 200000000
292
- );
293
- }, 120000);
294
- });
@@ -1,167 +0,0 @@
1
- import * as bip32 from "bip32";
2
- import * as bip39 from "bip39";
3
- import * as bitcoin from "bitcoinjs-lib";
4
- import coininfo from "coininfo";
5
- import axios from "axios";
6
- import BigNumber from "bignumber.js";
7
- import { DerivationModes } from "../../../../families/bitcoin/wallet-btc/types";
8
- import Xpub from "../../../../families/bitcoin/wallet-btc/xpub";
9
- import Litecoin from "../../../../families/bitcoin/wallet-btc/crypto/litecoin";
10
- import BitcoinLikeExplorer from "../../../../families/bitcoin/wallet-btc/explorer";
11
- import BitcoinLikeStorage from "../../../../families/bitcoin/wallet-btc/storage";
12
- import { Merge } from "../../../../families/bitcoin/wallet-btc/pickingstrategies/Merge";
13
-
14
- const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
15
-
16
- /*
17
- In order to launch this litecoin test locally
18
- TICKER=ltc TAG=latest LOG_LEVEL=debug docker-compose -f ./environments/explorer-praline-btc.yml up -d
19
- */
20
- // FIXME Skipped because Praline required on CI
21
- describe.skip("testing xpub legacy litecoin transactions", () => {
22
- const explorer = new BitcoinLikeExplorer({
23
- explorerURI: "http://localhost:20000/blockchain/v3",
24
- explorerVersion: "v3",
25
- disableBatchSize: true, // https://ledgerhq.atlassian.net/browse/BACK-2191
26
- });
27
-
28
- const network = coininfo.litecoin.test.toBitcoinJS();
29
- const crypto = new Litecoin({ network });
30
-
31
- const xpubs = [1, 2, 3].map((i) => {
32
- const storage = new BitcoinLikeStorage();
33
- const seed = bip39.mnemonicToSeedSync(`test${i} test${i} test${i}`);
34
- const node = bip32.fromSeed(seed, network);
35
- const signer = (account: number, index: number) =>
36
- bitcoin.ECPair.fromWIF(
37
- node.derive(account).derive(index).toWIF(),
38
- network
39
- );
40
- const xpub = new Xpub({
41
- storage,
42
- explorer,
43
- crypto,
44
- xpub: node.neutered().toBase58(),
45
- derivationMode: DerivationModes.LEGACY,
46
- });
47
-
48
- return {
49
- storage,
50
- seed,
51
- node,
52
- signer,
53
- xpub,
54
- };
55
- });
56
-
57
- beforeAll(async () => {
58
- const { address } = await xpubs[0].xpub.getNewAddress(0, 0);
59
- try {
60
- await axios.post("http://localhost:28443/chain/clear/all");
61
- await axios.post(`http://localhost:28443/chain/mine/${address}/1`);
62
- await axios.post(`http://localhost:28443/chain/faucet/${address}/7.0`);
63
- } catch (e) {
64
- // eslint-disable-next-line no-console
65
- console.log("praline setup error", e);
66
- }
67
-
68
- // time for explorer to sync
69
- await sleep(30000);
70
-
71
- try {
72
- await xpubs[0].xpub.sync();
73
- } catch (e) {
74
- // eslint-disable-next-line no-console
75
- console.log("praline explorer setup error", e);
76
- }
77
- }, 70000);
78
-
79
- it("should be setup correctly", async () => {
80
- const balance1 = await xpubs[0].xpub.getXpubBalance();
81
- expect(balance1.toNumber()).toEqual(5700000000);
82
- });
83
-
84
- let expectedFee1: number;
85
- it("should send a 1 litecoin tx to xpubs[1].xpub", async () => {
86
- const { address } = await xpubs[1].xpub.getNewAddress(0, 0);
87
- const changeAddress = await xpubs[0].xpub.getNewAddress(1, 0);
88
- const psbt = new bitcoin.Psbt({ network });
89
-
90
- const utxoPickingStrategy = new Merge(
91
- xpubs[0].xpub.crypto,
92
- xpubs[0].xpub.derivationMode,
93
- []
94
- );
95
-
96
- const { inputs, associatedDerivations, outputs } =
97
- await xpubs[0].xpub.buildTx({
98
- destAddress: address,
99
- amount: new BigNumber(100000000),
100
- feePerByte: 100,
101
- changeAddress,
102
- utxoPickingStrategy,
103
- });
104
-
105
- inputs.forEach((input) => {
106
- const nonWitnessUtxo = Buffer.from(input.txHex, "hex");
107
- const tx = bitcoin.Transaction.fromHex(input.txHex);
108
-
109
- psbt.addInput({
110
- hash: tx.getId(),
111
- index: input.output_index,
112
- nonWitnessUtxo,
113
- });
114
- });
115
- outputs.forEach((output) => {
116
- psbt.addOutput({
117
- script: output.script,
118
- value: output.value.toNumber(),
119
- });
120
- });
121
- expect(outputs.length).toEqual(2);
122
- inputs.forEach((_, i) => {
123
- psbt.signInput(
124
- i,
125
- xpubs[0].signer(
126
- associatedDerivations[i][0],
127
- associatedDerivations[i][1]
128
- )
129
- );
130
- psbt.validateSignaturesOfInput(i);
131
- });
132
- psbt.finalizeAllInputs();
133
- const rawTxHex = psbt.extractTransaction().toHex();
134
- //
135
-
136
- try {
137
- await xpubs[0].xpub.broadcastTx(rawTxHex);
138
- } catch (e) {
139
- // eslint-disable-next-line no-console
140
- console.log("broadcast error", e);
141
- }
142
-
143
- // time for explorer to sync
144
- await sleep(40000);
145
-
146
- try {
147
- const { address: mineAddress } = await xpubs[2].xpub.getNewAddress(0, 0);
148
- await axios.post(`http://localhost:28443/chain/mine/${mineAddress}/1`);
149
- } catch (e) {
150
- // eslint-disable-next-line no-console
151
- console.log("praline error");
152
- }
153
- await sleep(40000);
154
- await xpubs[0].xpub.sync();
155
- await xpubs[1].xpub.sync();
156
-
157
- expectedFee1 =
158
- 10 * 100 + inputs.length * 100 * 180 + outputs.length * 34 * 100;
159
-
160
- expect((await xpubs[0].xpub.getXpubBalance()).toNumber()).toEqual(
161
- 5700000000 - 100000000 - expectedFee1
162
- );
163
- expect((await xpubs[1].xpub.getXpubBalance()).toNumber()).toEqual(
164
- 100000000
165
- );
166
- }, 100000);
167
- });
@@ -1,76 +0,0 @@
1
- import type { AccountBridge, CurrencyBridge } from "../../../types/bridge";
2
- import type { Transaction } from "../types";
3
- import { sync, scanAccounts } from "../js-synchronisation";
4
- import createTransaction from "../js-createTransaction";
5
- import prepareTransaction from "../js-prepareTransaction";
6
- import getTransactionStatus from "../js-getTransactionStatus";
7
- import estimateMaxSpendable from "../js-estimateMaxSpendable";
8
- import signOperation from "../js-signOperation";
9
- import broadcast from "../js-broadcast";
10
- import { calculateFees } from "./../cache";
11
- import { perCoinLogic } from "../logic";
12
- import { makeAccountBridgeReceive } from "../../../bridge/jsHelpers";
13
- import * as explorerConfigAPI from "../../../api/explorerConfig";
14
- const receive = makeAccountBridgeReceive({
15
- injectGetAddressParams: (account) => {
16
- const perCoin = perCoinLogic[account.currency.id];
17
-
18
- if (perCoin && perCoin.injectGetAddressParams) {
19
- return perCoin.injectGetAddressParams(account);
20
- }
21
- },
22
- });
23
-
24
- const updateTransaction = (t, patch) => {
25
- const updatedT = { ...t, ...patch };
26
-
27
- if (updatedT.recipient.toLowerCase().indexOf("bc1") === 0) {
28
- updatedT.recipient = updatedT.recipient.toLowerCase();
29
- }
30
-
31
- return updatedT;
32
- };
33
-
34
- const preload = async () => {
35
- const explorerConfig = await explorerConfigAPI.preload();
36
- return {
37
- explorerConfig,
38
- };
39
- };
40
-
41
- const hydrate = (maybeConfig: any) => {
42
- if (
43
- typeof maybeConfig === "object" &&
44
- maybeConfig &&
45
- maybeConfig.explorerConfig
46
- ) {
47
- explorerConfigAPI.hydrate(maybeConfig.explorerConfig);
48
- }
49
- };
50
-
51
- const currencyBridge: CurrencyBridge = {
52
- scanAccounts,
53
- preload,
54
- hydrate,
55
- };
56
- const accountBridge: AccountBridge<Transaction> = {
57
- estimateMaxSpendable,
58
- createTransaction,
59
- prepareTransaction,
60
- updateTransaction,
61
- getTransactionStatus,
62
- receive,
63
- sync,
64
- signOperation,
65
- broadcast: async ({ account, signedOperation }) => {
66
- calculateFees.reset();
67
- return broadcast({
68
- account,
69
- signedOperation,
70
- });
71
- },
72
- };
73
- export default {
74
- currencyBridge,
75
- accountBridge,
76
- };
@@ -1,76 +0,0 @@
1
- import { RecipientRequired } from "@ledgerhq/errors";
2
- import { makeLRUCache } from "./../../cache";
3
- import type { Account, CryptoCurrency } from "./../../types";
4
- import type { Transaction } from "./types";
5
- import getFeesForTransaction from "./js-getFeesForTransaction";
6
- import { isValidRecipient } from "./logic";
7
-
8
- const getCacheKeyForCalculateFees = ({
9
- a,
10
- t,
11
- }: {
12
- a: Account;
13
- t: Transaction;
14
- }) =>
15
- `${a.id}_${a.blockHeight || 0}_${t.amount.toString()}_${String(
16
- t.useAllAmount
17
- )}_${t.recipient}_${t.feePerByte ? t.feePerByte.toString() : ""}_${
18
- t.utxoStrategy.pickUnconfirmedRBF ? 1 : 0
19
- }_${t.utxoStrategy.strategy}_${String(t.rbf)}_${t.utxoStrategy.excludeUTXOs
20
- .map(({ hash, outputIndex }) => `${hash}@${outputIndex}`)
21
- .join("+")}`;
22
-
23
- export const calculateFees = makeLRUCache(
24
- async ({
25
- account,
26
- transaction,
27
- }: {
28
- account: Account;
29
- transaction: Transaction;
30
- }) =>
31
- getFeesForTransaction({
32
- account,
33
- transaction,
34
- }),
35
- ({ account, transaction }) =>
36
- getCacheKeyForCalculateFees({
37
- a: account,
38
- t: transaction,
39
- }),
40
- {
41
- maxAge: 5 * 60 * 1000, // 5 minutes
42
- }
43
- );
44
- export const validateRecipient: (
45
- arg0: CryptoCurrency,
46
- arg1: string | null | undefined
47
- ) => Promise<{
48
- recipientError: Error | null | undefined;
49
- recipientWarning: Error | null | undefined;
50
- }> = makeLRUCache(
51
- async (currency, recipient) => {
52
- if (!recipient) {
53
- return {
54
- recipientError: new RecipientRequired(""),
55
- recipientWarning: null,
56
- };
57
- }
58
-
59
- try {
60
- const recipientWarning = await isValidRecipient({
61
- currency,
62
- recipient,
63
- });
64
- return {
65
- recipientError: null,
66
- recipientWarning,
67
- };
68
- } catch (recipientError) {
69
- return {
70
- recipientError,
71
- recipientWarning: null,
72
- };
73
- }
74
- },
75
- (currency, recipient) => `${currency.id}_${recipient || ""}`
76
- );
@@ -1,27 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import { avoidDups } from "./getAccountNetworkInfo";
3
- test("avoidFeeDupsInFeePerByte [3,2,2] => [4,3,2]", async () => {
4
- expect(
5
- avoidDups([new BigNumber(3), new BigNumber(3), new BigNumber(2)])
6
- ).toEqual([new BigNumber(4), new BigNumber(3), new BigNumber(2)]);
7
- });
8
- test("avoidFeeDupsInFeePerByte [2,2,1] => [3,2,1]", async () => {
9
- expect(
10
- avoidDups([new BigNumber(2), new BigNumber(2), new BigNumber(1)])
11
- ).toEqual([new BigNumber(3), new BigNumber(2), new BigNumber(1)]);
12
- });
13
- test("avoidFeeDupsInFeePerByte [3,3,3] => [5,4,3]", async () => {
14
- expect(
15
- avoidDups([new BigNumber(3), new BigNumber(3), new BigNumber(3)])
16
- ).toEqual([new BigNumber(5), new BigNumber(4), new BigNumber(3)]);
17
- });
18
- test("avoidFeeDupsInFeePerByte [3,2,1] => [3,2,1]", async () => {
19
- expect(
20
- avoidDups([new BigNumber(3), new BigNumber(2), new BigNumber(1)])
21
- ).toEqual([new BigNumber(3), new BigNumber(2), new BigNumber(1)]);
22
- });
23
- test("avoidFeeDupsInFeePerByte [100,100,1] => [101,100,1]", async () => {
24
- expect(
25
- avoidDups([new BigNumber(100), new BigNumber(100), new BigNumber(1)])
26
- ).toEqual([new BigNumber(101), new BigNumber(100), new BigNumber(1)]);
27
- });
@@ -1,61 +0,0 @@
1
- import flow from "lodash/flow";
2
- import { BigNumber } from "bignumber.js";
3
- import type { Account } from "../../types";
4
- import type { NetworkInfo } from "./types";
5
- import { getWalletAccount } from "./wallet-btc";
6
- const speeds = ["fast", "medium", "slow"];
7
- export function avoidDups(nums: Array<BigNumber>): Array<BigNumber> {
8
- nums = nums.slice(0);
9
-
10
- for (let i = nums.length - 2; i >= 0; i--) {
11
- if (nums[i + 1].gte(nums[i])) {
12
- nums[i] = nums[i + 1].plus(1);
13
- }
14
- }
15
-
16
- return nums;
17
- }
18
- export async function getAccountNetworkInfo(
19
- account: Account
20
- ): Promise<NetworkInfo> {
21
- const walletAccount = await getWalletAccount(account);
22
- const rawFees = await walletAccount.xpub.explorer.getFees();
23
- // Convoluted logic to convert from:
24
- // { "2": 2435, "3": 1241, "6": 1009, "last_updated": 1627973170 }
25
- // to:
26
- // { 2435, 1241, 1009 }
27
- const feesPerByte = flow([
28
- // Remove the 'last_updated' key
29
- Object.entries,
30
- (entries) => entries.filter(([key]) => !isNaN(key)),
31
- // Reconstruct the array with only the values
32
- Object.fromEntries,
33
- Object.values,
34
- // Safety against invalid data
35
- (f) => f.filter((f) => f != null && typeof f === "number"),
36
- // Normalize values
37
- (f) =>
38
- f.map((f) =>
39
- new BigNumber(f).div(1000).integerValue(BigNumber.ROUND_CEIL)
40
- ),
41
- avoidDups,
42
- ])(rawFees);
43
-
44
- if (feesPerByte.length !== 3) {
45
- throw new Error("cardinality of feesPerByte should be exactly 3");
46
- }
47
-
48
- const feeItems = {
49
- items: feesPerByte.map((feePerByte, i) => ({
50
- key: String(i),
51
- speed: speeds[i],
52
- feePerByte,
53
- })),
54
- defaultFeePerByte:
55
- feesPerByte[Math.floor(feesPerByte.length / 2)] || new BigNumber(0),
56
- };
57
- return {
58
- family: "bitcoin",
59
- feeItems,
60
- };
61
- }