Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 584 txns
 Latest 25 txns From a total of 584 Transactions

TxHash Age From To Value [TxFee]
0xc3d7cc763b92a935b417d7e64688ac1702be4232cb4a45ad5b7c7a170cd4e2bc3 hrs 5 mins ago0xc9f45bb89c4ec5f34d65f567dc5d34e43455bcf5  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.001564782
0x29f05c51be9b095f59697b4ab51e33f96293a0e521ee6711df993610cccbe6c25 hrs 23 mins ago0xc9f45bb89c4ec5f34d65f567dc5d34e43455bcf5  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.002074782
0x00f7cde623169afade791a7c7e51240ccd46fbcef581f03d57d73ba91759fb666 hrs 37 mins ago0xde578c50e3cfbe9fb94b101984b7a6af5ab6f971  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00146148
0x5ac611d872bb1078e03cd35739c9bc7c668a19e6619df2d8fbee2badd30aa3861 day 11 hrs ago0xb7f26b4cab0bc31270a829551dd686e8fcdd621f  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000367674
0xa871c2fabf10d5fde278ca27621ae4dd10aa32453b12906ab1307a1dc0e20dc42 days 18 hrs ago0xff684104992bd26b6326bca4620d733526c0ddb1  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.00005 Ether0.000137983
0xc6cb3a7512cd7a49e65d8b1ce1801a94bb5ffd8604b9b487f372369c68601a232 days 19 hrs ago0x03c4dcdbd7efc4fd32e2c0e92d4e1f8b778e1a56  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000032545
0x2f33b8e8d1cb2549c6de73e0ba06bba693a021cac96fb3a5f3457bced5f01ebe2 days 20 hrs ago0x03c4dcdbd7efc4fd32e2c0e92d4e1f8b778e1a56  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000122366
0x62a41158741e58ec9639c68fd261882bb4405b5bcf0d1df2b3f05f9aaa42c3ce3 days 33 mins ago0xc925668e7431d4635dc9670c934a19c2206b2819  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000244604
0x8b8c31eae66055ff4e5cb19a1f2f7b1a486b06f08339b9d493453fea5ca3c75c8 days 10 hrs ago0xb32b81dc4197992c19d8e9a3becea66f6ab93875  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00024422
0x4e28380be216b0c1f7da23a7c7d15666464757acd85b3c622c747c39bb0b167e10 days 9 hrs ago0x250b3f92d0463f4d721a196444db769015d6666b  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000121918
0x7dbc8bf410f05376df675a257c0b367d2345415b1315920e9f85c077a96b591e10 days 9 hrs ago0x9881a480ee51ae9e21a2b9012dc4f3faf00b5d04  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000122046
0x666b0b3b592c968722c2e10b8677be419953ad870f3f07afa6b75057c4208cfe13 days 15 hrs ago0x530cf036ed4fa58f7301a9c788c9806624cefd19  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.005 Ether0.000911246
0xc86b7d65731e37651cde6f68699587859387eb86efda492b0fa51dfeffc5a98715 days 5 hrs ago0x58a55c2edff377f2c97902136b8ca9be13be921c  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.005001262
0x3d2d5cf5196827aea36513a279c1be9d9e95b1175425a2c571ba964f515f9d6915 days 5 hrs ago0x58a55c2edff377f2c97902136b8ca9be13be921c  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.005009134
0x0eb18d8955e8b778148eefb1a49cd4afe3036dfb27a84f726330a15b5e3e523717 days 11 hrs ago0x42f91442d0af810f2309a120718e813d5b5a09f5  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.00005 Ether0.00150611967
0x771c31f73b8734517c318178729296c80527b2a50a9e41e261930aed0ee5d26819 days 21 hrs ago0xf7b1f1e1e2280fd3f825d1baf54efa9fb780edff  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.001103022
0x581986ad40e5aba39b9346c9954f9e845342b316ee54d1732b2f8c796dcb8a6e20 days 8 hrs ago0xa59a540d70dd5c5b419ee425d83b85b40742d2a3  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000977392
0xbface607f36ceeef46fa4200060205d4cc02096ff9aad30aac4a13850a76494021 days 15 hrs ago0x8b8d0b975b09100d6b0a3aa3f47c3275eb082b93  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000489976
0xdf415b82dfd52faef5ab7509e56262cf75648b6ae53c151a60b2a5c13c41873e22 days 7 hrs ago0x01e6d28d21b6ac49686035d846e406f8958ea4ee  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00061215
0xd282b539f71404b0d6c24021aaa9cd094cc5cc4308d19cd5b23b054ab5f258e023 days 38 mins ago0x6527dbd0a6dc8850c30331747ba2fde5e5963dc2  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00128203082
0x03db5ad834bab7d1aa41da9ea5d288ed1b75883efd137f550d12c497bb82a7ad23 days 1 hr ago0xf2fb8ea61f028e53688caa0b4b4a869c6a20630a  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.00061055
0x3e9da05211ae7bf172679b6a364917825166cc25bb6dc7032b80e61782e77a2523 days 7 hrs ago0x5381579f57d6cb85cc43af2b5e5afaeecaaa6e6c  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10.00005 Ether0.0005527
0xc9565a8df7205d49797b7700d5935f1807670a7052a74b783f475eb1b93da22623 days 13 hrs ago0xfd8d528e038256006924fde0188ad8cb346f50c2  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000244348
0xf3dd0dd8820884d0290fc27c8dd9600349365fcafe186054fc24af0f2423311425 days 23 hrs ago0x64238e2e37f7af4a561e8b3f340ea5ff8fb08ce5  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.005030126
0xf924cf63b3ba34bb49f84974d0a1ad51b53b6be52816cab1a5bef91d6a79821926 days 6 hrs ago0x383df23394a8776dde8db814598041bad10e1269  IN   0x0b07463b30b302a98407d3e3df85ebc073b0dbd10 Ether0.000734196
[ 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
0xa871c2fabf10d5fde278ca27621ae4dd10aa32453b12906ab1307a1dc0e20dc465134592 days 18 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0xa871c2fabf10d5fde278ca27621ae4dd10aa32453b12906ab1307a1dc0e20dc465134592 days 18 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x666b0b3b592c968722c2e10b8677be419953ad870f3f07afa6b75057c4208cfe644655213 days 15 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.005 Ether
0x0eb18d8955e8b778148eefb1a49cd4afe3036dfb27a84f726330a15b5e3e5237642303517 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x0eb18d8955e8b778148eefb1a49cd4afe3036dfb27a84f726330a15b5e3e5237642303517 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x3e9da05211ae7bf172679b6a364917825166cc25bb6dc7032b80e61782e77a25638743323 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x3e9da05211ae7bf172679b6a364917825166cc25bb6dc7032b80e61782e77a25638743323 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x97d8a699916b8ea17e0d750b2a9a62cd2eeef8a555fefd0afaa232d5deae1a53635489528 days 16 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x97d8a699916b8ea17e0d750b2a9a62cd2eeef8a555fefd0afaa232d5deae1a53635489528 days 16 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x56cdefc67954e69d277f9e2505bf3be8796ddc244e87035349a1e29f870c288f628893139 days 15 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xe0a97c2634c0b1d2530b2f92e46697460692ca0c0.00396 Ether
0x56cdefc67954e69d277f9e2505bf3be8796ddc244e87035349a1e29f870c288f628893139 days 15 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xdecaf9cd2367cdbb726e904cd6397edfcae6068d0.00004 Ether
0xc25488eabdc6a1e109fd318beabd9ca876646354aa4b92077363371308352dde627203842 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0xc25488eabdc6a1e109fd318beabd9ca876646354aa4b92077363371308352dde627203842 days 11 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0xa02bd19e158cc1f584c8e49cd860b4d3d6c0a0a4fea316a9c58eea0d656b562a627155142 days 13 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xe0a97c2634c0b1d2530b2f92e46697460692ca0c0.00396 Ether
0xa02bd19e158cc1f584c8e49cd860b4d3d6c0a0a4fea316a9c58eea0d656b562a627155142 days 13 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00004 Ether
0x1451efdb398c204c2590033745f52019010e9dae402ec0e5d915706228a8d4b8627052642 days 17 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x1451efdb398c204c2590033745f52019010e9dae402ec0e5d915706228a8d4b8627052642 days 17 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x410a34a47b5f573d8c8c33411b9175084651f65509e05f7b7475b03f49a578b2626987142 days 20 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xe0a97c2634c0b1d2530b2f92e46697460692ca0c0.00396 Ether
0x410a34a47b5f573d8c8c33411b9175084651f65509e05f7b7475b03f49a578b2626987142 days 20 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00004 Ether
0x31144ab4c9768e8d2c66523e043c18e42351d9f20ff756362ac889544fa621f6626678243 days 8 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x31144ab4c9768e8d2c66523e043c18e42351d9f20ff756362ac889544fa621f6626678243 days 8 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0x01a825e23b75d5fe0277a5fc04c0c8dcc1cf9dca2035d4336d8289655e3500f9626287844 days 41 mins ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0131fb81adc8501b989ca9aeb1a70b1f19f80c830.0000425 Ether
0x01a825e23b75d5fe0277a5fc04c0c8dcc1cf9dca2035d4336d8289655e3500f9626287844 days 41 mins ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.0000075 Ether
0xfe6468dc64884345b4cb8442db2541a8074119e57c32f699751d74b272f4edcb626115144 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10xe0a97c2634c0b1d2530b2f92e46697460692ca0c0.00396 Ether
0xfe6468dc64884345b4cb8442db2541a8074119e57c32f699751d74b272f4edcb626115144 days 7 hrs ago0x0b07463b30b302a98407d3e3df85ebc073b0dbd10x0904dac3347ea47d208f3fd67402d039a3b998590.00004 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.