Как проверить сумму нового стейк-аккаунта Solana перед делегированием

Средств нового стейк-аккаунта должно хватать и на необлагаемый рентой резерв, и на минимальную делегацию. Сравнение всего баланса только с порогом делегации может пропустить нехватку средств.

Получите действующий порог кластера

Опросите кластер, в котором будет выполнено делегирование, и прочитайте result.value в лампортах. Сохраните context.slot. Резерв для фактической длины данных нового аккаунта рассчитайте через getMinimumBalanceForRentExemption.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getStakeMinimumDelegation",
  "params": [
    {
      "commitment": "finalized"
    }
  ]
}

Проверьте сумму, доступную для делегирования

Например, если порог равен 1 000 000 лампортов, а резерв — 200 000, то при балансе нового аккаунта 1 100 000 на делегирование остаётся 900 000. Не хватает 100 000. Подставьте фактические значения из кластера и отдельно предусмотрите комиссию плательщика транзакции.

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

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