| 123456789101112131415161718192021222324252627282930313233343536 |
- pragma solidity ^0.5.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);
- }
- }
|