Sponsored Link:   Alt.Estate - ERC20 for Real Estate. Live Prototype in Japan, USA, EU.Buy ALT tokens. Endorsed by partners of PWC, Knight Frank.
 Latest 25 txns from a total Of 1192509 transactions (+22 PendingTxns)
View All

TxHash Age From To Value [TxFee]
0x31134d7a799d39d784bc80884aa29b6a5718a2a7e453e85e8576d858e211d621(pending)0x1b8e765754ef9002c6d3aa9a46c25dc9d1548bcd  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.01 Ether(pending)
0x1d5099e86493235cfca248840bfb3e0e35f83d9b5865993ecee959556d940b59(pending)0xce6a15c98ac6603d4148f5267899b61b810c819d  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x0187a645215f68407e5046645b72fd48f056141b67fae794fd5426dd6adf5417(pending)0xeaa3352056ef614c78a213dae3587dbd55e53dc9  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x2536b0fb0a90d55ce721109dca3d34d1cfb0405171b6dd2f55c20e3bf471b4f2(pending)0xdead6ed32f246f2af529d5ece56eeec4636a3ed3  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x6fd87f53fe5d7e73278e45201f4dbb77078e367def1fc86cd225973ba25d9b7c(pending)0xdeadc638033b324978965e952495cfed90bbeadc  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0xe981d5ae848ac7aa89ebe19673a50b944fe59142fa4a79ddece16b67439eb7fb(pending)0xdead682186dff1408c169b7b36974af55d8c8473  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x1d8657e199518fbd6e0a74fc2ec6bb91f1ff778c8c183dc14336ee94452708eb(pending)0x2e462a1164d9ff68743be075ddd1a4b98f722615  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0xebb29feef0247f8001eaef73cf176e823bd35583332473bb0daa69c2706ca23e(pending)0xfcfd6fc686c67727f9c43d49635b78ae20204479  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.01 Ether(pending)
0x853dc6b80ddd418d8a8ff8b715276344e6faf1b008bef466e06e723958c8c29a(pending)0x9e7de6f979a72908a0be23429433813d8bc94a83  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.01 Ether(pending)
0x835d4d24aa4ff12a724532742668a20e3843614975c3247540544e923c2ec06a(pending)0xb6f6dce6000ca88cc936b450cedb16a5c15f157f  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.001 Ether(pending)
0x1ef8d764013f24f344b73fa8339765cb8256299aafaab15f64747bfc4d5166bd(pending)0xb6f6dce6000ca88cc936b450cedb16a5c15f157f  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.01 Ether(pending)
0x97fd3a2d94a35b69d998a89bd4ae7ab268799c51c2ed13cf2b802f577841096b(pending)0x7ec73d4852f56bd84c02822c7360b006601e9132  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.01 Ether(pending)
0x70e02a4279f757f167479d4fe14508edf1dc034a616cbc84b6056b1f713ccab4(pending)0xac6096c5c99c8710520281b8bde4bf28ce28efc9  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0xcc62a6b746ecbc0fcd8f0d835354650432076e82dabadf766b48a90cbefed696(pending)0x927ea135dc0b11ce06749a44c5f95e0956d9713d  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0xbfc7f334681fbb92feffb393ecb338ed433d4a4f88ebeeb173c6e5c7ffb43d86(pending)0x8c433b6e233c93e25c5a4285c0539cad2c490c15  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x2cdde4d34182bcceac31a907b5760296c6440bca178e8fe390bf956eba6e6d28(pending)0xa3564677fc4907a15c9a7eae1dbc1ae9ac57b8e1  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x6db2b6ffc784fbfcc7a937dee3dcefb542049f9148fffe2f843f6c4c4dc8bf75(pending)0x671b4fa020d392e61afb81f52ec0c01c69bbaaab  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0xcb0976eb072abbc20d57c539019f44f0d2aa0b3300f954caed64da62f9ed00ea(pending)0x1df8fb9ea6b89c750915c1cf90a72e74b7855a17  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0xd518dd9b475330e3c412d7163b3d748dbca8ddbc6e3409a7816498bdbc7391dc(pending)0xdead51d3b8b473018ce5651014d9841e4362bbd4  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x1f549910a5cd22415343e646b4b68b6d1d88cd46e2f227eb71a6b739d9a665ca(pending)0xdead365024ecc328fae42f92017ec907640faa18  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x5417df1780540db70653da9ce0d0b889efd414173a9094ccacd791a1b4b0a6e1(pending)0xaefaf027057c87c6bfe08353f58df54d459c29b6  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0.00001 Ether(pending)
0x307420aeb3401e0d089b935eb7f74ad77805207a5460c989e20f283a6962fc9d(pending)0x38b6fa8efde5189f1344ba420e2fce4c2792a7fd  IN  0x6090a6e47849629b7245dfa1ca21d94cd15878ef0 Ether(pending)
0x10d089d4ae744de8e2733d484a0335094ae40daab2d7d748f7b4d31a940127af 47 secs ago0x7c891c0c8eea3e6053a4fb3b904cf2961239c10b  IN   ENS-Registrar0.01 Ether0.00534580026
0x359fb81de951fe2bdca8a1f377206941642cafa6bb66c9e66ab402c9465c3dd15 mins ago0x7c891c0c8eea3e6053a4fb3b904cf2961239c10b  IN   ENS-Registrar0.01 Ether0.00534580026
0xb48c66840da7dbc8ff207c43d165314a5f1d29bee0ec61257fd1c86624ce3f898 mins ago0x7c891c0c8eea3e6053a4fb3b904cf2961239c10b  IN   ENS-Registrar0 Ether0.00081278232
[ 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
0x10d089d4ae744de8e2733d484a0335094ae40daab2d7d748f7b4d31a940127af5669075 47 secs ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x359fb81de951fe2bdca8a1f377206941642cafa6bb66c9e66ab402c9465c3dd156690575 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x4771aa042f6726a6b1424b03db067c56cc4f0c2af1d8d80b7890b47e1276d391566900916 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x70b64f886a866f05ac70f864788b3c09c1415e212b80746fe213906ee05fd2ff566900217 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.011 Ether
0x916ca5963006de9d08daf16220e85db674cc64c382c3f558859da75b10dd1ce6566898721 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x04d14d1693749417459460202850b5d11c6ade050ce493a84bd95e62ee7cf165566892635 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0xbadd32556e40427a82a91970af01cf1cae4cb5cea0d74843dbc288548ac90d9f566892337 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x51bbc69093aebfa2ef9325ae1c5fea4d1f31301aaaee3f0439a48ee929392d2b566891239 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.152 Ether
0x2d17b28346cc2a1a5039c8a8e9d176c191d07068c6919b622c38f168a2ea065e566890143 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.0248 Ether
0xf0936f52b9ffb57fc4e8c34c2249db250af0346ba2425871bbefc0ec235bd9f5566889843 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x066a6ff8346d81431d4916e23f87d8cca39d80f0f4ccc6f4d0b3c3c89064c766566888147 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.152 Ether
0x61c3c7d97191a930cda8de470d7d85280f62f7368fb64063ba440cff85db0e61566884856 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x11255ec498bdb3e114f213778e8cd06da8cdf0e3e9e901095db9817a0a08b9e356688271 hr ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x72a9b39bb107e1e991b3fcf5e1ca9429dc0dcd1eb58bfb44208ef9faf36675bb56688031 hr 6 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x467532cab847f058fd7fca3467e32beda9f20fe1df756c5988d7f89d766114bf56687941 hr 9 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x1bc205dec82d4f59a71ac7dda848168450d5ef24f195c37d5d142cbac29df98256687361 hr 22 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x1a70b2594adc203ea9eb77619fd7d7fee9e9116e75b058d59a62335f135d37c556687141 hr 26 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x1c567b999c9a0a405710b1fb49cca87e92bca14fa4f5c59969628f719caadd6c56686441 hr 44 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0xb40e2acba96bb45a667f7b6828ef139deba1f7a7f9b9cc62dbf0fed39dab99fc56686371 hr 46 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0xb25ff8152e0e7672ed45b236bc46ea3b644f32a739254da3cfc69e5a9a8b0e2f56686131 hr 53 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x7b1768821eff64bb5ee8ed27fcf3239dcc192ec91df7265ea00a4f53033d4eb756685682 hrs 8 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x7f2510c830a9be491afb9c67f3ff654a681f9513bcf98384eca912b48c504e0756685652 hrs 8 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x782af8810d108d8833b62453094649e13616378b9b5f62bd6f4b60a98b39811656685482 hrs 13 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x7ccf95235b13ef887e20ba52724aba17b6fdbb9995bdb54cac381fce55fbf88b56685282 hrs 18 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
0x5952c880570c91d7782394454a562517ef72177469da52853c4bc35f61efc78856685072 hrs 24 mins ago0x6090a6e47849629b7245dfa1ca21d94cd15878ef  Contract Creation0.01 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: Registrar
Compiler Version: v0.4.10+commit.f0d539ae
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.0;


/*

Temporary Hash Registrar
========================

This is a simplified version of a hash registrar. It is purporsefully limited:
names cannot be six letters or shorter, new auctions will stop after 4 years.

The plan is to test the basic features and then move to a new contract in at most
2 years, when some sort of renewal mechanism will be enabled.
*/

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

    // 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);
}

