Sponsored Link:   Synapse - Decentralized Data & AI Marketplace. TOKEN SALE LIVE - Save 50%.
Contract Overview | ChangeCoinCrowdsale
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 5287 txns
Misc
Address Watch Add To Watch List
Contract Creator 0x3e38c9718ccf4bf1cd8958b24c0b837fc66531bfat txn 0xb7a01bead6ebbb902ba9ff584bf987976bb734e71c44083caa2fd395599011a2
Token Tracker
  Latest 25 txns from a total Of 5287 transactions View All

TxHash Age From To Value [TxFee]
0xb31dbc2390d4e152bc4659638160fae87892ad904a41ddb828725c43647f89356 days 13 hrs ago0x0f3a5d27234a6eaf5a97d40065b7518e80b37edc  IN   ChangeCoinCrowdsale0.5 Ether0.000473484
0xc4a4d37f69a13aa64d53cc4e38f1166d8525f8c4fd1133bea1d18885e065be8e6 days 19 hrs ago0x3922060cbebda116585e66abf334c076af122e92  IN   ChangeCoinCrowdsale0.52 Ether0.000451962
0x773fcfde60a7733fdb0b930369f34eaf4e5ec0c61d62ef14d028a8292f57fcbe6 days 20 hrs ago0x3922060cbebda116585e66abf334c076af122e92  IN   ChangeCoinCrowdsale0.5 Ether0.000451962
0x62d333aee1bdfb6fbe9f238d58f7861c668081231855bdd976d4ed7bbea866406 days 21 hrs ago0x3922060cbebda116585e66abf334c076af122e92  IN   ChangeCoinCrowdsale0.547 Ether0.000451962
0x66eff16bfb958293e26cb16353cd107015df8b2571e255e1f6e3316aad5c7c267 days 4 hrs ago0xbde97726c62ed2a051595099b04e289e78bf94c4  IN   ChangeCoinCrowdsale0.3 Ether0.000451962
0x04f616e83baeaa1118cd27139e2bcc074cbdd286510f9c213ce66c5bf216f2687 days 4 hrs ago0xbde97726c62ed2a051595099b04e289e78bf94c4  IN   ChangeCoinCrowdsale0.3 Ether0.000451962
0x2915e89adec15ddd53f5dc6bf309b158d5032df7ed044e6bab18af33fd5d93387 days 5 hrs ago0xbde97726c62ed2a051595099b04e289e78bf94c4  IN   ChangeCoinCrowdsale0.3 Ether0.000451962
0xbd8cf35b5de96cfcc55e0fb3a8bc85a4e5bb2f319f12b6c1c5c757e6fbfc510c7 days 5 hrs ago0x5c1b4b5be9d7a3e6b6f0decde619dd859255c779  IN   ChangeCoinCrowdsale5.99 Ether0.000451962
0x293d994a4bd8b99e6b3919f1653990236a6882f3418c815b4dd23df8189d68db7 days 5 hrs ago0xbde97726c62ed2a051595099b04e289e78bf94c4  IN   ChangeCoinCrowdsale0.3 Ether0.000451962
0xb8af6d65e80853bcfcdd273fbb73c8721b520d2765e8285d421e2757b4f3eb1e7 days 5 hrs ago0xbde97726c62ed2a051595099b04e289e78bf94c4  IN   ChangeCoinCrowdsale0.3 Ether0.000451962
0xe067ae64ff9e1d2718a9bfb298dbe4dce9d359cca2025dda62b379b8308ede707 days 6 hrs ago0x5c1b4b5be9d7a3e6b6f0decde619dd859255c779  IN   ChangeCoinCrowdsale5.99 Ether0.000451962
0xb2477eb336c80dacd682ff92368b0d12c9d851aa00d11ee17cb5a5e8f74a0da27 days 6 hrs ago0xfba6a45ae2ed5de39b27fffd3be73c6d5fcfe0cf  IN   ChangeCoinCrowdsale0.07606 Ether0.00043044
0x2c06183bdae45dddce165975f04ab417a824edb8b4a1e2dc63ff56ebbbd477847 days 9 hrs ago0x3922060cbebda116585e66abf334c076af122e92  IN   ChangeCoinCrowdsale0.548571076 Ether0.000451962
0x5fc821599dd0ed6a3e841f90f5fa92f109c8a7fa23f5c922b6822cbc2f31dfce7 days 10 hrs ago0x5c1b4b5be9d7a3e6b6f0decde619dd859255c779  IN   ChangeCoinCrowdsale5.5 Ether0.000451962
0xc29b5d5660bee15e4dd33e9205cced5e1f250884a02c86553603c081b44abd6c7 days 11 hrs ago0x0d57e286a919a4c0b22e9072dcb8424a9b29574b  IN   ChangeCoinCrowdsale18 Ether0.000451962
0xec7c23dfacaa32f3cf2187a719a6730d4283778b6f7b57664fa467ab10618e037 days 14 hrs ago0x86ae45e720aea47738ba9f4994eee163a4af89e5  IN   ChangeCoinCrowdsale1.13 Ether0.000451962
0xbae39f17bb30a6bfe0ec089d28c8dfd1e6a4427078d36690b2882919bf5d748c7 days 15 hrs ago0x76f8f12547ab921ed1a5672ac015717d1ce4ffea  IN   ChangeCoinCrowdsale1 Ether0.000451962
0xfde589935af41e428eefefffc5a1f2ce8daa7ef7a76571e833976e79831649ea7 days 15 hrs ago0xaba4b2a682d851a3f458eb9344e4568ff6d0cca4  IN   ChangeCoinCrowdsale0.05 Ether0.000451962
0xc46626b633692094a28d140fef2f3da99a7265befe369327f5c1f7f5d47fdb417 days 15 hrs ago0xaba4b2a682d851a3f458eb9344e4568ff6d0cca4  IN   ChangeCoinCrowdsale0.05 Ether0.000043044
0x45fbd9bb2858e4146fb16abaae5a8aeb129cd443afa37b7fdee4fb922a7313767 days 15 hrs ago0xadc989aab03f5360933d3698c0586f449f07ca4f  IN   ChangeCoinCrowdsale1 Ether0.000451962
0xd666efc34fb7a10ea55ae26e68392d1e00257bde9d50ce5be7b3532d8b1fc7047 days 17 hrs ago0x3922060cbebda116585e66abf334c076af122e92  IN   ChangeCoinCrowdsale0.49 Ether0.000451962
0x4c7f7a4961794764d1c14c7e9253929bcfcc496c6c75c6424b542b04f2855be17 days 17 hrs ago0x3922060cbebda116585e66abf334c076af122e92  IN   ChangeCoinCrowdsale0.49 Ether0.000451962
0x17d63ce32f72e79d11c4a849c8975f7a372b9672cbb5051353bc4bae1da5c9b47 days 18 hrs ago0x314989a8cb586f36bc0a52eb10d4fdd52d9c88b4  IN   ChangeCoinCrowdsale0.5 Ether0.000451962
0xf039a87217060984e1a5599bbab2cdb0aa11fefd1d5625a89363d82c5e5cce9d7 days 18 hrs ago0x09a50585c890c56e0f284681e6dbb1c404e00fdb  IN   ChangeCoinCrowdsale3 Ether0.000667182
0x7b1501efb7b63326a02722716189dfd383e2fa400268e465305c16f95b813ce27 days 19 hrs ago0x03e4501ed6c5676f696772e11de7720aedfb85bb  IN   ChangeCoinCrowdsale9.95 Ether0.000451962
[ 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
0x06c2aab5506fd498a0290e899daca60cbb347232a6c2b6bd6a17575bba1e417743714637 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e2 Ether
0x7204fdfcad6ba23f91061cb1480851a9cd65813f1cb600c7ec4ec2b637a3050943714557 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.5 Ether
0x05d2b5fcd631fa414c6817454dc2b254ad56dd2586646714f2b9e44193ab0cae43714477 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e3.433 Ether
0x74d3aeebc7e1e8ad3822185d72b7f3b06fb3e8e7b633d34d5dffcc89ae23bb4043714407 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1 Ether
0x0106221df27c4cbfc28ff1db5807e2bb01cfae8cc04182abdc21502ead715e3543714307 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1 Ether
0xdabba33156da64a0326d9a6bb1470e77dcc0af703dc283262c9860fd7b09518e43714277 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e2.5 Ether
0x89de4667da843d8a19d257e9fa2a9a1f5868a06d2cd84f485eccc46f56abd8b843714157 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e3 Ether
0xc33e0b7a50b9aa6656acbb38ffa33bb3d7f2636a9fb12b56e0aba969ab2935b543714057 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1.007890943 Ether
0x9566363bb67d69ce1229a5fa1e28b66263998130ef21dc83a4cb854873633c8d43714057 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.86 Ether
0x6de092a0d67cf6289dbce77e43eb8b46818a76b83e46a1578b4dc910a10065c643714057 days 19 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.9 Ether
0xac9185cfaa631fdcb9ad74424605bece39d9ca5946fcbc0534750eaa0d3b373a43713977 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.5 Ether
0x75efe977786261cf35d5212ea852b0090c717d1672ddcac5e26d20fa6cccbef643713857 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1.1 Ether
0x24a2ebe5b59cacad5ee85986105eda11d306669242d395cca08b17149a701a1743713817 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1.018 Ether
0x60196cc0ab4878d55f15f78de1ba9f64fb93f3fcd8fff0b4f8e25d4cdafc210243713797 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.5 Ether
0x9bc8c9b3e1350c3fd36e052eb1c5e05f8f1f0f16f36d93cb615db77183e730b143713497 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e11 Ether
0x73206db9557b7bae38701521dc87fbd592e7ae4d06df646e60d7325a03251aba43713467 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1 Ether
0x6cfd343bd4e86b7b9415b48c86b1cdf2a3bf225a1ab0cf2032b5e82c31bf7b3c43713447 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e3.16416619372503172 Ether
0x504cc1f69ef6f5c1eb8b88fd38239d7c7ed2effe38b24e4e4521f312d6b87c3743713267 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e10.98675 Ether
0x719124e3e4d47bde98d095512648ae45b8643f75b45deb746581ad0bfea6ebe343713147 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1 Ether
0x00a7302b6b63f874fae5c705acffa3cd3508b28b7b5728d3203be651f0545a6b43713077 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.5 Ether
0xbdcc1c529acefdd8bdc98f32dca9f9d49ccd6317634405a883a0492463924af843712707 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e2.47 Ether
0x42c5c498c6a73cbd006ccc118e181afdf5b7a710d7a1dad72d64491496e9cfa343712707 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e4.5 Ether
0xbf66cac4f27be1e9ccda444694755048e7f4d7231926adf726cc58d94c24d07543712567 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.5 Ether
0xdc4c574bcab574043393cafada67a9d402a13ec63a61b3077611dba82987455243712567 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e1 Ether
0xf6791f87f138e362fceaa2d0f239ca3ee43efd111f284459cebd5cd54f3ff91543712287 days 20 hrs ago0x4e86721a4e00d7167c11d9cfd2480403bb6303780x71b1ee0848c4f68df05429490fc4237089692e1e0.5 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: ChangeCoinCrowdsale
Compiler Version: v0.4.16+commit.d7661dd9
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.16;

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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    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 {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

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

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

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

}

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


 contract StandardToken is ERC20, BasicToken {

   mapping (address => mapping (address => uint256)) 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 amout of tokens to be transfered
    */
   function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
     var _allowance = allowed[_from][msg.sender];

     // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
     // require (_value <= _allowance);

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

   /**
    * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
   function approve(address _spender, uint256 _value) returns (bool) {

     // To change the approve amount you first have to reduce the addresses`
     //  allowance to zero by calling `approve(_spender, 0)` if it is not
     //  already 0 to mitigate the race condition described here:
     //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     require((_value == 0) || (allowed[msg.sender][_spender] == 0));

     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 specifing the amount of tokens still avaible for the spender.
    */
   function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
     return allowed[_owner][_spender];
   }

 }

