O método RPC getInflationReward permite consultar as recompensas de inflação (comumente conhecidas como recompensas de staking) que foram creditadas a um ou mais endereços para uma época específica.
Isso é útil para verificar recompensas recebidas por contas de stake ou qualquer conta que possa ter recebido recompensas de inflação.
Evite Agrupamento para Melhor DesempenhoAgrupar métodos arquivados aumenta significativamente a latência. Agrupamentos acima de 10 solicitações não são permitidos.
Casos de Uso Comuns
- Verificar Recompensas de Staking: Verifique se uma conta de stake recebeu as recompensas esperadas para uma época passada.
- Acompanhar Histórico de Recompensas: Consulta recompensas para várias épocas para construir um histórico para um endereço.
- Auditar Pagamentos de Validadores: Validadores podem usar isso para verificar a distribuição de recompensas (embora as recompensas sejam pagas para contas de stake, não diretamente para identidades de validadores).
Parâmetros de Solicitação
O método leva dois parâmetros principais:
addresses (array de strings): Uma lista de chaves públicas codificadas em base-58 para as contas que você deseja consultar. O número máximo de endereços permitidos pode variar dependendo do provedor RPC (por exemplo, Helius permite até 1005 para planos pagos).
config (objeto, opcional): Um objeto de configuração com os seguintes campos opcionais:
commitment (string, opcional): Especifica o nível de compromisso. O padrão é finalized se não for fornecido.
epoch (integer, opcional): O número da época para a qual buscar as recompensas. Se omitido, o nó RPC geralmente usará a época mais recentemente concluída para a qual as recompensas foram distribuídas.
minContextSlot (integer, opcional): O slot mínimo que a solicitação pode ser avaliada. Isso garante que a consulta seja feita contra um estado do ledger que tenha processado até pelo menos este slot.
Estrutura de Resposta
O campo result da resposta JSON-RPC será um array correspondente ao array de entrada addresses. Cada elemento no array de resultados será:
- Um objeto contendo os detalhes da recompensa de inflação se o endereço recebeu uma recompensa para a época especificada.
null se o endereço não recebeu uma recompensa de inflação para essa época ou se a conta não existia.
O objeto de recompensa tem os seguintes campos:
epoch (u64): A época para a qual esta recompensa foi creditada.
effectiveSlot (u64): O slot no qual a recompensa foi aplicada e se tornou efetiva.
amount (u64): A quantidade da recompensa, em lamports.
postBalance (u64): O saldo da conta, em lamports, após a recompensa ter sido creditada.
commission (u8 | indefinido): Para contas de voto, esta é a porcentagem de comissão (0-100) tomada pelo validador no momento em que a recompensa foi creditada. Será undefined para contas não relacionadas a votos.
Exemplos
1. Obter Recompensa de Inflação para um Único Endereço (Época Anterior)
Este exemplo busca a recompensa de inflação para um endereço específico para a época mais recentemente concluída.
2. Obter Recompensas de Inflação para Múltiplos Endereços para uma Época Específica
Dicas para Desenvolvedores
- Especificidade da Época: Recompensas são creditadas uma vez por época. Certifique-se de que está consultando o número da época correto.
- Momento das Recompensas: As recompensas de inflação são calculadas no final de uma época e aplicadas no início da próxima. O
effectiveSlot indica quando isso acontece.
- Resultados Nulos: Um resultado
null para um endereço significa que nenhuma recompensa foi encontrada para esse endereço na época especificada. Isso pode ser porque a conta não era elegível (por exemplo, não uma conta de stake suficientemente aposta), a recompensa foi zero, ou a conta não existia naquele momento.
- Limites de Taxa: Fique atento aos limites de taxa do provedor RPC, especialmente ao consultar um grande número de endereços.
Este guia ajuda você a usar o método getInflationReward para recuperar e verificar com precisão recompensas de staking na rede Solana.