找回密码
 立即注册
搜索
热搜: GTokenTool
查看: 105|回复: 1

如何获取流动池内的代币余额

[复制链接]

212

主题

211

回帖

1228

积分

管理员

积分
1228
发表于 2025-7-21 19:17:18 | 显示全部楼层 |阅读模式
pancakeswap的用户资金池的数据是怎么计算或者获取的呢,有没有一种方法可以获取到流动池内的余额呢,不是获取钱包的

212

主题

211

回帖

1228

积分

管理员

积分
1228
 楼主| 发表于 2025-7-21 19:19:02 | 显示全部楼层
要获取 PancakeSwap 流动性池内的资金余额数据(而不是个人钱包余额),有几种主要方法:
1. 通过 PancakeSwap 合约直接查询
PancakeSwap 的流动性池都是智能合约,你可以直接调用这些合约的方法来获取池内余额:
javascript





const ERC20ABI = [{"constant":true,"inputs":[{"name":"_owner","type":"address"},"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"},"type":"function"};// 例如查询 BNB-USDT 池const poolAddress = "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE"; // BNB-USDT 池地址const tokenAddress = "0x55d398326f99059fF775485246999027B3197955"; // USDT 代币地址const tokenContract = new web3.eth.Contract(ERC20ABI, tokenAddress);const balance = await tokenContract.methods.balanceOf(poolAddress).call();console.log("池中USDT余额:", balance);

2. 使用 PancakeSwap Subgraph (GraphQL API)
PancakeSwap 提供了官方 Subgraph,可以查询流动性池数据:
graphql





{  pair(id: "0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae") {    id    token0 {      symbol    }    token1 {      symbol    }    reserve0    reserve1    totalSupply  }}

3. 使用 PancakeSwap API
PancakeSwap 提供了一些公开 API 端点,例如获取所有交易对:
text





https://api.pancakeswap.info/api/v2/pairs

4. 使用区块链浏览器 API
也可以通过 BscScan 等区块链浏览器的 API 查询合约余额。
5. 使用 JavaScript 库
使用 ethers.js 或 web3.js 库:
javascript





const { ethers } = require("ethers");const provider = new ethers.providers.JsonRpcProvider("https://bsc-dataseed.binance.org/");const tokenContract = new ethers.Contract(tokenAddress, ERC20ABI, provider);async function getPoolBalance() {  const balance = await tokenContract.balanceOf(poolAddress);  console.log("池余额:", ethers.utils.formatUnits(balance, 18)); // 根据代币小数位调整}

注意事项
  • 池地址需要先确认正确 - 可以在 PancakeSwap 官网或文档找到
  • 代币余额需要考虑小数位数(decimals)
  • 对于 LP 代币,需要查询 pair 合约的 getReserves() 方法获取两种代币的储备量

以上方法都可以获取流动性池内的资金余额,而不是个人钱包的余额。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telegram|手机版|小黑屋|GTokenTool

GMT+8, 2025-9-11 04:04 , Processed in 0.023581 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表