@ledgerhq/live-common 34.51.0-nightly.8 → 34.51.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 (253) hide show
  1. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +1 -1
  2. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  3. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  4. package/lib/bridge/generic-alpaca/prepareTransaction.js +45 -37
  5. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  6. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  7. package/lib/bridge/generic-alpaca/signOperation.js +20 -0
  8. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  9. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +88 -186
  10. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  11. package/lib/bridge/generic-alpaca/utils.js +1 -1
  12. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  13. package/lib/bridge/generic-alpaca/utils.test.js +2 -2
  14. package/lib/bridge/generic-alpaca/utils.test.js.map +1 -1
  15. package/lib/dada-client/state-manager/api.d.ts.map +1 -1
  16. package/lib/dada-client/state-manager/api.js +5 -10
  17. package/lib/dada-client/state-manager/api.js.map +1 -1
  18. package/lib/dada-client/state-manager/types.d.ts +0 -1
  19. package/lib/dada-client/state-manager/types.d.ts.map +1 -1
  20. package/lib/device/use-cases/getAppsCatalogForDevice.d.ts +1 -1
  21. package/lib/device/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
  22. package/lib/e2e/data/deviceLabelsData.d.ts.map +1 -1
  23. package/lib/e2e/data/deviceLabelsData.js +4 -2
  24. package/lib/e2e/data/deviceLabelsData.js.map +1 -1
  25. package/lib/e2e/enum/Device.d.ts +4 -5
  26. package/lib/e2e/enum/Device.d.ts.map +1 -1
  27. package/lib/e2e/enum/Device.js +4 -6
  28. package/lib/e2e/enum/Device.js.map +1 -1
  29. package/lib/e2e/families/bitcoin.d.ts.map +1 -1
  30. package/lib/e2e/families/bitcoin.js +3 -4
  31. package/lib/e2e/families/bitcoin.js.map +1 -1
  32. package/lib/e2e/families/cardano.js +2 -2
  33. package/lib/e2e/families/cardano.js.map +1 -1
  34. package/lib/e2e/families/evm.d.ts.map +1 -1
  35. package/lib/e2e/families/evm.js +2 -3
  36. package/lib/e2e/families/evm.js.map +1 -1
  37. package/lib/e2e/families/solana.d.ts.map +1 -1
  38. package/lib/e2e/families/solana.js +5 -2
  39. package/lib/e2e/families/solana.js.map +1 -1
  40. package/lib/e2e/families/tezos.d.ts.map +1 -1
  41. package/lib/e2e/families/tezos.js +1 -2
  42. package/lib/e2e/families/tezos.js.map +1 -1
  43. package/lib/e2e/index.d.ts +2 -7
  44. package/lib/e2e/index.d.ts.map +1 -1
  45. package/lib/e2e/speculos.d.ts +1 -1
  46. package/lib/e2e/speculos.d.ts.map +1 -1
  47. package/lib/e2e/speculos.js +60 -53
  48. package/lib/e2e/speculos.js.map +1 -1
  49. package/lib/env.react.d.ts +1 -1
  50. package/lib/env.react.d.ts.map +1 -1
  51. package/lib/exchange/swap/hooks/usePickDefaultAccount.js +1 -1
  52. package/lib/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  53. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts +2 -3
  54. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  55. package/lib/exchange/swap/hooks/useSwapTransaction.js +9 -14
  56. package/lib/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  57. package/lib/exchange/swap/transactionStrategies.d.ts +1 -2
  58. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
  59. package/lib/exchange/swap/transactionStrategies.js +1 -3
  60. package/lib/exchange/swap/transactionStrategies.js.map +1 -1
  61. package/lib/exchange/swap/types.d.ts +0 -1
  62. package/lib/exchange/swap/types.d.ts.map +1 -1
  63. package/lib/families/evm/walletApiAdapter.d.ts.map +1 -1
  64. package/lib/families/evm/walletApiAdapter.js +0 -5
  65. package/lib/families/evm/walletApiAdapter.js.map +1 -1
  66. package/lib/featureFlags/defaultFeatures.d.ts +3 -0
  67. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  68. package/lib/featureFlags/defaultFeatures.js +1 -10
  69. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  70. package/lib/featureFlags/useFeature.d.ts +1 -1
  71. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  72. package/lib/load/speculos.d.ts.map +1 -1
  73. package/lib/load/speculos.js +0 -1
  74. package/lib/load/speculos.js.map +1 -1
  75. package/lib/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.d.ts.map +1 -0
  76. package/lib/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.js.map +1 -0
  77. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  78. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +3 -0
  79. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  80. package/lib/wallet-api/Exchange/server.d.ts +0 -1
  81. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  82. package/lib/wallet-api/Exchange/server.js +2 -5
  83. package/lib/wallet-api/Exchange/server.js.map +1 -1
  84. package/lib/wallet-api/react.d.ts.map +1 -1
  85. package/lib/wallet-api/react.js +1 -5
  86. package/lib/wallet-api/react.js.map +1 -1
  87. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +1 -1
  88. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  89. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  90. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +45 -37
  91. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  92. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  93. package/lib-es/bridge/generic-alpaca/signOperation.js +17 -0
  94. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  95. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +88 -163
  96. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  97. package/lib-es/bridge/generic-alpaca/utils.js +1 -1
  98. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  99. package/lib-es/bridge/generic-alpaca/utils.test.js +2 -2
  100. package/lib-es/bridge/generic-alpaca/utils.test.js.map +1 -1
  101. package/lib-es/dada-client/state-manager/api.d.ts.map +1 -1
  102. package/lib-es/dada-client/state-manager/api.js +5 -10
  103. package/lib-es/dada-client/state-manager/api.js.map +1 -1
  104. package/lib-es/dada-client/state-manager/types.d.ts +0 -1
  105. package/lib-es/dada-client/state-manager/types.d.ts.map +1 -1
  106. package/lib-es/device/use-cases/getAppsCatalogForDevice.d.ts +1 -1
  107. package/lib-es/device/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
  108. package/lib-es/e2e/data/deviceLabelsData.d.ts.map +1 -1
  109. package/lib-es/e2e/data/deviceLabelsData.js +4 -2
  110. package/lib-es/e2e/data/deviceLabelsData.js.map +1 -1
  111. package/lib-es/e2e/enum/Device.d.ts +4 -5
  112. package/lib-es/e2e/enum/Device.d.ts.map +1 -1
  113. package/lib-es/e2e/enum/Device.js +4 -6
  114. package/lib-es/e2e/enum/Device.js.map +1 -1
  115. package/lib-es/e2e/families/bitcoin.d.ts.map +1 -1
  116. package/lib-es/e2e/families/bitcoin.js +3 -4
  117. package/lib-es/e2e/families/bitcoin.js.map +1 -1
  118. package/lib-es/e2e/families/cardano.js +2 -2
  119. package/lib-es/e2e/families/cardano.js.map +1 -1
  120. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  121. package/lib-es/e2e/families/evm.js +2 -3
  122. package/lib-es/e2e/families/evm.js.map +1 -1
  123. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  124. package/lib-es/e2e/families/solana.js +6 -3
  125. package/lib-es/e2e/families/solana.js.map +1 -1
  126. package/lib-es/e2e/families/tezos.d.ts.map +1 -1
  127. package/lib-es/e2e/families/tezos.js +1 -2
  128. package/lib-es/e2e/families/tezos.js.map +1 -1
  129. package/lib-es/e2e/index.d.ts +2 -7
  130. package/lib-es/e2e/index.d.ts.map +1 -1
  131. package/lib-es/e2e/speculos.d.ts +1 -1
  132. package/lib-es/e2e/speculos.d.ts.map +1 -1
  133. package/lib-es/e2e/speculos.js +25 -19
  134. package/lib-es/e2e/speculos.js.map +1 -1
  135. package/lib-es/env.react.d.ts +1 -1
  136. package/lib-es/env.react.d.ts.map +1 -1
  137. package/lib-es/exchange/swap/hooks/usePickDefaultAccount.js +2 -2
  138. package/lib-es/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  139. package/lib-es/exchange/swap/hooks/useSwapTransaction.d.ts +2 -3
  140. package/lib-es/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  141. package/lib-es/exchange/swap/hooks/useSwapTransaction.js +9 -14
  142. package/lib-es/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  143. package/lib-es/exchange/swap/transactionStrategies.d.ts +1 -2
  144. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
  145. package/lib-es/exchange/swap/transactionStrategies.js +1 -3
  146. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
  147. package/lib-es/exchange/swap/types.d.ts +0 -1
  148. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  149. package/lib-es/families/evm/walletApiAdapter.d.ts.map +1 -1
  150. package/lib-es/families/evm/walletApiAdapter.js +0 -5
  151. package/lib-es/families/evm/walletApiAdapter.js.map +1 -1
  152. package/lib-es/featureFlags/defaultFeatures.d.ts +3 -0
  153. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  154. package/lib-es/featureFlags/defaultFeatures.js +1 -10
  155. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  156. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  157. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  158. package/lib-es/load/speculos.d.ts.map +1 -1
  159. package/lib-es/load/speculos.js +0 -1
  160. package/lib-es/load/speculos.js.map +1 -1
  161. package/lib-es/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.d.ts.map +1 -0
  162. package/lib-es/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.js.map +1 -0
  163. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  164. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +3 -0
  165. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  166. package/lib-es/wallet-api/Exchange/server.d.ts +0 -1
  167. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  168. package/lib-es/wallet-api/Exchange/server.js +2 -5
  169. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  170. package/lib-es/wallet-api/react.d.ts.map +1 -1
  171. package/lib-es/wallet-api/react.js +1 -5
  172. package/lib-es/wallet-api/react.js.map +1 -1
  173. package/package.json +78 -78
  174. package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +1 -1
  175. package/src/bridge/generic-alpaca/prepareTransaction.ts +69 -46
  176. package/src/bridge/generic-alpaca/signOperation.ts +20 -0
  177. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +109 -191
  178. package/src/bridge/generic-alpaca/utils.test.ts +15 -12
  179. package/src/bridge/generic-alpaca/utils.ts +1 -1
  180. package/src/dada-client/state-manager/api.ts +5 -10
  181. package/src/dada-client/state-manager/types.ts +0 -1
  182. package/src/e2e/data/deviceLabelsData.ts +4 -2
  183. package/src/e2e/enum/Device.ts +4 -7
  184. package/src/e2e/families/bitcoin.ts +9 -4
  185. package/src/e2e/families/cardano.ts +2 -2
  186. package/src/e2e/families/evm.ts +8 -3
  187. package/src/e2e/families/solana.ts +7 -2
  188. package/src/e2e/families/tezos.ts +7 -2
  189. package/src/e2e/speculos.ts +27 -22
  190. package/src/exchange/swap/hooks/usePickDefaultAccount.ts +2 -2
  191. package/src/exchange/swap/hooks/useSwapTransaction.ts +7 -20
  192. package/src/exchange/swap/transactionStrategies.ts +0 -4
  193. package/src/exchange/swap/types.ts +0 -1
  194. package/src/families/evm/walletApiAdapter.ts +0 -6
  195. package/src/featureFlags/defaultFeatures.ts +1 -10
  196. package/src/load/speculos.ts +0 -1
  197. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +3 -0
  198. package/src/wallet-api/Exchange/server.ts +3 -12
  199. package/src/wallet-api/react.ts +1 -7
  200. package/lib/e2e/speculosAppVersion.d.ts +0 -7
  201. package/lib/e2e/speculosAppVersion.d.ts.map +0 -1
  202. package/lib/e2e/speculosAppVersion.js +0 -104
  203. package/lib/e2e/speculosAppVersion.js.map +0 -1
  204. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts +0 -2
  205. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts.map +0 -1
  206. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js +0 -38
  207. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js.map +0 -1
  208. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts +0 -2
  209. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts.map +0 -1
  210. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js +0 -50
  211. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js.map +0 -1
  212. package/lib/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.d.ts.map +0 -1
  213. package/lib/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.js.map +0 -1
  214. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts +0 -19
  215. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts.map +0 -1
  216. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.js +0 -209
  217. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.js.map +0 -1
  218. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts +0 -5
  219. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts.map +0 -1
  220. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.js +0 -248
  221. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.js.map +0 -1
  222. package/lib-es/e2e/speculosAppVersion.d.ts +0 -7
  223. package/lib-es/e2e/speculosAppVersion.d.ts.map +0 -1
  224. package/lib-es/e2e/speculosAppVersion.js +0 -74
  225. package/lib-es/e2e/speculosAppVersion.js.map +0 -1
  226. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts +0 -2
  227. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts.map +0 -1
  228. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js +0 -36
  229. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js.map +0 -1
  230. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts +0 -2
  231. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts.map +0 -1
  232. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js +0 -45
  233. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js.map +0 -1
  234. package/lib-es/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.d.ts.map +0 -1
  235. package/lib-es/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.js.map +0 -1
  236. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts +0 -19
  237. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts.map +0 -1
  238. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.js +0 -202
  239. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.js.map +0 -1
  240. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts +0 -5
  241. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts.map +0 -1
  242. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.js +0 -246
  243. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.js.map +0 -1
  244. package/src/e2e/speculosAppVersion.ts +0 -86
  245. package/src/modularDrawer/hooks/__test__/useAssetAccountCounts.test.ts +0 -40
  246. package/src/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.ts +0 -59
  247. package/src/modularDrawer/modules/__test__/createAssetConfiguration.test.tsx +0 -250
  248. package/src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts +0 -349
  249. /package/lib/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.d.ts +0 -0
  250. /package/lib/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.js +0 -0
  251. /package/lib-es/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.d.ts +0 -0
  252. /package/lib-es/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.js +0 -0
  253. /package/src/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.ts +0 -0
@@ -1,202 +0,0 @@
1
- /**
2
- * @jest-environment jsdom
3
- */
4
- import React from "react";
5
- import { renderHook } from "@testing-library/react";
6
- import { mockEthCryptoCurrency } from "../../__mocks__/currencies.mock";
7
- import { groupCurrenciesByProvider } from "../../utils";
8
- import createAssetConfigurationHook from "../createAssetConfiguration";
9
- import { BigNumber } from "bignumber.js";
10
- import { genAccount, genTokenAccount } from "@ledgerhq/coin-framework/lib/mocks/account";
11
- import { createFixtureCryptoCurrency } from "../../../mock/fixtures/cryptoCurrencies";
12
- import { Provider } from "react-redux";
13
- import { configureStore } from "@reduxjs/toolkit";
14
- export const makeUsdcToken = (parentCurrency, contractAddress, tokenType = "erc20", name = "USD Coin", explicitId) => {
15
- const id = explicitId ?? `${parentCurrency.id}/${tokenType}/usdc`;
16
- return {
17
- type: "TokenCurrency",
18
- parentCurrency,
19
- tokenType,
20
- id,
21
- contractAddress,
22
- ticker: "USDC",
23
- name,
24
- units: [
25
- {
26
- name: "USD Coin",
27
- code: "USDC",
28
- magnitude: 6,
29
- },
30
- ],
31
- };
32
- };
33
- const ApyIndicator = () => null;
34
- const MarketPercentIndicator = () => null;
35
- const MarketPriceIndicator = jest.fn(() => null);
36
- const ethereumCurrencyMagnitude = 18;
37
- const fiatCurrencyMagnitude = 2;
38
- const fiatConversion = 4589;
39
- const ethereumCurrency = createFixtureCryptoCurrency("ethereum");
40
- ethereumCurrency.id = "ethereum";
41
- ethereumCurrency.units[0].magnitude = ethereumCurrencyMagnitude;
42
- const ethereumAccountHigh = genAccount("ethereum-account-high", {
43
- currency: ethereumCurrency,
44
- });
45
- ethereumAccountHigh.balance = new BigNumber("1000000000000000000000");
46
- ethereumAccountHigh.spendableBalance = ethereumAccountHigh.balance;
47
- const ethereumUsdcToken = makeUsdcToken(ethereumCurrency, "erc20", "USD Coin");
48
- const ethereumUsdcTokenAccount = genTokenAccount(0, ethereumAccountHigh, ethereumUsdcToken);
49
- ethereumUsdcTokenAccount.balance = new BigNumber("1000000000");
50
- ethereumAccountHigh.subAccounts = [ethereumUsdcTokenAccount];
51
- const mockFiatCurrency = {
52
- type: "FiatCurrency",
53
- ticker: "USD",
54
- name: "US Dollar",
55
- symbol: "$",
56
- units: [
57
- {
58
- code: "$",
59
- name: "US Dollar",
60
- magnitude: fiatCurrencyMagnitude,
61
- showAllDigits: true,
62
- prefixCode: true,
63
- },
64
- ],
65
- };
66
- const useBalanceDeps = () => {
67
- const mockCounterValuesState = {
68
- cache: {
69
- "USD ethereum": {
70
- map: new Map([["latest", fiatConversion]]),
71
- stats: {
72
- oldest: "2024-09-12",
73
- earliest: "2025-10-02T13",
74
- oldestDate: new Date(),
75
- earliestDate: new Date(),
76
- earliestStableDate: new Date(),
77
- },
78
- },
79
- },
80
- data: {},
81
- status: {},
82
- };
83
- return {
84
- counterValueCurrency: mockFiatCurrency,
85
- flattenedAccounts: [ethereumAccountHigh],
86
- state: mockCounterValuesState,
87
- locale: "en-US",
88
- };
89
- };
90
- const balanceItem = jest.fn(() => null);
91
- const assetConfigurationDeps = {
92
- useBalanceDeps,
93
- balanceItem,
94
- ApyIndicator,
95
- MarketPercentIndicator,
96
- MarketPriceIndicator,
97
- assetsMap: groupCurrenciesByProvider([
98
- {
99
- asset: {
100
- id: "ethereum",
101
- ticker: "ETH",
102
- name: "Ethereum",
103
- assetsIds: {
104
- ethereum: "ethereum",
105
- arbitrum: "arbitrum",
106
- },
107
- metaCurrencyId: "ethereum",
108
- },
109
- networks: [mockEthCryptoCurrency],
110
- },
111
- ]),
112
- };
113
- describe("createAssetConfiguration", () => {
114
- it("should call balanceItem with correct BalanceUI objects for each asset", () => {
115
- renderHook(() => createAssetConfigurationHook(assetConfigurationDeps)({
116
- assetsConfiguration: { rightElement: "balance" },
117
- })([ethereumCurrency]));
118
- expect(balanceItem).toHaveBeenCalledTimes(1);
119
- expect(balanceItem).toHaveBeenNthCalledWith(1, {
120
- currency: ethereumCurrency,
121
- balance: ethereumAccountHigh.balance,
122
- fiatValue: ethereumAccountHigh.balance
123
- .shiftedBy(fiatCurrencyMagnitude - ethereumCurrencyMagnitude)
124
- .multipliedBy(fiatConversion)
125
- .toNumber(),
126
- });
127
- });
128
- const store = configureStore({
129
- reducer: {
130
- assetsDataApi: (state = {}, _action) => state,
131
- },
132
- preloadedState: {
133
- assetsDataApi: {
134
- queries: {
135
- mockMarketsQuery: {
136
- data: {
137
- pages: [
138
- {
139
- markets: {
140
- ethereum: {
141
- price: 2500.5,
142
- priceChangePercentage24h: 5.25,
143
- marketCap: 300000000000,
144
- ticker: "ETH",
145
- name: "Ethereum",
146
- },
147
- },
148
- interestRates: {
149
- ethereum: {
150
- currencyId: "ethereum",
151
- rate: 0.045,
152
- type: "APY",
153
- fetchAt: "2024-10-13T10:00:00Z",
154
- },
155
- },
156
- },
157
- ],
158
- },
159
- },
160
- },
161
- },
162
- },
163
- });
164
- it("should generate market trend right element with correct market trend data", () => {
165
- const { result: { current }, } = renderHook(() => createAssetConfigurationHook(assetConfigurationDeps)({
166
- assetsConfiguration: { rightElement: "marketTrend" },
167
- })([ethereumCurrency]), {
168
- wrapper: ({ children }) => React.createElement(Provider, { store: store }, children),
169
- });
170
- const rightElement = current[0]?.rightElement;
171
- expect(rightElement).toBeDefined();
172
- expect(React.isValidElement(rightElement)).toBe(true);
173
- if (React.isValidElement(rightElement)) {
174
- expect(rightElement.props).toEqual({
175
- percent: 5.25,
176
- price: "$2,500.50",
177
- });
178
- }
179
- });
180
- it("should generate apy left element when leftElement is 'apy'", () => {
181
- const { result: { current }, } = renderHook(() => createAssetConfigurationHook(assetConfigurationDeps)({
182
- assetsConfiguration: { leftElement: "apy" },
183
- })([ethereumCurrency]), {
184
- wrapper: ({ children }) => React.createElement(Provider, { store: store }, children),
185
- });
186
- expect((current[0]?.leftElement).props).toEqual({
187
- value: 4.5,
188
- type: "APY",
189
- });
190
- });
191
- it("should generate market trend left element when leftElement is 'marketTrend'", () => {
192
- const { result: { current }, } = renderHook(() => createAssetConfigurationHook(assetConfigurationDeps)({
193
- assetsConfiguration: { leftElement: "marketTrend" },
194
- })([ethereumCurrency]), {
195
- wrapper: ({ children }) => React.createElement(Provider, { store: store }, children),
196
- });
197
- expect((current[0]?.leftElement).props).toEqual({
198
- percent: 5.25,
199
- });
200
- });
201
- });
202
- //# sourceMappingURL=createAssetConfiguration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAssetConfiguration.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/modules/__test__/createAssetConfiguration.test.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,4BAA4B,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAGtF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,cAA8B,EAC9B,eAAuB,EACvB,YAAoB,OAAO,EAC3B,OAAe,UAAU,EACzB,UAAmB,EACnB,EAAE;IACF,MAAM,EAAE,GAAG,UAAU,IAAI,GAAG,cAAc,CAAC,EAAE,IAAI,SAAS,OAAO,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,eAAwB;QAC9B,cAAc;QACd,SAAS;QACT,EAAE;QACF,eAAe;QACf,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,CAAC;aACb;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;AAChC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;AAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEjD,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;AACjE,gBAAgB,CAAC,EAAE,GAAG,UAAU,CAAC;AACjC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,yBAAyB,CAAC;AAChE,MAAM,mBAAmB,GAAG,UAAU,CAAC,uBAAuB,EAAE;IAC9D,QAAQ,EAAE,gBAAgB;CAC3B,CAAC,CAAC;AAEH,mBAAmB,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;AACtE,mBAAmB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAEnE,MAAM,iBAAiB,GAAkB,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC9F,MAAM,wBAAwB,GAAG,eAAe,CAAC,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC5F,wBAAwB,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;AAC/D,mBAAmB,CAAC,WAAW,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAE7D,MAAM,gBAAgB,GAAiB;IACrC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE;QACL;YACE,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,qBAAqB;YAChC,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;SACjB;KACF;CACF,CAAC;AAEF,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,sBAAsB,GAAuB;QACjD,KAAK,EAAE;YACL,cAAc,EAAE;gBACd,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;gBAC1C,KAAK,EAAE;oBACL,MAAM,EAAE,YAAY;oBACpB,QAAQ,EAAE,eAAe;oBACzB,UAAU,EAAE,IAAI,IAAI,EAAE;oBACtB,YAAY,EAAE,IAAI,IAAI,EAAE;oBACxB,kBAAkB,EAAE,IAAI,IAAI,EAAE;iBAC/B;aACF;SACF;QACD,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,OAAO;QACL,oBAAoB,EAAE,gBAAgB;QACtC,iBAAiB,EAAE,CAAC,mBAAmB,CAAC;QACxC,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAExC,MAAM,sBAAsB,GAAG;IAC7B,cAAc;IACd,WAAW;IACX,YAAY;IACZ,sBAAsB;IACtB,oBAAoB;IACpB,SAAS,EAAE,yBAAyB,CAAC;QACnC;YACE,KAAK,EAAE;gBACL,EAAE,EAAE,UAAU;gBACd,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE;oBACT,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,UAAU;iBACrB;gBACD,cAAc,EAAE,UAAU;aAC3B;YACD,QAAQ,EAAE,CAAC,qBAAqB,CAAC;SAClC;KACF,CAAC;CACH,CAAC;AAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,UAAU,CAAC,GAAG,EAAE,CACd,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;YACnD,mBAAmB,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE;SACjD,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CACvB,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE;YAC7C,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,mBAAmB,CAAC,OAAO;YACpC,SAAS,EAAE,mBAAmB,CAAC,OAAO;iBACnC,SAAS,CAAC,qBAAqB,GAAG,yBAAyB,CAAC;iBAC5D,YAAY,CAAC,cAAc,CAAC;iBAC5B,QAAQ,EAAE;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,cAAc,CAAC;QAC3B,OAAO,EAAE;YACP,aAAa,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK;SAC9C;QACD,cAAc,EAAE;YACd,aAAa,EAAE;gBACb,OAAO,EAAE;oBACP,gBAAgB,EAAE;wBAChB,IAAI,EAAE;4BACJ,KAAK,EAAE;gCACL;oCACE,OAAO,EAAE;wCACP,QAAQ,EAAE;4CACR,KAAK,EAAE,MAAM;4CACb,wBAAwB,EAAE,IAAI;4CAC9B,SAAS,EAAE,YAAY;4CACvB,MAAM,EAAE,KAAK;4CACb,IAAI,EAAE,UAAU;yCACjB;qCACF;oCACD,aAAa,EAAE;wCACb,QAAQ,EAAE;4CACR,UAAU,EAAE,UAAU;4CACtB,IAAI,EAAE,KAAK;4CACX,IAAI,EAAE,KAAK;4CACX,OAAO,EAAE,sBAAsB;yCAChC;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;SACF;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,GACpB,GAAG,UAAU,CACZ,GAAG,EAAE,CACH,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;YACnD,mBAAmB,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE;SACrD,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EACxB;YACE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAY;SACzE,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;YACtC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACjC,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,GACpB,GAAG,UAAU,CACZ,GAAG,EAAE,CACH,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;YACnD,mBAAmB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;SAC5C,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EACxB;YACE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAY;SACzE,CACF,CAAC;QAEF,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAkC,CAAA,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpE,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,GACpB,GAAG,UAAU,CACZ,GAAG,EAAE,CACH,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;YACnD,mBAAmB,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE;SACpD,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EACxB;YACE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAY;SACzE,CACF,CAAC;QAEF,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAkC,CAAA,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpE,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @jest-environment jsdom
3
- */
4
- export {};
5
- //# sourceMappingURL=createNetworkConfiguration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNetworkConfiguration.test.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,246 +0,0 @@
1
- /**
2
- * @jest-environment jsdom
3
- */
4
- import { BigNumber } from "bignumber.js";
5
- import { genAccount, genTokenAccount } from "@ledgerhq/coin-framework/lib/mocks/account";
6
- import { createFixtureCryptoCurrency } from "../../../mock/fixtures/cryptoCurrencies";
7
- import { createNetworkConfigurationHook } from "../createNetworkConfiguration";
8
- import { renderHook } from "@testing-library/react";
9
- import { makeUsdcToken } from "./createAssetConfiguration.test";
10
- const bscCurrency = createFixtureCryptoCurrency("bsc");
11
- const bscAccount = genAccount("bsc-account", { currency: bscCurrency });
12
- const bscUsdcToken = makeUsdcToken(bscCurrency, "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d", "bep20", "USD Coin", "bsc/erc20/usdc");
13
- const bscUsdcTokenAccount = genTokenAccount(0, bscAccount, bscUsdcToken);
14
- bscAccount.subAccounts = [bscUsdcTokenAccount];
15
- const baseCurrency = createFixtureCryptoCurrency("base");
16
- const baseAccount = genAccount("base-account", { currency: baseCurrency });
17
- const baseUsdcToken = makeUsdcToken(baseCurrency, "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "erc20", "USD Coin", "base/erc20/usd_coin");
18
- const baseUsdcTokenAccount = genTokenAccount(0, baseAccount, baseUsdcToken);
19
- baseAccount.subAccounts = [baseUsdcTokenAccount];
20
- const ethereumCurrency = createFixtureCryptoCurrency("ethereum");
21
- const ethereumAccountHigh = genAccount("ethereum-account-high", {
22
- currency: ethereumCurrency,
23
- });
24
- ethereumAccountHigh.balance = new BigNumber("1000000000000000000000");
25
- ethereumAccountHigh.spendableBalance = ethereumAccountHigh.balance;
26
- const ethereumUsdcToken = makeUsdcToken(ethereumCurrency, "0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "erc20", "USD Coin");
27
- const ethereumUsdcTokenAccount = genTokenAccount(0, ethereumAccountHigh, ethereumUsdcToken);
28
- ethereumAccountHigh.subAccounts = [ethereumUsdcTokenAccount];
29
- const ethereumAccountLow = genAccount("ethereum-account-low", {
30
- currency: ethereumCurrency,
31
- });
32
- ethereumAccountLow.balance = new BigNumber("100000000000000000");
33
- ethereumAccountLow.spendableBalance = ethereumAccountLow.balance;
34
- const ethereumAccountZero = genAccount("ethereum-account-zero", {
35
- currency: ethereumCurrency,
36
- });
37
- ethereumAccountZero.balance = new BigNumber("0");
38
- ethereumAccountZero.spendableBalance = ethereumAccountZero.balance;
39
- const polygonCurrency = createFixtureCryptoCurrency("polygon");
40
- const polygonAccountMedium = genAccount("polygon-account-medium", {
41
- currency: polygonCurrency,
42
- });
43
- polygonAccountMedium.balance = new BigNumber("500000000000000000000");
44
- polygonAccountMedium.spendableBalance = polygonAccountMedium.balance;
45
- const polygonUsdcToken = makeUsdcToken(polygonCurrency, "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", "erc20", "USD Coin");
46
- const polygonUsdcTokenAccount = genTokenAccount(0, polygonAccountMedium, polygonUsdcToken);
47
- polygonAccountMedium.subAccounts = [polygonUsdcTokenAccount];
48
- const makeAccountData = (asset, count) => ({
49
- asset,
50
- label: `${count} account`,
51
- count,
52
- });
53
- const useAccountData = () => {
54
- return [
55
- makeAccountData(createFixtureCryptoCurrency("ethereum"), 3),
56
- makeAccountData(createFixtureCryptoCurrency("polygon"), 1),
57
- makeAccountData(createFixtureCryptoCurrency("bsc"), 2),
58
- makeAccountData(createFixtureCryptoCurrency("base"), 1),
59
- makeAccountData(createFixtureCryptoCurrency("avalanche_c_chain"), 0),
60
- ];
61
- };
62
- const mockFiatCurrency = {
63
- type: "FiatCurrency",
64
- ticker: "USD",
65
- name: "US Dollar",
66
- symbol: "$",
67
- units: [
68
- {
69
- code: "$",
70
- name: "US Dollar",
71
- magnitude: 2,
72
- showAllDigits: true,
73
- prefixCode: true,
74
- },
75
- ],
76
- };
77
- const accountsCount = jest.fn(() => null);
78
- const accountsCountAndApy = () => null;
79
- const useBalanceDeps = () => {
80
- const mockCounterValuesState = {
81
- cache: {
82
- "USD testCoinId": {
83
- fallback: 2354.213,
84
- map: new Map(),
85
- stats: {
86
- oldest: "2024-09-12",
87
- earliest: "2025-10-02T13",
88
- oldestDate: new Date(),
89
- earliestDate: new Date(),
90
- earliestStableDate: new Date(),
91
- },
92
- },
93
- },
94
- data: {},
95
- status: {},
96
- };
97
- return {
98
- counterValueCurrency: mockFiatCurrency,
99
- flattenedAccounts: [
100
- bscAccount,
101
- bscUsdcTokenAccount,
102
- baseAccount,
103
- baseUsdcTokenAccount,
104
- ethereumAccountHigh,
105
- ethereumUsdcTokenAccount,
106
- ethereumAccountLow,
107
- ethereumAccountZero,
108
- polygonAccountMedium,
109
- polygonUsdcTokenAccount,
110
- ],
111
- state: mockCounterValuesState,
112
- locale: "en-US",
113
- };
114
- };
115
- const balanceItem = jest.fn(() => null);
116
- const networkConfigurationDeps = {
117
- useAccountData,
118
- accountsCount,
119
- accountsCountAndApy,
120
- useBalanceDeps,
121
- balanceItem,
122
- };
123
- describe("createNetworkConfiguration", () => {
124
- beforeEach(() => {
125
- jest.clearAllMocks();
126
- });
127
- it("should call balanceItem with correct BalanceUI objects for each network", () => {
128
- const { result } = renderHook(() => createNetworkConfigurationHook(networkConfigurationDeps));
129
- const res = result.current({ networksConfig: { rightElement: "balance" } });
130
- res([baseCurrency, bscCurrency], [baseUsdcToken, bscUsdcToken]);
131
- expect(balanceItem).toHaveBeenCalledTimes(2);
132
- expect(balanceItem).toHaveBeenNthCalledWith(1, expect.objectContaining({ balance: baseUsdcTokenAccount.balance }));
133
- expect(balanceItem).toHaveBeenNthCalledWith(2, expect.objectContaining({ balance: bscUsdcTokenAccount.balance }));
134
- });
135
- it("account count", () => {
136
- const { result } = renderHook(() => createNetworkConfigurationHook(networkConfigurationDeps));
137
- const res = result.current({ networksConfig: { leftElement: "numberOfAccounts" } });
138
- res([baseCurrency, bscCurrency], [baseUsdcToken, bscUsdcToken]);
139
- expect(accountsCount).toHaveBeenCalledTimes(4);
140
- expect(accountsCount).toHaveBeenNthCalledWith(1, { label: "3 account" });
141
- });
142
- it("should order by balance (highest first) when only balance element is present", () => {
143
- const { result } = renderHook(() => createNetworkConfigurationHook(networkConfigurationDeps));
144
- const res = result.current({
145
- networksConfig: { rightElement: "balance" },
146
- });
147
- const orderedResult = res([ethereumCurrency, polygonCurrency, bscCurrency], [ethereumUsdcToken, polygonUsdcToken, bscUsdcToken]);
148
- expect(orderedResult).toHaveLength(3);
149
- // Should be ordered by balance amount (highest first)
150
- expect(orderedResult[0].id).toBe(ethereumCurrency.id); // 1000 ETH
151
- expect(orderedResult[1].id).toBe(polygonCurrency.id); // 500 MATIC
152
- expect(orderedResult[2].id).toBe(bscCurrency.id); // Lower balance
153
- });
154
- it("should order by account count (highest first) when only account count element is present", () => {
155
- const { result } = renderHook(() => createNetworkConfigurationHook(networkConfigurationDeps));
156
- const res = result.current({
157
- networksConfig: { leftElement: "numberOfAccounts" },
158
- });
159
- const orderedResult = res([ethereumCurrency, polygonCurrency, bscCurrency], [ethereumUsdcToken, polygonUsdcToken, bscUsdcToken]);
160
- expect(orderedResult).toHaveLength(3);
161
- // Should be ordered by account count (highest first)
162
- expect(orderedResult[0].id).toBe(ethereumCurrency.id); // 3 accounts
163
- expect(orderedResult[1].id).toBe(bscCurrency.id); // 2 accounts
164
- expect(orderedResult[2].id).toBe(polygonCurrency.id); // 1 account
165
- });
166
- it("should handle networks with zero balances by ordering them by account count", () => {
167
- const zeroBalanceEth = { ...ethereumAccountZero };
168
- const zeroBalancePoly = {
169
- ...polygonAccountMedium,
170
- balance: new BigNumber("0"),
171
- spendableBalance: new BigNumber("0"),
172
- };
173
- const mockUseBalanceDepsZero = () => ({
174
- counterValueCurrency: {
175
- type: "FiatCurrency",
176
- ticker: "USD",
177
- name: "US Dollar",
178
- symbol: "$",
179
- units: [
180
- { code: "$", name: "US Dollar", magnitude: 2, showAllDigits: true, prefixCode: true },
181
- ],
182
- },
183
- flattenedAccounts: [zeroBalanceEth, zeroBalancePoly],
184
- state: { cache: {}, data: {}, status: {} },
185
- locale: "en-US",
186
- });
187
- const { result } = renderHook(() => createNetworkConfigurationHook({
188
- ...networkConfigurationDeps,
189
- useBalanceDeps: mockUseBalanceDepsZero,
190
- }));
191
- const res = result.current({
192
- networksConfig: { leftElement: "numberOfAccounts", rightElement: "balance" },
193
- });
194
- const orderedResult = res([ethereumCurrency, polygonCurrency], [ethereumUsdcToken, polygonUsdcToken]);
195
- expect(orderedResult).toHaveLength(2);
196
- // When both have zero balance, should order by account count
197
- expect(orderedResult[0].id).toBe(ethereumCurrency.id); // 3 accounts
198
- expect(orderedResult[1].id).toBe(polygonCurrency.id); // 1 account
199
- });
200
- it("should prioritise non-zero balances over account count", () => {
201
- const testEthereumCurrency = createFixtureCryptoCurrency("ethereum");
202
- const testPolygonCurrency = createFixtureCryptoCurrency("polygon");
203
- const testAvalancheCurrency = createFixtureCryptoCurrency("avalanche_c_chain");
204
- const testArbitrumCurrency = createFixtureCryptoCurrency("arbitrum");
205
- const testEthereumAccount = genAccount("test-ethereum-account", {
206
- currency: testEthereumCurrency,
207
- });
208
- testEthereumAccount.balance = new BigNumber("1000000000000000000000");
209
- testEthereumAccount.spendableBalance = testEthereumAccount.balance;
210
- const testPolygonAccount = genAccount("test-polygon-account", {
211
- currency: testPolygonCurrency,
212
- });
213
- testPolygonAccount.balance = new BigNumber("500000000000000000000");
214
- testPolygonAccount.spendableBalance = testPolygonAccount.balance;
215
- const testEthereumUsdcToken = makeUsdcToken(testEthereumCurrency, "0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eb48");
216
- const testPolygonUsdcToken = makeUsdcToken(testPolygonCurrency, "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174");
217
- const testAvalancheUsdcToken = makeUsdcToken(testAvalancheCurrency, "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E");
218
- const testArbitrumUsdcToken = makeUsdcToken(testArbitrumCurrency, "0xFF970A61A04b1cA14834A43f5de4533eBDDB5CC8");
219
- const testUseBalanceDeps = () => ({
220
- counterValueCurrency: mockFiatCurrency,
221
- flattenedAccounts: [testEthereumAccount, testPolygonAccount],
222
- state: { cache: {}, data: {}, status: {} },
223
- locale: "en-US",
224
- });
225
- const testUseAccountData = () => [
226
- makeAccountData(testEthereumCurrency, 3),
227
- makeAccountData(testPolygonCurrency, 1),
228
- makeAccountData(testAvalancheCurrency, 1),
229
- makeAccountData(testArbitrumCurrency, 2),
230
- ];
231
- const { result } = renderHook(() => createNetworkConfigurationHook({
232
- ...networkConfigurationDeps,
233
- useAccountData: testUseAccountData,
234
- useBalanceDeps: testUseBalanceDeps,
235
- }));
236
- const res = result.current({
237
- networksConfig: { leftElement: "numberOfAccounts", rightElement: "balance" },
238
- });
239
- const orderedResult = res([testEthereumCurrency, testPolygonCurrency, testAvalancheCurrency, testArbitrumCurrency], [testEthereumUsdcToken, testPolygonUsdcToken, testAvalancheUsdcToken, testArbitrumUsdcToken]);
240
- expect(orderedResult[0].id).toBe(testEthereumCurrency.id); // 1000 ETH balance, 3 accounts
241
- expect(orderedResult[1].id).toBe(testPolygonCurrency.id); // 500 MATIC balance, 1 account
242
- expect(orderedResult[2].id).toBe(testArbitrumCurrency.id); // (0 balance, 2 accounts)
243
- expect(orderedResult[3].id).toBe(testAvalancheCurrency.id); // (0 balance, 1 account)
244
- });
245
- });
246
- //# sourceMappingURL=createNetworkConfiguration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNetworkConfiguration.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts"],"names":[],"mappings":"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"}
@@ -1,86 +0,0 @@
1
- import { HttpManagerApiRepository, ApplicationV2Entity } from "@ledgerhq/device-core";
2
- import { version } from "@ledgerhq/device-core/package.json";
3
- import { getEnv } from "@ledgerhq/live-env";
4
- import { DeviceModelId } from "@ledgerhq/devices";
5
- import { Device as CryptoWallet } from "./enum/Device";
6
- import * as fs from "fs";
7
- import * as path from "path";
8
-
9
- export function getSpeculosModel(): DeviceModelId {
10
- const speculosDevice = process.env.SPECULOS_DEVICE;
11
- switch (speculosDevice) {
12
- case CryptoWallet.LNS.name:
13
- return DeviceModelId.nanoS;
14
- case CryptoWallet.LNX.name:
15
- return DeviceModelId.nanoX;
16
- case CryptoWallet.LNSP.name:
17
- default:
18
- return DeviceModelId.nanoSP;
19
- }
20
- }
21
-
22
- function getDeviceTargetId(device: DeviceModelId): number {
23
- const modelToTargetIdMap = {
24
- [DeviceModelId.nanoS]: CryptoWallet.LNS.targetId,
25
- [DeviceModelId.nanoX]: CryptoWallet.LNX.targetId,
26
- [DeviceModelId.nanoSP]: CryptoWallet.LNSP.targetId,
27
- };
28
- return modelToTargetIdMap[device];
29
- }
30
-
31
- export async function getNanoAppCatalog(
32
- device: DeviceModelId,
33
- deviceFirmware: string,
34
- ): Promise<ApplicationV2Entity[]> {
35
- const repository = new HttpManagerApiRepository(getEnv("MANAGER_API_BASE"), version);
36
- const targetId = getDeviceTargetId(device);
37
- return await repository.catalogForDevice({
38
- provider: 1,
39
- targetId: targetId,
40
- firmwareVersion: deviceFirmware,
41
- });
42
- }
43
-
44
- function getDeviceFirmwareVersion(): string {
45
- const firmwareVersion = process.env.SPECULOS_FIRMWARE_VERSION;
46
- if (!firmwareVersion) {
47
- throw new Error("SPECULOS_FIRMWARE_VERSION environment variable is not set");
48
- }
49
- return firmwareVersion;
50
- }
51
-
52
- export async function createNanoAppJsonFile(nanoAppFilePath: string): Promise<void> {
53
- try {
54
- const device = getSpeculosModel();
55
- const firmware = getDeviceFirmwareVersion();
56
- const appCatalog = await getNanoAppCatalog(device, firmware);
57
- const jsonFilePath = path.join(process.cwd(), nanoAppFilePath);
58
- const dirPath = path.dirname(jsonFilePath);
59
- if (!fs.existsSync(dirPath)) {
60
- fs.mkdirSync(dirPath, { recursive: true });
61
- }
62
- fs.writeFileSync(jsonFilePath, JSON.stringify(appCatalog, null, 2), "utf8");
63
- } catch (error) {
64
- console.error("Unable to create app version file:", error);
65
- }
66
- }
67
-
68
- export async function getAppVersionFromCatalog(
69
- currency: string,
70
- nanoAppFilePath: string,
71
- ): Promise<string | undefined> {
72
- try {
73
- await createNanoAppJsonFile(nanoAppFilePath);
74
- const rootDir = process.cwd();
75
- const jsonFilePath = path.join(rootDir, nanoAppFilePath);
76
- type CatalogApp = { versionDisplayName: string; version: string };
77
- const raw = fs.readFileSync(jsonFilePath, "utf8");
78
- const catalog: CatalogApp[] = JSON.parse(raw);
79
-
80
- const app = catalog.find(entry => entry.versionDisplayName === currency);
81
-
82
- return app?.version ?? "";
83
- } catch (error) {
84
- console.error(`Unable to get app version for ${currency} from catalog:`, error);
85
- }
86
- }
@@ -1,40 +0,0 @@
1
- import { genAccount } from "@ledgerhq/coin-framework/lib/mocks/account";
2
- import { useAssetAccountCounts } from "../useAssetAccountCounts";
3
- import { createFixtureCryptoCurrency } from "../../../mock/fixtures/cryptoCurrencies";
4
-
5
- const ethereumCurrency = createFixtureCryptoCurrency("ethereum");
6
- const ethereumAccountHigh = genAccount("ethereum-account-high", {
7
- currency: ethereumCurrency,
8
- });
9
-
10
- describe("useAssetAccountCounts", () => {
11
- it("should return the count for one account", () => {
12
- const assetAccountCounts = useAssetAccountCounts({
13
- assets: [ethereumCurrency],
14
- nestedAccounts: [ethereumAccountHigh],
15
- accountIds: new Map([[ethereumAccountHigh.id, true]]),
16
- formatLabel: (count: number) => `${count}`,
17
- });
18
-
19
- expect(assetAccountCounts[0].count).toBe(1);
20
- expect(assetAccountCounts[0].label).toBe("1");
21
- });
22
-
23
- it("should return the count for two accounts on ethereum", () => {
24
- const ethereumAccountLow = genAccount("ethereum-account-low", {
25
- currency: ethereumCurrency,
26
- });
27
- const assetAccountCounts = useAssetAccountCounts({
28
- assets: [ethereumCurrency],
29
- nestedAccounts: [ethereumAccountHigh, ethereumAccountLow],
30
- accountIds: new Map([
31
- [ethereumAccountHigh.id, true],
32
- [ethereumAccountLow.id, true],
33
- ]),
34
- formatLabel: (count: number) => `${count}`,
35
- });
36
-
37
- expect(assetAccountCounts[0].count).toBe(2);
38
- expect(assetAccountCounts[0].label).toBe("2");
39
- });
40
- });