Added a supply check to confirm a SPL Token is actually a Metaplex NFT (#21145)

Co-authored-by: Will Roeder <roederw@titan.lan>
This commit is contained in:
Will Roeder 2021-11-03 12:52:04 -07:00 committed by GitHub
parent c59c56c0f8
commit b8ac6c1889
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 4 deletions

View File

@ -54,7 +54,7 @@ export function TokenAccountSection({
case "mint": {
const info = create(tokenAccount.info, MintAccountInfo);
if (isMetaplexNFT(account.details?.data, info.decimals)) {
if (isMetaplexNFT(account.details?.data, info)) {
return (
<NonFungibleTokenMintAccountCard
account={account}

View File

@ -166,7 +166,7 @@ export function AccountHeader({
const data = account?.details?.data;
const isToken = data?.program === "spl-token" && data?.parsed.type === "mint";
if (isMetaplexNFT(data, mintInfo?.decimals)) {
if (isMetaplexNFT(data, mintInfo)) {
return (
<NFTHeader
nftData={(data as TokenProgramData).nftData!}

View File

@ -1,10 +1,15 @@
import { MintAccountInfo } from "validators/accounts/token";
import { ProgramData } from "..";
export default function isMetaplexNFT(data?: ProgramData, decimals?: number) {
export default function isMetaplexNFT(
data?: ProgramData,
mintInfo?: MintAccountInfo
) {
return (
data?.program === "spl-token" &&
data?.parsed.type === "mint" &&
data?.nftData &&
decimals === 0
mintInfo?.decimals === 0 &&
parseInt(mintInfo.supply) === 1
);
}