Sponsored Link:   SHIFT.cash - smart-contract based car title lending platform, 30 billion market, 35+ employees. Join NOW.
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 3908 txns
  Latest 25 txns from a total Of 3908 transactions (+2 PendingTxns) View All

TxHash Age From To Value [TxFee]
0x618a372d82e3eb335977c3338bf6004f8462f415a031f48e7b5e7f8f286b78f5(pending)10 mins ago0x5d7a9ec06184c811609c61f2f8437556a670f696  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.997 Ether(pending)
0x5ada859835921410d1430d38bbfad06661781262ec163c3227f60d6520af598f(pending)10 mins ago0xf9bb1e01d7a223e01833c2b107944a9ea1492fdf  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.37 Ether(pending)
0x96ee91c1288e1dcb6d4888807b300ca4b5181e7fe144d5fe0cebe8aa69cc680420 mins ago0xa95f5e4bbcc1230e655b357f9153e2157272034c  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.15 Ether0.001779526
0xf8771e4e10e85cff603b4b92e0cb2c0d2e0660c5327b31cccb78ca6843201a1732 mins ago0x5e16b2e0d6366d44d59fd92f960d843515e0a6c3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.5 Ether0.00209356
0xc3f3946a65d7c71c6423a4d6b748c4e9ccf9062f4019c9f1762de5ff086b10ae40 mins ago0x0876f423a27ee97f7e3a008f23d27f7ca5010d11  IN  0xcf768b4d181048bb5e0e6e1a95460334837797532 Ether0.004291798
0x272509e4b9923fbabca86455086c6482785792a29feb657ac2a24641f8a0215140 mins ago0x58f693a0983476ea7debc4bf8d7f6407820a0d10  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.3 Ether0.00179356
0xd639bb60dd9a10941a308f8edeb4ca803754da802f246fc037465579b22472cb51 mins ago0x02fff9c7ea46673f367ac909be23b7f8195e93b5  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.7 Ether0.002600662
0xade2d3f35188a52fe6d037a85ccf025e14b13eab498b560fa3529b8fe5d7289e1 hr 3 mins ago0x073460d39a2460abbc9e04ed7e2134b8817aedb9  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.52 Ether0.003676798
0xb20123c0abdcc2be1d80fe8ca738704caf2dfeb0134042b0dd68cdb53ff4725e1 hr 6 mins ago0x850612582508e7b453917a2ffa18c65a2e9e35d6  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.004291798
0x68cb8bfab2e74bf35df870447d52598a2ef5ce3d58f754237e7cdc3c7529861f1 hr 16 mins ago0xfe665bf69853c8172ec3744544d81b61885f2445  IN  0xcf768b4d181048bb5e0e6e1a95460334837797532.9 Ether0.004291798
0x9472c0cfb5e051b49f22ff28c61e6738e3d9407e20a809e043c3ae3aab6e48831 hr 17 mins ago0xdc878c178b078624d7b79a32d549dd543a1f5eae  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.11 Ether0.00157017
0x2391037fcb551c5b934b11d0412d999d5412a054ab1a40b0c555508b0b366fc61 hr 33 mins ago0x9915b4caf2ab7b4a03c5927ebc0d01b9906c5559  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.2 Ether0.00628068
0x48460f76c9eba30fe3b19872105cdfcac909fcd5c3fbb764dfd9de877cb277e01 hr 34 mins ago0x3977b3576e33a9ad21050489de172c6628da1443  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.15 Ether0.000209356
0x8b22b2da31aa7ca2c38884edcadc1b4643e2859a43c15077ac14a40468166b5c1 hr 36 mins ago0xb254b987398504beaea54ab347c2f4f64784858a  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.3 Ether0.00418712
0xdad878ee8d6611ab755877b8540de767400c20f510f9b0ff825b5dfd3957e7c11 hr 38 mins ago0x51a314c270d2c8bf3734eae2e90818b1ac9a08ab  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00628068
0xd2610fd42a27734ac2672899ec8b8dcbb81f7995bfefc9f749cd1c28f4c11eb81 hr 44 mins ago0xd06c98a5939aeb3d49abdf3fc9f2a81912833040  IN  0xcf768b4d181048bb5e0e6e1a954603348377975310 Ether0.00418712
0xc8d04c77022f7e8ac9c86ea87365751a90f6409a6e65a7149d442a3548fdc3c21 hr 45 mins ago0x7bfca26b36bef0967fe38fb1a7e9e52930585d3e  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.04 Ether0.00086376
0xb26573553840e7d406cd4366d82cb69aa87557e68add6b3415426e3c25ddc1f81 hr 51 mins ago0x740a7e7b5ddc4ecb96d96ad745ae4f80e89c9bba  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.12622096 Ether0.000104678
0x05663b29b415cc2bf452a8b87919d2053c5303fa1dafab2af6fa111cc7b6ba621 hr 54 mins ago0xae2cb7715dc4aac87afd53d258f44f09e360e887  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.11 Ether0.00628068
0xdf8ede9719425176e74833a9d62c3d8f1949cefa018b4556d133f56cb68317162 hrs 4 mins ago0xf0e382fbfaed4a0eae4420ad5b4082d789db67b6  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.000209356
0xb7beafcd73550a462ca98125d114d71e39ff5a84184381298466b86175ee96bc2 hrs 8 mins ago0xeb27d28384ee8931d6e781ce5ff86698975fb9a0  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.29 Ether0.004291798
0x36ffc28eca1bc59bdacf334fe577cacd03de04ab98c93f35f13cffd3e3f2c44b2 hrs 13 mins ago0xdd36feb7d824ba3a64867a641497ac37abcbf13c  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.16 Ether0.004291798
0x19248241836ee7364a1b748d091ab7388f4c23474e0300c686130738f4852e1b2 hrs 22 mins ago0x5d92c3f777fc5de5d36418faf58754246fe96385  IN  0xcf768b4d181048bb5e0e6e1a95460334837797538 Ether0.00538068
0xf8d01ee7edf27fd58f77bb6d73aee6145e125dfe9007e82259714f978569e7c12 hrs 25 mins ago0x4ebc81b22d30905f36b7ea9e54cd60067cd1e623  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.05 Ether0.00129564
0xeac982520efb28b31bb503755bb063c0bd00e06af520dcc8dfe2c86898f996a82 hrs 28 mins ago0x4ebc81b22d30905f36b7ea9e54cd60067cd1e623  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.05 Ether0.00043188
[ 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
0x96ee91c1288e1dcb6d4888807b300ca4b5181e7fe144d5fe0cebe8aa69cc6804512704820 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.075 Ether
0x96ee91c1288e1dcb6d4888807b300ca4b5181e7fe144d5fe0cebe8aa69cc6804512704820 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.075 Ether
0xf8771e4e10e85cff603b4b92e0cb2c0d2e0660c5327b31cccb78ca6843201a17512699432 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.25 Ether
0xf8771e4e10e85cff603b4b92e0cb2c0d2e0660c5327b31cccb78ca6843201a17512699432 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.25 Ether
0xc3f3946a65d7c71c6423a4d6b748c4e9ccf9062f4019c9f1762de5ff086b10ae512696240 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d1 Ether
0xc3f3946a65d7c71c6423a4d6b748c4e9ccf9062f4019c9f1762de5ff086b10ae512696240 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a031 Ether
0x272509e4b9923fbabca86455086c6482785792a29feb657ac2a24641f8a02151512696040 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.15 Ether
0x272509e4b9923fbabca86455086c6482785792a29feb657ac2a24641f8a02151512696040 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.15 Ether
0xd639bb60dd9a10941a308f8edeb4ca803754da802f246fc037465579b22472cb512691151 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.35 Ether
0xd639bb60dd9a10941a308f8edeb4ca803754da802f246fc037465579b22472cb512691151 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.35 Ether
0xade2d3f35188a52fe6d037a85ccf025e14b13eab498b560fa3529b8fe5d7289e51268631 hr 3 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.26 Ether
0xade2d3f35188a52fe6d037a85ccf025e14b13eab498b560fa3529b8fe5d7289e51268631 hr 3 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.26 Ether
0xb20123c0abdcc2be1d80fe8ca738704caf2dfeb0134042b0dd68cdb53ff4725e51268521 hr 6 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0xb20123c0abdcc2be1d80fe8ca738704caf2dfeb0134042b0dd68cdb53ff4725e51268521 hr 6 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x68cb8bfab2e74bf35df870447d52598a2ef5ce3d58f754237e7cdc3c7529861f51268111 hr 16 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d1.45 Ether
0x68cb8bfab2e74bf35df870447d52598a2ef5ce3d58f754237e7cdc3c7529861f51268111 hr 16 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a031.45 Ether
0x9472c0cfb5e051b49f22ff28c61e6738e3d9407e20a809e043c3ae3aab6e488351268091 hr 17 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.055 Ether
0x9472c0cfb5e051b49f22ff28c61e6738e3d9407e20a809e043c3ae3aab6e488351268091 hr 17 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.055 Ether
0x2391037fcb551c5b934b11d0412d999d5412a054ab1a40b0c555508b0b366fc651267411 hr 33 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.1 Ether
0x2391037fcb551c5b934b11d0412d999d5412a054ab1a40b0c555508b0b366fc651267411 hr 33 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.1 Ether
0x48460f76c9eba30fe3b19872105cdfcac909fcd5c3fbb764dfd9de877cb277e051267371 hr 34 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.075 Ether
0x48460f76c9eba30fe3b19872105cdfcac909fcd5c3fbb764dfd9de877cb277e051267371 hr 34 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.075 Ether
0x8b22b2da31aa7ca2c38884edcadc1b4643e2859a43c15077ac14a40468166b5c51267261 hr 36 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.15 Ether
0x8b22b2da31aa7ca2c38884edcadc1b4643e2859a43c15077ac14a40468166b5c51267261 hr 36 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.15 Ether
0xdad878ee8d6611ab755877b8540de767400c20f510f9b0ff825b5dfd3957e7c151267171 hr 38 mins ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
[ Download CSV Export  ] 
Contract Source Code Verified
Contract Name: Presale
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.18;

/**
 * @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 constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant 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 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;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws 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;
  }

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

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

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

  mapping(address => uint256) 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 constant returns (uint256 balance) {
    return balances[_owner];
  }

}

/**
 * @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 constant 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;
  }

  function () public payable {
    revert();
  }

}

/**
 * @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 public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }


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


  /**
   * @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) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

contract MintableToken is StandardToken, Ownable {
    
  event Mint(address indexed to, uint256 amount);
  
  event MintFinished();

  bool public mintingFinished = false;

  address public saleAgent;

  modifier notLocked() {
    require(msg.sender == owner || msg.sender == saleAgent || mintingFinished);
    _;
  }

  function setSaleAgent(address newSaleAgnet) public {
    require(msg.sender == saleAgent || msg.sender == owner);
    saleAgent = newSaleAgnet;
  }

  function mint(address _to, uint256 _amount) public returns (bool) {
    require(msg.sender == saleAgent && !mintingFinished);
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() public returns (bool) {
    require((msg.sender == saleAgent || msg.sender == owner) && !mintingFinished);
    mintingFinished = true;
    MintFinished();
    return true;
  }

  function transfer(address _to, uint256 _value) public notLocked returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address from, address to, uint256 value) public notLocked returns (bool) {
    return super.transferFrom(from, to, value);
  }
  
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}

contract VestarinToken is MintableToken {	
    
  string public constant name = "Vestarin";
   
  string public constant symbol = "VST";
    
  uint32 public constant decimals = 18;

  mapping (address => uint) public locked;

  function transfer(address _to, uint256 _value) public returns (bool) {
    require(locked[msg.sender] < now);
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(locked[_from] < now);
    return super.transferFrom(_from, _to, _value);
  }
  
  function lock(address addr, uint periodInDays) public {
    require(locked[addr] < now && (msg.sender == saleAgent || msg.sender == addr));
    locked[addr] = now + periodInDays * 1 days;
  }

}

contract StagedCrowdsale is Pausable {

  using SafeMath for uint;

  struct Stage {
    uint hardcap;
    uint price;
    uint invested;
    uint closed;
  }

  uint public start;

  uint public period;

  uint public totalHardcap;
 
  uint public totalInvested;

  Stage[] public stages;

  function stagesCount() public constant returns(uint) {
    return stages.length;
  }

  function setStart(uint newStart) public onlyOwner {
    start = newStart;
  }

  function setPeriod(uint newPeriod) public onlyOwner {
    period = newPeriod;
  }

  function addStage(uint hardcap, uint price) public onlyOwner {
    require(hardcap > 0 && price > 0);
    Stage memory stage = Stage(hardcap.mul(1 ether), price, 0, 0);
    stages.push(stage);
    totalHardcap = totalHardcap.add(stage.hardcap);
  }

  function removeStage(uint8 number) public onlyOwner {
    require(number >=0 && number < stages.length);
    Stage storage stage = stages[number];
    totalHardcap = totalHardcap.sub(stage.hardcap);    
    delete stages[number];
    for (uint i = number; i < stages.length - 1; i++) {
      stages[i] = stages[i+1];
    }
    stages.length--;
  }

  function changeStage(uint8 number, uint hardcap, uint price) public onlyOwner {
    require(number >= 0 &&number < stages.length);
    Stage storage stage = stages[number];
    totalHardcap = totalHardcap.sub(stage.hardcap);    
    stage.hardcap = hardcap.mul(1 ether);
    stage.price = price;
    totalHardcap = totalHardcap.add(stage.hardcap);    
  }

  function insertStage(uint8 numberAfter, uint hardcap, uint price) public onlyOwner {
    require(numberAfter < stages.length);
    Stage memory stage = Stage(hardcap.mul(1 ether), price, 0, 0);
    totalHardcap = totalHardcap.add(stage.hardcap);
    stages.length++;
    for (uint i = stages.length - 2; i > numberAfter; i--) {
      stages[i + 1] = stages[i];
    }
    stages[numberAfter + 1] = stage;
  }

  function clearStages() public onlyOwner {
    for (uint i = 0; i < stages.length; i++) {
      delete stages[i];
    }
    stages.length -= stages.length;
    totalHardcap = 0;
  }

  function lastSaleDate() public constant returns(uint) {
    return start + period * 1 days;
  }

  modifier saleIsOn() {
    require(stages.length > 0 && now >= start && now < lastSaleDate());
    _;
  }
  
  modifier isUnderHardcap() {
    require(totalInvested <= totalHardcap);
    _;
  }

  function currentStage() public saleIsOn isUnderHardcap constant returns(uint) {
    for(uint i=0; i < stages.length; i++) {
      if(stages[i].closed == 0) {
        return i;
      }
    }
    revert();
  }

}

contract CommonSale is StagedCrowdsale {

  address public masterWallet;

  address public slaveWallet;
  
  address public directMintAgent;

  uint public slaveWalletPercent = 30;

  uint public percentRate = 100;

  uint public minPrice;

  uint public totalTokensMinted;
  
  bool public slaveWalletInitialized;
  
  bool public slaveWalletPercentInitialized;

  VestarinToken public token;
  
  modifier onlyDirectMintAgentOrOwner() {
    require(directMintAgent == msg.sender || owner == msg.sender);
    _;
  }
  
  function setDirectMintAgent(address newDirectMintAgent) public onlyOwner {
    directMintAgent = newDirectMintAgent;
  }
  
  function setMinPrice(uint newMinPrice) public onlyOwner {
    minPrice = newMinPrice;
  }

  function setSlaveWalletPercent(uint newSlaveWalletPercent) public onlyOwner {
    require(!slaveWalletPercentInitialized);
    slaveWalletPercent = newSlaveWalletPercent;
    slaveWalletPercentInitialized = true;
  }

  function setMasterWallet(address newMasterWallet) public onlyOwner {
    masterWallet = newMasterWallet;
  }

  function setSlaveWallet(address newSlaveWallet) public onlyOwner {
    require(!slaveWalletInitialized);
    slaveWallet = newSlaveWallet;
    slaveWalletInitialized = true;
  }
  
  function setToken(address newToken) public onlyOwner {
    token = VestarinToken(newToken);
  }

  function directMint(address to, uint investedWei) public onlyDirectMintAgentOrOwner saleIsOn {
    mintTokens(to, investedWei);
  }

  function createTokens() public whenNotPaused payable {
    require(msg.value >= minPrice);
    uint masterValue = msg.value.mul(percentRate.sub(slaveWalletPercent)).div(percentRate);
    uint slaveValue = msg.value.sub(masterValue);
    masterWallet.transfer(masterValue);
    slaveWallet.transfer(slaveValue);
    mintTokens(msg.sender, msg.value);
  }

  function mintTokens(address to, uint weiInvested) internal {
    uint stageIndex = currentStage();
    Stage storage stage = stages[stageIndex];
    uint tokens = weiInvested.mul(stage.price);
    token.mint(this, tokens);
    token.transfer(to, tokens);
    totalTokensMinted = totalTokensMinted.add(tokens);
    totalInvested = totalInvested.add(weiInvested);
    stage.invested = stage.invested.add(weiInvested);
    if(stage.invested >= stage.hardcap) {
      stage.closed = now;
    }
  }

  function() external payable {
    createTokens();
  }
  
  function retrieveTokens(address anotherToken, address to) public onlyOwner {
    ERC20 alienToken = ERC20(anotherToken);
    alienToken.transfer(to, alienToken.balanceOf(this));
  }

}

contract Presale is CommonSale {

  Mainsale public mainsale;

  function setMainsale(address newMainsale) public onlyOwner {
    mainsale = Mainsale(newMainsale);
  }

  function finishMinting() public whenNotPaused onlyOwner {
    token.setSaleAgent(mainsale);
  }

  function() external payable {
    createTokens();
  }

}


contract Mainsale is CommonSale {

  address public foundersTokensWallet;
  
  address public bountyTokensWallet;
  
  uint public foundersTokensPercent;
  
  uint public bountyTokensPercent;
  
  uint public lockPeriod;

  function setLockPeriod(uint newLockPeriod) public onlyOwner {
    lockPeriod = newLockPeriod;
  }

  function setFoundersTokensPercent(uint newFoundersTokensPercent) public onlyOwner {
    foundersTokensPercent = newFoundersTokensPercent;
  }

  function setBountyTokensPercent(uint newBountyTokensPercent) public onlyOwner {
    bountyTokensPercent = newBountyTokensPercent;
  }

  function setFoundersTokensWallet(address newFoundersTokensWallet) public onlyOwner {
    foundersTokensWallet = newFoundersTokensWallet;
  }

  function setBountyTokensWallet(address newBountyTokensWallet) public onlyOwner {
    bountyTokensWallet = newBountyTokensWallet;
  }

  function finishMinting() public whenNotPaused onlyOwner {
    uint summaryTokensPercent = bountyTokensPercent + foundersTokensPercent;
    uint mintedTokens = token.totalSupply();
    uint totalSupply = mintedTokens.mul(percentRate).div(percentRate.sub(summaryTokensPercent));
    uint foundersTokens = totalSupply.mul(foundersTokensPercent).div(percentRate);
    uint bountyTokens = totalSupply.mul(bountyTokensPercent).div(percentRate);
    token.mint(this, foundersTokens);
    token.lock(foundersTokensWallet, lockPeriod * 1 days);
    token.transfer(foundersTokensWallet, foundersTokens);
    token.mint(this, bountyTokens);
    token.transfer(bountyTokensWallet, bountyTokens);
    totalTokensMinted = totalTokensMinted.add(foundersTokens).add(bountyTokens);
    token.finishMinting();
  }

}

contract Configurator is Ownable {

  VestarinToken public token; 

  Presale public presale;

  Mainsale public mainsale;

  function deploy() public onlyOwner {
    //owner = 0x95EA6A4ec9F80436854702e5F05d238f27166A03;

    token = new VestarinToken();

    presale = new Presale();

    presale.setToken(token);
    presale.addStage(5000,3000);
    presale.setMasterWallet(0x95EA6A4ec9F80436854702e5F05d238f27166A03);
    presale.setSlaveWallet(0x070EcC35a3212D76ad443d529216a452eAA35E3D);
    presale.setSlaveWalletPercent(50);
    presale.setStart(1517317200);
    presale.setPeriod(30);
    presale.setMinPrice(100000000000000000);
    token.setSaleAgent(presale);	

    mainsale = new Mainsale();

    mainsale.setToken(token);
    mainsale.addStage(5000,2000);
    mainsale.addStage(5000,1800);
    mainsale.addStage(10000,1700);
    mainsale.addStage(20000,1600);
    mainsale.addStage(20000,1500);
    mainsale.addStage(40000,1300);
    mainsale.setMasterWallet(0x95EA6A4ec9F80436854702e5F05d238f27166A03);
    mainsale.setSlaveWallet(0x070EcC35a3212D76ad443d529216a452eAA35E3D);
    mainsale.setSlaveWalletPercent(50);
    mainsale.setFoundersTokensWallet(0x95EA6A4ec9F80436854702e5F05d238f27166A03);
    mainsale.setBountyTokensWallet(0x95EA6A4ec9F80436854702e5F05d238f27166A03);
    mainsale.setStart(1525352400);
    mainsale.setPeriod(30);
    mainsale.setLockPeriod(90);
    mainsale.setMinPrice(100000000000000000);
    mainsale.setFoundersTokensPercent(13);
    mainsale.setBountyTokensPercent(5);

    presale.setMainsale(mainsale);

    token.transferOwnership(owner);
    presale.transferOwnership(owner);
    mainsale.transferOwnership(owner);
  }

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"newPeriod","type":"uint256"}],"name":"setPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newToken","type":"address"}],"name":"setToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"slaveWalletPercentInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"slaveWalletPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastSaleDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"investedWei","type":"uint256"}],"name":"directMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stagesCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentStage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMinPrice","type":"uint256"}],"name":"setMinPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"anotherToken","type":"address"},{"name":"to","type":"address"}],"name":"retrieveTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"directMintAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMainsale","type":"address"}],"name":"setMainsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"number","type":"uint8"},{"name":"hardcap","type":"uint256"},{"name":"price","type":"uint256"}],"name":"changeStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newDirectMintAgent","type":"address"}],"name":"setDirectMintAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"clearStages","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"percentRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"stages","outputs":[{"name":"hardcap","type":"uint256"},{"name":"price","type":"uint256"},{"name":"invested","type":"uint256"},{"name":"closed","type":"uint256"}],"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":"hardcap","type":"uint256"},{"name":"price","type":"uint256"}],"name":"addStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMasterWallet","type":"address"}],"name":"setMasterWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"number","type":"uint8"}],"name":"removeStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"createTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"slaveWalletInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSlaveWallet","type":"address"}],"name":"setSlaveWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSlaveWalletPercent","type":"uint256"}],"name":"setSlaveWalletPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"numberAfter","type":"uint8"},{"name":"hardcap","type":"uint256"},{"name":"price","type":"uint256"}],"name":"insertStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"period","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newStart","type":"uint256"}],"name":"setStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalHardcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mainsale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"masterWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"slaveWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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
606060405260008054601e6009556064600a55600160a060020a033316600160a860020a031990911617905561160d8061003a6000396000f3006060604052600436106101ea5763ffffffff60e060020a6000350416630f3a9f6581146101f4578063144fa6d71461020a5780631f2e97c814610229578063258108da1461025057806329dd0b86146102755780632f8bd891146102885780633806422a146102aa5780633f4ba83a146102bd5780635216aeec146102d05780635bf5d54c146102e35780635c975abb146102f65780635ea8cd12146103095780636341ca0b1461031f5780636abc3fe4146103445780636e8add02146103735780636ed0b9d714610392578063769ffb7d146103b1578063798c6e0f146103d05780637d549e99146103e35780637d64bcb4146103f65780638090114f146104095780638456cb591461041c578063845ddcb21461042f5780638da5cb5b146104705780639f49cefb14610483578063a6c7bf8a1461049c578063b27b7dd1146104bb578063b4427263146101ea578063b557c9a4146104d4578063be9a6555146104e7578063c7775011146104fa578063e0a0f50d14610519578063e45be8eb1461052f578063eb8ba66c14610542578063ef78d4fd14610561578063f2fde38b14610574578063f6a03ebf14610593578063f6a3b1dd146105a9578063f6fc96ad146105bc578063fc0c546a146105cf578063fc0d0117146105e2578063feda1045146105f5575b6101f2610608565b005b34156101ff57600080fd5b6101f26004356106f3565b341561021557600080fd5b6101f2600160a060020a0360043516610713565b341561023457600080fd5b61023c610765565b604051901515815260200160405180910390f35b341561025b57600080fd5b610263610773565b60405190815260200160405180910390f35b341561028057600080fd5b610263610779565b341561029357600080fd5b6101f2600160a060020a036004351660243561078b565b34156102b557600080fd5b6102636107fd565b34156102c857600080fd5b6101f2610803565b34156102db57600080fd5b610263610882565b34156102ee57600080fd5b610263610888565b341561030157600080fd5b61023c61091f565b341561031457600080fd5b6101f260043561092f565b341561032a57600080fd5b6101f2600160a060020a036004358116906024351661094f565b341561034f57600080fd5b610357610a52565b604051600160a060020a03909116815260200160405180910390f35b341561037e57600080fd5b6101f2600160a060020a0360043516610a61565b341561039d57600080fd5b6101f260ff60043516602435604435610aab565b34156103bc57600080fd5b6101f2600160a060020a0360043516610b64565b34156103db57600080fd5b6101f2610bae565b34156103ee57600080fd5b610263610c2c565b341561040157600080fd5b6101f2610c32565b341561041457600080fd5b610263610cd7565b341561042757600080fd5b6101f2610cdd565b341561043a57600080fd5b610445600435610d61565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b341561047b57600080fd5b610357610d99565b341561048e57600080fd5b6101f2600435602435610da8565b34156104a757600080fd5b6101f2600160a060020a0360043516610e89565b34156104c657600080fd5b6101f260ff60043516610ed3565b34156104df57600080fd5b61023c61101e565b34156104f257600080fd5b610263611027565b341561050557600080fd5b6101f2600160a060020a036004351661102d565b341561052457600080fd5b6101f2600435611094565b341561053a57600080fd5b6102636110d8565b341561054d57600080fd5b6101f260ff600435166024356044356110de565b341561056c57600080fd5b61026361124c565b341561057f57600080fd5b6101f2600160a060020a0360043516611252565b341561059e57600080fd5b6101f26004356112ed565b34156105b457600080fd5b61026361130d565b34156105c757600080fd5b610357611313565b34156105da57600080fd5b610357611322565b34156105ed57600080fd5b610357611337565b341561060057600080fd5b610357611346565b60008054819060a060020a900460ff161561062257600080fd5b600b5434101561063157600080fd5b61066a600a5461065e610651600954600a5461135590919063ffffffff16565b349063ffffffff61136716565b9063ffffffff61139216565b915061067c348363ffffffff61135516565b600654909150600160a060020a031682156108fc0283604051600060405180830381858888f1935050505015156106b257600080fd5b600754600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156106e557600080fd5b6106ef33346113a9565b5050565b60005433600160a060020a0390811691161461070e57600080fd5b600255565b60005433600160a060020a0390811691161461072e57600080fd5b600d8054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff000019909216919091179055565b600d54610100900460ff1681565b60095481565b60025460015462015180909102015b90565b60085433600160a060020a03908116911614806107b6575060005433600160a060020a039081169116145b15156107c157600080fd5b6005546000901180156107d657506001544210155b80156107e857506107e5610779565b42105b15156107f357600080fd5b6106ef82826113a9565b60055490565b60005433600160a060020a0390811691161461081e57600080fd5b60005460a060020a900460ff16151561083657600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60045481565b60008060006005805490501180156108a257506001544210155b80156108b457506108b1610779565b42105b15156108bf57600080fd5b60035460045411156108d057600080fd5b5060005b6005548110156109165760058054829081106108ec57fe5b9060005260206000209060040201600301546000141561090e5780915061091b565b6001016108d4565b600080fd5b5090565b60005460a060020a900460ff1681565b60005433600160a060020a0390811691161461094a57600080fd5b600b55565b6000805433600160a060020a0390811691161461096b57600080fd5b5081600160a060020a03811663a9059cbb83826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156109cb57600080fd5b6102c65a03f115156109dc57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610a3257600080fd5b6102c65a03f11515610a4357600080fd5b50505060405180515050505050565b600854600160a060020a031681565b60005433600160a060020a03908116911614610a7c57600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a03908116911614610ac757600080fd5b60008460ff1610158015610adf575060055460ff8516105b1515610aea57600080fd5b6005805460ff8616908110610afb57fe5b90600052602060002090600402019050610b24816000015460035461135590919063ffffffff16565b600355610b3f83670de0b6b3a764000063ffffffff61136716565b80825560018201839055600354610b5b9163ffffffff61154f16565b60035550505050565b60005433600160a060020a03908116911614610b7f57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a03908116911614610bca57600080fd5b5060005b600554811015610c16576005805482908110610be657fe5b60009182526020822060049091020181815560018082018390556002820183905560039091019190915501610bce565b6000610c2360058261155e565b50506000600355565b600c5481565b60005460a060020a900460ff1615610c4957600080fd5b60005433600160a060020a03908116911614610c6457600080fd5b600d54600e54600160a060020a03620100009092048216916314133a7c911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610cc157600080fd5b6102c65a03f11515610cd257600080fd5b505050565b600a5481565b60005433600160a060020a03908116911614610cf857600080fd5b60005460a060020a900460ff1615610d0f57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6005805482908110610d6f57fe5b60009182526020909120600490910201805460018201546002830154600390930154919350919084565b600054600160a060020a031681565b610db061158a565b60005433600160a060020a03908116911614610dcb57600080fd5b600083118015610ddb5750600082115b1515610de657600080fd5b608060405190810160405280610e0a85670de0b6b3a764000063ffffffff61136716565b8152602001838152602001600081526020016000815250905060058054806001018281610e37919061155e565b60009283526020909220839160040201815181556020820151816001015560408201518160020155606082015160039091015550610e81905081516003549063ffffffff61154f16565b600355505050565b60005433600160a060020a03908116911614610ea457600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a03908116911614610ef157600080fd5b60008360ff1610158015610f09575060055460ff8416105b1515610f1457600080fd5b6005805460ff8516908110610f2557fe5b90600052602060002090600402019150610f4e826000015460035461135590919063ffffffff16565b6003556005805460ff8516908110610f6257fe5b6000918252602082206004909102018181556001810182905560028101829055600301555060ff82165b60055460001901811015611005576005805460018301908110610fab57fe5b9060005260206000209060040201600582815481101515610fc857fe5b6000918252602090912082546004909202019081556001808301548183015560028084015490830155600392830154929091019190915501610f8c565b600580549061101890600019830161155e565b50505050565b600d5460ff1681565b60015481565b60005433600160a060020a0390811691161461104857600080fd5b600d5460ff161561105857600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600d805460ff19166001179055565b60005433600160a060020a039081169116146110af57600080fd5b600d54610100900460ff16156110c457600080fd5b600955600d805461ff001916610100179055565b600b5481565b6110e661158a565b6000805433600160a060020a0390811691161461110257600080fd5b60055460ff86161061111357600080fd5b60806040519081016040528061113786670de0b6b3a764000063ffffffff61136716565b8152602001848152602001600081526020016000815250915061116782600001516003549063ffffffff61154f16565b600355600580549061117c906001830161155e565b5050600554600119015b8460ff168111156111fa57600580548290811061119f57fe5b90600052602060002090600402016005826001018154811015156111bf57fe5b600091825260209091208254600490920201908155600180830154908201556002808301549082015560039182015491015560001901611186565b8160058660010160ff1681548110151561121057fe5b90600052602060002090600402016000820151815560208201518160010155604082015181600201556060820151600390910155505050505050565b60025481565b60005433600160a060020a0390811691161461126d57600080fd5b600160a060020a038116151561128257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461130857600080fd5b600155565b60035481565b600e54600160a060020a031681565b600d54620100009004600160a060020a031681565b600654600160a060020a031681565b600754600160a060020a031681565b60008282111561136157fe5b50900390565b6000828202831580611383575082848281151561138057fe5b04145b151561138b57fe5b9392505050565b60008082848115156113a057fe5b04949350505050565b60008060006113b6610888565b92506005838154811015156113c757fe5b906000526020600020906004020191506113ee82600101548561136790919063ffffffff16565b600d54909150620100009004600160a060020a03166340c10f19308360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561145657600080fd5b6102c65a03f1151561146757600080fd5b50505060405180515050600d54620100009004600160a060020a031663a9059cbb868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114d657600080fd5b6102c65a03f115156114e757600080fd5b50505060405180515050600c54611504908263ffffffff61154f16565b600c5560045461151a908563ffffffff61154f16565b6004556002820154611532908563ffffffff61154f16565b6002830181905582549010611548574260038301555b5050505050565b60008282018381101561138b57fe5b815481835581811511610cd257600402816004028360005260206000209182019101610cd291906115b3565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b61078891905b8082111561091b576000808255600182018190556002820181905560038201556004016115b95600a165627a7a723058202e2b3ab353cd6a70afacd9ddc39a4354aa3e216ae6100ae4d7a5f278125253060029

   Swarm Source:
bzzr://2e2b3ab353cd6a70afacd9ddc39a4354aa3e216ae6100ae4d7a5f27812525306

 

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.