GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> solana教程 >> 如何在 Solana 上获取地址的代币余额

如何在 Solana 上获取地址的代币余额

admin solana教程 198

概述

下面,您可以找到两个主要部分:“教程:使用简单的后端脚本获取 Solana 上的代币余额”和“使用我们的示例 Dapp 获取 Solana 上的任何代币余额”。第一个是我们的三步教程,演示如何使用 JavaScript、TypeScript 或 Python 以最少的麻烦获取 SPL 代币余额。 

这三个步骤如下:

  1. Moralis 设置– 在这里,我们查看可用于设置 Moralis SDK 的各种命令。

  2. 获取地址的 SPL 代币余额– 本节介绍参数及其各自的选项,无论您是想关注主网还是开发网。此外,我们还将介绍如何使用 JavaScript、TypeScript 和 Python 获取代币余额。

  3. 运行您的脚本——在此部分中,您最终可以运行脚本来获取特定 Solana 地址的代币余额。

另一方面,第二部分重点介绍围绕主要端点的示例项目。此示例项目使用与本教程中介绍的相同原理,但还包含一个简单的 HTML 前端。后者使您能够getSPL在浏览器中体验端点的强大功能。  

获取 Solana 上的代币余额——使用 getSPL 端点

教程:使用简单的后端脚本获取 Solana 上的代币余额

在进入本教程的第一步之前,请确保满足以下先决条件:

  • 如果您希望使用 JavaScript 或 TypeScript 在 Solana 上获取代币余额,请下载并安装 NodeJS v.14 或更高版本。如果您喜欢使用该语言,也可以安装 Python。

  • 安装您最喜欢的包管理器(NPM、Yarn 或 PIP)。

  • 确保你已准备好可靠的代码编辑器。我们更喜欢使用 Visual Studio Code (VSC)。

满足上述先决条件后,您就可以开始本教程的第一步了。 

步骤 1:Moralis 设置 

如果您尚未创建 Moralis 帐户,请立即创建。只需一个免费帐户即可完成本教程并访问所有 Moralis API 端点。但是,如果您认真对待 Web3 开发并希望构建能够轻松支持大量流量的 dapp,则应该购买 Moralis Pro、Business 或 Enterprise 计划。

现在您已准备好 Moralis 帐户,您可以访问您的管理区域。在这里,您可以访问“Web3 API”页面并复制您的 API 密钥:

注意:现在,请保留您的 API 密钥 - 我们将在第二步告诉您将其粘贴到何处。   

要使用 Moralis,您还需要安装 Moralis SDK。因此,请使用与您的包管理器匹配的以下命令之一:

  • 新版本:

npm 安装 moralis@moralisweb3/common-sol-utils
  • 纱:

yarn add moralis @moralisweb3/common-sol-utils
  • 画中画:

pip 安装 moralis

第 2 步:获取地址的 SPL 代币余额

此时,您已经知道在 Solana 上获取代币余额的最简单方法是使用getSPL端点。如简介中的代码片段所示,此端点接受两个参数:networkaddress。第一个有两个选项:mainnetdevnet– 第二个接受任何 Solana 地址。因此,为了本教程的目的,您可以决定专注于 Solana 主网或开发网:

注意:如果您不熟悉Solana devnet,我们鼓励您使用该链接来获取有关该网络的一些经验。   

至于 Solana 地址,我们建议使用您的 Solana 钱包地址。当然,您可以随意使用我们在即将发布的脚本中提供的示例地址。接下来,我们将引导您完成我们的 JavaScript 和 Python 脚本。TS 脚本与 JavaScript 脚本非常相似。因此,我们将仅为您提供最终代码。 

注意:您可以通过访问“通过钱包获取代币余额” API 参考页面来探索“getSPL”端点的详细信息,甚至尝试一下。    

使用 JavaScript 获取 SPL 代币余额

创建一个新的“ index.js ”文件并首先导入moralissol-utils

const Moralis = require ( "moralis" ) 默认;
const { SolNetwork } =需要( “@moralisweb3/common-sol-utils” )

接下来,创建一个runApp异步函数。在其顶部,初始化 Moralis:

