@lifi/widget 3.29.1 → 3.30.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 (169) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/esm/components/AmountInput/AmountInputEndAdornment.d.ts +1 -1
  3. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +3 -2
  4. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  5. package/dist/esm/components/AmountInput/PriceFormHelperText.d.ts +1 -1
  6. package/dist/esm/components/AmountInput/PriceFormHelperText.js +3 -2
  7. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  8. package/dist/esm/components/ChainSelect/ChainSelect.js +35 -18
  9. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  10. package/dist/esm/components/ChainSelect/useChainSelect.d.ts +1 -1
  11. package/dist/esm/components/ChainSelect/useChainSelect.js +3 -3
  12. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  13. package/dist/esm/components/Chains/AllChainsAvatar.d.ts +7 -0
  14. package/dist/esm/components/Chains/AllChainsAvatar.js +77 -0
  15. package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -0
  16. package/dist/esm/components/Chains/ChainList.d.ts +2 -1
  17. package/dist/esm/components/Chains/ChainList.js +2 -2
  18. package/dist/esm/components/Chains/ChainList.js.map +1 -1
  19. package/dist/esm/components/Chains/ChainSearchInput.js +2 -2
  20. package/dist/esm/components/Chains/ChainSearchInput.js.map +1 -1
  21. package/dist/esm/components/Chains/SelectChainContent.js +1 -1
  22. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
  23. package/dist/esm/components/Chains/VirtualizedChainList.d.ts +2 -1
  24. package/dist/esm/components/Chains/VirtualizedChainList.js +42 -10
  25. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
  26. package/dist/esm/components/RouteCard/RouteCardEssentials.js +1 -1
  27. package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
  28. package/dist/esm/components/TokenList/TokenDetailsSheet.d.ts +1 -5
  29. package/dist/esm/components/TokenList/TokenDetailsSheet.js +4 -2
  30. package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
  31. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +2 -2
  32. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  33. package/dist/esm/components/TokenList/TokenList.js +11 -53
  34. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  35. package/dist/esm/components/TokenList/TokenListItem.d.ts +1 -1
  36. package/dist/esm/components/TokenList/TokenListItem.js +29 -25
  37. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  38. package/dist/esm/components/TokenList/VirtualizedTokenList.js +56 -37
  39. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  40. package/dist/esm/components/TokenList/types.d.ts +6 -10
  41. package/dist/esm/components/TokenList/useTokenSelect.js +3 -4
  42. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  43. package/dist/esm/components/TransactionDetails.js +2 -2
  44. package/dist/esm/components/TransactionDetails.js.map +1 -1
  45. package/dist/esm/config/version.d.ts +1 -1
  46. package/dist/esm/config/version.js +1 -1
  47. package/dist/esm/hooks/useAccountsBalancesData.d.ts +6 -0
  48. package/dist/esm/hooks/useAccountsBalancesData.js +64 -0
  49. package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -0
  50. package/dist/esm/hooks/useFilteredByTokenBalances.d.ts +8 -0
  51. package/dist/esm/hooks/useFilteredByTokenBalances.js +69 -0
  52. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -0
  53. package/dist/esm/hooks/useListHeight.d.ts +0 -1
  54. package/dist/esm/hooks/useListHeight.js +0 -1
  55. package/dist/esm/hooks/useListHeight.js.map +1 -1
  56. package/dist/esm/hooks/useToken.d.ts +2 -2
  57. package/dist/esm/hooks/useToken.js +13 -11
  58. package/dist/esm/hooks/useToken.js.map +1 -1
  59. package/dist/esm/hooks/useTokenAddressBalance.d.ts +2 -3
  60. package/dist/esm/hooks/useTokenAddressBalance.js +10 -14
  61. package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
  62. package/dist/esm/hooks/useTokenBalances.d.ts +6 -9
  63. package/dist/esm/hooks/useTokenBalances.js +57 -72
  64. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  65. package/dist/esm/hooks/useTokenBalancesQueries.d.ts +11 -0
  66. package/dist/esm/hooks/useTokenBalancesQueries.js +74 -0
  67. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -0
  68. package/dist/esm/hooks/useTokens.d.ts +6 -6
  69. package/dist/esm/hooks/useTokens.js +78 -70
  70. package/dist/esm/hooks/useTokens.js.map +1 -1
  71. package/dist/esm/i18n/bn.json +3 -3
  72. package/dist/esm/i18n/de.json +3 -3
  73. package/dist/esm/i18n/en.json +3 -3
  74. package/dist/esm/i18n/es.json +3 -3
  75. package/dist/esm/i18n/fr.json +3 -3
  76. package/dist/esm/i18n/hi.json +3 -3
  77. package/dist/esm/i18n/id.json +3 -3
  78. package/dist/esm/i18n/it.json +3 -3
  79. package/dist/esm/i18n/ja.json +3 -3
  80. package/dist/esm/i18n/ko.json +3 -3
  81. package/dist/esm/i18n/pl.json +3 -3
  82. package/dist/esm/i18n/pt.json +3 -3
  83. package/dist/esm/i18n/th.json +3 -3
  84. package/dist/esm/i18n/tr.json +3 -3
  85. package/dist/esm/i18n/uk.json +3 -3
  86. package/dist/esm/i18n/vi.json +3 -3
  87. package/dist/esm/i18n/zh.json +3 -3
  88. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +6 -1
  89. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
  90. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +2 -4
  91. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  92. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
  93. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  94. package/dist/esm/stores/chains/createChainOrderStore.d.ts +3 -2
  95. package/dist/esm/stores/chains/createChainOrderStore.js +13 -8
  96. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  97. package/dist/esm/stores/chains/types.d.ts +2 -0
  98. package/dist/esm/stores/chains/useChainOrder.js +5 -1
  99. package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
  100. package/dist/esm/types/token.d.ts +7 -2
  101. package/dist/esm/utils/chainType.d.ts +1 -0
  102. package/dist/esm/utils/chainType.js +2 -0
  103. package/dist/esm/utils/chainType.js.map +1 -1
  104. package/dist/esm/utils/token.d.ts +8 -0
  105. package/dist/esm/utils/token.js +29 -0
  106. package/dist/esm/utils/token.js.map +1 -0
  107. package/dist/esm/utils/tokenList.d.ts +13 -0
  108. package/dist/esm/utils/tokenList.js +106 -0
  109. package/dist/esm/utils/tokenList.js.map +1 -0
  110. package/package.json +7 -7
  111. package/package.json.tmp +6 -6
  112. package/src/components/AmountInput/AmountInputEndAdornment.tsx +3 -2
  113. package/src/components/AmountInput/PriceFormHelperText.tsx +3 -2
  114. package/src/components/ChainSelect/ChainSelect.tsx +112 -40
  115. package/src/components/ChainSelect/useChainSelect.ts +3 -3
  116. package/src/components/Chains/AllChainsAvatar.tsx +113 -0
  117. package/src/components/Chains/ChainList.tsx +3 -0
  118. package/src/components/Chains/ChainSearchInput.tsx +2 -2
  119. package/src/components/Chains/SelectChainContent.tsx +1 -0
  120. package/src/components/Chains/VirtualizedChainList.tsx +80 -12
  121. package/src/components/RouteCard/RouteCardEssentials.tsx +1 -1
  122. package/src/components/TokenList/TokenDetailsSheet.tsx +4 -9
  123. package/src/components/TokenList/TokenDetailsSheetContent.tsx +2 -6
  124. package/src/components/TokenList/TokenList.tsx +57 -129
  125. package/src/components/TokenList/TokenListItem.tsx +191 -166
  126. package/src/components/TokenList/VirtualizedTokenList.tsx +88 -48
  127. package/src/components/TokenList/types.ts +14 -10
  128. package/src/components/TokenList/useTokenSelect.ts +3 -4
  129. package/src/components/TransactionDetails.tsx +2 -2
  130. package/src/config/version.ts +1 -1
  131. package/src/hooks/useAccountsBalancesData.ts +101 -0
  132. package/src/hooks/useFilteredByTokenBalances.ts +101 -0
  133. package/src/hooks/useListHeight.ts +0 -1
  134. package/src/hooks/useToken.ts +26 -14
  135. package/src/hooks/useTokenAddressBalance.ts +14 -20
  136. package/src/hooks/useTokenBalances.ts +81 -80
  137. package/src/hooks/useTokenBalancesQueries.ts +94 -0
  138. package/src/hooks/useTokens.ts +118 -90
  139. package/src/i18n/bn.json +3 -3
  140. package/src/i18n/de.json +3 -3
  141. package/src/i18n/en.json +3 -3
  142. package/src/i18n/es.json +3 -3
  143. package/src/i18n/fr.json +3 -3
  144. package/src/i18n/hi.json +3 -3
  145. package/src/i18n/id.json +3 -3
  146. package/src/i18n/it.json +3 -3
  147. package/src/i18n/ja.json +3 -3
  148. package/src/i18n/ko.json +3 -3
  149. package/src/i18n/pl.json +3 -3
  150. package/src/i18n/pt.json +3 -3
  151. package/src/i18n/th.json +3 -3
  152. package/src/i18n/tr.json +3 -3
  153. package/src/i18n/uk.json +3 -3
  154. package/src/i18n/vi.json +3 -3
  155. package/src/i18n/zh.json +3 -3
  156. package/src/pages/SelectTokenPage/SearchTokenInput.tsx +5 -0
  157. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +7 -13
  158. package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
  159. package/src/stores/chains/createChainOrderStore.ts +17 -8
  160. package/src/stores/chains/types.ts +2 -0
  161. package/src/stores/chains/useChainOrder.ts +5 -1
  162. package/src/types/token.ts +11 -2
  163. package/src/utils/chainType.ts +2 -0
  164. package/src/utils/token.ts +65 -0
  165. package/src/utils/tokenList.ts +172 -0
  166. package/dist/esm/components/TokenList/utils.d.ts +0 -2
  167. package/dist/esm/components/TokenList/utils.js +0 -35
  168. package/dist/esm/components/TokenList/utils.js.map +0 -1
  169. package/src/components/TokenList/utils.ts +0 -42
