@ledgerhq/live-common 23.1.0 → 24.0.0-next.0

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 (341) hide show
  1. package/lib/__tests__/mocks/account.js +3 -3
  2. package/lib/__tests__/mocks/account.js.map +1 -1
  3. package/lib/__tests__/test-helpers/bridge.d.ts +1 -4
  4. package/lib/__tests__/test-helpers/bridge.d.ts.map +1 -1
  5. package/lib/__tests__/test-helpers/bridge.js +1 -28
  6. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  7. package/lib/__tests__/test-helpers/setup.js +51 -0
  8. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  9. package/lib/api/Ripple.d.ts.map +1 -1
  10. package/lib/api/Ripple.js +113 -68
  11. package/lib/api/Ripple.js.map +1 -1
  12. package/lib/apps/support.d.ts.map +1 -1
  13. package/lib/apps/support.js +6 -2
  14. package/lib/apps/support.js.map +1 -1
  15. package/lib/bot/index.d.ts.map +1 -1
  16. package/lib/bot/index.js +13 -19
  17. package/lib/bot/index.js.map +1 -1
  18. package/lib/bot/test.bot.d.ts +1 -1
  19. package/lib/bot/test.bot.d.ts.map +1 -1
  20. package/lib/bot/test.bot.js +1 -2
  21. package/lib/bot/test.bot.js.map +1 -1
  22. package/lib/countervalues/logic.integration.test.d.ts +2 -0
  23. package/lib/countervalues/logic.integration.test.d.ts.map +1 -0
  24. package/lib/countervalues/{logic.test.js → logic.integration.test.js} +1 -1
  25. package/lib/countervalues/logic.integration.test.js.map +1 -0
  26. package/lib/countervalues/react.d.ts +1 -21
  27. package/lib/countervalues/react.d.ts.map +1 -1
  28. package/lib/countervalues/react.js +1 -77
  29. package/lib/countervalues/react.js.map +1 -1
  30. package/lib/derivation.d.ts +1 -0
  31. package/lib/derivation.d.ts.map +1 -1
  32. package/lib/derivation.js +3 -2
  33. package/lib/derivation.js.map +1 -1
  34. package/lib/exchange/swap/getExchangeRates.test.js +1 -2
  35. package/lib/exchange/swap/getExchangeRates.test.js.map +1 -1
  36. package/lib/exchange/swap/hooks/usePollKYCStatus.test.js +4 -5
  37. package/lib/exchange/swap/hooks/usePollKYCStatus.test.js.map +1 -1
  38. package/lib/exchange/swap/hooks/useProviderRates.test.js +1 -2
  39. package/lib/exchange/swap/hooks/useProviderRates.test.js.map +1 -1
  40. package/lib/exchange/swap/hooks/useSwapProviders.test.js +1 -2
  41. package/lib/exchange/swap/hooks/useSwapProviders.test.js.map +1 -1
  42. package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.js +2 -3
  43. package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.js.map +1 -1
  44. package/lib/families/algorand/bridge.integration.test.d.ts +2 -0
  45. package/lib/families/algorand/bridge.integration.test.d.ts.map +1 -0
  46. package/lib/families/algorand/{test-dataset.js → bridge.integration.test.js} +12 -11
  47. package/lib/families/algorand/bridge.integration.test.js.map +1 -0
  48. package/lib/families/bitcoin/bridge.integration.test.d.ts +2 -0
  49. package/lib/families/bitcoin/bridge.integration.test.d.ts.map +1 -0
  50. package/lib/families/bitcoin/{test-dataset.js → bridge.integration.test.js} +17 -14
  51. package/lib/families/bitcoin/bridge.integration.test.js.map +1 -0
  52. package/lib/families/bitcoin/descriptor.d.ts.map +1 -1
  53. package/lib/families/bitcoin/descriptor.js +2 -1
  54. package/lib/families/bitcoin/descriptor.js.map +1 -1
  55. package/lib/families/bitcoin/satstack.d.ts.map +1 -1
  56. package/lib/families/bitcoin/satstack.js +5 -6
  57. package/lib/families/bitcoin/satstack.js.map +1 -1
  58. package/lib/families/bitcoin/satstack.test.js +4 -1
  59. package/lib/families/bitcoin/satstack.test.js.map +1 -1
  60. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  61. package/lib/families/bitcoin/specs.js +1 -2
  62. package/lib/families/bitcoin/specs.js.map +1 -1
  63. package/lib/families/cardano/bridge.integration.test.d.ts +2 -0
  64. package/lib/families/cardano/bridge.integration.test.d.ts.map +1 -0
  65. package/lib/families/cardano/{test-dataset.js → bridge.integration.test.js} +4 -2
  66. package/lib/families/cardano/bridge.integration.test.js.map +1 -0
  67. package/lib/families/celo/bridge.integration.test.d.ts +2 -0
  68. package/lib/families/celo/bridge.integration.test.d.ts.map +1 -0
  69. package/lib/families/celo/bridge.integration.test.js +16 -0
  70. package/lib/families/celo/bridge.integration.test.js.map +1 -0
  71. package/lib/families/cosmos/bridge.integration.test.d.ts +2 -0
  72. package/lib/families/cosmos/bridge.integration.test.d.ts.map +1 -0
  73. package/lib/families/cosmos/{test-dataset.js → bridge.integration.test.js} +5 -4
  74. package/lib/families/cosmos/bridge.integration.test.js.map +1 -0
  75. package/lib/families/cosmos/speculos-deviceActions.js +2 -2
  76. package/lib/families/crypto_org/bridge.integration.test.d.ts +2 -0
  77. package/lib/families/crypto_org/bridge.integration.test.d.ts.map +1 -0
  78. package/lib/families/crypto_org/bridge.integration.test.js +16 -0
  79. package/lib/families/crypto_org/bridge.integration.test.js.map +1 -0
  80. package/lib/families/elrond/bridge.integration.test.d.ts +2 -0
  81. package/lib/families/elrond/bridge.integration.test.d.ts.map +1 -0
  82. package/lib/families/elrond/{test-dataset.js → bridge.integration.test.js} +5 -5
  83. package/lib/families/elrond/bridge.integration.test.js.map +1 -0
  84. package/lib/families/ethereum/bridge.integration.test.d.ts +2 -0
  85. package/lib/families/ethereum/bridge.integration.test.d.ts.map +1 -0
  86. package/lib/families/ethereum/{test-dataset.js → bridge.integration.test.js} +8 -24
  87. package/lib/families/ethereum/bridge.integration.test.js.map +1 -0
  88. package/lib/families/ethereum/datasets/ethereum1.d.ts +3 -0
  89. package/lib/families/ethereum/datasets/ethereum1.d.ts.map +1 -0
  90. package/lib/families/ethereum/datasets/ethereum1.js +22 -0
  91. package/lib/families/ethereum/datasets/ethereum1.js.map +1 -0
  92. package/lib/families/ethereum/modules/compound.resilience.integration.test.d.ts +2 -0
  93. package/lib/families/ethereum/modules/compound.resilience.integration.test.d.ts.map +1 -0
  94. package/lib/families/ethereum/modules/{compound.resilience.test.js → compound.resilience.integration.test.js} +3 -3
  95. package/lib/families/ethereum/modules/compound.resilience.integration.test.js.map +1 -0
  96. package/lib/families/ethereum/synchronisation.integration.test.d.ts +2 -0
  97. package/lib/families/ethereum/synchronisation.integration.test.d.ts.map +1 -0
  98. package/lib/families/ethereum/{synchronisation.test.js → synchronisation.integration.test.js} +4 -4
  99. package/lib/families/ethereum/synchronisation.integration.test.js.map +1 -0
  100. package/lib/families/filecoin/bridge.integration.test.d.ts +2 -0
  101. package/lib/families/filecoin/bridge.integration.test.d.ts.map +1 -0
  102. package/lib/families/filecoin/{test-dataset.js → bridge.integration.test.js} +84 -3
  103. package/lib/families/filecoin/bridge.integration.test.js.map +1 -0
  104. package/lib/families/hedera/bridge.integration.test.d.ts +2 -0
  105. package/lib/families/hedera/bridge.integration.test.d.ts.map +1 -0
  106. package/lib/families/hedera/{test-dataset.js → bridge.integration.test.js} +5 -3
  107. package/lib/families/hedera/bridge.integration.test.js.map +1 -0
  108. package/lib/families/polkadot/bridge.integration.test.d.ts +2 -0
  109. package/lib/families/polkadot/bridge.integration.test.d.ts.map +1 -0
  110. package/lib/families/polkadot/{test-dataset.js → bridge.integration.test.js} +138 -4
  111. package/lib/families/polkadot/bridge.integration.test.js.map +1 -0
  112. package/lib/families/ripple/bridge.integration.test.d.ts +2 -0
  113. package/lib/families/ripple/bridge.integration.test.d.ts.map +1 -0
  114. package/lib/families/ripple/{test-dataset.js → bridge.integration.test.js} +4 -2
  115. package/lib/families/ripple/bridge.integration.test.js.map +1 -0
  116. package/lib/families/solana/bridge.integration.test.d.ts +2 -0
  117. package/lib/families/solana/bridge.integration.test.d.ts.map +1 -0
  118. package/lib/families/solana/{test-dataset.js → bridge.integration.test.js} +289 -73
  119. package/lib/families/solana/bridge.integration.test.js.map +1 -0
  120. package/lib/families/stellar/bridge.integration.test.d.ts +2 -0
  121. package/lib/families/stellar/bridge.integration.test.d.ts.map +1 -0
  122. package/lib/families/stellar/{test-dataset.js → bridge.integration.test.js} +9 -8
  123. package/lib/families/stellar/bridge.integration.test.js.map +1 -0
  124. package/lib/families/stellar/js-estimateMaxSpendable.d.ts.map +1 -1
  125. package/lib/families/stellar/js-estimateMaxSpendable.js +2 -2
  126. package/lib/families/stellar/js-estimateMaxSpendable.js.map +1 -1
  127. package/lib/families/tezos/{test-dataset.d.ts → bridge.integration.test.d.ts} +2 -5
  128. package/lib/families/tezos/bridge.integration.test.d.ts.map +1 -0
  129. package/lib/families/tezos/{test-dataset.js → bridge.integration.test.js} +73 -2
  130. package/lib/families/tezos/bridge.integration.test.js.map +1 -0
  131. package/lib/families/tezos/synchronisation.js +2 -2
  132. package/lib/families/tezos/synchronisation.js.map +1 -1
  133. package/lib/families/tron/bridge.integration.test.d.ts +2 -0
  134. package/lib/families/tron/bridge.integration.test.d.ts.map +1 -0
  135. package/lib/families/tron/{test-dataset.js → bridge.integration.test.js} +5 -4
  136. package/lib/families/tron/bridge.integration.test.js.map +1 -0
  137. package/lib/load/speculos.d.ts.map +1 -1
  138. package/lib/load/speculos.js +5 -2
  139. package/lib/load/speculos.js.map +1 -1
  140. package/lib/portfolio/v2/index.d.ts +6 -1
  141. package/lib/portfolio/v2/index.d.ts.map +1 -1
  142. package/lib/portfolio/v2/index.js +7 -3
  143. package/lib/portfolio/v2/index.js.map +1 -1
  144. package/lib/portfolio/v2/range.d.ts +7 -1
  145. package/lib/portfolio/v2/range.d.ts.map +1 -1
  146. package/lib/portfolio/v2/range.js +37 -18
  147. package/lib/portfolio/v2/range.js.map +1 -1
  148. package/lib/portfolio/v2/range.test.d.ts +2 -0
  149. package/lib/portfolio/v2/range.test.d.ts.map +1 -0
  150. package/lib/portfolio/v2/range.test.js +51 -0
  151. package/lib/portfolio/v2/range.test.js.map +1 -0
  152. package/package.json +11 -10
  153. package/src/__tests__/mocks/account.ts +3 -3
  154. package/src/__tests__/test-helpers/bridge.ts +2 -35
  155. package/src/__tests__/test-helpers/setup.ts +39 -0
  156. package/src/api/Ripple.ts +97 -52
  157. package/src/apps/support.ts +6 -2
  158. package/src/bot/index.ts +26 -24
  159. package/src/bot/test.bot.ts +2 -2
  160. package/src/countervalues/{logic.test.ts → logic.integration.test.ts} +0 -0
  161. package/src/countervalues/react.tsx +2 -131
  162. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +15 -1
  163. package/src/derivation.ts +2 -1
  164. package/src/exchange/swap/getExchangeRates.test.ts +1 -2
  165. package/src/exchange/swap/hooks/usePollKYCStatus.test.ts +1 -3
  166. package/src/exchange/swap/hooks/useProviderRates.test.ts +1 -2
  167. package/src/exchange/swap/hooks/useSwapProviders.test.ts +1 -3
  168. package/src/exchange/swap/hooks/useUpdateMaxAmount.test.ts +2 -3
  169. package/src/families/algorand/{test-dataset.ts → bridge.integration.test.ts} +13 -10
  170. package/src/families/bitcoin/__snapshots__/bridge.integration.test.ts.snap +27607 -0
  171. package/src/families/bitcoin/{test-dataset.ts → bridge.integration.test.ts} +18 -13
  172. package/src/families/bitcoin/descriptor.ts +1 -0
  173. package/src/families/bitcoin/satstack.test.ts +4 -1
  174. package/src/families/bitcoin/satstack.ts +9 -5
  175. package/src/families/bitcoin/specs.ts +0 -1
  176. package/src/families/cardano/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
  177. package/src/families/cardano/{test-dataset.ts → bridge.integration.test.ts} +3 -1
  178. package/src/families/celo/bridge.integration.test.ts +14 -0
  179. package/src/families/cosmos/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
  180. package/src/families/cosmos/{test-dataset.ts → bridge.integration.test.ts} +17 -15
  181. package/src/families/cosmos/speculos-deviceActions.ts +2 -2
  182. package/src/families/crypto_org/__snapshots__/bridge.integration.test.ts.snap +2968 -0
  183. package/src/families/crypto_org/bridge.integration.test.ts +14 -0
  184. package/src/families/elrond/__snapshots__/bridge.integration.test.ts.snap +207 -0
  185. package/src/families/elrond/{test-dataset.ts → bridge.integration.test.ts} +6 -4
  186. package/src/families/ethereum/__snapshots__/bridge.integration.test.ts.snap +3263 -0
  187. package/src/families/ethereum/{test-dataset.ts → bridge.integration.test.ts} +6 -19
  188. package/src/families/ethereum/datasets/ethereum1.ts +20 -0
  189. package/src/families/ethereum/modules/{compound.resilience.test.ts → compound.resilience.integration.test.ts} +1 -1
  190. package/src/families/ethereum/{synchronisation.test.ts → synchronisation.integration.test.ts} +1 -1
  191. package/src/families/filecoin/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
  192. package/src/families/filecoin/{test-dataset.ts → bridge.integration.test.ts} +35 -3
  193. package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +5 -0
  194. package/src/families/hedera/{test-dataset.ts → bridge.integration.test.ts} +5 -2
  195. package/src/families/polkadot/{test-dataset.ts → bridge.integration.test.ts} +81 -5
  196. package/src/families/ripple/{test-dataset.ts → bridge.integration.test.ts} +5 -1
  197. package/src/families/solana/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
  198. package/src/families/solana/{test-dataset.ts → bridge.integration.test.ts} +170 -5
  199. package/src/families/stellar/__snapshots__/{bridge.test.ts.snap → bridge.integration.test.ts.snap} +0 -0
  200. package/src/families/stellar/{test-dataset.ts → bridge.integration.test.ts} +5 -3
  201. package/src/families/stellar/js-estimateMaxSpendable.ts +3 -1
  202. package/src/families/tezos/{test-dataset.ts → bridge.integration.test.ts} +22 -1
  203. package/src/families/tezos/synchronisation.ts +1 -1
  204. package/src/families/tron/{test-dataset.ts → bridge.integration.test.ts} +6 -5
  205. package/src/load/speculos.ts +5 -2
  206. package/src/portfolio/v2/index.ts +7 -2
  207. package/src/portfolio/v2/range.test.ts +66 -0
  208. package/src/portfolio/v2/range.ts +22 -8
  209. package/lib/__tests__/portfolio.d.ts +0 -2
  210. package/lib/__tests__/portfolio.d.ts.map +0 -1
  211. package/lib/__tests__/portfolio.js +0 -297
  212. package/lib/__tests__/portfolio.js.map +0 -1
  213. package/lib/__tests__/test-helpers/libcore-setup.d.ts +0 -3
  214. package/lib/__tests__/test-helpers/libcore-setup.d.ts.map +0 -1
  215. package/lib/__tests__/test-helpers/libcore-setup.js +0 -68
  216. package/lib/__tests__/test-helpers/libcore-setup.js.map +0 -1
  217. package/lib/__tests__/test-helpers/libcore-setup.native.d.ts +0 -10
  218. package/lib/__tests__/test-helpers/libcore-setup.native.d.ts.map +0 -1
  219. package/lib/__tests__/test-helpers/libcore-setup.native.js +0 -16
  220. package/lib/__tests__/test-helpers/libcore-setup.native.js.map +0 -1
  221. package/lib/countervalues/logic.test.d.ts +0 -2
  222. package/lib/countervalues/logic.test.d.ts.map +0 -1
  223. package/lib/countervalues/logic.test.js.map +0 -1
  224. package/lib/families/algorand/test-dataset.d.ts +0 -5
  225. package/lib/families/algorand/test-dataset.d.ts.map +0 -1
  226. package/lib/families/algorand/test-dataset.js.map +0 -1
  227. package/lib/families/bitcoin/test-dataset.d.ts +0 -5
  228. package/lib/families/bitcoin/test-dataset.d.ts.map +0 -1
  229. package/lib/families/bitcoin/test-dataset.js.map +0 -1
  230. package/lib/families/cardano/bridge.test.d.ts +0 -2
  231. package/lib/families/cardano/bridge.test.d.ts.map +0 -1
  232. package/lib/families/cardano/bridge.test.js +0 -11
  233. package/lib/families/cardano/bridge.test.js.map +0 -1
  234. package/lib/families/cardano/test-dataset.d.ts +0 -5
  235. package/lib/families/cardano/test-dataset.d.ts.map +0 -1
  236. package/lib/families/cardano/test-dataset.js.map +0 -1
  237. package/lib/families/cosmos/bridge.test.d.ts +0 -2
  238. package/lib/families/cosmos/bridge.test.d.ts.map +0 -1
  239. package/lib/families/cosmos/bridge.test.js +0 -11
  240. package/lib/families/cosmos/bridge.test.js.map +0 -1
  241. package/lib/families/cosmos/test-dataset.d.ts +0 -5
  242. package/lib/families/cosmos/test-dataset.d.ts.map +0 -1
  243. package/lib/families/cosmos/test-dataset.js.map +0 -1
  244. package/lib/families/crypto_org/test-dataset.d.ts +0 -5
  245. package/lib/families/crypto_org/test-dataset.d.ts.map +0 -1
  246. package/lib/families/crypto_org/test-dataset.js +0 -12
  247. package/lib/families/crypto_org/test-dataset.js.map +0 -1
  248. package/lib/families/elrond/test-dataset.d.ts +0 -5
  249. package/lib/families/elrond/test-dataset.d.ts.map +0 -1
  250. package/lib/families/elrond/test-dataset.js.map +0 -1
  251. package/lib/families/ethereum/modules/compound.resilience.test.d.ts +0 -2
  252. package/lib/families/ethereum/modules/compound.resilience.test.d.ts.map +0 -1
  253. package/lib/families/ethereum/modules/compound.resilience.test.js.map +0 -1
  254. package/lib/families/ethereum/synchronisation.test.d.ts +0 -2
  255. package/lib/families/ethereum/synchronisation.test.d.ts.map +0 -1
  256. package/lib/families/ethereum/synchronisation.test.js.map +0 -1
  257. package/lib/families/ethereum/test-dataset.d.ts +0 -6
  258. package/lib/families/ethereum/test-dataset.d.ts.map +0 -1
  259. package/lib/families/ethereum/test-dataset.js.map +0 -1
  260. package/lib/families/filecoin/bridge.test.d.ts +0 -2
  261. package/lib/families/filecoin/bridge.test.d.ts.map +0 -1
  262. package/lib/families/filecoin/bridge.test.js +0 -92
  263. package/lib/families/filecoin/bridge.test.js.map +0 -1
  264. package/lib/families/filecoin/test-dataset.d.ts +0 -5
  265. package/lib/families/filecoin/test-dataset.d.ts.map +0 -1
  266. package/lib/families/filecoin/test-dataset.js.map +0 -1
  267. package/lib/families/hedera/test-dataset.d.ts +0 -5
  268. package/lib/families/hedera/test-dataset.d.ts.map +0 -1
  269. package/lib/families/hedera/test-dataset.js.map +0 -1
  270. package/lib/families/polkadot/bridge.test.d.ts +0 -2
  271. package/lib/families/polkadot/bridge.test.d.ts.map +0 -1
  272. package/lib/families/polkadot/bridge.test.js +0 -145
  273. package/lib/families/polkadot/bridge.test.js.map +0 -1
  274. package/lib/families/polkadot/test-dataset.d.ts +0 -5
  275. package/lib/families/polkadot/test-dataset.d.ts.map +0 -1
  276. package/lib/families/polkadot/test-dataset.js.map +0 -1
  277. package/lib/families/ripple/bridge.test.d.ts +0 -2
  278. package/lib/families/ripple/bridge.test.d.ts.map +0 -1
  279. package/lib/families/ripple/bridge.test.js +0 -11
  280. package/lib/families/ripple/bridge.test.js.map +0 -1
  281. package/lib/families/ripple/test-dataset.d.ts +0 -5
  282. package/lib/families/ripple/test-dataset.d.ts.map +0 -1
  283. package/lib/families/ripple/test-dataset.js.map +0 -1
  284. package/lib/families/solana/bridge.test.d.ts +0 -2
  285. package/lib/families/solana/bridge.test.d.ts.map +0 -1
  286. package/lib/families/solana/bridge.test.js +0 -11
  287. package/lib/families/solana/bridge.test.js.map +0 -1
  288. package/lib/families/solana/test-dataset.d.ts +0 -23
  289. package/lib/families/solana/test-dataset.d.ts.map +0 -1
  290. package/lib/families/solana/test-dataset.js.map +0 -1
  291. package/lib/families/solana/test-specifics.d.ts +0 -9
  292. package/lib/families/solana/test-specifics.d.ts.map +0 -1
  293. package/lib/families/solana/test-specifics.js +0 -237
  294. package/lib/families/solana/test-specifics.js.map +0 -1
  295. package/lib/families/stellar/bridge.test.d.ts +0 -2
  296. package/lib/families/stellar/bridge.test.d.ts.map +0 -1
  297. package/lib/families/stellar/bridge.test.js +0 -11
  298. package/lib/families/stellar/bridge.test.js.map +0 -1
  299. package/lib/families/stellar/test-dataset.d.ts +0 -7
  300. package/lib/families/stellar/test-dataset.d.ts.map +0 -1
  301. package/lib/families/stellar/test-dataset.js.map +0 -1
  302. package/lib/families/tezos/bridge.test.d.ts +0 -2
  303. package/lib/families/tezos/bridge.test.d.ts.map +0 -1
  304. package/lib/families/tezos/bridge.test.js +0 -81
  305. package/lib/families/tezos/bridge.test.js.map +0 -1
  306. package/lib/families/tezos/test-dataset.d.ts.map +0 -1
  307. package/lib/families/tezos/test-dataset.js.map +0 -1
  308. package/lib/families/tron/test-dataset.d.ts +0 -5
  309. package/lib/families/tron/test-dataset.d.ts.map +0 -1
  310. package/lib/families/tron/test-dataset.js.map +0 -1
  311. package/lib/generated/test-dataset.d.ts +0 -19
  312. package/lib/generated/test-dataset.d.ts.map +0 -1
  313. package/lib/generated/test-dataset.js +0 -38
  314. package/lib/generated/test-dataset.js.map +0 -1
  315. package/lib/portfolio/index.d.ts +0 -30
  316. package/lib/portfolio/index.d.ts.map +0 -1
  317. package/lib/portfolio/index.js +0 -399
  318. package/lib/portfolio/index.js.map +0 -1
  319. package/lib/portfolio/range.d.ts +0 -12
  320. package/lib/portfolio/range.d.ts.map +0 -1
  321. package/lib/portfolio/range.js +0 -73
  322. package/lib/portfolio/range.js.map +0 -1
  323. package/src/__tests__/__snapshots__/portfolio.ts.snap +0 -2770
  324. package/src/__tests__/portfolio.ts +0 -360
  325. package/src/__tests__/test-helpers/libcore-setup.native.ts +0 -19
  326. package/src/__tests__/test-helpers/libcore-setup.ts +0 -51
  327. package/src/families/bitcoin/bridge.test.ts.bak +0 -6
  328. package/src/families/cardano/bridge.test.ts +0 -6
  329. package/src/families/cosmos/bridge.test.ts +0 -6
  330. package/src/families/crypto_org/test-dataset.ts +0 -13
  331. package/src/families/ethereum/bridge.test.ts.bak +0 -8
  332. package/src/families/filecoin/bridge.test.ts +0 -39
  333. package/src/families/polkadot/bridge.test.ts +0 -81
  334. package/src/families/ripple/bridge.test.ts +0 -6
  335. package/src/families/solana/bridge.test.ts +0 -6
  336. package/src/families/solana/test-specifics.ts +0 -170
  337. package/src/families/stellar/bridge.test.ts +0 -6
  338. package/src/families/tezos/bridge.test.ts +0 -24
  339. package/src/generated/test-dataset.ts +0 -48
  340. package/src/portfolio/index.ts +0 -505
  341. package/src/portfolio/range.ts +0 -71