/**
 * @title Deed to hold ether in exchange for ownership of a node
 * @dev The deed can be controlled only by the registrar and can only send ether back to the owner.
 */
contract Deed {
    address public registrar;
    address constant burn = 0xdead;
    uint public creationDate;
    address public owner;
    address public previousOwner;
    uint public value;
    event OwnerChanged(address newOwner);
    event DeedClosed();
    bool active;


    modifier onlyRegistrar {
        if (msg.sender != registrar) throw;
        _;
    }

    modifier onlyActive {
        if (!active) throw;
        _;
    }

    function Deed(address _owner) payable {
        owner = _owner;
        registrar = msg.sender;
        creationDate = now;
        active = true;
        value = msg.value;
    }

    function setOwner(address newOwner) onlyRegistrar {
        if (newOwner == 0) throw;
        previousOwner = owner;  // This allows contracts to check who sent them the ownership
        owner = newOwner;
        OwnerChanged(newOwner);
    }

    function setRegistrar(address newRegistrar) onlyRegistrar {
        registrar = newRegistrar;
    }

    function setBalance(uint newValue, bool throwOnFailure) onlyRegistrar onlyActive {
        // Check if it has enough balance to set the value
        if (value < newValue) throw;
        value = newValue;
        // Send the difference to the owner
        if (!owner.send(this.balance - newValue) && throwOnFailure) throw;
    }

    /**
     * @dev Close a deed and refund a specified fraction of the bid value
     * @param refundRatio The amount*1/1000 to refund
     */
    function closeDeed(uint refundRatio) onlyRegistrar onlyActive {
        active = false;
        if (! burn.send(((1000 - refundRatio) * this.balance)/1000)) throw;
        DeedClosed();
        destroyDeed();
    }

    /**
     * @dev Close a deed and refund a specified fraction of the bid value
     */
    function destroyDeed() {
        if (active) throw;
        
        // Instead of selfdestruct(owner), invoke owner fallback function to allow
        // owner to log an event if desired; but owner should also be aware that
        // its fallback function can also be invoked by setBalance
        if(owner.send(this.balance)) {
            selfdestruct(burn);
        }
    }
}

/**
 * @title Registrar
 * @dev The registrar handles the auction process for each subnode of the node it owns.
 */
