Recovering an ENS registration when the reveal is too early
A commit transaction has a successful receipt, yet registering the .eth name reverts. The controller measures commitment age using block timestamps and checks the commitment against the registration inputs.
Calculate the eligible interval
Read the target controller’s minimum and maximum commitment ages and the stored commitment timestamp. With the illustrative values below, a reveal at 45 seconds is early, one at 90 seconds is eligible by age, and one at the maximum has expired. Time the calculation from inclusion rather than from when the wallet first signed the commit.
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);
Recreate the exact commitment
Use the same controller’s makeCommitment interface to reconstruct the digest from the intended registration and original secret. Changing a committed field such as the owner makes it a different commitment. If the digest matches and the window is open, check name availability and the current registration price separately. A commit does not reserve the name. Keep the secret out of diagnostic output before revealing.