Skip to main content
preprocessedSubscribe transmite transacciones firmadas antes de que alcancen el nivel de compromiso processed. Las decodifica a partir de los shreds a medida que llegan al validador, sin que necesites infraestructura para reconstruirlos. Esta guía crea un monitor que observa un programa de trading antes de la ejecución, elimina duplicados del flujo, se mantiene por debajo del límite de contrapresión del servidor y coteja los datos procesados antes de actuar.
Las transacciones preprocesadas están disponibles en todos los planes de pago y cuestan 0.1 créditos por mensaje, con hasta 10 conexiones simultáneas por API key.

Limita la suscripción a tu objetivo

No existe un flujo sin filtros: accountInclude e accountRequired deben especificar al menos una cuenta entre ambos. Para un monitor de trading, incluye el programa con el que operas y excluye el ruido por el que, de otro modo, pagarías:
Los filtros se combinan con AND, cada lista admite hasta 5,000 direcciones y Helius resuelve las tablas de búsqueda de direcciones en el servidor, por lo que una cuenta cargada mediante una ALT también coincide. Para observar las interacciones de una billetera específica con el programa, coloca ambos en el campo accountRequired.

Decodifica las tramas y elimina duplicados por firma

Las notificaciones llegan como tramas binarias: un prefijo de 73 bytes seguido de la transacción serializada con bincode. La firma está en el prefijo, por lo que puedes eliminar duplicados sin decodificar el cuerpo. El flujo agrega varias fuentes previas a la ejecución, y la misma transacción puede llegar más de una vez:
monitor.js

Mantén el bucle de recepción más rápido que el flujo

Helius no almacena datos indefinidamente en búfer para consumidores lentos: si se acumulan más de 4,000 mensajes en el servidor, la conexión se cierra. Por eso, el controlador anterior solo lee el prefijo de 73 bytes y lo agrega a la cola. La deserialización y la lógica de la estrategia se ejecutan en un bucle separado:
Si la cola crece sin límite, restringe los filtros. Las transacciones que descartes en el cliente siguen costando 0.1 créditos cada una y también cuentan para el límite de contrapresión.

Coteja con los datos procesados

Una transacción preprocesada muestra lo que el remitente intentó hacer, no lo que ocurrió. No incluye el estado de ejecución, los cambios de saldo ni los registros, y puede fallar, descartarse o incluirse en una bifurcación diferente. La entrega se realiza con el mejor esfuerzo y no incluye reproducción histórica, por lo que debes hacer lo siguiente:
  • Coteja con transactionSubscribe en el nivel de compromiso processed o confirmed antes de que tu estrategia registre algo como un hecho.
  • Si se desconecta, vuelve a suscribirte de inmediato y acepta el vacío, ya que no hay reproducción para rellenarlo.
  • Si necesitas el estado de una cuenta en tiempo real en lugar de intenciones de transacción, solo está disponible después de la ejecución: usa LaserStream gRPC en processed.

Guías relacionadas

preprocessedSubscribe reference

Diseño completo del payload, reglas de filtrado, contrapresión y precios

Trade on Preconfirmations

La señal de transacción más temprana que ofrece Helius, directamente desde el planificador