Skip to main content
Beste Praktiken und empfohlene Muster für Agenten, die das Helius Rust SDK verwenden. Für Installation und Einstieg siehe die Übersicht.

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 Sie send_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 von get_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

  1. transaction_details: Some(TransactionDetails::Full) ist nicht die Standardeinstellung — Standardmäßig gibt get_transactions_for_address nur Signaturen zurück. Setzen Sie TransactionDetails::Full, um vollständige Transaktionsdaten zu erhalten.
  2. Fügen Sie keine ComputeBudget-Anweisungen mit send_smart_transaction hinzu — Das SDK fügt sie automatisch hinzu. Ein Hinzufügen eigener Anweisungen verursacht einen HeliusError::InvalidInput Fehler.
  3. Prioritätsgebühren sind in Mikrolamports pro Berechnungseinheit — Nicht in Lamports. Werte von get_priority_fee_estimate sind bereits in der richtigen Einheit.
  4. DAS Paginierung ist 1-basiertpage: 1 ist die erste Seite, nicht page: 0.
  5. async_connection() erfordert new_async oder HeliusBuilder — Ein Aufruf von helius.async_connection() auf einem mit Helius::new() erstellten Client gibt Err(HeliusError::ClientNotInitialized) zurück.
  6. get_asset gibt Option<Asset> zurück — Eine erfolgreiche Antwort kann dennoch None sein, wenn der Vermögenswert nicht existiert. Behandeln Sie das Option explizit.
  7. Sender-Tipps sind obligatorischsend_smart_transaction_with_sender bestimmt und fügt automatisch Tipps hinzu. Minimum 0,0002 SOL (Dual-Modus) oder 0,000005 SOL (nur SWQOS).
  8. TLS-Feature-Flags — Der Krate-Standard ist native-tls. Verwenden Sie features = ["rustls"] (und default-features = false) für reines Rust-TLS, wenn OpenSSL nicht verfügbar ist.
  9. Setzen Sie die maximal unterstützte Transaktionsversion auf 1, wenn Sie Transaktionen abrufen. get_transaction, get_block und get_transactions_for_address mit TransactionDetails::Full schlagen mit Fehler -32015 bei Transaktion v1 sonst fehl. Bei v1-Transaktionen ist die Prioritätsgebühr die transactionConfig.priorityFee der 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 das HeliusError Enum, sodass Sie direkt darauf zugreifen können:

Wiederholungsstrategie

Wiederholen bei RateLimitExceeded und InternalError mit exponentiellem Backoff: