getFeeForMessage позволяет оценить комиссию, которую сеть взимает за обработку указанного сообщения транзакции. Это помогает определить стоимость транзакции до ее отправки в сеть.
Примечание о версии: этот метод доступен в solana-core версии 1.9 и новее. Для более ранних версий используйте getFees.
Распространенные сценарии использования
- Оценка комиссии: определите предполагаемую комиссию за транзакцию (в лампортах) для конкретного сообщения.
- Оптимизация затрат: проанализируйте комиссии для разных структур транзакций или в разное время.
- Отображение в пользовательском интерфейсе: покажите пользователям предполагаемую стоимость транзакции до ее подписания и отправки.
Параметры запроса
message(строка, обязательный): сообщение транзакции в кодировке base64. Его можно получить путем компиляции транзакции.config(объект, необязательный): объект конфигурации со следующими полями:commitment(строка, необязательный): задает используемый уровень подтверждения. Значение по умолчанию —finalized.minContextSlot(число, необязательный): минимальный слот, на котором можно обработать запрос.
Структура ответа
Полеresult ответа JSON-RPC представляет собой объект со следующей структурой:
context(объект):slot(u64): слот, на котором была рассчитана комиссия.
value(u64 | null): предполагаемая комиссия в лампортах. Значением может бытьnull, если комиссию невозможно определить (например, если хеш блока, используемый в сообщении, устарел или недействителен).
Примеры
1. Оценка комиссии для сообщения о простом переводе
В этом примере показано, как создать простой перевод, скомпилировать его сообщение и получить предполагаемую комиссию.Рекомендации для разработчиков
- Создание сообщения: чтобы использовать
getFeeForMessage, необходимо правильно создать и сериализоватьMessageтранзакции. Для этого нужно задать плательщика комиссии, инструкции и недавний хеш блока. - Недавний хеш блока: сообщение должно быть создано с недавним хешем блока. Если хеш блока слишком старый, значением
valueв ответе может бытьnull. - Базовая и приоритетная комиссии: этот метод возвращает базовую сетевую комиссию. В нее не входят дополнительные приоритетные комиссии, которые можно добавить к транзакции, чтобы повысить вероятность ее быстрой обработки при высокой нагрузке на сеть. Используйте
getRecentPrioritizationFeesдля оценки приоритетных комиссий. - Лампорты: комиссия возвращается в лампортах (1 SOL = 1 000 000 000 лампортов).
- Значение null: значение
nullдля комиссии может указывать на проблемы с сообщением (например, недействительный хеш блока или некорректное сообщение) либо на то, что узел не может рассчитать для него комиссию при заданном уровне подтверждения или слоте.
getFeeForMessage с целью оценки комиссий за транзакции в сети Solana.
Связанные методы
getLatestBlockhash
Получите недавний хеш блока для создания сообщений
getRecentPrioritizationFees
Оцените приоритетные комиссии для ускорения обработки