Как проверить остаток разрешения у делегата SPL-токена
Сервис может потерять право расходовать токены, даже если баланс кошелька прежний. Если переводы перестали проходить, проверьте разрешение по каждому токен-аккаунту.
Найдите аккаунты по делегату и mint
Передайте первым параметром адрес делегата сервиса, а в фильтре укажите mint. В каждой строке прочитайте account.data.parsed.info. Сопоставьте owner, delegate и delegatedAmount с исходным токен-аккаунтом из инструкции перевода.
{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByDelegate",
"params": [
"DELEGATE_PUBLIC_KEY",
{
"mint": "MINT_PUBLIC_KEY"
},
{
"encoding": "jsonParsed",
"commitment": "finalized"
}
]
}
Оцените доступную сумму отдельно для каждого аккаунта
Если на обычном незамороженном токен-аккаунте лежит 900 минимальных единиц и оставшееся разрешение равно 250, перевод 300 от имени делегата превышает лимит при достаточном балансе. Разрешение другого аккаунта не увеличивает лимит первого.
Сохраните адрес аккаунта и слот ответа. До исполнения отзыв разрешения или параллельный перевод может изменить доступный лимит. Расширения токена и замороженное состояние могут накладывать дополнительные ограничения.