Permalink
Cannot retrieve contributors at this time
pragma solidity ^0.7.0; | |
import "./ENS.sol"; | |
/** | |
* A registrar that allocates subdomains to the first person to claim them. | |
*/ | |
contract FIFSRegistrar { | |
ENS ens; | |
bytes32 rootNode; | |
modifier only_owner(bytes32 label) { | |
address currentOwner = ens.owner(keccak256(abi.encodePacked(rootNode, label))); | |
require(currentOwner == address(0x0) || currentOwner == msg.sender); | |
_; | |
} | |
/** | |
* Constructor. | |
* @param ensAddr The address of the ENS registry. | |
* @param node The node that this registrar administers. | |
*/ | |
constructor(ENS ensAddr, bytes32 node) public { | |
ens = ensAddr; | |
rootNode = node; | |
} | |
/** | |
* Register a name, or change the owner of an existing registration. | |
* @param label The hash of the label to register. | |
* @param owner The address of the new owner. | |
*/ | |
function register(bytes32 label, address owner) public only_owner(label) { | |
ens.setSubnodeOwner(rootNode, label, owner); | |
} | |
} |