fix: spam tokens showing up in currency selector (#7545)
* fix: spam tokens showing up in currency selector * chain id check * token chain id
This commit is contained in:
parent
443a00a777
commit
a0d880cf81
@ -5,6 +5,7 @@ import { ChainId, Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'
|
|||||||
import { useWeb3React } from '@web3-react/core'
|
import { useWeb3React } from '@web3-react/core'
|
||||||
import { Trace } from 'analytics'
|
import { Trace } from 'analytics'
|
||||||
import { useCachedPortfolioBalancesQuery } from 'components/PrefetchBalancesWrapper/PrefetchBalancesWrapper'
|
import { useCachedPortfolioBalancesQuery } from 'components/PrefetchBalancesWrapper/PrefetchBalancesWrapper'
|
||||||
|
import { TokenBalance } from 'graphql/data/__generated__/types-and-hooks'
|
||||||
import { supportedChainIdFromGQLChain } from 'graphql/data/util'
|
import { supportedChainIdFromGQLChain } from 'graphql/data/util'
|
||||||
import useDebounce from 'hooks/useDebounce'
|
import useDebounce from 'hooks/useDebounce'
|
||||||
import { useOnClickOutside } from 'hooks/useOnClickOutside'
|
import { useOnClickOutside } from 'hooks/useOnClickOutside'
|
||||||
@ -20,6 +21,7 @@ import { Text } from 'rebass'
|
|||||||
import styled, { useTheme } from 'styled-components'
|
import styled, { useTheme } from 'styled-components'
|
||||||
import { CloseIcon, ThemedText } from 'theme/components'
|
import { CloseIcon, ThemedText } from 'theme/components'
|
||||||
import { UserAddedToken } from 'types/tokens'
|
import { UserAddedToken } from 'types/tokens'
|
||||||
|
import { splitHiddenTokens } from 'utils/splitHiddenTokens'
|
||||||
|
|
||||||
import { useDefaultActiveTokens, useIsUserAddedToken, useSearchInactiveTokenLists, useToken } from '../../hooks/Tokens'
|
import { useDefaultActiveTokens, useIsUserAddedToken, useSearchInactiveTokenLists, useToken } from '../../hooks/Tokens'
|
||||||
import { isAddress } from '../../utils'
|
import { isAddress } from '../../utils'
|
||||||
@ -99,18 +101,27 @@ export function CurrencySearch({
|
|||||||
}, [chainId, data?.portfolios])
|
}, [chainId, data?.portfolios])
|
||||||
|
|
||||||
const sortedTokens: Token[] = useMemo(() => {
|
const sortedTokens: Token[] = useMemo(() => {
|
||||||
const portfolioTokens = data?.portfolios?.[0].tokenBalances
|
const portfolioTokenBalances = data?.portfolios?.[0].tokenBalances as TokenBalance[] | undefined
|
||||||
?.map((tokenBalance) => {
|
const portfolioTokens = splitHiddenTokens(portfolioTokenBalances ?? [])
|
||||||
|
.visibleTokens.map((tokenBalance) => {
|
||||||
if (!tokenBalance?.token?.chain || !tokenBalance.token?.address || !tokenBalance.token?.decimals) {
|
if (!tokenBalance?.token?.chain || !tokenBalance.token?.address || !tokenBalance.token?.decimals) {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
return new Token(
|
|
||||||
supportedChainIdFromGQLChain(tokenBalance.token?.chain) ?? ChainId.MAINNET,
|
const tokenChainId = supportedChainIdFromGQLChain(tokenBalance.token?.chain) ?? ChainId.MAINNET
|
||||||
|
if (tokenChainId !== chainId) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
const portfolioToken = new Token(
|
||||||
|
tokenChainId,
|
||||||
tokenBalance.token?.address,
|
tokenBalance.token?.address,
|
||||||
tokenBalance.token?.decimals,
|
tokenBalance.token?.decimals,
|
||||||
tokenBalance.token?.symbol,
|
tokenBalance.token?.symbol,
|
||||||
tokenBalance.token?.name
|
tokenBalance.token?.name
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return portfolioToken
|
||||||
})
|
})
|
||||||
.filter((token) => !!token) as Token[]
|
.filter((token) => !!token) as Token[]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user