@lifi/widget 3.0.0-alpha.21 → 3.0.0-alpha.23
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.
- package/App.tsx +16 -17
- package/AppDrawer.tsx +2 -2
- package/_cjs/App.js +2 -3
- package/_cjs/App.js.map +1 -1
- package/_cjs/AppDrawer.d.ts +2 -2
- package/_cjs/components/AccountAvatar.js +2 -2
- package/_cjs/components/AccountAvatar.js.map +1 -1
- package/_cjs/components/AmountInput/AmountInputEndAdornment.js +11 -7
- package/_cjs/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/_cjs/components/Routes/RoutesExpanded.js +1 -1
- package/_cjs/components/Routes/RoutesExpanded.js.map +1 -1
- package/_cjs/components/TokenAvatar/TokenAvatar.style.js +4 -0
- package/_cjs/components/TokenAvatar/TokenAvatar.style.js.map +1 -1
- package/_cjs/components/TokenList/TokenList.js +5 -2
- package/_cjs/components/TokenList/TokenList.js.map +1 -1
- package/_cjs/components/TokenList/VirtualizedTokenList.js +41 -19
- package/_cjs/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/_cjs/components/TokenList/types.d.ts +3 -2
- package/_cjs/config/version.d.ts +1 -1
- package/_cjs/config/version.js +1 -1
- package/_cjs/hooks/index.d.ts +0 -1
- package/_cjs/hooks/index.js +0 -1
- package/_cjs/hooks/index.js.map +1 -1
- package/_cjs/hooks/useAvailableChains.js +3 -3
- package/_cjs/hooks/useAvailableChains.js.map +1 -1
- package/_cjs/hooks/useDebouncedWatch.d.ts +1 -1
- package/_cjs/hooks/useRoutes.js +49 -25
- package/_cjs/hooks/useRoutes.js.map +1 -1
- package/_cjs/hooks/useSettingMonitor.js +8 -12
- package/_cjs/hooks/useSettingMonitor.js.map +1 -1
- package/_cjs/hooks/useToken.d.ts +1 -1
- package/_cjs/hooks/useTokenAddressBalance.d.ts +3 -2
- package/_cjs/hooks/useTokenAddressBalance.js.map +1 -1
- package/_cjs/hooks/useTokenBalances.d.ts +3 -2
- package/_cjs/hooks/useTokenBalances.js +33 -14
- package/_cjs/hooks/useTokenBalances.js.map +1 -1
- package/_cjs/hooks/useTokens.d.ts +3 -1
- package/_cjs/hooks/useTokens.js +44 -31
- package/_cjs/hooks/useTokens.js.map +1 -1
- package/_cjs/i18n/en.json +3 -1
- package/_cjs/pages/RoutesPage/RoutesPage.js +1 -1
- package/_cjs/pages/RoutesPage/RoutesPage.js.map +1 -1
- package/_cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js +10 -27
- package/_cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js.map +1 -1
- package/_cjs/pages/SettingsPage/BridgeAndExchangeSettings.js +2 -2
- package/_cjs/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
- package/_cjs/stores/form/createFormStore.js +10 -6
- package/_cjs/stores/form/createFormStore.js.map +1 -1
- package/_cjs/stores/form/types.d.ts +3 -14
- package/_cjs/stores/form/types.js.map +1 -1
- package/_cjs/stores/form/useFieldController.d.ts +1 -1
- package/_cjs/stores/form/useFieldValues.d.ts +1 -1
- package/_cjs/stores/settings/types.d.ts +10 -9
- package/_cjs/stores/settings/types.js.map +1 -1
- package/_cjs/stores/settings/useSettingsStore.js +40 -30
- package/_cjs/stores/settings/useSettingsStore.js.map +1 -1
- package/_cjs/types/token.d.ts +1 -0
- package/_cjs/types/widget.d.ts +9 -8
- package/_esm/App.js +2 -3
- package/_esm/App.js.map +1 -1
- package/_esm/AppDrawer.d.ts +2 -2
- package/_esm/components/AccountAvatar.js +2 -2
- package/_esm/components/AccountAvatar.js.map +1 -1
- package/_esm/components/AmountInput/AmountInputEndAdornment.js +11 -7
- package/_esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/_esm/components/Routes/RoutesExpanded.js +1 -1
- package/_esm/components/Routes/RoutesExpanded.js.map +1 -1
- package/_esm/components/TokenAvatar/TokenAvatar.style.js +4 -0
- package/_esm/components/TokenAvatar/TokenAvatar.style.js.map +1 -1
- package/_esm/components/TokenList/TokenList.js +6 -3
- package/_esm/components/TokenList/TokenList.js.map +1 -1
- package/_esm/components/TokenList/VirtualizedTokenList.js +41 -19
- package/_esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/_esm/components/TokenList/types.d.ts +3 -2
- package/_esm/config/version.d.ts +1 -1
- package/_esm/config/version.js +1 -1
- package/_esm/hooks/index.d.ts +0 -1
- package/_esm/hooks/index.js +0 -1
- package/_esm/hooks/index.js.map +1 -1
- package/_esm/hooks/useAvailableChains.js +3 -3
- package/_esm/hooks/useAvailableChains.js.map +1 -1
- package/_esm/hooks/useDebouncedWatch.d.ts +1 -1
- package/_esm/hooks/useRoutes.js +49 -25
- package/_esm/hooks/useRoutes.js.map +1 -1
- package/_esm/hooks/useSettingMonitor.js +8 -12
- package/_esm/hooks/useSettingMonitor.js.map +1 -1
- package/_esm/hooks/useToken.d.ts +1 -1
- package/_esm/hooks/useTokenAddressBalance.d.ts +3 -2
- package/_esm/hooks/useTokenAddressBalance.js.map +1 -1
- package/_esm/hooks/useTokenBalances.d.ts +3 -2
- package/_esm/hooks/useTokenBalances.js +33 -14
- package/_esm/hooks/useTokenBalances.js.map +1 -1
- package/_esm/hooks/useTokens.d.ts +3 -1
- package/_esm/hooks/useTokens.js +44 -31
- package/_esm/hooks/useTokens.js.map +1 -1
- package/_esm/i18n/en.json +3 -1
- package/_esm/pages/RoutesPage/RoutesPage.js +1 -1
- package/_esm/pages/RoutesPage/RoutesPage.js.map +1 -1
- package/_esm/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js +10 -27
- package/_esm/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js.map +1 -1
- package/_esm/pages/SettingsPage/BridgeAndExchangeSettings.js +2 -2
- package/_esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
- package/_esm/stores/form/createFormStore.js +10 -6
- package/_esm/stores/form/createFormStore.js.map +1 -1
- package/_esm/stores/form/types.d.ts +3 -14
- package/_esm/stores/form/types.js.map +1 -1
- package/_esm/stores/form/useFieldController.d.ts +1 -1
- package/_esm/stores/form/useFieldValues.d.ts +1 -1
- package/_esm/stores/settings/types.d.ts +10 -9
- package/_esm/stores/settings/types.js.map +1 -1
- package/_esm/stores/settings/useSettingsStore.js +40 -30
- package/_esm/stores/settings/useSettingsStore.js.map +1 -1
- package/_esm/types/token.d.ts +1 -0
- package/_esm/types/widget.d.ts +9 -8
- package/components/AccountAvatar.tsx +4 -7
- package/components/AmountInput/AmountInputEndAdornment.tsx +15 -12
- package/components/Routes/RoutesExpanded.tsx +1 -1
- package/components/TokenAvatar/TokenAvatar.style.tsx +4 -0
- package/components/TokenList/TokenList.tsx +8 -2
- package/components/TokenList/VirtualizedTokenList.tsx +63 -41
- package/components/TokenList/types.ts +3 -2
- package/config/version.ts +1 -1
- package/hooks/index.ts +0 -1
- package/hooks/useAvailableChains.ts +7 -4
- package/hooks/useRoutes.ts +58 -31
- package/hooks/useSettingMonitor.ts +20 -21
- package/hooks/useTokenAddressBalance.ts +2 -1
- package/hooks/useTokenBalances.ts +34 -29
- package/hooks/useTokens.ts +65 -36
- package/i18n/en.json +3 -1
- package/package.json +9 -9
- package/pages/RoutesPage/RoutesPage.tsx +1 -1
- package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.tsx +16 -35
- package/pages/SettingsPage/BridgeAndExchangeSettings.tsx +2 -2
- package/stores/form/createFormStore.ts +15 -15
- package/stores/form/types.ts +3 -14
- package/stores/settings/types.ts +10 -13
- package/stores/settings/useSettingsStore.ts +51 -53
- package/types/token.ts +1 -0
- package/types/widget.ts +10 -9
- package/_cjs/hooks/useFeaturedTokens.d.ts +0 -1
- package/_cjs/hooks/useFeaturedTokens.js +0 -11
- package/_cjs/hooks/useFeaturedTokens.js.map +0 -1
- package/_esm/hooks/useFeaturedTokens.d.ts +0 -1
- package/_esm/hooks/useFeaturedTokens.js +0 -7
- package/_esm/hooks/useFeaturedTokens.js.map +0 -1
- package/hooks/useFeaturedTokens.ts +0 -12
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ExtendedChain } from '@lifi/sdk';
|
|
2
2
|
import type { MouseEventHandler, MutableRefObject } from 'react';
|
|
3
|
+
import type { Account } from '../../hooks';
|
|
3
4
|
import type { FormType } from '../../stores';
|
|
4
5
|
import type { TokenAmount } from '../../types';
|
|
5
6
|
export interface TokenListProps {
|
|
@@ -8,14 +9,14 @@ export interface TokenListProps {
|
|
|
8
9
|
onClick?(): void;
|
|
9
10
|
}
|
|
10
11
|
export interface VirtualizedTokenListProps {
|
|
12
|
+
account: Account;
|
|
11
13
|
tokens: TokenAmount[];
|
|
12
|
-
featuredTokensLength?: number;
|
|
13
14
|
scrollElementRef: MutableRefObject<HTMLElement | null>;
|
|
14
15
|
isLoading: boolean;
|
|
15
16
|
isBalanceLoading: boolean;
|
|
16
17
|
chainId?: number;
|
|
17
18
|
chain?: ExtendedChain;
|
|
18
|
-
|
|
19
|
+
showCategories?: boolean;
|
|
19
20
|
onClick(tokenAddress: string): void;
|
|
20
21
|
}
|
|
21
22
|
export interface TokenListItemBaseProps {
|
package/_esm/config/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "3.0.0-alpha.
|
|
2
|
+
export declare const version = "3.0.0-alpha.23";
|
package/_esm/config/version.js
CHANGED
package/_esm/hooks/index.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export * from './useContentHeight';
|
|
|
7
7
|
export * from './useDebouncedWatch';
|
|
8
8
|
export * from './useDefaultElementId';
|
|
9
9
|
export * from './useExpandableVariant';
|
|
10
|
-
export * from './useFeaturedTokens';
|
|
11
10
|
export * from './useFromTokenSufficiency';
|
|
12
11
|
export * from './useGasRecommendation';
|
|
13
12
|
export * from './useGasRefuel';
|
package/_esm/hooks/index.js
CHANGED
|
@@ -7,7 +7,6 @@ export * from './useContentHeight';
|
|
|
7
7
|
export * from './useDebouncedWatch';
|
|
8
8
|
export * from './useDefaultElementId';
|
|
9
9
|
export * from './useExpandableVariant';
|
|
10
|
-
export * from './useFeaturedTokens';
|
|
11
10
|
export * from './useFromTokenSufficiency';
|
|
12
11
|
export * from './useGasRecommendation';
|
|
13
12
|
export * from './useGasRefuel';
|
package/_esm/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
@@ -3,16 +3,16 @@ import { useQuery } from '@tanstack/react-query';
|
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { useHasExternalWalletProvider, useWidgetConfig } from '../providers';
|
|
5
5
|
import { isItemAllowed } from '../utils';
|
|
6
|
+
const supportedChainTypes = [ChainType.EVM, ChainType.SVM];
|
|
6
7
|
export const useAvailableChains = () => {
|
|
7
8
|
const { chains } = useWidgetConfig();
|
|
8
9
|
const { providers } = useHasExternalWalletProvider();
|
|
9
10
|
const { data, isLoading } = useQuery({
|
|
10
11
|
queryKey: ['chains', providers, chains?.types],
|
|
11
12
|
queryFn: async ({ queryKey: [, providers, chainTypes] }) => {
|
|
13
|
+
const chainTypesRequest = (providers.length > 0 ? providers : supportedChainTypes).filter((chainType) => isItemAllowed(chainType, chainTypes));
|
|
12
14
|
const availableChains = await getChains({
|
|
13
|
-
chainTypes:
|
|
14
|
-
? providers
|
|
15
|
-
: Object.values(ChainType)).filter((chainType) => isItemAllowed(chainType, chainTypes)),
|
|
15
|
+
chainTypes: chainTypesRequest,
|
|
16
16
|
});
|
|
17
17
|
config.setChains(availableChains);
|
|
18
18
|
return availableChains;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAvailableChains.js","sourceRoot":"","sources":["../../hooks/useAvailableChains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACrD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAU;QACvD,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE;YACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"useAvailableChains.js","sourceRoot":"","sources":["../../hooks/useAvailableChains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,mBAAmB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACrD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAU;QACvD,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE;YACzD,MAAM,iBAAiB,GAAG,CACxB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CACvD,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAE9D,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;gBACtC,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAClC,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,OAAgB,EAAE,SAAsC,IAAI,EAAE,EAAE;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAC5D,gBAAgB;QAChB,+DAA+D;QAC/D,IAAI;QACJ,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const useDebouncedWatch: <T extends (keyof import("../stores").
|
|
1
|
+
export declare const useDebouncedWatch: <T extends (keyof import("../stores").DefaultValues)[]>(delay: number, ...name: T) => import("../stores").FormFieldArray<T>;
|
package/_esm/hooks/useRoutes.js
CHANGED
|
@@ -13,12 +13,12 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
13
13
|
const { subvariant, sdkConfig, insurance, contractTool } = useWidgetConfig();
|
|
14
14
|
const queryClient = useQueryClient();
|
|
15
15
|
const swapOnly = useSwapOnly();
|
|
16
|
-
const {
|
|
17
|
-
'
|
|
18
|
-
'
|
|
16
|
+
const { disabledBridges, disabledExchanges, enabledAutoRefuel, routePriority, slippage, } = useSettings([
|
|
17
|
+
'disabledBridges',
|
|
18
|
+
'disabledExchanges',
|
|
19
19
|
'enabledAutoRefuel',
|
|
20
|
-
'
|
|
21
|
-
'
|
|
20
|
+
'routePriority',
|
|
21
|
+
'slippage',
|
|
22
22
|
]);
|
|
23
23
|
const [fromTokenAmount] = useDebouncedWatch(320, 'fromAmount');
|
|
24
24
|
const [fromChainId, fromTokenAddress, toAddress, toTokenAmount, toChainId, toContractAddress, toContractCallData, toContractGasLimit, toTokenAddress,] = useFieldValues('fromChain', 'fromToken', 'toAddress', 'toAmount', 'toChain', 'toContractAddress', 'toContractCallData', 'toContractGasLimit', 'toToken');
|
|
@@ -71,8 +71,9 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
71
71
|
toContractCallData,
|
|
72
72
|
toContractGasLimit,
|
|
73
73
|
slippage,
|
|
74
|
-
swapOnly
|
|
75
|
-
|
|
74
|
+
swapOnly,
|
|
75
|
+
disabledBridges,
|
|
76
|
+
disabledExchanges,
|
|
76
77
|
routePriority,
|
|
77
78
|
subvariant,
|
|
78
79
|
sdkConfig?.routeOptions?.allowSwitchChain,
|
|
@@ -83,20 +84,28 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
83
84
|
];
|
|
84
85
|
const { data, isLoading, isFetching, isFetched, dataUpdatedAt, refetch } = useQuery({
|
|
85
86
|
queryKey,
|
|
86
|
-
queryFn: async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, toContractAddress, toContractCallData, toContractGasLimit, slippage = defaultSlippage,
|
|
87
|
+
queryFn: async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, toContractAddress, toContractCallData, toContractGasLimit, slippage = defaultSlippage, swapOnly, disabledBridges, disabledExchanges, routePriority, subvariant, allowSwitchChain, enabledRefuel, gasRecommendationFromAmount, insurance, insurableRouteId,], signal, }) => {
|
|
87
88
|
const toWalletAddress = toAddress || fromAddress;
|
|
88
89
|
const fromAmount = parseUnits(fromTokenAmount, fromToken.decimals).toString();
|
|
89
90
|
const formattedSlippage = parseFloat(slippage) / 100;
|
|
90
|
-
const allowedBridges =
|
|
91
|
-
?
|
|
92
|
-
|
|
93
|
-
.
|
|
94
|
-
|
|
91
|
+
const allowedBridges = swapOnly
|
|
92
|
+
? []
|
|
93
|
+
: insurableRoute
|
|
94
|
+
? insurableRoute.steps.flatMap((step) => step.includedSteps.reduce((toolKeys, includedStep) => {
|
|
95
|
+
if (includedStep.type === 'cross') {
|
|
96
|
+
toolKeys.push(includedStep.toolDetails.key);
|
|
97
|
+
}
|
|
98
|
+
return toolKeys;
|
|
99
|
+
}, []))
|
|
100
|
+
: undefined;
|
|
95
101
|
const allowedExchanges = insurableRoute
|
|
96
|
-
? insurableRoute.steps.flatMap((step) => step.includedSteps
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
? insurableRoute.steps.flatMap((step) => step.includedSteps.reduce((toolKeys, includedStep) => {
|
|
103
|
+
if (includedStep.type === 'swap') {
|
|
104
|
+
toolKeys.push(includedStep.toolDetails.key);
|
|
105
|
+
}
|
|
106
|
+
return toolKeys;
|
|
107
|
+
}, []))
|
|
108
|
+
: undefined;
|
|
100
109
|
if (subvariant === 'nft') {
|
|
101
110
|
const contractCallQuote = await getContractCallQuote({
|
|
102
111
|
// Contract calls are enabled only when fromAddress is set
|
|
@@ -109,7 +118,12 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
109
118
|
toContractAddress,
|
|
110
119
|
toContractCallData,
|
|
111
120
|
toContractGasLimit,
|
|
121
|
+
denyBridges: disabledBridges.length ? disabledBridges : undefined,
|
|
122
|
+
denyExchanges: disabledExchanges.length
|
|
123
|
+
? disabledExchanges
|
|
124
|
+
: undefined,
|
|
112
125
|
allowBridges: allowedBridges,
|
|
126
|
+
allowExchanges: allowedExchanges,
|
|
113
127
|
toFallbackAddress: toWalletAddress,
|
|
114
128
|
slippage: formattedSlippage,
|
|
115
129
|
}, { signal });
|
|
@@ -157,16 +171,26 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
157
171
|
? gasRecommendationFromAmount
|
|
158
172
|
: undefined,
|
|
159
173
|
options: {
|
|
160
|
-
slippage: formattedSlippage,
|
|
161
|
-
bridges: {
|
|
162
|
-
allow: allowedBridges,
|
|
163
|
-
},
|
|
164
|
-
exchanges: {
|
|
165
|
-
allow: allowedExchanges,
|
|
166
|
-
},
|
|
167
|
-
order: routePriority,
|
|
168
174
|
allowSwitchChain: subvariant === 'refuel' ? false : allowSwitchChain,
|
|
175
|
+
bridges: allowedBridges?.length || disabledBridges.length
|
|
176
|
+
? {
|
|
177
|
+
allow: allowedBridges,
|
|
178
|
+
deny: disabledBridges.length
|
|
179
|
+
? disabledBridges
|
|
180
|
+
: undefined,
|
|
181
|
+
}
|
|
182
|
+
: undefined,
|
|
183
|
+
exchanges: allowedExchanges?.length || disabledExchanges.length
|
|
184
|
+
? {
|
|
185
|
+
allow: allowedExchanges,
|
|
186
|
+
deny: disabledExchanges.length
|
|
187
|
+
? disabledExchanges
|
|
188
|
+
: undefined,
|
|
189
|
+
}
|
|
190
|
+
: undefined,
|
|
169
191
|
insurance: insurance ? Boolean(insurableRoute) : undefined,
|
|
192
|
+
order: routePriority,
|
|
193
|
+
slippage: formattedSlippage,
|
|
170
194
|
},
|
|
171
195
|
}, { signal });
|
|
172
196
|
if (data.routes[0] && fromAddress) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRoutes.js","sourceRoot":"","sources":["../../hooks/useRoutes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,GAAG,KAAM,CAAC;AAM3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,cAAc,KAAkB,EAAE,EAAE,EAAE;IAChE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7E,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EACJ,
|
|
1
|
+
{"version":3,"file":"useRoutes.js","sourceRoot":"","sources":["../../hooks/useRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { defaultConfigurableSettings, setDefaultSettings, useSettingsStore, } from '../stores';
|
|
2
1
|
import { shallow } from 'zustand/shallow';
|
|
3
|
-
import { useTools } from './useTools';
|
|
4
2
|
import { useWidgetConfig } from '../providers';
|
|
3
|
+
import { defaultConfigurableSettings, setDefaultSettings, useSettingsStore, } from '../stores';
|
|
4
|
+
import { useTools } from './useTools';
|
|
5
5
|
export const useSettingMonitor = () => {
|
|
6
|
-
const [
|
|
7
|
-
state.
|
|
8
|
-
state.
|
|
6
|
+
const [disabledBridges, disabledExchanges, routePriority, slippage, gasPrice,] = useSettingsStore((state) => [
|
|
7
|
+
state.disabledBridges,
|
|
8
|
+
state.disabledExchanges,
|
|
9
9
|
state.routePriority,
|
|
10
10
|
state.slippage,
|
|
11
11
|
state.gasPrice,
|
|
@@ -21,12 +21,8 @@ export const useSettingMonitor = () => {
|
|
|
21
21
|
? routePriority !== config.routePriority
|
|
22
22
|
: routePriority !== defaultConfigurableSettings.routePriority;
|
|
23
23
|
const isGasPriceChanged = gasPrice !== defaultConfigurableSettings.gasPrice;
|
|
24
|
-
const isBridgesChanged =
|
|
25
|
-
|
|
26
|
-
: false;
|
|
27
|
-
const isExchangesChanged = tools?.exchanges
|
|
28
|
-
? tools?.exchanges?.length !== enabledExchanges?.length
|
|
29
|
-
: false;
|
|
24
|
+
const isBridgesChanged = Boolean(disabledBridges.length);
|
|
25
|
+
const isExchangesChanged = Boolean(disabledExchanges.length);
|
|
30
26
|
const isCustomRouteSettings = isBridgesChanged ||
|
|
31
27
|
isExchangesChanged ||
|
|
32
28
|
isSlippageChanged ||
|
|
@@ -35,7 +31,7 @@ export const useSettingMonitor = () => {
|
|
|
35
31
|
const isRouteSettingsWithWarnings = isSlippageOutsideRecommendedLimits;
|
|
36
32
|
const reset = () => {
|
|
37
33
|
if (tools) {
|
|
38
|
-
resetSettings(
|
|
34
|
+
resetSettings(tools.bridges.map((tool) => tool.key), tools.exchanges.map((tool) => tool.key));
|
|
39
35
|
setDefaultSettings(config);
|
|
40
36
|
}
|
|
41
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSettingMonitor.js","sourceRoot":"","sources":["../../hooks/useSettingMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useSettingMonitor.js","sourceRoot":"","sources":["../../hooks/useSettingMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,CACJ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,QAAQ,EACT,GAAG,gBAAgB,CAClB,CAAC,KAAK,EAAE,EAAE,CAAC;QACT,KAAK,CAAC,eAAe;QACrB,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,aAAa;QACnB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ;KACf,EACD,OAAO,CACR,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ;QACvC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,QAAQ,GAAG,GAAG;QAC5C,CAAC,CAAC,QAAQ,KAAK,2BAA2B,CAAC,QAAQ,CAAC;IAEtD,MAAM,kCAAkC,GACtC,iBAAiB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE5C,MAAM,sBAAsB,GAAG,MAAM,CAAC,aAAa;QACjD,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;QACxC,CAAC,CAAC,aAAa,KAAK,2BAA2B,CAAC,aAAa,CAAC;IAEhE,MAAM,iBAAiB,GAAG,QAAQ,KAAK,2BAA2B,CAAC,QAAQ,CAAC;IAE5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE7D,MAAM,qBAAqB,GACzB,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,sBAAsB;QACtB,iBAAiB,CAAC;IAEpB,MAAM,2BAA2B,GAAG,kCAAkC,CAAC;IAEvE,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,KAAK,EAAE,CAAC;YACV,aAAa,CACX,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EACrC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CACxC,CAAC;YAEF,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,kCAAkC;QAClC,sBAAsB;QACtB,iBAAiB;QACjB,qBAAqB;QACrB,2BAA2B;QAC3B,KAAK;KACN,CAAC;AACJ,CAAC,CAAC"}
|
package/_esm/hooks/useToken.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { TokenAmount } from '../types';
|
|
1
2
|
export declare const useTokenAddressBalance: (chainId?: number, tokenAddress?: string) => {
|
|
2
|
-
token:
|
|
3
|
+
token: TokenAmount | undefined;
|
|
3
4
|
chain: import("@lifi/types").ExtendedChain | undefined;
|
|
4
5
|
isLoading: boolean;
|
|
5
|
-
refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<
|
|
6
|
+
refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<TokenAmount[], Error>>;
|
|
6
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenAddressBalance.js","sourceRoot":"","sources":["../../hooks/useTokenAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useTokenAddressBalance.js","sourceRoot":"","sources":["../../hooks/useTokenAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,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,CAAC;IAE5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,EAAE,IAAI,CAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CACvE,CAAC;YACF,OAAO,KAAoB,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK;QACL,KAAK;QACL,SAAS,EAAE,gBAAgB;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { TokenAmount } from '../types';
|
|
2
2
|
export declare const useTokenBalances: (selectedChainId?: number) => {
|
|
3
|
-
tokens:
|
|
3
|
+
tokens: import("@lifi/sdk").Token[] | undefined;
|
|
4
4
|
tokensWithBalance: TokenAmount[] | undefined;
|
|
5
|
-
featuredTokens:
|
|
5
|
+
featuredTokens: TokenAmount[] | undefined;
|
|
6
|
+
popularTokens: TokenAmount[] | undefined;
|
|
6
7
|
chain: import("@lifi/sdk").ExtendedChain | undefined;
|
|
7
8
|
isLoading: boolean;
|
|
8
9
|
isBalanceLoading: boolean;
|
|
@@ -2,12 +2,10 @@ import { getTokenBalances } from '@lifi/sdk';
|
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
3
|
import { formatUnits } from 'viem';
|
|
4
4
|
import { useAccount } from './useAccount';
|
|
5
|
-
import { useFeaturedTokens } from './useFeaturedTokens';
|
|
6
5
|
import { useTokens } from './useTokens';
|
|
7
6
|
const defaultRefetchInterval = 32000;
|
|
8
7
|
export const useTokenBalances = (selectedChainId) => {
|
|
9
|
-
const featuredTokens =
|
|
10
|
-
const { tokens, chain, isLoading } = useTokens(selectedChainId);
|
|
8
|
+
const { tokens, featuredTokens, popularTokens, chain, isLoading } = useTokens(selectedChainId);
|
|
11
9
|
const { account } = useAccount({ chainType: chain?.chainType });
|
|
12
10
|
const isBalanceLoadingEnabled = Boolean(account.address) &&
|
|
13
11
|
Boolean(tokens?.length) &&
|
|
@@ -20,22 +18,42 @@ export const useTokenBalances = (selectedChainId) => {
|
|
|
20
18
|
tokens?.length,
|
|
21
19
|
],
|
|
22
20
|
queryFn: async ({ queryKey: [, accountAddress] }) => {
|
|
23
|
-
const
|
|
24
|
-
|
|
21
|
+
const tokensWithBalance = await getTokenBalances(accountAddress, tokens);
|
|
22
|
+
if (!tokensWithBalance?.length) {
|
|
23
|
+
return tokens;
|
|
24
|
+
}
|
|
25
25
|
const sortFn = (a, b) => parseFloat(formatUnits(b.amount ?? 0n, b.decimals)) *
|
|
26
26
|
parseFloat(b.priceUSD ?? '0') -
|
|
27
27
|
parseFloat(formatUnits(a.amount ?? 0n, a.decimals)) *
|
|
28
28
|
parseFloat(a.priceUSD ?? '0');
|
|
29
|
-
const
|
|
29
|
+
const featuredTokens = [];
|
|
30
|
+
const tokensWithAmount = [];
|
|
31
|
+
const popularTokens = [];
|
|
32
|
+
const allTokens = [];
|
|
33
|
+
tokensWithBalance.forEach((token) => {
|
|
34
|
+
if (token.amount) {
|
|
35
|
+
token.featured = false;
|
|
36
|
+
token.popular = false;
|
|
37
|
+
}
|
|
38
|
+
if (token.featured) {
|
|
39
|
+
featuredTokens.push(token);
|
|
40
|
+
}
|
|
41
|
+
else if (token.amount) {
|
|
42
|
+
tokensWithAmount.push(token);
|
|
43
|
+
}
|
|
44
|
+
else if (token.popular) {
|
|
45
|
+
popularTokens.push(token);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
allTokens.push(token);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
tokensWithAmount.sort(sortFn);
|
|
30
52
|
const result = [
|
|
31
|
-
...
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
...
|
|
35
|
-
...formattedTokens
|
|
36
|
-
.filter((token) => token.amount && !featuredTokenAddresses.has(token.address))
|
|
37
|
-
.sort(sortFn),
|
|
38
|
-
...formattedTokens.filter((token) => !token.amount && !featuredTokenAddresses.has(token.address)),
|
|
53
|
+
...featuredTokens,
|
|
54
|
+
...tokensWithAmount,
|
|
55
|
+
...popularTokens,
|
|
56
|
+
...allTokens,
|
|
39
57
|
];
|
|
40
58
|
return result;
|
|
41
59
|
},
|
|
@@ -47,6 +65,7 @@ export const useTokenBalances = (selectedChainId) => {
|
|
|
47
65
|
tokens,
|
|
48
66
|
tokensWithBalance,
|
|
49
67
|
featuredTokens,
|
|
68
|
+
popularTokens,
|
|
50
69
|
chain,
|
|
51
70
|
isLoading,
|
|
52
71
|
isBalanceLoading: isBalanceLoading && isBalanceLoadingEnabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenBalances.js","sourceRoot":"","sources":["../../hooks/useTokenBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useTokenBalances.js","sourceRoot":"","sources":["../../hooks/useTokenBalances.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { TokenAmount } from '../types';
|
|
2
2
|
export declare const useTokens: (selectedChainId?: number) => {
|
|
3
|
-
tokens:
|
|
3
|
+
tokens: import("@lifi/sdk").Token[] | undefined;
|
|
4
|
+
featuredTokens: TokenAmount[] | undefined;
|
|
5
|
+
popularTokens: TokenAmount[] | undefined;
|
|
4
6
|
chain: import("@lifi/sdk").ExtendedChain | undefined;
|
|
5
7
|
isLoading: boolean;
|
|
6
8
|
};
|
package/_esm/hooks/useTokens.js
CHANGED
|
@@ -3,7 +3,6 @@ import { useQuery } from '@tanstack/react-query';
|
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { useWidgetConfig } from '../providers';
|
|
5
5
|
import { useChains } from './useChains';
|
|
6
|
-
import { useFeaturedTokens } from './useFeaturedTokens';
|
|
7
6
|
export const useTokens = (selectedChainId) => {
|
|
8
7
|
const { tokens: configTokens } = useWidgetConfig();
|
|
9
8
|
const { data, isLoading } = useQuery({
|
|
@@ -12,9 +11,8 @@ export const useTokens = (selectedChainId) => {
|
|
|
12
11
|
refetchInterval: 3600000,
|
|
13
12
|
});
|
|
14
13
|
const { chains, isLoading: isSupportedChainsLoading, getChainById, } = useChains();
|
|
15
|
-
const featuredTokens = useFeaturedTokens(selectedChainId);
|
|
16
14
|
const filteredData = useMemo(() => {
|
|
17
|
-
if (isSupportedChainsLoading) {
|
|
15
|
+
if (isSupportedChainsLoading || !data) {
|
|
18
16
|
return;
|
|
19
17
|
}
|
|
20
18
|
const chain = getChainById(selectedChainId, chains);
|
|
@@ -22,50 +20,65 @@ export const useTokens = (selectedChainId) => {
|
|
|
22
20
|
if (!chainAllowed) {
|
|
23
21
|
return;
|
|
24
22
|
}
|
|
25
|
-
let filteredTokens = data?.
|
|
23
|
+
let filteredTokens = data.tokens?.[selectedChainId] || [];
|
|
26
24
|
const includedTokens = configTokens?.include?.filter((token) => token.chainId === selectedChainId);
|
|
27
25
|
if (includedTokens?.length) {
|
|
28
|
-
filteredTokens = filteredTokens
|
|
29
|
-
? [...includedTokens, ...filteredTokens]
|
|
30
|
-
: includedTokens;
|
|
26
|
+
filteredTokens = [...includedTokens, ...filteredTokens];
|
|
31
27
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
if (configTokens?.allow?.length || configTokens?.deny?.length) {
|
|
29
|
+
const allowedTokensSet = new Set(configTokens?.allow
|
|
30
|
+
?.filter((token) => token.chainId === selectedChainId)
|
|
31
|
+
.map((token) => token.address));
|
|
32
|
+
const deniedTokenAddressesSet = new Set(configTokens?.deny
|
|
33
|
+
?.filter((token) => token.chainId === selectedChainId)
|
|
34
|
+
.map((token) => token.address));
|
|
35
|
+
if (allowedTokensSet.size || deniedTokenAddressesSet.size) {
|
|
36
|
+
filteredTokens = filteredTokens.filter((token) => (!allowedTokensSet.size || allowedTokensSet.has(token.address)) &&
|
|
37
|
+
!deniedTokenAddressesSet.has(token.address));
|
|
38
|
+
}
|
|
37
39
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
const filteredTokensMap = new Map(filteredTokens.map((token) => [token.address, token]));
|
|
41
|
+
const [popularTokens, featuredTokens] = ['popular', 'featured'].map((tokenType) => {
|
|
42
|
+
const typedConfigTokens = configTokens?.[tokenType]?.filter((token) => token.chainId === selectedChainId);
|
|
43
|
+
const populatedConfigTokens = typedConfigTokens?.map((token) => {
|
|
44
|
+
// Mark token as popular
|
|
45
|
+
token[tokenType] = true;
|
|
46
|
+
// Check if this token exists in the filteredTokensMap and add priceUSD if it does
|
|
47
|
+
const matchingFilteredToken = filteredTokensMap.get(token.address);
|
|
48
|
+
if (matchingFilteredToken?.priceUSD) {
|
|
49
|
+
token.priceUSD = matchingFilteredToken.priceUSD;
|
|
50
|
+
}
|
|
51
|
+
if (!token.logoURI && matchingFilteredToken) {
|
|
52
|
+
token.logoURI = matchingFilteredToken.logoURI;
|
|
53
|
+
}
|
|
48
54
|
return token;
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
});
|
|
56
|
+
if (populatedConfigTokens?.length) {
|
|
57
|
+
const configTokenAddresses = new Set(populatedConfigTokens?.map((token) => token.address));
|
|
58
|
+
filteredTokens = filteredTokens.filter((token) => !configTokenAddresses.has(token.address));
|
|
59
|
+
populatedConfigTokens.push(...filteredTokens);
|
|
60
|
+
filteredTokens = populatedConfigTokens;
|
|
61
|
+
}
|
|
62
|
+
return populatedConfigTokens;
|
|
63
|
+
});
|
|
52
64
|
return {
|
|
53
|
-
tokens,
|
|
65
|
+
tokens: filteredTokens,
|
|
66
|
+
featuredTokens,
|
|
67
|
+
popularTokens,
|
|
54
68
|
chain,
|
|
55
69
|
};
|
|
56
70
|
}, [
|
|
57
71
|
chains,
|
|
58
|
-
configTokens
|
|
59
|
-
|
|
60
|
-
configTokens?.include,
|
|
61
|
-
data?.tokens,
|
|
62
|
-
featuredTokens,
|
|
72
|
+
configTokens,
|
|
73
|
+
data,
|
|
63
74
|
getChainById,
|
|
64
75
|
isSupportedChainsLoading,
|
|
65
76
|
selectedChainId,
|
|
66
77
|
]);
|
|
67
78
|
return {
|
|
68
79
|
tokens: filteredData?.tokens,
|
|
80
|
+
featuredTokens: filteredData?.featuredTokens,
|
|
81
|
+
popularTokens: filteredData?.popularTokens,
|
|
69
82
|
chain: filteredData?.chain,
|
|
70
83
|
isLoading,
|
|
71
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../../hooks/useTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../../hooks/useTokens.ts"],"names":[],"mappings":"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"}
|
package/_esm/i18n/en.json
CHANGED
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"deselectAll": "Deselect all"
|
|
175
175
|
},
|
|
176
176
|
"main": {
|
|
177
|
+
"allTokens": "All tokens",
|
|
177
178
|
"crossStepDetails": "Bridge from {{from}} to {{to}} via {{tool}}",
|
|
178
179
|
"currentAmount": "Current amount",
|
|
179
180
|
"featuredTokens": "Featured tokens",
|
|
@@ -189,10 +190,11 @@
|
|
|
189
190
|
"fromAmount": "You pay",
|
|
190
191
|
"gasCost": "Gas cost",
|
|
191
192
|
"inProgress": "in progress",
|
|
193
|
+
"myTokens": "My tokens",
|
|
192
194
|
"nftStepDetails": "Purchase NFT via {{tool}}",
|
|
193
195
|
"onChain": "on {{chainName}}",
|
|
194
|
-
"otherTokens": "Other tokens",
|
|
195
196
|
"ownedBy": "Owned by",
|
|
197
|
+
"popularTokens": "Popular tokens",
|
|
196
198
|
"process": {
|
|
197
199
|
"crossChain": {
|
|
198
200
|
"actionRequired": "Please sign the transaction",
|