embark-area-51/lib/modules/ens/contracts/DefaultReverseResolver.sol

48 lines
1.3 KiB
Solidity

pragma solidity ^0.4.18;
import "./ReverseRegistrar.sol";
/**
* @dev Provides a default implementation of a resolver for reverse records,
* which permits only the owner to update it.
*/
contract DefaultReverseResolver is Resolver {
// namehash('addr.reverse')
bytes32 constant ADDR_REVERSE_NODE = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;
ENS public ens;
mapping (bytes32 => string) public name;
/**
* @dev Only permits calls by the reverse registrar.
* @param node The node permission is required for.
*/
modifier owner_only(bytes32 node) {
require(msg.sender == ens.owner(node));
_;
}
/**
* @dev Constructor
* @param ensAddr The address of the ENS registry.
*/
function DefaultReverseResolver(ENS ensAddr) public {
ens = ensAddr;
// Assign ownership of the reverse record to our deployer
ReverseRegistrar registrar = ReverseRegistrar(ens.owner(ADDR_REVERSE_NODE));
if (address(registrar) != 0) {
registrar.claim(msg.sender);
}
}
/**
* @dev Sets the name for a node.
* @param node The node to update.
* @param _name The name to set.
*/
function setName(bytes32 node, string _name) public owner_only(node) {
name[node] = _name;
}
}