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

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

admin solana教程 56

本指南将帮助您设置和使用脚本从池(例如 Meteora 的 USDC-USDT 池)中获取 LP(流动性提供者)代币余额。该脚本以 Lamport 和 UI 单位获取 LP 代币余额。UI 余额可用于检查人性化阈值,例如池中的 1000 美元价值。

先决条件

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

确保你的系统上安装了 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 i

脚本设置

创建一个名为的文件getLPBalance.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 getLPBalance = async (  userPublicKeyString: string, // USER WALLET ADDRESS  mintPublicKeyString: string, // LP MINT ADDRESS) => {  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);  }};

用法

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

参数

  • userPublicKeyString:用户钱包的公钥。

  • mintPublicKeyString:LP铸币地址的公钥。

例子

(async () => {  const result = await getLPBalance(    "USER_WALLET_PUBLIC_KEY",  // Replace with actual user wallet public key    "LP_MINT_PUBLIC_KEY"       // Replace with actual LP mint public key  );    if (result) {    const { balanceInLamports, uiBalance } = result;        // Check if the user has provided $1000 worth in the LP Pool    const threshold = BigInt(1_000);    if (uiBalance > threshold) {      console.log("User has provided more than $1000 worth in the LP Pool.");    } else {      console.log("User has provided less than $1000 worth in the LP Pool.");    }  }})()

笔记

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

  • 根据您的要求调整用户钱包公钥和LP mint公钥。

要找到 LP Mint 地址,请访问 Meteora 的 USDC-USDT 池并找到 LP Mint 地址,如下图所示。

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

作者:GTokenTool一键发币平台

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

同类推荐