From e835fa2ebca82f83c281f479b57ca560f1b773cc Mon Sep 17 00:00:00 2001 From: lcfr <62533238+lcfr-eth@users.noreply.github.com> Date: Mon, 4 Dec 2023 14:26:45 -0500 Subject: [PATCH 1/2] add check in makeCommitment for resolver != address(0) when reverseResolver = True --- contracts/ethregistrar/ETHRegistrarController.sol | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contracts/ethregistrar/ETHRegistrarController.sol b/contracts/ethregistrar/ETHRegistrarController.sol index b60713ae..fd240b5a 100644 --- a/contracts/ethregistrar/ETHRegistrarController.sol +++ b/contracts/ethregistrar/ETHRegistrarController.sol @@ -20,6 +20,7 @@ error CommitmentTooOld(bytes32 commitment); error NameNotAvailable(string name); error DurationTooShort(uint256 duration); error ResolverRequiredWhenDataSupplied(); +error ResolverRequiredWhenReverseRecord(); error UnexpiredCommitmentExists(bytes32 commitment); error InsufficientValue(); error Unauthorised(bytes32 node); @@ -120,6 +121,9 @@ contract ETHRegistrarController is uint16 ownerControlledFuses ) public pure override returns (bytes32) { bytes32 label = keccak256(bytes(name)); + if (resolver == address(0) && reverseRecord == true) { + revert ResolverRequiredWhenReverseRecord(); + } if (data.length > 0 && resolver == address(0)) { revert ResolverRequiredWhenDataSupplied(); } From 4654f35f205933a79690c29d067f11dfcf2ae762 Mon Sep 17 00:00:00 2001 From: lcfr <62533238+lcfr-eth@users.noreply.github.com> Date: Mon, 4 Dec 2023 15:34:24 -0500 Subject: [PATCH 2/2] Update IETHRegistrarController.sol add commitments to the interface so uis can easily return/check if a commitment is valid in a pre-registration hook. --- contracts/ethregistrar/IETHRegistrarController.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/ethregistrar/IETHRegistrarController.sol b/contracts/ethregistrar/IETHRegistrarController.sol index 540c1a9a..d0340b3f 100644 --- a/contracts/ethregistrar/IETHRegistrarController.sol +++ b/contracts/ethregistrar/IETHRegistrarController.sol @@ -24,6 +24,8 @@ interface IETHRegistrarController { function commit(bytes32) external; + function commitments(bytes32) external view returns (uint256); + function register( string calldata, address,