/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */

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

  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will recieve the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Transfer(0X0, _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
}

contract ChangeCoin is MintableToken {
  string public name = "Change COIN";
  string public symbol = "CAG";
  uint256 public decimals = 18;

  bool public tradingStarted = false;

  /**
   * @dev modifier that throws if trading has not started yet
   */
  modifier hasStartedTrading() {
    require(tradingStarted);
    _;
  }

  /**
   * @dev Allows the owner to enable the trading. This can not be undone
   */
  function startTrading() onlyOwner {
    tradingStarted = true;
  }


  /**
   * @dev Allows anyone to transfer the Change tokens once trading has started
   * @param _to the recipient address of the tokens.
   * @param _value number of tokens to be transfered.
   */
  function transfer(address _to, uint _value) hasStartedTrading returns (bool){
    return super.transfer(_to, _value);
  }

  /**
   * @dev Allows anyone to transfer the Change tokens once trading has started
   * @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 uint the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint _value) hasStartedTrading returns (bool){
    return super.transferFrom(_from, _to, _value);
  }
}

contract ChangeCoinCrowdsale is Ownable {
  using SafeMath for uint256;

  // The token being sold
  ChangeCoin public token;

  // start and end block where investments are allowed (both inclusive)
  uint256 public startTimestamp;
  uint256 public endTimestamp;

  // address where funds are collected
  address public hardwareWallet;

  // how many token units a buyer gets per wei
  uint256 public rate;

  // amount of raised money in wei
  uint256 public weiRaised;

  uint256 public minContribution;

  uint256 public hardcap;

  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
  event MainSaleClosed();

  uint256 public raisedInPresale = 36670.280302936701463815 ether;

  function ChangeCoinCrowdsale() {
    startTimestamp = 1505568600;
    endTimestamp = 1508162400;
    rate = 500;
    hardwareWallet = 0x71B1Ee0848c4F68df05429490fc4237089692e1e;
    token = ChangeCoin(0x7d4b8Cce0591C9044a22ee543533b72E976E36C3);

    minContribution = 0.49 ether;
    hardcap = 200000 ether;

    require(startTimestamp >= now);
    require(endTimestamp >= startTimestamp);
  }

  /**
   * @dev Calculates the amount of bonus coins the buyer gets
   * @param tokens uint the amount of tokens you get according to current rate
   * @return uint the amount of bonus tokens the buyer gets
   */
  function bonusAmmount(uint256 tokens) internal returns(uint256) {
    uint256 bonus5 = tokens /20;
    // add bonus 20% in first 24hours, 15% in first week, 10% in 2nd week
    if (now < startTimestamp + 24 hours) { // 5080 is aprox 24h
      return bonus5 * 4;
    } else if (now < startTimestamp + 1 weeks) {
      return bonus5 * 3;
    } else if (now < startTimestamp + 2 weeks) {
      return bonus5 * 2;
    } else {
      return 0;
    }
  }

  // check if valid purchase
  modifier validPurchase {
    require(now >= startTimestamp);
    require(now <= endTimestamp);
    require(msg.value >= minContribution);
    require(weiRaised.add(msg.value).add(raisedInPresale) <= hardcap);
    _;
  }

  // @return true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    bool timeLimitReached = now > endTimestamp;
    bool capReached = weiRaised.add(raisedInPresale) >= hardcap;
    return timeLimitReached || capReached;
  }

  // low level token purchase function
  function buyTokens(address beneficiary) payable validPurchase {
    require(beneficiary != 0x0);

    uint256 weiAmount = msg.value;

    // calculate token amount to be created
    uint256 tokens = weiAmount.mul(rate);
    tokens = tokens + bonusAmmount(tokens);

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

    token.mint(beneficiary, tokens);
    TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
    hardwareWallet.transfer(msg.value);
  }

  // finish mining coins and transfer ownership of Change coin to owner
  function finishMinting() public onlyOwner {
    require(hasEnded());
    uint issuedTokenSupply = token.totalSupply();
    uint restrictedTokens = issuedTokenSupply.mul(60).div(40);
    token.mint(hardwareWallet, restrictedTokens);
    token.finishMinting();
    token.transferOwnership(owner);
    MainSaleClosed();
  }

  // fallback function can be used to buy tokens
  function () payable {
    buyTokens(msg.sender);
  }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"raisedInPresale","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minContribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardwareWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"MainSaleClosed","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526907c3e65e700c91ceed07600955341561001d57600080fd5b5b5b60008054600160a060020a03191633600160a060020a03161790555b6359bd275860028190556359e4bb606003556101f460055560048054600160a060020a03199081167371b1ee0848c4f68df05429490fc4237089692e1e1790915560018054909116737d4b8cce0591c9044a22ee543533b72e976e36c31790556706ccd46763f10000600755692a5a058fc295ed000000600855429010156100c257600080fd5b60025460035410156100d357600080fd5b5b5b61089c806100e46000396000f300606060405236156100b45763ffffffff60e060020a6000350416632c4e722e81146100c15780634042b66f146100e65780637366e3ff1461010b5780637d64bcb4146101305780638da5cb5b14610145578063a85adeab14610174578063aaffadf314610199578063b071cbe6146101be578063e6fd48bc146101e3578063e9edf4cd14610208578063ec8ac4d814610237578063ecb70fb71461024d578063f2fde38b14610274578063fc0c546a14610295575b5b6100be336102c4565b5b005b34156100cc57600080fd5b6100d461047f565b60405190815260200160405180910390f35b34156100f157600080fd5b6100d4610485565b60405190815260200160405180910390f35b341561011657600080fd5b6100d461048b565b60405190815260200160405180910390f35b341561013b57600080fd5b6100be610491565b005b341561015057600080fd5b6101586106cd565b604051600160a060020a03909116815260200160405180910390f35b341561017f57600080fd5b6100d46106dc565b60405190815260200160405180910390f35b34156101a457600080fd5b6100d46106e2565b60405190815260200160405180910390f35b34156101c957600080fd5b6100d46106e8565b60405190815260200160405180910390f35b34156101ee57600080fd5b6100d46106ee565b60405190815260200160405180910390f35b341561021357600080fd5b6101586106f4565b604051600160a060020a03909116815260200160405180910390f35b6100be600160a060020a03600435166102c4565b005b341561025857600080fd5b610260610703565b604051901515815260200160405180910390f35b341561027f57600080fd5b6100be600160a060020a036004351661073e565b005b34156102a057600080fd5b610158610796565b604051600160a060020a03909116815260200160405180910390f35b60008060025442101515156102d857600080fd5b6003544211156102e757600080fd5b6007543410156102f657600080fd5b600854610320600954610314346006546107a590919063ffffffff16565b9063ffffffff6107a516565b111561032b57600080fd5b600160a060020a038316151561034057600080fd5b60055434925061035790839063ffffffff6107bf16565b9050610362816107ee565b600654910190610378908363ffffffff6107a516565b600655600154600160a060020a03166340c10f19848360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156103da57600080fd5b6102c65a03f115156103eb57600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3600454600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561047857600080fd5b5b5b505050565b60055481565b60065481565b60095481565b60008054819033600160a060020a039081169116146104af57600080fd5b6104b7610703565b15156104c257600080fd5b600154600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561050a57600080fd5b6102c65a03f1151561051b57600080fd5b505050604051805192506105499050602861053d84603c63ffffffff6107bf16565b9063ffffffff61085416565b600154600454919250600160a060020a03908116916340c10f1991168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105b257600080fd5b6102c65a03f115156105c357600080fd5b50505060405180515050600154600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561061557600080fd5b6102c65a03f1151561062657600080fd5b50505060405180515050600154600054600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561068757600080fd5b6102c65a03f1151561069857600080fd5b5050507f1a67d6e5b402fe0ff129cb2047b6e67ba18b8dde04bb285faed9e709d6b1eb2760405160405180910390a15b5b5050565b600054600160a060020a031681565b60035481565b60075481565b60085481565b60025481565b600454600160a060020a031681565b6000806000600354421191506008546107296009546006546107a590919063ffffffff16565b1015905081806107365750805b92505b505090565b60005433600160a060020a0390811691161461075957600080fd5b600160a060020a03811615610791576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600154600160a060020a031681565b6000828201838110156107b457fe5b8091505b5092915050565b60008282028315806107db57508284828115156107d857fe5b04145b15156107b457fe5b8091505b5092915050565b6000806014835b04905060025462015180014210156108125780600402915061084b565b60025462093a800142101561082c5780600302915061084b565b60025462127500014210156108465780600202915061084b565b600091505b5b5b5b50919050565b600080828481151561086257fe5b0490508091505b50929150505600a165627a7a723058209cb025989733522e507f73c3683238d1f4bd13a718a48a1787fca6f15746b11c0029

   Swarm Source:
bzzr://9cb025989733522e507f73c3683238d1f4bd13a718a48a1787fca6f15746b11c
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.