Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 234 txns
 Latest 25 txns From a total of 234 Transactions

TxHash Age From To Value [TxFee]
0x1eb3ce6ed8a8f200f3c104d3388c2cd3426f81da0207b73509505a12d4678b3542 days 8 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000660723
0x1b4df2b5eda3498ebc7f775e17e3be795b656a6e9ea1df303ac44620ac0ac6a242 days 8 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000656922
0x3d509961074cd16e947d1b118dfc1d47dbeffbe4613e255ca9017386fefec15f44 days 10 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.001688967
0xd69b7a2035275446a19621049a5ca5aedc837a5afbc5783e004c3ec69778328c46 days 4 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.0007392
0x46f69e1f59dfb45af3108283a02ce01be69bca46e50334b9fe94f7ee611d631f46 days 17 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.001046832
0xae4c7b4c3ac3404e8009a9cd16f8c7f9b290ca8eace128209beb4fd994516df347 days 3 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000816256
0xcdb5abe92c11537cfb0ef5d555bc62b6090e2b3c1e7408971ed318edeadbf24c47 days 3 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000816256
0xebec1004bcc7c76271740f11eac30783e488d50fecacf400491fbc4b9341d51947 days 3 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.001056256
0xd524e0be08f61eb0734e449ff6300b2ae50593673c395bce14ba122f20cdd5a447 days 3 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000792192
0x2b13f84b015a6a4532ff3406d93d71397a72ca495efb12db7cb7e9bab34d06ac47 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000612192
0xe3b440435a3b3419ce5ae4a596576ed4bb6144cb5bdd8dffe235a062831def6147 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000612192
0x4aad741959ba47ad5a0ef7a4d34af1df0307b6353cb908d22bf78425b5af953e47 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000371664
0x2387e1415acb0c958df868126e06063f94e7b4a3bb24bacdb1344cb781fee4bf48 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.0007344
0x61af4071ad8b2f3fd133cf9cf91f67b668faf338c5251551f8595f9aaf6c1b4b48 days 21 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000733632
0xe9ac80000ff68a877fd6de5fea3e9f3a356830636308d31729bca66d6176dbc049 days 6 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.0007344
0x9567c07542250158f9da2e1d4ac870df9274623cf470bc32530ea69a94441d8b49 days 9 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.001834992
0xe95ec01cced57f7e27f97e2e57a3c68657e8622e28376130c25d3f97cfcef0e849 days 11 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.0005544
0x0c0439d7dd26561c19dc80922bf4a3b1cac294db7c4f5bfd6bb16660cadb403249 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.0007344
0xbeecdc6d1bad158b885f49b8834e4d37df148bf2e2637d888695bd2ddbf090eb49 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000344664
0x6be04f17c13a8291da0ace0e2c5968b897bc5cfea65a1e70fb3ee2461ba0dfdd49 days 15 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.0005544
0xf9161041dff8237b6148747e9d8ba3b1434c21d3053f4496abcfbfbd6932326849 days 16 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000791424
0x9d03f0508f47359238fd20c20c6d2fd2c1c10737ad803f53cc721a5b4502854950 days 9 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000792192
0xd567d376ca87db7f22d82e6db5dccc14b88c0dcb921a21c9b68fb7d7cb7e035650 days 9 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.00061136
0xa42218c20cec00d349afbe3666dea0b8991c4ee7b3abd16d347a4c356edb7a1250 days 10 hrs ago0x2488f34a2c2ebabbb44d5e8ad81e1d689fd76e50  IN   0x1b0a536da15091f676e002a086862d25aadff4b10 Ether0.000199892
0xd53811a95b00544e0742573db3d25e02acf51caafea62ee878cf2723d06175e351 days 9 hrs ago0x30110c58815fec832cedd354b38533cefcdd0068  IN   0x1b0a536da15091f676e002a086862d25aadff4b10.015 Ether0.0047284
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 20 Internal Transactions

