11import { getChainsQuery } from '@/hooks/useChains' ;
2+ import { getTokensQuery } from '@/hooks/useTokens' ;
23import coins from '@/utils/coins' ;
34import { getBridgeUrl } from '@/utils/getBridgeUrl' ;
45import { buildUrl , toSitemapDate } from '@/utils/sitemap' ;
5- import { getChainById } from '@/utils/tokenAndChain' ;
6+ import {
7+ getChainById ,
8+ getTokenBySymbolOnSpecificChain ,
9+ } from '@/utils/tokenAndChain' ;
610import type { SitemapXmlEntry } from '@/utils/sitemaps/xml' ;
711import { isAlphanumeric } from '@/utils/validation-schemas' ;
8- import type { ExtendedChain , Token } from '@lifi/sdk' ;
12+ import type { ExtendedChain , Token , TokensResponse } from '@lifi/sdk' ;
913
1014export const dynamic = 'force-static' ;
1115
12- const SITEMAP_LIMIT = 50_000 ;
16+ const SITEMAP_LIMIT = 10_000 ;
1317
14- const getFilteredCoins = ( availableChainIds : number [ ] ) : Token [ ] =>
18+ const getFilteredCoins = (
19+ availableChainIds : number [ ] ,
20+ availableTokens : TokensResponse [ 'tokens' ] ,
21+ ) : Token [ ] =>
1522 coins . filter (
1623 ( coin ) =>
17- availableChainIds . includes ( coin . chainId ) && isAlphanumeric ( coin . symbol ) ,
24+ availableChainIds . includes ( coin . chainId ) &&
25+ isAlphanumeric ( coin . symbol ) &&
26+ getTokenBySymbolOnSpecificChain (
27+ availableTokens ,
28+ coin . chainId ,
29+ coin . symbol ,
30+ ) !== undefined ,
1831 ) as Token [ ] ;
1932
2033const generateBridgePairs = ( tokens : Token [ ] ) : Array < [ Token , Token ] > => {
@@ -32,9 +45,12 @@ const generateBridgePairs = (tokens: Token[]): Array<[Token, Token]> => {
3245} ;
3346
3447const getChainData = async ( ) => {
35- const { chains } = await getChainsQuery ( ) ;
48+ const [ { chains } , availableTokens ] = await Promise . all ( [
49+ getChainsQuery ( ) ,
50+ getTokensQuery ( ) ,
51+ ] ) ;
3652 const availableChainIds = chains . map ( ( chain ) => chain . id ) ;
37- const filteredCoins = getFilteredCoins ( availableChainIds ) ;
53+ const filteredCoins = getFilteredCoins ( availableChainIds , availableTokens ) ;
3854 const pairs = generateBridgePairs ( filteredCoins ) ;
3955 return { chains, pairs } ;
4056} ;
0 commit comments