Contract Overview |  ENS-ReverseRegistrar
Balance: 0 Ether
Ether Value: $0
Transactions: 2500 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xfdb33f8ac7ce72d7d4795dd8610e323b4c122fbbat txn 0x0c4bb1d89d06fed54f923a6b4b67c85000af887b64b1e2c02fb6680d2843c238
Token Balance:
 Latest 25 transactions from a total of 2500 transactions

TxHash Age From To Value [TxFee]
0x8877bf26228735399f4bf85ea93eb0911f9260ae41cebd07f67eae59a3e7ca517 hrs 21 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138927
0xa1ca470bc010b559c8f7e62ae9ca1330c1620dcc265ba986df5187ce055ff4b47 hrs 45 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000093514
0x654078a717aa21297603198628326b26df30ca16455326c7469de726550ce5f07 hrs 46 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000092234
0x38762d72dee1c25c6cd447f3c4b2180813b7d26ced8f75c882e8293dd38da03e8 hrs 21 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138927
0xef3e1985a68ed061f94a8d35a7e395654c2a2a73fe8c56aff969c14e1ab633dd8 hrs 21 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138927
0x5adf2b503bad440d471f957f1df127d9c4773002ae6d2cae045f0825bf8d81fd8 hrs 56 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000139695
0x5e92586308f11525552daf3fce2aac8814be084b9f2b4a3171a7e684335db3ae8 hrs 58 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000140079
0x1b9a8fd8b10a949b5353ee69a5bb4b6db449102e03cd8bce015f8dcf077de0359 hrs 1 min ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138543
0x7f62edb96f26422d2b6006e8c2f83868faa627d952f3e8730baacd4bd62ac91e9 hrs 2 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138543
0x46b1ebf985ec60b8bb2feb548b85f7b122adac8ec58ef38138a2cc18685659d49 hrs 2 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000184468
0x731bd121dfceb1c7fe50894d96f61ea43be48974cae95b43d3fe08ce6eff282e9 hrs 3 mins ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000186772
0xbacf8beac34e420300be8278063e1a3afb852bc6c66f127c1b5c98c5f03a88e514 hrs 42 mins ago0x016e8e8a1c0b3dbd3c3f60ca891b30758de72b8b  IN   ENS-ReverseRegistrar0 Ether0.000248286
0xfb58db38e24eceb44fed67327b848aea36f980096f0300ee42f04e5a4fea1cf916 hrs 7 mins ago0x016e8e8a1c0b3dbd3c3f60ca891b30758de72b8b  IN   ENS-ReverseRegistrar0 Ether0.000279774
0x660fc83eedb6d0f6630d2c85fedb10107d0c8e39e3108542e0f98e49efca5bfd16 hrs 11 mins ago0x016e8e8a1c0b3dbd3c3f60ca891b30758de72b8b  IN   ENS-ReverseRegistrar0 Ether0.000336144
0xb9773a111c0e10f85c402c6c7550a59edbd6aee4c4abe2fae901c7123079d17416 hrs 13 mins ago0x016e8e8a1c0b3dbd3c3f60ca891b30758de72b8b  IN   ENS-ReverseRegistrar0 Ether0.000226344
0x320fc0b0f727647f9528a73e9e07cf01af8f20c88231d6d178a6f15386c3c0d117 hrs 6 mins ago0x016e8e8a1c0b3dbd3c3f60ca891b30758de72b8b  IN   ENS-ReverseRegistrar0 Ether0.000335376
0xa478cb49c1d7aa4aa84f3cd7fc87f9d888b7c485739f3963debd12d3aa04ebea17 hrs 7 mins ago0x016e8e8a1c0b3dbd3c3f60ca891b30758de72b8b  IN   ENS-ReverseRegistrar0 Ether0.000248286
0xdecaadaa915e33ac9dbfbf11ec515b1383b2c70345137e27072053a763976a4f1 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138543
0xca3ae89681415bd9631dcfe5210ae702fdbb277e0605f4bbabd8074ee1da60981 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000140079
0x27da12f79523c3d5759ac277f21cd182d9c9af2983099f9bf3aaeefb0b2430c41 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000184724
0x9eb807b2bd853bb7edc5acd819fec140471d200274153a43c36c6041210c36ad1 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000092618
0x3aecab9f84cd9dbabcd0fb5856b57c4955785e4bc05b64d913949f59180744c91 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000093386
0x3c9d6dab253b308922b02dd816282a85ba12aa80ea9142309276506987fff7ac1 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.00009249
0x637e91949041832b35cb620017b11fc828db7df53fa764f0eb3f15ddd397ecb71 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000141615
0xb40cae6a22f2762b296519fbcd5406058554e14e2f8a3c72434b08572a1531771 day 6 hrs ago0xf08ced2be13cb9a12793da7ef6e23207b049af83  IN   ENS-ReverseRegistrar0 Ether0.000138543
[ 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.