getMinimumBalanceForRentExemption позволяет рассчитать минимальный баланс в лампортах, необходимый для освобождения от арендной платы учетной записи с определенным объемом данных.
В Solana учетные записи должны поддерживать минимальный баланс для покрытия расходов на хранение данных с течением времени. Эта концепция называется арендной платой. Учетные записи с балансом, эквивалентным арендной плате за два года, считаются освобожденными от нее, и их баланс не уменьшается из-за списания арендной платы.
Распространенные сценарии использования
- Создание учетной записи: Перед созданием новой учетной записи (например, учетной записи нового токена, адреса, производного от программы, или пользовательского хранилища данных) используйте этот метод, чтобы определить необходимое количество лампортов для освобождения от арендной платы с самого начала. Это предотвратит удаление учетной записи сборщиком мусора, если ее баланс станет слишком низким.
- Динамическое изменение размера учетной записи: Если ваше приложение работает с учетными записями, объем данных которых может увеличиваться, вы можете использовать этот метод для периодической проверки необходимости дополнительных лампортов для сохранения освобождения от арендной платы.
- Оценка затрат: Оценивайте затраты в SOL на развертывание программ или создание учетных записей данных разного размера.
- Интеграция с кошельками и SDK: Кошельки и SDK используют этот метод, чтобы обеспечить надлежащее финансирование новых учетных записей.
Параметры запроса
-
dataLength(usize, обязательный): Размер данных учетной записи в байтах. Это основной фактор, определяющий минимальный баланс для освобождения от арендной платы.- Пример:
165(для стандартной учетной записи SPL Token).
- Пример:
-
commitment(object, необязательный): Задает уровень подтверждения для запроса. Если параметр не указан, используется уровень подтверждения узла RPC по умолчанию.- Поля:
commitment(строка): например,"finalized","confirmed"или"processed".
- Поля:
Структура ответа
Полеresult ответа JSON-RPC содержит значение типа u64 (64-разрядное целое число без знака), представляющее минимальное количество лампортов, необходимое для освобождения от арендной платы учетной записи с указанным значением dataLength.
Примеры
1. Получение суммы для освобождения от арендной платы стандартной учетной записи токена (165 байт)
В этом примере запрашивается минимальный баланс, необходимый для освобождения от арендной платы типичной учетной записи SPL Token с объемом данных 165 байт.2. Получение суммы для освобождения от арендной платы учетной записи с нулевым объемом данных
Здесь показана базовая сумма для освобождения от арендной платы учетной записи без данных. Часто это абсолютный минимум для любой учетной записи.Рекомендации для разработчиков
- Арендная плата зависит от объема данных: Чем больше данных в учетной записи, тем выше минимальный баланс для освобождения от арендной платы.
- Параметр сети: Базовая стоимость аренды (количество лампортов за байт в год) — это параметр сети, который теоретически может измениться посредством голосования в кластере, хотя такое случается редко. Метод
getMinimumBalanceForRentExemptionвсегда возвращает актуальное значение с учетом состояния кластера. - Лампорты и SOL: В ответе сумма указана в лампортах. Помните, что 1 SOL = 1 000 000 000 лампортов.
- Необходимо для долгосрочного хранения: Освобождение учетных записей от арендной платы критически важно для долгосрочного хранения данных в блокчейне Solana.
getMinimumBalanceForRentExemption для эффективного управления арендной платой учетных записей в приложениях Solana.