getFeeForMessage te permite estimar la comisión que cobrará la red por procesar el mensaje de una transacción determinada. Esto es útil para conocer los costos de transacción antes de enviarla a la red.
Nota sobre la versión: Este método está disponible en solana-core v1.9 o versiones posteriores. Para versiones anteriores, considera usar getFees.
Casos de uso comunes
- Estimación de comisiones: Determina la comisión de transacción probable (en lamports) para un mensaje específico.
- Optimización de costos: Analiza las comisiones de distintas estructuras de transacción o en diferentes momentos.
- Visualización en la interfaz de usuario: Muestra a los usuarios un costo de transacción estimado antes de que firmen y envíen una transacción.
Parámetros de solicitud
message(cadena, obligatorio): El mensaje de la transacción, codificado en base64. Puedes obtenerlo compilando una transacción.config(objeto, opcional): Un objeto de configuración con los siguientes campos:commitment(cadena, opcional): Especifica el nivel de compromiso que se usará. El valor predeterminado esfinalized.minContextSlot(número, opcional): La ranura mínima en la que se puede evaluar la solicitud.
Estructura de la respuesta
El camporesult de la respuesta JSON-RPC es un objeto con la siguiente estructura:
context(objeto):slot(u64): La ranura en la que se evaluó la comisión.
value(u64 | null): La comisión estimada en lamports. Puede sernullsi no se puede determinar la comisión (por ejemplo, si el hash de bloque usado en el mensaje es demasiado antiguo o no es válido).
Ejemplos
1. Estimar la comisión de un mensaje de transferencia simple
Este ejemplo muestra cómo crear una transferencia simple, compilar su mensaje y obtener la comisión estimada.Consejos para desarrolladores
- Creación del mensaje: La clave para usar
getFeeForMessagees crear y serializar correctamente elMessagede la transacción. Esto implica establecer el pagador de la comisión, las instrucciones y un hash de bloque reciente. - Hash de bloque reciente: El mensaje debe crearse con un hash de bloque reciente. Si el hash de bloque es demasiado antiguo, el valor de
valueen la respuesta podría sernull. - Comisión base frente a comisión de prioridad: Este método devuelve la comisión base de la red. No incluye las comisiones de prioridad adicionales que podrías agregar a una transacción para aumentar la probabilidad de que se procese rápidamente durante períodos de congestión de la red. Usa
getRecentPrioritizationFeespara estimar las comisiones de prioridad. - Lamports: La comisión se devuelve en lamports (1 SOL = 1,000,000,000 lamports).
- Valor nulo: Un valor
nullpara la comisión puede indicar problemas con el mensaje (por ejemplo, un hash de bloque no válido o un mensaje mal formado) o que el nodo no puede calcular una comisión para este en el nivel de compromiso o la ranura especificados.
getFeeForMessage a fin de estimar las comisiones de transacción en la red Solana.
Métodos relacionados
getLatestBlockhash
Obtén un hash de bloque reciente para crear mensajes
getRecentPrioritizationFees
Estima las comisiones de prioridad para acelerar el procesamiento