Contract Overview | ENS-ReverseRegistrar
Balance: 0 Ether
Ether Value: $0
Transactions: 2193 txns
 Latest 25 txns From a total of 2193 Transactions

TxHash Age From To Value [TxFee]
0x44207081a689b05b4b4ca2a40e7739755a097411bfdb5167362ec12c67a1a7ef1 day 1 hr ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000231865
0x366e12c341fa369b522f12c84582249948ba5f17ed6d0fa96abbd42b762c349f2 days 15 hrs ago0x00c7917098c84f5515da3e5935809a20f25d3bb9  IN   ENS-ReverseRegistrar0 Ether0.000451325
0x3541b1318cc4cfc6b1d49a53287cea6e0ae1053edc0a4c54a2ca3fc6fbf94abe2 days 17 hrs ago0x418609536e33fa673fa43ca90d6ffb506d200913  IN   ENS-ReverseRegistrar0 Ether0.001890797
0xbc0fc28249a1c37f0b6429527f3364736fbd55aececf76ead439061d720f19d12 days 17 hrs ago0x418609536e33fa673fa43ca90d6ffb506d200913  IN   ENS-ReverseRegistrar0 Ether0.004305656
0x9b2c37163776d783e896647542912552cb6b6a8f8879d6ba57fed085b54e734d3 days 1 hr ago0x6803eeb3ea35edfbd06e5e68c63bbbc2ba528f41  IN   ENS-ReverseRegistrar0 Ether0.00052604
0x0cb0d26b33f196051bca4341a7033fb1d540decf72490aea1565adc3c17209b13 days 14 hrs ago0x649f6af3725ea65a9c80fb1d50294d8d989a3771  IN   ENS-ReverseRegistrar0 Ether0.000127152
0xf4058327caab58d0eed96d4af26884c7e4ae5c4fc906a62e61497ed26087d76e3 days 14 hrs ago0x649f6af3725ea65a9c80fb1d50294d8d989a3771  IN   ENS-ReverseRegistrar0 Ether0.000127152
0x0279b46b7438bb61c21a2bfb2892c7eb49b1b36cb4b71d9ba533ae19a00bb12b4 days 2 hrs ago0xff684104992bd26b6326bca4620d733526c0ddb1  IN   ENS-ReverseRegistrar0 Ether0.0000592305
0x58a449b320a46ac0b1d1643716e571dbde3c9813aacc574ccb6d67890d34e3204 days 7 hrs ago0xff684104992bd26b6326bca4620d733526c0ddb1  IN   ENS-ReverseRegistrar0 Ether0.0000580778
0x18bfd760425e8771dfc63da0fe9ae986cfc8ad547c617cb13636081ab2412cda5 days 4 hrs ago0x0985224a811e65c235dbf4a2c2117712aabe4e39  IN   ENS-ReverseRegistrar0 Ether0.000451645
0x4bc060caff81cb006db35a76de349b1e2ec708d2c3804212a000a44d6fd83dc55 days 4 hrs ago0x190019e7207e167c1b90dcce52675385df0e1fcd  IN   ENS-ReverseRegistrar0 Ether0.000451325
0x0909df4dfeb727319da3d0addd9b1c3016197697b6ed87f81f9601b4de9cc3255 days 7 hrs ago0x66c18ac12b1d4790939e84aa3476adfcd8284180  IN   ENS-ReverseRegistrar0 Ether0.00105016
0x641e3ca9d01c651a2b4f1b4dfeba95de1e9f479051cc11d8be9a3785eee51dad5 days 18 hrs ago0xcc6b9a2ef844002c413d992b980eeb7b08899a10  IN   ENS-ReverseRegistrar0 Ether0.004310904
0x0b523944680da1a8edef737319cd5cecdbbb53b00646f839efe1b5903abbc2735 days 22 hrs ago0x0103be68e6fa2579f452bd2dbc6866c455a8e533  IN   ENS-ReverseRegistrar0 Ether0.000185492
0x4c5f2c07eb0dcbf57776fface1c03f732e0c7c53ecdf41e8a1086818fd53c8b25 days 22 hrs ago0x0103be68e6fa2579f452bd2dbc6866c455a8e533  IN   ENS-ReverseRegistrar0 Ether0.000185492
0xeeef1da4b90139ed7693f510088ecf1252b4d30b4723194a0013fb278332a9c65 days 22 hrs ago0x0103be68e6fa2579f452bd2dbc6866c455a8e533  IN   ENS-ReverseRegistrar0 Ether0.00018498
0x1f473f3aadcea34825fafad07c06b87c8a81f16d3e9c6fd95d053d6adbbd834a5 days 22 hrs ago0x0103be68e6fa2579f452bd2dbc6866c455a8e533  IN   ENS-ReverseRegistrar0 Ether0.000186516
0x59166c079c1d99a2029e13af2ba565dbd026e9f4fcb8d380e31923ad843503a75 days 22 hrs ago0x0103be68e6fa2579f452bd2dbc6866c455a8e533  IN   ENS-ReverseRegistrar0 Ether0.000186004
0x6aa9ae01830f37728e88423254c5d1326fa168637aa38b5cfca7e44c1eaa6cc85 days 22 hrs ago0xf39508414e00ab896ad7ab3db31d00ab5b3535c5  IN   ENS-ReverseRegistrar0 Ether0.000138927
0xb013e337208264c5cb05c36158685f38b3c385a6ce1b7b7df0b6a8c225054bbc6 days 23 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.001890797
0x271b7dd96a932d9c369c1586d580d6212e26f06498cb271cd80b5e9e480857716 days 20 hrs agoTrestleWorks  IN   ENS-ReverseRegistrar0 Ether0.000184468
0xd1108df9b2b286c4cf73bfe0e504c8ed2d03c601ffea00538b014de885a8522c7 days 1 hr ago0x713b0f6d85981f2bd7868432bca120fdd11fd207  IN   ENS-ReverseRegistrar0 Ether0.000158394
0x52e5684f693eb2f41755f394ae62eb747368be5b915fab1668f415c4b6ebd3028 days 5 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000093386
0x4bcfe03440a8945dfd606550508c3cb9f9d72e1af7264446171d4bb5b6257da48 days 19 hrs ago0x6ea1eadb60d3c33113862035cf99fdc3854ca85e  IN   ENS-ReverseRegistrar0 Ether0.000631248
0x664d34cc0cc08b80e17600d359efd3184d7eff9da32ffc8b48083c58a40e05948 days 20 hrs ago0xc0bcd6d3ea3d2723c400d8f49788cfb8eb565c1b  IN   ENS-ReverseRegistrar0 Ether0.000301005
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Name: ReverseRegistrar
Compiler Text: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.10;