const runApp = async ( ) => {
 等待Moralis。开始{
   apiKey: “您的API密钥”
}

查看上面的代码片段,您可以看到YOUR_API_KEY占位符。 确保将其替换为上面获得的 API 密钥。 

注意:创建可用于生产的 dapp 时,您需要使用“.env”文件来存储 API 密钥和其他环境变量。在这种情况下,您可以将上面的apiKey行替换为apiKey: process.env.MORALIS_API_KEY。您可以在顶部的视频(3:00)中了解更多信息。 

在 中runApp,还需要定义addressnetwork参数:

const地址 = “BWeBmN8zYDXgx2tnGj72cA533GZEWAVeqR9Eu29txaen”
const网络 = SolNetwork.MAINNET

您可以随意将上述地址替换为您想要的任何 Solana 地址。此外,如果您希望专注于后者,也可以替换MAINNET为。通过这样做,您可以期待从经过审查的Solana 测试网水龙头DEVNET获得的免费测试网资产交易。 

最后,您需要实现Moralis.SolApi.account.getSPL介绍中的方法。在该方法下,您还需要以 JSON 格式控制台记录响应并运行该runApp函数:

const响应 =等待Moralis。索尔API 帐户获取SPL {
 地址,
 网络,
}
控制台. log (响应 . toJSON ( ) ) ;
}
运行应用程序

因此,这是让你在 Solana 上获取代币余额的完整 JS 脚本:

const Moralis = require ( "moralis" ) 默认;
const { SolNetwork } =需要( “@moralisweb3/common-sol-utils” )
const runApp = async ( ) => {
 等待Moralis。开始{
   apiKey: “您的API密钥”
 }
 const地址 = “BWeBmN8zYDXgx2tnGj72cA533GZEWAVeqR9Eu29txaen”
 const网络 = SolNetwork.MAINNET
 const响应 =等待Moralis。索尔API 帐户获取SPL {
   地址,
   网络,
 }
 控制台. log (响应 . toJSON ( ) ) ;
}
运行应用程序

使用 TypeScript 获取 SPL 代币余额

以下是上述脚本的完整 TypeScript 版本(唯一的区别在于它如何导入 Moralis [前两行])。因此,将其粘贴到新的“ index.ts ”脚本中:

“moralis”导入Moralis
“@moralisweb3/common-sol-utils”导入{ SolNetwork }
const runApp = async ( ) => {
 等待Moralis。开始{
   apiKey: “您的API密钥”
 }
 const地址 = “BWeBmN8zYDXgx2tnGj72cA533GZEWAVeqR9Eu29txaen”
 const网络 = SolNetwork.MAINNET
 const响应 =等待Moralis。索尔API 帐户获取SPL {
   地址,
   网络,
 }
 控制台. log (响应 . toJSON ( ) ) ;
}
运行应用程序

使用 Python 获取 SPL 代币余额

如果你决定使用 Python 获取 Solana 上的代币余额,请创建一个新的“ index.py ”文件并首先导入 Moralis:

moralis导入sol_api

接下来,定义api_key变量和两个端点参数:

api_key = “您的API密钥”
参数 = {
   "网络" : "主网"
   “地址” “BWeBmN8zYDXgx2tnGj72cA533GZEWAVeqR9Eu29txaen”
}

最后,调用该sol_api.account.get_spl方法并将其分配给results。另外,您还想返回结果:

结果= sol_api.account.get_spl
   api_key=api_key,
   参数=参数,
打印结果

将以上所有代码片段放在一起后,您将获得以下 Python 脚本:

moralis导入sol_api
api_key = “您的API密钥”
参数 = {
   "网络" : "主网"
   “地址” “BWeBmN8zYDXgx2tnGj72cA533GZEWAVeqR9Eu29txaen”
}
结果= sol_api.account.get_spl
   api_key=api_key,
   参数=参数,
打印结果

步骤 3:运行脚本

此时,您应该已经准备好上述脚本之一。因此,是时候运行您的脚本并获取您使用的地址在 Solana 上的代币余额了。因此,根据编程语言,使用匹配的命令:

  • JavaScript的:

节点索引.js
  • 打字稿:

ts 节点索引.ts
  • Python:

python 索引.py

