Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview | ENS-ReverseRegistrar
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 1245 txns
  Latest 25 txns from a total Of 1245 transactions View All

TxHash Age From To Value [TxFee]
0xe3e819a084a2f78309c0466cfab793f2a48c2c86b3feaab3f4235ab69a40d7e35 hrs 32 mins ago0x6a3762e7dbba72f1d8adab2e7c408a144556d7c8  IN   ENS-ReverseRegistrar0 Ether0.000630864
0x2f5dd92da07b81edda3c081df87dd32612c272be144f6e4ab220e7ec7e295dca6 hrs 35 mins ago0xfa5f67f7b7cbc2d02e456071ba425eb350c7f1e1  IN   ENS-ReverseRegistrar0 Ether0.00001054
0x8128b411fbe690122320647dddf5daf34c8cb4019aada5d051dacdebaa3062c07 hrs 14 mins ago0x5a3ae28d5c9ae921412d516cb86a7f475da0c21e  IN   ENS-ReverseRegistrar0 Ether0.000010508
0x82739ea93fb8ba55fe48486ff41546c02c32e696910845389f7869ac72f256447 hrs 14 mins ago0xdb5d32743a84691d9c932cb79ced8b5a4b82c4e0  IN   ENS-ReverseRegistrar0 Ether0.000105848
0xbb29d5a56be8078ce20fcd4e249581790d6d8126dc60e6ea7d7461c4c4eaa3138 hrs 38 mins ago0x19a7398f7c5a54cdd7d934bacc50a9ce7fff3a85  IN   ENS-ReverseRegistrar0 Ether0.0003
0x6fb8367f94a8e264b9a4f5c589f7059130b60fffaba1df11ef987941890a353e14 hrs 46 mins ago0x97862ae63a329d6f282a9b8848840363cf264351  IN   ENS-ReverseRegistrar0 Ether0.00092234
0x075cc7e4389d39fbd0a6b314816e58bef71ed6f1f7da4bac517d59e8b98e538614 hrs 46 mins ago0x97862ae63a329d6f282a9b8848840363cf264351  IN   ENS-ReverseRegistrar0 Ether0.0009249
0x5a6cf14591e308fb46aea33f0d223f020a1fed52e578d483249a1fa3cb8ed49a14 hrs 48 mins ago0x97862ae63a329d6f282a9b8848840363cf264351  IN   ENS-ReverseRegistrar0 Ether0.00210288
0x6255e96ca6303a7d1a0c98431ec288dcd7ff0092174715775037d93a6d5c282a15 hrs 43 mins ago0xa55e8dfb214b6d40f3dedb8de2bf0ccf91327aba  IN   ENS-ReverseRegistrar0 Ether0.00210288
0x436e12ed58dbe690743fef497ac632129f3912f0a45125613709e2c045939eb217 hrs 18 mins ago0x9830242fe206809b66f57a150311aa925b96ac59  IN   ENS-ReverseRegistrar0 Ether0.00210928
0x7f35f5a9f0c84586cbc940d2254e8574f869ed79651f61344015b44825a7991f22 hrs 2 mins ago0x9da01160c28096ae89d952cf18d4d191733234e4  IN   ENS-ReverseRegistrar0 Ether0.0009249
0xcf82b7cb2c4498a238a91b1eece1bc18115156a12213c5b9f4b672b728cc6bce22 hrs 14 mins ago0x9da01160c28096ae89d952cf18d4d191733234e4  IN   ENS-ReverseRegistrar0 Ether0.00210032
0x38df64696f59d0245d188c981474d96dcc63cc63fb58c4b61d35336e345305091 day 5 hrs ago0xc3eb16fda8b464b877ba99b0e9d6fb5ea038b2f2  IN   ENS-ReverseRegistrar0 Ether0.00027024
0x26edd05ce165fa2b05ffa30a8d570c0330e9440f7b8bee1d055799297d48baa11 day 5 hrs ago0xc3eb16fda8b464b877ba99b0e9d6fb5ea038b2f2  IN   ENS-ReverseRegistrar0 Ether0.000158172
0xef442f7b69c5b8f124ae43d61f058bcfa63984d7e2a4e759eca44708874833df1 day 5 hrs ago0x9d50ec8ca607cc814e0074754c320fcad5dc94c3  IN   ENS-ReverseRegistrar0 Ether0.001191475844
0x6f3d8a8c1a298849fa4d0ef931994015f5ec13bdd94a598bcc84984c6564edd21 day 10 hrs ago0xdc2cf5cbfa31958ed32c3ace696ee6bf1a6a19f4  IN   ENS-ReverseRegistrar0 Ether0.000105272
0x601bdaf208e74ee5858ca7193e6e51dcb9192228f86ac0a6b04e43f8d9c83bd91 day 11 hrs ago0x06f89a214c9cea582f176ade1afc6024bfc13472  IN   ENS-ReverseRegistrar0 Ether0.00210928
0x859ed9f3f63b20309e4d052ad7a56b6661cfc4c3a007fa7da75de500384d2b8d1 day 16 hrs ago0xc33c08e15f42e81f4d7d7fae5d0bc36ed81b5956  IN   ENS-ReverseRegistrar0 Ether0.00210032
0x87118368f4e3cd6837d1a30d996abb24df671ff705242a839a3357c088c9e13b1 day 23 hrs ago0xdcce962cb8e45b449cbcb2373c516994b008cb0c  IN   ENS-ReverseRegistrar0 Ether0.0011594
0xc4d05d533e94b899dba1f0c581d39732efbdebbc74291a4fe4ad11c6c3abfb952 days 31 mins ago0xd5a7a3581ea1132e6161bf6364fc2bfb7ca40bc7  IN   ENS-ReverseRegistrar0 Ether0.00105336
0xed7b82eee1365ce3f654556e1826e16b71ec5c74457f9022bb7f991f5b4bf4822 days 10 hrs ago0x88f4602b2fc06acc890aea6de5ce71428af5c770  IN   ENS-ReverseRegistrar0 Ether0.00210288
0xaa8379b45783fc907c3cf443a7a955aba339ef99713304fed0f6b1bc2769fec72 days 11 hrs ago0x5a422bd146405248bdb0b4ea4ad954215806647c  IN   ENS-ReverseRegistrar0 Ether0.00105336
0xc6e8b2c554dfce943d1e637961f7e76b63ccd8428d3a963ebbec352c979fd8582 days 12 hrs ago0xf14a5efd3e95af70db08f6d2be473f2f9aea22c0  IN   ENS-ReverseRegistrar0 Ether0.00210672
0x2d8830e7312fac601dddfe5d9b75f53374558fd1c5cf1d434b210cc89dbde9ac2 days 15 hrs ago0x4038c8bcddc8aa5910b8cde9c1bfe7379aaeae5e  IN   ENS-ReverseRegistrar0 Ether0.00210928
0xb923d11ecf75e6ae717f7d0463edebe32f37f9d1c981499c8e10214e49400d1d2 days 16 hrs ago0xfac2014b124a564aa35ac892b9ef1ca9ee2e1f86  IN   ENS-ReverseRegistrar0 Ether0.0001476496
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: ReverseRegistrar
Compiler Version: 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

-----Decoded View---------------
Found 2 constructor arguments :
Arg [0] : 000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b
Arg [1] : 0000000000000000000000005fbb459c49bb06083c33109fa4f14810ec2cf358


   Swarm Source:
bzzr://b5a0fc071ea98f50e75fb7b3a50f25e129679487596a27697ba42f422dc0d6dc
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.