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
message(String, erforderlich): Die Transaktionsnachricht, base64-kodiert. Sie können diese erhalten, indem Sie eine Transaktion kompilieren.config(Objekt, optional): Ein Konfigurationsobjekt mit den folgenden Feldern:commitment(String, optional): Gibt das zu verwendende Commitment-Level an. Standardmäßig istfinalized.minContextSlot(Nummer, optional): Der minimale Slot, bei dem die Anfrage ausgewertet werden kann.
Antwortstruktur
Dasresult 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 kannnullsein, 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
getFeeForMessagebesteht darin, die TransaktionMessagekorrekt 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
valuein der Antwortnullsein. - 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.
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