Sponsored:   Ubex.com - World roadshow: Seoul Sep 17-19, Singapore Sep 19-20, Dubai 18-23. Meet us!.
 Latest 25 txns From a total of 11533 Transactions

TxHash Age From To Value [TxFee]
0xd6b387c401c18a6f80dfa99cd5a57936337b591dfd7e95122cf95c6cca0c5aaf1 hr 39 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00037575
0x4bf41a7866051240ffe333b8709cad72c10a59f18778b6ede2ea45b51f55dfdb2 hrs 14 mins ago0xe9120f6e5b4820021cced28524b56f39595f236c  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00052639
0x1e25ed345c8d550f26e90bdbf52bca20270aa8971e790c61ef7b9c205d844bdc7 hrs 15 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000338751
0x7253372ad48174840ab8988a34c7ab7724d1d259e83c51e995354d7d221c17098 hrs 24 mins ago0x00799bbc833d5b168f0410312d2a8fd9e0e3079c  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000412621
0x49c0b87730655751fff98f7133d56edeab53e72f27b98ab3e94f183d2c7cac0f9 hrs 29 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000263473
0x3e300ec5742a17d2d74b8461f30aa85b4670a0e44ce9b0cfdd8a48133ff65dd19 hrs 55 mins ago0xb69f7809b5923f054837163e7dc43835a4bdd7e3  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0001199867
0xabbb07d2eef07196752aa9cb5ff52a96a8af410cd120b9bb7744101a55361c529 hrs 57 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000368473
0xe90a8a99f5436770228a8fe5c7fca8f26269477c40ed8ab52b2857382b6811559 hrs 57 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000263473
0x63ceb61a359a7ba72d4c6b9b57439366acd8f3cd56c1b11f77db39cbbd5c06f49 hrs 59 mins ago0xa12431d0b9db640034b0cdfceef9cce161e62be4  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00025889175
0xb5c23a7bda0bd6264b16e3c482cd8afbd805973d7fd3a0200ce49c259d06ae7c13 hrs 53 mins ago0xaf0586cbe35d482b8e70893c71b7bc4ba319d9b5  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000940975
0xe28338eb42153cd6b8f6c310df1c459d27ced228cec2634d769a4acbe47133e914 hrs 32 mins ago0x34490a5db4047d810fbb8f3381040b22c5bb83f5  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000263473
0x030aef5d5a9dc4abb8cd26e2d1a0308830f4914aa5485de8a06f073e1bca693121 hrs 53 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000263473
0x45b719b241965e5492722903aadc101372cc831b1e983090e47801eaca40bfbd21 hrs 54 mins ago0xa12431d0b9db640034b0cdfceef9cce161e62be4  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0002446535
0x7a3ef1bc792ce10df317b64d2da55b168be705e10e1a179c7939bcdbe9a8994d1 day 4 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000410085
0xe3e13559872e5afb001196b89e7b72051dd60344a06f0bca3f594281994759ef1 day 4 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0005211261
0x6542de08c7dcb352affaf2265664870bf29dbeb2e1a4ae6f4af30ed4ff6e61b01 day 6 hrs ago0xc1de55fc38179e1052ffd9691e8c5318fc5ecfc2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00075022
0xcb45ee42efeb83b032f7a0569cd6ff7092f07d47a9cae3eae228b3e2a820076e1 day 8 hrs ago0x68d08f6323537b9019db38c63d3d4483e5dbb685  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000928199
0xeaa0955324f0740ce31f55b02159e34a97b335b9ecb540421b9f489b74294a851 day 16 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000263195
0xca3be83be689348dc5a1905e42fa4d150a93f62ad6348cff381b6d6fda9d34481 day 18 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000213717382
0x182832fbbab78aa7c632e411d5bce4829291e947a29e932a08f9d1f8c5dccb201 day 22 hrs ago0xa9bb9dcf15c078baa5c96b4e6f6b570e96a5e91d  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000187555
0xa667bf0337516fc02f7f6d9be95e8c5d45c5f5d5199d455c838f816edd39416b2 days 1 hr agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0003952095
0xd72b61ded1cf52c2a4286f860b60b49e7b2ad7fbb8408f78e743398ffc7f4fb92 days 1 hr ago0xa12431d0b9db640034b0cdfceef9cce161e62be4  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0002446535
0x00af0a6116c6bcaa6e42a40e3533de7df405228731bd48cb662beb129d0db7042 days 3 hrs ago0x5898213b10f76f422871b1300069e10ae7d56e89  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00022575
0x24b8e0bf070b13d0e2ec7822077e367ffb704746905f07c276e03c486500f0b32 days 6 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000202840732
0xf7e4790aa6032cd6567e24c0f474a673b3caa9f211d98d068739da6ac2a50d062 days 6 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000263195
[ 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
0xc6b6a39f4a1189a50b2770c0d10e9c067364e5cc90f7289d3372dcabe3e4c23e581825590 days 23 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f  Contract Creation0 Ether
0x62d6757c997580802e92da912dc5704613b824a62fd140c3025cae293fc7e3c15624334125 days 2 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.5 Ether
0xc396eb503736372504286c782f00d2d63928e7bb5448fbc4957003a40bc6af525624332125 days 2 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.19094226471669826 Ether
0x4d46ca0ae3e3620f93d22cbe5acb0f9dc6e150c280d06cc4d44840b176db712a5624309125 days 2 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.099998 Ether
0x4b5f348438d3996a798e9d74e13c8eac039af7f404ea0af03f452f95a8459fcc5624256125 days 2 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.22 Ether
0xec8ccd5f7a1d494dfcccdec2190656a557c45d6d6f84bc454f40e31999911ce75624253125 days 2 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.049 Ether
0xf3eb0a85c16ebafcccd0c91667e23b5ca61b3555eab335922a15412a91742acd5624226125 days 2 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.355 Ether
0xaa7fa06f474d85db5220615f717c69d415de11e9b9456e7652dfdfd1942426075624195125 days 3 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.2 Ether
0xadd0c1d3a2824cffb7b17dca462531658143b943d16c6213d2a2517b7048ce0d5624016125 days 3 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.061 Ether
0x81d05c9d721eb139e67ab2b77057b6682f3ee6800d983270dfe5a6c7ee612bd55623985125 days 4 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.1 Ether
0xeb618de959f0170af57fb4643d53f41ff153801185a741d9aa402ad89760b72b5623980125 days 4 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.075 Ether
0x2398af28780f350713517e90ad84cd5de27ec1249c49dcc8df65eb064d3bb26e5623791125 days 4 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f171.036644252 Ether
0xa70da6cafb870b1914ce70f3dae7881aabb21aedcd03a117b20ac15279ee6d615623736125 days 5 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f172 Ether
0x7113fc26621c868e417c5d0e13790e16e6e60ce6db0f1b16b7c537fcc3676b8f5623554125 days 5 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.09 Ether
0x721aa30ff232a2f474ce30bd106870bf372ab04209ad6eae1d43db978829f41e5623547125 days 5 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f172.32 Ether
0xe6b6366c780828a7cb98525fd4640bfaf5af68d2c53552e9cd94940cf82cbe9c5623292125 days 7 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f171 Ether
0x682e5acfb05582037c1f3f972a3fa1933b2707a84579a110b3e38dca7405705a5623198125 days 7 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.14 Ether
0xa43fbd87e8c8f4a8438e4eaa20c8a9740f37e05d050ba90263eaa23477878fdf5623025125 days 8 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.4 Ether
0x17d53bcbc39a0abb5b6be0f8ce9c9442d6a6ab44eba686d20402c50ba15550035622966125 days 8 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.087 Ether
0x0c621dd30caa35125038e56927e356c5624f30213c6c8b88831be2e93abb150f5622847125 days 8 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f171.1 Ether
0xb8cd4f98bf809b832cc8016e7064b86b642ab7f230e2c1b204ad7ab13f28f3f75622573125 days 10 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.01 Ether
0x33d74b2a2cd0de9b217db910559a2eefb0b9802457b13f5d333e3e7754eb42a55622349125 days 10 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.28 Ether
0x3a1597952b13cc6ea67f3ab727d67067bf46a27e0c977889cffb6349b7d17a505622334125 days 10 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.306 Ether
0xb0ce3e83bece442e6dce2ad47ead13f1161378a0a7e4e6900429449b2b3037d35622277125 days 11 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.175 Ether
0x07256dd48152a99d73d1d760ebc609bee2d0b0a9d89707f149cbe957eb565ae65622167125 days 11 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.29 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: DoradoToken
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/**
 * The dorado token contract bases on the ERC20 standard token contracts from
 * open-zeppelin and is extended by functions to issue tokens as needed by the 
 * dorado ICO.
 * authors: Julia Altenried, Yuri Kashnikov
 * */

pragma solidity 0.4.19;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a * b;
        require(a == 0 || c / a == b);
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) public balances;

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
        assert(token.transfer(to, value));
    }

    function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal {
        assert(token.transferFrom(from, to, value));
    }

    function safeApprove(ERC20 token, address spender, uint256 value) internal {
        assert(token.approve(spender, value));
    }
}

