getAccountInfo 更轻量。
主要用例
- 快速检查账户的 SOL 持有量: 主要用途是确定一个账户(钱包、程序等)持有多少 SOL。
参数
-
publicKey(字符串,必需):要查询的账户的 base-58 编码公钥。 -
config(对象,可选):包含以下字段的配置对象:commitment(字符串,可选):指定用于查询的确认级别。默认为finalized。finalized:节点将查询超级多数群确认已达到最大锁定的最新区块。confirmed:节点将查询超级多数群投票的最新区块。processed:节点将查询其最新的区块。请注意,该区块可能不完整。
minContextSlot(数字,可选):请求可以评估的最小槽位。
响应
JSON-RPC 响应的result 字段将是一个包含以下内容的对象:
context(对象):slot(数字):检索余额的槽位。apiVersion(字符串,可选):RPC API 版本(可能并非所有节点都有)。
value(数字):账户的 lamports 余额(无符号 64 位整数)。
getBalance通常会返回一个值为0 lamports。
示例:获取账户余额
让我们检查主网上Serum Program V3 ID (9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin) 的SOL余额。这个程序账户本身持有用于租金豁免的SOL。
注意: 在下面的示例中,将 YOUR_API_KEY 替换为您实际的Helius API密钥。
开发者提示
- SOL余额的简单性: 如果您只需要账户的SOL余额而不需要其他链上数据(如所有者、数据或可执行状态),
getBalance比getAccountInfo更有效,因为它获取的数据更少。 - 不存在的账户: 如果账户在链上不存在(从未初始化或持有SOL),
getBalance将返回0。如果您只关心SOL余额,这是检查账户是否存在的快速方法。 - Lamports与SOL: 请记住,余额以lamports返回。您需要除以
LAMPORTS_PER_SOL(1,000,000,000)以将其转换为SOL。 - 承诺级别: 选择
commitment可能会影响您获取余额的速度以及余额的确认程度。对于大多数UI显示目的,confirmed提供了良好的平衡。对于重要的金融交易,finalized提供最高的保证。有关详细信息,请参阅Solana承诺级别。 - 使用
getMultipleAccounts批处理: 虽然getBalance适用于单个账户,但如果您需要多个账户的余额,使用getMultipleAccounts然后从每个账户的信息中提取lamport余额可能比多次单独调用getBalance更高效。