@@ -2,7 +2,7 @@ import { useCallback } from 'react';
2
2
  import { useToAddressAutoPopulate } from '../../hooks/useToAddressAutoPopulate.js';
3
3
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
4
4
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
5
- import { useChainOrderStoreContext } from '../../stores/chains/ChainOrderStore.js';
5
+ import { useChainOrderStore } from '../../stores/chains/ChainOrderStore.js';
6
6
  import { FormKeyHelper } from '../../stores/form/types.js';
7
7
  import { useFieldActions } from '../../stores/form/useFieldActions.js';
8
8
  import { useSplitSubvariantStore } from '../../stores/settings/useSplitSubvariantStore.js';
@@ -13,7 +13,7 @@ export const useTokenSelect = (formType, onClick) => {
13
13
  const emitter = useWidgetEvents();
14
14
  const { setFieldValue, getFieldValues } = useFieldActions();
15
15
  const autoPopulateToAddress = useToAddressAutoPopulate();
16
- const chainOrderStore = useChainOrderStoreContext();
16
+ const setChain = useChainOrderStore((state) => state.setChain);
17
17
  const tokenKey = FormKeyHelper.getTokenKey(formType);
18
18
  return useCallback((tokenAddress, chainId) => {
19
19
  setFieldValue(tokenKey, tokenAddress, { isDirty: true, isTouched: true });
@@ -43,7 +43,6 @@ export const useTokenSelect = (formType, onClick) => {
43
43
  });
44
44
  }
45
45
  // If no opposite token is selected, synchronize the opposite chain to match the currently selected chain
46
- const { setChain } = chainOrderStore.getState();
47
46
  if (!selectedOppositeTokenAddress && selectedChainId) {
48
47
  setFieldValue(FormKeyHelper.getChainKey(oppositeFormType), selectedChainId, {
49
48
  isDirty: true,
@@ -71,12 +70,12 @@ export const useTokenSelect = (formType, onClick) => {
71
70
  onClick?.();
72
71
  }, [
73
72
  autoPopulateToAddress,
74
- chainOrderStore,
75
73
  disabledUI,
76
74
  emitter,
77
75
  formType,
78
76
  getFieldValues,
79
77
  onClick,
78
+ setChain,
80
79
  setFieldValue,
81
80
  subvariant,
82
81
  splitSubvariant,
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenSelect.js","sourceRoot":"","sources":["../../../../src/components/TokenList/useTokenSelect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTokenSelect.js","sourceRoot":"","sources":["../../../../src/components/TokenList/useTokenSelect.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ export const TransactionDetails = ({ route, ...props }) => {
62
62
  color: 'text.primary',
63
63
  fontWeight: 600,
64
64
  lineHeight: 1.429,
65
- }, children: hasRelayerSupport
65
+ }, children: hasRelayerSupport || !combinedFeesUSD
66
66
  ? t('main.fees.free')
67
67
  : t('format.currency', { value: combinedFeesUSD }) })] }) }) }), _jsx(CardIconButton, { onClick: toggleCard, size: "small", children: cardExpanded ? (_jsx(ExpandLess, { fontSize: "inherit" })) : (_jsx(ExpandMore, { fontSize: "inherit" })) })] }), _jsx(Collapse, { timeout: 225, in: cardExpanded, mountOnEnter: true, children: _jsxs(Box, { sx: {
68
68
  px: 2,
@@ -71,7 +71,7 @@ export const TransactionDetails = ({ route, ...props }) => {
71
71
  display: 'flex',
72
72
  justifyContent: 'space-between',
73
73
  mb: 0.5,
74
- }, children: [_jsx(Typography, { variant: "body2", children: t('main.fees.network') }), _jsx(FeeBreakdownTooltip, { gasCosts: gasCosts, relayerSupport: hasRelayerSupport, children: _jsx(Typography, { variant: "body2", sx: { fontWeight: 600, cursor: 'help' }, children: hasRelayerSupport
74
+ }, children: [_jsx(Typography, { variant: "body2", children: t('main.fees.network') }), _jsx(FeeBreakdownTooltip, { gasCosts: gasCosts, relayerSupport: hasRelayerSupport, children: _jsx(Typography, { variant: "body2", sx: { fontWeight: 600, cursor: 'help' }, children: hasRelayerSupport || !gasCostUSD
75
75
  ? t('main.fees.free')
76
76
  : t('format.currency', {
77
77
  value: gasCostUSD,
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionDetails.js","sourceRoot":"","sources":["../../../src/components/TransactionDetails.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionDetails.js","sourceRoot":"","sources":["../../../src/components/TransactionDetails.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.29.1";
2
+ export declare const version = "3.30.0";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.29.1';
2
+ export const version = '3.30.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,6 @@
1
+ import type { TokenExtended } from '@lifi/sdk';
2
+ import type { FormType } from '../stores/form/types.js';
3
+ export declare const useAccountsBalancesData: (selectedChainId?: number, formType?: FormType, isAllNetworks?: boolean, allTokens?: Record<number, TokenExtended[]>) => {
4
+ data: Record<string, Record<number, TokenExtended[]>> | undefined;
5
+ isLoading: boolean;
6
+ };
@@ -0,0 +1,64 @@
1
+ import { useAccount } from '@lifi/wallet-management';
2
+ import { useMemo } from 'react';
3
+ import { useChains } from './useChains.js';
4
+ import { useFilteredTokensByBalance } from './useFilteredByTokenBalances.js';
5
+ export const useAccountsBalancesData = (selectedChainId, formType, isAllNetworks, allTokens) => {
6
+ const { data: accountsWithTokens, isLoading: isAccountsLoading } = useAccountsData(selectedChainId, formType, isAllNetworks, allTokens);
7
+ // Filter out EVM tokens that do not have balances
8
+ const { data: filteredTokens, isLoading: isCachedBalancesLoading } = useFilteredTokensByBalance(accountsWithTokens);
9
+ return {
10
+ data: filteredTokens,
11
+ isLoading: isAccountsLoading || isCachedBalancesLoading,
12
+ };
13
+ };
14
+ const useAccountsData = (selectedChainId, formType, isAllNetworks, allTokens) => {
15
+ const { chains: allChains, isLoading: isChainsLoading, getChainById, } = useChains(formType);
16
+ const currentChain = useMemo(() => {
17
+ return selectedChainId
18
+ ? getChainById(selectedChainId, allChains)
19
+ : undefined;
20
+ }, [selectedChainId, allChains, getChainById]);
21
+ const chains = useMemo(() => {
22
+ return isAllNetworks ? allChains : currentChain ? [currentChain] : undefined;
23
+ }, [allChains, isAllNetworks, currentChain]);
24
+ const { accounts: allAccounts, account: currentAccount } = useAccount(isAllNetworks ? undefined : { chainType: currentChain?.chainType });
25
+ const accounts = useMemo(() => {
26
+ return isAllNetworks
27
+ ? allAccounts
28
+ : currentAccount
29
+ ? [currentAccount]
30
+ : undefined;
31
+ }, [allAccounts, currentAccount, isAllNetworks]);
32
+ const accountsWithTokens = useMemo(() => {
33
+ if (!chains || !allTokens || !accounts?.length) {
34
+ return undefined;
35
+ }
36
+ return accounts
37
+ ?.filter((account) => account.address)
38
+ .reduce((acc, account) => {
39
+ if (account.address) {
40
+ const accountChains = chains?.filter((chain) => account.chainType === chain?.chainType);
41
+ if (accountChains) {
42
+ const chainIdSet = new Set(accountChains.map((chain) => chain.id));
43
+ const filteredTokens = Object.entries(allTokens).reduce((tokenAcc, [chainIdStr, tokens]) => {
44
+ const chainId = Number(chainIdStr);
45
+ if (chainIdSet.has(chainId)) {
46
+ tokenAcc[chainId] = tokens;
47
+ }
48
+ return tokenAcc;
49
+ }, {});
50
+ acc[account.address] = {
51
+ chainType: account.chainType,
52
+ tokens: filteredTokens,
53
+ };
54
+ }
55
+ }
56
+ return acc;
57
+ }, {});
58
+ }, [accounts, chains, allTokens]);
59
+ return {
60
+ data: accountsWithTokens,
61
+ isLoading: isChainsLoading,
62
+ };
63
+ };
64
+ //# sourceMappingURL=useAccountsBalancesData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAccountsBalancesData.js","sourceRoot":"","sources":["../../../src/hooks/useAccountsBalancesData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ChainType, type TokenExtended } from '@lifi/sdk';
2
+ export declare const useFilteredTokensByBalance: (accountsWithTokens?: Record<string, {
3
+ chainType: ChainType;
4
+ tokens: Record<number, TokenExtended[]>;
5
+ }>) => {
6
+ data: Record<string, Record<number, TokenExtended[]>> | undefined;
7
+ isLoading: boolean;
8
+ };
@@ -0,0 +1,69 @@
1
+ import { ChainType, getWalletBalances, } from '@lifi/sdk';
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import { useMemo } from 'react';
4
+ import { isSupportedToken } from '../utils/tokenList.js';
5
+ export const useFilteredTokensByBalance = (accountsWithTokens) => {
6
+ const evmAddress = useMemo(() => {
7
+ const evmAccount = Object.entries(accountsWithTokens ?? {}).find(([_, { chainType }]) => chainType === ChainType.EVM);
8
+ return evmAccount?.[0];
9
+ }, [accountsWithTokens]);
10
+ const { data: existingBalances, isLoading } = useQuery({
11
+ queryKey: ['existing-evm-balances', evmAddress],
12
+ queryFn: () => getWalletBalances(evmAddress ?? ''),
13
+ enabled: !!evmAddress,
14
+ refetchInterval: 30000, // 30 seconds
15
+ staleTime: 30000, // 30 seconds
16
+ });
17
+ const accountsWithFilteredTokens = useMemo(() => {
18
+ if (!accountsWithTokens) {
19
+ return undefined;
20
+ }
21
+ // Early return if no existing balances - return all tokens
22
+ const result = {};
23
+ if (!existingBalances) {
24
+ for (const [address, { tokens }] of Object.entries(accountsWithTokens)) {
25
+ result[address] = tokens;
26
+ }
27
+ return result;
28
+ }
29
+ for (const [address, { tokens }] of Object.entries(accountsWithTokens)) {
30
+ result[address] = {};
31
+ for (const [chainIdStr, chainTokens] of Object.entries(tokens)) {
32
+ const chainId = Number(chainIdStr);
33
+ // Get balances for this specific chain
34
+ const balances = existingBalances?.[chainId];
35
+ // If no balances, RPC all tokens of the chain
36
+ if (!balances?.length) {
37
+ if (chainTokens.length) {
38
+ result[address][chainId] = chainTokens;
39
+ }
40
+ continue;
41
+ }
42
+ // Optimize token matching with Set for O(1) lookup
43
+ const balanceSet = new Set(balances.map((balance) => balance.address.toLowerCase()));
44
+ // Get tokens that are in chainTokens and have balances
45
+ const filteredTokens = chainTokens.filter((token) => {
46
+ const tokenKey = token.address.toLowerCase();
47
+ return balanceSet.has(tokenKey);
48
+ });
49
+ // Get tokens that are in balances but not in chainTokens
50
+ const chainTokenSet = new Set(chainTokens.map((token) => token.address.toLowerCase()));
51
+ const additionalTokens = balances.filter((balance) => {
52
+ const balanceKey = balance.address.toLowerCase();
53
+ return !chainTokenSet.has(balanceKey) && isSupportedToken(balance);
54
+ });
55
+ // Combine both sets of tokens - convert WalletTokenExtended to TokenAmount
56
+ const allTokens = [
57
+ ...filteredTokens,
58
+ ...additionalTokens,
59
+ ];
60
+ if (allTokens.length) {
61
+ result[address][chainId] = allTokens;
62
+ }
63
+ }
64
+ }
65
+ return result;
66
+ }, [accountsWithTokens, existingBalances]);
67
+ return { data: accountsWithFilteredTokens, isLoading };
68
+ };
69
+ //# sourceMappingURL=useFilteredByTokenBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilteredByTokenBalances.js","sourceRoot":"","sources":["../../../src/hooks/useFilteredByTokenBalances.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ interface UseContentHeightProps {
6
6
  export declare const defaultMinListHeight = 360;
7
7
  export declare const minMobileListHeight = 160;
8
8
  export declare const useListHeight: ({ listParentRef, headerRef, }: UseContentHeightProps) => {
9
- minListHeight: number;
10
9
  listHeight: number;
11
10
  };
12
11
  export {};
@@ -59,7 +59,6 @@ export const useListHeight = ({ listParentRef, headerRef, }) => {
59
59
  : defaultMinListHeight;
60
60
  const listHeight = Math.max(contentHeight - (headerRef?.current?.offsetHeight ?? 0), minListHeight);
61
61
  return {
62
- minListHeight,
63
62
  listHeight,
64
63
  };
65
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useListHeight.js","sourceRoot":"","sources":["../../../src/hooks/useListHeight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useListHeight.js","sourceRoot":"","sources":["../../../src/hooks/useListHeight.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const useToken: (chainId?: number, tokenAddress?: string) => {
2
- token: import("@lifi/sdk").Token | undefined;
1
+ export declare const useToken: (chainId?: number, tokenAddress?: string, latest?: boolean) => {
2
+ token: import("@lifi/sdk").TokenExtended | undefined;
3
3
  isLoading: boolean;
4
4
  };
@@ -1,17 +1,19 @@
1
- import { useMemo } from 'react';
2
1
  import { useTokenSearch } from './useTokenSearch.js';
3
2
  import { useTokens } from './useTokens.js';
4
- export const useToken = (chainId, tokenAddress) => {
5
- const { tokens, isLoading } = useTokens(chainId);
6
- const token = useMemo(() => {
7
- const token = tokens?.find((token) => token.address === tokenAddress && token.chainId === chainId);
8
- return token;
9
- }, [chainId, tokenAddress, tokens]);
10
- const tokenSearchEnabled = !isLoading && !token;
11
- const { token: searchedToken, isLoading: isSearchedTokenLoading } = useTokenSearch(chainId, tokenAddress, tokenSearchEnabled);
3
+ export const useToken = (chainId, tokenAddress, latest) => {
4
+ const { allTokens, isLoading: isTokensLoading } = useTokens();
5
+ const token = chainId && tokenAddress
6
+ ? allTokens?.[chainId]?.find((t) => t.address === tokenAddress)
7
+ : undefined;
8
+ const tokenSearchEnabled = !!chainId && !!tokenAddress && (latest || (!isTokensLoading && !token));
9
+ const { token: searchedToken, isLoading: isSearchLoading } = useTokenSearch(chainId, tokenAddress, tokenSearchEnabled);
10
+ const resolvedToken = latest
11
+ ? (searchedToken ?? token)
12
+ : (token ?? searchedToken);
12
13
  return {
13
- token: token ?? searchedToken,
14
- isLoading: isLoading || (tokenSearchEnabled && isSearchedTokenLoading),
14
+ token: resolvedToken,
15
+ isLoading: !resolvedToken &&
16
+ (isTokensLoading || (tokenSearchEnabled && isSearchLoading)),
15
17
  };
16
18
  };
17
19
  //# sourceMappingURL=useToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useToken.js","sourceRoot":"","sources":["../../../src/hooks/useToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,YAAqB,EAAE,EAAE;IAClE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,KAAK,GAAG,MAAM,EAAE,IAAI,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CACvE,CAAA;QACD,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAEnC,MAAM,kBAAkB,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,CAAA;IAC/C,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAC/D,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;IAE3D,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,aAAa;QAC7B,SAAS,EAAE,SAAS,IAAI,CAAC,kBAAkB,IAAI,sBAAsB,CAAC;KACvE,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useToken.js","sourceRoot":"","sources":["../../../src/hooks/useToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAgB,EAChB,YAAqB,EACrB,MAAgB,EAChB,EAAE;IACF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,CAAA;IAE7D,MAAM,KAAK,GACT,OAAO,IAAI,YAAY;QACrB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,kBAAkB,GACtB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAEzE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,cAAc,CACzE,OAAO,EACP,YAAY,EACZ,kBAAkB,CACnB,CAAA;IAED,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,CAAA;IAE5B,OAAO;QACL,KAAK,EAAE,aAAa;QACpB,SAAS,EACP,CAAC,aAAa;YACd,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,eAAe,CAAC,CAAC;KAC/D,CAAA;AACH,CAAC,CAAA"}
@@ -1,7 +1,6 @@
1
- import type { TokenAmount } from '../types/token.js';
2
1
  export declare const useTokenAddressBalance: (chainId?: number, tokenAddress?: string) => {
3
- token: TokenAmount | undefined;
2
+ token: import("@lifi/sdk").TokenAmount | undefined;
4
3
  chain: import("@lifi/sdk").ExtendedChain | undefined;
5
4
  isLoading: boolean;
6
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenAmount[], Error>>;
5
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@lifi/sdk").TokenAmount, Error>>;
7
6
  };
@@ -1,20 +1,16 @@
1
- import { useMemo } from 'react';
2
- import { useTokenBalances } from './useTokenBalances.js';
1
+ import { useAccount } from '@lifi/wallet-management';
2
+ import { useChain } from './useChain.js';
3
+ import { useToken } from './useToken.js';
4
+ import { useTokenBalance } from './useTokenBalance.js';
3
5
  export const useTokenAddressBalance = (chainId, tokenAddress) => {
4
- const { tokens, tokensWithBalance, chain, isBalanceLoading, refetch } = useTokenBalances(chainId);
5
- const token = useMemo(() => {
6
- if (tokenAddress && chainId) {
7
- let token = tokensWithBalance?.find((token) => token.address === tokenAddress && token.chainId === chainId);
8
- if (!token) {
9
- token = tokens?.find((token) => token.address === tokenAddress && token.chainId === chainId);
10
- }
11
- return token;
12
- }
13
- }, [chainId, tokenAddress, tokens, tokensWithBalance]);
6
+ const { chain, isLoading: isChainLoading } = useChain(chainId);
7
+ const { account } = useAccount({ chainType: chain?.chainType });
8
+ const { token, isLoading: isTokenLoading } = useToken(chainId, tokenAddress);
9
+ const { token: tokenBalance, isLoading: isBalanceLoading, refetch, } = useTokenBalance(account?.address, token);
14
10
  return {
15
- token,
11
+ token: tokenBalance,
16
12
  chain,
17
- isLoading: isBalanceLoading,
13
+ isLoading: isBalanceLoading || isChainLoading || isTokenLoading,
18
14
  refetch,
19
15
  };
20
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenAddressBalance.js","sourceRoot":"","sources":["../../../src/hooks/useTokenAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAAgB,EAChB,YAAqB,EACrB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,GACnE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,GAAG,iBAAiB,EAAE,IAAI,CACjC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CACvE,CAAA;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,EAAE,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CACvE,CAAA;YACH,CAAC;YACD,OAAO,KAAoB,CAAA;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAEtD,OAAO;QACL,KAAK;QACL,KAAK;QACL,SAAS,EAAE,gBAAgB;QAC3B,OAAO;KACR,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useTokenAddressBalance.js","sourceRoot":"","sources":["../../../src/hooks/useTokenAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAAgB,EAChB,YAAqB,EACrB,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC/D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAE5E,MAAM,EACJ,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,GACR,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAE5C,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,KAAK;QACL,SAAS,EAAE,gBAAgB,IAAI,cAAc,IAAI,cAAc;QAC/D,OAAO;KACR,CAAA;AACH,CAAC,CAAA"}
@@ -1,11 +1,8 @@
1
- import type { TokenAmount } from '../types/token.js';
2
- export declare const useTokenBalances: (selectedChainId?: number) => {
3
- tokens: import("@lifi/sdk").Token[] | undefined;
4
- tokensWithBalance: TokenAmount[] | undefined;
5
- featuredTokens: TokenAmount[] | undefined;
6
- popularTokens: TokenAmount[] | undefined;
7
- chain: import("@lifi/sdk").ExtendedChain | undefined;
8
- isLoading: boolean;
1
+ import type { FormType } from '../stores/form/types.js';
2
+ export declare const useTokenBalances: (selectedChainId?: number, formType?: FormType, isAllNetworks?: boolean, search?: string) => {
3
+ tokens: (import("../index.js").TokenAmount | import("@lifi/sdk").TokenExtended)[];
4
+ withCategories: boolean;
5
+ isTokensLoading: boolean;
6
+ isSearchLoading: boolean;
9
7
  isBalanceLoading: boolean;
10
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenAmount[], Error>>;
11
8
  };
@@ -1,78 +1,63 @@
1
- import { getTokenBalances } from '@lifi/sdk';
2
- import { useAccount } from '@lifi/wallet-management';
3
- import { useQuery } from '@tanstack/react-query';
4
- import { formatUnits } from 'viem';
1
+ import { useMemo } from 'react';
5
2
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
6
- import { getQueryKey } from '../utils/queries.js';
3
+ import { isSearchMatch, processTokenBalances } from '../utils/tokenList.js';
4
+ import { useAccountsBalancesData } from './useAccountsBalancesData.js';
5
+ import { useTokenBalancesQueries } from './useTokenBalancesQueries.js';
7
6
  import { useTokens } from './useTokens.js';
8
- const defaultRefetchInterval = 32000;
9
- export const useTokenBalances = (selectedChainId) => {
10
- const { tokens, featuredTokens, popularTokens, chain, isLoading } = useTokens(selectedChainId);
11
- const { account } = useAccount({ chainType: chain?.chainType });
12
- const { keyPrefix } = useWidgetConfig();
13
- const isBalanceLoadingEnabled = Boolean(account.address) &&
14
- Boolean(tokens?.length) &&
15
- Boolean(selectedChainId);
16
- const { data: tokensWithBalance, isLoading: isBalanceLoading, refetch, } = useQuery({
17
- queryKey: [
18
- getQueryKey('token-balances', keyPrefix),
19
- account.address,
20
- selectedChainId,
21
- tokens?.length,
22
- ],
23
- queryFn: async ({ queryKey: [, accountAddress] }) => {
24
- const tokensWithBalance = await getTokenBalances(accountAddress, tokens);
25
- if (!tokensWithBalance?.length) {
26
- return tokens;
27
- }
28
- const sortFn = (a, b) => Number.parseFloat(formatUnits(b.amount ?? 0n, b.decimals)) *
29
- Number.parseFloat(b.priceUSD ?? '0') -
30
- Number.parseFloat(formatUnits(a.amount ?? 0n, a.decimals)) *
31
- Number.parseFloat(a.priceUSD ?? '0');
32
- const featuredTokens = [];
33
- const tokensWithAmount = [];
34
- const popularTokens = [];
35
- const allTokens = [];
36
- tokensWithBalance.forEach((token) => {
37
- if (token.amount) {
38
- token.featured = false;
39
- token.popular = false;
40
- }
41
- if (token.featured) {
42
- featuredTokens.push(token);
43
- }
44
- else if (token.amount) {
45
- tokensWithAmount.push(token);
46
- }
47
- else if (token.popular) {
48
- popularTokens.push(token);
49
- }
50
- else {
51
- allTokens.push(token);
52
- }
53
- });
54
- tokensWithAmount.sort(sortFn);
55
- const result = [
56
- ...featuredTokens,
57
- ...tokensWithAmount,
58
- ...popularTokens,
59
- ...allTokens,
60
- ];
61
- return result;
62
- },
63
- enabled: isBalanceLoadingEnabled,
64
- refetchInterval: defaultRefetchInterval,
65
- staleTime: defaultRefetchInterval,
66
- });
7
+ export const useTokenBalances = (selectedChainId, formType, isAllNetworks, search) => {
8
+ const { allTokens, isLoading: isTokensLoading, isSearchLoading, } = useTokens(formType, search);
9
+ const { data: accountsWithAllTokens, isLoading: isAccountsLoading } = useAccountsBalancesData(selectedChainId, formType, isAllNetworks, allTokens);
10
+ const isBalanceLoadingEnabled = Boolean(accountsWithAllTokens) && !isAccountsLoading;
11
+ const { data: allTokensWithBalances, isLoading: isBalanceQueriesLoading } = useTokenBalancesQueries(accountsWithAllTokens, isBalanceLoadingEnabled);
12
+ const { tokens: configTokens } = useWidgetConfig();
13
+ const isBalanceLoading = (isBalanceQueriesLoading || isAccountsLoading) &&
14
+ !allTokensWithBalances?.length;
15
+ const displayedTokensList = useMemo(() => {
16
+ const tokensByChain = isAllNetworks
17
+ ? Object.values(allTokens ?? {}).flat()
18
+ : selectedChainId
19
+ ? allTokens?.[selectedChainId]
20
+ : undefined;
21
+ return tokensByChain?.filter((t) => isSearchMatch(t, search)) ?? [];
22
+ }, [allTokens, isAllNetworks, selectedChainId, search]);
23
+ const displayedTokensWithBalances = useMemo(() => {
24
+ const balancesByChain = isAllNetworks
25
+ ? allTokensWithBalances
26
+ : selectedChainId
27
+ ? allTokensWithBalances?.filter((t) => t.chainId === selectedChainId)
28
+ : undefined;
29
+ const displayedTokensSet = new Set(displayedTokensList?.map((t) => `${t.chainId}-${t.address.toLowerCase()}`) || []);
30
+ return balancesByChain?.filter((token) => {
31
+ const tokenKey = `${token.chainId}-${token.address.toLowerCase()}`;
32
+ // Check if token is in displayed list and has amount
33
+ const isInDisplayedList = displayedTokensSet.has(tokenKey) && token.amount;
34
+ // Check if it matches search (for cached appended tokens)
35
+ const matchesSearch = isSearchMatch(token, search);
36
+ return isInDisplayedList || matchesSearch;
37
+ });
38
+ }, [
39
+ allTokensWithBalances,
40
+ displayedTokensList,
41
+ search,
42
+ selectedChainId,
43
+ isAllNetworks,
44
+ ]);
45
+ const { processedTokens, withCategories } = useMemo(() => {
46
+ return processTokenBalances(isBalanceLoading, isAllNetworks ?? false, configTokens, selectedChainId, displayedTokensList, displayedTokensWithBalances);
47
+ }, [
48
+ isBalanceLoading,
49
+ isAllNetworks,
50
+ configTokens,
51
+ selectedChainId,
52
+ displayedTokensList,
53
+ displayedTokensWithBalances,
54
+ ]);
67
55
  return {
68
- tokens,
69
- tokensWithBalance,
70
- featuredTokens,
71
- popularTokens,
72
- chain,
73
- isLoading,
74
- isBalanceLoading: isBalanceLoading && isBalanceLoadingEnabled,
75
- refetch,
56
+ tokens: processedTokens ?? [],
57
+ withCategories,
58
+ isTokensLoading,
59
+ isSearchLoading,
60
+ isBalanceLoading,
76
61
  };
77
62
  };
78
63
  //# sourceMappingURL=useTokenBalances.js.map