
Einführung von Token-Account-Filtern für gTFA
Letzten Oktober haben wir getTransactionsForAddress veröffentlicht, einen neuen Solana-RPC-Aufruf zum Abfragen historischer Daten, der getSignaturesForAddress und getTransaction in einer Methode vereint.
Heute freuen wir uns, bekannt zu geben, dass getTransactionsForAddress (gTFA) jetzt den Verlauf der Token-Transfers einer Wallet mit einem einzigen RPC-Aufruf abfragen kann.
Mit der neuen tokenAccounts-Funktion kannst du Transaktionen für die zugehörigen Token-Accounts einer Wallet einschließen. Bisher wurden sie von gTFA und seinem Vorgänger getSignaturesForAddress ausgelassen.
Bisher mussten Entwickler zuerst getTokenAccountsByOwner und dann für jeden Token-Account getSignaturesForAddress abfragen.
Das war langsam und teuer und erforderte oft Hunderte zusätzliche RPC-Aufrufe.
Jetzt genügt ein einziger Aufruf von getTransactionsForAddress mit tokenAccounts.
Das Problem
Auf Solana enthält deine Wallet die Token nicht direkt.
Stattdessen besitzt deine Wallet Associated Token Accounts (ATAs), in denen deine Token liegen.
Wenn dir beispielsweise jemand USDC sendet, landet es in deinem USDC-Token-Account statt an deiner primären Wallet-Adresse.
Das verursacht große Probleme beim Abfragen des Transaktionsverlaufs einer Wallet:
Wenn du getSignaturesForAddress für eine Wallet aufrufst, erhältst du nur Transaktionen, die direkt auf diese Wallet-Adresse verweisen.
Token-Transfers, die mit deinen Token-Accounts interagieren, aber deine Wallet nicht erwähnen, erscheinen einfach nicht.
Die bisherige Lösung
Bisher mussten Entwickler eine umständliche Behelfslösung implementieren:
getTokenAccountsByOwneraufrufen, um die Token-Accounts einer Wallet abzurufengetSignaturesForAddressfür die Wallet selbst aufrufengetSignaturesForAddressfür jeden einzelnen Token-Account aufrufen- Alle Ergebnisse zusammenführen
- Duplikate entfernen, da viele Transaktionen mehrere Accounts betreffen
- Chronologisch sortieren
Dieser Ansatz ist aus mehreren Gründen problematisch:
1. Langsame Performance
Eine Wallet mit 50 Token-Accounts erfordert mindestens 51 RPC-Aufrufe, nur um einen vollständigen Verlauf zu erstellen. Professionelle Trader, intensive DeFi-Nutzer oder Memecoin-Hobbytrader können Hunderte Token-Accounts haben.
2. Ineffiziente Paginierung
Du möchtest die 20 neuesten Transaktionen abrufen? Du kannst nicht einfach 20 aus jeder Quelle abrufen und zusammenführen. Du musst alles abrufen, Duplikate entfernen, sortieren und erst dann die ersten 20 Transaktionen auswählen.
Ohne zu viele Daten abzurufen, ist keine effiziente Paginierung möglich.
3. RPC-Kosten summieren sich
Jeder RPC-Aufruf verursacht Overhead. Wenn dieser Overhead pro Nutzeranfrage mit mehr als 100 Aufrufen multipliziert wird, steigen die Kosten schnell, besonders bei großer Skalierung.
Die Lösung
Mit dem neuen tokenAccounts-Filter kannst du den vollständigen Verlauf einer Wallet mit einer einzigen RPC-Anfrage abrufen:
{
"jsonrpc": "2.0",
"id": "helius-example",
"method": "getTransactionsForAddress",
"params": [
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"filters": {
"tokenAccounts": "all"
},
"sortOrder": "asc",
"limit": 100
}
]
}Das ist alles. Ein Aufruf. Der vollständige Verlauf.
Filteroptionen
Der tokenAccounts-Filter bietet drei Optionen: none, balanceChanged und all.
none (Standard)
Wenn der tokenAccounts-Filter auf none gesetzt ist, müssen Transaktionen auf die Wallet-Adresse verweisen.
balanceChanged (empfohlen)
Wenn balanceChanged angewendet wird, verweisen Transaktionen auf die Wallet-Adresse oder ändern das Guthaben eines Token-Accounts, der der Wallet gehört.
all
Wenn du tokenAccounts auf all setzt, müssen Transaktionen auf die Adresse der Wallet oder eines Token-Accounts verweisen, der der Wallet gehört.
Anwendungsfälle
Diese neue Funktion ist unverzichtbar für:
- Wallets, die den vollständigen Transaktionsverlauf anzeigen
- Portfolio-Tracker, die jede Token-Bewegung erfassen müssen
- Steuersoftware, die Gewinne und Verluste über alle Token hinweg berechnet
- Analyse-Dashboards, die Nutzeraktivitäten anzeigen
Jetzt loslegen
Die tokenAccounts-Funktion ist ab sofort verfügbar.
Füge einfach tokenAccounts: balanceChanged (oder all) zu deinem Filterobjekt hinzu und schon kann es losgehen!
Du verwendest getTransactionsForAddress noch nicht?
Sieh dir unsere Dokumentation und SDKs an, um mehr zu erfahren und loszulegen.
Ähnliche Artikel
Helius abonnieren
Bleib bei der Solana-Entwicklung auf dem Laufenden und erhalte Updates, wenn wir neue Beiträge veröffentlichen


