Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 711 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x0904dac3347ea47d208f3fd67402d039a3b99859at txn 0xb67cad292e7d78e9afe73dbc9cf8f39085e1901bedfb8d66f7ecb0e80b357916
 Latest 25 transactions from a total of 711 transactions

TxHash Age From To Value [TxFee]
0x03e3f329518feb7e2fd701a4e5e1f426c00eb6d14b9c64299090c73215620bf21 day 6 hrs ago0x8aeb33091992fcd353ced50b51925dc3242560e8  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000368826
0xd5a10a97fca005495818d37bede7bc4b742871e0e09a1a89deaa0a041cb1b1981 day 10 hrs ago0x73195adb53bc2d269bf93556a80dc591ddbda6d4  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000489976
0x17d38c756c13e90ee9606cb8dd328d7cffd232edc0793d2762b167e70cf3438e2 days 11 hrs ago0x6a479ad81f2d3ea777cd7e7b6474bb2d96f03141  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000732276
0x721828e930334f5c51ebb7ade8aebbfb009e5c6881f28624bf2cc6ed1de230393 days 1 hr ago0x2529ee848fc510fce5a6c1bd346c26bc468d2864  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.01 Ether0.00259918
0x66cd9f47d0e51a551447c2b0d92035e565e77ce3ee83a914126dfd17963c46eb3 days 1 hr ago0x2529ee848fc510fce5a6c1bd346c26bc468d2864  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00204194
0xdcdae2fdb415c9d610ba0bb844c70b62fe97f196a69f50ac84eca83069ec72f93 days 6 hrs ago0x965274b3e38f7dba270c6f61b35a4ce85bec6906  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00024422
0x069afd1aeaea01fa920f642a6ebf578aafc5262591fd901beb8ef2ef9edeea0a5 days 4 hrs ago0xf8dbbd48a5295d0757e2167a804022f03a1506cd  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.0012211
0x95abc8da2af78b2108ad6776505e0dd4ac2bf48bb22d0229133e722bf18fcf247 days 22 hrs ago0xdd857d2f4e48242594a31798dc12ffa3042cfc9a  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00024422
0xcf8b680585eb66ff3e9dc7babe41bd5ecc95b81de3ac275a5d7915aee5e950f58 days 4 mins ago0x153bc08693246176462e0599eecde10144cb66b4  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000245884
0xad03ee7fe58479e89ca57693bb39aa92be13cdf67c770b477db953b00c24213a9 days 15 hrs ago0x43689531907482bee7e650d18411e284a7337a66  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000733488
0x011122f541cb0e62075595e0503cbb551f008150626e5dd69407e35f37018c0810 days 3 hrs ago0x17b83ec142be8c5054cd371644744c8048f006eb  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000244604
0xce11d233d9da637c8851e58d5fb13dc2f9af4c63576cab40f3e5b3989c9e15f013 days 16 hrs ago0xc0bc051eb97fb2bcb70759582b171b2a9b858c14  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000487928
0x120c38f4ddabae4e085cfc01821f626f6934d746d40ecc885dd1901c4bc3356a15 days 10 hrs ago0x47b6cba2ca9e97060558236b6dd6394b32759f75  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000367098
0xdc82607e40785365eae66365fd6cf2ea9278efceaa1eb03e415a046ca81218db17 days 5 hrs ago0x85797ebc44fda24a2ea56dac731aa656eacbd527  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000243836
0x777df6a4d9c84fae6667d6d68bb47a9dff7a2a6d51b9e817d7d24ad2fe9ded0f18 days 8 hrs ago0x052091ed594930291f31f335a2ab2b3ebf7b8486  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000366138
0x101c4c61baf6cc6b936e28440236e0fdf28dbb846e3e16f2550189d515a3247620 days 11 hrs ago0x993c6f31bb578d29a2e87267e6a586dcb97f4902  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.004 Ether0.000416061
0x13a285f0a8a5ff44c8f6a7d8a01b840ae00dc40c59e8283e46e6e06a258e2d1420 days 11 hrs ago0x8927b5b628da9e77c9aeafdbcd4b6c7d2fec91ea  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.004 Ether0.000416061
0x0e42d59f04fedcccc7d338c594e42ac0d40858b28f089c83d8f62b9de5dd502822 days 5 hrs ago0xd27e8fd8638613b40489f2132d75aefe3a0a41bd  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.005003886
0x4fa3d63d271eaa0957f7784d0567615b55aefb93f5b3f24c8bbd9242803e548722 days 8 hrs ago0x0f2ae372d07694f44c43b3b55b7e1d9dbacb567f  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00500651
0xda7c4f8242720b1c8e5961586a449658eaec390af0f6481759a0ccf63b44ed9a22 days 21 hrs ago0x4790f052214bb4d5bf8b02c1979ca7baef556fa0  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.005011758
0x47e0684f163f955bc2b17f393ccdce6ee933080bb3266999d73e3eca5357466123 days 6 hrs ago0x3b8a1e910240737c9628043398eb347c430d18fe  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00126317599
0xf517eada8528751c5f0a4e34f344c1e44f0dfc959a01c62c7c7c381c354416f823 days 12 hrs ago0x104e763c12bf2b38f0d3fef6debb4bcadd7d45e6  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000488184
0x92356ba37756d882b61be84913bdb4f6006079709598a2a5430a6eaa11823bb024 days 6 hrs ago0xa5f082c87af4dabed8eeca80a87a346127655bc7  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.00005 Ether0.000416637
0xd560d98e60f74d0d026821e0dac0fc46401294b20e36717795ddd1c63468621824 days 23 hrs ago0x754d492d18504ab4a74300b18ef71b3095b381d6  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000366138
0xbe5e26b757223af979b27930e0b06d656b08b388ec841a50e8b209a037e587aa24 days 23 hrs ago0x754d492d18504ab4a74300b18ef71b3095b381d6  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.005 Ether0.000390918
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x721828e930334f5c51ebb7ade8aebbfb009e5c6881f28624bf2cc6ed1de2303970727543 days 1 hr ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x2529ee848fc510fce5a6c1bd346c26bc468d28640.01 Ether
0x101c4c61baf6cc6b936e28440236e0fdf28dbb846e3e16f2550189d515a32476697390120 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xe0a97c2634c0b1d2530b2f92e46697460692ca0c0.00396 Ether
0x101c4c61baf6cc6b936e28440236e0fdf28dbb846e3e16f2550189d515a32476697390120 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00004 Ether
0x13a285f0a8a5ff44c8f6a7d8a01b840ae00dc40c59e8283e46e6e06a258e2d14697384520 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xe0a97c2634c0b1d2530b2f92e46697460692ca0c0.00396 Ether
0x13a285f0a8a5ff44c8f6a7d8a01b840ae00dc40c59e8283e46e6e06a258e2d14697384520 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00004 Ether
0x92356ba37756d882b61be84913bdb4f6006079709598a2a5430a6eaa11823bb0695153824 days 6 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x92356ba37756d882b61be84913bdb4f6006079709598a2a5430a6eaa11823bb0695153824 days 6 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0xbe5e26b757223af979b27930e0b06d656b08b388ec841a50e8b209a037e587aa694718324 days 23 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.005 Ether
0xaf086e364ed2785a5564bedd497b59da48d0374bb09c1274663d9598677ab28d693991826 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x9c78a2224b763ee6bb652de945e70d22561e8afd0.1485 Ether
0xaf086e364ed2785a5564bedd497b59da48d0374bb09c1274663d9598677ab28d693991826 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0015 Ether
0x5d8d7491ab4f82de99733607bcbfd3a30795d84742518f253556ed1af40b3eb5693969726 days 5 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x9c78a2224b763ee6bb652de945e70d22561e8afd0.1485 Ether
0x5d8d7491ab4f82de99733607bcbfd3a30795d84742518f253556ed1af40b3eb5693969726 days 5 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0015 Ether
0x07b9fb1a36049cc8d3fa91801d825794e57dfa1c1f617bba0608045e10e7018c693159727 days 14 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x07b9fb1a36049cc8d3fa91801d825794e57dfa1c1f617bba0608045e10e7018c693159727 days 14 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x619e5fdf9e713172a92dac81828354d568258be5be59db02d0d9dfd86e9a8537692750628 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x619e5fdf9e713172a92dac81828354d568258be5be59db02d0d9dfd86e9a8537692750628 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0xa8aac795790bb0560b913e31fab3ac53aeb36deda6a4f9f1062b353a1e6fdfc2692750628 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0xa8aac795790bb0560b913e31fab3ac53aeb36deda6a4f9f1062b353a1e6fdfc2692750628 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x693434f43747a5890899020b993a4953c0e771a0b0cb232bb1095fe22e79a82f687678236 days 20 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x693434f43747a5890899020b993a4953c0e771a0b0cb232bb1095fe22e79a82f687678236 days 20 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x6e66eb78c1499c005ba55c2cb0c19bf225579188597f70d6653f72c30c42569b686268339 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xc22734f7ff7e44728ebe043fe8626862254756d60.00294 Ether
0x6e66eb78c1499c005ba55c2cb0c19bf225579188597f70d6653f72c30c42569b686268339 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00006 Ether
0x433f2695dafb5b9c08404cd06f48a3c95911510d7260a9bfcc48be5d7cac95f1686267639 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xc22734f7ff7e44728ebe043fe8626862254756d60.00294 Ether
0x433f2695dafb5b9c08404cd06f48a3c95911510d7260a9bfcc48be5d7cac95f1686267639 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00006 Ether
0x82bdb21fa01189d51005c63c574df9be9e744272714b3f61be6180acccf0fed0686266039 days 4 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xc22734f7ff7e44728ebe043fe8626862254756d60.00294 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: SubdomainRegistrar
Compiler Text: v0.4.21-nightly.2018.3.6+commit.a9e02acc
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.17;

// File: contracts/ENS.sol

/**
 * The ENS registry contract.
 */
contract ENS {
    // Logged when the owner of a node assigns a new owner to a subnode.
    event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);

    // Logged when the owner of a node transfers ownership to a new account.
    event Transfer(bytes32 indexed node, address owner);

    // Logged when the resolver for a node changes.
    event NewResolver(bytes32 indexed node, address resolver);

    // Logged when the TTL of a node changes
    event NewTTL(bytes32 indexed node, uint64 ttl);

    struct Record {
        address owner;
        address resolver;
        uint64 ttl;
    }

    mapping (bytes32 => Record) records;

    // Permits modifications only by the owner of the specified node.
    modifier only_owner(bytes32 node) {
        if (records[node].owner != msg.sender) throw;
        _;
    }

    /**
     * Constructs a new ENS registrar.
     */
    function ENS() public {
        records[0].owner = msg.sender;
    }

    /**
     * Returns the address that owns the specified node.
     */
    function owner(bytes32 node) public constant returns (address) {
        return records[node].owner;
    }

    /**
     * Returns the address of the resolver for the specified node.
     */
    function resolver(bytes32 node) public constant returns (address) {
        return records[node].resolver;
    }

    /**
     * Returns the TTL of a node, and any records associated with it.
     */
    function ttl(bytes32 node) public constant returns (uint64) {
        return records[node].ttl;
    }

    /**
     * Transfers ownership of a node to a new address. May only be called by the current
     * owner of the node.
     * @param node The node to transfer ownership of.
     * @param owner The address of the new owner.
     */
    function setOwner(bytes32 node, address owner) public only_owner(node) {
        Transfer(node, owner);
        records[node].owner = owner;
    }

    /**
     * Transfers ownership of a subnode sha3(node, label) to a new address. May only be
     * called by the owner of the parent node.
     * @param node The parent node.
     * @param label The hash of the label specifying the subnode.
     * @param owner The address of the new owner.
     */
    function setSubnodeOwner(bytes32 node, bytes32 label, address owner) public only_owner(node) {
        var subnode = sha3(node, label);
        NewOwner(node, label, owner);
        records[subnode].owner = owner;
    }

    /**
     * Sets the resolver address for the specified node.
     * @param node The node to update.
     * @param resolver The address of the resolver.
     */
    function setResolver(bytes32 node, address resolver) public only_owner(node) {
        NewResolver(node, resolver);
        records[node].resolver = resolver;
    }

    /**
     * Sets the TTL for the specified node.
     * @param node The node to update.
     * @param ttl The TTL in seconds.
     */
    function setTTL(bytes32 node, uint64 ttl) public only_owner(node) {
        NewTTL(node, ttl);
        records[node].ttl = ttl;
    }
}

