Sponsored Link:   Color - Revolutionizing the Dapp Ecosystem, Bounty & Airdrop, Get 240,000 COL NOW!
 Latest 25 txns from a total Of 10676 transactions

TxHash Age From To Value [TxFee]
0x81b400b656fc123b146c9cc35f90b4db15582c1c5f7bc6d1b4ac54b91a498b242 hrs 45 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000564585
0x04624ed7da6267f3f785bbaf536f780c286cfbef2e864ceb12ed90bb3140178e5 hrs 19 mins ago0x46af6e88eb5f81b1b6c0a6812e009a0e56f8354d  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000157533
0xc3ff382dd5e8de10bb2125e6b109f6b72f3b6120c83f7a4e263dc3e97d80df3e6 hrs 14 mins ago0x57be6dde44bbd27a3c16e850716ef96a4fa74eda  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000420098502
0x928b1a40e28b44699b8cfac912d2a1f0995fc51e77172cf0e7073fedc23cc6867 hrs 29 mins ago0x9cb37d0ae943c8b4256e71f98b2dd0935e89344f  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.002234925
0x948697087dffce7089047f95fbf96bba9a7f75a474e93d4810c35781a5f320468 hrs 45 mins ago0xf9c5e1181c2cb98ac915de70675c2a0dfa720bbf  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00082665
0x1e6e5f2dab2048cc733bf63746f81f623103566bb27230e74f90a732b3e376779 hrs 32 mins ago0x9cb37d0ae943c8b4256e71f98b2dd0935e89344f  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.003719925
0xd14ec1bfa3987d74c16ec4421e3eb5478f7530736b1f3a9cac047d01069eb78910 hrs 6 mins ago0x9cb37d0ae943c8b4256e71f98b2dd0935e89344f  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.005204925
0x71f4bb7f27b52fef01a250848567ecad1cd8a11f565b24462868535f7c07e24311 hrs 1 min ago0xd4ac2250be9ad10c32a0c1a0cb59dc91a8198fd9  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000301112
0x1ce37ed67fe0ca0ffcbac54ce695f1ffde70922a5a5da4078de2940c0f428b8114 hrs 49 mins ago0x9e8eb04d606d8a60e7574c21776d0986b2f58fa3  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000790419
0x3873778f5888353d1791ca6db266402c6569d3c354de7f4c08b52327b147927c15 hrs 23 mins agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000730627672
0x4677bf91cd0ad034b283a235ed0b0459e4ae54140caa523a6f47aea80c5a331222 hrs 15 mins ago0x8504dc9c25c49602a5cb4ef23350e28a5ed6e171  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00113109
0xe5fdca423764438fa71abd19e3cc998ed486fa74518586efa12b7722702b59ea1 day 56 mins ago0x7e1197d0c38a69018c96310e2594247c787e0e9b  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000188195
0x6767139e1bded88698b4b5acc7808df7c1ff2b75290f6f72f35060911c27982c1 day 1 hr ago0xb033828a6f580ced89abc9f0354f612537e812be  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0000563625
0x579fc1a4fa8168ed6a77ec47e581284dbf86157d1c8b9aa496250364cd5948071 day 1 hr ago0xb033828a6f580ced89abc9f0354f612537e812be  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000114
0xfff0e9284fed9943f0c46fa1e827460aecec689cdf9add5a5e8558d1607b5ac11 day 2 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00052605
0xe3efaca56a8e42f1413a9513021f046b2291e25150f13a97cb7f5111c95800731 day 5 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000413325
0xd90d8152d093a8b392a02226bd2124ab2ddb1de20ed739cae9afc84b5c664f7c1 day 5 hrs ago0xa12431d0b9db640034b0cdfceef9cce161e62be4  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00007515
0xdb056777d9d4893d52c659a37b439f1058d4542ac42ac24b07e18e04942dd0fc1 day 7 hrs ago0x88e51c33a1c394af389b64d2a8fa00c568eaa24a  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.001580838
0x99c6e5d8b4d079934b7d5163702342bd4d0c066be0bf0a20931ba763a4baaf141 day 7 hrs ago0xdb35ac403cbe92e2823361646b481668f57029ef  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.001693755
0x5e4203e884247c8e8f53256b365e258a9561b700c94b881d1adf5dcfc37f03be1 day 9 hrs ago0xbfeaf4493558f81b74eaab8b36a275f90b3ce402  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.000045022
0xb7ce5bb303c019ccc6f10821138bf2a0e9ca4223d5259b089a9bd22fbbecc44b1 day 10 hrs ago0xcb360533ca9c97cdd63b724f20ee6807998fe5ef  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.001537951
0xeb8523aaa8c4992108e995366d74fb27eaf485932a0507e3b956f456244c93481 day 11 hrs ago0xce3beb8515fda79c229a342edc3a8754608e2578  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00112917
0xf53e5a25a5e3080d0b376956eff9776e4a0fe210881c649f91daba2cea65edb11 day 11 hrs ago0xba2335aec4f49ab645978d80e45fb6386dc07619  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.001417597657
0xa06de1f6ba3896f6ab538c4112c5c6b47fb65e70ffc125f3d982e00c92b707ba1 day 12 hrs agoHitBTC_2  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.0010515
0x2bc1305b8029f667f355638ef318a98c72176dc9ae2c4fb2acb24b9e8a7897b41 day 12 hrs ago0x06e8236e69d9a3c5956fe5541d89ca8f54dec353  IN   0x906b3f8b7845840188eab53c3f5ad348a787752f0 Ether0.00172845
[ 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
0xc6b6a39f4a1189a50b2770c0d10e9c067364e5cc90f7289d3372dcabe3e4c23e581825529 days 3 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f  Contract Creation0 Ether
0x62d6757c997580802e92da912dc5704613b824a62fd140c3025cae293fc7e3c1562433463 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.5 Ether
0xc396eb503736372504286c782f00d2d63928e7bb5448fbc4957003a40bc6af52562433263 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.19094226471669826 Ether
0x4d46ca0ae3e3620f93d22cbe5acb0f9dc6e150c280d06cc4d44840b176db712a562430963 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.099998 Ether
0x4b5f348438d3996a798e9d74e13c8eac039af7f404ea0af03f452f95a8459fcc562425663 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.22 Ether
0xec8ccd5f7a1d494dfcccdec2190656a557c45d6d6f84bc454f40e31999911ce7562425363 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.049 Ether
0xf3eb0a85c16ebafcccd0c91667e23b5ca61b3555eab335922a15412a91742acd562422663 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.355 Ether
0xaa7fa06f474d85db5220615f717c69d415de11e9b9456e7652dfdfd194242607562419563 days 6 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.2 Ether
0xadd0c1d3a2824cffb7b17dca462531658143b943d16c6213d2a2517b7048ce0d562401663 days 7 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.061 Ether
0x81d05c9d721eb139e67ab2b77057b6682f3ee6800d983270dfe5a6c7ee612bd5562398563 days 7 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.1 Ether
0xeb618de959f0170af57fb4643d53f41ff153801185a741d9aa402ad89760b72b562398063 days 7 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.075 Ether
0x2398af28780f350713517e90ad84cd5de27ec1249c49dcc8df65eb064d3bb26e562379163 days 8 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f171.036644252 Ether
0xa70da6cafb870b1914ce70f3dae7881aabb21aedcd03a117b20ac15279ee6d61562373663 days 8 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f172 Ether
0x7113fc26621c868e417c5d0e13790e16e6e60ce6db0f1b16b7c537fcc3676b8f562355463 days 9 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.09 Ether
0x721aa30ff232a2f474ce30bd106870bf372ab04209ad6eae1d43db978829f41e562354763 days 9 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f172.32 Ether
0xe6b6366c780828a7cb98525fd4640bfaf5af68d2c53552e9cd94940cf82cbe9c562329263 days 10 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f171 Ether
0x682e5acfb05582037c1f3f972a3fa1933b2707a84579a110b3e38dca7405705a562319863 days 10 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.14 Ether
0xa43fbd87e8c8f4a8438e4eaa20c8a9740f37e05d050ba90263eaa23477878fdf562302563 days 11 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.4 Ether
0x17d53bcbc39a0abb5b6be0f8ce9c9442d6a6ab44eba686d20402c50ba1555003562296663 days 11 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.087 Ether
0x0c621dd30caa35125038e56927e356c5624f30213c6c8b88831be2e93abb150f562284763 days 12 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f171.1 Ether
0xb8cd4f98bf809b832cc8016e7064b86b642ab7f230e2c1b204ad7ab13f28f3f7562257363 days 13 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.01 Ether
0x33d74b2a2cd0de9b217db910559a2eefb0b9802457b13f5d333e3e7754eb42a5562234963 days 14 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.28 Ether
0x3a1597952b13cc6ea67f3ab727d67067bf46a27e0c977889cffb6349b7d17a50562233463 days 14 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.306 Ether
0xb0ce3e83bece442e6dce2ad47ead13f1161378a0a7e4e6900429449b2b3037d3562227763 days 14 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.175 Ether
0x07256dd48152a99d73d1d760ebc609bee2d0b0a9d89707f149cbe957eb565ae6562216763 days 15 hrs ago0x906b3f8b7845840188eab53c3f5ad348a787752f0x0093edcbafec827044456ee32fb61bf2762b3f170.29 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: DoradoToken
Compiler Version: 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 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.