1
Look Up the Program
Adivinar los nombres de las instrucciones es la causa más común de que un filtro no encuentre coincidencias sin mostrar ningún aviso. Primero, llama a Prefiere la dirección del programa en lugar de un nombre del catálogo. Varias entradas del catálogo pueden compartir un nombre, y una búsqueda por nombre puede devolver una versión anterior del programa.
describeProgram para obtener los nombres exactos con los que compara el motor de coincidencias.Request
Response
route y shared_accounts_route son las dos instrucciones que abarcan la mayoría de los swaps de Jupiter v6, así que debes filtrar por ellas.2
Build the Filter
Combina el ID del programa, los nombres de las instrucciones del paso anterior y la billetera que estás monitoreando. Los campos se combinan con AND, por lo que esto encuentra instrucciones de ruta que interactúan con la cuenta de SOL de la billetera:
accounts.roles fija user_transfer_authority en la posición exacta de la billetera dentro de la instrucción, lo cual es más estricto que usar solo accounts.include: una coincidencia simple de dirección también detectaría la billetera si apareciera como una cuenta no relacionada en otra parte de la instrucción. Los nombres de los roles deben coincidir exactamente, por lo que se copian de la lista roles de describeProgram, en lugar de adivinarlos. Mantén includeCpi: true (el valor predeterminado): los movimientos reales de tokens de un swap ocurren en instrucciones internas.3
Subscribe and Handle Notifications
Abre la suscripción con el filtro y, luego, lee los argumentos decodificados de cada instrucción que coincida:
matchedIndexes apunta únicamente a las instrucciones que coincidieron con tu filtro; omite todo lo demás en la transacción. Comprueba que decoded esté presente antes de leerlo: una instrucción de ruta de una versión no indexada del programa llega con decoded: null y campos sin procesar.Próximos pasos
Filter Fields Reference
Todos los campos, las opciones y los límites de los filtros.
Handling Reconnects
Mantén activa esta suscripción durante desconexiones e implementaciones.