From e9bdca55e1f687d41588420adab07e75f1f55d49 Mon Sep 17 00:00:00 2001 From: LuizAsFight Date: Wed, 6 Nov 2024 18:33:30 +0700 Subject: [PATCH 1/4] feat: support nft + dont send funds to assetId --- .../BalanceAssets/BalanceAssets.tsx | 34 +++++++++----- .../src/systems/Asset/cache/AssetsCache.ts | 47 +++++++++++-------- .../Asset/components/AssetItem/AssetItem.tsx | 4 +- .../app/src/systems/Asset/utils/assetId.ts | 5 ++ .../systems/Asset/utils/{isNft.ts => nft.ts} | 20 +++++--- .../app/src/systems/Send/hooks/useSend.tsx | 14 ++++++ packages/types/src/accounts.ts | 5 +- packages/types/src/asset.ts | 2 + 8 files changed, 91 insertions(+), 40 deletions(-) rename packages/app/src/systems/Asset/utils/{isNft.ts => nft.ts} (96%) diff --git a/packages/app/src/systems/Account/components/BalanceAssets/BalanceAssets.tsx b/packages/app/src/systems/Account/components/BalanceAssets/BalanceAssets.tsx index 7956c3c250..8250942b15 100644 --- a/packages/app/src/systems/Account/components/BalanceAssets/BalanceAssets.tsx +++ b/packages/app/src/systems/Account/components/BalanceAssets/BalanceAssets.tsx @@ -1,6 +1,7 @@ import { Button, CardList } from '@fuel-ui/react'; import type { CoinAsset } from '@fuel-wallet/types'; import { useMemo, useState } from 'react'; +import { isUnknownAsset } from '~/systems/Asset'; import { AssetItem, AssetList } from '~/systems/Asset/components'; import type { AssetListEmptyProps } from '~/systems/Asset/components/AssetList/AssetListEmpty'; @@ -21,7 +22,10 @@ export const BalanceAssets = ({ }: BalanceAssetListProp) => { const [showUnknown, setShowUnknown] = useState(false); const unknownLength = useMemo( - () => balances?.filter((balance) => !balance.asset?.name).length, + () => + balances?.filter( + (balance) => balance.asset && isUnknownAsset(balance.asset) + ).length, [balances] ); @@ -29,7 +33,8 @@ export const BalanceAssets = ({ const isEmpty = !balances || !balances.length; if (isEmpty) return ; const balancesToShow = balances.filter( - (balance) => showUnknown || balance.asset?.name + (balance) => + showUnknown || (balance.asset && !isUnknownAsset(balance.asset)) ); function toggle() { @@ -37,15 +42,22 @@ export const BalanceAssets = ({ } return ( - {balancesToShow.map((balance) => ( - - ))} + {balancesToShow.map((balance) => { + if (!balance.asset) return null; + + const shouldShowAddAssetBtn = isUnknownAsset(balance.asset); + + return ( + + ); + })} {!!(!isLoading && unknownLength) && (