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.
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 éfinalizedse 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 camporesult 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.
nullse o endereço não recebeu uma recompensa de inflação para essa época ou se a conta não existia.
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áundefinedpara 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
effectiveSlotindica quando isso acontece. - Resultados Nulos: Um resultado
nullpara 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.
getInflationReward para recuperar e verificar com precisão recompensas de staking na rede Solana.