Voraussetzungen: Ein Helius API-Schlüssel (Business- oder Professional-Plan für Mainnet LaserStream) und Node.js 18+. Vertrautheit mit Account-Abonnements und Transaktionsüberwachung ist hilfreich, aber nicht erforderlich.
Einrichtung
Erstellen Sie ein neues Projekt, installieren Sie das SDK +bs58 (wird verwendet, um Transaktionssignaturen zu dekodieren) und setzen Sie Ihren API-Schlüssel:
Das Skript
Speichern Sie dies alsindex.ts und führen Sie dann npx ts-node index.ts aus:
Was das Skript macht
Ein Abonnement, zwei Filterblöcke
Ein einzelnersubscribe(...)-Aufruf enthält zwei benannte Filtergruppen:
- Der
accounts-Filter empfängt jedes Konto, das vom Pump.fun-Programm verwaltet wird (Bonding-Kurven, Mint-Zustand usw.), jedes Mal, wenn sich ihre Daten ändern. - Der
transactions-Filter empfängt jede Transaktion, die mit dem Pump.fun-Programm interagiert. Dievote: false, failed: false-Flags verwerfen Stimmen und fehlgeschlagene Transaktionen, bevor sie Ihren Handler erreichen.
Lesen der Rohfelder
Einige Werte im Payload benötigen eine kleine Konvertierung, bevor sie einfach zu verwenden sind:tx.signatureist einBuffer. Führen Sie es durchbs58.encode(...), um die Base58-Signatur zu erhalten, die Sie in einem Explorer oder einergetTransaction-Antwort sehen würden.tx.meta.feeist ein u64, das als String gespeichert ist, damit Werte überNumber.MAX_SAFE_INTEGERin JavaScript keine Genauigkeit verlieren. Wickeln Sie es inNumber(...)ein, bevor Sie Rechenoperationen durchführen. Dasselbe String-für-u64-Konzept gilt auch für mehrere Blockebenenfelder — siehe Slot- und Blocküberwachung für die vollständige Datenform.
Rollende Statistiken
EinsetInterval druckt alle 60 Sekunden einen Snapshot: Gesamttransaktionen, Erfolge gegenüber Fehlern, Durchsatz, einzigartige Gebührenzahler und Gesamtgebühren in SOL. Drücken Sie Ctrl+C, um einen letzten Snapshot zu erhalten, bevor das Skript beendet wird.
Das Skript erweitern
Einige Richtungen, um dies weiterzuentwickeln:- Dekodieren von Anweisungsdiskriminatoren, um Trades als
buy/sell/createzu kennzeichnen — siehe Dekodieren von Transaktionsdaten für das Parsing-Muster. - Persistieren der rollenden Statistiken in einer Datenbank (Postgres, Redis, ClickHouse) anstelle von In-Memory
Set/ Zählern. - Warnen bei Schwellenwerten — große Gebührenzahler, plötzliche Volumenspitzen, neue Bonding-Kurvenkonten.
- Wiederholen versäumter Aktivitäten beim Start durch Setzen von
fromSlotaufSubscribeRequest(bis zu 24 Stunden zurück — siehe Historisches Wiederholen). - Kombinieren mit Slot- und Blocküberwachung für Blockkontext.
Nächste Schritte
Transaktionsüberwachung
Die allgemeinen Transaktionsfiltermuster, die dieses Skript verwendet.
Dekodieren von Transaktionsdaten
Parsen Sie das binäre Transaktion-Payload in lesbare Solana-Transaktionen.
Kontoabonnements
Überwachen Sie spezifische Kontostandsänderungen mit Filtern.
Historisches Wiederholen
Wiederholen Sie bis zu 24 Stunden vergangene Pump.fun-Aktivität ab einem Startslot.