contract AbstractENS {
    function owner(bytes32 node) constant returns(address);
    function resolver(bytes32 node) constant returns(address);
    function ttl(bytes32 node) constant returns(uint64);
    function setOwner(bytes32 node, address owner);
    function setSubnodeOwner(bytes32 node, bytes32 label, address owner);
    function setResolver(bytes32 node, address resolver);
    function setTTL(bytes32 node, uint64 ttl);
}

contract Resolver {
    function setName(bytes32 node, string name) public;
}

/**
 * @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;

    AbstractENS public ens;
    mapping(bytes32=>string) public name;
    
    /**
     * @dev Constructor
     * @param ensAddr The address of the ENS registry.
     */
    function DefaultReverseResolver(AbstractENS ensAddr) {
        ens = ensAddr;

        // Assign ownership of the reverse record to our deployer
        var registrar = ReverseRegistrar(ens.owner(ADDR_REVERSE_NODE));
        if(address(registrar) != 0) {
            registrar.claim(msg.sender);
        }
    }

    /**
     * @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 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;
    }
}

contract ReverseRegistrar {
    // namehash('addr.reverse')
    bytes32 constant ADDR_REVERSE_NODE = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;

    AbstractENS public ens;
    Resolver public defaultResolver;

    /**
     * @dev Constructor
     * @param ensAddr The address of the ENS registry.
     * @param resolverAddr The address of the default reverse resolver.
     */
    function ReverseRegistrar(AbstractENS ensAddr, Resolver resolverAddr) {
        ens = ensAddr;
        defaultResolver = resolverAddr;

        // Assign ownership of the reverse record to our deployer
        var oldRegistrar = ReverseRegistrar(ens.owner(ADDR_REVERSE_NODE));
        if(address(oldRegistrar) != 0) {
            oldRegistrar.claim(msg.sender);
        }
    }
    
    /**
     * @dev Transfers ownership of the reverse ENS record associated with the
     *      calling account.
     * @param owner The address to set as the owner of the reverse record in ENS.
     * @return The ENS node hash of the reverse record.
     */
    function claim(address owner) returns (bytes32 node) {
        return claimWithResolver(owner, 0);
    }

    /**
     * @dev Transfers ownership of the reverse ENS record associated with the
     *      calling account.
     * @param owner The address to set as the owner of the reverse record in ENS.
     * @param resolver The address of the resolver to set; 0 to leave unchanged.
     * @return The ENS node hash of the reverse record.
     */
    function claimWithResolver(address owner, address resolver) returns (bytes32 node) {
        var label = sha3HexAddress(msg.sender);
        node = sha3(ADDR_REVERSE_NODE, label);
        var currentOwner = ens.owner(node);

        // Update the resolver if required
        if(resolver != 0 && resolver != ens.resolver(node)) {
            // Transfer the name to us first if it's not already
            if(currentOwner != address(this)) {
                ens.setSubnodeOwner(ADDR_REVERSE_NODE, label, this);
                currentOwner = address(this);
            }
            ens.setResolver(node, resolver);
        }

        // Update the owner if required
        if(currentOwner != owner) {
            ens.setSubnodeOwner(ADDR_REVERSE_NODE, label, owner);
        }

        return node;
    }

    /**
     * @dev Sets the `name()` record for the reverse ENS record associated with
     * the calling account. First updates the resolver to the default reverse
     * resolver if necessary.
     * @param name The name to set for this address.
     * @return The ENS node hash of the reverse record.
     */
    function setName(string name) returns (bytes32 node) {
        node = claimWithResolver(this, defaultResolver);
        defaultResolver.setName(node, name);
        return node;
    }

    /**
     * @dev Returns the node hash for a given account's reverse records.
     * @param addr The address to hash
     * @return The ENS node hash.
     */
    function node(address addr) constant returns (bytes32 ret) {
        return sha3(ADDR_REVERSE_NODE, sha3HexAddress(addr));
    }

    /**
     * @dev An optimised function to compute the sha3 of the lower-case
     *      hexadecimal representation of an Ethereum address.
     * @param addr The address to hash
     * @return The SHA3 hash of the lower-case hexadecimal encoding of the
     *         input address.
     */
    function sha3HexAddress(address addr) private returns (bytes32 ret) {
        addr; ret; // Stop warning us about unused variables
        assembly {
            let lookup := 0x3031323334353637383961626364656600000000000000000000000000000000
            let i := 40
        loop:
            i := sub(i, 1)
            mstore8(i, byte(and(addr, 0xf), lookup))
            addr := div(addr, 0x10)
            i := sub(i, 1)
            mstore8(i, byte(and(addr, 0xf), lookup))
            addr := div(addr, 0x10)
            jumpi(loop, i)
            ret := sha3(0, 40)
        }
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"resolver","type":"address"}],"name":"claimWithResolver","outputs":[{"name":"node","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"claim","outputs":[{"name":"node","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"defaultResolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"node","outputs":[{"name":"ret","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"}],"name":"setName","outputs":[{"name":"node","type":"bytes32"}],"payable":false,"type":"function"},{"inputs":[{"name":"ensAddr","type":"address"},{"name":"resolverAddr","type":"address"}],"payable":false,"type":"constructor"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000c57fe5b6040516040806108ae8339810160405280516020909101515b60008054600160a060020a03808516600160a060020a0319928316178084556001805486841694169390931790925560408051602090810185905281517f02571be30000000000000000000000000000000000000000000000000000000081527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26004820152915193909216926302571be39260248084019391929182900301818787803b15156100d257fe5b6102c65a03f115156100e057fe5b505060405151915050600160a060020a038116156101835780600160a060020a0316631e83409a336000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561017157fe5b6102c65a03f1151561017f57fe5b5050505b5b5050505b610717806101976000396000f300606060405236156100755763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630f5a546681146100775780631e83409a146100ab5780633f15457f146100d9578063828eab0e14610105578063bffbe61c14610131578063c47f00271461015f575bfe5b341561007f57fe5b610099600160a060020a03600435811690602435166101c7565b60408051918252519081900360200190f35b34156100b357fe5b610099600160a060020a03600435166104f4565b60408051918252519081900360200190f35b34156100e157fe5b6100e9610509565b60408051600160a060020a039092168252519081900360200190f35b341561010d57fe5b6100e9610518565b60408051600160a060020a039092168252519081900360200190f35b341561013957fe5b610099600160a060020a0360043516610527565b60408051918252519081900360200190f35b341561016757fe5b610099600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965061056195505050505050565b60408051918252519081900360200190f35b6000600060006101d63361066b565b604080516000805160206106cc83398151915281526020808201849052825191829003830182206000805493830181905284517f02571be3000000000000000000000000000000000000000000000000000000008152600481018390529451919850949650600160a060020a03909216936302571be39360248082019492918390030190829087803b151561026757fe5b6102c65a03f1151561027557fe5b505060405151915050600160a060020a0384161580159061032257506000805460408051602090810184905281517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018890529151600160a060020a0390931693630178b8bf936024808501949192918390030190829087803b15156102fc57fe5b6102c65a03f1151561030a57fe5b505060405151600160a060020a038681169116141590505b1561044b5730600160a060020a031681600160a060020a03161415156103d25760008054604080517f06ab59230000000000000000000000000000000000000000000000000000000081526000805160206106cc833981519152600482015260248101869052600160a060020a033081166044830152915191909216926306ab5923926064808201939182900301818387803b15156103bd57fe5b6102c65a03f115156103cb57fe5b5050503090505b60008054604080517f1896f70a00000000000000000000000000000000000000000000000000000000815260048101879052600160a060020a03888116602483015291519190921692631896f70a926044808201939182900301818387803b151561043957fe5b6102c65a03f1151561044757fe5b5050505b600160a060020a03818116908616146104eb5760008054604080517f06ab59230000000000000000000000000000000000000000000000000000000081526000805160206106cc833981519152600482015260248101869052600160a060020a038981166044830152915191909216926306ab5923926064808201939182900301818387803b15156104d957fe5b6102c65a03f115156104e757fe5b5050505b5b505092915050565b60006105018260006101c7565b90505b919050565b600054600160a060020a031681565b600154600160a060020a031681565b60006000805160206106cc8339815191526105418361066b565b60408051928352602083019190915280519182900301902090505b919050565b60015460009061057b903090600160a060020a03166101c7565b600154604080517f773722130000000000000000000000000000000000000000000000000000000081526004810184815260248201928352865160448301528651949550600160a060020a03909316936377372213938693889391929091606401906020850190808383821561060c575b80518252602083111561060c57601f1990920191602091820191016105ec565b505050905090810190601f1680156106385780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b151561065457fe5b6102c65a03f1151561066257fe5b5050505b919050565b60007f303132333435363738396162636465660000000000000000000000000000000060285b60001901600f841682901a815360109093049260001901600f841682901a815360108404935080610691576028600020925050505b919050560091d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2a165627a7a72305820b5a0fc071ea98f50e75fb7b3a50f25e129679487596a27697ba42f422dc0d6dc0029000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b0000000000000000000000005fbb459c49bb06083c33109fa4f14810ec2cf358

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b0000000000000000000000005fbb459c49bb06083c33109fa4f14810ec2cf358

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b
Arg [1] : 0000000000000000000000005fbb459c49bb06083c33109fa4f14810ec2cf358


   Swarm Source:
bzzr://b5a0fc071ea98f50e75fb7b3a50f25e129679487596a27697ba42f422dc0d6dc

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.