Как проверить сохранение баланса при одобрении токена Mina
Метод одобрения пользовательского токена получает лес обновлений счетов. Проверка только показанных отправителя и получателя может пропустить другие изменения баланса.
Сопоставьте весь лес обновлений
Для режима переводов используйте проверку сохранения TokenContract, если она соответствует политике. Передайте фактический лес в checkZeroBalanceChange внутри approveBase. Первый пример сбалансирован, второй создаёт лишнюю единицу. Проверьте также случай, когда она появляется во вложенном обновлении за пределами показанной пары.
forest A: Alice -9, Bob +9 → net 0
forest B: Alice -9, Bob +10 → net +1
Отдельно определите выпуск
Нулевое суммарное изменение задаёт условие сохранения количества в проверенных обновлениях. Оно не определяет, разрешён ли конкретный получатель и должен ли эмитент выпускать новые единицы. Опишите эти условия явно и тестируйте путь перевода отдельно от методов выпуска.