@ledgerhq/live-common 21.8.2 → 21.10.0-btcjs.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/lib/__tests__/currencies.js +1 -0
  2. package/lib/__tests__/currencies.js.map +1 -1
  3. package/lib/__tests__/families/bitcoin/logic.js +7 -7
  4. package/lib/__tests__/families/bitcoin/logic.js.map +1 -1
  5. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js +1 -2
  6. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js.map +1 -1
  7. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js +5 -3
  8. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js.map +1 -1
  9. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js +9 -7
  10. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js.map +1 -1
  11. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.js +2 -1
  12. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.js.map +1 -1
  13. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.js +2 -1
  14. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.js.map +1 -1
  15. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.js +4 -2
  16. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.js.map +1 -1
  17. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.js +2 -1
  18. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.js.map +1 -1
  19. package/lib/account/helpers.d.ts.map +1 -1
  20. package/lib/account/helpers.js +8 -1
  21. package/lib/account/helpers.js.map +1 -1
  22. package/lib/account/pending.d.ts +1 -1
  23. package/lib/account/support.d.ts.map +1 -1
  24. package/lib/account/support.js +2 -1
  25. package/lib/account/support.js.map +1 -1
  26. package/lib/api/explorerConfig/index.d.ts.map +1 -1
  27. package/lib/api/explorerConfig/index.js +0 -36
  28. package/lib/api/explorerConfig/index.js.map +1 -1
  29. package/lib/bridge/jsHelpers.d.ts +2 -1
  30. package/lib/bridge/jsHelpers.d.ts.map +1 -1
  31. package/lib/bridge/jsHelpers.js +56 -43
  32. package/lib/bridge/jsHelpers.js.map +1 -1
  33. package/lib/derivation.d.ts +12 -0
  34. package/lib/derivation.d.ts.map +1 -1
  35. package/lib/derivation.js +32 -4
  36. package/lib/derivation.js.map +1 -1
  37. package/lib/env.d.ts +5 -10
  38. package/lib/env.d.ts.map +1 -1
  39. package/lib/env.js +2 -7
  40. package/lib/env.js.map +1 -1
  41. package/lib/env.react.d.ts +1 -1
  42. package/lib/env.react.d.ts.map +1 -1
  43. package/lib/errors.d.ts +3 -0
  44. package/lib/errors.d.ts.map +1 -1
  45. package/lib/errors.js +2 -1
  46. package/lib/errors.js.map +1 -1
  47. package/lib/exchange/swap/hooks/usePickDefaultAccount.d.ts.map +1 -1
  48. package/lib/exchange/swap/hooks/usePickDefaultAccount.js +48 -26
  49. package/lib/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  50. package/lib/exchange/swap/hooks/usePickDefaultAccount.test.js +20 -37
  51. package/lib/exchange/swap/hooks/usePickDefaultAccount.test.js.map +1 -1
  52. package/lib/families/bitcoin/bridge/libcore.d.ts.map +1 -1
  53. package/lib/families/bitcoin/bridge/libcore.js +8 -1
  54. package/lib/families/bitcoin/bridge/libcore.js.map +1 -1
  55. package/lib/families/bitcoin/bridge/mock.d.ts.map +1 -1
  56. package/lib/families/bitcoin/bridge/mock.js +3 -1
  57. package/lib/families/bitcoin/bridge/mock.js.map +1 -1
  58. package/lib/families/bitcoin/datasets/bitcoin.scanAccounts.1.d.ts.map +1 -1
  59. package/lib/families/bitcoin/datasets/bitcoin.scanAccounts.1.js +1 -1
  60. package/lib/families/bitcoin/datasets/bitcoin.scanAccounts.1.js.map +1 -1
  61. package/lib/families/bitcoin/datasets/bitcoin_cash.d.ts.map +1 -1
  62. package/lib/families/bitcoin/datasets/bitcoin_cash.js +1 -1
  63. package/lib/families/bitcoin/datasets/bitcoin_cash.js.map +1 -1
  64. package/lib/families/bitcoin/datasets/bitcoin_gold.d.ts.map +1 -1
  65. package/lib/families/bitcoin/datasets/bitcoin_gold.js +1 -1
  66. package/lib/families/bitcoin/datasets/bitcoin_gold.js.map +1 -1
  67. package/lib/families/bitcoin/datasets/dash.d.ts.map +1 -1
  68. package/lib/families/bitcoin/datasets/dash.js +1 -1
  69. package/lib/families/bitcoin/datasets/dash.js.map +1 -1
  70. package/lib/families/bitcoin/datasets/decred.d.ts.map +1 -1
  71. package/lib/families/bitcoin/datasets/decred.js +1 -1
  72. package/lib/families/bitcoin/datasets/decred.js.map +1 -1
  73. package/lib/families/bitcoin/datasets/digibyte.scanAccounts.1.d.ts.map +1 -1
  74. package/lib/families/bitcoin/datasets/digibyte.scanAccounts.1.js +1 -1
  75. package/lib/families/bitcoin/datasets/digibyte.scanAccounts.1.js.map +1 -1
  76. package/lib/families/bitcoin/datasets/dogecoin.d.ts.map +1 -1
  77. package/lib/families/bitcoin/datasets/dogecoin.js +1 -1
  78. package/lib/families/bitcoin/datasets/dogecoin.js.map +1 -1
  79. package/lib/families/bitcoin/datasets/komodo.d.ts.map +1 -1
  80. package/lib/families/bitcoin/datasets/komodo.js +1 -1
  81. package/lib/families/bitcoin/datasets/komodo.js.map +1 -1
  82. package/lib/families/bitcoin/datasets/litecoin.scanAccounts.1.d.ts.map +1 -1
  83. package/lib/families/bitcoin/datasets/litecoin.scanAccounts.1.js +1 -1
  84. package/lib/families/bitcoin/datasets/litecoin.scanAccounts.1.js.map +1 -1
  85. package/lib/families/bitcoin/datasets/peercoin.d.ts.map +1 -1
  86. package/lib/families/bitcoin/datasets/peercoin.js +1 -1
  87. package/lib/families/bitcoin/datasets/peercoin.js.map +1 -1
  88. package/lib/families/bitcoin/datasets/pivx.d.ts.map +1 -1
  89. package/lib/families/bitcoin/datasets/pivx.js +1 -1
  90. package/lib/families/bitcoin/datasets/pivx.js.map +1 -1
  91. package/lib/families/bitcoin/datasets/qtum.d.ts.map +1 -1
  92. package/lib/families/bitcoin/datasets/qtum.js +1 -1
  93. package/lib/families/bitcoin/datasets/qtum.js.map +1 -1
  94. package/lib/families/bitcoin/datasets/stakenet.d.ts.map +1 -1
  95. package/lib/families/bitcoin/datasets/stakenet.js +1 -1
  96. package/lib/families/bitcoin/datasets/stakenet.js.map +1 -1
  97. package/lib/families/bitcoin/datasets/vertcoin.d.ts.map +1 -1
  98. package/lib/families/bitcoin/datasets/vertcoin.js +1 -1
  99. package/lib/families/bitcoin/datasets/vertcoin.js.map +1 -1
  100. package/lib/families/bitcoin/datasets/viacoin.d.ts.map +1 -1
  101. package/lib/families/bitcoin/datasets/viacoin.js +1 -1
  102. package/lib/families/bitcoin/datasets/viacoin.js.map +1 -1
  103. package/lib/families/bitcoin/datasets/zcash.d.ts.map +1 -1
  104. package/lib/families/bitcoin/datasets/zcash.js +1 -1
  105. package/lib/families/bitcoin/datasets/zcash.js.map +1 -1
  106. package/lib/families/bitcoin/datasets/zencash.d.ts.map +1 -1
  107. package/lib/families/bitcoin/datasets/zencash.js +1 -1
  108. package/lib/families/bitcoin/datasets/zencash.js.map +1 -1
  109. package/lib/families/bitcoin/exchange.d.ts +1 -1
  110. package/lib/families/bitcoin/exchange.d.ts.map +1 -1
  111. package/lib/families/bitcoin/exchange.js +2 -1
  112. package/lib/families/bitcoin/exchange.js.map +1 -1
  113. package/lib/families/bitcoin/hw-getAddress.d.ts +5 -1
  114. package/lib/families/bitcoin/hw-getAddress.d.ts.map +1 -1
  115. package/lib/families/bitcoin/hw-getAddress.js +34 -18
  116. package/lib/families/bitcoin/hw-getAddress.js.map +1 -1
  117. package/lib/families/bitcoin/js-signOperation.d.ts.map +1 -1
  118. package/lib/families/bitcoin/js-signOperation.js +3 -0
  119. package/lib/families/bitcoin/js-signOperation.js.map +1 -1
  120. package/lib/families/bitcoin/js-synchronisation.d.ts +2 -2
  121. package/lib/families/bitcoin/js-synchronisation.d.ts.map +1 -1
  122. package/lib/families/bitcoin/js-synchronisation.js +24 -16
  123. package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
  124. package/lib/families/bitcoin/logic.d.ts.map +1 -1
  125. package/lib/families/bitcoin/logic.js +4 -2
  126. package/lib/families/bitcoin/logic.js.map +1 -1
  127. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  128. package/lib/families/bitcoin/specs.js +1 -1
  129. package/lib/families/bitcoin/specs.js.map +1 -1
  130. package/lib/families/bitcoin/types.d.ts +3 -0
  131. package/lib/families/bitcoin/types.d.ts.map +1 -1
  132. package/lib/families/bitcoin/types.js +4 -1
  133. package/lib/families/bitcoin/types.js.map +1 -1
  134. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts +1 -2
  135. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
  136. package/lib/families/bitcoin/wallet-btc/crypto/base.js +6 -11
  137. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
  138. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts.map +1 -1
  139. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js.map +1 -1
  140. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts +1 -2
  141. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +1 -1
  142. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +1 -4
  143. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +1 -1
  144. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts +2 -3
  145. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts.map +1 -1
  146. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js +6 -11
  147. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js.map +1 -1
  148. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts +0 -5
  149. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts.map +1 -1
  150. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts +1 -2
  151. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +1 -1
  152. package/lib/families/bitcoin/wallet-btc/crypto/zec.js +1 -4
  153. package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +1 -1
  154. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts +1 -2
  155. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +1 -1
  156. package/lib/families/bitcoin/wallet-btc/crypto/zen.js +1 -4
  157. package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +1 -1
  158. package/lib/families/bitcoin/wallet-btc/explorer/index.d.ts.map +1 -1
  159. package/lib/families/bitcoin/wallet-btc/explorer/index.js.map +1 -1
  160. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.d.ts.map +1 -1
  161. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.js +3 -0
  162. package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.js.map +1 -1
  163. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.d.ts.map +1 -1
  164. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.js +2 -0
  165. package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.js.map +1 -1
  166. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.d.ts.map +1 -1
  167. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.js +2 -0
  168. package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.js.map +1 -1
  169. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts +1 -1
  170. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts.map +1 -1
  171. package/lib/families/bitcoin/wallet-btc/utils.d.ts.map +1 -1
  172. package/lib/families/bitcoin/wallet-btc/utils.js +6 -0
  173. package/lib/families/bitcoin/wallet-btc/utils.js.map +1 -1
  174. package/lib/families/bitcoin/wallet-btc/wallet.d.ts +2 -4
  175. package/lib/families/bitcoin/wallet-btc/wallet.d.ts.map +1 -1
  176. package/lib/families/bitcoin/wallet-btc/wallet.js +24 -75
  177. package/lib/families/bitcoin/wallet-btc/wallet.js.map +1 -1
  178. package/lib/families/bitcoin/wallet-btc/xpub.d.ts +1 -1
  179. package/lib/families/bitcoin/wallet-btc/xpub.d.ts.map +1 -1
  180. package/lib/families/bitcoin/wallet-btc/xpub.js +1 -3
  181. package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
  182. package/lib/families/crypto_org/js-synchronisation.d.ts +2 -2
  183. package/lib/families/elrond/js-synchronisation.d.ts +2 -2
  184. package/lib/families/elrond/js-synchronisation.d.ts.map +1 -1
  185. package/lib/families/elrond/js-synchronisation.js +1 -3
  186. package/lib/families/elrond/js-synchronisation.js.map +1 -1
  187. package/lib/families/elrond/test-dataset.js +4 -4
  188. package/lib/families/elrond/test-dataset.js.map +1 -1
  189. package/lib/families/polkadot/js-synchronisation.d.ts +2 -2
  190. package/lib/families/polkadot/test-dataset.d.ts.map +1 -1
  191. package/lib/families/polkadot/test-dataset.js +606 -604
  192. package/lib/families/polkadot/test-dataset.js.map +1 -1
  193. package/lib/families/stellar/js-synchronization.d.ts +2 -2
  194. package/lib/families/tezos/bakers.whitelist-default.d.ts.map +1 -1
  195. package/lib/families/tezos/bakers.whitelist-default.js +1 -1
  196. package/lib/families/tezos/bakers.whitelist-default.js.map +1 -1
  197. package/lib/families/tron/bridge/js.d.ts.map +1 -1
  198. package/lib/families/tron/bridge/js.js +14 -5
  199. package/lib/families/tron/bridge/js.js.map +1 -1
  200. package/lib/generated/exchange.d.ts +1 -1
  201. package/lib/hw/getAddress/types.d.ts +2 -10
  202. package/lib/hw/getAddress/types.d.ts.map +1 -1
  203. package/lib/libcore/createAccountFromDevice.d.ts +2 -2
  204. package/lib/libcore/createAccountFromDevice.d.ts.map +1 -1
  205. package/lib/libcore/createAccountFromDevice.js +2 -6
  206. package/lib/libcore/createAccountFromDevice.js.map +1 -1
  207. package/lib/libcore/scanAccounts.d.ts +4 -1
  208. package/lib/libcore/scanAccounts.d.ts.map +1 -1
  209. package/lib/libcore/scanAccounts.js +35 -32
  210. package/lib/libcore/scanAccounts.js.map +1 -1
  211. package/lib/network.d.ts.map +1 -1
  212. package/lib/network.js +7 -7
  213. package/lib/network.js.map +1 -1
  214. package/package.json +31 -31
  215. package/src/__tests__/__snapshots__/all.libcore.ts.snap +352 -527
  216. package/src/__tests__/__snapshots__/csvExport.ts.snap +237 -237
  217. package/src/__tests__/__snapshots__/portfolio.ts.snap +12 -12
  218. package/src/__tests__/currencies.ts +1 -0
  219. package/src/__tests__/families/bitcoin/logic.ts +14 -21
  220. package/src/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.ts +1 -2
  221. package/src/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.ts +3 -1
  222. package/src/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.ts +2 -0
  223. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.ts +1 -0
  224. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.ts +1 -0
  225. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.ts +2 -0
  226. package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.litecoin.test.ts +1 -0
  227. package/src/account/helpers.ts +13 -6
  228. package/src/account/support.ts +2 -1
  229. package/src/api/explorerConfig/index.ts +0 -36
  230. package/src/bridge/jsHelpers.ts +28 -8
  231. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +2897 -68
  232. package/src/derivation.ts +33 -2
  233. package/src/env.ts +2 -7
  234. package/src/errors.ts +5 -0
  235. package/src/exchange/swap/hooks/usePickDefaultAccount.test.ts +20 -45
  236. package/src/exchange/swap/hooks/usePickDefaultAccount.ts +23 -35
  237. package/src/families/bitcoin/bridge/libcore.ts +11 -1
  238. package/src/families/bitcoin/bridge/mock.ts +3 -1
  239. package/src/families/bitcoin/datasets/bitcoin.scanAccounts.1.ts +100 -20
  240. package/src/families/bitcoin/datasets/bitcoin_cash.ts +22 -8
  241. package/src/families/bitcoin/datasets/bitcoin_gold.ts +92 -18
  242. package/src/families/bitcoin/datasets/dash.ts +32 -2
  243. package/src/families/bitcoin/datasets/decred.ts +12 -2
  244. package/src/families/bitcoin/datasets/digibyte.scanAccounts.1.ts +84 -18
  245. package/src/families/bitcoin/datasets/dogecoin.ts +32 -2
  246. package/src/families/bitcoin/datasets/komodo.ts +42 -2
  247. package/src/families/bitcoin/datasets/litecoin.scanAccounts.1.ts +83 -19
  248. package/src/families/bitcoin/datasets/peercoin.ts +32 -2
  249. package/src/families/bitcoin/datasets/pivx.ts +33 -3
  250. package/src/families/bitcoin/datasets/qtum.ts +70 -12
  251. package/src/families/bitcoin/datasets/stakenet.ts +20 -4
  252. package/src/families/bitcoin/datasets/vertcoin.ts +86 -20
  253. package/src/families/bitcoin/datasets/viacoin.ts +48 -10
  254. package/src/families/bitcoin/datasets/zcash.ts +12 -2
  255. package/src/families/bitcoin/datasets/zencash.ts +10 -2
  256. package/src/families/bitcoin/exchange.ts +1 -0
  257. package/src/families/bitcoin/hw-getAddress.ts +41 -19
  258. package/src/families/bitcoin/js-signOperation.ts +4 -0
  259. package/src/families/bitcoin/js-synchronisation.ts +32 -22
  260. package/src/families/bitcoin/logic.ts +4 -2
  261. package/src/families/bitcoin/specs.ts +2 -1
  262. package/src/families/bitcoin/types.ts +4 -0
  263. package/src/families/bitcoin/wallet-btc/crypto/base.ts +7 -13
  264. package/src/families/bitcoin/wallet-btc/crypto/bitcoin.ts +1 -5
  265. package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +2 -6
  266. package/src/families/bitcoin/wallet-btc/crypto/litecoin.ts +7 -13
  267. package/src/families/bitcoin/wallet-btc/crypto/types.ts +0 -8
  268. package/src/families/bitcoin/wallet-btc/crypto/zec.ts +3 -6
  269. package/src/families/bitcoin/wallet-btc/crypto/zen.ts +2 -6
  270. package/src/families/bitcoin/wallet-btc/explorer/index.ts +2 -2
  271. package/src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts +3 -1
  272. package/src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts +2 -0
  273. package/src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts +2 -0
  274. package/src/families/bitcoin/wallet-btc/storage/types.ts +1 -1
  275. package/src/families/bitcoin/wallet-btc/utils.ts +6 -1
  276. package/src/families/bitcoin/wallet-btc/wallet.ts +14 -82
  277. package/src/families/bitcoin/wallet-btc/xpub.ts +2 -5
  278. package/src/families/elrond/js-synchronisation.ts +2 -4
  279. package/src/families/elrond/test-dataset.ts +3 -3
  280. package/src/families/polkadot/test-dataset.ts +627 -623
  281. package/src/families/tezos/bakers.whitelist-default.ts +0 -1
  282. package/src/families/tron/bridge/js.ts +18 -6
  283. package/src/hw/getAddress/types.ts +3 -11
  284. package/src/libcore/createAccountFromDevice.ts +4 -5
  285. package/src/libcore/scanAccounts.ts +20 -9
  286. package/src/network.ts +13 -11
  287. package/lib/families/bitcoin/datasets/stratis.d.ts +0 -5
  288. package/lib/families/bitcoin/datasets/stratis.d.ts.map +0 -1
  289. package/lib/families/bitcoin/datasets/stratis.js +0 -12
  290. package/lib/families/bitcoin/datasets/stratis.js.map +0 -1
  291. package/src/families/bitcoin/datasets/stratis.ts +0 -24
