Как проверить остаток разрешения у делегата 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 от имени делегата превышает лимит при достаточном балансе. Разрешение другого аккаунта не увеличивает лимит первого.

Сохраните адрес аккаунта и слот ответа. До исполнения отзыв разрешения или параллельный перевод может изменить доступный лимит. Расширения токена и замороженное состояние могут накладывать дополнительные ограничения.

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