Sponsored Link:   $30 Mn 5 star ICO - TrakInvest building crypto AI engine. Buy TRAK token now here.
 Latest 25 txns from a total Of 5160 transactions
View All

TxHash Age From To Value [TxFee]
0xae7ab6ac1efdc4ed63be3e5e183511c98d7d01b291189ef9687323eca713074981 days 17 hrs ago0x618f2c628a8bc43a4267665b46c08c872f89cfde  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.0117372
0xb40ec465f2e0971d34aa097f5d9b574207906103ee0335964b08acaa3f62db3785 days 2 hrs ago0x95ea6a4ec9f80436854702e5f05d238f27166a03  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530 Ether0.00183576
0x7ae04aec83d917e0764251163a17196606b280e8e8830ee0e53be314ac6fd89186 days 10 hrs ago0xa7132b8d1f17eb0ee607f078d5e6a101fdd930e4  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.15 Ether0.00269034
0x70ed3e0fbad04824683d29d8f1a05b87a737c387615746d4bc76f5f67036599d87 days 3 hrs ago0x779be4a3aedc07ebb39944bd63e450efa2539e80  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.0001151458
0x954ba29a1d3b1d708cf6dbf083d58870b597dac5c74419f1be00d95c7a01893187 days 8 hrs ago0xb4af2e89210c7f558d5d0c61a86772351c4aeedc  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.5 Ether0.00314034
0xa8669fbb001a44f10de3e4debd494cc511cb67c8eeaf009dd9c6532bec35b2ef87 days 8 hrs ago0x442703ad3e923337956e97a02c8b42f8b907009e  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.004291798
0x90698560ab5257cb46ecc3c00a0837ff31d426e322a0f654e6dd056c9937f1a387 days 8 hrs ago0x1808581d346f4fbc34d23e755dd9ada8411857c7  IN  0xcf768b4d181048bb5e0e6e1a95460334837797534.11 Ether0.00628068
0x95e444cdce6b59dab32d94431e1cd476d5b9cef37fcb341bde16cee6027f82f487 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530 Ether0.00129564
0x9a4614635bcf2161a9df12cd70d9edf531e77768508f17ae0a4be4e2e78f5f6487 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0x2eb5e3397ed187377189bda5e1fe38745356768bbc7e57c9548de2496e1ef06687 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0x5cf8272fd40dd05bff1be73f7cb6bd90221b4dc705696464d1a96e01ed028d4f87 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0x27f7e70c9e9c47a1e2996c1f7b9a2ffdb3780139632c817aacbf387b53790b8887 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0x93587720b1230c923b54c98b2078754cbfd581ed2d5c1d580c40da99acb3273b87 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0xc4d3dbfe06b10d9b01a5fc74cd95e8726f1f1f3669c0259fb89f469023c8bfc987 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0xd55c54fe54dbbd9e5d3f0782a19d1a051396421afc8333ab4f563abc44b72b2487 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0xe7ed84ef0182af25977df03b535502e1958f301b450506b9a9b1692f64bbe20d87 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0xa4fb0a49a308ba184472e9f7525ef72d2ab4e5b463d6897836a4572f7c10577e87 days 9 hrs ago0x090acd31bb9e59d816c568e8322f8f87cf885125  IN  0xcf768b4d181048bb5e0e6e1a95460334837797534 Ether0.00837424
0x796bd740dc906d829cc8f4cdb6fecf6eef1bcde04cd0630c227ef976355388eb87 days 9 hrs ago0x872e61fdf54a1c46cdeb006fdc818acf7fe4a950  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.00557415 Ether0.001575
0xc02a77fea45aeb2ccf9294b953bd0269f0381649b5a972f18358e4bbdaa1f0c587 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.1 Ether0.00538068
0x716d1c027da19d0aac492abc91355578029a25a845f7f0105baaf601864b86c387 days 9 hrs ago0x402fa4e6f87773a943b47200ce881c44a72b93b3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.995093202 Ether0.004291798
0x9ce2108b68b36693eafb3ba20c9b56bf38174593e6a2e07418e34b417cd87f2987 days 9 hrs ago0x740ebbe1aff16037f39902adf9d3967daf8f5dc3  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.621095322 Ether0.00628068
0xebe56faf2924416b4b9dd0d0cd102446e60a5afd1fe28376719b4bad62a9d47487 days 9 hrs ago0x42de96bc38eb556b8cd52e1bad184c35351f3b1d  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.994 Ether0.00418712
0xb011778442611018b21ce8ee21f9fef80afed7241dddd298f3b40fcedf5a580087 days 9 hrs ago0xb2a60f50293ae8bacfd4746ed271e6d228ce8c3f  IN  0xcf768b4d181048bb5e0e6e1a95460334837797534 Ether0.00179532
0x3e9f0d6db849460188f9d9681575fda45c9f31ee3a4de6ddb16b1a15cf0ef6ba87 days 9 hrs ago0x4fbd98469e4e79376fd187450d66d53f28987f16  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.34 Ether0.000538068
0xd64bc7c01bb8745ea9e4308b7a8837cb159fc3395b314da19a7b90d7159a5c5d87 days 9 hrs ago0xf341ad19424ab45189dc33ff876c208883662242  IN  0xcf768b4d181048bb5e0e6e1a95460334837797530.213348 Ether0.00628068
[ 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
0xae7ab6ac1efdc4ed63be3e5e183511c98d7d01b291189ef9687323eca7130749520468581 days 17 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0xae7ab6ac1efdc4ed63be3e5e183511c98d7d01b291189ef9687323eca7130749520468581 days 17 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x7ae04aec83d917e0764251163a17196606b280e8e8830ee0e53be314ac6fd891517682886 days 10 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.075 Ether
0x7ae04aec83d917e0764251163a17196606b280e8e8830ee0e53be314ac6fd891517682886 days 10 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.075 Ether
0x70ed3e0fbad04824683d29d8f1a05b87a737c387615746d4bc76f5f67036599d517270687 days 3 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0x70ed3e0fbad04824683d29d8f1a05b87a737c387615746d4bc76f5f67036599d517270687 days 3 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x954ba29a1d3b1d708cf6dbf083d58870b597dac5c74419f1be00d95c7a018931517150487 days 8 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.25 Ether
0x954ba29a1d3b1d708cf6dbf083d58870b597dac5c74419f1be00d95c7a018931517150487 days 8 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.25 Ether
0xa8669fbb001a44f10de3e4debd494cc511cb67c8eeaf009dd9c6532bec35b2ef517140187 days 8 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0xa8669fbb001a44f10de3e4debd494cc511cb67c8eeaf009dd9c6532bec35b2ef517140187 days 8 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x90698560ab5257cb46ecc3c00a0837ff31d426e322a0f654e6dd056c9937f1a3517135887 days 8 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d2.055 Ether
0x90698560ab5257cb46ecc3c00a0837ff31d426e322a0f654e6dd056c9937f1a3517135887 days 8 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a032.055 Ether
0x9a4614635bcf2161a9df12cd70d9edf531e77768508f17ae0a4be4e2e78f5f64517128387 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0x9a4614635bcf2161a9df12cd70d9edf531e77768508f17ae0a4be4e2e78f5f64517128387 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x2eb5e3397ed187377189bda5e1fe38745356768bbc7e57c9548de2496e1ef066517128187 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0x2eb5e3397ed187377189bda5e1fe38745356768bbc7e57c9548de2496e1ef066517128187 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x5cf8272fd40dd05bff1be73f7cb6bd90221b4dc705696464d1a96e01ed028d4f517127687 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0x5cf8272fd40dd05bff1be73f7cb6bd90221b4dc705696464d1a96e01ed028d4f517127687 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x27f7e70c9e9c47a1e2996c1f7b9a2ffdb3780139632c817aacbf387b53790b88517127487 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0x27f7e70c9e9c47a1e2996c1f7b9a2ffdb3780139632c817aacbf387b53790b88517127487 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0x93587720b1230c923b54c98b2078754cbfd581ed2d5c1d580c40da99acb3273b517127387 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0x93587720b1230c923b54c98b2078754cbfd581ed2d5c1d580c40da99acb3273b517127387 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0xc4d3dbfe06b10d9b01a5fc74cd95e8726f1f1f3669c0259fb89f469023c8bfc9517126887 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
0xc4d3dbfe06b10d9b01a5fc74cd95e8726f1f1f3669c0259fb89f469023c8bfc9517126887 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x95ea6a4ec9f80436854702e5f05d238f27166a030.05 Ether
0xd55c54fe54dbbd9e5d3f0782a19d1a051396421afc8333ab4f563abc44b72b24517126387 days 9 hrs ago0xcf768b4d181048bb5e0e6e1a95460334837797530x070ecc35a3212d76ad443d529216a452eaa35e3d0.05 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
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.