package/src/derivation.ts CHANGED
@@ -21,6 +21,8 @@ export type ModeSpec = {
21
21
  overridesDerivation?: string;
22
22
  libcoreConfig?: LibcoreConfig;
23
23
  isSegwit?: boolean;
24
+ isNativeSegwit?: boolean;
25
+ isTaproot?: boolean;
24
26
  // TODO drop
25
27
  isUnsplit?: boolean;
26
28
  // TODO drop
@@ -147,6 +149,13 @@ const modes = Object.freeze({
147
149
  TEZOS_XPUB_CURVE: "ED25519",
148
150
  },
149
151
  },
152
+ taproot: {
153
+ purpose: 86,
154
+ addressFormat: "bech32m",
155
+ tag: "taproot",
156
+ isSegwit: true,
157
+ isTaproot: true,
158
+ },
150
159
  native_segwit: {
151
160
  purpose: 84,
152
161
  libcoreConfig: {
@@ -155,6 +164,7 @@ const modes = Object.freeze({
155
164
  addressFormat: "bech32",
156
165
  tag: "native segwit",
157
166
  isSegwit: true,
167
+ isNativeSegwit: true,
158
168
  },
159
169
  segwit: {
160
170
  isSegwit: true,
@@ -255,6 +265,15 @@ export const isSegwitDerivationMode = (
255
265
  derivationMode: DerivationMode
256
266
  ): boolean =>
257
267
  (modes[derivationMode] as { isSegwit: boolean }).isSegwit || false;
268
+ export const isNativeSegwitDerivationMode = (
269
+ derivationMode: DerivationMode
270
+ ): boolean =>
271
+ (modes[derivationMode] as { isNativeSegwit: boolean }).isNativeSegwit ||
272
+ false;
273
+ export const isTaprootDerivationMode = (
274
+ derivationMode: DerivationMode
275
+ ): boolean =>
276
+ (modes[derivationMode] as { isTaproot: boolean }).isTaproot || false;
258
277
  export const getLibcoreConfig = (
259
278
  currency: CryptoCurrency,
260
279
  derivationMode: DerivationMode
@@ -401,7 +420,7 @@ const disableBIP44 = {
401
420
  const seedIdentifierPath = {
402
421
  neo: ({ purpose, coinType }) => `${purpose}'/${coinType}'/0'/0/0`,
403
422
  filecoin: ({ purpose, coinType }) => `${purpose}'/${coinType}'/0'/0/0`,
404
- _: ({ purpose, coinType }) => `${purpose}'/${coinType}'`,
423
+ _: ({ purpose, coinType }) => `${purpose}'/${coinType}'/0'`,
405
424
  };
406
425
  export const getSeedIdentifierDerivation = (
407
426
  currency: CryptoCurrency,
@@ -449,6 +468,13 @@ export const getDerivationModesForCurrency = (
449
468
  all.push("native_segwit");
450
469
  }
451
470
 
471
+ // taproot logic. FIXME should move per family
472
+ if (currency.family === "bitcoin") {
473
+ if (currency.id === "bitcoin_testnet") {
474
+ all.push("taproot");
475
+ }
476
+ }
477
+
452
478
  if (currency.supportsSegwit) {
453
479
  all.push("segwit");
454
480
  }
@@ -463,7 +489,12 @@ export const getDerivationModesForCurrency = (
463
489
 
464
490
  return all;
465
491
  };
466
- const preferredList = ["native_segwit", "segwit", ""];
492
+ const preferredList: DerivationMode[] = [
493
+ "taproot",
494
+ "native_segwit",
495
+ "segwit",
496
+ "",
497
+ ];
467
498
  // null => no settings
468
499
  // [ .. ]
469
500
  export const getPreferredNewAccountScheme = (
package/src/env.ts CHANGED
@@ -166,9 +166,9 @@ const envDefinitions = {
166
166
  desc: "location of the crypto.org indexer testnet API",
167
167
  },
168
168
  CRYPTO_ORG_RPC_URL: {
169
- def: "",
169
+ def: "https://rpc.mainnet.crypto.org",
170
170
  parser: stringParser,
171
- desc: "location of the crypto.org indexer API",
171
+ desc: "location of the crypto.org chain node",
172
172
  },
173
173
  CRYPTO_ORG_TESTNET_RPC_URL: {
174
174
  def: "https://testnet-croeseid-4.crypto.org:26657",
@@ -516,11 +516,6 @@ const envDefinitions = {
516
516
  parser: intParser,
517
517
  desc: "version used for the platform api",
518
518
  },
519
- DEVELOPMENT_MODE: {
520
- def: false,
521
- parser: boolParser,
522
- desc: "flag to indicate if the app is running on development environment",
523
- },
524
519
  };
525
520
 
526
521
  const getDefinition = (name: string): EnvDef<any> | null | undefined =>
package/src/errors.ts CHANGED
@@ -197,4 +197,9 @@ export const OutdatedApp = createCustomErrorClass("OutdatedApp");
197
197
  export const FreshAddressIndexInvalid = createCustomErrorClass(
198
198
  "FreshAddressIndexInvalid"
199
199
  );
200
+
201
+ export const UnsupportedDerivation = createCustomErrorClass(
202
+ "UnsupportedDerivation"
203
+ );
204
+
200
205
  export * from "./families/polkadot/errors";
@@ -23,8 +23,6 @@ const getAccountCreator = (currencyId: string) => {
23
23
  describe("usePickDefaultAccount", () => {
24
24
  const getEthAccount = getAccountCreator("ethereum");
25
25
  const getBtcAccount = getAccountCreator("bitcoin");
26
- const getPolkadotAccount = getAccountCreator("polkadot");
27
- const getCosmosAccount = getAccountCreator("cosmos");
28
26
  const setFromAccount = jest.fn();
29
27
 
30
28
  beforeEach(() => {
@@ -58,6 +56,7 @@ describe("usePickDefaultAccount", () => {
58
56
 
59
57
  test("returns an ethereum account when it's available", () => {
60
58
  const ethAccount = getEthAccount();
59
+ ethAccount.balance = new BigNumber(1);
61
60
 
62
61
  const accounts: Account[] = [ethAccount, getBtcAccount()];
63
62
 
@@ -69,12 +68,14 @@ describe("usePickDefaultAccount", () => {
69
68
  expect(setFromAccount).toHaveBeenCalledWith(ethAccount);
70
69
  });
71
70
 
72
- test("returns the first ethereum account when all of the enabled accounts have the same balance", () => {
71
+ test("returns the first marketcap account when all of the enabled accounts have the same balance", () => {
73
72
  const ethAccount = getEthAccount();
73
+ const btcAccount = getBtcAccount();
74
+ btcAccount.balance = new BigNumber(1);
74
75
 
75
76
  const accounts: Account[] = [
76
77
  ethAccount,
77
- getBtcAccount(),
78
+ btcAccount,
78
79
  getEthAccount(),
79
80
  { ...getEthAccount(), disabled: true },
80
81
  ];
@@ -84,21 +85,30 @@ describe("usePickDefaultAccount", () => {
84
85
  );
85
86
 
86
87
  expect(setFromAccount).toHaveBeenCalledTimes(1);
87
- expect(setFromAccount).toHaveBeenCalledWith(ethAccount);
88
+ expect(setFromAccount).toHaveBeenCalledWith(btcAccount);
88
89
  });
89
90
 
90
91
  test("returns the ethereum enabled account with the highest balance", () => {
91
92
  const ethAccount = getEthAccount();
92
93
  const ethAccount2 = getEthAccount();
94
+ const ethAccount3 = getEthAccount();
95
+ const ethAccount4 = getEthAccount();
96
+ const ethAccount5 = getEthAccount();
93
97
 
94
- ethAccount.amount = new BigNumber(1000);
95
- ethAccount2.amount = new BigNumber(0);
98
+ ethAccount.balance = new BigNumber(0.2);
99
+ ethAccount2.balance = new BigNumber(0);
100
+ ethAccount3.balance = new BigNumber(0.001);
101
+ ethAccount4.balance = new BigNumber(0.0001);
102
+ ethAccount5.balance = new BigNumber(0.0006);
96
103
 
97
104
  const accounts: Account[] = [
98
105
  { ...getEthAccount(), disabled: true },
99
106
  ethAccount,
100
107
  getBtcAccount(),
101
108
  ethAccount2,
109
+ ethAccount3,
110
+ ethAccount4,
111
+ ethAccount5,
102
112
  ];
103
113
 
104
114
  renderHook(() =>
@@ -109,29 +119,12 @@ describe("usePickDefaultAccount", () => {
109
119
  expect(setFromAccount).toHaveBeenCalledWith(ethAccount);
110
120
  });
111
121
 
112
- test("returns the first bitcoin account when no ethereum accounts are passed/enabled and all btc accounts have the same balance", () => {
113
- const BtcAccount = getBtcAccount();
114
-
115
- const accounts: Account[] = [
116
- { ...getEthAccount(), disabled: true },
117
- BtcAccount,
118
- getBtcAccount(),
119
- ];
120
-
121
- renderHook(() =>
122
- usePickDefaultAccount(accounts, undefined, setFromAccount)
123
- );
124
-
125
- expect(setFromAccount).toHaveBeenCalledTimes(1);
126
- expect(setFromAccount).toHaveBeenCalledWith(BtcAccount);
127
- });
128
-
129
- test("returns the bitcoin enabled account with the highest balance when no ETH accounts are passed", () => {
122
+ test("returns the highest bitcoin account when no ethereum accounts are passed/enabled and all btc accounts have the same balance", () => {
130
123
  const btcAccount = getBtcAccount();
131
124
  const btcAccount2 = getBtcAccount();
132
125
 
133
- btcAccount.amount = new BigNumber(1000);
134
- btcAccount2.amount = new BigNumber(0);
126
+ btcAccount.balance = new BigNumber(0.2);
127
+ btcAccount2.balance = new BigNumber(0.001);
135
128
 
136
129
  const accounts: Account[] = [
137
130
  { ...getEthAccount(), disabled: true },
@@ -146,22 +139,4 @@ describe("usePickDefaultAccount", () => {
146
139
  expect(setFromAccount).toHaveBeenCalledTimes(1);
147
140
  expect(setFromAccount).toHaveBeenCalledWith(btcAccount);
148
141
  });
149
-
150
- test("returns the first enabled account when no ethereum/bitcoin accounts are passed", () => {
151
- const dotAccount = getPolkadotAccount();
152
-
153
- const accounts: Account[] = [
154
- { ...getCosmosAccount(), disabled: true },
155
- dotAccount,
156
- getPolkadotAccount(),
157
- getCosmosAccount(),
158
- ];
159
-
160
- renderHook(() =>
161
- usePickDefaultAccount(accounts, undefined, setFromAccount)
162
- );
163
-
164
- expect(setFromAccount).toHaveBeenCalledTimes(1);
165
- expect(setFromAccount).toHaveBeenCalledWith(dotAccount);
166
- });
167
142
  });
@@ -1,5 +1,8 @@
1
1
  import { useEffect } from "react";
2
2
  import { Account, TokenAccount } from "../../../types";
3
+ import { useCurrenciesByMarketcap } from "../../../currencies/sortByMarketcap";
4
+ import { listCryptoCurrencies, listTokens } from "../../../currencies";
5
+ import { getAccountCurrency } from "../../../account";
3
6
 
4
7
  // Pick a default source account if none are selected.
5
8
  export const usePickDefaultAccount = (
@@ -7,41 +10,26 @@ export const usePickDefaultAccount = (
7
10
  fromAccount: Account | TokenAccount | null | undefined,
8
11
  setFromAccount: (account: Account | TokenAccount) => void
9
12
  ): void => {
13
+ const list = [...listCryptoCurrencies(), ...listTokens()];
14
+ const allCurrencies = useCurrenciesByMarketcap(list);
15
+
10
16
  useEffect(() => {
11
- if (!fromAccount) {
12
- const possibleDefaults = accounts.reduce<
13
- [
14
- Account | TokenAccount | undefined | null,
15
- Account | TokenAccount | undefined | null,
16
- Account | TokenAccount | undefined | null
17
- ]
18
- >(
19
- (acc, account) => {
20
- if (account.disabled) return acc;
21
- if (
22
- // eventually needs a type guard because the "currency" property does not exist in TokenAccount
23
- account["currency"]?.id === "ethereum" &&
24
- (acc[0]?.balance ?? -1) < account.balance
25
- ) {
26
- acc[0] = account;
27
- }
28
- if (
29
- // eventually needs a type guard because the "currency" property does not exist in TokenAccount
30
- account["currency"]?.id === "bitcoin" &&
31
- (acc[1]?.balance ?? -1) < account.balance
32
- ) {
33
- acc[1] = account;
34
- }
35
- const maxFundsAccount = acc[2];
36
- if (!maxFundsAccount || maxFundsAccount.balance < account.balance) {
37
- acc[2] = account;
38
- }
39
- return acc;
40
- },
41
- [null, null, null]
42
- );
43
- const defaultAccount = possibleDefaults.find(Boolean);
44
- defaultAccount && setFromAccount(defaultAccount);
17
+ if (!fromAccount && allCurrencies.length > 0) {
18
+ const defaultAccount: Account | TokenAccount | undefined = allCurrencies
19
+ .map(({ id }) =>
20
+ accounts
21
+ .filter(
22
+ (acc) =>
23
+ getAccountCurrency(acc)?.id === id &&
24
+ acc.balance.gt(0) &&
25
+ !acc.disabled
26
+ )
27
+ .sort((a, b) => b.balance.minus(a.balance).toNumber())
28
+ )
29
+ .flat(1)
30
+ .find(Boolean);
31
+
32
+ if (defaultAccount) setFromAccount(defaultAccount);
45
33
  }
46
- }, [accounts, fromAccount, setFromAccount]);
34
+ }, [accounts, allCurrencies, fromAccount, setFromAccount]);
47
35
  };
@@ -27,6 +27,9 @@ import { isChangeOutput, perCoinLogic } from "../transaction";
27
27
  import { makeAccountBridgeReceive } from "../../../bridge/jsHelpers";
28
28
  import { requiresSatStackReady } from "../satstack";
29
29
  import * as explorerConfigAPI from "../../../api/explorerConfig";
30
+ import Btc from "@ledgerhq/hw-app-btc/lib/BtcOld"; // use old implementation of Btc for libcore
31
+ import { getAddressWithBtcInstance } from "../hw-getAddress";
32
+
30
33
  const receive = makeAccountBridgeReceive({
31
34
  injectGetAddressParams: (account) => {
32
35
  const perCoin = perCoinLogic[account.currency.id];
@@ -260,7 +263,14 @@ const hydrate = (maybeConfig: any) => {
260
263
  };
261
264
 
262
265
  const currencyBridge: CurrencyBridge = {
263
- scanAccounts,
266
+ scanAccounts: (arg) =>
267
+ scanAccounts({
268
+ ...arg,
269
+ getAddressFn: (transport) => {
270
+ const btc = new Btc(transport);
271
+ return (opts) => getAddressWithBtcInstance(transport, btc, opts);
272
+ },
273
+ }),
264
274
  preload,
265
275
  hydrate,
266
276
  };
@@ -74,7 +74,9 @@ const getTransactionStatus = (account, t) => {
74
74
  if (!t.recipient) {
75
75
  errors.recipient = new RecipientRequired("");
76
76
  } else if (isInvalidRecipient(t.recipient)) {
77
- errors.recipient = new InvalidAddress("");
77
+ errors.recipient = new InvalidAddress("", {
78
+ currencyName: account.currency.name,
79
+ });
78
80
  }
79
81
 
80
82
  return Promise.resolve({
@@ -1,38 +1,118 @@
1
1
  export default {
2
2
  name: "bitcoin seed 1",
3
3
  apdus: `
4
- => e040000209028000005480000000
5
- <= 41043188c7e9e184aa3f6c2967b9b2b19a5966efe88c526ac091687642540573ecfb4c988261e7b0b876c6aec0b393518676232b34289a5bfc0cc78cc2ef735fa5122a626331713636353767686b3368306e75786b717466716a6c383637637771796a6e63777677346c66386ccdddd55f0385b0a53a4803e47f24df989a42b4e3b0b1dda17c41f4381e5301cb9000
6
- => e016000000
7
- <= 000000050107426974636f696e034254439000
8
- => e040000209028000005480000000
9
- <= 41043188c7e9e184aa3f6c2967b9b2b19a5966efe88c526ac091687642540573ecfb4c988261e7b0b876c6aec0b393518676232b34289a5bfc0cc78cc2ef735fa5122a626331713636353767686b3368306e75786b717466716a6c383637637771796a6e63777677346c66386ccdddd55f0385b0a53a4803e47f24df989a42b4e3b0b1dda17c41f4381e5301cb9000
4
+ => b001000000
5
+ <= 0107426974636f696e05312e362e339000
10
6
  => e04000020d03800000548000000080000000
11
7
  <= 4104985c77e031db7909b5bab541828faac7719bc3ac205907da16f379e693eb012217195cbb49c53854d1bfec204470abc73ab4fb51338653e5236c6a6ae57d34422a62633171723561783039386b6a73706a396c3737797a3234746e3733737878776d736367617479756533529d8a9f14d7c1b543bd6f288f167b3232e03fec8fe88746d74e958d1a101a489000
12
- => e04000020d03800000548000000080000001
13
- <= 4104495e8f35895184aca665882cbee1a0489c9f51aad1c981aabe6ce0684a953627f61b07f3fb79f8cd5da4a85149597dfacbd60836644300cb99a4257e21ff99bb2a62633171716c6e663567746171673070396836636376376e38677675787376786a65717332643576366ad71e3caf8b6840c9edfd48fecafd31fde2da5060edd6ce8b8c124841185896459000
14
- => e04000020d03800000548000000080000002
15
- <= 410418a42e7aa6f1ff07f1c284e5ef02b2b2df576856d8f5bd22454bb148a196b45cc35fddaa46229176f826557ff3db22b5149a258f8659ee2e9dfd9458dd0cbae92a626331716c766135707232707066386468367a6534756d6b70336d76766373376d376b7a7273636d7a61d525ad3db9e29a775891489f09a304d80f3cd1716dc47959645936ed075759f69000
16
- => e040000109028000003180000000
17
- <= 41047615032ad01c87f38c5401a6765aee429eb5a57ccde63573fdfe602b4de7c7ac109d1f23fbdd847c483bd147ff8218f15858f16824ecff4ca3fcb4245e2d93f52233334c79656578314a5165624779525a36586e77686e4738334b4255787a793668343de97255695c6fbec7459a688b0fddef585e98fae29c96655c3ff648131ca1c39000
18
8
  => e016000000
19
9
  <= 000000050107426974636f696e034254439000
20
- => e040000109028000003180000000
21
- <= 41047615032ad01c87f38c5401a6765aee429eb5a57ccde63573fdfe602b4de7c7ac109d1f23fbdd847c483bd147ff8218f15858f16824ecff4ca3fcb4245e2d93f52233334c79656578314a5165624779525a36586e77686e4738334b4255787a793668343de97255695c6fbec7459a688b0fddef585e98fae29c96655c3ff648131ca1c39000
10
+ => b001000000
11
+ <= 0107426974636f696e05312e362e339000
12
+ => e040000215058000005480000000800000000000000000000000
13
+ <= 4104f34d70ff0170a98c88a280b74f245ecebef5345fa803ea878e40616216f0d6085156ea2ccced9af2e7a86fa1f38df98b1a57f13d7e38dd13cbbe5f919bf2a4ac2a62633171396d3032797639633533656e786b3234376c786b676a3564676e36686d323766307263333470152d442fde298bcad0d5978d8e70f75a2609881140a8f8c5fe5bb31f2ea765b69000
14
+ => e016000000
15
+ <= 000000050107426974636f696e034254439000
16
+ => b001000000
17
+ <= 0107426974636f696e05312e362e339000
18
+ => e040000009028000005480000000
19
+ <= 41043188c7e9e184aa3f6c2967b9b2b19a5966efe88c526ac091687642540573ecfb4c988261e7b0b876c6aec0b393518676232b34289a5bfc0cc78cc2ef735fa51222314c6133384d7350333634413238583654515577456a486f43413565646947577879cdddd55f0385b0a53a4803e47f24df989a42b4e3b0b1dda17c41f4381e5301cb9000
20
+ => e04000000d03800000548000000080000000
21
+ <= 4104985c77e031db7909b5bab541828faac7719bc3ac205907da16f379e693eb012217195cbb49c53854d1bfec204470abc73ab4fb51338653e5236c6a6ae57d344222313366595a6233657639474666774e41347a4e3137587a6153555537465451523864529d8a9f14d7c1b543bd6f288f167b3232e03fec8fe88746d74e958d1a101a489000
22
+ => b001000000
23
+ <= 0107426974636f696e05312e362e339000
24
+ => e040000215058000005480000000800000010000000000000000
25
+ <= 4104cdffca8ab22d1b55b5183486d3b89ffba5f296f6cf3fa15c1ae4c83abef5e505e5eedb82c39fbc1a43dd0e8b022077d574f5661805b91a974813bf2c9792e8682a62633171646c36306c357a78356e6870347977717663676b376e766a3737376570786d6c3567373935726228dc712a3c5f334b5d2aac3d3e285d083d9b628339f55d000ecaf8d8fa7ddf9000
26
+ => e016000000
27
+ <= 000000050107426974636f696e034254439000
28
+ => b001000000
29
+ <= 0107426974636f696e05312e362e339000
30
+ => e040000009028000005480000000
31
+ <= 41043188c7e9e184aa3f6c2967b9b2b19a5966efe88c526ac091687642540573ecfb4c988261e7b0b876c6aec0b393518676232b34289a5bfc0cc78cc2ef735fa51222314c6133384d7350333634413238583654515577456a486f43413565646947577879cdddd55f0385b0a53a4803e47f24df989a42b4e3b0b1dda17c41f4381e5301cb9000
32
+ => e04000000d03800000548000000080000001
33
+ <= 4104495e8f35895184aca665882cbee1a0489c9f51aad1c981aabe6ce0684a953627f61b07f3fb79f8cd5da4a85149597dfacbd60836644300cb99a4257e21ff99bb2131696d7972647057535a4b6a527066673776334c3972697454787a755a345a5645d71e3caf8b6840c9edfd48fecafd31fde2da5060edd6ce8b8c124841185896459000
34
+ => b001000000
35
+ <= 0107426974636f696e05312e362e339000
36
+ => e040000215058000005480000000800000020000000000000000
37
+ <= 410401d3c28831e2a9bd2608fd83ad3659c704f23a28e34fb0c7374dc5d195f3ae8ded7a5403c0a508dea81ddd0734df429ce1f3931478ce7adff9d6d457cc6630112a626331716e71793776797030646637746c39306d777a396a7763613636743668656634796a39686c366e963f40a6ee621cae743458bb522064fe2d20b6eb8b2189eb3b945988684987d69000
38
+ => e016000000
39
+ <= 000000050107426974636f696e034254439000
40
+ => b001000000
41
+ <= 0107426974636f696e05312e362e339000
42
+ => e040000009028000005480000000
43
+ <= 41043188c7e9e184aa3f6c2967b9b2b19a5966efe88c526ac091687642540573ecfb4c988261e7b0b876c6aec0b393518676232b34289a5bfc0cc78cc2ef735fa51222314c6133384d7350333634413238583654515577456a486f43413565646947577879cdddd55f0385b0a53a4803e47f24df989a42b4e3b0b1dda17c41f4381e5301cb9000
44
+ => e04000000d03800000548000000080000002
45
+ <= 410418a42e7aa6f1ff07f1c284e5ef02b2b2df576856d8f5bd22454bb148a196b45cc35fddaa46229176f826557ff3db22b5149a258f8659ee2e9dfd9458dd0cbae9223150755062345a52776e346832756d65453850647453426f7350614659625a546256d525ad3db9e29a775891489f09a304d80f3cd1716dc47959645936ed075759f69000
46
+ => b001000000
47
+ <= 0107426974636f696e05312e362e339000
22
48
  => e04000010d03800000318000000080000000
23
49
  <= 410412f62e549eee10ea7df9c9b1acfa6d77abb7424c057d7d725f418e2124dcd8662e21fde9e0b5a4cb731933a68ca406f6efcdadc8fb52afdb9ae422a68cfe5bde2233483737566559675a584b4e4d6b426668653766634d416d334b376b794a67334734508666b8006f31778f6dbb06bdbf20088d9a84ea15776cf6073b3ea025d48d9e9000
24
- => e04000010d03800000318000000080000001
25
- <= 4104ade4dbcec2e6dafc664eb9337f784f01eb64087e19cbbf1068b6bcc535b5f1fab6094958d8f2b18c1f922d31b4a63d1f595689e2f2b3725bd6876c61a5488673223350684b454372414d32424c66595770505a7255485343694346395054526d66616b7adba784bff55fb0b1ae8b5ab1d1aba2883613db2f674ef00bc8df2bd7c4358e9000
26
- => e04000010d03800000318000000080000002
27
- <= 4104aab62ffcffe3bf9864b426d6f49b6bcd007f10f96f4be8fb28cd3a0ad4e6aded8a09965deca458a18a9d2151f2761844af9e473e3b4873670f097e470d73d72722333374654447684a7470793439707479763747635657347838437041344269706656881f8ad639081fb27a0db564011cf8a568a73ea1ac75b69e3e47ad6316165cfc9000
28
- => e040000009028000002c80000000
29
- <= 41041caa3a42db5bdd125b2530c47cfbe829539b5a20a5562ec839d241c67d1862f2980d26ebffee25e4f924410c3316b397f34bd572543e72c59a7569ef9032f498223134384c484667516b6f504b48554665567a464e6d556a4b54375a774234376654529f819c7d45eb9eb1e9bd5fa695158cca9e493182f95068b22c8c440ae6eb07209000
30
50
  => e016000000
31
51
  <= 000000050107426974636f696e034254439000
52
+ => b001000000
53
+ <= 0107426974636f696e05312e362e339000
54
+ => e040000115058000003180000000800000000000000000000000
55
+ <= 41047bbdf06d7ebe1c4ff1ecd1753d35efa1b40902420368eb044ddfa95afbd25a34252b47cdb893c74ce2244e4c219c02a9d5d5a56dce4637219d5bb4cb1aeb06542233357862464c5a33526e7a59456d6154343156344435735965644e585a624e505033099bf9adc7a0fe78c36483f07f24f45165cbf7af010df3e60696a1bb57d44ad99000
56
+ => e016000000
57
+ <= 000000050107426974636f696e034254439000
58
+ => b001000000
59
+ <= 0107426974636f696e05312e362e339000
60
+ => e040000009028000003180000000
61
+ <= 41047615032ad01c87f38c5401a6765aee429eb5a57ccde63573fdfe602b4de7c7ac109d1f23fbdd847c483bd147ff8218f15858f16824ecff4ca3fcb4245e2d93f52231394a5643704855564b443534656278384464534636745869786d55474b795672503de97255695c6fbec7459a688b0fddef585e98fae29c96655c3ff648131ca1c39000
62
+ => e04000000d03800000318000000080000000
63
+ <= 410412f62e549eee10ea7df9c9b1acfa6d77abb7424c057d7d725f418e2124dcd8662e21fde9e0b5a4cb731933a68ca406f6efcdadc8fb52afdb9ae422a68cfe5bde2231426f5759593371614e4e3333465a6874797431663262597a336e515a4c36774865508666b8006f31778f6dbb06bdbf20088d9a84ea15776cf6073b3ea025d48d9e9000
64
+ => b001000000
65
+ <= 0107426974636f696e05312e362e339000
66
+ => e040000115058000003180000000800000010000000000000000
67
+ <= 410414a9a71422feed38916906d44995156a96fcbfba3f5fdf4a0ae395483cd542b23bc6926bf6898744291e4e6a4a090ccfbc2e1e15226e536b415bc97fcf4a47a1223338367568366163364546547832356d46725476734e375a42367434415662617766158caaca88348b036aacecc313a3b89f0ce3524f4a590b1d69d757739c5756d99000
68
+ => e016000000
69
+ <= 000000050107426974636f696e034254439000
70
+ => b001000000
71
+ <= 0107426974636f696e05312e362e339000
72
+ => e040000009028000003180000000
73
+ <= 41047615032ad01c87f38c5401a6765aee429eb5a57ccde63573fdfe602b4de7c7ac109d1f23fbdd847c483bd147ff8218f15858f16824ecff4ca3fcb4245e2d93f52231394a5643704855564b443534656278384464534636745869786d55474b795672503de97255695c6fbec7459a688b0fddef585e98fae29c96655c3ff648131ca1c39000
74
+ => e04000000d03800000318000000080000001
75
+ <= 4104ade4dbcec2e6dafc664eb9337f784f01eb64087e19cbbf1068b6bcc535b5f1fab6094958d8f2b18c1f922d31b4a63d1f595689e2f2b3725bd6876c61a548867322314d56486773316a39465342467038314e4546317255627570327161395a597a4b677adba784bff55fb0b1ae8b5ab1d1aba2883613db2f674ef00bc8df2bd7c4358e9000
76
+ => b001000000
77
+ <= 0107426974636f696e05312e362e339000
78
+ => e040000115058000003180000000800000020000000000000000
79
+ <= 4104a1d62e06dadaad2f84eb630190cbd54149eeae23ab86eedc93c12635db693b4d92242f3b6e25af837fc74abdb2a1e2056e578e9b22566ee431b5691c3b2d21a4223344556b323762784a6d33793774786f50544b344747425763796f5736696247756819fcc38c0fbbdfd95d6aaf10817b89acce67fbd2a99260a2371325ae4f3442d69000
80
+ => e016000000
81
+ <= 000000050107426974636f696e034254439000
82
+ => b001000000
83
+ <= 0107426974636f696e05312e362e339000
84
+ => e040000009028000003180000000
85
+ <= 41047615032ad01c87f38c5401a6765aee429eb5a57ccde63573fdfe602b4de7c7ac109d1f23fbdd847c483bd147ff8218f15858f16824ecff4ca3fcb4245e2d93f52231394a5643704855564b443534656278384464534636745869786d55474b795672503de97255695c6fbec7459a688b0fddef585e98fae29c96655c3ff648131ca1c39000
86
+ => e04000000d03800000318000000080000002
87
+ <= 4104aab62ffcffe3bf9864b426d6f49b6bcd007f10f96f4be8fb28cd3a0ad4e6aded8a09965deca458a18a9d2151f2761844af9e473e3b4873670f097e470d73d7272231347043487050726477663248735a61654a3846514a594556576f32534836334c54881f8ad639081fb27a0db564011cf8a568a73ea1ac75b69e3e47ad6316165cfc9000
88
+ => b001000000
89
+ <= 0107426974636f696e05312e362e339000
90
+ => e04000000d038000002c8000000080000000
91
+ <= 4104238878d371ce61cdd04d22ccab50c542e94ffa7a27d02d6bcefaa22e4fcee6db4c2029fd4de0b595e98002c0be01fc1fbd3568671e394c97a6d52c3d4c113fb52231356f36754274527a4b6f6a6278714265344b6e69363642537658664b595432475944728146118df8d18d38c2615154eaffcdd53829957f4e26863344f35653364e9000
92
+ => e016000000
93
+ <= 000000050107426974636f696e034254439000
94
+ => b001000000
95
+ <= 0107426974636f696e05312e362e339000
96
+ => e040000015058000002c80000000800000000000000000000000
97
+ <= 4104d463d563713c66be566e6d2f585b479198a6f7fb2af09430b1c1852bdfa590a9b74612948b1d707eeb5eee8122061dfb10c7c1572b4d6df09ad1889b78df90a52231346b504d6a4d52377a626939733862544d5075465544347a41374146697658726e4154dabd83c6caa2af3b92f4195c207b47e39f5d2106ddf4b54fd010d09e9ff19000
98
+ => e016000000
99
+ <= 000000050107426974636f696e034254439000
100
+ => b001000000
101
+ <= 0107426974636f696e05312e362e339000
32
102
  => e040000009028000002c80000000
33
103
  <= 41041caa3a42db5bdd125b2530c47cfbe829539b5a20a5562ec839d241c67d1862f2980d26ebffee25e4f924410c3316b397f34bd572543e72c59a7569ef9032f498223134384c484667516b6f504b48554665567a464e6d556a4b54375a774234376654529f819c7d45eb9eb1e9bd5fa695158cca9e493182f95068b22c8c440ae6eb07209000
34
104
  => e04000000d038000002c8000000080000000
35
105
  <= 4104238878d371ce61cdd04d22ccab50c542e94ffa7a27d02d6bcefaa22e4fcee6db4c2029fd4de0b595e98002c0be01fc1fbd3568671e394c97a6d52c3d4c113fb52231356f36754274527a4b6f6a6278714265344b6e69363642537658664b595432475944728146118df8d18d38c2615154eaffcdd53829957f4e26863344f35653364e9000
106
+ => b001000000
107
+ <= 0107426974636f696e05312e362e339000
108
+ => e040000015058000002c80000000800000010000000000000000
109
+ <= 41043aeac45ab674f0b417948286a9ea28f2f00c46200788b6a74ec13208285f743e75b8063195a2f8c2090260c9fd98f9ec4a6b7cc2b1ce27f450a445b48c0334f822314a65706a5250677a755634687942545a786674425971624161584d7967434d5256a61d355c0b561e91ba3589812f1d1801276e5fcfee7e01052d5b637c51bb02299000
110
+ => e016000000
111
+ <= 000000050107426974636f696e034254439000
112
+ => b001000000
113
+ <= 0107426974636f696e05312e362e339000
114
+ => e040000009028000002c80000000
115
+ <= 41041caa3a42db5bdd125b2530c47cfbe829539b5a20a5562ec839d241c67d1862f2980d26ebffee25e4f924410c3316b397f34bd572543e72c59a7569ef9032f498223134384c484667516b6f504b48554665567a464e6d556a4b54375a774234376654529f819c7d45eb9eb1e9bd5fa695158cca9e493182f95068b22c8c440ae6eb07209000
36
116
  => e04000000d038000002c8000000080000001
37
117
  <= 410415d2ae6368394c10962a92ab7b680e272f27c4951e2960ce11fe6d30ed9ca87dbbb1e0231da0caf45e2c7040adcb55b04eff0335ede12ca79600722846f0dc89223132675842717446627353316d566643637979436e35424d7566744d56736e334e4269c51a44ff9a3b3f2d041491ef614064b0193142057576c147763fe9493343879000
38
118
  `,
@@ -5,26 +5,40 @@ const dataset: CurrenciesData<Transaction> = {
5
5
  {
6
6
  name: "bitcoin_cash seed 1",
7
7
  apdus: `
8
- => e040000009028000002c80000000
9
- <= 41041caa3a42db5bdd125b2530c47cfbe829539b5a20a5562ec839d241c67d1862f2980d26ebffee25e4f924410c3316b397f34bd572543e72c59a7569ef9032f498223134384c484667516b6f504b48554665567a464e6d556a4b54375a774234376654529f819c7d45eb9eb1e9bd5fa695158cca9e493182f95068b22c8c440ae6eb07209000
8
+ => b001000000
9
+ <= 010c426974636f696e204361736805312e362e339000
10
+ => e04000000d038000002c8000000080000000
11
+ <= 4104238878d371ce61cdd04d22ccab50c542e94ffa7a27d02d6bcefaa22e4fcee6db4c2029fd4de0b595e98002c0be01fc1fbd3568671e394c97a6d52c3d4c113fb52231356f36754274527a4b6f6a6278714265344b6e69363642537658664b595432475944728146118df8d18d38c2615154eaffcdd53829957f4e26863344f35653364e9000
12
+ => e016000000
13
+ <= 000000050107426974636f696e034243489000
14
+ => b001000000
15
+ <= 010c426974636f696e204361736805312e362e339000
16
+ => e040000015058000002c80000000800000000000000000000000
17
+ <= 4104d463d563713c66be566e6d2f585b479198a6f7fb2af09430b1c1852bdfa590a9b74612948b1d707eeb5eee8122061dfb10c7c1572b4d6df09ad1889b78df90a52231346b504d6a4d52377a626939733862544d5075465544347a41374146697658726e4154dabd83c6caa2af3b92f4195c207b47e39f5d2106ddf4b54fd010d09e9ff19000
10
18
  => e016000000
11
19
  <= 000000050107426974636f696e034243489000
20
+ => b001000000
21
+ <= 010c426974636f696e204361736805312e362e339000
12
22
  => e040000009028000002c80000000
13
23
  <= 41041caa3a42db5bdd125b2530c47cfbe829539b5a20a5562ec839d241c67d1862f2980d26ebffee25e4f924410c3316b397f34bd572543e72c59a7569ef9032f498223134384c484667516b6f504b48554665567a464e6d556a4b54375a774234376654529f819c7d45eb9eb1e9bd5fa695158cca9e493182f95068b22c8c440ae6eb07209000
14
24
  => e04000000d038000002c8000000080000000
15
25
  <= 4104238878d371ce61cdd04d22ccab50c542e94ffa7a27d02d6bcefaa22e4fcee6db4c2029fd4de0b595e98002c0be01fc1fbd3568671e394c97a6d52c3d4c113fb52231356f36754274527a4b6f6a6278714265344b6e69363642537658664b595432475944728146118df8d18d38c2615154eaffcdd53829957f4e26863344f35653364e9000
16
- => e04000000d038000002c8000000080000001
17
- <= 410415d2ae6368394c10962a92ab7b680e272f27c4951e2960ce11fe6d30ed9ca87dbbb1e0231da0caf45e2c7040adcb55b04eff0335ede12ca79600722846f0dc89223132675842717446627353316d566643637979436e35424d7566744d56736e334e4269c51a44ff9a3b3f2d041491ef614064b0193142057576c147763fe9493343879000
18
- => e040000009028000002c80000091
19
- <= 41047b04bdbe4b654021e82a95b17aed3e9129d21827b0552bca5b08dce6ac7d15fff881a6f97d5d212c8dcb3c8a65fbbc6734dce70f69ed16d0f217cc4dac7cc53222314b42784d536454394476454642705956365a743937336d4c6a684771446a37774ba763e43eff53a31968bef4922d2462906955244e956508ae895cd9228a4c53f39000
26
+ => e04000000d038000002c8000009180000000
27
+ <= 4104884ed3fe628a8487f782f97f38e7a9f014e624f1ea679951cf3a67445ea33fb334f4cc19e6c421b3ef9943d526cd4fbfebacebe8a62cc45db79a33d3ab04bd4722314b564d33624246475251664659344e6b4769696b716b445062506d7047314d486a5c6524c5cc298394c8673fdad5895d669d84200e18c5bcbc31613cec11b931229000
28
+ => e016000000
29
+ <= 000000050107426974636f696e034243489000
30
+ => b001000000
31
+ <= 010c426974636f696e204361736805312e362e339000
32
+ => e040000015058000002c80000091800000000000000000000000
33
+ <= 4104cf54eb0e7d6309a4964b8a615007dabe1492963d4206ad449199c93ee6feb055aad537a51a1fc2a5acae0707fd4db7a055e78ead84210da0ccdb3344d002782922314c5a72753355436844586b773461597a6e356446646a764e44724b70334d746941d7d369ffa78f148de05b782e4752a3e0961750e22c78d24b61f384e727b85a639000
20
34
  => e016000000
21
35
  <= 000000050107426974636f696e034243489000
36
+ => b001000000
37
+ <= 010c426974636f696e204361736805312e362e339000
22
38
  => e040000009028000002c80000091
23
39
  <= 41047b04bdbe4b654021e82a95b17aed3e9129d21827b0552bca5b08dce6ac7d15fff881a6f97d5d212c8dcb3c8a65fbbc6734dce70f69ed16d0f217cc4dac7cc53222314b42784d536454394476454642705956365a743937336d4c6a684771446a37774ba763e43eff53a31968bef4922d2462906955244e956508ae895cd9228a4c53f39000
24
40
  => e04000000d038000002c8000009180000000
25
41
  <= 4104884ed3fe628a8487f782f97f38e7a9f014e624f1ea679951cf3a67445ea33fb334f4cc19e6c421b3ef9943d526cd4fbfebacebe8a62cc45db79a33d3ab04bd4722314b564d33624246475251664659344e6b4769696b716b445062506d7047314d486a5c6524c5cc298394c8673fdad5895d669d84200e18c5bcbc31613cec11b931229000
26
- => e04000000d038000002c8000009180000001
27
- <= 4104a4c96afa042367cf1b7d70e2337cfb4a5d10633ad6ede7c2864cfb3546753a4ef9e27c055372a6fa17864aad803944492b3df81b8778658852054c4f7da01831223135595672555671736f626e5067797853634a6e55654d325a476d58696a744d764a7e30af32a41b1e03d1d54b1cdf6452734bb7cd58c2dbb7a978be42e06df1bf289000
28
42
  `,
29
43
  },
30
44
  ],