Empfehlungen für Agenten
Verwenden Sie get_transactions_for_address anstelle des Zweistufen-Lookups
get_transactions_for_address kombiniert Signatur-Lookup und Transaktionsabruf in einem einzigen Aufruf mit serverseitiger Filterung.
Verwenden Sie send_smart_transaction für Standardübertragungen
Es simuliert automatisch, schätzt Berechnungseinheiten, ruft Prioritätsgebühren 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 Siesend_smart_transaction_with_sender. Es routet durch Helius’ Infrastruktur über mehrere Regionen und Jito.
Verwenden Sie get_asset_batch für mehrere Vermögenswerte
Wenn Sie mehr als einen Vermögenswert abrufen, bündeln Sie sie. Rufen Sie get_asset nicht in einer Schleife auf.
Verwenden Sie Webhooks anstelle von Polling
Führen Sie kein Polling vonget_transactions_for_address in einer Schleife durch. Verwenden Sie Webhooks für serverseitige Benachrichtigungen.
Paginierung
Token/Cursor-basiert (RPC V2 Methoden)
Seitenbasiert (DAS API)
token_accounts Filter
Beim Abfragen von get_transactions_for_address steuert der token_accounts Filter, ob die Aktivität des Token-Kontos einbezogen wird:
changed_since_slot — Inkrementelles Abrufen von Konten
changed_since_slot gibt nur Konten zurück, die nach einem bestimmten Slot geändert wurden. Nützlich für Synchronisierungs- oder Indexierungs-Workflows. Unterstützt von get_program_accounts_v2, get_token_accounts_by_owner_v2, get_account_info, get_multiple_accounts, get_program_accounts und get_token_accounts_by_owner.
Häufige Fehler
-
transaction_details: Some(TransactionDetails::Full)ist nicht die Standardeinstellung — Standardmäßig gibtget_transactions_for_addressnur Signaturen zurück. Setzen SieTransactionDetails::Full, um vollständige Transaktionsdaten zu erhalten. -
Fügen Sie keine ComputeBudget-Anweisungen mit
send_smart_transactionhinzu — Das SDK fügt sie automatisch hinzu. Ein Hinzufügen eigener Anweisungen verursacht einenHeliusError::InvalidInputFehler. -
Prioritätsgebühren sind in Mikrolamports pro Berechnungseinheit — Nicht in Lamports. Werte von
get_priority_fee_estimatesind bereits in der richtigen Einheit. -
DAS Paginierung ist 1-basiert —
page: 1ist die erste Seite, nichtpage: 0. -
async_connection()erfordertnew_asyncoderHeliusBuilder— Ein Aufruf vonhelius.async_connection()auf einem mitHelius::new()erstellten Client gibtErr(HeliusError::ClientNotInitialized)zurück. -
get_assetgibtOption<Asset>zurück — Eine erfolgreiche Antwort kann dennochNonesein, wenn der Vermögenswert nicht existiert. Behandeln Sie dasOptionexplizit. -
Sender-Tipps sind obligatorisch —
send_smart_transaction_with_senderbestimmt und fügt automatisch Tipps hinzu. Minimum 0,0002 SOL (Dual-Modus) oder 0,000005 SOL (nur SWQOS). -
TLS-Feature-Flags — Der Krate-Standard ist
native-tls. Verwenden Siefeatures = ["rustls"](unddefault-features = false) für reines Rust-TLS, wenn OpenSSL nicht verfügbar ist. -
Setzen Sie die maximal unterstützte Transaktionsversion auf 1, wenn Sie Transaktionen abrufen.
get_transaction,get_blockundget_transactions_for_addressmitTransactionDetails::Fullschlagen mit Fehler-32015bei Transaktion v1 sonst fehl. Bei v1-Transaktionen ist die Prioritätsgebühr dietransactionConfig.priorityFeeder Nachricht, eine Gesamtsumme in Lamports; es gibt keine ComputeBudget-Anweisungen zum Scannen. Siehe Unterstützung für Transaktion v1.
Fehlerbehandlung und Wiederholungen
Das SDK bietet typisierte Fehler-Varianten über dasHeliusError Enum, sodass Sie direkt darauf zugreifen können:
Wiederholungsstrategie
Wiederholen beiRateLimitExceeded und InternalError mit exponentiellem Backoff: