Как проверить сохранение баланса при одобрении токена Mina

Метод одобрения пользовательского токена получает лес обновлений счетов. Проверка только показанных отправителя и получателя может пропустить другие изменения баланса.

Сопоставьте весь лес обновлений

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

forest A: Alice -9, Bob +9 → net 0
forest B: Alice -9, Bob +10 → net +1

Отдельно определите выпуск

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

Источники