检查Solana钱包地址余额的四种方法

  • QuickNode
  • 发布于 2025-01-30 18:33
  • 阅读 26

本文提供了四种方法来检查Solana钱包的余额,分别是使用Solana的命令行接口、JavaScript API、cURL脚本和Rust SDK。文章详细介绍了每种方法的步骤与所需工具,适合初学者入门使用Solana。

概述

如果你刚开始你的 Solana 之旅,你可能需要检查一个账户的余额。在本指南中,我们将介绍四种简单的方法来检查 Solana 钱包的余额:

你将需要的工具
  • 安装最新版本的 Solana CLI
  • 安装 Nodejs(版本 16.15 或更高)
  • 基本的 JavaScript 经验
  • 安装稳定版本的 cURL
  • 一个要查询的钱包(例如:E645TckHQnDcavVv92Etc6xSWQaq8zzPtPRGBheviRAk
  • 安装 Rust(Rust 方法可选)

Solana 基础知识:集群

在查询我们的钱包之前,让我们快速回顾一下 Solana 的集群,因为在检查钱包余额时我们需要指定特定的集群。 "一个 Solana 集群是一组验证者共同工作以服务客户端交易并维护账本完整性。许多集群可能共存。" (来源:docs.solana.com/cluster/overview)。事实上,Solana 维护三个各自服务不同目的的集群:

  • Mainnet Beta: 生产环境,无权限限制,使用真实代币
  • Devnet: 应用开发者测试 Solana 应用的游乐场(Devnet 上的代币不是真实的,且没有财务价值)。Devnet 通常运行与 Mainnet Beta 相同的软件版本
  • Testnet: Solana 核心贡献者和验证者测试新更新和功能的环境,重点测试网络性能(Testnet 上的代币不是真实的,且没有财务价值)

来源:docs.solana.com/clusters

在本指南中,我们将使用 Mainnet-Beta,但你需要知道,一个钱包可以同时在每个集群上都有余额。

方法一 - Solana CLI

我们首先的方法是使用 Solana CLI 检查钱包的余额。如果你尚未安装,请按照 docs.solana.com/cli/install-solana-cli-tools 中的说明进行操作。为了确认你的安装是否成功,打开一个新的终端并输入:

solana --version

你应该会看到类似这样的内容:

‘Solana CLI 版本检查’

你准备好了!你只需准备好你的钱包地址——你可以直接从 Phantom 或其他钱包复制它:

‘Phantom 钱包复制按钮’

在你的终端中,通过输入以下命令获取你的钱包余额:

solana balance YOUR_WALLET_ADDRESS -u mainnet-beta

Solana 基础知识:集群

你可以修改你的查询以获取该钱包在不同集群上的余额,通过修改你的 -u(Solana的 JSON RPC的 URL)选项。要获取 devnet 或 testnet 的余额,可以尝试:

solana balance YOUR_WALLET_ADDRESS -u devnet # for Devnet
## 或
solana balance YOUR_WALLET_ADDRESS -u testnet # for Testnet

这些默认集群(mainnet-beta、testnet、devnet)是公共 JSON RPC 端点。如果你打算进行大量查询或在 Solana 上进行构建,你可能会想要一个自己的端点。了解为什么超过 50% 的 Solana 项目选择 QuickNode,并在 这里 注册一个 免费 账户。你将需要一个 mainnet 节点来查询钱包的真实余额:

‘Solana Mainnet 端点’

现在你可以修改你的查询使用你的端点:

solana balance YOUR_WALLET_ADDRESS -u https://example.solana.quiknode.pro/000000/

‘Solana CLI 结果’

做得很好!

方法二 - Solana-Web3.js

在你的终端中创建一个新的项目目录和文件,balance.js,如下:

mkdir sol_balance
cd sol_balance
echo > balance.js

安装 Solana Web3 依赖:

yarn init -y
yarn add @solana/web3.js@1

npm init -y
npm install --save @solana/web3.js@1

在代码编辑器中打开 balance.js,在第一行,引用 @solana/web3.js 并将其存储在常量 SOLANA 中。在第二行,解构 SOLANA 以获取一些必要的类、方法和常量。

const SOLANA = require('@solana/web3.js');
const { Connection, PublicKey, LAMPORTS_PER_SOL, clusterApiUrl } = SOLANA;

在第四行,使用你的 QuickNode 端点(或通过使用 clusterApiUrl('CLUSTER_NAME') 连接到公共集群)建立与集群的连接,并将你的钱包地址定义为 WALLET_ADDRESS

const QUICKNODE_RPC = 'https://example.solana.quiknode.pro/000000/'; // 👈 用你的 QuickNode 端点替换 OR clusterApiUrl('mainnet-beta')
const SOLANA_CONNECTION = new Connection(QUICKNODE_RPC);
const WALLET_ADDRESS = 'YOUR_WALLET_ADDRESS'; //👈 用你的钱包地址替换

如果你将要经常使用 Solana-Web3.js,你将对 Connection 类非常熟悉。这实际上是你如何建立与 JSON RPC 端点连接的方法。

最后,通过在 Connection 的实例上调用 getBalance() 方法来获取你的余额:

(async () => {
    let balance = await SOLANA_CONNECTION.getBalance(new PublicKey(WALLET_ADDRESS));
    console.log(`钱包余额: ${balance/LAMPORTS_PER_SOL}`)
})();

关于我们脚本的一些说明:

  • 我们使用一个 async 函数来允许我们的 getBalance promise 从网络返回响应
  • 请注意,替代只传递我们的 WALLET_ADDRESS,我们首先创建了一个新的 PublicKey 实例。PublicKeys 对于从 Solana 集群获取和发送信息至关重要。你可以通过将钱包的字符串地址传递给 new PublicKey() 构造函数来在代码中定义一个 PublicKey。
  • 我们将 balance 除以 LAMPORTS_PER_SOL,因为 Solana 跟踪 SOL 的原生单位实际上是 lamports(1 / 1_000_000_000 的 1 SOL)。

运行你的代码。在你的终端输入,

node balance

你应该会看到类似这样的内容:

‘Solana-Web3.js 结果’

干得好!

方法三 - cURL

cURL 是一个用于通过 URL 传输数据的命令行工具和库。大多数基于 *nix 的系统都原生支持 cURL。通过运行以下命令检查你是否已安装 cURL:

curl -h

如果未安装,请前往 curl.se 进行设置。

准备好后,你只需在终端中输入此 HTTP 请求(确保替换你的端点和钱包地址)。在你的终端输入:

curl https://example.solana.quiknode.pro/000000/ -X POST -H "Content-Type: application/json" -d '
  {
    "jsonrpc": "2.0", "id": 1,
    "method": "getBalance",
    "params": [\
      "YOUR_WALLET_ADDRESS"\
    ]
  }
'

你应该会看到类似这样的内容:

‘Solana cURL 结果’

请注意,我们的余额在 result.value 字段中以 lamports 格式返回。

方法四 - Rust

如果你是 Rust 开发者,你也可以使用 Solana Rust SDK。在你的项目文件夹中,使用以下命令初始化一个新项目:

cargo new sol-balance

导航到新创建的目录:

cd sol-balance

在你的 Cargo.toml 文件中添加必要的依赖:

[dependencies]
solana-sdk = "1.16.14"
solana-client = "1.6.14"

打开 src/main.rs,在第一行导入必要的包:

use solana_sdk::pubkey::Pubkey;
use solana_client::rpc_client::RpcClient;
use std::str::FromStr;

在第 5-6 行,定义你的所有者账户地址和一个 LAMPORTS_PER_SOL 常量:

const OWNER: &str = "YOUR_WALLET_ADDRESS";
const LAMPORTS_PER_SOL: f64 = 1_000_000_000.0;

最后,创建你的 main 函数,通过将所有者钱包的公共密钥传递到 get_balance 方法中来获取钱包的余额:

fn main() {
    let owner_pubkey = Pubkey::from_str(OWNER).unwrap();
    let connection = RpcClient::new("https://example.solana.quiknode.pro/000000/".to_string()); // 👈 用你的 QuickNode 端点替换
    let balance = connection.get_balance(&owner_pubkey).unwrap() as f64;
    println!("余额: {}", balance / LAMPORTS_PER_SOL);
}

编译并运行你的代码。在你的终端输入,

cargo build
cargo run

你应该可以看到你的钱包余额被返回。做得很好!

总结

做得很好!你现在有四种方便的工具来获取 Solana 钱包的余额。如果你刚刚开始你的 Solana 之旅,这里有一些可能有用的资源:

我们非常乐意听到你正在构建的内容。在 Discord 上与我们联系,或在 Twitter 上关注我们,以随时获得最新信息!

我们 ❤️ 反馈!

如果你对本指南有任何反馈,请 告诉我们。我们非常希望听到你的声音。

  • 原文链接: quicknode.com/guides/sol...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。