ParentTxHash Block Age From To Value
0xd53811a95b00544e0742573db3d25e02acf51caafea62ee878cf2723d06175e3623536351 days 9 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x3f68b06e7c0e87828647dbba0b5beaef3822b7db0.015 Ether
0x9923e9c3dbe5eb93951314f0cce079ad673a99547767417968febf4a15e57f10602626386 days 17 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x3f68b06e7c0e87828647dbba0b5beaef3822b7db0.58 Ether
0xdde4f53471f16974cc983bfad9ed627fa2616bfffe9acf20a6d92b7524999b46600330890 days 14 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x3f68b06e7c0e87828647dbba0b5beaef3822b7db0.4 Ether
0x39c8c46b241c1da6986e7997838fe30ddb4d1921c545513b580ce71b7c632666600324190 days 14 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x3f68b06e7c0e87828647dbba0b5beaef3822b7db0.4 Ether
0xc9ccdfb835b487d3a0c23a74a2e6f2aa073f82eb1138065efd83117d52e885aa600310190 days 15 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x3f68b06e7c0e87828647dbba0b5beaef3822b7db0.1 Ether
0x84e47358a2b3cf92046e951e73642e8e314222f0ecb4da1cc638751f2a25af995804733124 days 12 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.05 Ether
0x84e47358a2b3cf92046e951e73642e8e314222f0ecb4da1cc638751f2a25af995804733124 days 12 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.05 Ether
0x3e818bdf69545df241c04c9b7ef029593395cb26ef48c5395f81dcc6904856475804083124 days 15 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.05 Ether
0x3e818bdf69545df241c04c9b7ef029593395cb26ef48c5395f81dcc6904856475804083124 days 15 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.05 Ether
0x26d26400f6f76c349e4b9fde7dd026368fb79017eb7b69102e05c3d16306ceb35800745125 days 5 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.1 Ether
0x26d26400f6f76c349e4b9fde7dd026368fb79017eb7b69102e05c3d16306ceb35800745125 days 5 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.1 Ether
0x1b196dac083b6c8fcf8169bca225b3ea8d3619457852ea13e3bdb42398abaf255743184135 days 7 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.01 Ether
0x1b196dac083b6c8fcf8169bca225b3ea8d3619457852ea13e3bdb42398abaf255743184135 days 7 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.01 Ether
0xb32daf73297c6f8ac3bd3b8373cfcdd3255009b4307bf8bdf9b270698ccead225739216136 days 12 mins ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.025 Ether
0xb32daf73297c6f8ac3bd3b8373cfcdd3255009b4307bf8bdf9b270698ccead225739216136 days 12 mins ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.025 Ether
0x6c1042ef1c5ddeab1a5768e9b1c81aed1e3953aec6896339cfb7b2314018ab435733379137 days 1 hr ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.2 Ether
0x6c1042ef1c5ddeab1a5768e9b1c81aed1e3953aec6896339cfb7b2314018ab435733379137 days 1 hr ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.2 Ether
0x92bae387df80edc56881773fd7c1146875e1385e5bd1c633d92c599dfc63930c5703802142 days 7 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10xb447292181296b8c7f421f1182be20640dc8bb050.0025 Ether
0x92bae387df80edc56881773fd7c1146875e1385e5bd1c633d92c599dfc63930c5703802142 days 7 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b10x43adebfc525fecf9b2e91a4931e4a003a1f0d9590.0025 Ether
0x99b7559dd440ba57c964cae3b25010396f778dd5b2934400a31abdc95ef1941c5703735142 days 7 hrs ago0x1b0a536da15091f676e002a086862d25aadff4b1  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ICO
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }
  

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  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 a / b;
  }


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

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




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




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




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




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

  mapping(address => uint256) balances;

  uint256 totalSupply_;
  

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }
  

  /**
  * @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]);

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


  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256) {
    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 view returns (uint256) {
    return allowed[_owner][_spender];
  }
  

  /**
   * @dev Increase the amount of tokens that an owner allowed to a 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
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }


  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    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;
  }
}




/**
 * @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 = true;


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

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




/**
 * @title Pausable token
 * @dev StandardToken modified with pausable transfers.
 **/
contract PausableToken is StandardToken, Pausable {

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


  function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }
  

  function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
    return super.approve(_spender, _value);
  }
  

  function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
    return super.increaseApproval(_spender, _addedValue);
  }
  

  function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
    return super.decreaseApproval(_spender, _subtractedValue);
  }
}




contract LMDA is PausableToken {
    
    string public  name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;


    /**
     * Constructor initializes the name, symbol, decimals and total 
     * supply of the token. The owner of the contract which is initially 
     * the ICO contract will receive the entire total supply. 
     * */
    function LMDA() public {
        name = "LaMonedaCoin";
        symbol = "LMDA";
        decimals = 18;
        totalSupply = 500000000e18;
        
        balances[owner] = totalSupply;
        Transfer(address(this), owner, totalSupply);
    }
}




