Zum Hauptinhalt springen
Mit der RPC-Methode getFeeForMessage kannst du die Gebühr schätzen, die das Netzwerk für die Verarbeitung einer bestimmten Transaktionsnachricht berechnet. So kannst du die Transaktionskosten ermitteln, bevor du die Transaktion an das Netzwerk sendest. Versionshinweis: Diese Methode ist ab solana-core v1.9 verfügbar. Verwende für ältere Versionen stattdessen getFees.

Häufige Anwendungsfälle

  • Gebührenschätzung: Ermittle die voraussichtliche Transaktionsgebühr (in Lamports) für eine bestimmte Nachricht.
  • Kostenoptimierung: Analysiere die Gebühren für verschiedene Transaktionsstrukturen oder zu unterschiedlichen Zeiten.
  • Anzeige in der Benutzeroberfläche: Zeige Benutzern die geschätzten Transaktionskosten, bevor sie eine Transaktion signieren und senden.

Request-Parameter

  1. message (String, erforderlich): Die base64-codierte Transaktionsnachricht. Du erhältst sie, indem du eine Transaktion kompilierst.
  2. config (Objekt, optional): Ein Konfigurationsobjekt mit den folgenden Feldern:
    • commitment (String, optional): Gibt das zu verwendende commitment-Level an. Der Standardwert ist finalized.
    • minContextSlot (Zahl, optional): Der minimale slot, bei dem der request ausgewertet werden kann.

Response-Struktur

Das Feld result der JSON-RPC-response ist ein Objekt mit der folgenden Struktur:
  • context (Objekt):
    • slot (u64): Der slot, bei dem die Gebühr ausgewertet wurde.
  • value (u64 | null): Die geschätzte Gebühr in Lamports. Der Wert kann null sein, wenn sich die Gebühr nicht ermitteln lässt, beispielsweise weil der in der Nachricht verwendete Blockhash zu alt oder ungültig ist.

Beispiele

1. Gebühr für eine einfache Übertragungsnachricht schätzen

Dieses Beispiel zeigt, wie du eine einfache Übertragung erstellst, ihre Nachricht kompilierst und anschließend die geschätzte Gebühr abrufst.

Tipps für Entwickler

  • Nachricht erstellen: Für die Verwendung von getFeeForMessage musst du die Message der Transaktion korrekt erstellen und serialisieren. Lege dazu den Gebührenzahler, die Anweisungen und einen aktuellen Blockhash fest.
  • Aktueller Blockhash: Du musst die Nachricht mit einem aktuellen Blockhash erstellen. Ist der Blockhash zu alt, kann value in der response den Wert null haben.
  • Gebühr und Prioritätsgebühr: Diese Methode gibt die grundlegende Netzwerkgebühr zurück. Sie enthält keine zusätzlichen Prioritätsgebühren, die du einer Transaktion hinzufügen kannst, damit sie bei hoher Netzwerkauslastung mit größerer Wahrscheinlichkeit schnell verarbeitet wird. Verwende getRecentPrioritizationFees, um Prioritätsgebühren zu schätzen.
  • Lamports: Die Gebühr wird in Lamports zurückgegeben (1 SOL = 1.000.000.000 Lamports).
  • Nullwert: Der Wert null für die Gebühr kann auf Probleme mit der Nachricht hinweisen, beispielsweise einen ungültigen Blockhash oder eine fehlerhaft formatierte Nachricht. Er kann auch bedeuten, dass der node für das angegebene commitment-Level oder den angegebenen slot keine Gebühr berechnen kann.
Diese Anleitung zeigt dir die erforderlichen Schritte, um mit der RPC-Methode getFeeForMessage die Transaktionsgebühren im Solana-Netzwerk zu schätzen.

Verwandte Methoden

getLatestBlockhash

Rufe einen aktuellen Blockhash zum Erstellen von Nachrichten ab

getRecentPrioritizationFees

Schätze Prioritätsgebühren für eine schnellere Verarbeitung