@ledgerhq/live-common 34.33.0-nightly.5 → 34.33.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 (68) hide show
  1. package/lib/DataModel.d.ts.map +1 -1
  2. package/lib/DataModel.js +0 -8
  3. package/lib/DataModel.js.map +1 -1
  4. package/lib/DataModel.test.js +0 -46
  5. package/lib/DataModel.test.js.map +1 -1
  6. package/lib/families/evm/config.d.ts.map +1 -1
  7. package/lib/families/evm/config.js +0 -63
  8. package/lib/families/evm/config.js.map +1 -1
  9. package/lib/families/solana/banner.test.js +0 -1
  10. package/lib/families/solana/banner.test.js.map +1 -1
  11. package/lib/wallet-api/Exchange/server.d.ts +1 -6
  12. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  13. package/lib/wallet-api/Exchange/server.js +1 -11
  14. package/lib/wallet-api/Exchange/server.js.map +1 -1
  15. package/lib/wallet-api/Exchange/server.test.js +0 -2
  16. package/lib/wallet-api/Exchange/server.test.js.map +1 -1
  17. package/lib/wallet-api/constants.d.ts +1 -1
  18. package/lib-es/DataModel.d.ts.map +1 -1
  19. package/lib-es/DataModel.js +0 -8
  20. package/lib-es/DataModel.js.map +1 -1
  21. package/lib-es/DataModel.test.js +0 -46
  22. package/lib-es/DataModel.test.js.map +1 -1
  23. package/lib-es/families/evm/config.d.ts.map +1 -1
  24. package/lib-es/families/evm/config.js +0 -63
  25. package/lib-es/families/evm/config.js.map +1 -1
  26. package/lib-es/families/solana/banner.test.js +0 -1
  27. package/lib-es/families/solana/banner.test.js.map +1 -1
  28. package/lib-es/wallet-api/Exchange/server.d.ts +1 -6
  29. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  30. package/lib-es/wallet-api/Exchange/server.js +1 -11
  31. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  32. package/lib-es/wallet-api/Exchange/server.test.js +0 -2
  33. package/lib-es/wallet-api/Exchange/server.test.js.map +1 -1
  34. package/lib-es/wallet-api/constants.d.ts +1 -1
  35. package/package.json +47 -47
  36. package/src/DataModel.test.ts +0 -51
  37. package/src/DataModel.ts +2 -8
  38. package/src/families/evm/config.ts +0 -63
  39. package/src/families/solana/banner.test.ts +0 -1
  40. package/src/wallet-api/Exchange/server.test.ts +0 -2
  41. package/src/wallet-api/Exchange/server.ts +0 -15
  42. package/lib/domain/getTokensWithFunds.d.ts +0 -3
  43. package/lib/domain/getTokensWithFunds.d.ts.map +0 -1
  44. package/lib/domain/getTokensWithFunds.js +0 -36
  45. package/lib/domain/getTokensWithFunds.js.map +0 -1
  46. package/lib/domain/getTokensWithFunds.test.d.ts +0 -2
  47. package/lib/domain/getTokensWithFunds.test.d.ts.map +0 -1
  48. package/lib/domain/getTokensWithFunds.test.js +0 -71
  49. package/lib/domain/getTokensWithFunds.test.js.map +0 -1
  50. package/lib/market/hooks/useLargeMoverDataProvider.d.ts +0 -17
  51. package/lib/market/hooks/useLargeMoverDataProvider.d.ts.map +0 -1
  52. package/lib/market/hooks/useLargeMoverDataProvider.js +0 -48
  53. package/lib/market/hooks/useLargeMoverDataProvider.js.map +0 -1
  54. package/lib-es/domain/getTokensWithFunds.d.ts +0 -3
  55. package/lib-es/domain/getTokensWithFunds.d.ts.map +0 -1
  56. package/lib-es/domain/getTokensWithFunds.js +0 -32
  57. package/lib-es/domain/getTokensWithFunds.js.map +0 -1
  58. package/lib-es/domain/getTokensWithFunds.test.d.ts +0 -2
  59. package/lib-es/domain/getTokensWithFunds.test.d.ts.map +0 -1
  60. package/lib-es/domain/getTokensWithFunds.test.js +0 -66
  61. package/lib-es/domain/getTokensWithFunds.test.js.map +0 -1
  62. package/lib-es/market/hooks/useLargeMoverDataProvider.d.ts +0 -17
  63. package/lib-es/market/hooks/useLargeMoverDataProvider.d.ts.map +0 -1
  64. package/lib-es/market/hooks/useLargeMoverDataProvider.js +0 -44
  65. package/lib-es/market/hooks/useLargeMoverDataProvider.js.map +0 -1
  66. package/src/domain/getTokensWithFunds.test.ts +0 -94
  67. package/src/domain/getTokensWithFunds.ts +0 -36
  68. package/src/market/hooks/useLargeMoverDataProvider.ts +0 -70
@@ -1,17 +0,0 @@
1
- import { CurrencyData, MarketCoinDataChart } from "../utils/types";
2
- type UseLargeMoverDataProviderParams = {
3
- ids: string[];
4
- counterCurrency: string;
5
- range: string;
6
- };
7
- export declare const useLargeMoverDataProvider: ({ ids, counterCurrency, range, }: UseLargeMoverDataProviderParams) => {
8
- currencies: {
9
- id: string;
10
- data?: CurrencyData;
11
- chartData?: MarketCoinDataChart;
12
- isLoading: boolean;
13
- isError: boolean;
14
- }[];
15
- };
16
- export {};
17
- //# sourceMappingURL=useLargeMoverDataProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLargeMoverDataProvider.d.ts","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAMvF,KAAK,+BAA+B,GAAG;IACrC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,eAAO,MAAM,yBAAyB,qCAInC,+BAA+B;gBACpB;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,EAAE;CAsCJ,CAAC"}
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useLargeMoverDataProvider = void 0;
4
- const react_query_1 = require("@tanstack/react-query");
5
- const api_1 = require("../api");
6
- const queryKeys_1 = require("../utils/queryKeys");
7
- const timers_1 = require("../utils/timers");
8
- const currencyFormatter_1 = require("../utils/currencyFormatter");
9
- const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
10
- const cryptoCurrenciesList = [...(0, currencies_1.listCryptoCurrencies)()];
11
- function mapIdsToQueries(ids, queries) {
12
- return Object.fromEntries(ids.map((id, index) => [id, queries[index]]));
13
- }
14
- const useLargeMoverDataProvider = ({ ids, counterCurrency, range, }) => {
15
- const currencyQueries = (0, react_query_1.useQueries)({
16
- queries: ids.map(id => ({
17
- queryKey: [queryKeys_1.QUERY_KEY.CurrencyDataRaw, id, counterCurrency],
18
- queryFn: () => (0, api_1.fetchCurrency)({ id, counterCurrency }),
19
- refetchInterval: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
20
- staleTime: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
21
- select: (data) => (0, currencyFormatter_1.format)(data, cryptoCurrenciesList),
22
- })),
23
- });
24
- const chartQueries = (0, react_query_1.useQueries)({
25
- queries: ids.map(id => ({
26
- queryKey: [queryKeys_1.QUERY_KEY.CurrencyChartData, id, counterCurrency, range],
27
- queryFn: () => (0, api_1.fetchCurrencyChartData)({ id, counterCurrency, range }),
28
- refetchInterval: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
29
- staleTime: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
30
- })),
31
- });
32
- const currencyQueryMap = mapIdsToQueries(ids, currencyQueries);
33
- const chartQueryMap = mapIdsToQueries(ids, chartQueries);
34
- const currencies = ids.map(id => {
35
- const currencyQuery = currencyQueryMap[id];
36
- const chartQuery = chartQueryMap[id];
37
- return {
38
- id,
39
- data: currencyQuery?.data,
40
- chartData: chartQuery?.data,
41
- isLoading: currencyQuery?.isLoading || chartQuery?.isLoading || false,
42
- isError: currencyQuery?.isError || chartQuery?.isError || false,
43
- };
44
- });
45
- return { currencies };
46
- };
47
- exports.useLargeMoverDataProvider = useLargeMoverDataProvider;
48
- //# sourceMappingURL=useLargeMoverDataProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLargeMoverDataProvider.js","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,gCAA+D;AAC/D,kDAA+C;AAC/C,4CAAyE;AAEzE,kEAAoD;AACpD,kEAAyE;AAEzE,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAA,iCAAoB,GAAE,CAAC,CAAC;AAQzD,SAAS,eAAe,CAAI,GAAa,EAAE,OAAY;IACrD,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAEM,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,eAAe,EACf,KAAK,GAC2B,EAQhC,EAAE;IACF,MAAM,eAAe,GAAG,IAAA,wBAAU,EAAC;QACjC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,qBAAS,CAAC,eAAe,EAAE,EAAE,EAAE,eAAe,CAAC;YAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAa,EAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;YACrD,eAAe,EAAE,gCAAuB,GAAG,sBAAa;YACxD,SAAS,EAAE,gCAAuB,GAAG,sBAAa;YAClD,MAAM,EAAE,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAA,0BAAM,EAAC,IAAI,EAAE,oBAAoB,CAAC;SACzE,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAA,wBAAU,EAAC;QAC9B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,qBAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,4BAAsB,EAAC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACrE,eAAe,EAAE,gCAAuB,GAAG,sBAAa;YACxD,SAAS,EAAE,gCAAuB,GAAG,sBAAa;SACnD,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAC9B,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAErC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,aAAa,EAAE,IAAI;YACzB,SAAS,EAAE,UAAU,EAAE,IAAI;YAC3B,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,IAAI,KAAK;YACrE,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,KAAK;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC,CAAC;AAjDW,QAAA,yBAAyB,6BAiDpC"}
@@ -1,3 +0,0 @@
1
- import { Account } from "@ledgerhq/types-live";
2
- export declare const getTokensWithFunds: (accounts: Account[]) => string[];
3
- //# sourceMappingURL=getTokensWithFunds.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTokensWithFunds.d.ts","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,eAAO,MAAM,kBAAkB,aAAc,OAAO,EAAE,KAAG,MAAM,EAgC9D,CAAC"}
@@ -1,32 +0,0 @@
1
- import { getParentAccount } from "@ledgerhq/coin-framework/account/helpers";
2
- export const getTokensWithFunds = (accounts) => {
3
- if (!accounts?.length)
4
- return [];
5
- const tokensMap = new Map();
6
- for (const account of accounts) {
7
- const { balance, currency } = account || {};
8
- if (!balance?.gt(0) || !currency)
9
- continue;
10
- const parentAccount = getParentAccount(account, accounts);
11
- const networkName = parentAccount?.currency?.name;
12
- if (!networkName)
13
- continue;
14
- const mainKey = `${currency.ticker}:${networkName}`;
15
- tokensMap.set(mainKey, {
16
- ticker: currency.ticker,
17
- networkName,
18
- });
19
- account.subAccounts?.forEach(subAccount => {
20
- const { balance, token } = subAccount || {};
21
- if (!balance?.gt(0) || !token)
22
- return;
23
- const subKey = `${token.ticker}:${networkName}`;
24
- tokensMap.set(subKey, {
25
- ticker: token.ticker,
26
- networkName,
27
- });
28
- });
29
- }
30
- return Array.from(tokensMap.values(), ({ ticker, networkName }) => `${ticker} on ${networkName}`);
31
- };
32
- //# sourceMappingURL=getTokensWithFunds.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTokensWithFunds.js","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAmB,EAAY,EAAE;IAClE,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmD,CAAC;IAE7E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC;QAClD,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;QACpD,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;YACxC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEtC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YAChD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,WAAW;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,WAAW,EAAE,CAAC,CAAC;AACpG,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getTokensWithFunds.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTokensWithFunds.test.d.ts","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.test.ts"],"names":[],"mappings":""}
@@ -1,66 +0,0 @@
1
- import { genAccount } from "@ledgerhq/coin-framework/lib/mocks/account";
2
- import { getCryptoCurrencyById } from "@ledgerhq/live-common/currencies/index";
3
- import BigNumber from "bignumber.js";
4
- import { getTokensWithFunds } from "./getTokensWithFunds";
5
- const ETH = getCryptoCurrencyById("ethereum");
6
- const mockedAccounts = [
7
- genAccount("mocked-account-2", {
8
- currency: ETH,
9
- }),
10
- ];
11
- describe("getTokensWithFunds", () => {
12
- it("should return empty array if no accounts", () => {
13
- const result = getTokensWithFunds([]);
14
- expect(result).toEqual([]);
15
- });
16
- it("should return array with accounts with funds", () => {
17
- const account = mockedAccounts[0];
18
- const result = getTokensWithFunds(mockedAccounts);
19
- expect(account.balance).toBeTruthy();
20
- expect(account.balance instanceof BigNumber).toBe(true);
21
- expect(account.balance.gt(0)).toBe(true);
22
- expect(account.subAccounts).toBeDefined();
23
- expect(account.subAccounts?.length).toBe(2);
24
- const [zrxAccount, repAccount] = account.subAccounts || [];
25
- expect(zrxAccount.balance).toBeTruthy();
26
- expect(zrxAccount.balance instanceof BigNumber).toBe(true);
27
- expect(zrxAccount.balance.gt(0)).toBe(true);
28
- expect(repAccount.balance).toBeTruthy();
29
- expect(repAccount.balance instanceof BigNumber).toBe(true);
30
- expect(repAccount.balance.gt(0)).toBe(true);
31
- expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum", "REP on Ethereum"]);
32
- });
33
- it("should return array with accounts with funds", () => {
34
- const account = mockedAccounts[0];
35
- expect(account.balance).toBeTruthy();
36
- expect(account.balance instanceof BigNumber).toBe(true);
37
- expect(account.balance.gt(0)).toBe(true);
38
- expect(account.subAccounts).toBeDefined();
39
- expect(account.subAccounts?.length).toBe(2);
40
- const [zrxAccount, repAccount] = account.subAccounts || [];
41
- const emptyRepAccount = { ...repAccount, balance: new BigNumber(0) };
42
- expect(zrxAccount.balance).toBeTruthy();
43
- expect(zrxAccount.balance instanceof BigNumber).toBe(true);
44
- expect(zrxAccount.balance.gt(0)).toBe(true);
45
- expect(emptyRepAccount.balance).toBeTruthy();
46
- expect(emptyRepAccount.balance instanceof BigNumber).toBe(true);
47
- expect(emptyRepAccount.balance.gt(0)).toBe(false);
48
- const accounts = { ...account, subAccounts: [zrxAccount, emptyRepAccount] };
49
- const result = getTokensWithFunds([accounts]);
50
- expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum"]);
51
- });
52
- it("should return array with accounts with funds without duplication", () => {
53
- const account = mockedAccounts[0];
54
- expect(account.balance).toBeTruthy();
55
- expect(account.balance instanceof BigNumber).toBe(true);
56
- expect(account.balance.gt(0)).toBe(true);
57
- expect(account.subAccounts).toBeDefined();
58
- expect(account.subAccounts?.length).toBe(2);
59
- const [zrxAccount, repAccount] = account.subAccounts || [];
60
- const accounts = { ...account, subAccounts: [zrxAccount, repAccount, repAccount] };
61
- expect(accounts.subAccounts.length).toBe(3);
62
- const result = getTokensWithFunds([accounts]);
63
- expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum", "REP on Ethereum"]);
64
- });
65
- });
66
- //# sourceMappingURL=getTokensWithFunds.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTokensWithFunds.test.js","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { CurrencyData, MarketCoinDataChart } from "../utils/types";
2
- type UseLargeMoverDataProviderParams = {
3
- ids: string[];
4
- counterCurrency: string;
5
- range: string;
6
- };
7
- export declare const useLargeMoverDataProvider: ({ ids, counterCurrency, range, }: UseLargeMoverDataProviderParams) => {
8
- currencies: {
9
- id: string;
10
- data?: CurrencyData;
11
- chartData?: MarketCoinDataChart;
12
- isLoading: boolean;
13
- isError: boolean;
14
- }[];
15
- };
16
- export {};
17
- //# sourceMappingURL=useLargeMoverDataProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLargeMoverDataProvider.d.ts","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAMvF,KAAK,+BAA+B,GAAG;IACrC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,eAAO,MAAM,yBAAyB,qCAInC,+BAA+B;gBACpB;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,EAAE;CAsCJ,CAAC"}
@@ -1,44 +0,0 @@
1
- import { useQueries } from "@tanstack/react-query";
2
- import { fetchCurrency, fetchCurrencyChartData } from "../api";
3
- import { QUERY_KEY } from "../utils/queryKeys";
4
- import { REFETCH_TIME_ONE_MINUTE, BASIC_REFETCH } from "../utils/timers";
5
- import { format } from "../utils/currencyFormatter";
6
- import { listCryptoCurrencies } from "@ledgerhq/cryptoassets/currencies";
7
- const cryptoCurrenciesList = [...listCryptoCurrencies()];
8
- function mapIdsToQueries(ids, queries) {
9
- return Object.fromEntries(ids.map((id, index) => [id, queries[index]]));
10
- }
11
- export const useLargeMoverDataProvider = ({ ids, counterCurrency, range, }) => {
12
- const currencyQueries = useQueries({
13
- queries: ids.map(id => ({
14
- queryKey: [QUERY_KEY.CurrencyDataRaw, id, counterCurrency],
15
- queryFn: () => fetchCurrency({ id, counterCurrency }),
16
- refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
17
- staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
18
- select: (data) => format(data, cryptoCurrenciesList),
19
- })),
20
- });
21
- const chartQueries = useQueries({
22
- queries: ids.map(id => ({
23
- queryKey: [QUERY_KEY.CurrencyChartData, id, counterCurrency, range],
24
- queryFn: () => fetchCurrencyChartData({ id, counterCurrency, range }),
25
- refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
26
- staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
27
- })),
28
- });
29
- const currencyQueryMap = mapIdsToQueries(ids, currencyQueries);
30
- const chartQueryMap = mapIdsToQueries(ids, chartQueries);
31
- const currencies = ids.map(id => {
32
- const currencyQuery = currencyQueryMap[id];
33
- const chartQuery = chartQueryMap[id];
34
- return {
35
- id,
36
- data: currencyQuery?.data,
37
- chartData: chartQuery?.data,
38
- isLoading: currencyQuery?.isLoading || chartQuery?.isLoading || false,
39
- isError: currencyQuery?.isError || chartQuery?.isError || false,
40
- };
41
- });
42
- return { currencies };
43
- };
44
- //# sourceMappingURL=useLargeMoverDataProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLargeMoverDataProvider.js","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,oBAAoB,GAAG,CAAC,GAAG,oBAAoB,EAAE,CAAC,CAAC;AAQzD,SAAS,eAAe,CAAI,GAAa,EAAE,OAAY;IACrD,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,eAAe,EACf,KAAK,GAC2B,EAQhC,EAAE;IACF,MAAM,eAAe,GAAG,UAAU,CAAC;QACjC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,EAAE,eAAe,CAAC;YAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;YACrD,eAAe,EAAE,uBAAuB,GAAG,aAAa;YACxD,SAAS,EAAE,uBAAuB,GAAG,aAAa;YAClD,MAAM,EAAE,CAAC,IAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC;SACzE,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,UAAU,CAAC;QAC9B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACrE,eAAe,EAAE,uBAAuB,GAAG,aAAa;YACxD,SAAS,EAAE,uBAAuB,GAAG,aAAa;SACnD,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAC9B,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAErC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,aAAa,EAAE,IAAI;YACzB,SAAS,EAAE,UAAU,EAAE,IAAI;YAC3B,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,IAAI,KAAK;YACrE,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,KAAK;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC,CAAC"}
@@ -1,94 +0,0 @@
1
- import { genAccount } from "@ledgerhq/coin-framework/lib/mocks/account";
2
- import { getCryptoCurrencyById } from "@ledgerhq/live-common/currencies/index";
3
- import { Account } from "@ledgerhq/types-live";
4
- import BigNumber from "bignumber.js";
5
- import { getTokensWithFunds } from "./getTokensWithFunds";
6
-
7
- const ETH = getCryptoCurrencyById("ethereum");
8
-
9
- const mockedAccounts: Account[] = [
10
- genAccount("mocked-account-2", {
11
- currency: ETH,
12
- }),
13
- ];
14
-
15
- describe("getTokensWithFunds", () => {
16
- it("should return empty array if no accounts", () => {
17
- const result = getTokensWithFunds([]);
18
- expect(result).toEqual([]);
19
- });
20
-
21
- it("should return array with accounts with funds", () => {
22
- const account = mockedAccounts[0];
23
- const result = getTokensWithFunds(mockedAccounts);
24
-
25
- expect(account.balance).toBeTruthy();
26
- expect(account.balance instanceof BigNumber).toBe(true);
27
- expect(account.balance.gt(0)).toBe(true);
28
-
29
- expect(account.subAccounts).toBeDefined();
30
- expect(account.subAccounts?.length).toBe(2);
31
-
32
- const [zrxAccount, repAccount] = account.subAccounts || [];
33
-
34
- expect(zrxAccount.balance).toBeTruthy();
35
- expect(zrxAccount.balance instanceof BigNumber).toBe(true);
36
- expect(zrxAccount.balance.gt(0)).toBe(true);
37
-
38
- expect(repAccount.balance).toBeTruthy();
39
- expect(repAccount.balance instanceof BigNumber).toBe(true);
40
- expect(repAccount.balance.gt(0)).toBe(true);
41
-
42
- expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum", "REP on Ethereum"]);
43
- });
44
-
45
- it("should return array with accounts with funds", () => {
46
- const account = mockedAccounts[0];
47
-
48
- expect(account.balance).toBeTruthy();
49
- expect(account.balance instanceof BigNumber).toBe(true);
50
- expect(account.balance.gt(0)).toBe(true);
51
-
52
- expect(account.subAccounts).toBeDefined();
53
- expect(account.subAccounts?.length).toBe(2);
54
-
55
- const [zrxAccount, repAccount] = account.subAccounts || [];
56
-
57
- const emptyRepAccount = { ...repAccount, balance: new BigNumber(0) };
58
-
59
- expect(zrxAccount.balance).toBeTruthy();
60
- expect(zrxAccount.balance instanceof BigNumber).toBe(true);
61
- expect(zrxAccount.balance.gt(0)).toBe(true);
62
-
63
- expect(emptyRepAccount.balance).toBeTruthy();
64
- expect(emptyRepAccount.balance instanceof BigNumber).toBe(true);
65
- expect(emptyRepAccount.balance.gt(0)).toBe(false);
66
-
67
- const accounts = { ...account, subAccounts: [zrxAccount, emptyRepAccount] };
68
-
69
- const result = getTokensWithFunds([accounts]);
70
-
71
- expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum"]);
72
- });
73
-
74
- it("should return array with accounts with funds without duplication", () => {
75
- const account = mockedAccounts[0];
76
-
77
- expect(account.balance).toBeTruthy();
78
- expect(account.balance instanceof BigNumber).toBe(true);
79
- expect(account.balance.gt(0)).toBe(true);
80
-
81
- expect(account.subAccounts).toBeDefined();
82
- expect(account.subAccounts?.length).toBe(2);
83
-
84
- const [zrxAccount, repAccount] = account.subAccounts || [];
85
-
86
- const accounts = { ...account, subAccounts: [zrxAccount, repAccount, repAccount] };
87
-
88
- expect(accounts.subAccounts.length).toBe(3);
89
-
90
- const result = getTokensWithFunds([accounts]);
91
-
92
- expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum", "REP on Ethereum"]);
93
- });
94
- });
@@ -1,36 +0,0 @@
1
- import { getParentAccount } from "@ledgerhq/coin-framework/account/helpers";
2
- import { Account } from "@ledgerhq/types-live";
3
-
4
- export const getTokensWithFunds = (accounts: Account[]): string[] => {
5
- if (!accounts?.length) return [];
6
-
7
- const tokensMap = new Map<string, { ticker: string; networkName: string }>();
8
-
9
- for (const account of accounts) {
10
- const { balance, currency } = account || {};
11
- if (!balance?.gt(0) || !currency) continue;
12
-
13
- const parentAccount = getParentAccount(account, accounts);
14
- const networkName = parentAccount?.currency?.name;
15
- if (!networkName) continue;
16
-
17
- const mainKey = `${currency.ticker}:${networkName}`;
18
- tokensMap.set(mainKey, {
19
- ticker: currency.ticker,
20
- networkName,
21
- });
22
-
23
- account.subAccounts?.forEach(subAccount => {
24
- const { balance, token } = subAccount || {};
25
- if (!balance?.gt(0) || !token) return;
26
-
27
- const subKey = `${token.ticker}:${networkName}`;
28
- tokensMap.set(subKey, {
29
- ticker: token.ticker,
30
- networkName,
31
- });
32
- });
33
- }
34
-
35
- return Array.from(tokensMap.values(), ({ ticker, networkName }) => `${ticker} on ${networkName}`);
36
- };
@@ -1,70 +0,0 @@
1
- import { useQueries } from "@tanstack/react-query";
2
- import { fetchCurrency, fetchCurrencyChartData } from "../api";
3
- import { QUERY_KEY } from "../utils/queryKeys";
4
- import { REFETCH_TIME_ONE_MINUTE, BASIC_REFETCH } from "../utils/timers";
5
- import { CurrencyData, MarketCoinDataChart, MarketItemResponse } from "../utils/types";
6
- import { format } from "../utils/currencyFormatter";
7
- import { listCryptoCurrencies } from "@ledgerhq/cryptoassets/currencies";
8
-
9
- const cryptoCurrenciesList = [...listCryptoCurrencies()];
10
-
11
- type UseLargeMoverDataProviderParams = {
12
- ids: string[];
13
- counterCurrency: string;
14
- range: string;
15
- };
16
-
17
- function mapIdsToQueries<T>(ids: string[], queries: T[]): Record<string, T> {
18
- return Object.fromEntries(ids.map((id, index) => [id, queries[index]]));
19
- }
20
-
21
- export const useLargeMoverDataProvider = ({
22
- ids,
23
- counterCurrency,
24
- range,
25
- }: UseLargeMoverDataProviderParams): {
26
- currencies: {
27
- id: string;
28
- data?: CurrencyData;
29
- chartData?: MarketCoinDataChart;
30
- isLoading: boolean;
31
- isError: boolean;
32
- }[];
33
- } => {
34
- const currencyQueries = useQueries({
35
- queries: ids.map(id => ({
36
- queryKey: [QUERY_KEY.CurrencyDataRaw, id, counterCurrency],
37
- queryFn: () => fetchCurrency({ id, counterCurrency }),
38
- refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
39
- staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
40
- select: (data: MarketItemResponse) => format(data, cryptoCurrenciesList),
41
- })),
42
- });
43
-
44
- const chartQueries = useQueries({
45
- queries: ids.map(id => ({
46
- queryKey: [QUERY_KEY.CurrencyChartData, id, counterCurrency, range],
47
- queryFn: () => fetchCurrencyChartData({ id, counterCurrency, range }),
48
- refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
49
- staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
50
- })),
51
- });
52
-
53
- const currencyQueryMap = mapIdsToQueries(ids, currencyQueries);
54
- const chartQueryMap = mapIdsToQueries(ids, chartQueries);
55
-
56
- const currencies = ids.map(id => {
57
- const currencyQuery = currencyQueryMap[id];
58
- const chartQuery = chartQueryMap[id];
59
-
60
- return {
61
- id,
62
- data: currencyQuery?.data,
63
- chartData: chartQuery?.data,
64
- isLoading: currencyQuery?.isLoading || chartQuery?.isLoading || false,
65
- isError: currencyQuery?.isError || chartQuery?.isError || false,
66
- };
67
- });
68
-
69
- return { currencies };
70
- };