@@ -1,5 +1,11 @@
1
- import { startOfWeek, startOfDay, startOfHour } from "../range";
2
1
  import type { PortfolioRangeConfig, PortfolioRange } from "./types";
2
+ export declare const hourIncrement: number;
3
+ export declare const dayIncrement: number;
4
+ export declare const weekIncrement: number;
5
+ export declare function startOfHour(t: Date): Date;
6
+ export declare function startOfMonth(t: Date): Date;
7
+ export declare function startOfDay(t: Date): Date;
8
+ export declare function startOfWeek(t: Date): Date;
3
9
  export declare function getPortfolioRangeConfig(r: PortfolioRange): PortfolioRangeConfig;
4
10
  export declare const granularities: {
5
11
  WEEK: {
@@ -1 +1 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,cAAc,GAChB,oBAAoB,CAEtB;AACD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAgBzB,CAAC;AAiCF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AACD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC"}
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpE,eAAO,MAAM,aAAa,QAAiB,CAAC;AAC5C,eAAO,MAAM,YAAY,QAAqB,CAAC;AAC/C,eAAO,MAAM,aAAa,QAAmB,CAAC;AAE9C,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAE1C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,cAAc,GAChB,oBAAoB,CAEtB;AACD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAgBzB,CAAC;AAiCF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AACD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC"}
@@ -1,57 +1,76 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.getRanges = exports.getDates = exports.granularities = exports.getPortfolioRangeConfig = void 0;
4
- var range_1 = require("../range");
3
+ exports.getRanges = exports.getDates = exports.granularities = exports.getPortfolioRangeConfig = exports.startOfWeek = exports.startOfDay = exports.startOfMonth = exports.startOfHour = exports.weekIncrement = exports.dayIncrement = exports.hourIncrement = void 0;
4
+ exports.hourIncrement = 60 * 60 * 1000;
5
+ exports.dayIncrement = 24 * exports.hourIncrement;
6
+ exports.weekIncrement = 7 * exports.dayIncrement;
7
+ function startOfHour(t) {
8
+ return new Date(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours());
9
+ }
10
+ exports.startOfHour = startOfHour;
11
+ function startOfMonth(t) {
12
+ return new Date(t.getFullYear(), t.getMonth(), 1);
13
+ }
14
+ exports.startOfMonth = startOfMonth;
15
+ function startOfDay(t) {
16
+ return new Date(t.getFullYear(), t.getMonth(), t.getDate());
17
+ }
18
+ exports.startOfDay = startOfDay;
19
+ function startOfWeek(t) {
20
+ var d = startOfDay(t);
21
+ return new Date(d.getTime() - d.getDay() * exports.dayIncrement);
22
+ }
23
+ exports.startOfWeek = startOfWeek;
5
24
  function getPortfolioRangeConfig(r) {
6
25
  return ranges[r];
7
26
  }
8
27
  exports.getPortfolioRangeConfig = getPortfolioRangeConfig;
9
28
  exports.granularities = {
10
29
  WEEK: {
11
- increment: range_1.weekIncrement,
12
- startOf: range_1.startOfWeek,
30
+ increment: exports.weekIncrement,
31
+ startOf: startOfWeek,
13
32
  maxDatapoints: 1000
14
33
  },
15
34
  DAY: {
16
- increment: range_1.dayIncrement,
17
- startOf: range_1.startOfDay,
35
+ increment: exports.dayIncrement,
36
+ startOf: startOfDay,
18
37
  maxDatapoints: 400
19
38
  },
20
39
  HOUR: {
21
- increment: range_1.hourIncrement,
22
- startOf: range_1.startOfHour,
40
+ increment: exports.hourIncrement,
41
+ startOf: startOfHour,
23
42
  maxDatapoints: 8 * 24
24
43
  }
25
44
  };
26
45
  // TODO Protfolio: this would require to introduce Account#olderOperationDate
27
46
  var ranges = {
28
47
  all: {
29
- increment: range_1.weekIncrement,
30
- startOf: range_1.startOfWeek,
48
+ increment: exports.weekIncrement,
49
+ startOf: startOfWeek,
31
50
  granularityId: "WEEK"
32
51
  },
33
52
  year: {
34
53
  count: 52,
35
- increment: range_1.weekIncrement,
36
- startOf: range_1.startOfWeek,
54
+ increment: exports.weekIncrement,
55
+ startOf: startOfWeek,
37
56
  granularityId: "WEEK"
38
57
  },
39
58
  month: {
40
59
  count: 30,
41
- increment: range_1.dayIncrement,
42
- startOf: range_1.startOfDay,
60
+ increment: exports.dayIncrement,
61
+ startOf: startOfDay,
43
62
  granularityId: "DAY"
44
63
  },
45
64
  week: {
46
65
  count: 7 * 24,
47
- increment: range_1.hourIncrement,
48
- startOf: range_1.startOfHour,
66
+ increment: exports.hourIncrement,
67
+ startOf: startOfHour,
49
68
  granularityId: "HOUR"
50
69
  },
51
70
  day: {
52
71
  count: 24,
53
- increment: range_1.hourIncrement,
54
- startOf: range_1.startOfHour,
72
+ increment: exports.hourIncrement,
73
+ startOf: startOfHour,
55
74
  granularityId: "HOUR"
56
75
  }
57
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":";;;AAAA,kCAOkB;AAElB,SAAgB,uBAAuB,CACrC,CAAiB;IAEjB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAJD,0DAIC;AACY,QAAA,aAAa,GAAG;IAC3B,IAAI,EAAE;QACJ,SAAS,EAAE,qBAAa;QACxB,OAAO,EAAE,mBAAW;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,GAAG,EAAE;QACH,SAAS,EAAE,oBAAY;QACvB,OAAO,EAAE,kBAAU;QACnB,aAAa,EAAE,GAAG;KACnB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,qBAAa;QACxB,OAAO,EAAE,mBAAW;QACpB,aAAa,EAAE,CAAC,GAAG,EAAE;KACtB;CACF,CAAC;AACF,6EAA6E;AAC7E,IAAM,MAAM,GAAiD;IAC3D,GAAG,EAAE;QACH,SAAS,EAAE,qBAAa;QACxB,OAAO,EAAE,mBAAW;QACpB,aAAa,EAAE,MAAM;KACtB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,qBAAa;QACxB,OAAO,EAAE,mBAAW;QACpB,aAAa,EAAE,MAAM;KACtB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,oBAAY;QACvB,OAAO,EAAE,kBAAU;QACnB,aAAa,EAAE,KAAK;KACrB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,GAAG,EAAE;QACb,SAAS,EAAE,qBAAa;QACxB,OAAO,EAAE,mBAAW;QACpB,aAAa,EAAE,MAAM;KACtB;IACD,GAAG,EAAE;QACH,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,qBAAa;QACxB,OAAO,EAAE,mBAAW;QACpB,aAAa,EAAE,MAAM;KACtB;CACF,CAAC;AACF,SAAgB,QAAQ,CAAC,CAAiB,EAAE,KAAa;IACvD,IAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACxC,IAAM,IAAI,GAAG,IAAI,IAAI,CAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC,CAAC;IACtD,IAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAClC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAE,IAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;KAC7D;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,4BAYC;AACD,SAAgB,SAAS;IACvB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/portfolio/v2/range.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=range.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.test.d.ts","sourceRoot":"","sources":["../../../src/portfolio/v2/range.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var range_1 = require("./range");
4
+ describe("startOfHour", function () {
5
+ test("basic test", function () {
6
+ expect((0, range_1.startOfHour)(new Date(1655827384305)).toISOString()).toBe("2022-06-21T16:00:00.000Z");
7
+ });
8
+ });
9
+ describe("startOfDay", function () {
10
+ test("basic test", function () {
11
+ expect((0, range_1.startOfDay)(new Date(1655827384305)).toISOString()).toBe("2022-06-21T04:00:00.000Z");
12
+ });
13
+ });
14
+ describe("startOfMonth", function () {
15
+ test("basic test", function () {
16
+ expect((0, range_1.startOfMonth)(new Date(1655827384305)).toISOString()).toBe("2022-06-01T04:00:00.000Z");
17
+ });
18
+ });
19
+ describe("startOfWeek", function () {
20
+ test("basic test", function () {
21
+ expect((0, range_1.startOfWeek)(new Date(1655827384305)).toISOString()).toBe("2022-06-19T04:00:00.000Z");
22
+ });
23
+ });
24
+ describe("getPortfolioRangeConfig", function () {
25
+ test("returns a value for day", function () {
26
+ expect((0, range_1.getPortfolioRangeConfig)("day")).toBeDefined();
27
+ });
28
+ test("returns a value for week", function () {
29
+ expect((0, range_1.getPortfolioRangeConfig)("week")).toBeDefined();
30
+ });
31
+ test("returns a value for month", function () {
32
+ expect((0, range_1.getPortfolioRangeConfig)("month")).toBeDefined();
33
+ });
34
+ });
35
+ describe("getDates", function () {
36
+ test("day returns an array of asked size", function () {
37
+ expect((0, range_1.getDates)("day", 100).length).toEqual(100);
38
+ });
39
+ test("week returns an array of asked size", function () {
40
+ expect((0, range_1.getDates)("week", 100).length).toEqual(100);
41
+ });
42
+ test("month returns an array of asked size", function () {
43
+ expect((0, range_1.getDates)("month", 100).length).toEqual(100);
44
+ });
45
+ });
46
+ describe("getRanges", function () {
47
+ test("returns a non empty array", function () {
48
+ expect((0, range_1.getRanges)().length).toBeGreaterThan(0);
49
+ });
50
+ });
51
+ //# sourceMappingURL=range.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.test.js","sourceRoot":"","sources":["../../../src/portfolio/v2/range.test.ts"],"names":[],"mappings":";;AAAA,iCAQiB;AAEjB,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,mBAAW,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC7D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,kBAAU,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC5D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,cAAc,EAAE;IACvB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,oBAAY,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC9D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAA,mBAAW,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAC7D,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,yBAAyB,EAAE;IAClC,IAAI,CAAC,yBAAyB,EAAE;QAC9B,MAAM,CAAC,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,0BAA0B,EAAE;QAC/B,MAAM,CAAC,IAAA,+BAAuB,EAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,2BAA2B,EAAE;QAChC,MAAM,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,UAAU,EAAE;IACnB,IAAI,CAAC,oCAAoC,EAAE;QACzC,MAAM,CAAC,IAAA,gBAAQ,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qCAAqC,EAAE;QAC1C,MAAM,CAAC,IAAA,gBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,sCAAsC,EAAE;QAC3C,MAAM,CAAC,IAAA,gBAAQ,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE;IACpB,IAAI,CAAC,2BAA2B,EAAE;QAChC,MAAM,CAAC,IAAA,iBAAS,GAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "type": "git",
9
9
  "url": "https://github.com/LedgerHQ/ledger-live-common"
10
10
  },
11
- "version": "23.1.0",
11
+ "version": "24.0.0-next.0",
12
12
  "main": "lib/index.js",
13
13
  "types": "lib/index.d.ts",
14
14
  "license": "Apache-2.0",
@@ -56,13 +56,13 @@
56
56
  "@ethereumjs/tx": "^3.5.0",
57
57
  "@hashgraph/sdk": "^2.10.1",
58
58
  "@ledgerhq/compressjs": "1.3.2",
59
- "@ledgerhq/cryptoassets": "^6.28.2",
59
+ "@ledgerhq/cryptoassets": "^6.29.0-next.0",
60
60
  "@ledgerhq/devices": "^6.27.1",
61
61
  "@ledgerhq/errors": "^6.10.0",
62
62
  "@ledgerhq/hw-app-algorand": "^6.27.1",
63
63
  "@ledgerhq/hw-app-btc": "^6.27.1",
64
64
  "@ledgerhq/hw-app-cosmos": "^6.27.1",
65
- "@ledgerhq/hw-app-eth": "^6.29.0",
65
+ "@ledgerhq/hw-app-eth": "^6.29.1-next.0",
66
66
  "@ledgerhq/hw-app-polkadot": "^6.27.1",
67
67
  "@ledgerhq/hw-app-solana": "^6.27.1",
68
68
  "@ledgerhq/hw-app-str": "^6.27.1",
@@ -83,7 +83,7 @@
83
83
  "@solana/spl-token": "^0.2.0",
84
84
  "@solana/web3.js": "1.41.3",
85
85
  "@stricahq/bip32ed25519": "^1.0.3",
86
- "@stricahq/typhonjs": "^1.2.3",
86
+ "@stricahq/typhonjs": "^1.2.4",
87
87
  "@taquito/ledger-signer": "stablelib",
88
88
  "@taquito/taquito": "stablelib",
89
89
  "@taquito/utils": "stablelib",
@@ -146,7 +146,7 @@
146
146
  "semver": "^7.3.5",
147
147
  "sha.js": "^2.4.11",
148
148
  "source-map-support": "^0.5.21",
149
- "stellar-sdk": "^10.1.0",
149
+ "stellar-sdk": "^10.1.1",
150
150
  "superstruct": "0.14.2",
151
151
  "tiny-secp256k1": "^1.1.6",
152
152
  "triple-beam": "^1.3.0",
@@ -185,7 +185,7 @@
185
185
  "eslint-plugin-typescript": "^0.14.0",
186
186
  "fs": "^0.0.1-security",
187
187
  "glob": "^7.2.0",
188
- "jest": "^27.5.1",
188
+ "jest": "^28.1.1",
189
189
  "jest-file-snapshot": "^0.5.0",
190
190
  "prettier": "2.3.2",
191
191
  "react": "^17.0.2",
@@ -194,7 +194,7 @@
194
194
  "react-native-svg": "^12.1.1",
195
195
  "react-test-renderer": "^17.0.2",
196
196
  "timemachine": "^0.3.2",
197
- "ts-jest": "^27.1.3",
197
+ "ts-jest": "^28.0.5",
198
198
  "ts-node": "^10.4.0",
199
199
  "typescript": "^4.5.5",
200
200
  "typescript-eslint-parser": "^22.0.0",
@@ -209,9 +209,10 @@
209
209
  "lint:fix": "pnpm lint --fix",
210
210
  "jest": "cross-env TZ=America/New_York jest",
211
211
  "typecheck": "tsc --noEmit -p src/tsconfig.json",
212
- "test": "pnpm ci-test-common",
213
212
  "ci-lint": "pnpm lint",
214
- "ci-test-common": "env-cmd -f ./.ci.env pnpm jest --ci --updateSnapshot && git diff --exit-code src",
215
- "ci-test-bot": "env-cmd -f ./.ci.env pnpm jest --testMatch '**/*.bot.ts'"
213
+ "test": "pnpm ci-test-unit",
214
+ "ci-test-unit": "env-cmd -f .ci.unit.env pnpm jest --ci --updateSnapshot && git diff --exit-code src",
215
+ "ci-test-integration": "env-cmd -f .ci.integration.env pnpm jest --ci --updateSnapshot",
216
+ "ci-test-bot": "env-cmd -f .ci.bot.env pnpm jest --ci"
216
217
  }
217
218
  }
