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
message(String, erforderlich): Die base64-codierte Transaktionsnachricht. Du erhältst sie, indem du eine Transaktion kompilierst.config(Objekt, optional): Ein Konfigurationsobjekt mit den folgenden Feldern:commitment(String, optional): Gibt das zu verwendende commitment-Level an. Der Standardwert istfinalized.minContextSlot(Zahl, optional): Der minimale slot, bei dem der request ausgewertet werden kann.
Response-Struktur
Das Feldresult 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 kannnullsein, 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
getFeeForMessagemusst du dieMessageder 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
valuein der response den Wertnullhaben. - 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
nullfü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.
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