/**
 * @title TokenTimelock
 * @dev TokenTimelock is a token holder contract that will allow a
 * beneficiary to extract the tokens after a given release time
 */
contract TokenTimelock {
    using SafeERC20 for ERC20Basic;

    // ERC20 basic token contract being held
    ERC20Basic public token;

    // beneficiary of tokens after they are released
    address public beneficiary;

    // timestamp when token release is enabled
    uint64 public releaseTime;

    function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) public {
        require(_releaseTime > uint64(block.timestamp));
        token = _token;
        beneficiary = _beneficiary;
        releaseTime = _releaseTime;
    }

    /**
     * @notice Transfers tokens held by timelock to beneficiary.
     */
    function release() public {
        require(uint64(block.timestamp) >= releaseTime);

        uint256 amount = token.balanceOf(this);
        require(amount > 0);

        token.safeTransfer(beneficiary, amount);
    }
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) internal allowed;

    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     *
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    /**
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     */
    function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

contract Owned {
    address public owner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function Owned() public {
        owner = msg.sender;
    }
    
    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
}

contract DoradoToken is StandardToken, Owned {
    string public constant name = "DoradoToken";
    string public constant symbol = "DOR";
    uint8 public constant decimals = 15;

    /// Maximum tokens to be allocated on the sale (51% of the hard cap)
    uint256 public constant TOKENS_SALE_HARD_CAP = 510000000000000000000000; // 510000000 * 10**15

    /// Base exchange rate is set to 1 ETH = 6667 DOR.
    uint256 public constant BASE_RATE = 6667;

    /// seconds since 01.01.1970 to 07.02.2018 (16:00:00 o'clock UTC)
    /// HOT sale start time
    uint64 private constant dateHOTSale = 1517961600 + 16 hours;

    /// HOT sale end time; Sale A start time 21.02.2018
    uint64 private constant dateSaleA = 1519171200 + 16 hours;

    /// Sale A end time; Sale B start time 07.03.2018
    uint64 private constant dateSaleB = 1520380800 + 16 hours;

    /// Sale B end time; Sale C start time 21.03.2018
    uint64 private constant dateSaleC = 1521590400 + 16 hours;

    /// Sale C end time; Sale D start time 04.04.2018
    uint64 private constant dateSaleD = 1522800000 + 16 hours;

    /// Sale D end time; Sale E start time 18.04.2018
    uint64 private constant dateSaleE = 1524009600 + 16 hours;

    /// Sale E end time;  Sale F start time 02.05.2018
    uint64 private constant dateSaleF = 1525219200 + 16 hours;

    /// Sale F end time; 16.05.2018 
    uint64 private constant date16May2018 = 1526428800 + 16 hours;
    
    /// token caps for each round
    uint256[7] private roundCaps = [
        70000000000000000000000, // HOT sale  70000000 * 10**15 
        140000000000000000000000, // Sale A   140000000 * 10**15
        210000000000000000000000, // Sale B   210000000 * 10**15
        285000000000000000000000, // Sale C   285000000 * 10**15
        360000000000000000000000, // Sale D   360000000 * 10**15
        435000000000000000000000, // Sale E   435000000 * 10**15
        510000000000000000000000  // Sale F   510000000 * 10**15
    ];
    uint8[7] private roundDiscountPercentages = [33, 30, 27, 22, 17, 12, 7];

    
    /// team tokens are locked until this date (01.01.2021) 00:00:00
    uint64 private constant dateTeamTokensLockedTill = 1609459200;
   

    /// no tokens can be ever issued when this is set to "true"
    bool public tokenSaleClosed = false;

    /// contract to be called to release the Dorado team tokens
    address public timelockContractAddress;

    modifier inProgress {
        require(totalSupply < TOKENS_SALE_HARD_CAP
            && !tokenSaleClosed && now >= dateHOTSale);
        _;
    }

    /// Allow the closing to happen only once
    modifier beforeEnd {
        require(!tokenSaleClosed);
        _;
    }

    /// Require that the token sale has been closed
    modifier tradingOpen {
        require(tokenSaleClosed);
        _;
    }

    function DoradoToken() public {
    }

    /// @dev This default function allows token to be purchased by directly
    /// sending ether to this smart contract.
    function () public payable {
        purchaseTokens(msg.sender);
    }

    /// @dev Issue token based on Ether received.
    /// @param _beneficiary Address that newly issued token will be sent to.
    function purchaseTokens(address _beneficiary) public payable inProgress {
        // only accept a minimum amount of ETH?
        require(msg.value >= 0.01 ether);

        uint256 tokens = computeTokenAmount(msg.value);
        
        // roll back if hard cap reached
        require(totalSupply.add(tokens) <= TOKENS_SALE_HARD_CAP);
        
        doIssueTokens(_beneficiary, tokens);

        /// forward the raised funds to the contract creator
        owner.transfer(this.balance);
    }

    /// @dev Batch issue tokens on the presale
    /// @param _addresses addresses that the presale tokens will be sent to.
    /// @param _addresses the amounts of tokens, with decimals expanded (full).
    function issueTokensMulti(address[] _addresses, uint256[] _tokens) public onlyOwner beforeEnd {
        require(_addresses.length == _tokens.length);
        require(_addresses.length <= 100);

        for (uint256 i = 0; i < _tokens.length; i = i.add(1)) {
            doIssueTokens(_addresses[i], _tokens[i]);
        }
    }

    /// @dev Issue tokens for a single buyer on the presale
    /// @param _beneficiary addresses that the presale tokens will be sent to.
    /// @param _tokens the amount of tokens, with decimals expanded (full).
    function issueTokens(address _beneficiary, uint256 _tokens) public onlyOwner beforeEnd {
        doIssueTokens(_beneficiary, _tokens);
    }

    /// @dev issue tokens for a single buyer
    /// @param _beneficiary addresses that the tokens will be sent to.
    /// @param _tokens the amount of tokens, with decimals expanded (full).
    function doIssueTokens(address _beneficiary, uint256 _tokens) internal {
        require(_beneficiary != address(0));

        // increase token total supply
        totalSupply = totalSupply.add(_tokens);
        // update the beneficiary balance to number of tokens sent
        balances[_beneficiary] = balances[_beneficiary].add(_tokens);

        // event is fired when tokens issued
        Transfer(address(0), _beneficiary, _tokens);
    }

    /// @dev Returns the current price.
    function price() public view returns (uint256 tokens) {
        return computeTokenAmount(1 ether);
    }

    /// @dev Compute the amount of DOR token that can be purchased.
    /// @param ethAmount Amount of Ether in WEI to purchase DOR.
    /// @return Amount of DOR token to purchase
    function computeTokenAmount(uint256 ethAmount) internal view returns (uint256 tokens) {
        uint256 tokenBase = (ethAmount.mul(BASE_RATE)/10000000000000)*10000000000;//18 decimals to 15 decimals, set precision to 5 decimals
        uint8 roundNum = currentRoundIndex();
        tokens = tokenBase.mul(100)/(100 - (roundDiscountPercentages[roundNum]));
        while(tokens.add(totalSupply) > roundCaps[roundNum] && roundNum < 6){
           roundNum++;
           tokens = tokenBase.mul(100)/(100 - (roundDiscountPercentages[roundNum])); 
        }
    }

    /// @dev Determine the current sale round
    /// @return integer representing the index of the current sale round
    function currentRoundIndex() internal view returns (uint8 roundNum) {
        roundNum = currentRoundIndexByDate();

        /// round determined by conjunction of both time and total sold tokens
        while(roundNum < 6 && totalSupply > roundCaps[roundNum]) {
            roundNum++;
        }
    }

    /// @dev Determine the current sale tier.
    /// @return the index of the current sale tier by date.
    function currentRoundIndexByDate() internal view returns (uint8 roundNum) {
        require(now <= date16May2018); 
        if(now > dateSaleF) return 6;
        if(now > dateSaleE) return 5;
        if(now > dateSaleD) return 4;
        if(now > dateSaleC) return 3;
        if(now > dateSaleB) return 2;
        if(now > dateSaleA) return 1;
        else return 0;
    }

    /// @dev Closes the sale, issues the team tokens and burns the unsold
    function close() public onlyOwner beforeEnd {
        /// team tokens are equal to 15% of the sold tokens
        /// 8% foodout group tokens are added to the locked tokens
        uint256 lockedTokens = 230000000000000000000000;
        //partner tokens are available from the beginning
        uint256 partnerTokens = 260000000000000000000000;
        
        issueLockedTokens(lockedTokens);
        issuePartnerTokens(partnerTokens);
        
        /// increase token total supply
        totalSupply = totalSupply.add(lockedTokens+partnerTokens);
        
        /// burn the unallocated tokens - no more tokens can be issued after this line
        tokenSaleClosed = true;

        /// forward the raised funds to the contract creator
        owner.transfer(this.balance);
    }
    
    /**
     * issue the tokens for the team and the foodout group.
     * tokens are locked for 3 years.
     * @param lockedTokens the amount of tokens to the issued and locked
     * */
    function issueLockedTokens( uint lockedTokens) internal{
        /// team tokens are locked until this date (01.01.2021)
        TokenTimelock lockedTeamTokens = new TokenTimelock(this, owner, dateTeamTokensLockedTill);
        timelockContractAddress = address(lockedTeamTokens);
        balances[timelockContractAddress] = balances[timelockContractAddress].add(lockedTokens);
        /// fire event when tokens issued
        Transfer(address(0), timelockContractAddress, lockedTokens);
        
    }
    
    /**
     * issue the tokens for partners and advisors
     * @param partnerTokens the amount of tokens to be issued
     * */
    function issuePartnerTokens(uint partnerTokens) internal{
        balances[owner] = partnerTokens;
        Transfer(address(0), owner, partnerTokens);
    }

    /// Transfer limited by the tradingOpen modifier
    function transferFrom(address _from, address _to, uint256 _value) public tradingOpen returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    /// Transfer limited by the tradingOpen modifier
    function transfer(address _to, uint256 _value) public tradingOpen returns (bool) {
        return super.transfer(_to, _value);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BASE_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"issueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timelockContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_tokens","type":"uint256[]"}],"name":"issueTokensMulti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_SALE_HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260e06040519081016040908152690ed2b525841adfc000008252691da56a4b0835bf8000006020830152692c781f708c509f40000090820152693c59e1867548d82000006060820152694c3ba39c5e41110000006080820152695c1d65b2473949e0000060a0820152696bff27c8303182c0000060c08201526200008d90600490600762000110565b5060e0604051908101604090815260218252601e6020830152601b908201526016606082015260116080820152600c60a0820152600760c08201819052620000d891600b916200015e565b50600c805460ff191690553415620000ef57600080fd5b60038054600160a060020a03191633600160a060020a031617905562000235565b82600781019282156200014c579160200282015b828111156200014c57825182906001605060020a031690559160200191906001019062000124565b506200015a929150620001f4565b5090565b600183019183908215620001e65791602002820160005b83821115620001b557835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262000175565b8015620001e45782816101000a81549060ff0219169055600101602081600001049283019260010302620001b5565b505b506200015a92915062000214565b6200021191905b808211156200015a5760008155600101620001fb565b90565b6200021191905b808211156200015a57805460ff191681556001016200021b565b61159f80620002456000396000f3006060604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013d578063095ea7b3146101c757806318160ddd146101fd57806323b872dd1461022257806327e235e31461024a578063313ce5671461026957806341910f901461029257806343d726d6146102a5578063475a9fa9146102b857806366188463146102da57806370a08231146102fc5780637fc88fe21461031b5780638da5cb5b1461034a57806392e8438c1461035d57806395d89b41146103ec578063a035b1fe146103ff578063a9059cbb14610412578063ce55703114610434578063d73dd62314610448578063dd62ed3e1461046a578063e55a07c21461048f578063f2fde38b146104a2578063f946372c146104c1575b61013b336104d4565b005b341561014857600080fd5b6101506105a0565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018c578082015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b6101e9600160a060020a03600435166024356105d7565b604051901515815260200160405180910390f35b341561020857600080fd5b610210610643565b60405190815260200160405180910390f35b341561022d57600080fd5b6101e9600160a060020a0360043581169060243516604435610649565b341561025557600080fd5b610210600160a060020a0360043516610670565b341561027457600080fd5b61027c610682565b60405160ff909116815260200160405180910390f35b341561029d57600080fd5b610210610687565b34156102b057600080fd5b61013b61068d565b34156102c357600080fd5b61013b600160a060020a0360043516602435610746565b34156102e557600080fd5b6101e9600160a060020a036004351660243561077b565b341561030757600080fd5b610210600160a060020a0360043516610875565b341561032657600080fd5b61032e610890565b604051600160a060020a03909116815260200160405180910390f35b341561035557600080fd5b61032e6108a4565b341561036857600080fd5b61013b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506108b395505050505050565b34156103f757600080fd5b61015061095c565b341561040a57600080fd5b610210610993565b341561041d57600080fd5b6101e9600160a060020a03600435166024356109ac565b61013b600160a060020a03600435166104d4565b341561045357600080fd5b6101e9600160a060020a03600435166024356109d1565b341561047557600080fd5b610210600160a060020a0360043581169060243516610a75565b341561049a57600080fd5b6101e9610aa0565b34156104ad57600080fd5b61013b600160a060020a0360043516610aa9565b34156104cc57600080fd5b610210610b44565b6000696bff27c8303182c000006000541080156104f45750600c5460ff16155b80156105045750635a7b22804210155b151561050f57600080fd5b662386f26fc1000034101561052357600080fd5b61052c34610b52565b9050696bff27c8303182c0000061054e82600054610c6f90919063ffffffff16565b111561055957600080fd5b6105638282610c81565b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059c57600080fd5b5050565b60408051908101604052600b81527f446f7261646f546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600c5460009060ff16151561065d57600080fd5b610668848484610d18565b949350505050565b60016020526000908152604090205481565b600f81565b611a0b81565b600354600090819033600160a060020a039081169116146106ad57600080fd5b600c5460ff16156106bd57600080fd5b506930b453321fc603c00000905069370ea0d47cf61a8000006106df82610e88565b6106e881610f94565b6000546106fd9083830163ffffffff610c6f16565b600055600c805460ff19166001179055600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059c57600080fd5b60035433600160a060020a0390811691161461076157600080fd5b600c5460ff161561077157600080fd5b61059c8282610c81565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156107d857600160a060020a03338116600090815260026020908152604080832093881683529290529081205561080f565b6107e8818463ffffffff610fdf16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b600c546101009004600160a060020a031681565b600354600160a060020a031681565b60035460009033600160a060020a039081169116146108d157600080fd5b600c5460ff16156108e157600080fd5b81518351146108ef57600080fd5b6064835111156108fe57600080fd5b5060005b81518110156109575761093f83828151811061091a57fe5b9060200190602002015183838151811061093057fe5b90602001906020020151610c81565b61095081600163ffffffff610c6f16565b9050610902565b505050565b60408051908101604052600381527f444f520000000000000000000000000000000000000000000000000000000000602082015281565b60006109a6670de0b6b3a7640000610b52565b90505b90565b600c5460009060ff1615156109c057600080fd5b6109ca8383610ff4565b9392505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a09908363ffffffff610c6f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600c5460ff1681565b60035433600160a060020a03908116911614610ac457600080fd5b600160a060020a0381161515610ad957600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b696bff27c8303182c0000081565b600080806509184e72a000610b6f85611a0b63ffffffff6110dd16565b811515610b7857fe5b046402540be400029150610b8a611104565b9050600b60ff821660078110610b9c57fe5b602091828204019190069054906101000a900460ff1660640360ff16610bcc6064846110dd90919063ffffffff16565b811515610bd557fe5b0492505b600460ff821660078110610be957fe5b0154600054610bff90859063ffffffff610c6f16565b118015610c0f575060068160ff16105b15610c6857600101600b60ff821660078110610c2757fe5b602091828204019190069054906101000a900460ff1660640360ff16610c576064846110dd90919063ffffffff16565b811515610c6057fe5b049250610bd9565b5050919050565b6000828201838110156109ca57600080fd5b600160a060020a0382161515610c9657600080fd5b600054610ca9908263ffffffff610c6f16565b6000908155600160a060020a038316815260016020526040902054610cd4908263ffffffff610c6f16565b600160a060020a0383166000818152600160205260408082209390935590916000805160206115548339815191529084905190815260200160405180910390a35050565b6000600160a060020a0383161515610d2f57600080fd5b600160a060020a038416600090815260016020526040902054821115610d5457600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610d8757600080fd5b600160a060020a038416600090815260016020526040902054610db0908363ffffffff610fdf16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610de5908363ffffffff610c6f16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610e2d908363ffffffff610fdf16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516916000805160206115548339815191529085905190815260200160405180910390a35060019392505050565b6003546000903090600160a060020a0316635fee6600610ea66111d6565b600160a060020a03938416815291909216602082015267ffffffffffffffff90911660408083019190915260609091019051809103906000f0801515610eeb57600080fd5b600c805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038481168202929092179283905590910416600090815260016020526040902054909150610f3f9083610c6f565b600c8054600160a060020a036101009182900481166000908152600160205260408082209590955592549190910416916000805160206115548339815191529085905190815260200160405180910390a35050565b60038054600160a060020a039081166000908152600160205260408082208590559254909116916000805160206115548339815191529084905190815260200160405180910390a350565b600082821115610fee57600080fd5b50900390565b6000600160a060020a038316151561100b57600080fd5b600160a060020a03331660009081526001602052604090205482111561103057600080fd5b600160a060020a033316600090815260016020526040902054611059908363ffffffff610fdf16565b600160a060020a03338116600090815260016020526040808220939093559085168152205461108e908363ffffffff610c6f16565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206115548339815191529085905190815260200160405180910390a350600192915050565b60008282028315806110f957508284828115156110f657fe5b04145b15156109ca57600080fd5b600061110e611143565b90505b60068160ff161080156111365750600460ff82166007811061112f57fe5b0154600054115b156109a957600101611111565b6000635afc558042111561115657600080fd5b635ae9e08042111561116a575060066109a9565b635ad76b8042111561117e575060056109a9565b635ac4f680421115611192575060046109a9565b635ab281804211156111a6575060036109a9565b635aa00c804211156111ba575060026109a9565b635a8d97804211156111ce575060016109a9565b5060006109a9565b60405161036d806111e78339019056006060604052341561000f57600080fd5b60405160608061036d8339810160405280805191906020018051919060200180519150506001604060020a034281169082161161004b57600080fd5b60008054600160a060020a0319908116600160a060020a0395861617825560018054909116939094169290921760a060020a60e060020a031916740100000000000000000000000000000000000000006001604060020a039290921691909102179091556102ae9081906100bf90396000f3006060604052600436106100485763ffffffff60e060020a60003504166338af3eed811461004d57806386d1a69f1461007c578063b91d400114610091578063fc0c546a146100c1575b600080fd5b341561005857600080fd5b6100606100d4565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b61008f6100e3565b005b341561009c57600080fd5b6100a46101c6565b60405167ffffffffffffffff909116815260200160405180910390f35b34156100cc57600080fd5b6100606101ee565b600154600160a060020a031681565b60015460009067ffffffffffffffff74010000000000000000000000000000000000000000909104811642909116101561011c57600080fd5b60008054600160a060020a0316906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561017757600080fd5b6102c65a03f1151561018857600080fd5b5050506040518051915050600081116101a057600080fd5b6001546000546101c391600160a060020a0391821691168363ffffffff6101fd16565b50565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff1681565b600054600160a060020a031681565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561025a57600080fd5b6102c65a03f1151561026b57600080fd5b50505060405180519050151561027d57fe5b5050505600a165627a7a723058205a1fdd9d750a8f1788c842c091210356e341e5e4fba386728d5595efc4ad28680029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b07a2e65cd57474afc38ab7b1ce5a7e7effe644697c932919f4d62ed5059b2130029

   Swarm Source:
bzzr://b07a2e65cd57474afc38ab7b1ce5a7e7effe644697c932919f4d62ed5059b213

 

View All
Block Age transaction Difficulty 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.