Как восстановить результат перевода ICRC-1 после потери ответа
Реестр с поддержкой дедупликации по времени может распознать повторный перевод, если отправитель сохранит первоначальные аргументы.
Запишите запрос до отправки
Сохраните счёт отправителя, реестр, получателя, сумму, вариант комиссии, memo и created_at_time в наносекундах. При потере ответа повторите запрос от того же вызывающего в допустимом окне реестра. Новая временная метка способна превратить повтор в отдельный перевод по тому же счёту.
attempt 1: destination D, amount 100, memo M, created_at_time T
retry: destination D, amount 100, memo M, created_at_time T
Duplicate { duplicate_of = 746 }
Различайте повтор и истечение окна
В примере duplicate_of указывает на существующую транзакцию с индексом 746. Привяжите индекс к счёту и сверьте реквизиты. Ошибка TooOld при поздней попытке ничего не сообщает об исходе первого перевода. До оформления нового платежа проверьте историю реестра.