contract ICO is Ownable {
    
    using SafeMath for uint256;
    
    event AidropInvoked();
    event MainSaleActivated();
    event TokenPurchased(address recipient, uint256 tokens);
    event DeadlineExtended(uint256 daysExtended);
    event DeadlineShortened(uint256 daysShortenedBy);
    event OffChainPurchaseMade(address recipient, uint256 tokensBought);
    event TokenPriceChanged(string stage, uint256 newTokenPrice);
    event ExchangeRateChanged(string stage, uint256 newRate);
    event BonusChanged(string stage, uint256 newBonus);
    event TokensWithdrawn(address to, uint256 LMDA); 
    event TokensUnpaused();
    event ICOPaused(uint256 timeStamp);
    event ICOUnpaused(uint256 timeStamp);  
    
    address public receiverOne;
    address public receiverTwo;
    address public receiverThree;
    address public reserveAddress;
    address public teamAddress;
    
    uint256 public endTime;
    uint256 public tokenPriceForPreICO;
    uint256 public rateForPreICO;
    uint256 public tokenPriceForMainICO;
    uint256 public rateForMainICO;
    uint256 public tokenCapForPreICO;
    uint256 public tokenCapForMainICO;
    uint256 public bonusForPreICO;
    uint256 public bonusForMainICO;
    uint256 public tokensSold;
    uint256 public timePaused;
    bool public icoPaused;
    
    
    enum StateOfICO {
        PRE,
        MAIN
    }
    
    StateOfICO public stateOfICO;
    
    LMDA public lmda;

    mapping (address => uint256) public investmentOf;
    
    
    /**
     * Functions with this modifier can only be called when the ICO 
     * is not paused.
     * */
    modifier whenNotPaused {
        require(!icoPaused);
        _;
    }
    
    
    /**
     * Constructor functions creates a new instance of the LMDA token 
     * and automatically distributes tokens to the reserve and team 
     * addresses. The constructor also initializes all of the state 
     * variables of the ICO contract. 
     * */
    function ICO() public {
        lmda = new LMDA();
        owner = 0x2488F34A2c2eBabbb44d5E8AD81E1D689fD76E50;
        receiverOne = 0x43adebFC525FEcf9b2E91a4931E4a003a1F0d959;   //Pre ICO
        receiverTwo = 0xB447292181296B8c7F421F1182be20640dc8Bb05;   //Pre ICO
        receiverThree = 0x3f68b06E7C0E87828647Dbba0b5beAef3822b7Db; //Main ICO
        reserveAddress = 0x7d05F660124B641b74b146E9aDA60D7D836dcCf5;
        teamAddress = 0xAD942E5085Af6a7A4C31f17ac687F8d5d7C0225C;
        lmda.transfer(reserveAddress, 90000000e18);
        lmda.transfer(teamAddress, 35500000e18);
        stateOfICO = StateOfICO.PRE;
        endTime = now.add(21 days);
        tokenPriceForPreICO = 0.00005 ether;
        rateForPreICO = 20000;
        tokenPriceForMainICO = 0.00007 ether;
        rateForMainICO = 14285; // should be 14,285.7143 
        tokenCapForPreICO = 144000000e18;
        tokenCapForMainICO = 374500000e18; 
        bonusForPreICO = 20;
        bonusForMainICO = 15;
        tokensSold = 0;
        icoPaused= false;
    }
    
    
    /**
     * This function allows the owner of the contract to airdrop LMDA tokens 
     * to a list of addresses, so long as a list of values is also provided.
     * 
     * @param _addrs The list of recipient addresses
     * @param _values The number of tokens each address will receive 
     * */
    function airdrop(address[] _addrs, uint256[] _values) public onlyOwner {
        require(lmda.balanceOf(address(this)) >= getSumOfValues(_values));
        require(_addrs.length <= 100 && _addrs.length == _values.length);
        for(uint i = 0; i < _addrs.length; i++) {
            lmda.transfer(_addrs[i], _values[i]);
        }
        AidropInvoked();
    }
    
    
    /**
     * Function is called internally by the airdrop() function to ensure that 
     * there are enough tokens remaining to execute the airdrop. 
     * 
     * @param _values The list of values representing the tokens to be sent
     * @return Returns the sum of all the values
     * */
    function getSumOfValues(uint256[] _values) internal pure returns(uint256 sum) {
        sum = 0;
        for(uint i = 0; i < _values.length; i++) {
            sum = sum.add(_values[i]);
        }
    }
    
    
    /**
     * Function allows the owner to activate the main sale.
     * */
    function activateMainSale() public onlyOwner whenNotPaused {
        require(now >= endTime || tokensSold >= tokenCapForPreICO);
        stateOfICO = StateOfICO.MAIN;
        endTime = now.add(49 days);
        MainSaleActivated();
    }


    /**
     * Fallback function invokes the buyToknes() method when ETH is recieved 
     * to enable the automatic distribution of tokens to investors.
     * */
    function() public payable {
        buyTokens(msg.sender);
    }
    
    
    /**
     * Allows investors to buy tokens for themselves or others by explicitly 
     * invoking the function using the ABI / JSON Interface of the contract.
     * 
     * @param _addr The address of the recipient
     * */
    function buyTokens(address _addr) public payable whenNotPaused {
        require(now <= endTime && _addr != 0x0);
        require(lmda.balanceOf(address(this)) > 0);
        if(stateOfICO == StateOfICO.PRE && tokensSold >= tokenCapForPreICO) {
            revert();
        } else if(stateOfICO == StateOfICO.MAIN && tokensSold >= tokenCapForMainICO) {
            revert();
        }
        uint256 toTransfer = msg.value.mul(getRate().mul(getBonus())).div(100).add(getRate());
        lmda.transfer(_addr, toTransfer);
        tokensSold = tokensSold.add(toTransfer);
        investmentOf[msg.sender] = investmentOf[msg.sender].add(msg.value);
        TokenPurchased(_addr, toTransfer);
        forwardFunds();
    }
    
    
    /**
     * Allows the owner to send tokens to investors who paid with other currencies.
     * 
     * @param _recipient The address of the receiver 
     * @param _value The total amount of tokens to be sent
     * */
    function processOffChainPurchase(address _recipient, uint256 _value) public onlyOwner {
        require(lmda.balanceOf(address(this)) >= _value);
        require(_value > 0 && _recipient != 0x0);
        lmda.transfer(_recipient, _value);
        tokensSold = tokensSold.add(_value);
        OffChainPurchaseMade(_recipient, _value);
    }
    
    
    /**
     * Function is called internally by the buyTokens() function in order to send 
     * ETH to owners of the ICO automatically. 
     * */
    function forwardFunds() internal {
        if(stateOfICO == StateOfICO.PRE) {
            receiverOne.transfer(msg.value.div(2));
            receiverTwo.transfer(msg.value.div(2));
        } else {
            receiverThree.transfer(msg.value);
        }
    }
    
    
    /**
     * Allows the owner to extend the deadline of the current ICO phase.
     * 
     * @param _daysToExtend The number of days to extend the deadline by.
     * */
    function extendDeadline(uint256 _daysToExtend) public onlyOwner {
        endTime = endTime.add(_daysToExtend.mul(1 days));
        DeadlineExtended(_daysToExtend);
    }
    
    
    /**
     * Allows the owner to shorten the deadline of the current ICO phase.
     * 
     * @param _daysToShortenBy The number of days to shorten the deadline by.
     * */
    function shortenDeadline(uint256 _daysToShortenBy) public onlyOwner {
        if(now.sub(_daysToShortenBy.mul(1 days)) < endTime) {
            endTime = now;
        }
        endTime = endTime.sub(_daysToShortenBy.mul(1 days));
        DeadlineShortened(_daysToShortenBy);
    }
    
    
    /**
     * Allows the owner to change the token price of the current phase. 
     * This function will automatically calculate the new exchange rate. 
     * 
     * @param _newTokenPrice The new price of the token.
     * */
    function changeTokenPrice(uint256 _newTokenPrice) public onlyOwner {
        require(_newTokenPrice > 0);
        if(stateOfICO == StateOfICO.PRE) {
            if(tokenPriceForPreICO == _newTokenPrice) { revert(); } 
            tokenPriceForPreICO = _newTokenPrice;
            rateForPreICO = uint256(1e18).div(tokenPriceForPreICO);
            TokenPriceChanged("Pre ICO", _newTokenPrice);
        } else {
            if(tokenPriceForMainICO == _newTokenPrice) { revert(); } 
            tokenPriceForMainICO = _newTokenPrice;
            rateForMainICO = uint256(1e18).div(tokenPriceForMainICO);
            TokenPriceChanged("Main ICO", _newTokenPrice);
        }
    }
    
    
    /**
     * Allows the owner to change the exchange rate of the current phase.
     * This function will automatically calculate the new token price. 
     * 
     * @param _newRate The new exchange rate.
     * */
    function changeRateOfToken(uint256 _newRate) public onlyOwner {
        require(_newRate > 0);
        if(stateOfICO == StateOfICO.PRE) {
            if(rateForPreICO == _newRate) { revert(); }
            rateForPreICO = _newRate;
            tokenPriceForPreICO = uint256(1e18).div(rateForPreICO);
            ExchangeRateChanged("Pre ICO", _newRate);
        } else {
            if(rateForMainICO == _newRate) { revert(); }
            rateForMainICO = _newRate;
            rateForMainICO = uint256(1e18).div(rateForMainICO);
            ExchangeRateChanged("Main ICO", _newRate);
        }
    }
    
    
    /**
     * Allows the owner to change the bonus of the current phase.
     * 
     * @param _newBonus The new bonus percentage.
     * */
    function changeBonus(uint256 _newBonus) public onlyOwner {
        if(stateOfICO == StateOfICO.PRE) {
            if(bonusForPreICO == _newBonus) { revert(); }
            bonusForPreICO = _newBonus;
            BonusChanged("Pre ICO", _newBonus);
        } else {
            if(bonusForMainICO == _newBonus) { revert(); }
            bonusForMainICO = _newBonus;
            BonusChanged("Main ICO", _newBonus);
        }
    }
    
    
    /**
     * Allows the owner to withdraw all unsold tokens to his wallet. 
     * */
    function withdrawUnsoldTokens() public onlyOwner {
        TokensWithdrawn(owner, lmda.balanceOf(address(this)));
        lmda.transfer(owner, lmda.balanceOf(address(this)));
    }
    
    
    /**
     * Allows the owner to unpause the LMDA token.
     * */
    function unpauseToken() public onlyOwner {
        TokensUnpaused();
        lmda.unpause();
    }
    
    
    /**
     * Allows the owner to claim back ownership of the LMDA token contract.
     * */
    function transferTokenOwnership() public onlyOwner {
        lmda.transferOwnership(owner);
    }
    
    
    /**
     * Allows the owner to pause the ICO.
     * */
    function pauseICO() public onlyOwner whenNotPaused {
        require(now < endTime);
        timePaused = now;
        icoPaused = true;
        ICOPaused(now);
    }
    
  
    /**
     * Allows the owner to unpause the ICO.
     * */
    function unpauseICO() public onlyOwner {
        endTime = endTime.add(now.sub(timePaused));
        timePaused = 0;
        icoPaused = false;
        ICOUnpaused(now);
    }
    
    
    /**
     * @return The total amount of tokens that have been sold.
     * */
    function getTokensSold() public view returns(uint256 _tokensSold) {
        _tokensSold = tokensSold;
    }
    
    
    /**
     * @return The current bonuse percentage.
     * */
    function getBonus() public view returns(uint256 _bonus) {
        if(stateOfICO == StateOfICO.PRE) { 
            _bonus = bonusForPreICO;
        } else {
            _bonus = bonusForMainICO;
        }
    }
    
    
    /**
     * @return The current exchange rate.
     * */
    function getRate() public view returns(uint256 _exchangeRate) {
        if(stateOfICO == StateOfICO.PRE) {
            _exchangeRate = rateForPreICO;
        } else {
            _exchangeRate = rateForMainICO;
        }
    }
    
    
    /**
     * @return The current token price. 
     * */
    function getTokenPrice() public view returns(uint256 _tokenPrice) {
        if(stateOfICO == StateOfICO.PRE) {
            _tokenPrice = tokenPriceForPreICO;
        } else {
            _tokenPrice = tokenPriceForMainICO;
        }
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"receiverTwo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stateOfICO","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_daysToExtend","type":"uint256"}],"name":"extendDeadline","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"transferTokenOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenPrice","outputs":[{"name":"_tokenPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpauseToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPriceForPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timePaused","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lmda","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpauseICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"airdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRate","outputs":[{"name":"_exchangeRate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_daysToShortenBy","type":"uint256"}],"name":"shortenDeadline","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBonus","outputs":[{"name":"_bonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investmentOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"receiverThree","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateForPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"receiverOne","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newBonus","type":"uint256"}],"name":"changeBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawUnsoldTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenPriceForMainICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"activateMainSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCapForPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenCapForMainICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonusForPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateForMainICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_value","type":"uint256"}],"name":"processOffChainPurchase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getTokensSold","outputs":[{"name":"_tokensSold","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":true,"inputs":[],"name":"bonusForMainICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserveAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newRate","type":"uint256"}],"name":"changeRateOfToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newTokenPrice","type":"uint256"}],"name":"changeTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"AidropInvoked","type":"event"},{"anonymous":false,"inputs":[],"name":"MainSaleActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"TokenPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"daysExtended","type":"uint256"}],"name":"DeadlineExtended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"daysShortenedBy","type":"uint256"}],"name":"DeadlineShortened","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"tokensBought","type":"uint256"}],"name":"OffChainPurchaseMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"string"},{"indexed":false,"name":"newTokenPrice","type":"uint256"}],"name":"TokenPriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"string"},{"indexed":false,"name":"newRate","type":"uint256"}],"name":"ExchangeRateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"string"},{"indexed":false,"name":"newBonus","type":"uint256"}],"name":"BonusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"LMDA","type":"uint256"}],"name":"TokensWithdrawn","type":"event"},{"anonymous":false,"inputs":[],"name":"TokensUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"ICOPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"ICOUnpaused","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
606060405234156200001057600080fd5b60008054600160a060020a03191633600160a060020a03161790556200003562000322565b604051809103906000f08015156200004c57600080fd5b60118054600160a060020a03928316620100009081026201000060b060020a0319909216919091179182905560008054600160a060020a0319908116732488f34a2c2ebabbb44d5e8ad81e1d689fd76e501782556001805482167343adebfc525fecf9b2e91a4931e4a003a1f0d95917905560028054821673b447292181296b8c7f421f1182be20640dc8bb05179055600380548216733f68b06e7c0e87828647dbba0b5beaef3822b7db179055600480548216737d05f660124b641b74b146e9ada60d7d836dccf517908190556005805490921673ad942e5085af6a7a4c31f17ac687f8d5d7c0225c179091559190920483169263a9059cbb929116906a4a723dc6b40b8a9a00000090604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620001bb57600080fd5b6102c65a03f11515620001cd57600080fd5b50505060405180515050601154600554600160a060020a036201000090920482169163a9059cbb91166a1d5d6adb2d6af3d38000006000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200026857600080fd5b6102c65a03f115156200027a57600080fd5b505050604051805150506011805461ff0019169055620002ac42621baf806401000000006200030e8102620018311704565b600655652d79883d2000600755614e20600855653faa252260006009556137cd600a556a771d2fa45345aa90000000600b556b0135c775ae06c9a006800000600c556014600d55600f600e819055600090556011805460ff1916905562000333565b818101828110156200031c57fe5b92915050565b604051610ee18062001ce883390190565b6119a580620003436000396000f3006060604052600436106101d45763ffffffff60e060020a600035041663061ab66481146101df5780631c75f0851461020e5780632e9453c2146102215780633197cbb61461025857806333c77a6d1461027d578063389b7533146102905780633b278f2a146102a65780634056675e146102cd5780634b94f50e146102e057806350669a03146102f3578063518ab2a814610306578063563bd00114610319578063563c23a01461032c578063584131941461033f57806363d177e6146103525780636724348214610365578063679aefce146103f4578063680a50cb146104075780638bdff1611461041d5780638da5cb5b1461043057806395c08f9214610443578063ac5e797714610462578063bcbd82e514610475578063c1b07b1a14610488578063c1ff808d1461049b578063c8bdbfb6146104b1578063c8d1cf4a146104c4578063ccd65c0a146104d7578063cdd739f6146104ea578063db6380ec146104fd578063df31b58914610510578063e14c467514610523578063e211003d14610536578063ec8ac4d814610558578063ee7c0db01461056c578063f2fde38b1461057f578063f4bffad61461059e578063f79ed94b146105b1578063f8b4e080146105c4578063fbc94f24146105da575b6101dd336105f0565b005b34156101ea57600080fd5b6101f261089e565b604051600160a060020a03909116815260200160405180910390f35b341561021957600080fd5b6101f26108ad565b341561022c57600080fd5b6102346108bc565b6040518082600181111561024457fe5b60ff16815260200191505060405180910390f35b341561026357600080fd5b61026b6108ca565b60405190815260200160405180910390f35b341561028857600080fd5b6101dd6108d0565b341561029b57600080fd5b6101dd600435610951565b34156102b157600080fd5b6102b96109ca565b604051901515815260200160405180910390f35b34156102d857600080fd5b6101dd6109d3565b34156102eb57600080fd5b61026b610a61565b34156102fe57600080fd5b6101dd610a91565b341561031157600080fd5b61026b610b1d565b341561032457600080fd5b61026b610b23565b341561033757600080fd5b61026b610b29565b341561034a57600080fd5b6101f2610b2f565b341561035d57600080fd5b6101dd610b44565b341561037057600080fd5b6101dd600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610bbe95505050505050565b34156103ff57600080fd5b61026b610d78565b341561041257600080fd5b6101dd600435610da7565b341561042857600080fd5b61026b610e51565b341561043b57600080fd5b6101f2610e80565b341561044e57600080fd5b61026b600160a060020a0360043516610e8f565b341561046d57600080fd5b6101f2610ea1565b341561048057600080fd5b61026b610eb0565b341561049357600080fd5b6101f2610eb6565b34156104a657600080fd5b6101dd600435610ec5565b34156104bc57600080fd5b6101dd611003565b34156104cf57600080fd5b61026b6111dc565b34156104e257600080fd5b6101dd6111e2565b34156104f557600080fd5b61026b61127a565b341561050857600080fd5b61026b611280565b341561051b57600080fd5b61026b611286565b341561052e57600080fd5b61026b61128c565b341561054157600080fd5b6101dd600160a060020a0360043516602435611292565b6101dd600160a060020a03600435166105f0565b341561057757600080fd5b61026b611437565b341561058a57600080fd5b6101dd600160a060020a036004351661143d565b34156105a957600080fd5b61026b6114d8565b34156105bc57600080fd5b6101f26114de565b34156105cf57600080fd5b6101dd6004356114ed565b34156105e557600080fd5b6101dd60043561166d565b60115460009060ff161561060357600080fd5b600654421115801561061d5750600160a060020a03821615155b151561062857600080fd5b601154600090620100009004600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561068957600080fd5b6102c65a03f1151561069a57600080fd5b505050604051805190501115156106b057600080fd5b6000601154610100900460ff1660018111156106c857fe5b1480156106d95750600b54600f5410155b156106e357600080fd5b6001601154610100900460ff1660018111156106fb57fe5b14801561070c5750600c54600f5410155b1561071657600080fd5b61076d610721610d78565b6107616064610755610748610734610e51565b61073c610d78565b9063ffffffff6117ed16565b349063ffffffff6117ed16565b9063ffffffff61181c16565b9063ffffffff61183116565b601154909150620100009004600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156107d557600080fd5b6102c65a03f115156107e657600080fd5b50505060405180515050600f54610803908263ffffffff61183116565b600f55600160a060020a03331660009081526012602052604090205461082f903463ffffffff61183116565b600160a060020a03331660009081526012602052604090819020919091557f55c18555197c6574627cf460c66073d10aa05d412468800b7b71feeaf82ea92d908390839051600160a060020a03909216825260208201526040908101905180910390a161089a61183e565b5050565b600254600160a060020a031681565b600554600160a060020a031681565b601154610100900460ff1681565b60065481565b60005433600160a060020a039081169116146108eb57600080fd5b60115460ff16156108fb57600080fd5b600654421061090957600080fd5b4260108190556011805460ff191660011790557f4ca05c662440ebbd9770baf1f74a03a475da9d4a86cd29272742973a58efdf519060405190815260200160405180910390a1565b60005433600160a060020a0390811691161461096c57600080fd5b610991610982826201518063ffffffff6117ed16565b6006549063ffffffff61183116565b6006557fc7f2746aefc0d137a95df385581a90d8b73240b3e6724f8ecb10b58e88f0fb8b8160405190815260200160405180910390a150565b60115460ff1681565b60005433600160a060020a039081169116146109ee57600080fd5b601154600054600160a060020a036201000090920482169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a4b57600080fd5b6102c65a03f11515610a5c57600080fd5b505050565b600080601154610100900460ff166001811115610a7a57fe5b1415610a895750600754610a8e565b506009545b90565b60005433600160a060020a03908116911614610aac57600080fd5b7fc8f901b8cf21a6a5cdf2f3ad433c95313deda27ee018f6f93b1029cc8840536960405160405180910390a1601154620100009004600160a060020a0316633f4ba83a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610a4b57600080fd5b600f5481565b60075481565b60105481565b601154620100009004600160a060020a031681565b60005433600160a060020a03908116911614610b5f57600080fd5b610b776109826010544261192490919063ffffffff16565b60065560006010556011805460ff191690557f7f4b5b19f7b514be4592493ce3abe3f6658100cd24763be1a6c26c7c418c25f64260405190815260200160405180910390a1565b6000805433600160a060020a03908116911614610bda57600080fd5b610be382611936565b601154620100009004600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610c4257600080fd5b6102c65a03f11515610c5357600080fd5b5050506040518051905010151515610c6a57600080fd5b6064835111158015610c7d575081518351145b1515610c8857600080fd5b5060005b8251811015610d4757601154620100009004600160a060020a031663a9059cbb848381518110610cb857fe5b90602001906020020151848481518110610cce57fe5b9060200190602002015160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d2457600080fd5b6102c65a03f11515610d3557600080fd5b50505060405180515050600101610c8c565b7f64683476b22c4ba7803550f40dff7cb2ab6fabe952f3b5bfb0a9fc38453003c660405160405180910390a1505050565b600080601154610100900460ff166001811115610d9157fe5b1415610da05750600854610a8e565b50600a5490565b60005433600160a060020a03908116911614610dc257600080fd5b600654610de8610ddb836201518063ffffffff6117ed16565b429063ffffffff61192416565b1015610df357426006555b610e18610e09826201518063ffffffff6117ed16565b6006549063ffffffff61192416565b6006557fa4946f6df2f72dfeb3a8b959958a5b0b9fe307dc74ca8ca56aa838c8f5480ff88160405190815260200160405180910390a150565b600080601154610100900460ff166001811115610e6a57fe5b1415610e795750600d54610a8e565b50600e5490565b600054600160a060020a031681565b60126020526000908152604090205481565b600354600160a060020a031681565b60085481565b600154600160a060020a031681565b60005433600160a060020a03908116911614610ee057600080fd5b6000601154610100900460ff166001811115610ef857fe5b1415610f815780600d541415610f0d57600080fd5b600d8190557fd18746edbda3b14c8645bf865cc606253d1937a93ff5090eca9cb1651ca8fad181604051602081019190915260408082526007818301527f5072652049434f0000000000000000000000000000000000000000000000000060608301526080909101905180910390a1611000565b80600e541415610f9057600080fd5b600e8190557fd18746edbda3b14c8645bf865cc606253d1937a93ff5090eca9cb1651ca8fad181604051602081019190915260408082526008818301527f4d61696e2049434f00000000000000000000000000000000000000000000000060608301526080909101905180910390a15b50565b60005433600160a060020a0390811691161461101e57600080fd5b600080546011547f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b92600160a060020a039283169262010000909204909116906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156110ab57600080fd5b6102c65a03f115156110bc57600080fd5b50505060405180519050604051600160a060020a03909216825260208201526040908101905180910390a160115460008054600160a060020a036201000090930483169263a9059cbb9291169083906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561115857600080fd5b6102c65a03f1151561116957600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156111bf57600080fd5b6102c65a03f115156111d057600080fd5b50505060405180515050565b60095481565b60005433600160a060020a039081169116146111fd57600080fd5b60115460ff161561120d57600080fd5b600654421015806112225750600b54600f5410155b151561122d57600080fd5b6011805461ff0019166101001790556112494262409980611831565b6006557fc71aea4ed8d673b304ce49a597e3e63212d8a57c11004e070977fd71c4a033b360405160405180910390a1565b600b5481565b600c5481565b600d5481565b600a5481565b60005433600160a060020a039081169116146112ad57600080fd5b6011548190620100009004600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561130e57600080fd5b6102c65a03f1151561131f57600080fd5b505050604051805190501015151561133657600080fd5b60008111801561134e5750600160a060020a03821615155b151561135957600080fd5b601154620100009004600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156113be57600080fd5b6102c65a03f115156113cf57600080fd5b50505060405180515050600f546113ec908263ffffffff61183116565b600f557f0e385cd471131b95dbe266567069c8a465109451eec9af54b62215cc0b9525a08282604051600160a060020a03909216825260208201526040908101905180910390a15050565b600f5490565b60005433600160a060020a0390811691161461145857600080fd5b600160a060020a038116151561146d57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e5481565b600454600160a060020a031681565b60005433600160a060020a0390811691161461150857600080fd5b6000811161151557600080fd5b6000601154610100900460ff16600181111561152d57fe5b14156115d15780600854141561154257600080fd5b600881905561155f670de0b6b3a76400008263ffffffff61181c16565b6007557f7abbe89a95347dada153a7eb02ff2a8431efb04eb51ebee2694f12e2e30edee681604051602081019190915260408082526007818301527f5072652049434f0000000000000000000000000000000000000000000000000060608301526080909101905180910390a1611000565b80600a5414156115e057600080fd5b600a8190556115fd670de0b6b3a76400008263ffffffff61181c16565b600a557f7abbe89a95347dada153a7eb02ff2a8431efb04eb51ebee2694f12e2e30edee681604051602081019190915260408082526008818301527f4d61696e2049434f00000000000000000000000000000000000000000000000060608301526080909101905180910390a150565b60005433600160a060020a0390811691161461168857600080fd5b6000811161169557600080fd5b6000601154610100900460ff1660018111156116ad57fe5b1415611751578060075414156116c257600080fd5b60078190556116df670de0b6b3a76400008263ffffffff61181c16565b6008557f2e9de3ac08cd98e51760dfed0ded4aff262f0d59f5b0af79b5581b7f0e6e9c3c81604051602081019190915260408082526007818301527f5072652049434f0000000000000000000000000000000000000000000000000060608301526080909101905180910390a1611000565b80600954141561176057600080fd5b600981905561177d670de0b6b3a76400008263ffffffff61181c16565b600a557f2e9de3ac08cd98e51760dfed0ded4aff262f0d59f5b0af79b5581b7f0e6e9c3c81604051602081019190915260408082526008818301527f4d61696e2049434f00000000000000000000000000000000000000000000000060608301526080909101905180910390a150565b60008215156117fe57506000611816565b5081810281838281151561180e57fe5b041461181657fe5b92915050565b6000818381151561182957fe5b049392505050565b8181018281101561181657fe5b6000601154610100900460ff16600181111561185657fe5b14156118ee57600154600160a060020a03166108fc61187c34600263ffffffff61181c16565b9081150290604051600060405180830381858888f1935050505015156118a157600080fd5b60028054600160a060020a0316906108fc906118c490349063ffffffff61181c16565b9081150290604051600060405180830381858888f1935050505015156118e957600080fd5b611922565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561192257600080fd5b565b60008282111561193057fe5b50900390565b6000805b82518110156119735761196983828151811061195257fe5b90602001906020020151839063ffffffff61183116565b915060010161193a565b509190505600a165627a7a723058201dfd5d77f09ff9a9c94073d5f3cf7f8ba574e5bd5dd92d858a5e971b6a4df481002960606040526003805460a060020a60ff02191674010000000000000000000000000000000000000000179055341561003657600080fd5b60038054600160a060020a03191633600160a060020a031617905560408051908101604052600c81527f4c614d6f6e656461436f696e000000000000000000000000000000000000000060208201526004908051610098929160200190610163565b5060408051908101604052600481527f4c4d444100000000000000000000000000000000000000000000000000000000602082015260059080516100e0929160200190610163565b506006805460ff191660121790556b019d971e4fe8401e74000000600781905560038054600160a060020a0390811660009081526020819052604090819020849055915481169230909116917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91905190815260200160405180910390a36101fe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101a457805160ff19168380011785556101d1565b828001600101855582156101d1579182015b828111156101d15782518255916020019190600101906101b6565b506101dd9291506101e1565b5090565b6101fb91905b808211156101dd57600081556001016101e7565b90565b610cd48061020d6000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b31461017457806318160ddd146101aa57806323b872dd146101cf578063313ce567146101f75780633f4ba83a146102205780635c975abb14610235578063661884631461024857806370a082311461026a5780638456cb59146102895780638da5cb5b1461029c57806395d89b41146102cb578063a9059cbb146102de578063d73dd62314610300578063dd62ed3e14610322578063f2fde38b14610347575b600080fd5b34156100f557600080fd5b6100fd610366565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610139578082015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017f57600080fd5b610196600160a060020a0360043516602435610404565b604051901515815260200160405180910390f35b34156101b557600080fd5b6101bd61044a565b60405190815260200160405180910390f35b34156101da57600080fd5b610196600160a060020a0360043581169060243516604435610450565b341561020257600080fd5b61020a610498565b60405160ff909116815260200160405180910390f35b341561022b57600080fd5b6102336104a1565b005b341561024057600080fd5b610196610520565b341561025357600080fd5b610196600160a060020a0360043516602435610530565b341561027557600080fd5b6101bd600160a060020a036004351661056f565b341561029457600080fd5b61023361058a565b34156102a757600080fd5b6102af610629565b604051600160a060020a03909116815260200160405180910390f35b34156102d657600080fd5b6100fd610638565b34156102e957600080fd5b610196600160a060020a03600435166024356106a3565b341561030b57600080fd5b610196600160a060020a03600435166024356106e2565b341561032d57600080fd5b6101bd600160a060020a0360043581169060243516610721565b341561035257600080fd5b610233600160a060020a036004351661074c565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b505050505081565b60035460009060a060020a900460ff16158061042e575060035433600160a060020a039081169116145b151561043957600080fd5b61044383836107e7565b9392505050565b60075481565b60035460009060a060020a900460ff16158061047a575060035433600160a060020a039081169116145b151561048557600080fd5b610490848484610853565b949350505050565b60065460ff1681565b60035433600160a060020a039081169116146104bc57600080fd5b60035460a060020a900460ff1615156104d457600080fd5b6003805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60035460a060020a900460ff1681565b60035460009060a060020a900460ff16158061055a575060035433600160a060020a039081169116145b151561056557600080fd5b61044383836109d3565b600160a060020a031660009081526020819052604090205490565b60035433600160a060020a039081169116146105a557600080fd5b60035460a060020a900460ff1615806105cc575060035433600160a060020a039081169116145b15156105d757600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103fc5780601f106103d1576101008083540402835291602001916103fc565b60035460009060a060020a900460ff1615806106cd575060035433600160a060020a039081169116145b15156106d857600080fd5b6104438383610acd565b60035460009060a060020a900460ff16158061070c575060035433600160a060020a039081169116145b151561071757600080fd5b6104438383610bdf565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461076757600080fd5b600160a060020a038116151561077c57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000600160a060020a038316151561086a57600080fd5b600160a060020a03841660009081526020819052604090205482111561088f57600080fd5b600160a060020a03808516600090815260026020908152604080832033909416835292905220548211156108c257600080fd5b600160a060020a0384166000908152602081905260409020546108eb908363ffffffff610c8316565b600160a060020a038086166000908152602081905260408082209390935590851681522054610920908363ffffffff610c9516565b600160a060020a0380851660009081526020818152604080832094909455878316825260028152838220339093168252919091522054610966908363ffffffff610c8316565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610a3057600160a060020a033381166000908152600260209081526040808320938816835292905290812055610a67565b610a40818463ffffffff610c8316565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b6000600160a060020a0383161515610ae457600080fd5b600160a060020a033316600090815260208190526040902054821115610b0957600080fd5b600160a060020a033316600090815260208190526040902054610b32908363ffffffff610c8316565b600160a060020a033381166000908152602081905260408082209390935590851681522054610b67908363ffffffff610c9516565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610c17908363ffffffff610c9516565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600082821115610c8f57fe5b50900390565b81810182811015610ca257fe5b929150505600a165627a7a723058206a23d91d1cab698cf1c8c437d7a584a7385726d8b1d74f0579e176a8c02e95c70029

   Swarm Source:
bzzr://6a23d91d1cab698cf1c8c437d7a584a7385726d8b1d74f0579e176a8c02e95c7

 

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