Как восстановить регистрацию ENS, если раскрытие отправлено слишком рано
Транзакция commit включена успешно, но регистрация имени .eth завершается ошибкой. Контроллер проверяет возраст обязательства по блоковому времени и сопоставляет его с параметрами регистрации.
Рассчитайте допустимый интервал
Прочитайте минимальный и максимальный возраст обязательства у выбранного контроллера и получите сохранённое время commit. При учебных значениях ниже 45 секунд слишком мало, 90 секунд подходят по времени, а при достижении верхней границы срок уже истёк. Отсчитывайте время от включения транзакции, а не от момента подписи в кошельке.
const committedAt = 1_800_000_000, min = 60, max = 86400;
for (const t of [committedAt + 45, committedAt + 90, committedAt + max])
console.log(t - committedAt >= min && t - committedAt < max);
Воспроизведите исходное обязательство
Посчитайте дайджест через makeCommitment того же контроллера, используя исходный секрет и параметры регистрации. Замена владельца меняет обязательство. При совпадении дайджеста и подходящем времени отдельно проверьте доступность имени и текущую цену. Сам commit не резервирует имя. До раскрытия не выводите секрет в журнал диагностики.