From 55fd40375080e5158c43c67fbe40b9b65b1a6ec4 Mon Sep 17 00:00:00 2001 From: Armani Ferrante Date: Mon, 22 Feb 2021 15:27:37 +0800 Subject: [PATCH] Don't show fingerprint icon for non associated token accounts --- src/components/BalancesList.js | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/components/BalancesList.js b/src/components/BalancesList.js index dd640ff..f5c32d3 100644 --- a/src/components/BalancesList.js +++ b/src/components/BalancesList.js @@ -10,6 +10,7 @@ import { useWalletPublicKeys, useWalletSelector, } from '../utils/wallet'; +import { findAssociatedTokenAddress } from '../utils/tokens'; import LoadingIndicator from './LoadingIndicator'; import Collapse from '@material-ui/core/Collapse'; import { Typography } from '@material-ui/core'; @@ -180,10 +181,12 @@ const useStyles = makeStyles((theme) => ({ })); export function BalanceListItem({ publicKey, expandable }) { + const wallet = useWallet(); const balanceInfo = useBalanceInfo(publicKey); const classes = useStyles(); const connection = useConnection(); const [open, setOpen] = useState(false); + const [isAssociatedToken, setIsAssociatedToken] = useState(false); // Valid states: // * undefined => loading. // * null => not found. @@ -218,18 +221,28 @@ export function BalanceListItem({ publicKey, expandable }) { let { amount, decimals, mint, tokenName, tokenSymbol } = balanceInfo; + if (wallet.publicKey && mint) { + findAssociatedTokenAddress(wallet.publicKey, mint).then((assocTok) => { + if (assocTok.equals(publicKey)) { + setIsAssociatedToken(true); + } + }); + } + const subtitle = (
-
- -
+ {isAssociatedToken && ( +
+ +
+ )}