Как получить токен «ownerof» на Солане

Я пытаюсь понять, как вы можете получить токен «ownerof», как в Ethereum, но вместо этого в блокчейне Solana.

Например, я хочу, чтобы пользователь имел доступ к определенной части веб-сайта, только если у него есть токен x на его фантомном кошельке (или другом кошельке Solana).

1 ответ

Если вы хотите понять, владеет ли пользователь определенным токеном, вам нужно проверить, владеет ли он в настоящее время учетной записью токена этого конкретного монетного двора и имеет ли баланс> 0.

Код будет выглядеть следующим образом: сумма проверки этого адреса владеет 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);
Другие вопросы по тегам