Skip to main content
Ce guide construit un vrai filtre étape par étape : surveillez les échanges Jupiter d’un portefeuille, en utilisant découverte de programme afin que le filtre soit correct avant même d’ouvrir un abonnement.
1

Rechercher le programme

Les noms d’instructions devinés sont la façon la plus courante pour qu’un filtre ne corresponde silencieusement à rien. Appelez describeProgram d’abord pour obtenir les noms exacts que le compareur utilise.
Request
Response
Préférez l’adresse du programme à un nom de catalogue — plus d’une entrée de catalogue peut partager un nom, et une recherche de nom peut se résoudre à une version plus ancienne du programme. route et shared_accounts_route sont les deux instructions qui couvrent la plupart des échanges Jupiter v6, ce sont donc celles sur lesquelles vous allez filtrer.
2

Construire le filtre

Combinez l’id du programme, les noms d’instructions de l’étape précédente, et le portefeuille que vous surveillez. Les champs se combinent avec AND, ce qui correspond donc aux instructions de route qui touchent le compte SOL du portefeuille :
accounts.roles épingle user_transfer_authority à la position exacte du portefeuille dans l’instruction, ce qui est plus strict que accounts.include seul : une correspondance d’adresse simple capturerait également le portefeuille apparaissant comme un compte non lié ailleurs dans l’instruction. Les noms de rôles correspondent exactement, ils sont donc copiés de la liste describeProgram d’roles, non devinés. Laissez includeCpi: true (la valeur par défaut) — les mouvements de jetons réels d’un échange se produisent dans des instructions internes.
3

S'abonner et gérer les notifications

Ouvrez l’abonnement avec le filtre, puis lisez les arguments décodés de chaque instruction correspondante :
matchedIndexes pointe uniquement sur les instructions que votre filtre a touchées — ignorez tout le reste dans la transaction. Vérifiez que decoded est présent avant de le lire : une instruction de route d’une version non indexée du programme arrive avec decoded: null et des champs bruts à la place.

Prochaines étapes

Référence des champs de filtre

Tous les champs de filtre, options et limites.

Gestion des reconnexions

Gardez cet abonnement actif lors des déconnexions et des déploiements.