Sponsored:   VC, TLDR and CoinBene Funded "TEMCO: Bitcoin Network (RSK) Suppy Chain! Whitelist KYC Starts Now!!"
Contract Overview
Balance: 11.177473827 Ether
Ether Value: $1,058.51 (@ $94.70/ETH)
Transactions: 21 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xe6c2d30ebcaa14d3a9b6038ef6509d043193edeeat txn 0x7c20ea6c19ec97f24eef0b79833269ae6f132799193453d06ad81f7d3be515a1
Token Balance:
 Latest 21 txns

TxHash Age From To Value [TxFee]
0xe79fc293a8027eef084cd9f5c45d31fcf37e146be8bb73ee7b95881fdc2e25849 days 11 hrs ago0x37170cf029c1c486921f66e83f8331890244f127  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.00029508
0x743ee79a3081609950cc50fefac35b49a509707ad092d9c897cad496a61d987b9 days 12 hrs ago0x7cb594e73533e7946ec37392eae210b3cd11b770  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.00044403
0x75a88606857bd46ba78f7ac3903709712aff0724e195e394a4f19f4422ecab1117 days 23 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.000397422
0x7ffce0aeae8651fa8f683e3f0ee333abb8aaafb0345711c0298f7cfafe7e8ef618 days 34 mins ago0xb0dbe677058846a32c5d290248d66455ac33a4a6  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d7.930528827 Ether0.000634905
0xf6b84fe72644710e17142ff0c11356b450fd204e7a6aeae8390e594f84f7ca5418 days 57 mins ago0xb0dbe677058846a32c5d290248d66455ac33a4a6  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d7.99892907 Ether0.000147
0x384669afd588514379822c05482589d35ad9ddb725304e0922515c6ca2f5b31a18 days 1 hr ago0xb0dbe677058846a32c5d290248d66455ac33a4a6  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d2.846945 Ether0.00092436
0xcad3b0323586eed3ee260e4673bcb971f29c1290b690e16ce70734e5035d834446 days 22 hrs ago0x5647bab4c6afd3905f3517d577f7844e11afdc3b  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.000577365
0x6edfcccfba030d8391b66229d93f39fb7724f1480548bea1a07977fb9192718c46 days 22 hrs ago0x5647bab4c6afd3905f3517d577f7844e11afdc3b  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.000042
0x7548ec3e70adf81386ac9a8071ae3af4b4348b58b59ba7bedea25570b7dc8ad147 days 12 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.000132474
0xbfc368e50b1c5db472f36c837a02e460d004874ab8012a7f22749d37344a72a047 days 13 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.000132474
0xac36b8893722dadc8214c5040809d43fcc5c52ee4326f25d004731f4e06c247c47 days 13 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.00116376
0xd9b53c8c47c40c5aea0498f2c47a3fb37cda06f379e78f28e482fe8f19da02b247 days 13 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.000132282
0xb69f09c124f6fcb96339b47463eaf2bbd07ef3409bdd6d94b8b961857f995e9347 days 21 hrs ago0x37170cf029c1c486921f66e83f8331890244f127  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.00130473
0xf616df2414a5c81c657bd8e939b0144732f966a685eed2097b37a93a7838feaa47 days 21 hrs ago0x37170cf029c1c486921f66e83f8331890244f127  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.11 Ether0.00021955
0xd71703d46b322b7ed39901d862070668900addb49fb09375fce7a9e322a4c2b847 days 21 hrs ago0x37170cf029c1c486921f66e83f8331890244f127  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.00021955
0x6f178515fc2a254f17418561e02909c0057a53c3257681cbc2d2134f2df8a86547 days 21 hrs ago0x37170cf029c1c486921f66e83f8331890244f127  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0.1 Ether0.00004391
0xeb0f5ccb9f8779b9d3a3ca9b2e1507c62d61c25efa161bdd92912128fb780f4648 days 4 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.0022079
0x1f279403d4c684ef7f0732bd1771d82feeeeee015616fe3e1239efb139fc707b48 days 5 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.00309106
0x7aded3f0e2a16efb3ca43ce5e2d5c5bb5ee2a7479db56a82ce565f5ee9aeb12448 days 6 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.00132474
0x3d189df590660aa7741566669ae3999227e6f1e2fe846cca9fe571d654e171a948 days 6 hrs ago0xd0dff57971c7e064fefa475b4547652183d8da1f  IN   0x7a3822a45dd6e6c91cc87012b3059266106e122d0 Ether0.001678004
0x7c20ea6c19ec97f24eef0b79833269ae6f132799193453d06ad81f7d3be515a149 days 6 hrs ago0xe6c2d30ebcaa14d3a9b6038ef6509d043193edee  IN    Contract Creation0 Ether0.019239966
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified (Exact Match)
Contract Name: Crowdsale
Compiler Text: v0.4.25+commit.59dbf8f1
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
  function totalSupply() external view returns (uint256);

  function balanceOf(address who) external view returns (uint256);

  function allowance(address owner, address spender)
    external view returns (uint256);

  function transfer(address to, uint256 value) external returns (bool);

  function approve(address spender, uint256 value)
    external returns (bool);

  function transferFrom(address from, address to, uint256 value)
    external returns (bool);

  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );

  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 SafeERC20Transfer {
  function safeTransfer(
    IERC20 token,
    address to,
    uint256 value
  )
    internal
  {
    require(token.transfer(to, value));
  }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
  * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address private _owner;

  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    _owner = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

  /**
   * @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 {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale,
 * allowing investors to purchase tokens with ether. This contract implements
 * such functionality in its most fundamental form and can be extended to provide additional
 * functionality and/or custom behavior.
 * The external interface represents the basic interface for purchasing tokens, and conform
 * the base architecture for crowdsales. They are *not* intended to be modified / overridden.
 * The internal interface conforms the extensible and modifiable surface of crowdsales. Override
 * the methods to add functionality. Consider using 'super' where appropriate to concatenate
 * behavior.
 */
contract Crowdsale is Ownable {
  using SafeMath for uint256;
  using SafeERC20Transfer for IERC20;

  // The token being sold
  IERC20 private _token;

  // Address where funds are collected
  address private _wallet;

  // How many token units a buyer gets per 1 ETH.
  uint256 private _rate = 5000;

  // Amount of wei raised
  uint256 private _weiRaised;

  // Accrued tokens amount
  uint256 private _accruedTokensAmount;

  // freezing periods in seconds
  uint256 private _threeMonths = 5256000;
  uint256 private _sixMonths = 15768000;
  uint256 private _nineMonths = 21024000;
  uint256 private _twelveMonths = 31536000;

  // ICO configuration
  uint256 private _foundersTokens = 4e7;
  uint256 private _distributedTokens = 1e9;
  uint256 public softCap = 1000 ether;
  uint256 public hardCap = 35000 ether;
  uint256 public preICO_1_Start = 1541030400; // 01/11/2018 00:00:00
  uint256 public preICO_2_Start = 1541980800; // 12/11/2018 00:00:00
  uint256 public preICO_3_Start = 1542844800; // 22/11/2018 00:00:00
  uint256 public ICO_Start = 1543622400; // 01/12/2018 00:00:00
  uint256 public ICO_End = 1548979199; // 31/01/2019 23:59:59
  uint32 public bonus1 = 30; // pre ICO phase 1
  uint32 public bonus2 = 20; // pre ICO phase 2
  uint32 public bonus3 = 10; // pre ICO phase 3
  uint32 public whitelistedBonus = 10;

  mapping (address => bool) private _whitelist;

  // tokens accrual
  mapping (address => uint256) public threeMonthsFreezingAccrual;
  mapping (address => uint256) public sixMonthsFreezingAccrual;
  mapping (address => uint256) public nineMonthsFreezingAccrual;
  mapping (address => uint256) public twelveMonthsFreezingAccrual;

  // investors ledger
  mapping (address => uint256) public ledger;

  /**
   * Event for tokens accrual logging
   * @param to who tokens where accrued to
   * @param accruedAmount amount of tokens accrued
   * @param freezingTime period for freezing in seconds
   * @param purchasedAmount amount of tokens purchased
   * @param weiValue amount of ether contributed
   */
  event Accrual(
    address to,
    uint256 accruedAmount,
    uint256 freezingTime,
    uint256 purchasedAmount,
    uint256 weiValue
  );

  /**
   * Event for accrued tokens releasing logging
   * @param to who tokens where release to
   * @param amount amount of tokens released
   */
  event Released(
    address to,
    uint256 amount
  );

  /**
   * Event for refund logging
   * @param to who have got refund
   * @param value ether refunded
   */
  event Refunded(
    address to,
    uint256 value
  );

  /**
   * Event for token purchase logging
   * @param purchaser who paid for the tokens
   * @param beneficiary who got the tokens
   * @param value weis paid for purchase
   * @param amount amount of tokens purchased
   */
  event TokensPurchased(
    address indexed purchaser,
    address indexed beneficiary,
    uint256 value,
    uint256 amount
  );

  /**
   * @dev The rate is the conversion between wei and the smallest and indivisible
   * token unit. So, if you are using a rate of 1 with a ERC20Detailed token
   * with 3 decimals called TOK, 1 wei will give you 1 unit, or 0.001 TOK.
   * @param wallet Address where collected funds will be forwarded to
   * @param founders Address for founders tokens accrual
   * @param token Address of the token being sold
   */
  constructor(address newOwner, address wallet, address founders, IERC20 token) public {
    require(wallet != address(0));
    require(founders != address(0));
    require(token != address(0));
    require(newOwner != address(0));
    transferOwnership(newOwner);

    _wallet = wallet;
    _token = token;

    twelveMonthsFreezingAccrual[founders] = _foundersTokens;
    _accruedTokensAmount = _foundersTokens;
    emit Accrual(founders, _foundersTokens, _twelveMonths, 0, 0);
  }

  // -----------------------------------------
  // Crowdsale external interface
  // -----------------------------------------

  /**
   * @dev fallback function ***DO NOT OVERRIDE***
   */
  function () external payable {
    buyTokens(msg.sender);
  }

  /**
   * @return the token being sold.
   */
  function token() public view returns(IERC20) {
    return _token;
  }

  /**
   * @return the address where funds are collected.
   */
  function wallet() public view returns(address) {
    return _wallet;
  }

  /**
   * @return the number of token units a buyer gets per wei.
   */
  function rate() public view returns(uint256) {
    return _rate;
  }

  /**
   * @return the amount of wei raised.
   */
  function weiRaised() public view returns (uint256) {
    return _weiRaised;
  }

  /**
   * @return if who is whitelisted.
   * @param who investors address
   */
  function whitelist(address who) public view returns (bool) {
    return _whitelist[who];
  }

  /**
   * add investor to whitelist
   * @param who investors address
   */
  function addToWhitelist(address who) public onlyOwner {
    _whitelist[who] = true;
  }

  /**
   * remove investor from whitelist
   * @param who investors address
   */
  function removeFromWhitelist(address who) public onlyOwner {
    _whitelist[who] = false;
  }

  /**
   * Accrue bonuses to advisors
   * @param to address for accrual
   * @param amount tokem amount
   */
  function accrueAdvisorsTokens(address to, uint256 amount) public onlyOwner {
    require(now > ICO_End);
    uint256 tokenBalance = _token.balanceOf(address(this));
    require(tokenBalance >= _accruedTokensAmount.add(amount));

    _accruedTokensAmount = _accruedTokensAmount.add(amount);
    
    sixMonthsFreezingAccrual[to] = sixMonthsFreezingAccrual[to].add(amount);

    emit Accrual(to, amount, _sixMonths, 0, 0);    
  }

  /**
   * Accrue bonuses to partners
   * @param to address for accrual
   * @param amount tokem amount
   */
  function accruePartnersTokens(address to, uint256 amount) public onlyOwner {
    require(now > ICO_End);
    uint256 tokenBalance = _token.balanceOf(address(this));
    require(tokenBalance >= _accruedTokensAmount.add(amount));

    _accruedTokensAmount = _accruedTokensAmount.add(amount);
    
    nineMonthsFreezingAccrual[to] = nineMonthsFreezingAccrual[to].add(amount);

    emit Accrual(to, amount, _nineMonths, 0, 0);    
  }

  /**
   * Accrue bounty and airdrop bonuses
   * @param to address for accrual
   * @param amount tokem amount
   */
  function accrueBountyTokens(address to, uint256 amount) public onlyOwner {
    require(now > ICO_End);
    uint256 tokenBalance = _token.balanceOf(address(this));
    require(tokenBalance >= _accruedTokensAmount.add(amount));

    _accruedTokensAmount = _accruedTokensAmount.add(amount);
    
    twelveMonthsFreezingAccrual[to] = twelveMonthsFreezingAccrual[to].add(amount);

    emit Accrual(to, amount, _twelveMonths, 0, 0);    
  }

  /**
   * release accrued tokens
   */
  function release() public {
    address who = msg.sender;
    uint256 amount;
    if (now > ICO_End.add(_twelveMonths) && twelveMonthsFreezingAccrual[who] > 0) {
      amount = amount.add(twelveMonthsFreezingAccrual[who]);
      _accruedTokensAmount = _accruedTokensAmount.sub(twelveMonthsFreezingAccrual[who]);
      twelveMonthsFreezingAccrual[who] = 0;
    }
    if (now > ICO_End.add(_nineMonths) && nineMonthsFreezingAccrual[who] > 0) {
      amount = amount.add(nineMonthsFreezingAccrual[who]);
      _accruedTokensAmount = _accruedTokensAmount.sub(nineMonthsFreezingAccrual[who]);
      nineMonthsFreezingAccrual[who] = 0;
    }
    if (now > ICO_End.add(_sixMonths) && sixMonthsFreezingAccrual[who] > 0) {
      amount = amount.add(sixMonthsFreezingAccrual[who]);
      _accruedTokensAmount = _accruedTokensAmount.sub(sixMonthsFreezingAccrual[who]);
      sixMonthsFreezingAccrual[who] = 0;
    }
    if (now > ICO_End.add(_threeMonths) && threeMonthsFreezingAccrual[who] > 0) {
      amount = amount.add(threeMonthsFreezingAccrual[who]);
      _accruedTokensAmount = _accruedTokensAmount.sub(threeMonthsFreezingAccrual[who]);
      threeMonthsFreezingAccrual[who] = 0;
    }
    if (amount > 0) {
      _deliverTokens(who, amount);
      emit Released(who, amount);
    }
  }

  /**
   * refund ether
   */
  function refund() public {
    address investor = msg.sender;
    require(now > ICO_End);
    require(_weiRaised < softCap);
    require(ledger[investor] > 0);
    uint256 value = ledger[investor];
    ledger[investor] = 0;
    investor.transfer(value);
    emit Refunded(investor, value);
  }

  /**
   * @dev low level token purchase ***DO NOT OVERRIDE***
   * @param beneficiary Address performing the token purchase
   */
  function buyTokens(address beneficiary) public payable {
    uint256 weiAmount = msg.value;
    _preValidatePurchase(beneficiary, weiAmount);

    // calculate token amount to be created
    uint256 tokens = _getTokenAmount(weiAmount);

    // bonus tokens accrual and ensure token balance is enough for accrued tokens release
    _accrueBonusTokens(beneficiary, tokens, weiAmount);

    // update state
    _weiRaised = _weiRaised.add(weiAmount);

    _processPurchase(beneficiary, tokens);
    emit TokensPurchased(
      msg.sender,
      beneficiary,
      weiAmount,
      tokens
    );

    if (_weiRaised >= softCap) _forwardFunds();

    ledger[msg.sender] = ledger[msg.sender].add(msg.value);
  }

  // -----------------------------------------
  // Internal interface (extensible)
  // -----------------------------------------

    /**
   * @dev Accrue bonus tokens.
   * @param beneficiary Address for tokens accrual
   * @param tokenAmount amount of tokens that beneficiary get
   */
  function _accrueBonusTokens(address beneficiary, uint256 tokenAmount, uint256 weiAmount) internal {
    uint32 bonus = 0;
    uint256 bonusTokens = 0;
    uint256 tokenBalance = _token.balanceOf(address(this));
    if (_whitelist[beneficiary] && now < ICO_Start) bonus = bonus + whitelistedBonus;
    if (now < preICO_2_Start) {
      bonus = bonus + bonus1;
      bonusTokens = tokenAmount.mul(bonus).div(100);

      require(tokenBalance >= _accruedTokensAmount.add(bonusTokens).add(tokenAmount));

      _accruedTokensAmount = _accruedTokensAmount.add(bonusTokens);

      nineMonthsFreezingAccrual[beneficiary] = nineMonthsFreezingAccrual[beneficiary].add(bonusTokens);

      emit Accrual(beneficiary, bonusTokens, _nineMonths, tokenAmount, weiAmount);
    } else if (now < preICO_3_Start) {
      bonus = bonus + bonus2;
      bonusTokens = tokenAmount.mul(bonus).div(100);

      require(tokenBalance >= _accruedTokensAmount.add(bonusTokens).add(tokenAmount));

      _accruedTokensAmount = _accruedTokensAmount.add(bonusTokens);
      
      sixMonthsFreezingAccrual[beneficiary] = sixMonthsFreezingAccrual[beneficiary].add(bonusTokens);

      emit Accrual(beneficiary, bonusTokens, _sixMonths, tokenAmount, weiAmount);
    } else if (now < ICO_Start) {
      bonus = bonus + bonus3;
      bonusTokens = tokenAmount.mul(bonus).div(100);

      require(tokenBalance >= _accruedTokensAmount.add(bonusTokens).add(tokenAmount));

      _accruedTokensAmount = _accruedTokensAmount.add(bonusTokens);
      
      threeMonthsFreezingAccrual[beneficiary] = threeMonthsFreezingAccrual[beneficiary].add(bonusTokens);

      emit Accrual(beneficiary, bonusTokens, _threeMonths, tokenAmount, weiAmount);
    } else {
      require(tokenBalance >= _accruedTokensAmount.add(tokenAmount));

      emit Accrual(beneficiary, 0, 0, tokenAmount, weiAmount);
    }
  }

  /**
   * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use `super` in contracts that inherit from Crowdsale to extend their validations.
   * Example from CappedCrowdsale.sol's _preValidatePurchase method:
   *   super._preValidatePurchase(beneficiary, weiAmount);
   *   require(weiRaised().add(weiAmount) <= cap);
   * @param beneficiary Address performing the token purchase
   * @param weiAmount Value in wei involved in the purchase
   */
  function _preValidatePurchase(
    address beneficiary,
    uint256 weiAmount
  )
    internal view
  {
    require(beneficiary != address(0));
    require(weiAmount != 0);
    require(_weiRaised.add(weiAmount) <= hardCap);
    require(now >= preICO_1_Start);
    require(now <= ICO_End);
  }

  /**
   * @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends its tokens.
   * @param beneficiary Address performing the token purchase
   * @param tokenAmount Number of tokens to be emitted
   */
  function _deliverTokens(
    address beneficiary,
    uint256 tokenAmount
  )
    internal
  {
    _token.safeTransfer(beneficiary, tokenAmount);
  }

  /**
   * @dev Executed when a purchase has been validated and is ready to be executed. Not necessarily emits/sends tokens.
   * @param beneficiary Address receiving the tokens
   * @param tokenAmount Number of tokens to be purchased
   */
  function _processPurchase(
    address beneficiary,
    uint256 tokenAmount
  )
    internal
  {
    _deliverTokens(beneficiary, tokenAmount);
  }

  /**
   * @dev The way in which ether is converted to tokens.
   * @param weiAmount Value in wei to be converted into tokens
   * @return Number of tokens that can be purchased with the specified _weiAmount
   */
  function _getTokenAmount(
    uint256 weiAmount
  )
    internal view returns (uint256)
  {
    return weiAmount.mul(_rate).div(1e18);
  }

  /**
   * @dev Determines how ETH is stored/forwarded on purchases.
   */
  function _forwardFunds() internal {
    uint256 balance = address(this).balance;
    _wallet.transfer(balance);
  }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"nineMonthsFreezingAccrual","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"accrueBountyTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"preICO_3_Start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus1","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preICO_2_Start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"accruePartnersTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bonus2","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"accrueAdvisorsTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"twelveMonthsFreezingAccrual","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"sixMonthsFreezingAccrual","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"who","type":"address"}],"name":"removeFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ICO_Start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ICO_End","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus3","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preICO_1_Start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelistedBonus","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"who","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"threeMonthsFreezingAccrual","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ledger","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"newOwner","type":"address"},{"name":"wallet","type":"address"},{"name":"founders","type":"address"},{"name":"token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"accruedAmount","type":"uint256"},{"indexed":false,"name":"freezingTime","type":"uint256"},{"indexed":false,"name":"purchasedAmount","type":"uint256"},{"indexed":false,"name":"weiValue","type":"uint256"}],"name":"Accrual","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Refunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526113886003556250334060065562f099c0600755630140cd006008556301e133806009556302625a00600a55633b9aca00600b55683635c9adc5dea00000600c556907695a92c20d6fe00000600d55635bda4200600e55635be8c280600f55635bf5f180601055635c01cf00601155635c538bff60125560138054601e63ffffffff199091161767ffffffff00000000191664140000000017604060020a63ffffffff021916680a000000000000000017606060020a63ffffffff0219166c0a000000000000000000000000179055348015620000e057600080fd5b5060405160808062001ae9833981016040818152825160208401519184015160609094015160008054600160a060020a0319163317808255929593949192600160a060020a03169160008051602062001ac9833981519152908290a3600160a060020a03831615156200015257600080fd5b600160a060020a03821615156200016857600080fd5b600160a060020a03811615156200017e57600080fd5b600160a060020a03841615156200019457600080fd5b620001a8846401000000006200024a810204565b60028054600160a060020a03808616600160a060020a031992831617909255600180548484169216919091179055600a54908316600081815260186020908152604080832085905560058590556009548151948552918401949094528284015260608201819052608082015290517fa888b50527526c3db4d6172eed7af64df088fbd9343a416802d4b264f15477e19181900360a00190a150505050620002f1565b6200025d64010000000062000280810204565b15156200026957600080fd5b6200027d8164010000000062000291810204565b50565b600054600160a060020a0316331490565b600160a060020a0381161515620002a757600080fd5b60008054604051600160a060020a038085169392169160008051602062001ac983398151915291a360008054600160a060020a031916600160a060020a0392909216919091179055565b6117c880620003016000396000f3006080604052600436106101a05763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663122eb42181146101ab57806328553325146101de57806328c0f928146102025780632c4e722e14610217578063308181891461022c5780634042b66f1461025a5780634e3e5d691461026f578063521eb273146102845780635689dfc5146102b5578063590e1ae3146102d957806367e8d3d2146102ee57806370cfb15914610303578063715018a614610327578063720531241461033c578063867a30d91461035d57806386d1a69f1461037e5780638ab1d681146103935780638da5cb5b146103b45780638f32d59b146103c9578063906a26e0146103f25780639b19251a146104075780639fe6a6f114610428578063a48eaa201461043d578063ab86ba3a14610452578063ccf9495d14610467578063e33e7ffd1461047c578063e43252d714610491578063e508750b146104b2578063ec8ac4d8146104d3578063f2fde38b146104e7578063fb86a40414610508578063fbfa941f1461051d578063fc0c546a1461053e575b6101a933610553565b005b3480156101b757600080fd5b506101cc600160a060020a0360043516610626565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101a9600160a060020a0360043516602435610638565b34801561020e57600080fd5b506101cc610794565b34801561022357600080fd5b506101cc61079a565b34801561023857600080fd5b506102416107a0565b6040805163ffffffff9092168252519081900360200190f35b34801561026657600080fd5b506101cc6107ac565b34801561027b57600080fd5b506101cc6107b2565b34801561029057600080fd5b506102996107b8565b60408051600160a060020a039092168252519081900360200190f35b3480156102c157600080fd5b506101a9600160a060020a03600435166024356107c7565b3480156102e557600080fd5b506101a9610923565b3480156102fa57600080fd5b506102416109fd565b34801561030f57600080fd5b506101a9600160a060020a0360043516602435610a11565b34801561033357600080fd5b506101a9610b6d565b34801561034857600080fd5b506101cc600160a060020a0360043516610bd7565b34801561036957600080fd5b506101cc600160a060020a0360043516610be9565b34801561038a57600080fd5b506101a9610bfb565b34801561039f57600080fd5b506101a9600160a060020a0360043516610f2c565b3480156103c057600080fd5b50610299610f60565b3480156103d557600080fd5b506103de610f6f565b604080519115158252519081900360200190f35b3480156103fe57600080fd5b506101cc610f80565b34801561041357600080fd5b506103de600160a060020a0360043516610f86565b34801561043457600080fd5b506101cc610fa4565b34801561044957600080fd5b506101cc610faa565b34801561045e57600080fd5b50610241610fb0565b34801561047357600080fd5b506101cc610fc8565b34801561048857600080fd5b50610241610fce565b34801561049d57600080fd5b506101a9600160a060020a0360043516610fea565b3480156104be57600080fd5b506101cc600160a060020a0360043516611021565b6101a9600160a060020a0360043516610553565b3480156104f357600080fd5b506101a9600160a060020a0360043516611033565b34801561051457600080fd5b506101cc611052565b34801561052957600080fd5b506101cc600160a060020a0360043516611058565b34801561054a57600080fd5b5061029961106a565b3460006105608383611079565b610569826110d9565b905061057683828461110e565b600454610589908363ffffffff61156016565b600455610596838261157d565b60408051838152602081018390528151600160a060020a0386169233927f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b929081900390910190a3600c54600454106105f1576105f1611587565b33600090815260196020526040902054610611903463ffffffff61156016565b33600090815260196020526040902055505050565b60176020526000908152604090205481565b6000610642610f6f565b151561064d57600080fd5b601254421161065b57600080fd5b6001546040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156106ab57600080fd5b505af11580156106bf573d6000803e3d6000fd5b505050506040513d60208110156106d557600080fd5b50516005549091506106ed908363ffffffff61156016565b8110156106f957600080fd5b60055461070c908363ffffffff61156016565b600555600160a060020a038316600090815260186020526040902054610738908363ffffffff61156016565b600160a060020a038416600081815260186020908152604080832094909455600954845193845290830186905282840152606082018190526080820152905160008051602061177d8339815191529181900360a00190a1505050565b60105481565b60035490565b60135463ffffffff1681565b60045490565b600f5481565b600254600160a060020a031690565b60006107d1610f6f565b15156107dc57600080fd5b60125442116107ea57600080fd5b6001546040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561083a57600080fd5b505af115801561084e573d6000803e3d6000fd5b505050506040513d602081101561086457600080fd5b505160055490915061087c908363ffffffff61156016565b81101561088857600080fd5b60055461089b908363ffffffff61156016565b600555600160a060020a0383166000908152601760205260409020546108c7908363ffffffff61156016565b600160a060020a038416600081815260176020908152604080832094909455600854845193845290830186905282840152606082018190526080820152905160008051602061177d8339815191529181900360a00190a1505050565b6012543390600090421161093657600080fd5b600c546004541061094657600080fd5b600160a060020a0382166000908152601960205260408120541161096957600080fd5b50600160a060020a038116600081815260196020526040808220805490839055905190929183156108fc02918491818181858888f193505050501580156109b4573d6000803e3d6000fd5b5060408051600160a060020a03841681526020810183905281517fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651929181900390910190a15050565b601354640100000000900463ffffffff1681565b6000610a1b610f6f565b1515610a2657600080fd5b6012544211610a3457600080fd5b6001546040805160e060020a6370a082310281523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610a8457600080fd5b505af1158015610a98573d6000803e3d6000fd5b505050506040513d6020811015610aae57600080fd5b5051600554909150610ac6908363ffffffff61156016565b811015610ad257600080fd5b600554610ae5908363ffffffff61156016565b600555600160a060020a038316600090815260166020526040902054610b11908363ffffffff61156016565b600160a060020a038416600081815260166020908152604080832094909455600754845193845290830186905282840152606082018190526080820152905160008051602061177d8339815191529181900360a00190a1505050565b610b75610f6f565b1515610b8057600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60186020526000908152604090205481565b60166020526000908152604090205481565b6009546012543391600091610c159163ffffffff61156016565b42118015610c395750600160a060020a038216600090815260186020526040812054115b15610cb457600160a060020a038216600090815260186020526040902054610c6890829063ffffffff61156016565b600160a060020a038316600090815260186020526040902054600554919250610c97919063ffffffff6115c216565b600555600160a060020a0382166000908152601860205260408120555b600854601254610cc99163ffffffff61156016565b42118015610ced5750600160a060020a038216600090815260176020526040812054115b15610d6857600160a060020a038216600090815260176020526040902054610d1c90829063ffffffff61156016565b600160a060020a038316600090815260176020526040902054600554919250610d4b919063ffffffff6115c216565b600555600160a060020a0382166000908152601760205260408120555b600754601254610d7d9163ffffffff61156016565b42118015610da15750600160a060020a038216600090815260166020526040812054115b15610e1c57600160a060020a038216600090815260166020526040902054610dd090829063ffffffff61156016565b600160a060020a038316600090815260166020526040902054600554919250610dff919063ffffffff6115c216565b600555600160a060020a0382166000908152601660205260408120555b600654601254610e319163ffffffff61156016565b42118015610e555750600160a060020a038216600090815260156020526040812054115b15610ed057600160a060020a038216600090815260156020526040902054610e8490829063ffffffff61156016565b600160a060020a038316600090815260156020526040902054600554919250610eb3919063ffffffff6115c216565b600555600160a060020a0382166000908152601560205260408120555b6000811115610f2857610ee382826115d9565b60408051600160a060020a03841681526020810183905281517fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e929181900390910190a15b5050565b610f34610f6f565b1515610f3f57600080fd5b600160a060020a03166000908152601460205260409020805460ff19169055565b600054600160a060020a031690565b600054600160a060020a0316331490565b600c5481565b600160a060020a031660009081526014602052604090205460ff1690565b60115481565b60125481565b60135468010000000000000000900463ffffffff1681565b600e5481565b6013546c01000000000000000000000000900463ffffffff1681565b610ff2610f6f565b1515610ffd57600080fd5b600160a060020a03166000908152601460205260409020805460ff19166001179055565b60156020526000908152604090205481565b61103b610f6f565b151561104657600080fd5b61104f816115f6565b50565b600d5481565b60196020526000908152604090205481565b600154600160a060020a031690565b600160a060020a038216151561108e57600080fd5b80151561109a57600080fd5b600d546004546110b0908363ffffffff61156016565b11156110bb57600080fd5b600e544210156110ca57600080fd5b601254421115610f2857600080fd5b6000611108670de0b6b3a76400006110fc6003548561167390919063ffffffff16565b9063ffffffff6116a116565b92915050565b6001546040805160e060020a6370a08231028152306004820152905160009283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b15801561116457600080fd5b505af1158015611178573d6000803e3d6000fd5b505050506040513d602081101561118e57600080fd5b5051600160a060020a03871660009081526014602052604090205490915060ff1680156111bc575060115442105b156111e0576013546c01000000000000000000000000900463ffffffff1692909201915b600f544210156112e55760135463ffffffff9081169390930192611211906064906110fc9088908781169061167316565b91506112388561122c8460055461156090919063ffffffff16565b9063ffffffff61156016565b81101561124457600080fd5b600554611257908363ffffffff61156016565b600555600160a060020a038616600090815260176020526040902054611283908363ffffffff61156016565b600160a060020a038716600081815260176020908152604091829020939093556008548151928352928201859052818101929092526060810187905260808101869052905160008051602061177d8339815191529181900360a00190a1611558565b6010544210156113ec57601360049054906101000a900463ffffffff168301925061132460646110fc8563ffffffff168861167390919063ffffffff16565b915061133f8561122c8460055461156090919063ffffffff16565b81101561134b57600080fd5b60055461135e908363ffffffff61156016565b600555600160a060020a03861660009081526016602052604090205461138a908363ffffffff61156016565b600160a060020a038716600081815260166020908152604091829020939093556007548151928352928201859052818101929092526060810187905260808101869052905160008051602061177d8339815191529181900360a00190a1611558565b6011544210156114f357601360089054906101000a900463ffffffff168301925061142b60646110fc8563ffffffff168861167390919063ffffffff16565b91506114468561122c8460055461156090919063ffffffff16565b81101561145257600080fd5b600554611465908363ffffffff61156016565b600555600160a060020a038616600090815260156020526040902054611491908363ffffffff61156016565b600160a060020a038716600081815260156020908152604091829020939093556006548151928352928201859052818101929092526060810187905260808101869052905160008051602061177d8339815191529181900360a00190a1611558565b600554611506908663ffffffff61156016565b81101561151257600080fd5b60408051600160a060020a0388168152600060208201819052818301526060810187905260808101869052905160008051602061177d8339815191529181900360a00190a15b505050505050565b60008282018381101561157257600080fd5b8091505b5092915050565b610f2882826115d9565b600254604051303191600160a060020a03169082156108fc029083906000818181858888f19350505050158015610f28573d6000803e3d6000fd5b600080838311156115d257600080fd5b5050900390565b600154610f2890600160a060020a0316838363ffffffff6116c416565b600160a060020a038116151561160b57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000808315156116865760009150611576565b5082820282848281151561169657fe5b041461157257600080fd5b6000808083116116b057600080fd5b82848115156116bb57fe5b04949350505050565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b505050506040513d602081101561176a57600080fd5b5051151561177757600080fd5b5050505600a888b50527526c3db4d6172eed7af64df088fbd9343a416802d4b264f15477e1a165627a7a723058208f3e78455d248ab8a56f01da363766a8b8b5a0887171c0bec12c56f22a30c79600298be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000d0dff57971c7e064fefa475b4547652183d8da1f000000000000000000000000161efcf7a6a38ec690954fc427630dd4ba7c6454000000000000000000000000d0dff57971c7e064fefa475b4547652183d8da1f0000000000000000000000009ce3ddb8885cd217392b3fc29bc648965029192f

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

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000d0dff57971c7e064fefa475b4547652183d8da1f
Arg [1] : 000000000000000000000000161efcf7a6a38ec690954fc427630dd4ba7c6454
Arg [2] : 000000000000000000000000d0dff57971c7e064fefa475b4547652183d8da1f
Arg [3] : 0000000000000000000000009ce3ddb8885cd217392b3fc29bc648965029192f


   Swarm Source:
bzzr://8f3e78455d248ab8a56f01da363766a8b8b5a0887171c0bec12c56f22a30c796

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.