getTokenAccountBalance devuelve el saldo de tokens de una cuenta de tokens SPL específica. Esto es esencial para las aplicaciones que necesitan mostrar o verificar la cantidad de un token específico que tiene una cuenta de tokens.
Casos de uso comunes
- Mostrar los saldos de tokens de los usuarios: Muestra a los usuarios cuánto poseen de un token específico en su billetera (cuentas de tokens asociadas).
- Verificar la disponibilidad de tokens: Comprueba si una cuenta de tokens tiene saldo suficiente antes de intentar una transferencia u otra operación.
- Seguimiento de portafolios: Agrega los saldos de tokens de un usuario en diferentes cuentas de tokens.
- Interacciones con contratos inteligentes: Los contratos inteligentes pueden consultar los saldos de tokens como parte de su lógica (aunque los programas en cadena suelen acceder a estos datos directamente desde la información de la cuenta).
Parámetros de la solicitud
- Clave pública de la cuenta de tokens (string, obligatorio): La clave pública codificada en base 58 de la cuenta de tokens SPL que quieres consultar.
- Objeto de configuración (object, opcional): Un objeto opcional que puede contener el siguiente campo:
commitment(string, opcional): Especifica el nivel de compromiso de la consulta. Si se omite, se usa el compromiso predeterminado del nodo RPC (normalmentefinalized).
Estructura de la respuesta
El camporesult de la respuesta JSON-RPC contiene un objeto con los campos context e value. El objeto value contiene la información del saldo:
amount(string): El saldo bruto de la cuenta de tokens como una cadena. Es un número entero que representa la unidad más pequeña del token (por ejemplo, si un token tiene 6 decimales, una cantidad de “1000000” equivale a 1 token).decimals(u8): La cantidad de posiciones decimales definidas para este tipo de token (por su cuenta de acuñación).uiAmount(number | null): El saldo formateado como un número de punto flotante, teniendo en cuentadecimals. Este campo puede sernullo estar obsoleto en algunos contextos en favor deuiAmountString.uiAmountString(string): El saldo formateado como una cadena, teniendo en cuentadecimals. Suele preferirse para mostrar el saldo y evitar posibles imprecisiones de punto flotante.
Ejemplos de código
Consejos para desarrolladores
- Cuenta de tokens frente a cuenta de acuñación frente a cuenta del propietario: Asegúrate de proporcionar la clave pública de la cuenta de tokens SPL, no la dirección de acuñación del token ni la dirección de la billetera del propietario. Por lo general, puedes obtener las cuentas de tokens de un propietario mediante
getTokenAccountsByOwner. - Decimales: Usa siempre el campo
decimalspara interpretar correctamenteamount. Por lo general,uiAmountStringes más seguro queuiAmountpara mostrar el saldo y evitar problemas de precisión de punto flotante. - Cuentas inexistentes: Si la clave pública proporcionada no corresponde a una cuenta de tokens existente, el comportamiento puede variar ligeramente según el proveedor de RPC o la biblioteca, pero a menudo
valueen la respuesta seránullo se generará un error. El ejemplo de JavaScript incluye una comprobación básica debalance.value. - Niveles de compromiso: Usar diferentes niveles de compromiso puede afectar la rapidez con la que ves los cambios de saldo, especialmente en transacciones muy recientes.
finalizedes el más seguro, pero tiene la mayor latencia.
getTokenAccountBalance.
Métodos relacionados
getTokenAccountsByOwner
Obtén todas las cuentas de tokens de un propietario
getTokenSupply
Obtén el suministro total de una cuenta de acuñación de tokens