运行上述命令之一后,查看终端的响应。以下是 Solana 主网上的示例地址的 JSON 响应:

[
 {
   “关联令牌地址” “Dpmpwm93Amvj4uEFpYhjv8ZzfpgARq6zxKTi6mrj97gW”
   “薄荷” “BXWuzb3jEuGsGUe29xdApu8Z3jVgrFbr3wWdsZmLWYk9”
   “原始金额” “100000000000”
   “金额” “100”
   “小数” “9”
 }
]

使用我们的示例 Dapp 获取 Solana 上的任何代币余额

上面的截图展示了我们示例 dapp 的前端,它具有与上面展示的类似的后端。您可以看到我们的前端有一个输入字段,用户可以在其中粘贴任何 Solana 钱包地址。它还允许用户选择是否要关注 Solana 主网或开发网。有了地址并选择了网络后(如果您还记得上面的教程,getSPL端点将这两个参数作为输入),用户可以单击“获取代币余额”按钮来查看结果:

查看上图,您可以看到结果的格式与上述教程相同。因此,它们包括以下五个细节:

  • associatedTokenAddress– Solana 分类账中的一条记录,其中保存着相关代币的数据或可执行程序(例如,Solana 智能合约)。

  • mint– 存储代币元数据的地址。 

  • amountRaw– 相关代币的数量,包含小数。 

  • amount– 不包括小数的代币数量。

  • decimals– 小数位数。 

注意:getSPL如果提供了这些详细信息,端点还会返回令牌名称和符号。

为了更好地理解上述结果,让我们使用 Solana Explorer 搜索associatedTokenAddress上述示例的最佳结果:

如您所见,这是一个 Solana 链上账户,其所有者地址就是我们在上例中在搜索栏中输入的钱包地址。您还会看到此帐户提供了有关代币数量的详细信息。要访问代币的元数据,我们需要使用以下mint地址:

因此,根据端点的响应getSPL,您可以访问广泛的详细信息。

构建您自己的示例 Dapp 实例及更多

如果你希望创建上述 dapp 的实例并亲自试用,请访问“solana-api-demo” GitHub repo。然后,你将轻松掌握创建示例 dapp 的三个核心方面:

  1. 获取您的 Moralis Web3 API 密钥并使用它来初始化 Moralis。

  2. 使用getSPL端点快速获取最新的链上数据。

  3. 在后端定义API路由,并在前端调用API路由。

在上面链接的存储库中,您将找到所有前端和后端脚本,这些脚本可让您在几分钟内获得 Solana 上的代币余额。在后端方面,您可以在Solana Python API和 NodeJS 之间进行选择。此外,那里的脚本包括所有其他 Moralis Solana API 端点——您可以在下面找到它们: 

  • NFT API:

    • 通过钱包获取 NFT

    • 获取 NFT 元数据

  • 代币 API:

    • 获取代币价格

  • 余额 API:

    • 通过钱包获取原生余额、代币余额和投资组合

使用上述一组Solana API端点,您可以在这个流行的网络上构建各种 dapp。一些最常见的用例包括 NFT 市场、加密钱包、投资组合追踪器、审计和报告、元宇宙游戏、区块浏览器、代币门控(NFT 身份验证)等。

如何在 Solana 上获取地址的代币余额 – 摘要

在今天的文章中,我们重点介绍了getSPL端点,使您能够以最小的努力在 Solana 上获得代币余额。通过遵循我们初学者友好教程中的三步流程,您可以创建一个简单的后端脚本。无论您专注于哪种编程语言,您都必须获取 Moralis Web3 API 密钥,这是您轻松进行 Web3 开发的门票。除了教程之外,我们还向您展示了我们简洁的演示 dapp。我们甚至为您提供了我们 repo 的链接,以便您可以轻松创建我们 dapp 的实例并在浏览器中测试所有 Moralis Solana API 端点。

在本文中,您获得了开始轻松创建 Solana dapp 所需的所有信息。借助您的 Web3 API 密钥和 Moralis 文档,您完全有能力在 Solana 或任何其他领先的区块链上创建独特的 dapp。毕竟,Moralis 的全部内容都是跨链互操作性。 

作者:GTokenTool一键发币平台

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

同类推荐