getInflationReward
RPC 方法允许您查询特定纪元中一个或多个地址获得的通胀奖励(通常称为质押奖励)。
这对于验证质押账户或任何可能收到通胀奖励的账户所收到的奖励非常有用。
常见用例
- 验证质押奖励: 检查质押账户是否在过去的纪元中获得了预期的奖励。
- 跟踪奖励历史: 查询多个纪元的奖励以建立某个地址的历史记录。
- 审计验证者支付: 验证者可以使用此方法验证奖励分配(尽管奖励是支付给质押账户的,而不是直接支付给验证者身份)。
请求参数
该方法需要两个主要参数:addresses
(字符串数组):要查询的账户的 base-58 编码公钥列表。允许的最大地址数量可能因 RPC 提供商而异(例如,Helius 对于付费计划允许最多 1005 个)。config
(对象,可选):一个配置对象,包含以下可选字段:commitment
(字符串,可选):指定承诺级别。如果未提供,默认为finalized
。epoch
(整数,可选):要获取奖励的纪元编号。如果省略,RPC 节点通常会使用最近完成的已分发奖励的纪元。minContextSlot
(整数,可选):请求可以评估的最小槽位。这确保查询是在至少处理到该槽位的分类账状态下进行的。
响应结构
JSON-RPC 响应的result
字段将是一个数组,对应于输入的 addresses
数组。结果数组中的每个元素将是:
- 如果地址在指定的 epoch 收到了奖励,则为包含通胀奖励详细信息的 对象。
- 如果地址在该 epoch 没有收到通胀奖励或账户不存在,则为
null
。
epoch
(u64): 该奖励被记入的 epoch。effectiveSlot
(u64): 奖励被应用并生效的 slot。amount
(u64): 奖励的金额,以 lamports 为单位。postBalance
(u64): 奖励记入后账户的余额,以 lamports 为单位。commission
(u8 | undefined): 对于投票账户,这是奖励记入时验证者收取的佣金百分比(0-100)。对于非投票账户,将为undefined
。
示例
1. 获取单个地址的通胀奖励(上一个 Epoch)
此示例获取特定地址在最近完成的 epoch 的通胀奖励。2. 获取多个地址在特定 Epoch 的通胀奖励
开发者提示
- Epoch 特定性: 奖励每个 epoch 记入一次。确保您查询的是正确的 epoch 编号。
- 奖励的时间: 通胀奖励在 epoch 结束时计算,并在下一个 epoch 开始时应用。
effectiveSlot
指示何时发生这种情况。 - 空结果: 地址的
null
结果表示在指定的 epoch 中未找到该地址的奖励。这可能是因为账户不符合条件(例如,不是足够抵押的抵押账户)、奖励为零或账户当时不存在。 - 速率限制: 注意 RPC 提供者的速率限制,尤其是在查询大量地址时。
getInflationReward
方法准确检索和验证Solana网络上的质押奖励。