@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,26 +0,0 @@
1
- import { patchOperationWithHash } from "./../../operation";
2
- import type { Account, Operation, SignedOperation } from "./../../types";
3
- import wallet from "./wallet-btc";
4
-
5
- /**
6
- * Broadcast a signed transaction
7
- * @param {signature: string, operation: string} signedOperation
8
- */
9
- const broadcast = async ({
10
- account,
11
- signedOperation,
12
- }: {
13
- account: Account;
14
- signedOperation: SignedOperation;
15
- }): Promise<Operation> => {
16
- const { signature, operation } = signedOperation;
17
- const walletData = account.bitcoinResources?.serializedData;
18
- if (!walletData) {
19
- throw new Error("bitcoin wallet account expected");
20
- }
21
- const walletAccount = await wallet.importFromSerializedAccount(walletData);
22
- const hash = await wallet.broadcastTx(walletAccount, signature);
23
- return patchOperationWithHash(operation, hash);
24
- };
25
-
26
- export default broadcast;
@@ -1,57 +0,0 @@
1
- import type { Account as WalletAccount } from "./wallet-btc";
2
- import { CoinSelect, DeepFirst, Merge } from "./wallet-btc";
3
- import type { TransactionInfo as WalletTxInfo } from "./wallet-btc";
4
- import { FeeNotLoaded } from "@ledgerhq/errors";
5
-
6
- import type { Account } from "../../types";
7
- import type { Transaction, UtxoStrategy } from "./types";
8
- import { bitcoinPickingStrategy } from "./types";
9
- import wallet, { getWalletAccount } from "./wallet-btc";
10
-
11
- const selectUtxoPickingStrategy = (
12
- walletAccount: WalletAccount,
13
- utxoStrategy: UtxoStrategy
14
- ) => {
15
- const handler = {
16
- [bitcoinPickingStrategy.MERGE_OUTPUTS]: Merge,
17
- [bitcoinPickingStrategy.DEEP_OUTPUTS_FIRST]: DeepFirst,
18
- [bitcoinPickingStrategy.OPTIMIZE_SIZE]: CoinSelect,
19
- }[utxoStrategy.strategy];
20
- if (!handler) throw new Error("Unsupported Bitcoin UTXO picking strategy");
21
-
22
- return new handler(
23
- walletAccount.xpub.crypto,
24
- walletAccount.xpub.derivationMode,
25
- utxoStrategy.excludeUTXOs
26
- );
27
- };
28
-
29
- export const buildTransaction = async (
30
- account: Account,
31
- transaction: Transaction
32
- ): Promise<WalletTxInfo> => {
33
- if (!transaction.feePerByte) {
34
- throw new FeeNotLoaded();
35
- }
36
- const walletAccount = await getWalletAccount(account);
37
- const utxoPickingStrategy = selectUtxoPickingStrategy(
38
- walletAccount,
39
- transaction.utxoStrategy
40
- );
41
-
42
- const maxSpendable = await wallet.estimateAccountMaxSpendable(
43
- walletAccount,
44
- transaction.feePerByte.toNumber() //!\ wallet-btc handles fees as JS number
45
- );
46
-
47
- const txInfo = await wallet.buildAccountTx({
48
- fromAccount: walletAccount,
49
- dest: transaction.recipient,
50
- amount: transaction.useAllAmount ? maxSpendable : transaction.amount,
51
- feePerByte: transaction.feePerByte.toNumber(), //!\ wallet-btc handles fees as JS number
52
- utxoPickingStrategy,
53
- // Definition of replaceable, per the standard: https://github.com/bitcoin/bips/blob/61ccc84930051e5b4a99926510d0db4a8475a4e6/bip-0125.mediawiki#summary
54
- sequence: transaction.rbf ? 0 : 0xffffffff,
55
- });
56
- return txInfo;
57
- };
@@ -1,27 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import type { Transaction } from "./types";
3
-
4
- /**
5
- * Create an empty transaction
6
- *
7
- * @returns {Transaction}
8
- */
9
- const createTransaction = (): Transaction => {
10
- return {
11
- family: "bitcoin",
12
- amount: new BigNumber(0),
13
- utxoStrategy: {
14
- strategy: 0,
15
- pickUnconfirmedRBF: false,
16
- excludeUTXOs: [],
17
- },
18
- recipient: "",
19
- rbf: false,
20
- feePerByte: null,
21
- networkInfo: null,
22
- useAllAmount: false,
23
- feesStrategy: "medium",
24
- };
25
- };
26
-
27
- export default createTransaction;
@@ -1,36 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import type { AccountLike, Account } from "../../types";
3
- import type { Transaction } from "./types";
4
- import { getMainAccount } from "../../account";
5
- import wallet, { getWalletAccount } from "./wallet-btc";
6
- import { getAccountNetworkInfo } from "./getAccountNetworkInfo";
7
-
8
- /**
9
- * Returns the maximum possible amount for transaction
10
- *
11
- * @param {Object} param - the account, parentAccount and transaction
12
- */
13
- const estimateMaxSpendable = async ({
14
- account,
15
- parentAccount,
16
- transaction,
17
- }: {
18
- account: AccountLike;
19
- parentAccount: Account | null | undefined;
20
- transaction: Transaction | null | undefined;
21
- }): Promise<BigNumber> => {
22
- const mainAccount = getMainAccount(account, parentAccount);
23
- const walletAccount = await getWalletAccount(mainAccount);
24
- let feePerByte = transaction?.feePerByte;
25
- if (!feePerByte) {
26
- const networkInfo = await getAccountNetworkInfo(mainAccount);
27
- feePerByte = networkInfo.feeItems.defaultFeePerByte;
28
- }
29
- const maxSpendable = await wallet.estimateAccountMaxSpendable(
30
- walletAccount,
31
- feePerByte.toNumber() //!\ wallet-btc handles fees as JS number
32
- );
33
- return maxSpendable.lt(0) ? new BigNumber(0) : maxSpendable;
34
- };
35
-
36
- export default estimateMaxSpendable;
@@ -1,59 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import type { Account } from "./../../types";
3
- import type { Transaction } from "./types";
4
- import { buildTransaction } from "./js-buildTransaction";
5
- import { perCoinLogic } from "./logic";
6
-
7
- const getFeesForTransaction = async ({
8
- account,
9
- transaction,
10
- }: {
11
- account: Account;
12
- transaction: Transaction;
13
- }) => {
14
- const walletTx = await buildTransaction(account, transaction);
15
- const fees = new BigNumber(walletTx.fee).integerValue();
16
- let txInputs = walletTx.inputs.map((i) => {
17
- return {
18
- address: i.address,
19
- value: new BigNumber(i.value),
20
- previousTxHash: i.output_hash,
21
- previousOutputIndex: i.output_index,
22
- };
23
- });
24
- let txOutputs = walletTx.outputs.map((o) => {
25
- return {
26
- outputIndex: walletTx.outputs.indexOf(o),
27
- address: o.address,
28
- isChange: o.isChange,
29
- value: new BigNumber(o.value),
30
- hash: undefined,
31
- blockHeight: undefined,
32
- rbf: transaction.rbf,
33
- };
34
- });
35
- const perCoin = perCoinLogic[account.currency.id];
36
-
37
- if (perCoin) {
38
- const { syncReplaceAddress } = perCoin;
39
-
40
- if (syncReplaceAddress) {
41
- txInputs = txInputs.map((i) => ({
42
- ...i,
43
- address: i.address && syncReplaceAddress(i.address),
44
- }));
45
- txOutputs = txOutputs.map((o) => ({
46
- ...o,
47
- address: o.address && syncReplaceAddress(o.address),
48
- }));
49
- }
50
- }
51
-
52
- return {
53
- fees,
54
- txInputs,
55
- txOutputs,
56
- };
57
- };
58
-
59
- export default getFeesForTransaction;
@@ -1,118 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import { log } from "@ledgerhq/logs";
3
- import {
4
- AmountRequired,
5
- NotEnoughBalance,
6
- FeeNotLoaded,
7
- FeeTooHigh,
8
- FeeRequired,
9
- } from "@ledgerhq/errors";
10
- import { LowerThanMinimumRelayFee } from "./../../errors";
11
- import type { Account, TransactionStatus } from "./../../types";
12
- import type { Transaction } from "./types";
13
- import { calculateFees, validateRecipient } from "./cache";
14
- import { getMinRelayFee } from "./logic";
15
-
16
- const getTransactionStatus = async (
17
- a: Account,
18
- t: Transaction
19
- ): Promise<TransactionStatus> => {
20
- const errors: any = {};
21
- const warnings: any = {};
22
- const useAllAmount = !!t.useAllAmount;
23
- const { recipientError, recipientWarning } = await validateRecipient(
24
- a.currency,
25
- t.recipient
26
- );
27
-
28
- if (recipientError) {
29
- errors.recipient = recipientError;
30
- }
31
-
32
- if (recipientWarning) {
33
- warnings.recipient = recipientWarning;
34
- }
35
-
36
- let txInputs;
37
- let txOutputs;
38
- let estimatedFees = new BigNumber(0);
39
-
40
- if (!t.feePerByte) {
41
- errors.feePerByte = new FeeNotLoaded();
42
- } else if (t.feePerByte.eq(0)) {
43
- errors.feePerByte = new FeeRequired();
44
- } else if (t.recipient && !errors.recipient) {
45
- await calculateFees({
46
- account: a,
47
- transaction: t,
48
- }).then(
49
- (res) => {
50
- txInputs = res.txInputs;
51
- txOutputs = res.txOutputs;
52
- estimatedFees = res.fees;
53
- },
54
- (error) => {
55
- if (error.name === "NotEnoughBalance") {
56
- errors.amount = error;
57
- } else {
58
- throw error;
59
- }
60
- }
61
- );
62
- }
63
-
64
- const sumOfInputs = (txInputs || []).reduce(
65
- (sum, input) => sum.plus(input.value),
66
- new BigNumber(0)
67
- );
68
- const sumOfChanges = (txOutputs || [])
69
- .filter((o) => o.isChange)
70
- .reduce((sum, output) => sum.plus(output.value), new BigNumber(0));
71
-
72
- if (txInputs) {
73
- log("bitcoin", `${txInputs.length} inputs, sum: ${sumOfInputs.toString()}`);
74
- }
75
-
76
- if (txOutputs) {
77
- log(
78
- "bitcoin",
79
- `${txOutputs.length} outputs, sum of changes: ${sumOfChanges.toString()}`
80
- );
81
- }
82
-
83
- const totalSpent = sumOfInputs.minus(sumOfChanges);
84
- const amount = useAllAmount ? totalSpent.minus(estimatedFees) : t.amount;
85
- log(
86
- "bitcoin",
87
- `totalSpent ${totalSpent.toString()} amount ${amount.toString()}`
88
- );
89
-
90
- if (!errors.amount && !amount.gt(0)) {
91
- errors.amount = useAllAmount
92
- ? new NotEnoughBalance()
93
- : new AmountRequired();
94
- }
95
-
96
- if (
97
- process.env.EXPERIMENTAL_MIN_RELAY_FEE &&
98
- estimatedFees &&
99
- estimatedFees.gt(0) &&
100
- estimatedFees.lt(getMinRelayFee(a.currency))
101
- ) {
102
- warnings.feePerByte = new LowerThanMinimumRelayFee();
103
- } else if (amount.gt(0) && estimatedFees.times(10).gt(amount)) {
104
- warnings.feeTooHigh = new FeeTooHigh();
105
- }
106
-
107
- return Promise.resolve({
108
- errors,
109
- warnings,
110
- estimatedFees,
111
- amount,
112
- totalSpent,
113
- txInputs,
114
- txOutputs,
115
- });
116
- };
117
-
118
- export default getTransactionStatus;
@@ -1,35 +0,0 @@
1
- import invariant from "invariant";
2
- import type { Account } from "../../types";
3
- import type { Transaction } from "./types";
4
- import { getAccountNetworkInfo } from "./getAccountNetworkInfo";
5
- import { inferFeePerByte } from "./logic";
6
-
7
- const prepareTransaction = async (
8
- a: Account,
9
- t: Transaction
10
- ): Promise<Transaction> => {
11
- let networkInfo = t.networkInfo;
12
-
13
- if (!networkInfo) {
14
- networkInfo = await getAccountNetworkInfo(a);
15
- invariant(networkInfo.family === "bitcoin", "bitcoin networkInfo expected");
16
- }
17
-
18
- const feePerByte = inferFeePerByte(t, networkInfo);
19
-
20
- if (
21
- t.networkInfo === networkInfo &&
22
- (feePerByte === t.feePerByte || feePerByte.eq(t.feePerByte || 0))
23
- ) {
24
- // nothing changed
25
- return t;
26
- }
27
-
28
- return {
29
- ...t,
30
- networkInfo,
31
- feePerByte,
32
- };
33
- };
34
-
35
- export default prepareTransaction;
@@ -1,164 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import { Observable } from "rxjs";
3
- import Btc from "@ledgerhq/hw-app-btc";
4
- import { log } from "@ledgerhq/logs";
5
- import type { Account, Operation, SignOperationEvent } from "./../../types";
6
- import { isSegwitDerivationMode } from "./../../derivation";
7
- import { encodeOperationId } from "./../../operation";
8
- import { open, close } from "./../../hw";
9
- import type { Transaction } from "./types";
10
- import { getNetworkParameters } from "./networks";
11
- import { buildTransaction } from "./js-buildTransaction";
12
- import { calculateFees } from "./cache";
13
- import wallet, { getWalletAccount } from "./wallet-btc";
14
- import { perCoinLogic } from "./logic";
15
-
16
- const signOperation = ({
17
- account,
18
- deviceId,
19
- transaction,
20
- }: {
21
- account: Account;
22
- deviceId: any;
23
- transaction: Transaction;
24
- }): Observable<SignOperationEvent> =>
25
- Observable.create((o) => {
26
- async function main() {
27
- const { currency } = account;
28
- const transport = await open(deviceId);
29
- const hwApp = new Btc(transport);
30
- const walletAccount = await getWalletAccount(account);
31
-
32
- try {
33
- log("hw", `signTransaction ${currency.id} for account ${account.id}`);
34
- const txInfo = await buildTransaction(account, transaction);
35
- let senders: string[] = [];
36
- let recipients: string[] = [];
37
- let fee = new BigNumber(0);
38
- // Maybe better not re-calculate these fields here, instead include them
39
- // in Transaction type and set them in prepareTransaction?
40
- await calculateFees({
41
- account,
42
- transaction,
43
- }).then((res) => {
44
- senders = res.txInputs
45
- .map((i) => i.address)
46
- .filter(Boolean) as string[];
47
- recipients = res.txOutputs
48
- .filter((o) => o.address && !o.isChange)
49
- .map((o) => o.address) as string[];
50
- fee = res.fees;
51
- });
52
-
53
- // FIXME (legacy)
54
- // should be `transaction.getLockTime()` as soon as lock time is
55
- // handled by libcore (actually: it always returns a default value
56
- // and that caused issue with zcash (see #904))
57
- // cf. https://github.com/LedgerHQ/lib-ledger-core/blob/fc9d762b83fc2b269d072b662065747a64ab2816/core/src/wallet/bitcoin/transaction_builders/BitcoinLikeUtxoPicker.cpp#L156-L159
58
- let lockTime;
59
-
60
- // (legacy) Set lockTime for Komodo to enable reward claiming on UTXOs created by
61
- // Ledger Live. We should only set this if the currency is Komodo and
62
- // lockTime isn't already defined.
63
- if (currency.id === "komodo" && lockTime === undefined) {
64
- const unixtime = Math.floor(Date.now() / 1000);
65
- lockTime = unixtime - 777;
66
- }
67
-
68
- const networkParams = getNetworkParameters(currency.id);
69
- const sigHashType = networkParams.sigHash;
70
- if (isNaN(sigHashType)) {
71
- throw new Error("sigHashType should not be NaN");
72
- }
73
-
74
- const segwit = isSegwitDerivationMode(account.derivationMode);
75
-
76
- // FIXME Call to explorer needed to set timestamp
77
- // cf. https://github.com/LedgerHQ/lib-ledger-core/blob/fc9d762b83fc2b269d072b662065747a64ab2816/core/src/wallet/bitcoin/transaction_builders/BitcoinLikeUtxoPicker.cpp#L150-L154
78
- /*
79
- const hasTimestamp = networkParams.usesTimestampedTransaction;
80
- const initialTimestamp = hasTimestamp
81
- ? transaction.timestamp
82
- : undefined;
83
- */
84
-
85
- const perCoin = perCoinLogic[currency.id];
86
- let additionals = [currency.id];
87
-
88
- if (account.derivationMode === "native_segwit") {
89
- additionals.push("bech32");
90
- }
91
-
92
- if (perCoin?.getAdditionals) {
93
- additionals = additionals.concat(
94
- perCoin.getAdditionals({
95
- transaction,
96
- })
97
- );
98
- }
99
-
100
- const expiryHeight = perCoin?.hasExpiryHeight
101
- ? Buffer.from([0x00, 0x00, 0x00, 0x00])
102
- : undefined;
103
-
104
- const signature = await wallet.signAccountTx({
105
- btc: hwApp,
106
- fromAccount: walletAccount,
107
- txInfo,
108
- lockTime,
109
- sigHashType,
110
- segwit,
111
- //initialTimestamp,
112
- additionals,
113
- expiryHeight,
114
- onDeviceSignatureGranted: () =>
115
- o.next({
116
- type: "device-signature-granted",
117
- }),
118
- onDeviceSignatureRequested: () =>
119
- o.next({
120
- type: "device-signature-requested",
121
- }),
122
- onDeviceStreaming: ({ progress, index, total }) =>
123
- o.next({
124
- type: "device-streaming",
125
- progress,
126
- index,
127
- total,
128
- }),
129
- });
130
- // Build the optimistic operation
131
- const operation: Operation = {
132
- id: encodeOperationId(account.id, "", "OUT"),
133
- hash: "", // Will be resolved in broadcast()
134
- type: "OUT",
135
- value: new BigNumber(transaction.amount).plus(fee),
136
- fee,
137
- blockHash: null,
138
- blockHeight: null,
139
- senders,
140
- recipients,
141
- accountId: account.id,
142
- date: new Date(),
143
- extra: {},
144
- };
145
- o.next({
146
- type: "signed",
147
- signedOperation: {
148
- operation,
149
- signature,
150
- expirationDate: null,
151
- },
152
- });
153
- } finally {
154
- close(transport, deviceId);
155
- }
156
- }
157
-
158
- main().then(
159
- () => o.complete(),
160
- (e) => o.error(e)
161
- );
162
- });
163
-
164
- export default signOperation;