Как найти причину отклонения permit ERC-2612

Две вкладки могут подготовить внешне корректные разрешения для одного владельца с одинаковым nonce. Перед запросом новой подписи проверьте состояние токена.

Сравните подписанный nonce с текущим

Пусть обе вкладки прочитали nonces(owner) = 12 и подписали разные лимиты. Первый permit прошёл. Теперь nonces(owner) возвращает 13. Вторая подпись не подойдёт: при её проверке контракт включает в хеш текущий nonce.

nonces(owner): 12 → 13
signed nonce:  12

Прочтите разделитель домена токена и проверьте владельца, получателя разрешения, сумму и срок в подписанных данных. Permit устанавливает разрешение на расход. Перевод токенов выполняется отдельным действием.

Уточните, требуется ли повтор

Проверьте allowance(owner, spender) перед новым запросом подписи. Нужное разрешение уже могло появиться. Если необходим свежий permit, заново соберите данные с текущим nonce и подпишите. Редактирование nonce в ранее подписанных данных нарушает проверку. eips.ethereum.org EIP-2612