Как проверить остатки перед пакетным разрывом ассоциаций токенов Hedera

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

Проверьте каждую связь из запроса

Для обычных действующих токенов убедитесь в наличии ассоциации и нулевом балансе. Для NFT проверьте принадлежность серийных экземпляров. В примере обе связи относятся к одному кошельку, чья авторизация требуется наряду с авторизацией плательщика транзакции.

const cleanup = new TokenDissociateTransaction()
  .setAccountId(walletId)
  .setTokenIds([tokenA, tokenB]);

Найдите конкретный ненулевой остаток

Если у A ноль, а у B одна минимальная единица, пакет может завершиться с TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES. Перед удалением любой связи из локального учёта проверьте квитанцию. Пересоберите запрос для нужного подмножества или дождитесь законного обнуления B. Для удалённых типов токенов отдельно учитывайте правила сети.

Источники