SUI链开发:GraphQL中Validator查询报错及奖励查询需求
解决SUI GraphQL查询Validator报错及获取委托者epoch奖励方法
1. 修复"Unknown field 'Validator' on type 'Query'"错误
SUI GraphQL的Query类型下没有名为Validator的字段,正确的验证节点查询字段是小写开头的复数validators(查询所有验证节点)或者validator(通过地址查询单个验证节点),注意字段名的大小写和单复数规范。
错误的查询示例(导致你遇到的报错):
query { Validator { # 错误:字段名应为validators/validator,且大小写错误 name address } }
正确的单个验证节点查询示例:
query { validator(address: "0x...") { # 替换为目标验证节点地址 name address stakingPool { activeStake } } }
正确的所有验证节点查询示例:
query { validators { name address } }
2. 获取特定委托者每个epoch的奖励
要获取特定委托者在每个epoch的奖励,需要使用delegationRewards字段,结合委托者地址和epoch范围进行查询。
示例查询:
query GetDelegatorRewards { delegationRewards( delegatorAddress: "0x..." # 替换为目标委托者地址 epochRange: { startEpoch: 100, endEpoch: 200 } # 按需指定epoch范围 ) { epoch validatorAddress rewardAmount { value currency } } }
返回结果会包含每个epoch中,该委托者从对应验证节点获得的奖励金额及币种信息。如果需要获取所有epoch的奖励,可以省略epochRange参数,或者设置一个足够大的范围。
内容的提问来源于stack exchange,提问作者Tomson Ewan
相关产品推荐
相关产品推荐

