Skip to content

Instantly share code, notes, and snippets.

@kobigurk
Created May 5, 2015 12:36
Show Gist options
  • Save kobigurk/da15a2f1eaef47f173a3 to your computer and use it in GitHub Desktop.
Save kobigurk/da15a2f1eaef47f173a3 to your computer and use it in GitHub Desktop.
NameReg
import "owned";
contract NameReg is owned {
event AddressRegistered(address indexed account);
event AddressDeregistered(address indexed account);
function NameReg() {
toName[this] = "NameReg";
toAddress["NameReg"] = this;
AddressRegistered(this);
}
function register(bytes32 name) {
// Don't allow the same name to be overwritten.
if (toAddress[name] != address(0))
return;
// Unregister previous name if there was one.
if (toName[msg.sender] != "")
toAddress[toName[msg.sender]] = 0;
toName[msg.sender] = name;
toAddress[name] = msg.sender;
AddressRegistered(msg.sender);
}
function unregister() {
bytes32 n = toName[msg.sender];
if (n == "")
return;
AddressDeregistered(toAddress[n]);
toName[msg.sender] = "";
toAddress[n] = address(0);
}
function addressOf(bytes32 name) constant returns (address addr) {
return toAddress[name];
}
function nameOf(address addr) constant returns (bytes32 name) {
return toName[addr];
}
mapping (address => bytes32) toName;
mapping (bytes32 => address) toAddress;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment