getFeeForMessage vous permet d’estimer les frais que le réseau facturera pour traiter un message de transaction donné. Cela est utile pour comprendre les coûts de transaction avant qu’ils ne soient soumis au réseau.
Remarque sur la version : Cette méthode est disponible à partir de solana-core v1.9 ou plus récent. Pour les versions antérieures, envisagez d’utiliser getFees.
Cas d’utilisation courants
- Estimation des frais : Déterminer les frais de transaction probables (en lamports) pour un message spécifique.
- Optimisation des coûts : Analyser les frais pour différentes structures de transaction ou à différents moments.
- Affichage de l’interface utilisateur : Afficher aux utilisateurs un coût de transaction estimé avant qu’ils ne signent et envoient une transaction.
Paramètres de requête
message(string, requis) : Le message de transaction, encodé en base64. Vous pouvez l’obtenir en compilant une transaction.config(objet, optionnel) : Un objet de configuration avec les champs suivants :commitment(string, optionnel) : Spécifie le niveau de commitment à utiliser. Par défautfinalized.minContextSlot(nombre, optionnel) : Le slot minimum auquel la requête peut être évaluée.
Structure de la réponse
Le champresult de la réponse JSON-RPC est un objet avec la structure suivante :
context(objet) :slot(u64) : Le slot auquel les frais ont été évalués.
value(u64 | null) : Les frais estimés en lamports. Cela peut êtrenullsi les frais ne peuvent pas être déterminés (par exemple, si le blockhash utilisé dans le message est trop ancien ou invalide).
Exemples
1. Estimer les frais pour un message de transfert simple
Cet exemple démontre comment construire un transfert simple, compiler son message, puis récupérer les frais estimés.Conseils pour les développeurs
- Construction de message : La clé pour utiliser
getFeeForMessageest de correctement construire et sérialiser la transactionMessage. Cela implique de définir le payeur des frais, les instructions, et un blockhash récent. - Blockhash récent : Le message doit être construit avec un blockhash récent. Si le blockhash est trop ancien, le
valuedans la réponse pourrait êtrenull. - Frais vs frais de priorité : Cette méthode retourne les frais de base du réseau. Elle n’inclut pas les frais de priorité supplémentaires que vous pourriez ajouter à une transaction pour augmenter ses chances d’être traitée rapidement durant les périodes de congestion du réseau. Utilisez
getRecentPrioritizationFeespour estimer les frais de priorité. - Lamports : Les frais sont retournés en lamports (1 SOL = 1 000 000 000 lamports).
- Valeur nulle : Une valeur
nullpour les frais peut indiquer des problèmes avec le message (par exemple, blockhash invalide, message mal formé) ou que le nœud ne peut pas calculer de frais pour cela au niveau de commitment ou slot donné.
getFeeForMessage pour estimer les frais de transaction sur le réseau Solana.
Méthodes connexes
getLatestBlockhash
Obtenez un blockhash récent pour construire des messages
getRecentPrioritizationFees
Estimer les frais de priorité pour un traitement plus rapide