Skip to main content
El método RPC 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

  1. message (cadena, obligatorio): El mensaje de la transacción, codificado en base64. Puedes obtenerlo compilando una transacción.
  2. 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 es finalized.
    • minContextSlot (número, opcional): La ranura mínima en la que se puede evaluar la solicitud.

Estructura de la respuesta

El campo result 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 ser null si 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 getFeeForMessage es crear y serializar correctamente el Message de 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 value en la respuesta podría ser null.
  • 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 getRecentPrioritizationFees para estimar las comisiones de prioridad.
  • Lamports: La comisión se devuelve en lamports (1 SOL = 1,000,000,000 lamports).
  • Valor nulo: Un valor null para 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.
Esta guía proporciona los pasos necesarios para usar el método RPC 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