Как проверить сумму нового стейк-аккаунта 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. Подставьте фактические значения из кластера и отдельно предусмотрите комиссию плательщика транзакции.
Такой расчёт применим к только что инициализированному стейк-аккаунту. Для существующих аккаунтов при разделении, слиянии или переделегировании дополнительно учитывайте состояние активации и условия соответствующей инструкции.