// File: contracts/HashRegistrarSimplified.sol

contract Deed {
    address public owner;
    address public previousOwner;
}

contract HashRegistrarSimplified {
    enum Mode { Open, Auction, Owned, Forbidden, Reveal, NotYetAvailable }

    bytes32 public rootNode;

    function entries(bytes32 _hash) public view returns (Mode, address, uint, uint, uint);
    function transfer(bytes32 _hash, address newOwner) public;
}

// File: contracts/RegistrarInterface.sol

contract RegistrarInterface {
    event OwnerChanged(bytes32 indexed label, address indexed oldOwner, address indexed newOwner);
    event DomainConfigured(bytes32 indexed label);
    event DomainUnlisted(bytes32 indexed label);
    event NewRegistration(bytes32 indexed label, string subdomain, address indexed owner, address indexed referrer, uint price);
    event RentPaid(bytes32 indexed label, string subdomain, uint amount, uint expirationDate);

    // InterfaceID of these four methods is 0xc1b15f5a
    function query(bytes32 label, string subdomain) public view returns (string domain, uint signupFee, uint rent, uint referralFeePPM);
    function register(bytes32 label, string subdomain, address owner, address referrer, address resolver) public payable;

    function rentDue(bytes32 label, string subdomain) public view returns (uint timestamp);
    function payRent(bytes32 label, string subdomain) public payable;
}

// File: contracts/Resolver.sol

/**
 * @dev A basic interface for ENS resolvers.
 */
contract Resolver {
    function supportsInterface(bytes4 interfaceID) public pure returns (bool);
    function addr(bytes32 node) public view returns (address);
    function setAddr(bytes32 node, address addr) public;
}

// File: contracts/SubdomainRegistrar.sol

/**
 * @dev Implements an ENS registrar that sells subdomains on behalf of their owners.
 *
 * Users may register a subdomain by calling `register` with the name of the domain
 * they wish to register under, and the label hash of the subdomain they want to
 * register. They must also specify the new owner of the domain, and the referrer,
 * who is paid an optional finder's fee. The registrar then configures a simple
 * default resolver, which resolves `addr` lookups to the new owner, and sets
 * the `owner` account as the owner of the subdomain in ENS.
 *
 * New domains may be added by calling `configureDomain`, then transferring
 * ownership in the ENS registry to this contract. Ownership in the contract
 * may be transferred using `transfer`, and a domain may be unlisted for sale
 * using `unlistDomain`. There is (deliberately) no way to recover ownership
 * in ENS once the name is transferred to this registrar.
 *
 * Critically, this contract does not check one key property of a listed domain:
 *
 * - Is the name UTS46 normalised?
 *
 * User applications MUST check these two elements for each domain before
 * offering them to users for registration.
 *
 * Applications should additionally check that the domains they are offering to
 * register are controlled by this registrar, since calls to `register` will
 * fail if this is not the case.
 */
