getTokenAccountBalance retorna o saldo do token de uma conta SPL Token específica. Isso é essencial para aplicações que precisam exibir ou verificar a quantidade de um token específico mantido por uma conta de token.
Casos de Uso Comuns
- Exibindo Saldos de Tokens de Usuário: Mostrando aos usuários quanto de um token específico eles possuem em sua carteira (contas de token associadas).
- Verificando Disponibilidade de Token: Verificando se uma conta de token tem saldo suficiente antes de tentar uma transferência ou outra operação.
- Acompanhamento de Portfólio: Agregando saldos de tokens para um usuário em contas de token diferentes.
- Interações com Contratos Inteligentes: Contratos inteligentes podem consultar saldos de tokens como parte de sua lógica (embora programas on-chain geralmente acessem esses dados diretamente a partir das informações da conta).
Parâmetros de Solicitação
- Chave Pública da Conta de Token (string, obrigatório): A chave pública codificada em base-58 da conta SPL Token que você deseja consultar.
- Objeto de Configuração (objeto, opcional): Um objeto opcional que pode conter o seguinte campo:
commitment(string, opcional): Especifica o nível de comprometimento para a consulta. Se omitido, o comprometimento padrão do nó RPC é usado (geralmentefinalized).
Estrutura da Resposta
O camporesult na resposta JSON-RPC contém um objeto com um campo context e um campo value. O objeto value contém as informações do saldo:
amount(string): O saldo bruto da conta de token como uma string. Este é um número inteiro representando a menor unidade do token (por exemplo, se um token tiver 6 decimais, um valor de “1000000” significa 1 token).decimals(u8): O número de casas decimais definidas para este tipo de token (por sua mint).uiAmount(number | null): O saldo formatado como um número de ponto flutuante, levando em conta odecimals. Este campo pode sernullou descontinuado em alguns contextos em favor deuiAmountString.uiAmountString(string): O saldo formatado como uma string, levando em conta odecimals. Isso é frequentemente preferido para exibição para evitar potenciais imprecisões de ponto flutuante.
Exemplos de Código
Dicas para Desenvolvedores
- Conta de Token vs. Conta de Mint vs. Conta do Proprietário: Certifique-se de fornecer a chave pública da Conta SPL Token, não o endereço de mint do token ou o endereço da carteira do proprietário. Você normalmente obtém contas de token para um proprietário usando
getTokenAccountsByOwner. - Decimais: Sempre use o campo
decimalspara interpretar corretamente oamount. OuiAmountStringé geralmente mais seguro para exibição do queuiAmountpara evitar problemas de precisão de ponto flutuante. - Contas Inexistentes: Se a chave pública fornecida não corresponder a uma conta de token existente, o comportamento pode variar ligeiramente por provedor de RPC ou biblioteca, mas muitas vezes o
valuena resposta seránullou um erro será lançado. O exemplo em JavaScript inclui uma verificação básica parabalance.value. - Níveis de Comprometimento: Usar diferentes níveis de comprometimento pode afetar a rapidez com que você vê as alterações de saldo, especialmente para transações muito recentes.
finalizedé o mais seguro, mas tem a maior latência.
getTokenAccountBalance.
Métodos Relacionados
getTokenAccountsByOwner
Obtenha todas as contas de token para um proprietário
getTokenSupply
Obtenha a oferta total de um mint de token