@@ -1,6 +1,6 @@
1
1
  import "../test-helpers/staticTime";
2
2
  import { genAccount } from "../../mock/account";
3
- import { getBalanceHistory } from "../../portfolio";
3
+ import { getBalanceHistory } from "../../portfolio/v2";
4
4
  import { getEnv, setEnv } from "../../env";
5
5
  import { findCryptoCurrencyById } from "../../currencies";
6
6
  import { canBeMigrated } from "../../account";
@@ -108,8 +108,8 @@ test("allow specifying number of operations", () => {
108
108
  test("mock generators don't generate negative balances", () => {
109
109
  for (let i = 0; i < 100; i++) {
110
110
  const account = genAccount("negative?" + i);
111
- const history = getBalanceHistory(account, "year");
112
- const invalidDataPoints = history.filter((h) => h.value.isNegative());
111
+ const history = getBalanceHistory(account, "year", 300);
112
+ const invalidDataPoints = history.filter((h) => h.value < 0);
113
113
  expect(invalidDataPoints).toMatchObject([]);
114
114
  }
115
115
  });
@@ -1,6 +1,5 @@
1
1
  import invariant from "invariant";
2
2
  import { BigNumber } from "bignumber.js";
3
- import { Observable, defer, from } from "rxjs";
4
3
  import { reduce, filter, map } from "rxjs/operators";
5
4
  import flatMap from "lodash/flatMap";
6
5
  import omit from "lodash/omit";
@@ -32,7 +31,6 @@ import {
32
31
  toTransactionRaw,
33
32
  toTransactionStatusRaw,
34
33
  } from "../../transaction";
35
- import { getBalanceHistoryJS, getRanges } from "../../portfolio";
36
34
  import { getAccountBridge, getCurrencyBridge } from "../../bridge";
37
35
  import { mockDeviceWithAPDUs, releaseMockDevice } from "./mockDevice";
38
36
  import { implicitMigration } from "../../migrations/accounts";
@@ -69,10 +67,7 @@ export function syncAccount<T extends Transaction>(
69
67
  .toPromise();
70
68
  }
71
69
 
72
- export function testBridge<T extends Transaction>(
73
- family: string,
74
- data: DatasetTest<T>
75
- ) {
70
+ export function testBridge<T extends Transaction>(data: DatasetTest<T>): void {
76
71
  // covers all bridges through many different accounts
77
72
  // to test the common shared properties of bridges.
78
73
  const accountsRelated: Array<{
@@ -120,7 +115,7 @@ export function testBridge<T extends Transaction>(
120
115
  );
121
116
  });
122
117
  const accountsFoundInScanAccountsMap = {};
123
- const preloadObservables: Array<Observable<any>> = [];
118
+
124
119
  currenciesRelated.map(({ currencyData, currency }) => {
125
120
  const bridge = getCurrencyBridge(currency);
126
121
 
@@ -212,16 +207,6 @@ export function testBridge<T extends Transaction>(
212
207
  describe("scanAccounts", () => {
213
208
  scanAccounts.forEach((sa) => {
214
209
  // we start running the scan accounts in parallel!
215
- preloadObservables.push(
216
- defer(() =>
217
- from(
218
- scanAccountsCached(sa.apdus).then(
219
- () => null,
220
- () => {}
221
- )
222
- )
223
- )
224
- );
225
210
  test(sa.name, async () => {
226
211
  const accounts = await scanAccountsCached(sa.apdus);
227
212
  accounts.forEach((a) => {
@@ -514,21 +499,6 @@ export function testBridge<T extends Transaction>(
514
499
  });
515
500
  });
516
501
  });
517
- makeTest(
518
- "account balanceHistory (when exists) matches getBalanceHistoryJS",
519
- async () => {
520
- const account = await getSynced();
521
- getRanges().forEach((range) => {
522
- const balanceHistory =
523
- account.balanceHistory && account.balanceHistory[range];
524
- if (!balanceHistory) return;
525
- const history = getBalanceHistoryJS(account, range);
526
- expect(balanceHistory.map((b) => b.value)).toEqual(
527
- history.map((b) => b.value)
528
- );
529
- });
530
- }
531
- );
532
502
  describe("createTransaction", () => {
533
503
  makeTest(
534
504
  "empty transaction is an object with empty recipient and zero amount",
@@ -785,7 +755,4 @@ export function testBridge<T extends Transaction>(
785
755
  });
786
756
  });
787
757
  });
788
- return {
789
- preloadObservables,
790
- };
791
758
  }
@@ -1,6 +1,9 @@
1
+ import winston from "winston";
2
+ import { listen } from "@ledgerhq/logs";
1
3
  import BigNumber from "bignumber.js";
2
4
  import { setSupportedCurrencies } from "../../currencies";
3
5
  import { setPlatformVersion } from "../../platform/version";
6
+ import { EnvName, setEnvUnsafe } from "../../env";
4
7
 
5
8
  jest.setTimeout(360000);
6
9
 
@@ -62,3 +65,39 @@ setSupportedCurrencies([
62
65
  "cardano",
63
66
  "cardano_testnet",
64
67
  ]);
68
+
69
+ for (const k in process.env) setEnvUnsafe(k as EnvName, process.env[k]);
70
+
71
+ const { VERBOSE, VERBOSE_FILE } = process.env;
72
+ const logger = winston.createLogger({
73
+ level: "debug",
74
+ transports: [],
75
+ });
76
+ const { format } = winston;
77
+ const { combine, timestamp, json } = format;
78
+ const winstonFormat = combine(timestamp(), json());
79
+
80
+ if (VERBOSE_FILE) {
81
+ logger.add(
82
+ new winston.transports.File({
83
+ format: winstonFormat,
84
+ filename: VERBOSE_FILE,
85
+ level: "debug",
86
+ })
87
+ );
88
+ }
89
+
90
+ logger.add(
91
+ new winston.transports.Console({
92
+ format: winstonFormat,
93
+ silent: !VERBOSE,
94
+ })
95
+ );
96
+ // eslint-disable-next-line no-unused-vars
97
+ listen(({ type, message, ...rest }) => {
98
+ logger.log("debug", {
99
+ message: type + (message ? ": " + message : ""),
100
+ // $FlowFixMe
101
+ ...rest,
102
+ });
103
+ });
package/src/api/Ripple.ts CHANGED
@@ -2,6 +2,8 @@ import { BigNumber } from "bignumber.js";
2
2
  import { getEnv } from "../env";
3
3
  import network from "../network";
4
4
  import { parseCurrencyUnit, getCryptoCurrencyById } from "../currencies";
5
+ import { retry } from "../promise";
6
+ import { NEW_ACCOUNT_ERROR_MESSAGE } from "../families/ripple/bridge/js";
5
7
 
6
8
  const defaultEndpoint = () => getEnv("API_RIPPLE_RPC");
7
9
 
@@ -47,74 +49,117 @@ export const getAccountInfo = async (
47
49
  recipient: string,
48
50
  current?: boolean
49
51
  ): Promise<AccountInfo> => {
50
- const res = await network({
51
- method: "POST",
52
- url: `${defaultEndpoint()}`,
53
- data: {
54
- method: "account_info",
55
- params: [
56
- {
57
- account: recipient,
58
- ledger_index: current ? "current" : "validated",
59
- },
60
- ],
61
- },
52
+ const res = async () => {
53
+ const res = await network({
54
+ method: "POST",
55
+ url: `${defaultEndpoint()}`,
56
+ data: {
57
+ method: "account_info",
58
+ params: [
59
+ {
60
+ account: recipient,
61
+ ledger_index: current ? "current" : "validated",
62
+ },
63
+ ],
64
+ },
65
+ });
66
+ if (
67
+ res.data.result.status !== "success" &&
68
+ res.data.result.error !== NEW_ACCOUNT_ERROR_MESSAGE
69
+ ) {
70
+ throw new Error(`couldn't fetch account info ${recipient}`);
71
+ }
72
+
73
+ return res.data.result;
74
+ };
75
+
76
+ return retry(() => res(), {
77
+ maxRetry: getEnv("GET_CALLS_RETRY"),
62
78
  });
63
- return res.data.result;
64
79
  };
65
80
 
66
81
  export const getServerInfo = async (
67
82
  endpointConfig?: string | null | undefined
68
83
  ): Promise<any> => {
69
- const res = await network({
70
- method: "POST",
71
- url: endpointConfig ?? `${defaultEndpoint()}`,
72
- data: {
73
- method: "server_info",
74
- params: [
75
- {
76
- ledger_index: "validated",
77
- },
78
- ],
79
- },
80
- });
84
+ const res = async () => {
85
+ const res = await network({
86
+ method: "POST",
87
+ url: endpointConfig ?? `${defaultEndpoint()}`,
88
+ data: {
89
+ method: "server_info",
90
+ params: [
91
+ {
92
+ ledger_index: "validated",
93
+ },
94
+ ],
95
+ },
96
+ });
81
97
 
82
- return res.data.result;
98
+ if (res.data.result.status !== "success") {
99
+ throw new Error(`couldn't fetch server info`);
100
+ }
101
+
102
+ return res.data.result;
103
+ };
104
+
105
+ return retry(() => res(), {
106
+ maxRetry: getEnv("GET_CALLS_RETRY"),
107
+ });
83
108
  };
84
109
 
85
110
  export const getTransactions = async (
86
111
  address: string,
87
112
  options: any | undefined
88
113
  ): Promise<any> => {
89
- const res = await network({
90
- method: "POST",
91
- url: `${defaultEndpoint()}`,
92
- data: {
93
- method: "account_tx",
94
- params: [
95
- {
96
- account: address,
97
- ledger_index: "validated",
98
- ...options,
99
- },
100
- ],
101
- },
114
+ const res = async () => {
115
+ const res = await network({
116
+ method: "POST",
117
+ url: `${defaultEndpoint()}`,
118
+ data: {
119
+ method: "account_tx",
120
+ params: [
121
+ {
122
+ account: address,
123
+ ledger_index: "validated",
124
+ ...options,
125
+ },
126
+ ],
127
+ },
128
+ });
129
+ return res.data.result.transactions;
130
+
131
+ if (res.data.result.status !== "success") {
132
+ throw new Error(`couldn't getTransactions for ${address}`);
133
+ }
134
+ };
135
+
136
+ return retry(() => res(), {
137
+ maxRetry: getEnv("GET_CALLS_RETRY"),
102
138
  });
103
- return res.data.result.transactions;
104
139
  };
105
140
 
106
141
  export default async function getLedgerIndex(): Promise<number> {
107
- const ledgerResponse = await network({
108
- method: "POST",
109
- url: `${defaultEndpoint()}`,
110
- data: {
111
- method: "ledger",
112
- params: [
113
- {
114
- ledger_index: "validated",
115
- },
116
- ],
117
- },
142
+ const res = async () => {
143
+ const ledgerResponse = await network({
144
+ method: "POST",
145
+ url: `${defaultEndpoint()}`,
146
+ data: {
147
+ method: "ledger",
148
+ params: [
149
+ {
150
+ ledger_index: "validated",
151
+ },
152
+ ],
153
+ },
154
+ });
155
+
156
+ if (ledgerResponse.data.result.status !== "success") {
157
+ throw new Error(`couldn't fetch getLedgerIndex`);
158
+ }
159
+
160
+ return ledgerResponse.data.result.ledger_index;
161
+ };
162
+ return retry(() => res(), {
163
+ maxRetry: getEnv("GET_CALLS_RETRY"),
118
164
  });
119
- return ledgerResponse.data.result.ledger_index;
120
165
  }
@@ -21,7 +21,9 @@ export function shouldUpgrade(
21
21
  appName === "Bitcoin"
22
22
  ) {
23
23
  // https://donjon.ledger.com/lsb/010/
24
- return !semver.satisfies(semver.coerce(appVersion) || "", ">= 1.4.0");
24
+ return !semver.satisfies(appVersion || "", ">= 1.4.0", {
25
+ includePrerelease: true, // this will allow pre-release tags that would otherwise return false. E.g. 1.0.0-dev
26
+ });
25
27
  }
26
28
 
27
29
  return false;
@@ -43,7 +45,9 @@ export function mustUpgrade(
43
45
  const range = appVersionsRequired[appName];
44
46
 
45
47
  if (range) {
46
- return !semver.satisfies(appVersion, range);
48
+ return !semver.satisfies(appVersion || "", range, {
49
+ includePrerelease: true, // this will allow pre-release tags that would otherwise return false. E.g. 1.0.0-dev
50
+ });
47
51
  }
48
52
 
49
53
  return false;