contract SubdomainRegistrar is RegistrarInterface {

    // namehash('eth')
    bytes32 constant public TLD_NODE = 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae;

    bool public stopped = false;
    address public registrarOwner;
    address public migration;

    ENS public ens;
    HashRegistrarSimplified public hashRegistrar;

    struct Domain {
        string name;
        address owner;
        address transferAddress;
        uint price;
        uint referralFeePPM;
    }

    mapping (bytes32 => Domain) domains;

    modifier new_registrar() {
        require(ens.owner(TLD_NODE) != address(hashRegistrar));
        _;
    }

    modifier owner_only(bytes32 label) {
        require(owner(label) == msg.sender);
        _;
    }

    modifier not_stopped() {
        require(!stopped);
        _;
    }

    modifier registrar_owner_only() {
        require(msg.sender == registrarOwner);
        _;
    }

    event TransferAddressSet(bytes32 indexed label, address addr);
    event DomainTransferred(bytes32 indexed label, string name);

    function SubdomainRegistrar(ENS _ens) public {
        ens = _ens;
        hashRegistrar = HashRegistrarSimplified(ens.owner(TLD_NODE));
        registrarOwner = msg.sender;
    }

    /**
     * @dev owner returns the address of the account that controls a domain.
     *      Initially this is a null address. If the name has been
     *      transferred to this contract, then the internal mapping is consulted
     *      to determine who controls it. If the owner is not set,
     *      the previous owner of the deed is returned.
     * @param label The label hash of the deed to check.
     * @return The address owning the deed.
     */
    function owner(bytes32 label) public view returns (address) {

        if (domains[label].owner != 0x0) {
            return domains[label].owner;
        }

        Deed domainDeed = deed(label);
        if (domainDeed.owner() != address(this)) {
            return 0x0;
        }

        return domainDeed.previousOwner();
    }

    /**
     * @dev Transfers internal control of a name to a new account. Does not update
     *      ENS.
     * @param name The name to transfer.
     * @param newOwner The address of the new owner.
     */
    function transfer(string name, address newOwner) public owner_only(keccak256(name)) {
        bytes32 label = keccak256(name);
        OwnerChanged(keccak256(name), domains[label].owner, newOwner);
        domains[label].owner = newOwner;
    }

    /**
     * @dev Sets the resolver record for a name in ENS.
     * @param name The name to set the resolver for.
     * @param resolver The address of the resolver
     */
    function setResolver(string name, address resolver) public owner_only(keccak256(name)) {
        bytes32 label = keccak256(name);
        bytes32 node = keccak256(TLD_NODE, label);
        ens.setResolver(node, resolver);
    }

    /**
     * @dev Configures a domain for sale.
     * @param name The name to configure.
     * @param price The price in wei to charge for subdomain registrations
     * @param referralFeePPM The referral fee to offer, in parts per million
     */
    function configureDomain(string name, uint price, uint referralFeePPM) public {
        configureDomainFor(name, price, referralFeePPM, msg.sender, 0x0);
    }

    /**
     * @dev Configures a domain, optionally transferring it to a new owner.
     * @param name The name to configure.
     * @param price The price in wei to charge for subdomain registrations.
     * @param referralFeePPM The referral fee to offer, in parts per million.
     * @param _owner The address to assign ownership of this domain to.
     * @param _transfer The address to set as the transfer address for the name
     *        when the permanent registrar is replaced. Can only be set to a non-zero
     *        value once.
     */
    function configureDomainFor(string name, uint price, uint referralFeePPM, address _owner, address _transfer) public owner_only(keccak256(name)) {
        bytes32 label = keccak256(name);
        Domain storage domain = domains[label];

        // Don't allow changing the transfer address once set. Treat 0 as "don't change" for convenience.
        require(domain.transferAddress == 0 || _transfer == 0 || domain.transferAddress == _transfer);

        if (domain.owner != _owner) {
            domain.owner = _owner;
        }

        if (keccak256(domain.name) != label) {
            // New listing
            domain.name = name;
        }

        domain.price = price;
        domain.referralFeePPM = referralFeePPM;

        if (domain.transferAddress != _transfer && _transfer != 0) {
            domain.transferAddress = _transfer;
            TransferAddressSet(label, _transfer);
        }

        DomainConfigured(label);
    }

    /**
     * @dev Sets the transfer address of a domain for after an ENS update.
     * @param name The name for which to set the transfer address.
     * @param transfer The address to transfer to.
     */
    function setTransferAddress(string name, address transfer) public owner_only(keccak256(name)) {
        bytes32 label = keccak256(name);
        Domain storage domain = domains[label];

        require(domain.transferAddress == 0x0);

        domain.transferAddress = transfer;
        TransferAddressSet(label, transfer);
    }

    /**
     * @dev Unlists a domain
     * May only be called by the owner.
     * @param name The name of the domain to unlist.
     */
    function unlistDomain(string name) public owner_only(keccak256(name)) {
        bytes32 label = keccak256(name);
        Domain storage domain = domains[label];
        DomainUnlisted(label);

        domain.name = '';
        domain.owner = owner(label);
        domain.price = 0;
        domain.referralFeePPM = 0;
    }

    /**
     * @dev Returns information about a subdomain.
     * @param label The label hash for the domain.
     * @param subdomain The label for the subdomain.
     * @return domain The name of the domain, or an empty string if the subdomain
     *                is unavailable.
     * @return price The price to register a subdomain, in wei.
     * @return rent The rent to retain a subdomain, in wei per second.
     * @return referralFeePPM The referral fee for the dapp, in ppm.
     */
    function query(bytes32 label, string subdomain) public view returns (string domain, uint price, uint rent, uint referralFeePPM) {
        bytes32 node = keccak256(TLD_NODE, label);
        bytes32 subnode = keccak256(node, keccak256(subdomain));

        if (ens.owner(subnode) != 0) {
            return ('', 0, 0, 0);
        }

        Domain data = domains[label];
        return (data.name, data.price, 0, data.referralFeePPM);
    }

    /**
     * @dev Registers a subdomain.
     * @param label The label hash of the domain to register a subdomain of.
     * @param subdomain The desired subdomain label.
     * @param subdomainOwner The account that should own the newly configured subdomain.
     * @param referrer The address of the account to receive the referral fee.
     */
    function register(bytes32 label, string subdomain, address subdomainOwner, address referrer, address resolver) public not_stopped payable {
        bytes32 domainNode = keccak256(TLD_NODE, label);
        bytes32 subdomainLabel = keccak256(subdomain);

        // Subdomain must not be registered already.
        require(ens.owner(keccak256(domainNode, subdomainLabel)) == address(0));

        Domain storage domain = domains[label];

        // Domain must be available for registration
        require(keccak256(domain.name) == label);

        // User must have paid enough
        require(msg.value >= domain.price);

        // Send any extra back
        if (msg.value > domain.price) {
            msg.sender.transfer(msg.value - domain.price);
        }

        // Send any referral fee
        uint256 total = domain.price;
        if (domain.referralFeePPM * domain.price > 0 && referrer != 0 && referrer != domain.owner) {
            uint256 referralFee = (domain.price * domain.referralFeePPM) / 1000000;
            referrer.transfer(referralFee);
            total -= referralFee;
        }

        // Send the registration fee
        if (total > 0) {
            domain.owner.transfer(total);
        }

        // Register the domain
        if (subdomainOwner == 0) {
            subdomainOwner = msg.sender;
        }
        doRegistration(domainNode, subdomainLabel, subdomainOwner, Resolver(resolver));

        NewRegistration(label, subdomain, subdomainOwner, referrer, domain.price);
    }

    function doRegistration(bytes32 node, bytes32 label, address subdomainOwner, Resolver resolver) internal {
        // Get the subdomain so we can configure it
        ens.setSubnodeOwner(node, label, this);

        bytes32 subnode = keccak256(node, label);
        // Set the subdomain's resolver
        ens.setResolver(subnode, resolver);

        // Set the address record on the resolver
        resolver.setAddr(subnode, subdomainOwner);

        // Pass ownership of the new subdomain to the registrant
        ens.setOwner(subnode, subdomainOwner);
    }

    function supportsInterface(bytes4 interfaceID) public pure returns (bool) {
        return (
            (interfaceID == 0x01ffc9a7) // supportsInterface(bytes4)
            || (interfaceID == 0xc1b15f5a) // RegistrarInterface
        );
    }

    function rentDue(bytes32 label, string subdomain) public view returns (uint timestamp) {
        return 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
    }

    /**
     * @dev Upgrades the domain to a new registrar.
     * @param name The name of the domain to transfer.
     */
    function upgrade(string name) public owner_only(keccak256(name)) new_registrar {
        bytes32 label = keccak256(name);
        address transfer = domains[label].transferAddress;

        require(transfer != 0x0);

        delete domains[label];

        hashRegistrar.transfer(label, transfer);
        DomainTransferred(label, name);
    }


    /**
     * @dev Stops the registrar, disabling configuring of new domains.
     */
    function stop() public not_stopped registrar_owner_only {
        stopped = true;
    }

    /**
     * @dev Sets the address where domains are migrated to.
     * @param _migration Address of the new registrar.
     */
    function setMigrationAddress(address _migration) public registrar_owner_only {
        require(stopped);
        migration = _migration;
    }

    /**
     * @dev Migrates the domain to a new registrar.
     * @param name The name of the domain to migrate.
     */
    function migrate(string name) public owner_only(keccak256(name)) {
        require(stopped);
        require(migration != 0x0);

        bytes32 label = keccak256(name);
        Domain storage domain = domains[label];

        hashRegistrar.transfer(label, migration);

        SubdomainRegistrar(migration).configureDomainFor(
            domain.name,
            domain.price,
            domain.referralFeePPM,
            domain.owner,
            domain.transferAddress
        );

        delete domains[label];

        DomainTransferred(label, name);
    }

    function transferOwnership(address newOwner) public registrar_owner_only {
        registrarOwner = newOwner;
    }

    function payRent(bytes32 label, string subdomain) public payable {
        revert();
    }

    function deed(bytes32 label) internal view returns (Deed) {
        var (,deedAddress,,,) = hashRegistrar.entries(label);
        return Deed(deedAddress);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"label","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"migration","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registrarOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"label","type":"bytes32"},{"name":"subdomain","type":"string"}],"name":"query","outputs":[{"name":"domain","type":"string"},{"name":"price","type":"uint256"},{"name":"rent","type":"uint256"},{"name":"referralFeePPM","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hashRegistrar","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"label","type":"bytes32"},{"name":"subdomain","type":"string"},{"name":"subdomainOwner","type":"address"},{"name":"referrer","type":"address"},{"name":"resolver","type":"address"}],"name":"register","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_migration","type":"address"}],"name":"setMigrationAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"label","type":"bytes32"},{"name":"subdomain","type":"string"}],"name":"rentDue","outputs":[{"name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TLD_NODE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"}],"name":"migrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"label","type":"bytes32"},{"name":"subdomain","type":"string"}],"name":"payRent","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"referralFeePPM","type":"uint256"},{"name":"_owner","type":"address"},{"name":"_transfer","type":"address"}],"name":"configureDomainFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"referralFeePPM","type":"uint256"}],"name":"configureDomain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"transfer","type":"address"}],"name":"setTransferAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"}],"name":"unlistDomain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"newOwner","type":"address"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ens","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"addr","type":"address"}],"name":"TransferAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"name","type":"string"}],"name":"DomainTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"},{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"}],"name":"DomainConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"}],"name":"DomainUnlisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"subdomain","type":"string"},{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"referrer","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"NewRegistration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"subdomain","type":"string"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"expirationDate","type":"uint256"}],"name":"RentPaid","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260008060006101000a81548160ff021916908315150217905550341561002957600080fd5b604051602080620037708339810160405280805190602001909190505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be37f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae6001026040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561014257600080fd5b5af1151561014f57600080fd5b50505060405180519050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061358580620001eb6000396000f300606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461013857806302571be31461019257806307da68f5146101f95780630da957611461020e5780631705a3bd1461026b5780631cb82d79146102c05780632eef3d6514610315578063387c0cb41461040d5780633f15457f146104625780634254b155146104b75780634732a7dc14610573578063660b7ad5146105ac578063733ccaba1461062a57806375f12b21146106a657806396df3540146106d3578063c9c5b5b414610704578063cb01a9bf14610761578063cf775255146107c0578063da1fe7d51461086d578063dcccb41d146108dc578063e34e788914610958578063f2fde38b146109b5578063fbf58b3e146109ee575b600080fd5b341561014357600080fd5b61017860048080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050610a6a565b604051808215151515815260200191505060405180910390f35b341561019d57600080fd5b6101b7600480803560001916906020019091905050610b04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561020457600080fd5b61020c610cf0565b005b341561021957600080fd5b610269600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610d83565b005b341561027657600080fd5b61027e611234565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102cb57600080fd5b6102d361125a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561032057600080fd5b61037d60048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611280565b6040518080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156103cf5780820151818401526020810190506103b4565b50505050905090810190601f1680156103fc5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561041857600080fd5b610420611554565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046d57600080fd5b61047561157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61057160048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115a0565b005b341561057e57600080fd5b6105aa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b13565b005b34156105b757600080fd5b61061460048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bcd565b6040518082815260200191505060405180910390f35b341561063557600080fd5b6106a4600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bf8565b005b34156106b157600080fd5b6106b9611e3b565b604051808215151515815260200191505060405180910390f35b34156106de57600080fd5b6106e6611e4d565b60405180826000191660001916815260200191505060405180910390f35b341561070f57600080fd5b61075f600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e74565b005b6107be60048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061241e565b005b34156107cb57600080fd5b61086b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612423565b005b341561087857600080fd5b6108da600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080359060200190919050506128b9565b005b34156108e757600080fd5b610956600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128cc565b005b341561096357600080fd5b6109b3600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612af1565b005b34156109c057600080fd5b6109ec600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612cda565b005b34156109f957600080fd5b610a68600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d7a565b005b60006301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610afd575063c1b15f5a7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080600060046000856000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610bab5760046000846000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150610cea565b610bb483612fe8565b90503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610c3057600080fd5b5af11515610c3d57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610c6d5760009150610cea565b8073ffffffffffffffffffffffffffffffffffffffff1663674f220f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610cd057600080fd5b5af11515610cdd57600080fd5b5050506040518051905091505b50919050565b6000809054906101000a900460ff16151515610d0b57600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d6757600080fd5b60016000806101000a81548160ff021916908315150217905550565b600080826040518082805190602001908083835b602083101515610dbc5780518252602082019150602081019050602083039250610d97565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff16610e0982610b04565b73ffffffffffffffffffffffffffffffffffffffff16141515610e2b57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be37f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae6001026040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610f1f57600080fd5b5af11515610f2c57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614151515610f5957600080fd5b836040518082805190602001908083835b602083101515610f8f5780518252602082019150602081019050602083039250610f6a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925060046000846000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060008273ffffffffffffffffffffffffffffffffffffffff161415151561102557600080fd5b600460008460001916600019168152602001908152602001600020600080820160006110519190613458565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600382016000905560048201600090555050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379ce9fac84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561117d57600080fd5b5af1151561118a57600080fd5b50505082600019167f8c0dd32279c25300d82425bebe31a5c703918d83d2bb57a1155dfa6cbba61cf8856040518080602001828103825283818151815260200191508051906020019080838360005b838110156111f45780820151818401526020810190506111d9565b50505050905090810190601f1680156112215780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112886134a0565b6000806000806000807f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae600102896040518083600019166000191681526020018260001916600019168152602001925050506040518091039020925082886040518082805190602001908083835b60208310151561131b57805182526020820191506020810190506020830392506112f6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902091506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561141057600080fd5b5af1151561141d57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614151561147357600080600060206040519081016040528060008152509291908292508191508090509650965096509650611548565b600460008a60001916600019168152602001908152602001600020905080600001816003015460008360040154838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115355780601f1061150a57610100808354040283529160200191611535565b820191906000526020600020905b81548152906001019060200180831161151857829003601f168201915b5050505050935081915096509650965096505b50505092959194509250565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008060009054906101000a900460ff161515156115c357600080fd5b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae6001028a60405180836000191660001916815260200182600019166000191681526020019250505060405180910390209450886040518082805190602001908083835b60208310151561164c5780518252602082019150602081019050602083039250611627565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3878760405180836000191660001916815260200182600019166000191681526020019250505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561175857600080fd5b5af1151561176557600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614151561179157600080fd5b600460008b60001916600019168152602001908152602001600020925089600019168360000160405180828054600181600116156101000203166002900480156118125780601f106117f0576101008083540402835291820191611812565b820191906000526020600020905b8154815290600101906020018083116117fe575b505091505060405180910390206000191614151561182f57600080fd5b8260030154341015151561184257600080fd5b8260030154341115611895573373ffffffffffffffffffffffffffffffffffffffff166108fc846003015434039081150290604051600060405180830381858888f19350505050151561189457600080fd5b5b82600301549150600083600301548460040154021180156118cd575060008773ffffffffffffffffffffffffffffffffffffffff1614155b801561192957508260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561198f57620f4240836004015484600301540281151561194657fe5b0490508673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561198957600080fd5b80820391505b60008211156119fd578260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156119fc57600080fd5b5b60008873ffffffffffffffffffffffffffffffffffffffff161415611a20573397505b611a2c85858a896130c1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168b600019167ffa38f9920801763ca6e4ee19135fb26a4fa11c0a34f7117455064991a1a3e6588c87600301546040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611acc578082015181840152602081019050611ab1565b50505050905090810190601f168015611af95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a450505050505050505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6f57600080fd5b6000809054906101000a900460ff161515611b8957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905092915050565b600080836040518082805190602001908083835b602083101515611c315780518252602082019150602081019050602083039250611c0c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff16611c7e82610b04565b73ffffffffffffffffffffffffffffffffffffffff16141515611ca057600080fd5b846040518082805190602001908083835b602083101515611cd65780518252602082019150602081019050602083039250611cb1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092507f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae6001028360405180836000191660001916815260200182600019166000191681526020019250505060405180910390209150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83866040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1515611e2457600080fd5b5af11515611e3157600080fd5b5050505050505050565b6000809054906101000a900460ff1681565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae60010281565b600080826040518082805190602001908083835b602083101515611ead5780518252602082019150602081019050602083039250611e88565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff16611efa82610b04565b73ffffffffffffffffffffffffffffffffffffffff16141515611f1c57600080fd5b6000809054906101000a900460ff161515611f3657600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611f7e57600080fd5b836040518082805190602001908083835b602083101515611fb45780518252602082019150602081019050602083039250611f8f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092506004600084600019166000191681526020019081526020016000209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379ce9fac84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15156120ee57600080fd5b5af115156120fb57600080fd5b505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf77525583600001846003015485600401548660010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156122b85780601f1061228d576101008083540402835291602001916122b8565b820191906000526020600020905b81548152906001019060200180831161229b57829003601f168201915b50509650505050505050600060405180830381600087803b15156122db57600080fd5b5af115156122e857600080fd5b505050600460008460001916600019168152602001908152602001600020600080820160006123179190613458565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560038201600090556004820160009055505082600019167f8c0dd32279c25300d82425bebe31a5c703918d83d2bb57a1155dfa6cbba61cf8856040518080602001828103825283818151815260200191508051906020019080838360005b838110156123de5780820151818401526020810190506123c3565b50505050905090810190601f16801561240b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050565b600080fd5b600080866040518082805190602001908083835b60208310151561245c5780518252602082019150602081019050602083039250612437565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff166124a982610b04565b73ffffffffffffffffffffffffffffffffffffffff161415156124cb57600080fd5b876040518082805190602001908083835b60208310151561250157805182526020820191506020810190506020830392506124dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600460008460001916600019168152602001908152602001600020915060008260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806125ac575060008473ffffffffffffffffffffffffffffffffffffffff16145b8061260657508373ffffffffffffffffffffffffffffffffffffffff168260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561261157600080fd5b8473ffffffffffffffffffffffffffffffffffffffff168260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156126ae57848260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b82600019168260000160405180828054600181600116156101000203166002900480156127125780601f106126f0576101008083540402835291820191612712565b820191906000526020600020905b8154815290600101906020018083116126fe575b505091505060405180910390206000191614151561274457878260000190805190602001906127429291906134b4565b505b8682600301819055508582600401819055508373ffffffffffffffffffffffffffffffffffffffff168260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156127cd575060008473ffffffffffffffffffffffffffffffffffffffff1614155b1561287e57838260020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600019167f2d7de2863f470ffa77d12170d4a38ab17226373c6d1d81d1cc75defe123e45fe85604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b82600019167f1427993bb6b6c16d8953c450c37078c8f41196e2e2db1619cda06620143e2d9160405160405180910390a25050505050505050565b6128c7838383336000612423565b505050565b600080836040518082805190602001908083835b60208310151561290557805182526020820191506020810190506020830392506128e0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff1661295282610b04565b73ffffffffffffffffffffffffffffffffffffffff1614151561297457600080fd5b846040518082805190602001908083835b6020831015156129aa5780518252602082019150602081019050602083039250612985565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600460008460001916600019168152602001908152602001600020915060008260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a3f57600080fd5b838260020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600019167f2d7de2863f470ffa77d12170d4a38ab17226373c6d1d81d1cc75defe123e45fe85604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050505050565b600080826040518082805190602001908083835b602083101515612b2a5780518252602082019150602081019050602083039250612b05565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff16612b7782610b04565b73ffffffffffffffffffffffffffffffffffffffff16141515612b9957600080fd5b836040518082805190602001908083835b602083101515612bcf5780518252602082019150602081019050602083039250612baa565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600460008460001916600019168152602001908152602001600020915082600019167f77f7b610de5055c8f704e6a3b12874468f5785f3a7d1007b67a8a4b4c7ed88fc60405160405180910390a26020604051908101604052806000815250826000019080519060200190612c749291906134b4565b50612c7e83610b04565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600082600301819055506000826004018190555050505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d3657600080fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000826040518082805190602001908083835b602083101515612db25780518252602082019150602081019050602083039250612d8d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff16612dff82610b04565b73ffffffffffffffffffffffffffffffffffffffff16141515612e2157600080fd5b836040518082805190602001908083835b602083101515612e575780518252602082019150602081019050602083039250612e32565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091508273ffffffffffffffffffffffffffffffffffffffff1660046000846000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16856040518082805190602001908083835b602083101515612f285780518252602082019150602081019050602083039250612f03565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019167f06e9c07310f63759634ddbb7257dbb19ca404f90bd6bdef1d3386fab033cebce60405160405180910390a48260046000846000191660001916815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663267b6922846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060a060405180830381600087803b151561308357600080fd5b5af1151561309057600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050505091505080915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238686306040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b151561319f57600080fd5b5af115156131ac57600080fd5b505050848460405180836000191660001916815260200182600019166000191681526020019250505060405180910390209050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a82846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15156132ab57600080fd5b5af115156132b857600080fd5b5050508173ffffffffffffffffffffffffffffffffffffffff1663d5fa2b0082856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561336557600080fd5b5af1151561337257600080fd5b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561344157600080fd5b5af1151561344e57600080fd5b5050505050505050565b50805460018160011615610100020316600290046000825580601f1061347e575061349d565b601f01602090049060005260206000209081019061349c9190613534565b5b50565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106134f557805160ff1916838001178555613523565b82800160010185558215613523579182015b82811115613522578251825591602001919060010190613507565b5b5090506135309190613534565b5090565b61355691905b8082111561355257600081600090555060010161353a565b5090565b905600a165627a7a723058204a2ec41a7a4ef565521711812f8252c0cb8a69f51a8ad8910d3f48acfdc3732d0029000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b

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

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


   Swarm Source:
bzzr://4a2ec41a7a4ef565521711812f8252c0cb8a69f51a8ad8910d3f48acfdc3732d

 

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.