0

我正在尝试了解如何在以太坊上获得“ownerof”令牌,而不是在 Solana 区块链上。

例如,我希望用户只有在他们的虚拟钱包(或其他 Solana 钱包)上有 x 代币时才能访问网站的某个部分。

4

1 回答 1

0

如果您想了解用户是否拥有特定令牌,您必须检查他们当前是否拥有该特定铸币厂的令牌帐户并且余额 > 0。

代码如下检查地址GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ拥有 USDC 的金额:

import {clusterApiUrl, Connection, Keypair, LAMPORTS_PER_SOL, ParsedAccountData, PublicKey} from '@solana/web3.js';
import {ASSOCIATED_TOKEN_PROGRAM_ID, Token, TOKEN_PROGRAM_ID} from "@solana/spl-token";

const publicKey = new PublicKey("GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ");
const mint = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");

const connection = new Connection(clusterApiUrl('mainnet-beta'));

const associatedAddress = await Token.getAssociatedTokenAddress(
    ASSOCIATED_TOKEN_PROGRAM_ID,
    TOKEN_PROGRAM_ID,
    mint,
    publicKey
  );

console.log(associatedAddress.toBase58());

const tokenAccountInfo = await connection.getParsedAccountInfo(associatedAddress);

console.log((tokenAccountInfo.value?.data as ParsedAccountData).parsed.info.tokenAmount.amount);
于 2022-01-11T23:12:27.167 回答