contract Registrar {
    AbstractENS public ens;
    bytes32 public rootNode;

    mapping (bytes32 => entry) _entries;
    mapping (address => mapping(bytes32 => Deed)) public sealedBids;
    
    enum Mode { Open, Auction, Owned, Forbidden, Reveal, NotYetAvailable }

    uint32 constant totalAuctionLength = 5 days;
    uint32 constant revealPeriod = 48 hours;
    uint32 public constant launchLength = 8 weeks;

    uint constant minPrice = 0.01 ether;
    uint public registryStarted;

    event AuctionStarted(bytes32 indexed hash, uint registrationDate);
    event NewBid(bytes32 indexed hash, address indexed bidder, uint deposit);
    event BidRevealed(bytes32 indexed hash, address indexed owner, uint value, uint8 status);
    event HashRegistered(bytes32 indexed hash, address indexed owner, uint value, uint registrationDate);
    event HashReleased(bytes32 indexed hash, uint value);
    event HashInvalidated(bytes32 indexed hash, string indexed name, uint value, uint registrationDate);

    struct entry {
        Deed deed;
        uint registrationDate;
        uint value;
        uint highestBid;
    }

    // State transitions for names:
    //   Open -> Auction (startAuction)
    //   Auction -> Reveal
    //   Reveal -> Owned
    //   Reveal -> Open (if nobody bid)
    //   Owned -> Open (releaseDeed or invalidateName)
    function state(bytes32 _hash) constant returns (Mode) {
        var entry = _entries[_hash];
        
        if(!isAllowed(_hash, now)) {
            return Mode.NotYetAvailable;
        } else if(now < entry.registrationDate) {
            if (now < entry.registrationDate - revealPeriod) {
                return Mode.Auction;
            } else {
                return Mode.Reveal;
            }
        } else {
            if(entry.highestBid == 0) {
                return Mode.Open;
            } else {
                return Mode.Owned;
            }
        }
    }

    modifier inState(bytes32 _hash, Mode _state) {
        if(state(_hash) != _state) throw;
        _;
    }

    modifier onlyOwner(bytes32 _hash) {
        if (state(_hash) != Mode.Owned || msg.sender != _entries[_hash].deed.owner()) throw;
        _;
    }

    modifier registryOpen() {
        if(now < registryStarted  || now > registryStarted + 4 years || ens.owner(rootNode) != address(this)) throw;
        _;
    }

    function entries(bytes32 _hash) constant returns (Mode, address, uint, uint, uint) {
        entry h = _entries[_hash];
        return (state(_hash), h.deed, h.registrationDate, h.value, h.highestBid);
    }

    /**
     * @dev Constructs a new Registrar, with the provided address as the owner of the root node.
     * @param _ens The address of the ENS
     * @param _rootNode The hash of the rootnode.
     */
    function Registrar(AbstractENS _ens, bytes32 _rootNode, uint _startDate) {
        ens = _ens;
        rootNode = _rootNode;
        registryStarted = _startDate > 0 ? _startDate : now;
    }

    /**
     * @dev Returns the maximum of two unsigned integers
     * @param a A number to compare
     * @param b A number to compare
     * @return The maximum of two unsigned integers
     */
    function max(uint a, uint b) internal constant returns (uint max) {
        if (a > b)
            return a;
        else
            return b;
    }

    /**
     * @dev Returns the minimum of two unsigned integers
     * @param a A number to compare
     * @param b A number to compare
     * @return The minimum of two unsigned integers
     */
    function min(uint a, uint b) internal constant returns (uint min) {
        if (a < b)
            return a;
        else
            return b;
    }

    /**
     * @dev Returns the length of a given string
     * @param s The string to measure the length of
     * @return The length of the input string
     */
    function strlen(string s) internal constant returns (uint) {
        // Starting here means the LSB will be the byte we care about
        uint ptr;
        uint end;
        assembly {
            ptr := add(s, 1)
            end := add(mload(s), ptr)
        }
        for (uint len = 0; ptr < end; len++) {
            uint8 b;
            assembly { b := and(mload(ptr), 0xFF) }
            if (b < 0x80) {
                ptr += 1;
            } else if(b < 0xE0) {
                ptr += 2;
            } else if(b < 0xF0) {
                ptr += 3;
            } else if(b < 0xF8) {
                ptr += 4;
            } else if(b < 0xFC) {
                ptr += 5;
            } else {
                ptr += 6;
            }
        }
        return len;
    }
    
    /** 
     * @dev Determines if a name is available for registration yet
     * 
     * Each name will be assigned a random date in which its auction 
     * can be started, from 0 to 13 weeks
     * 
     * @param _hash The hash to start an auction on
     * @param _timestamp The timestamp to query about
     */
     
    function isAllowed(bytes32 _hash, uint _timestamp) constant returns (bool allowed){
        return _timestamp > getAllowedTime(_hash);
    }

    /** 
     * @dev Returns available date for hash
     * 
     * @param _hash The hash to start an auction on
     */
    function getAllowedTime(bytes32 _hash) constant returns (uint timestamp) {
        return registryStarted + (launchLength*(uint(_hash)>>128)>>128);
        // right shift operator: a >> b == a / 2**b
    }
    /**
     * @dev Assign the owner in ENS, if we're still the registrar
     * @param _hash hash to change owner
     * @param _newOwner new owner to transfer to
     */
    function trySetSubnodeOwner(bytes32 _hash, address _newOwner) internal {
        if(ens.owner(rootNode) == address(this))
            ens.setSubnodeOwner(rootNode, _hash, _newOwner);        
    }

    /**
     * @dev Start an auction for an available hash
     *
     * Anyone can start an auction by sending an array of hashes that they want to bid for.
     * Arrays are sent so that someone can open up an auction for X dummy hashes when they
     * are only really interested in bidding for one. This will increase the cost for an
     * attacker to simply bid blindly on all new auctions. Dummy auctions that are
     * open but not bid on are closed after a week.
     *
     * @param _hash The hash to start an auction on
     */
    function startAuction(bytes32 _hash) registryOpen() {
        var mode = state(_hash);
        if(mode == Mode.Auction) return;
        if(mode != Mode.Open) throw;

        entry newAuction = _entries[_hash];
        newAuction.registrationDate = now + totalAuctionLength;
        newAuction.value = 0;
        newAuction.highestBid = 0;
        AuctionStarted(_hash, newAuction.registrationDate);
    }

    /**
     * @dev Start multiple auctions for better anonymity
     * @param _hashes An array of hashes, at least one of which you presumably want to bid on
     */
    function startAuctions(bytes32[] _hashes)  {
        for (uint i = 0; i < _hashes.length; i ++ ) {
            startAuction(_hashes[i]);
        }
    }

    /**
     * @dev Hash the values required for a secret bid
     * @param hash The node corresponding to the desired namehash
     * @param value The bid amount
     * @param salt A random value to ensure secrecy of the bid
     * @return The hash of the bid values
     */
    function shaBid(bytes32 hash, address owner, uint value, bytes32 salt) constant returns (bytes32 sealedBid) {
        return sha3(hash, owner, value, salt);
    }

    /**
     * @dev Submit a new sealed bid on a desired hash in a blind auction
     *
     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash
     * contains information about the bid, including the bidded hash, the bid amount, and a random
     * salt. Bids are not tied to any one auction until they are revealed. The value of the bid
     * itself can be masqueraded by sending more than the value of your actual bid. This is
     * followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.
     * Since this is an auction, it is expected that most public hashes, like known domains and common dictionary
     * words, will have multiple bidders pushing the price up.
     *
     * @param sealedBid A sealedBid, created by the shaBid function
     */
    function newBid(bytes32 sealedBid) payable {
        if (address(sealedBids[msg.sender][sealedBid]) > 0 ) throw;
        if (msg.value < minPrice) throw;
        // creates a new hash contract with the owner
        Deed newBid = (new Deed).value(msg.value)(msg.sender);
        sealedBids[msg.sender][sealedBid] = newBid;
        NewBid(sealedBid, msg.sender, msg.value);
    }

    /**
     * @dev Start a set of auctions and bid on one of them
     *
     * This method functions identically to calling `startAuctions` followed by `newBid`,
     * but all in one transaction.
     * @param hashes A list of hashes to start auctions on.
     * @param sealedBid A sealed bid for one of the auctions.
     */
    function startAuctionsAndBid(bytes32[] hashes, bytes32 sealedBid) payable {
        startAuctions(hashes);
        newBid(sealedBid);
    }

    /**
     * @dev Submit the properties of a bid to reveal them
     * @param _hash The node in the sealedBid
     * @param _value The bid amount in the sealedBid
     * @param _salt The sale in the sealedBid
     */
    function unsealBid(bytes32 _hash, uint _value, bytes32 _salt) {
        bytes32 seal = shaBid(_hash, msg.sender, _value, _salt);
        Deed bid = sealedBids[msg.sender][seal];
        if (address(bid) == 0 ) throw;
        sealedBids[msg.sender][seal] = Deed(0);
        entry h = _entries[_hash];
        uint value = min(_value, bid.value());
        bid.setBalance(value, true);

        var auctionState = state(_hash);
        if(auctionState == Mode.Owned) {
            // Too late! Bidder loses their bid. Get's 0.5% back.
            bid.closeDeed(5);
            BidRevealed(_hash, msg.sender, value, 1);
        } else if(auctionState != Mode.Reveal) {
            // Invalid phase
            throw;
        } else if (value < minPrice || bid.creationDate() > h.registrationDate - revealPeriod) {
            // Bid too low or too late, refund 99.5%
            bid.closeDeed(995);
            BidRevealed(_hash, msg.sender, value, 0);
        } else if (value > h.highestBid) {
            // new winner
            // cancel the other bid, refund 99.5%
            if(address(h.deed) != 0) {
                Deed previousWinner = h.deed;
                previousWinner.closeDeed(995);
            }

            // set new winner
            // per the rules of a vickery auction, the value becomes the previous highestBid
            h.value = h.highestBid;  // will be zero if there's only 1 bidder
            h.highestBid = value;
            h.deed = bid;
            BidRevealed(_hash, msg.sender, value, 2);
        } else if (value > h.value) {
            // not winner, but affects second place
            h.value = value;
            bid.closeDeed(995);
            BidRevealed(_hash, msg.sender, value, 3);
        } else {
            // bid doesn't affect auction
            bid.closeDeed(995);
            BidRevealed(_hash, msg.sender, value, 4);
        }
    }

    /**
     * @dev Cancel a bid
     * @param seal The value returned by the shaBid function
     */
    function cancelBid(address bidder, bytes32 seal) {
        Deed bid = sealedBids[bidder][seal];
        
        // If a sole bidder does not `unsealBid` in time, they have a few more days
        // where they can call `startAuction` (again) and then `unsealBid` during
        // the revealPeriod to get back their bid value.
        // For simplicity, they should call `startAuction` within
        // 9 days (2 weeks - totalAuctionLength), otherwise their bid will be
        // cancellable by anyone.
        if (address(bid) == 0
            || now < bid.creationDate() + totalAuctionLength + 2 weeks) throw;

        // Send the canceller 0.5% of the bid, and burn the rest.
        bid.setOwner(msg.sender);
        bid.closeDeed(5);
        sealedBids[bidder][seal] = Deed(0);
        BidRevealed(seal, bidder, 0, 5);
    }

    /**
     * @dev Finalize an auction after the registration date has passed
     * @param _hash The hash of the name the auction is for
     */
    function finalizeAuction(bytes32 _hash) onlyOwner(_hash) {
        entry h = _entries[_hash];
        
        // handles the case when there's only a single bidder (h.value is zero)
        h.value =  max(h.value, minPrice);
        h.deed.setBalance(h.value, true);

        trySetSubnodeOwner(_hash, h.deed.owner());
        HashRegistered(_hash, h.deed.owner(), h.value, h.registrationDate);
    }

    /**
     * @dev The owner of a domain may transfer it to someone else at any time.
     * @param _hash The node to transfer
     * @param newOwner The address to transfer ownership to
     */
    function transfer(bytes32 _hash, address newOwner) onlyOwner(_hash) {
        if (newOwner == 0) throw;

        entry h = _entries[_hash];
        h.deed.setOwner(newOwner);
        trySetSubnodeOwner(_hash, newOwner);
    }

    /**
     * @dev After some time, or if we're no longer the registrar, the owner can release
     *      the name and get their ether back.
     * @param _hash The node to release
     */
    function releaseDeed(bytes32 _hash) onlyOwner(_hash) {
        entry h = _entries[_hash];
        Deed deedContract = h.deed;
        if(now < h.registrationDate + 1 years && ens.owner(rootNode) == address(this)) throw;

        h.value = 0;
        h.highestBid = 0;
        h.deed = Deed(0);

        _tryEraseSingleNode(_hash);
        deedContract.closeDeed(1000);
        HashReleased(_hash, h.value);        
    }

    /**
     * @dev Submit a name 6 characters long or less. If it has been registered,
     * the submitter will earn 50% of the deed value. We are purposefully
     * handicapping the simplified registrar as a way to force it into being restructured
     * in a few years.
     * @param unhashedName An invalid name to search for in the registry.
     *
     */
    function invalidateName(string unhashedName) inState(sha3(unhashedName), Mode.Owned) {
        if (strlen(unhashedName) > 6 ) throw;
        bytes32 hash = sha3(unhashedName);

        entry h = _entries[hash];

        _tryEraseSingleNode(hash);

        if(address(h.deed) != 0) {
            // Reward the discoverer with 50% of the deed
            // The previous owner gets 50%
            h.value = max(h.value, minPrice);
            h.deed.setBalance(h.value/2, false);
            h.deed.setOwner(msg.sender);
            h.deed.closeDeed(1000);
        }

        HashInvalidated(hash, unhashedName, h.value, h.registrationDate);

        h.value = 0;
        h.highestBid = 0;
        h.deed = Deed(0);
    }

    /**
     * @dev Allows anyone to delete the owner and resolver records for a (subdomain of) a
     *      name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',
     *      the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.
     * @param labels A series of label hashes identifying the name to zero out, rooted at the
     *        registrar's root. Must contain at least one element. For instance, to zero 
     *        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing
     *        [sha3('foo'), sha3('bar')].
     */
    function eraseNode(bytes32[] labels) {
        if(labels.length == 0) throw;
        if(state(labels[labels.length - 1]) == Mode.Owned) throw;

        _eraseNodeHierarchy(labels.length - 1, labels, rootNode);
    }

    function _tryEraseSingleNode(bytes32 label) internal {
        if(ens.owner(rootNode) == address(this)) {
            ens.setSubnodeOwner(rootNode, label, address(this));
            var node = sha3(rootNode, label);
            ens.setResolver(node, 0);
            ens.setOwner(node, 0);
        }
    }

    function _eraseNodeHierarchy(uint idx, bytes32[] labels, bytes32 node) internal {
        // Take ownership of the node
        ens.setSubnodeOwner(node, labels[idx], address(this));
        node = sha3(node, labels[idx]);
        
        // Recurse if there's more labels
        if(idx > 0)
            _eraseNodeHierarchy(idx - 1, labels, node);

        // Erase the resolver and owner records
        ens.setResolver(node, 0);
        ens.setOwner(node, 0);
    }

    /**
     * @dev Transfers the deed to the current registrar, if different from this one.
     * Used during the upgrade process to a permanent registrar.
     * @param _hash The name hash to transfer.
     */
    function transferRegistrars(bytes32 _hash) onlyOwner(_hash) {
        var registrar = ens.owner(rootNode);
        if(registrar == address(this))
            throw;

        // Migrate the deed
        entry h = _entries[_hash];
        h.deed.setRegistrar(registrar);

        // Call the new registrar to accept the transfer
        Registrar(registrar).acceptRegistrarTransfer(_hash, h.deed, h.registrationDate);

        // Zero out the entry
        h.deed = Deed(0);
        h.registrationDate = 0;
        h.value = 0;
        h.highestBid = 0;
    }

    /**
     * @dev Accepts a transfer from a previous registrar; stubbed out here since there
     *      is no previous registrar implementing this interface.
     * @param hash The sha3 hash of the label to transfer.
     * @param deed The Deed object for the name being transferred in.
     * @param registrationDate The date at which the name was originally registered.
     */
    function acceptRegistrarTransfer(bytes32 hash, Deed deed, uint registrationDate) {}

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"releaseDeed","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"getAllowedTime","outputs":[{"name":"timestamp","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"unhashedName","type":"string"}],"name":"invalidateName","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"hash","type":"bytes32"},{"name":"owner","type":"address"},{"name":"value","type":"uint256"},{"name":"salt","type":"bytes32"}],"name":"shaBid","outputs":[{"name":"sealedBid","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"bidder","type":"address"},{"name":"seal","type":"bytes32"}],"name":"cancelBid","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"entries","outputs":[{"name":"","type":"uint8"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hash","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_salt","type":"bytes32"}],"name":"unsealBid","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"transferRegistrars","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"sealedBids","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_hash","type":"bytes32"},{"name":"_timestamp","type":"uint256"}],"name":"isAllowed","outputs":[{"name":"allowed","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"finalizeAuction","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"registryStarted","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"launchLength","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"sealedBid","type":"bytes32"}],"name":"newBid","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"labels","type":"bytes32[]"}],"name":"eraseNode","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hashes","type":"bytes32[]"}],"name":"startAuctions","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"hash","type":"bytes32"},{"name":"deed","type":"address"},{"name":"registrationDate","type":"uint256"}],"name":"acceptRegistrarTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"startAuction","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rootNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"hashes","type":"bytes32[]"},{"name":"sealedBid","type":"bytes32"}],"name":"startAuctionsAndBid","outputs":[],"payable":true,"type":"function"},{"inputs":[{"name":"_ens","type":"address"},{"name":"_rootNode","type":"bytes32"},{"name":"_startDate","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hash","type":"bytes32"},{"indexed":false,"name":"registrationDate","type":"uint256"}],"name":"AuctionStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hash","type":"bytes32"},{"indexed":true,"name":"bidder","type":"address"},{"indexed":false,"name":"deposit","type":"uint256"}],"name":"NewBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hash","type":"bytes32"},{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"status","type":"uint8"}],"name":"BidRevealed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hash","type":"bytes32"},{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"registrationDate","type":"uint256"}],"name":"HashRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hash","type":"bytes32"},{"indexed":false,"name":"value","type":"uint256"}],"name":"HashReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hash","type":"bytes32"},{"indexed":true,"name":"name","type":"string"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"registrationDate","type":"uint256"}],"name":"HashInvalidated","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000c57fe5b6040516060806127778339810160409081528151602083015191909201515b60008054600160a060020a031916600160a060020a038516178155600183905581116100575742610059565b805b6004555b5050505b612707806100706000396000f300606060405236156101175763ffffffff60e060020a6000350416630230a07c811461011957806313c89a8f1461012e57806315f733311461015357806322ec1244146101ab5780632525f5c1146101e2578063267b6922146102035780633f15457f1461025e57806347872b421461028a5780635ddae283146102a55780635e431709146102ba57806361d585da146102f557806379ce9fac1461032c578063935033371461034d578063983b94fb146103775780639c67f06f1461038c578063ae1a0b0c146103ae578063ce92dced146103d7578063de10f04b146103e4578063e27fe50f14610439578063ea9e107a1461048e578063ede8acdb146104b2578063faff50a8146104c7578063febefd61146104e9575bfe5b341561012157fe5b61012c600435610538565b005b341561013657fe5b610141600435610764565b60408051918252519081900360200190f35b341561015b57fe5b61012c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965061078995505050505050565b005b34156101b357fe5b610141600435600160a060020a0360243516604435606435610aac565b60408051918252519081900360200190f35b34156101ea57fe5b61012c600160a060020a0360043516602435610af3565b005b341561020b57fe5b610216600435610cb9565b6040518086600581111561022657fe5b60ff168152600160a060020a0390951660208601525060408085019390935260608401919091526080830152519081900360a0019150f35b341561026657fe5b61026e610d0a565b60408051600160a060020a039092168252519081900360200190f35b341561029257fe5b61012c600435602435604435610d19565b005b34156102ad57fe5b61012c600435611277565b005b34156102c257fe5b61026e600160a060020a03600435166024356114e7565b60408051600160a060020a039092168252519081900360200190f35b34156102fd57fe5b61030860043561150d565b6040518082600581111561031857fe5b60ff16815260200191505060405180910390f35b341561033457fe5b61012c600435600160a060020a036024351661158b565b005b341561035557fe5b6103636004356024356116cb565b604080519115158252519081900360200190f35b341561037f57fe5b61012c6004356116e1565b005b341561039457fe5b610141611944565b60408051918252519081900360200190f35b34156103b657fe5b6103be61194a565b6040805163ffffffff9092168252519081900360200190f35b61012c600435611951565b005b34156103ec57fe5b61012c600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650611a4495505050505050565b005b341561044157fe5b61012c600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650611aa595505050505050565b005b341561049657fe5b61012c600435600160a060020a0360243516604435610cb4565b005b34156104ba57fe5b61012c600435611ae5565b005b34156104cf57fe5b610141611c34565b60408051918252519081900360200190f35b61012c6004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505093359350611c3a92505050565b005b6000808260025b6105488261150d565b600581111561055357fe5b1415806105e0575060008181526002602090815260408083205481518301849052815160e060020a638da5cb5b0281529151600160a060020a0390911693638da5cb5b93600480850194919392918390030190829087803b15156105b357fe5b60325a03f115156105c057fe5b50505060405180519050600160a060020a031633600160a060020a031614155b156105eb5760006000fd5b600084815260026020526040902080546001820154919450600160a060020a031692506301e13380014210801561069b575060008054600154604080516020908101859052815160e060020a6302571be302815260048101939093529051600160a060020a03308116959416936302571be3936024808201949392918390030190829087803b151561067957fe5b60325a03f1151561068657fe5b50505060405180519050600160a060020a0316145b156106a65760006000fd5b60006002840181905560038401558254600160a060020a03191683556106cb84611c51565b81600160a060020a031663bbe427716103e86040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b151561071257fe5b60325a03f1151561071f57fe5b5050506002830154604080519182525185917f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e16919081900360200190a25b5b50505050565b6004547001000000000000000000000000000000006249d4008184040204015b919050565b60006000826040518082805190602001908083835b602083106107bd5780518252601f19909201916020918201910161079e565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209250600291508190505b6107f98361150d565b600581111561080457fe5b1461080f5760006000fd5b600661081a86611e19565b11156108265760006000fd5b846040518082805190602001908083835b602083106108565780518252601f199092019160209182019101610837565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260029092529290209197509095506108a09250869150611c519050565b8254600160a060020a0316156109e8576108c58360020154662386f26fc10000611ecc565b60028085018290558454600160a060020a03169163b0c8097291905b6040805160e060020a63ffffffff8616028152929091046004830152600060248301819052905160448084019382900301818387803b151561091f57fe5b60325a03f1151561092c57fe5b505083546040805160e060020a6313af4035028152600160a060020a03338116600483015291519190921692506313af40359160248082019260009290919082900301818387803b151561097c57fe5b60325a03f1151561098957fe5b505083546040805160e060020a63bbe427710281526103e860048201529051600160a060020a03909216925063bbe4277191602480830192600092919082900301818387803b15156109d757fe5b60325a03f115156109e457fe5b5050505b846040518082805190602001908083835b60208310610a185780518252601f1990920191602091820191016109f9565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060028a015460018b01549084529183019190915283519095508994507f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad93918190039091019150a360006002840181905560038401558254600160a060020a03191683555b5b5050505050565b604080518581526c01000000000000000000000000600160a060020a038616026020820152603481018490526054810183905290519081900360740190205b949350505050565b600160a060020a03808316600090815260036020908152604080832085845290915290205416801580610b9157506206978063ffffffff1681600160a060020a03166305b344106000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610b7157fe5b60325a03f11515610b7e57fe5b5050506040518051905001621275000142105b15610b9c5760006000fd5b80600160a060020a03166313af4035336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1515610bf357fe5b60325a03f11515610c0057fe5b50505080600160a060020a031663bbe4277160056040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1515610c4957fe5b60325a03f11515610c5657fe5b505050600160a060020a038316600081815260036020908152604080832086845282528083208054600160a060020a03191690558051928352600591830191909152805185926000805160206126bc83398151915292908290030190a35b505050565b60008181526002602052604081208190819081908190610cd88761150d565b8154600183015460028401546003850154939950600160a060020a0390921697509550935091505b5091939590929450565b600054600160a060020a031681565b600060006000600060006000610d3189338a8a610aac565b600160a060020a033381166000908152600360209081526040808320858452909152902054919750169450841515610d695760006000fd5b600160a060020a0333811660009081526003602090815260408083208a845282528083208054600160a060020a03191690558c8352600282528083208151830184905281517f3fa4f2450000000000000000000000000000000000000000000000000000000081529151909850610e1b948d94908b1693633fa4f245936004808201949293918390030190829087803b1515610e0157fe5b60325a03f11515610e0e57fe5b5050604051519050611eeb565b6040805160e160020a63586404b902815260048101839052600160248201529051919450600160a060020a0387169163b0c809729160448082019260009290919082900301818387803b1515610e6d57fe5b60325a03f11515610e7a57fe5b505050610e868961150d565b915060025b826005811115610e9757fe5b1415610f2b5784600160a060020a031663bbe4277160056040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1515610ee357fe5b60325a03f11515610ef057fe5b505060408051858152600160208201528151600160a060020a03331693508c926000805160206126bc833981519152928290030190a3611267565b60045b826005811115610f3a57fe5b14610f455760006000fd5b662386f26fc10000831080610fc457506202a30063ffffffff1684600101540385600160a060020a03166305b344106000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610fab57fe5b60325a03f11515610fb857fe5b50505060405180519050115b156110585784600160a060020a031663bbe427716103e36040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b151561101057fe5b60325a03f1151561101d57fe5b505060408051858152600060208201528151600160a060020a03331693508c926000805160206126bc833981519152928290030190a3611267565b8360030154831115611139578354600160a060020a0316156110d3575082546040805160e060020a63bbe427710281526103e360048201529051600160a060020a0390921691829163bbe4277191602480830192600092919082900301818387803b15156110c257fe5b60325a03f115156110cf57fe5b5050505b600384018054600280870191909155908490558454600160a060020a031916600160a060020a03878116919091178655604080518681526020810193909352805133909216928c926000805160206126bc833981519152929181900390910190a3611267565b83600201548311156111dc57600284018390556040805160e060020a63bbe427710281526103e360048201529051600160a060020a0387169163bbe4277191602480830192600092919082900301818387803b151561119457fe5b60325a03f115156111a157fe5b505060408051858152600360208201528151600160a060020a03331693508c926000805160206126bc833981519152928290030190a3611267565b84600160a060020a031663bbe427716103e36040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b151561122357fe5b60325a03f1151561123057fe5b505060408051858152600460208201528151600160a060020a03331693508c926000805160206126bc833981519152928290030190a35b5b5b5b5b5b505050505050505050565b6000808260025b6112878261150d565b600581111561129257fe5b14158061131f575060008181526002602090815260408083205481518301849052815160e060020a638da5cb5b0281529151600160a060020a0390911693638da5cb5b93600480850194919392918390030190829087803b15156112f257fe5b60325a03f115156112ff57fe5b50505060405180519050600160a060020a031633600160a060020a031614155b1561132a5760006000fd5b60008054600154604080516020908101859052815160e060020a6302571be302815260048101939093529051600160a060020a03909316936302571be3936024808501949192918390030190829087803b151561138357fe5b60325a03f1151561139057fe5b50505060405180519050925030600160a060020a031683600160a060020a031614156113bc5760006000fd5b600084815260026020526040808220805482517ffaab9d39000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152935192965092169263faab9d39926024808201939182900301818387803b151561142857fe5b60325a03f1151561143557fe5b505082546001840154604080517fea9e107a00000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a039384166024820152604481019290925251918616925063ea9e107a91606480830192600092919082900301818387803b15156114ac57fe5b60325a03f115156114b957fe5b50508254600160a060020a0319168355506000600183018190556002830181905560038301555b5b50505050565b6003602090815260009283526040808420909152908252902054600160a060020a031681565b600081815260026020526040812061152583426116cb565b15156115345760059150611582565b80600101544210156115695760018101546202a2ff190142101561155b5760019150611582565b60049150611582565b611582565b6003810154151561157d5760009150611582565b600291505b5b5b5b50919050565b60008260025b61159a8261150d565b60058111156115a557fe5b141580611632575060008181526002602090815260408083205481518301849052815160e060020a638da5cb5b0281529151600160a060020a0390911693638da5cb5b93600480850194919392918390030190829087803b151561160557fe5b60325a03f1151561161257fe5b50505060405180519050600160a060020a031633600160a060020a031614155b1561163d5760006000fd5b600160a060020a03831615156116535760006000fd5b6000848152600260205260408082208054825160e060020a6313af4035028152600160a060020a03888116600483015293519296509216926313af4035926024808201939182900301818387803b15156116a957fe5b60325a03f115156116b657fe5b50505061075d8484611f0a565b5b5b50505050565b60006116d683610764565b821190505b92915050565b60008160025b6116f08261150d565b60058111156116fb57fe5b141580611788575060008181526002602090815260408083205481518301849052815160e060020a638da5cb5b0281529151600160a060020a0390911693638da5cb5b93600480850194919392918390030190829087803b151561175b57fe5b60325a03f1151561176857fe5b50505060405180519050600160a060020a031633600160a060020a031614155b156117935760006000fd5b6000838152600260208190526040909120908101549092506117bc90662386f26fc10000611ecc565b6002830181905582546040805160e160020a63586404b902815260048101939093526001602484015251600160a060020a039091169163b0c8097291604480830192600092919082900301818387803b151561181457fe5b60325a03f1151561182157fe5b505082546040805160006020918201819052825160e060020a638da5cb5b028152925161189095508894600160a060020a031693638da5cb5b936004808301949193928390030190829087803b151561187657fe5b60325a03f1151561188357fe5b5050604051519050611f0a565b81546040805160006020918201819052825160e060020a638da5cb5b0281529251600160a060020a0390941693638da5cb5b9360048082019493918390030190829087803b15156118dd57fe5b60325a03f115156118ea57fe5b50506040805180516002860154600187015490835260208301528251600160a060020a03909116935086927f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e670928290030190a35b5b505050565b60045481565b6249d40081565b600160a060020a033381166000908152600360209081526040808320858452909152812054909116819011156119875760006000fd5b662386f26fc1000034101561199c5760006000fd5b34336119a6612195565b600160a060020a039091168152604051908190036020019082f08015156119c957fe5b33600160a060020a0390811660008181526003602090815260408083208984528252918290208054600160a060020a031916948616949094179093558051348152905193955090935085927fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29929181900390910190a35b5050565b80511515611a525760006000fd5b60025b611a79826001845103815181101515611a6a57fe5b9060200190602002015161150d565b6005811115611a8457fe5b1415611a905760006000fd5b611aa1600182510382600154611ffb565b5b50565b60005b8151811015611a4057611ad18282815181101515611ac257fe5b90602001906020020151611ae5565b5b600101611aa8565b5b5050565b5b505050565b60006000600454421080611b005750600454630784ce000142115b80611b85575060008054600154604080516020908101859052815160e060020a6302571be302815260048101939093529051600160a060020a03308116959416936302571be3936024808201949392918390030190829087803b1515611b6257fe5b60325a03f11515611b6f57fe5b50505060405180519050600160a060020a031614155b15611b905760006000fd5b611b998361150d565b915060015b826005811115611baa57fe5b1415611bb557610cb4565b60005b826005811115611bc457fe5b14611bcf5760006000fd5b50600082815260026020818152604080842042620697800160018201819055938101859055600381019490945580519283525185927f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000392908290030190a25b5b505050565b60015481565b611c4382611aa5565b611a4081611951565b5b5050565b60008054600154604080516020908101859052815160e060020a6302571be302815260048101939093529051600160a060020a033081169416926302571be392602480830193919282900301818887803b1515611caa57fe5b60325a03f11515611cb757fe5b50505060405180519050600160a060020a03161415611a4057600080546001546040805160e060020a6306ab5923028152600481019290925260248201869052600160a060020a03308116604484015290519216926306ab59239260648084019382900301818387803b1515611d2957fe5b60325a03f11515611d3657fe5b50506001546040805191825260208201859052805191829003810182206000805460e160020a630c4b7b8502855260048501839052602485018290529251919550600160a060020a039092169350631896f70a92604480820193929182900301818387803b1515611da357fe5b60325a03f11515611db057fe5b5050600080546040805160e060020a635b0fc9c302815260048101869052602481018490529051600160a060020a039092169350635b0fc9c392604480830193919282900301818387803b1515611e0357fe5b60325a03f11515610aa457fe5b5050505b5b5050565b805160009060018381019184010182805b82841015611ebf5750825160ff166080811015611e4c57600184019350611eaf565b60e08160ff161015611e6357600284019350611eaf565b60f08160ff161015611e7a57600384019350611eaf565b60f88160ff161015611e9157600484019350611eaf565b60fc8160ff161015611ea857600584019350611eaf565b6006840193505b5b5b5b5b5b600190910190611e2a565b8194505b50505050919050565b600081831115611edd5750816116db565b50806116db565b5b92915050565b600081831015611edd5750816116db565b50806116db565b5b92915050565b60008054600154604080516020908101859052815160e060020a6302571be302815260048101939093529051600160a060020a03308116959416936302571be3936024808201949392918390030190829087803b1515611f6657fe5b60325a03f11515611f7357fe5b50505060405180519050600160a060020a03161415611a4057600080546001546040805160e060020a6306ab5923028152600481019290925260248201869052600160a060020a03858116604484015290519216926306ab59239260648084019382900301818387803b1515611e0357fe5b60325a03f11515610aa457fe5b5050505b5b5050565b6000548251600160a060020a03909116906306ab592390839085908790811061202057fe5b602090810290910101516040805160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a033016604483015251606480830192600092919082900301818387803b151561207957fe5b60325a03f1151561208657fe5b50505080828481518110151561209857fe5b60209081029091018101516040805193845291830152805191829003019020905060008311156120d0576120d0600184038383611ffb565b5b600080546040805160e160020a630c4b7b8502815260048101859052602481018490529051600160a060020a0390921692631896f70a9260448084019382900301818387803b151561211f57fe5b60325a03f1151561212c57fe5b5050600080546040805160e060020a635b0fc9c302815260048101869052602481018490529051600160a060020a039092169350635b0fc9c392604480830193919282900301818387803b151561217f57fe5b60325a03f1151561218c57fe5b5050505b505050565b604051610516806121a6833901905600606060405260405160208061051683398101604052515b60028054600160a060020a03808416600160a060020a0319928316179092556000805433909316929091169190911790554260019081556005805460ff19169091179055346004555b505b6104a6806100706000396000f300606060405236156100885763ffffffff60e060020a60003504166305b34410811461008a5780630b5ab3d5146100ac57806313af4035146100be5780632b20e397146100dc5780633fa4f24514610108578063674f220f1461012a5780638da5cb5b14610156578063b0c8097214610182578063bbe427711461019c578063faab9d39146101b1575bfe5b341561009257fe5b61009a6101cf565b60408051918252519081900360200190f35b34156100b457fe5b6100bc6101d5565b005b34156100c657fe5b6100bc600160a060020a036004351661021d565b005b34156100e457fe5b6100ec6102c3565b60408051600160a060020a039092168252519081900360200190f35b341561011057fe5b61009a6102d2565b60408051918252519081900360200190f35b341561013257fe5b6100ec6102d8565b60408051600160a060020a039092168252519081900360200190f35b341561015e57fe5b6100ec6102e7565b60408051600160a060020a039092168252519081900360200190f35b341561018a57fe5b6100bc60043560243515156102f6565b005b34156101a457fe5b6100bc600435610382565b005b34156101b957fe5b6100bc600160a060020a0360043516610431565b005b60015481565b60055460ff16156101e65760006000fd5b600254604051600160a060020a039182169130163180156108fc02916000818181858888f193505050501561021a5761deadff5b5b565b60005433600160a060020a039081169116146102395760006000fd5b600160a060020a038116151561024f5760006000fd5b600280546003805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03808516919091179092559084169116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a15b5b50565b600054600160a060020a031681565b60045481565b600354600160a060020a031681565b600254600160a060020a031681565b60005433600160a060020a039081169116146103125760006000fd5b60055460ff1615156103245760006000fd5b8160045410156103345760006000fd5b6004829055600254604051600160a060020a039182169130163184900380156108fc02916000818181858888f193505050501580156103705750805b1561037b5760006000fd5b5b5b5b5050565b60005433600160a060020a0390811691161461039e5760006000fd5b60055460ff1615156103b05760006000fd5b6005805460ff1916905561dead6108fc6103e883810330600160a060020a031631025b604051919004801590920291906000818181858888f1935050505015156103fa5760006000fd5b6040517fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1390600090a16102bf6101d5565b5b5b5b50565b60005433600160a060020a0390811691161461044d5760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b505600a165627a7a72305820fbfa6f8a2024760ef0e0eb29a332c9a820526e92f8b4fbcce6f00c7643234b1400297b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7a165627a7a723058203c2db82e7c80cd1e371fe349b03d49b812c324ba4a3fcd063b7bc2662353c5de0029000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae00000000000000000000000000000000000000000000000000000000590b09b0

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

-----Decoded View---------------
Found 3 constructor arguments :
Arg [0] : 000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b
Arg [1] : 93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae
Arg [2] : 00000000000000000000000000000000000000000000000000000000590b09b0


   Swarm Source:
bzzr://3c2db82e7c80cd1e371fe349b03d49b812c324ba4a3fcd063b7bc2662353c5de

 

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