Skip to main content
Este guia constrói um filtro real passo a passo: observe os swaps do Jupiter de uma carteira, usando descoberta de programa para que o filtro esteja correto antes mesmo de você abrir uma assinatura.
1

Look Up the Program

Nomes de instruções presumidos são a causa mais comum de um filtro não encontrar nada sem indicar um erro. Primeiro, chame describeProgram para obter os nomes exatos usados pelo comparador. No momento, ele está disponível apenas em wss://fs-beta.helius-rpc.com/?api-key=<API_KEY>, portanto, envie a chamada para esse local, e não pela conexão da sua assinatura.
Request
Response
Prefira o endereço do programa em vez de um nome de catálogo — mais de uma entrada de catálogo pode compartilhar um nome, e uma consulta pelo nome pode resolver para uma versão mais antiga do programa. route e shared_accounts_route são as duas instruções que cobrem a maioria dos swaps Jupiter v6, então é neles que você deve filtrar.
2

Construir o Filtro

Combine o id do programa, os nomes das instruções do passo anterior e a carteira que você está observando. Os campos se combinam com E, então isso corresponde a instruções de rota que tocam na conta SOL da carteira:
accounts.roles fixa user_transfer_authority à posição exata da carteira na instrução, que é mais restritiva do que accounts.include sozinha: uma correspondência de endereço simples também capturaria a carteira aparecendo como uma conta não relacionada em outro lugar na instrução. Os nomes dos papéis correspondem exatamente, então eles são copiados da lista describeProgram’s roles, não adivinhados. Deixe includeCpi: true (o padrão) — os movimentos reais de token de um swap acontecem em instruções internas.
3

Assine e Gerencie Notificações

Abra a assinatura com o filtro e, em seguida, leia cada argumento decodificado da instrução correspondente:
matchedIndexes aponta apenas para as instruções que seu filtro encontrou — ignore todo o resto na transação. Verifique se decoded está presente antes de lê-lo: uma instrução de rota de uma versão de programa não indexada chega com decoded: null e campos brutos em vez disso.

Próximas Etapas

Referência de Campos de Filtro

Todos os campos de filtro, opções e limites.

Gerenciando Reconexões

Mantenha esta assinatura ativa durante desconexões e implantações.