Как рассчитать пополнение аккаунта Solana при увеличении размера

После изменения схемы аккаунт программы может вырасти со 128 до 256 байт. Для расчёта необходимого остатка важен новый размер данных.

Рассчитайте порог для итогового размера

Отправьте JSON методом POST на RPC целевого кластера. Учтите в 256 байтах дискриминатор, поля длины и резерв, если они предусмотрены форматом аккаунта.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getMinimumBalanceForRentExemption",
  "params": [
    256,
    {
      "commitment": "confirmed"
    }
  ]
}

Вычислите сумму пополнения

Прочитайте текущий баланс в лампортах с тем же уровнем подтверждения. Если для нового размера RPC вернул порог 3 000 000 лампортов, а на аккаунте лежит 2 400 000, потребуется ещё 600 000. Если средств уже достаточно, пополнение равно нулю. При миграции подставьте реальные значения из ответов.

Предусмотрите комиссию транзакции на аккаунте плательщика отдельно. Повторите расчёт для каждого итогового размера, особенно если миграция добавляет поле переменной длины.

Документация