getFeeForMessage permite estimar a taxa que a rede cobrará pelo processamento de uma determinada mensagem de transação. Isso é útil para entender os custos de transação antes de serem submetidos à rede.
Nota de Versão: Este método está disponível na solana-core v1.9 ou mais recente. Para versões anteriores, considere usar getFees.
Casos de Uso Comuns
- Estimativa de Taxa: Determine a provável taxa de transação (em lamports) para uma mensagem específica.
- Otimização de Custos: Analise taxas para diferentes estruturas de transação ou em diferentes momentos.
- Exibição na Interface do Usuário: Mostre aos usuários um custo estimado de transação antes de assinarem e enviarem uma transação.
Parâmetros de Solicitação
message(string, obrigatório): A mensagem da transação, codificada em base64. Você pode obter isso compilando uma transação.config(objeto, opcional): Um objeto de configuração com os seguintes campos:commitment(string, opcional): Especifica o nível de compromisso a ser usado. O padrão éfinalized.minContextSlot(número, opcional): O slot mínimo no qual a solicitação pode ser avaliada.
Estrutura da Resposta
O camporesult da resposta JSON-RPC é um objeto com a seguinte estrutura:
context(objeto):slot(u64): O slot no qual a taxa foi avaliada.
value(u64 | null): A taxa estimada em lamports. Isso pode sernullse a taxa não puder ser determinada (por exemplo, se o blockhash usado na mensagem for muito antigo ou inválido).
Exemplos
1. Estimar Taxa para uma Mensagem de Transferência Simples
Este exemplo demonstra como construir uma transferência simples, compilar sua mensagem e, em seguida, obter a taxa estimada.Dicas para Desenvolvedores
- Construção de Mensagem: A chave para usar
getFeeForMessageé construir e serializar corretamente a transaçãoMessage. Isso envolve definir o pagador da taxa, instruções e um blockhash recente. - Blockhash Recente: A mensagem deve ser construída com um blockhash recente. Se o blockhash for muito antigo, o
valuena resposta pode sernull. - Taxa vs. Taxa de Prioridade: Este método retorna a taxa base da rede. Não inclui taxas de prioridade adicionais que você possa adicionar a uma transação para aumentar sua probabilidade de ser processada rapidamente durante períodos de congestão na rede. Use
getRecentPrioritizationFeespara estimar taxas de prioridade. - Lamports: A taxa é retornada em lamports (1 SOL = 1.000.000.000 lamports).
- Valor Nulo: Um valor
nullpara a taxa pode indicar problemas com a mensagem (por exemplo, blockhash inválido, mensagem malformada) ou que o nó não pode calcular uma taxa para ela no nível de compromisso ou slot especificado.
getFeeForMessage para estimar taxas de transação na rede Solana.
Métodos Relacionados
getLatestBlockhash
Obtenha um blockhash recente para construir mensagens
getRecentPrioritizationFees
Estime taxas de prioridade para processamento mais rápido