Skip to main content
Die getFeeForMessage RPC-Methode ermöglicht Ihnen die Schätzung der Gebühr, die das Netzwerk für die Verarbeitung einer gegebenen Transaktionsnachricht berechnen wird. Dies ist nützlich, um die Transaktionskosten zu verstehen, bevor sie an das Netzwerk gesendet werden. Versionshinweis: Diese Methode ist in solana-core v1.9 oder neuer verfügbar. Für ältere Versionen sollten Sie getFees verwenden.

Häufige Anwendungsfälle

  • Gebührenschätzung: Bestimmen Sie die voraussichtliche Transaktionsgebühr (in Lamports) für eine bestimmte Nachricht.
  • Kostenoptimierung: Analysieren Sie Gebühren für verschiedene Transaktionsstrukturen oder zu unterschiedlichen Zeiten.
  • Benutzeroberflächenanzeige: Zeigen Sie Benutzern eine geschätzte Transaktionskosten an, bevor sie eine Transaktion unterzeichnen und senden.

Anforderungsparameter

  1. message (String, erforderlich): Die Transaktionsnachricht, base64-kodiert. Sie können diese erhalten, indem Sie eine Transaktion kompilieren.
  2. config (Objekt, optional): Ein Konfigurationsobjekt mit den folgenden Feldern:
    • commitment (String, optional): Gibt das zu verwendende Commitment-Level an. Standardmäßig ist finalized.
    • minContextSlot (Nummer, optional): Der minimale Slot, bei dem die Anfrage ausgewertet werden kann.

Antwortstruktur

Das result Feld der JSON-RPC-Antwort ist ein Objekt mit der folgenden Struktur:
  • context (Objekt):
    • slot (u64): Der Slot, bei dem die Gebühr bewertet wurde.
  • value (u64 | null): Die geschätzte Gebühr in Lamports. Dies kann null sein, wenn die Gebühr nicht bestimmt werden kann (z.B. wenn der in der Nachricht verwendete Blockhash zu alt oder ungültig ist).

Beispiele

1. Gebührenschätzung für eine einfache Transfernachricht

Dieses Beispiel zeigt, wie man einen einfachen Transfer konstruiert, seine Nachricht kompiliert und dann die geschätzte Gebühr abruft.

Entwicklertipps

  • Nachrichtenkonstruktion: Der Schlüssel zur Verwendung von getFeeForMessage besteht darin, die Transaktion Message korrekt zu konstruieren und zu serialisieren. Dies umfasst das Festlegen des Gebührenzahlers, der Anweisungen und eines aktuellen Blockhashes.
  • Aktueller Blockhash: Die Nachricht muss mit einem aktuellen Blockhash konstruiert werden. Wenn der Blockhash zu alt ist, könnte der value in der Antwort null sein.
  • Gebühr vs. Prioritätsgebühr: Diese Methode gibt die Basisnetzgebühr zurück. Sie beinhaltet keine zusätzlichen Prioritätsgebühren, die Sie gegebenenfalls zu einer Transaktion hinzufügen, um ihre Wahrscheinlichkeit einer schnellen Verarbeitung bei Netzwerkkongestion zu erhöhen. Verwenden Sie 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: Ein null-Wert für die Gebühr kann auf Probleme mit der Nachricht hinweisen (z.B. ungültiger Blockhash, fehlerhafte Nachricht) oder darauf, dass der Knoten keine Gebühr dafür bei dem angegebenen Commitment-Level oder Slot berechnen kann.
Diese Anleitung bietet die notwendigen Schritte zur Nutzung der getFeeForMessage RPC-Methode zur Schätzung von Transaktionsgebühren im Solana-Netzwerk.

Verwandte Methoden

getLatestBlockhash

Erhalten Sie einen aktuellen Blockhash zur Konstruktion von Nachrichten

getRecentPrioritizationFees

Schätzen Sie Prioritätsgebühren für schnellere Verarbeitung