GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> solana教程 >> 在 Solana 上设置代币余额检查器

在 Solana 上设置代币余额检查器

admin solana教程 52

本指南将帮助您设置和使用脚本来获取用户钱包的代币余额。该脚本会获取 Lamport 和 UI 单元中的代币余额(例如 BONK)。UI 余额可用于检查人类可读的阈值,例如 1,000,000 个代币。

先决条件

在 Solana 上设置代币余额检查器

确保你的系统上安装了 Node.js 和 npm(Node 包管理器)。你可以通过运行以下命令来验证安装:

node -vnpm -v

安装

步骤 1:ts-node全局安装

ts-node是 Node 的 TypeScript 执行环境。使用 npm 全局安装:

npm install -g ts-node

第 2 步:安装所需的依赖项

运行以下命令来安装必要的库:

npm install @metaplex-foundation/mpl-token-metadata @metaplex-foundation/mpl-toolbox @metaplex-foundation/umi @metaplex-foundation/umi-bundle-defaults

步骤3:安装开发依赖项

安装 TypeScript 作为开发依赖项:

npm install --save-dev typescript

脚本设置

创建一个名为的文件getTokenBalance.ts 并将以下代码片段粘贴到其中:

import { mplTokenMetadata } from "@metaplex-foundation/mpl-token-metadata";import {  findAssociatedTokenPda,  safeFetchMint,  safeFetchToken,} from "@metaplex-foundation/mpl-toolbox";import { publicKey } from "@metaplex-foundation/umi";import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; const getTokenbalance = async (  userPublicKeyString: string, // USER WALLET ADDRESS  mintPublicKeyString: string, // TOKEN MINT) => {  try {    // Get RPC from Helius or any other RPC provider of your choice    const endpoint = "ADD YOUR RPC HERE";        const umi = createUmi(endpoint).use(mplTokenMetadata());    const userPublicKey = publicKey(userPublicKeyString);     const mint = publicKey(mintPublicKeyString);     const associatedTokenAccount = findAssociatedTokenPda(umi, {      mint,      owner: userPublicKey,    });    const mintData = await safeFetchMint(umi, mint);    const userPublicKeyData = await safeFetchToken(      umi,      associatedTokenAccount[0]    );    const balanceInLamports = userPublicKeyData?.amount;     let uiBalance = BigInt(0);    if (balanceInLamports && mintData) {      uiBalance = balanceInLamports / BigInt(10 ** mintData?.decimals);    } else {      // Handle cases where balance or mint data is not available      console.error("Balance or mint data not available.");    }        // LAMPORTS AMOUNT    console.log(balanceInLamports);    // UI AMOUNT    console.log(uiBalance);        return {      balanceInLamports,      uiBalance    };  } catch (error) {    console.error(error);  }};

用法

getTokenbalance 函数获取给定用户钱包地址和代币铸币的代币余额。它以 Lamport 和 UI 单位返回余额。

参数

  • userPublicKeyString:用户钱包的公钥。

  • mintPublicKeyString:代币铸造者的公钥。

例子

(async () => {  const result = await getTokenbalance(    "USER_WALLET_PUBLIC_KEY",  // Replace with actual user wallet public key    "TOKEN_MINT_PUBLIC_KEY"    // Replace with actual token mint public key  );    if (result) {    const { balanceInLamports, uiBalance } = result;        // Check if the user has 1,000,000 BONK    const threshold = BigInt(1_000_000);    if (uiBalance > threshold) {      console.log("User has more than 1,000,000 BONK tokens.");    } else {      console.log("User has less than 1,000,000 BONK tokens.");    }  }})();

笔记

  • 确保将“在此添加您的 RPC”替换为您选择的 RPC 提供商的端点。

  • 根据您的需求调整用户钱包公钥和代币铸造公钥。

此脚本提供了使用 Metaplex Foundation 库获取代币余额的基本示例。您可以扩展或修改它以适合您的特定用例。


作者:GTokenTool一键发币平台

交流群:https://t.me/+Kz4u3xoDpFo3ZWY1

同类推荐