Empfehlungen für Agenten
Verwenden Sie getTransactionsForAddress anstelle einer zweistufigen Abfrage
getTransactionsForAddress kombiniert Signaturabfrage und Transaktionsabruf in einem einzigen Aufruf mit serverseitiger Filterung. Es unterstützt Zeit-/Slot-Bereiche, Token-Konto-Filterung und Paginierung.
Verwenden Sie sendSmartTransaction für Standard-Sendungen
Es simuliert automatisch, schätzt Recheneinheiten, ruft Priority Fees ab und bestätigt. Bauen Sie keine ComputeBudget-Anweisungen manuell — das SDK fügt sie automatisch hinzu.
Verwenden Sie Helius Sender für ultra-niedrige Latenz
Für zeitkritische Transaktionen (Arbitrage, Sniping, Liquidationen) verwenden SiesendTransactionWithSender. Es leitet über Helius’ Multi-Region-Infrastruktur und Jito.
Verwenden Sie getAssetBatch für mehrere Assets
Beim Abrufen von mehr als einem Asset bündeln Sie diese. Rufen Sie getAsset nicht in einer Schleife auf.
Verwenden Sie Webhooks oder WebSockets anstelle von Polling
Führen Sie kein Polling vongetTransactionsForAddress in einer Schleife durch. Verwenden Sie Webhooks für Server-zu-Server-Benachrichtigungen oder WebSockets für Echtzeit-Client-Streaming.
Paginierung
Das SDK verwendet je nach Methode unterschiedliche Paginierungsstrategien.Token-/Cursor-basiert (RPC V2 Methoden)
Seitenbasiert (DAS API)
tokenAccounts Filter
Beim Abfragen von getTransactionsForAddress steuert der tokenAccounts-Filter, ob Aktivität von Token-Konten einbezogen wird:
changedSinceSlot — Inkrementelles Kontoabrufen
changedSinceSlot gibt nur Konten zurück, die nach einem bestimmten Slot geändert wurden. Nützlich für Synchronisierungs- oder Indizierungs-Workflows. Unterstützt von getProgramAccountsV2, getTokenAccountsByOwnerV2, getAccountInfo, getMultipleAccounts, getProgramAccounts, und getTokenAccountsByOwner.
Häufige Fehler
-
transactionDetails: "full"ist nicht der Standard — Standardmäßig gibtgetTransactionsForAddressnur Signaturen zurück. Setzen SietransactionDetails: "full", um vollständige Transaktionsdaten zu erhalten. -
Fügen Sie keine ComputeBudget-Anweisungen mit
sendSmartTransactionhinzu — Das SDK fügt sie automatisch hinzu. Eigene hinzufügen verursacht doppelte Anweisungen und Transaktionsfehler. -
Prioritätsgebühren sind in Mikro-Lamports pro Recheneinheit — Nicht in Lamports. Werte aus
getPriorityFeeEstimatesind bereits in der korrekten Einheit fürSetComputeUnitPrice. -
DAS-Paginierung ist 1-indiziert —
page: 1ist die erste Seite, nichtpage: 0. -
blockTimeist in Unix-Sekunden, nicht Millisekunden — Verwenden SieMath.floor(Date.now() / 1000), wenn Sie nachblockTimefiltern. -
getAssetverbirgt fungible Token standardmäßig — Geben Sieoptions: { showFungible: true }an, um sie einzuschließen. -
WebSocket-Streams benötigen Bereinigung — Verwenden Sie immer ein AbortController-Signal und rufen Sie
helius.ws.close()auf, wenn Sie fertig sind, um Verbindungslecks zu vermeiden. -
Setzen Sie
maxSupportedTransactionVersion: 1, wenn Sie Transaktionen abrufen.getTransaction,getBlock, undgetTransactionsForAddressmittransactionDetails: "full"schlagen mit Fehler-32015bei Transaktion v1 sonst fehl. Bei v1-Transaktionen ist die Prioritätsgebührmessage.transactionConfig.priorityFee, eine Summe in Lamports; es gibt keine ComputeBudget-Anweisungen, die gescannt werden können. Siehe Transaktion v1 Unterstützung.
Fehlerbehandlung und Wiederholungen
Das SDK wirft nativeError-Objekte mit dem HTTP-Statuscode eingebettet in die Nachrichtenzeichenkette (z. B. "API error (429): ..."). Es gibt keine .status-Eigenschaft im Fehlerobjekt, daher erfordert die Statuserkennung die Nachrichtenanalyse.