Contract Overview
Balance: 45.235189252315 Ether
Ether Value: $5,314.68 (@ $117.49/ETH)
Transactions: 910 txns
 Latest 25 transactions from a total of 910 transactions

TxHash Age From To Value [TxFee]
0x72572b61ca857647418bdf341817b24740949b00aa247c6d489f26d7586a973231 days 6 hrs ago0x1b404a032d8f6d6d70c61a154219c135ebf5af55  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000767992
0x890b45389193e1dca2204b75fb21c74d8ebd60912baa2ecc35fe33b69cf3969573 days 6 hrs ago0x962e4b7666d531ca9f18fa9d6fe6acd230f14a0c  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.001558572
0x0eb62ac5088d4473fcc0ba18c1dd786809375d0dff04ca5cb11a3ffe2e3cbf6b86 days 15 hrs ago0x63deeb125ba057aeed35e56f563247d0e887489e  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.0000818
0x11de6e8fbdee74b7b36bea4a3a2869b4239e175b858706cdaf920a9e2be8cb4195 days 7 hrs ago0x47b708ee61237dd2cc2ab3bb888dc36690ccc06c  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00088724
0x608929d140fd16735859165e2e60c3613c5eefc3537bcf68f078746c2162b1e3122 days 8 hrs ago0x43529914b19118f17c271c143309936322eb037e  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00011294
0x57556e0c570b60a493d66fd4c7512b009d9e5cb9f05677bb9d0982c57d606168221 days 15 hrs ago0xba75553964f57e612d487e7dc6770b7ed2cf0e09  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000926108
0x95f7a396eb0c6474d3ad2c120c807a0f45b6ed997b23ac092a99aec9b9d8b61a223 days 11 hrs ago0x8ab9795a2aca838e33a125f342977ad134c8f764  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00006135
0xc8af4dcdf2399c0cb5d4cfc8a9b02ed2d53355b306f904875ebf3ea0248f04b8233 days 14 hrs ago0x79689f5d38addd28149c934da5709a95b68bcb88  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.0002045
0xac144bbf8468ac773435daffee543fe6141a644a0c5e61d423ad3277e59edbb1234 days 20 hrs ago0xa30c9e5ebdb0a73d11122925a2f0c4512acfdb0e  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000926108
0x5b81b7503d64f78ee86bf13395c82b10b1cf7411654842ee7cb2760a0f665454234 days 20 hrs ago0xa30c9e5ebdb0a73d11122925a2f0c4512acfdb0e  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000248468
0x750710d005027c033b7603b5b58001e1e45bfa36b5fee1a4ca4eb420cda9cf89234 days 20 hrs ago0xa30c9e5ebdb0a73d11122925a2f0c4512acfdb0e  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000926108
0xfb82b746c52fa8dfc318e0086209b1fc117df1c59493316b07ed342bcf4e941e234 days 21 hrs ago0xa30c9e5ebdb0a73d11122925a2f0c4512acfdb0e  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000135528
0x29bcf65e7e5547933bb3a3da655357fa40836dac8820f235b148af63b95cc406238 days 7 hrs ago0xc6e036c44db58a51e1038e295202dbe7bdd1b307  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00083845
0xb9ddd78ce5a5e3d25ba0aa5409a1e6f03a81bbae2596a7711bfdd96f4f525f7d239 days 18 hrs ago0xaed47d86cd8c2770029f57b1aa579d2b16228bdf  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.0010225
0x2722dce58a4a3202b851220d892bbaa2762901eeee839e4c0b2f6bac65f8bdee241 days 8 hrs ago0x744385139b6edd2ce52f92ed81f3c9fd18250c9b  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00014315
0x5d2a50d761dcc69647cb8bd9c44e632a830465201b0d1ae8f55c5da4c5a8d855259 days 13 hrs ago0x15cded5a2d5c851f954063d00898d55c862b7807  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000926108
0xfe95815a5d33813a79d81520077a26f7233e3f1ff68e0d790c49a9a02b7c5ede260 days 4 hrs ago0x15cded5a2d5c851f954063d00898d55c862b7807  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000926108
0x90ea8a91ef28a3038d832056048d2defa253fd85bfc509f38f948221a5eeb34f260 days 9 hrs ago0x15cded5a2d5c851f954063d00898d55c862b7807  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000926108
0x96085663cf6b1f2a9e09fd619ac5da5581f13001295fe11e044f634ad0ce1d96265 days 4 hrs ago0x581295ff4e104fc0183b8cf7c35fe96fab967612  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00042945
0x6a712bf2a4f4cbafb88ae95d15f0a7503ae6df0ffa40e955a59a850cb16dfceb265 days 11 hrs ago0x4a226891d74864e244cfdb278a5f651d23fab05d  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.000409
0xc240f6617f8afd94b545069d9a378a52c2daa9b6e12d6019fb3d44f609b8068d267 days 7 hrs ago0xabcfb3ec723c11fbe14dc707bb08a849b12f6d04  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00083845
0x9acf146a8ac51264ee1fff97a133c9a891c53d66e9be3613e837b681afa40f1e268 days 46 mins ago0x12e9cbb6388a20b67b0bfeb6ecfe5f235d494447  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00083845
0xfbab293f7de6ec1600cc2c2dced1f8716dd9687c5bea80cf6ebd02172aaf3351270 days 5 hrs ago0x149e15148cfadfc01bf19b71a03026db229494b7  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.0010225
0x442d34d60b6c45a0828e996e0fbe6d5bc9fde1e68197e06515561d14a3e3d459272 days 5 hrs ago0x1555ea423a6b720931323e244cba5c3dac69d1b7  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.00083845
0xea6e244e8109794319fb796a2da310e305ad04210217ae2e5cf59ee2f1cbc6d8273 days 5 hrs ago0xf4fee9a5dd56006e34c3a248c03f198c782e2fdf  IN   0xcd806502ad2f9aeb32e23f8d647341d4b568201d0 Ether0.0002045
[ 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
0x0eb62ac5088d4473fcc0ba18c1dd786809375d0dff04ca5cb11a3ffe2e3cbf6b660433286 days 15 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x63deeb125ba057aeed35e56f563247d0e887489e0.11 Ether
0x95f7a396eb0c6474d3ad2c120c807a0f45b6ed997b23ac092a99aec9b9d8b61a5787388223 days 11 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x8ab9795a2aca838e33a125f342977ad134c8f7640.5 Ether
0xc8af4dcdf2399c0cb5d4cfc8a9b02ed2d53355b306f904875ebf3ea0248f04b85730180233 days 14 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x79689f5d38addd28149c934da5709a95b68bcb880.1 Ether
0x29bcf65e7e5547933bb3a3da655357fa40836dac8820f235b148af63b95cc4065703545238 days 7 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xc6e036c44db58a51e1038e295202dbe7bdd1b3071.2868 Ether
0xb9ddd78ce5a5e3d25ba0aa5409a1e6f03a81bbae2596a7711bfdd96f4f525f7d5695480239 days 18 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xaed47d86cd8c2770029f57b1aa579d2b16228bdf0.5 Ether
0x2722dce58a4a3202b851220d892bbaa2762901eeee839e4c0b2f6bac65f8bdee5686412241 days 8 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x744385139b6edd2ce52f92ed81f3c9fd18250c9b0.1 Ether
0x96085663cf6b1f2a9e09fd619ac5da5581f13001295fe11e044f634ad0ce1d965550788265 days 4 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x581295ff4e104fc0183b8cf7c35fe96fab9676120.45 Ether
0x6a712bf2a4f4cbafb88ae95d15f0a7503ae6df0ffa40e955a59a850cb16dfceb5549171265 days 11 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x4a226891d74864e244cfdb278a5f651d23fab05d0.1 Ether
0xc240f6617f8afd94b545069d9a378a52c2daa9b6e12d6019fb3d44f609b8068d5538889267 days 7 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xabcfb3ec723c11fbe14dc707bb08a849b12f6d040.1 Ether
0x9acf146a8ac51264ee1fff97a133c9a891c53d66e9be3613e837b681afa40f1e5534791268 days 46 mins ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x12e9cbb6388a20b67b0bfeb6ecfe5f235d4944470.3 Ether
0xfbab293f7de6ec1600cc2c2dced1f8716dd9687c5bea80cf6ebd02172aaf33515522066270 days 5 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x149e15148cfadfc01bf19b71a03026db229494b70.145219254 Ether
0x442d34d60b6c45a0828e996e0fbe6d5bc9fde1e68197e06515561d14a3e3d4595510739272 days 5 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x1555ea423a6b720931323e244cba5c3dac69d1b71.6 Ether
0xea6e244e8109794319fb796a2da310e305ad04210217ae2e5cf59ee2f1cbc6d85504689273 days 5 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xf4fee9a5dd56006e34c3a248c03f198c782e2fdf0.2 Ether
0x68ce11dcecd50cafbf717e40adec0717bf73c05ac63b9278cbf2aadd7097706b5484912276 days 15 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x4084223600b1600669c7c3afb7decdf3f694eedc5 Ether
0x2641f5a6836643a40cb0b2c924e84ae886774f9f9e2aa04985f5e9456b8406a65472896278 days 17 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x27c4cf3c4963052759ce40798918eec2870d669e0.2 Ether
0x9669f3946c0b44bfeb53fe25ff5c03124c2d0e9e5c59757dd0b6b99c3803ec265464044280 days 5 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xe6f5be5847882fae759c66518c989aa9ba05e6a20.5 Ether
0xc8729322fef8d5a86ddec5e6436744fcc358a281598d0fbb04b4e4f1c82b17e55461445280 days 16 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xb2acd57514b6c0e4fe0cbf665b44a673b5722e8f0.1 Ether
0x985230029b5e35e8496cafb966259b4479c7d06453994c150aedbca2edfacfd65455579281 days 16 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xa30c9e5ebdb0a73d11122925a2f0c4512acfdb0e0.25 Ether
0x883daf43060104acf6075114e6458b25713ee02f19e5fe4e99e1514278cb9ae55452720282 days 4 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x1a5cd7a8272a6dc836057b8a2f0b7a86f9fb34a80.5 Ether
0x208308d3ae172e9f0ba8879e946d95d0499ba1c52c7a23fbe770db0eac1165645452092282 days 6 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xb11f5e1f8b74572978215a8e640e9d3d2ef8b7dc0.11 Ether
0xb5d6d324af09bd4346d5cefe12d136bd688ad06b61e08e8a432c0cba179d3ab25443712283 days 17 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xee14071c92aa21bd22619724e1d79e4dc453f4b939.99549246 Ether
0x9a5d4a5ecc6b6dd2c6281e707d3b24683f1d8a80c71a554447c586eb726a8b935438280284 days 14 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x711d9023dd5af74c487e9c59a2e43e6eb649c4ec0.1 Ether
0x8f4af00ae6ed4c66dbfea2744d69bc8d58cb7aaee0d1ede07638a6ed01f811b25437471284 days 18 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x4f4c7a25b7bcbb4016a7994bf366ab3c363fa04b0.1 Ether
0x9a8f4e876028d592f1031b7c6d21ae48cf95e42d9b0c14a5e2b54dc4e37fed205434493285 days 6 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0x02f3b5e805fc3f693cae86d00079fb1d8fd169450.197 Ether
0x3ce6e897102d1573e03e1c8914dc4ef9c59763fe35b0bec893133c5c6d3bee3f5434292285 days 7 hrs ago0xcd806502ad2f9aeb32e23f8d647341d4b568201d0xa8701104915e91eb09aea950782bd0264ff819af6 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: THTokenSale
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

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);
}

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]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }

}

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 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 c;
  }

  /**
  * @dev Substracts 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) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

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);
}

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;
  }

}

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;
  }

}

contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


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

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

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

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

contract THTokenSale is Pausable {
    using SafeMath for uint256;

    // Sale Token
    THToken public token;

    // Total wei raised
    uint256 public fundsRaised = 0;

    // Minimal possible cap in ethers
    // @dev NEEDS to be the same as Stage 1 cap now.
    uint256 public constant SOFT_CAP = 3000 ether;

    // Maximum possible cap in ethers
    uint256 public constant HARD_CAP = 12000 ether;

    bool public softCapReached = false;
    bool public hardCapReached = false;
    bool public saleSuccessfullyFinished = false;

    /**
     * Stage 1: 3000 ether worth of THT available at 40% bonus
     * Stage 2: 1800 ether worth of THT available at 20% bonus
     * Stage 3: 2250 ether worth of THT available at 10% bonus
     * Stage 4: 2250 ether worth of THT available at 5% bonus
     * Stage 5: 2700 ether worth of THT available with no bonus
     */
    uint256[5] public stageCaps = [
        3000 ether,
        4800 ether,
        7050 ether,
        9300 ether,
        12000 ether
    ];
    uint256[5] public stageTokenMul = [
        5040,
        4320,
        3960,
        3780,
        3600
    ];
    uint256 public activeStage = 0;

    // Minimum investment during first 48 hours
    uint256 public constant MIN_INVESTMENT_PHASE1 = 5 ether;
    // Minimum investment
    uint256 public constant MIN_INVESTMENT = 0.1 ether;

    // refundAllowed can be set to true if SOFT_CAP is not reached
    bool public refundAllowed = false;
    // Token Allocation for Bounty(5%), Advisors (5%), Platform (10%)
    uint256[3] public varTokenAllocation = [5, 5, 10];
    // 20% vested over 4 segments for Core Team
    uint256[4] public teamTokenAllocation = [5, 5, 5, 5];
    // 60% crowdsale
    uint256 public constant CROWDSALE_ALLOCATION = 60;

    // Vested amounts of tokens, filled with proper values when finalizing
    uint256[4] public vestedTeam = [0, 0, 0, 0];
    uint256 public vestedAdvisors = 0;

    // Withdraw
    address public wallet;
    // CoreTeam Vested
    address public walletCoreTeam;
    // Platform THT
    address public walletPlatform;
    // Bounty and Advisors THT
    address public walletBountyAndAdvisors;

    // start and end timestamp when investments are allowed (both inclusive)
    uint256 public startTime;
    uint256 public endTime;

    // Whitelisted addresses and their allocations of wei available to invest
    mapping(address => uint256) public whitelist;

    // Wei received from token buyers
    mapping(address => uint256) public weiBalances;

    event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
    event Whitelisted(address indexed beneficiary, uint256 value);
    event SoftCapReached();
    event HardCapReached();
    event Finalized(bool successfullyFinished);
    event StageOpened(uint stage);
    event StageClosed(uint stage);

    /**
    * @dev Modifier to make a function callable only during the sale
    */
    modifier beforeSaleEnds() {
        // Not calling hasEnded due to lower gas usage
        require(now < endTime && fundsRaised < HARD_CAP);
        _;
    }

    function THTokenSale(
        uint256 _startTime,
        address _wallet,
        address _walletCoreTeam,
        address _walletPlatform,
        address _walletBountyAndAdvisors
    ) public {
        require(_startTime >= now);
        require(_wallet != 0x0);
        require(_walletCoreTeam != 0x0);
        require(_walletPlatform != 0x0);
        require(_walletBountyAndAdvisors != 0x0);
        require(vestedTeam.length == teamTokenAllocation.length);   // sanity checks
        require(stageCaps.length == stageTokenMul.length);   // sanity checks

        token = new THToken();
        wallet = _wallet;
        walletCoreTeam = _walletCoreTeam;
        walletPlatform = _walletPlatform;
        walletBountyAndAdvisors = _walletBountyAndAdvisors;
        startTime = _startTime;
        // Sale lasts up to 4 weeks and 4 days
        endTime = _startTime + 32 * 86400;
    }

    /*
     * @dev fallback for processing ether
     */
    function() public payable {
        buyTokens(msg.sender);
    }

    /*
     * @dev Sale is executed in stages/tranches. Each stage except the first is activated manually by the owner.
     * Only allow next stage when current stage/tranche is filled to cap.
     */
    function activateNextStage() onlyOwner public {
        uint256 stageIndex = activeStage;
        require(fundsRaised >= stageCaps[stageIndex]);
        require(stageIndex + 1 < stageCaps.length);

        activeStage = stageIndex + 1;
        StageOpened(activeStage + 1);
    }

    /*
     * @dev sell token and send to contributor address
     * @param contributor address
     */
    function buyTokens(address contributor) whenNotPaused beforeSaleEnds public payable {
        uint256 _stageIndex = activeStage;
        uint256 refund = 0;
        uint256 weiAmount = msg.value;
        uint256 _activeStageCap = stageCaps[_stageIndex];

        require(fundsRaised < _activeStageCap);
        require(validPurchase());
        require(canContribute(contributor, weiAmount));

        uint256 capDelta = _activeStageCap.sub(fundsRaised);

        if (capDelta < weiAmount) {
            // Not enough tokens available for full contribution, we will do a partial.
            weiAmount = capDelta;
            // Calculate refund for contributor.
            refund = msg.value.sub(weiAmount);
        }

        uint256 tokensToMint = weiAmount.mul(stageTokenMul[_stageIndex]);

        whitelist[contributor] = whitelist[contributor].sub(weiAmount);
        weiBalances[contributor] = weiBalances[contributor].add(weiAmount);

        fundsRaised = fundsRaised.add(weiAmount);
        token.mint(contributor, tokensToMint);

        // Refund after state changes for re-entrancy safety
        if (refund > 0) {
            msg.sender.transfer(refund);
        }
        TokenPurchase(0x0, contributor, weiAmount, tokensToMint);

        if (fundsRaised >= _activeStageCap) {
            finalizeCurrentStage();
        }
    }

    function canContribute(address contributor, uint256 weiAmount) public view returns (bool) {
        require(contributor != 0x0);
        require(weiAmount > 0);
        return (whitelist[contributor] >= weiAmount);
    }

    function addWhitelist(address contributor, uint256 weiAmount) onlyOwner public returns (bool) {
        require(contributor != 0x0);
        require(weiAmount > 0);
        // Only ever set the new amount, even if user is already whitelisted with a previous value set
        whitelist[contributor] = weiAmount;
        Whitelisted(contributor, weiAmount);
        return true;
    }

    /*
     * @dev Add participants to whitelist in bulk
     */
    function addWhitelistBulk(address[] contributors, uint256[] amounts) onlyOwner beforeSaleEnds public returns (bool) {
        address contributor;
        uint256 amount;
        require(contributors.length == amounts.length);

        for (uint i = 0; i < contributors.length; i++) {
            contributor = contributors[i];
            amount = amounts[i];
            require(addWhitelist(contributor, amount));
        }
        return true;
    }

    function withdraw() onlyOwner public {
        require(softCapReached);
        require(this.balance > 0);

        wallet.transfer(this.balance);
    }

    function withdrawCoreTeamTokens() onlyOwner public {
        require(saleSuccessfullyFinished);

        if (now > startTime + 720 days && vestedTeam[3] > 0) {
            token.transfer(walletCoreTeam, vestedTeam[3]);
            vestedTeam[3] = 0;
        }
        if (now > startTime + 600 days && vestedTeam[2] > 0) {
            token.transfer(walletCoreTeam, vestedTeam[2]);
            vestedTeam[2] = 0;
        }
        if (now > startTime + 480 days && vestedTeam[1] > 0) {
            token.transfer(walletCoreTeam, vestedTeam[1]);
            vestedTeam[1] = 0;
        }
        if (now > startTime + 360 days && vestedTeam[0] > 0) {
            token.transfer(walletCoreTeam, vestedTeam[0]);
            vestedTeam[0] = 0;
        }
    }

    function withdrawAdvisorTokens() onlyOwner public {
        require(saleSuccessfullyFinished);

        if (now > startTime + 180 days && vestedAdvisors > 0) {
            token.transfer(walletBountyAndAdvisors, vestedAdvisors);
            vestedAdvisors = 0;
        }
    }

    /*
     * @dev Leave token balance as is.
     * The tokens are unusable if a refund call could be successful due to transferAllowed = false upon failing to reach SOFT_CAP.
     */
    function refund() public {
        require(refundAllowed);
        require(!softCapReached);
        require(weiBalances[msg.sender] > 0);

        uint256 currentBalance = weiBalances[msg.sender];
        weiBalances[msg.sender] = 0;
        msg.sender.transfer(currentBalance);
    }

    /*
     * @dev When finishing the crowdsale we mint non-crowdsale tokens based on total tokens minted during crowdsale
     */
    function finishCrowdsale() onlyOwner public returns (bool) {
        require(now >= endTime || fundsRaised >= HARD_CAP);
        require(!saleSuccessfullyFinished && !refundAllowed);

        // Crowdsale successful
        if (softCapReached) {
            uint256 _crowdsaleAllocation = CROWDSALE_ALLOCATION; // 60% crowdsale
            uint256 crowdsaleTokens = token.totalSupply();

            uint256 tokensBounty = crowdsaleTokens.mul(varTokenAllocation[0]).div(_crowdsaleAllocation); // 5% Bounty
            uint256 tokensAdvisors = crowdsaleTokens.mul(varTokenAllocation[1]).div(_crowdsaleAllocation); // 5% Advisors
            uint256 tokensPlatform = crowdsaleTokens.mul(varTokenAllocation[2]).div(_crowdsaleAllocation); // 10% Platform

            vestedAdvisors = tokensAdvisors;

            // 20% Team
            uint256 tokensTeam = 0;
            uint len = teamTokenAllocation.length;
            uint amount = 0;
            for (uint i = 0; i < len; i++) {
                amount = crowdsaleTokens.mul(teamTokenAllocation[i]).div(_crowdsaleAllocation);
                vestedTeam[i] = amount;
                tokensTeam = tokensTeam.add(amount);
            }

            token.mint(walletBountyAndAdvisors, tokensBounty);
            token.mint(walletPlatform, tokensPlatform);

            token.mint(this, tokensAdvisors);
            token.mint(this, tokensTeam);

            token.endMinting(true);
            saleSuccessfullyFinished = true;
            Finalized(true);
            return true;
        } else {
            refundAllowed = true;
            // Token contract gets destroyed
            token.endMinting(false);
            Finalized(false);
            return false;
        }
    }

    // @return user balance
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return token.balanceOf(_owner);
    }

    function hasStarted() public view returns (bool) {
        return now >= startTime;
    }

    function hasEnded() public view returns (bool) {
        return now >= endTime || fundsRaised >= HARD_CAP;
    }

    function validPurchase() internal view returns (bool) {
        // Extended from 2 * 86400 to 200.000 seconds, since there's a 48 hour pause scheduled after phase 1
        if(now <= (startTime + 200000) && msg.value < MIN_INVESTMENT_PHASE1) {
            return false;
        }
        bool withinPeriod = now >= startTime && now <= endTime;
        bool withinPurchaseLimits = msg.value >= MIN_INVESTMENT;
        return withinPeriod && withinPurchaseLimits;
    }

    function finalizeCurrentStage() internal {
        uint256 _stageIndex = activeStage;

        if (_stageIndex == 0) {
            softCapReached = true;
            SoftCapReached();
        } else if (_stageIndex == stageCaps.length - 1) {
            hardCapReached = true;
            HardCapReached();
        }

        StageClosed(_stageIndex + 1);
    }
}

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 receive 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 public returns (bool) {
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(address(0), _to, _amount);
    return true;
  }

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

contract THToken is MintableToken {

    string public constant name = "Tradershub Token";
    string public constant symbol = "THT";
    uint8 public constant decimals = 18;

    bool public transferAllowed = false;

    event TransferAllowed(bool transferIsAllowed);

    modifier canTransfer() {
        require(mintingFinished && transferAllowed);
        _;
    }

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

    function transfer(address to, uint256 value) canTransfer public returns (bool) {
        return super.transfer(to, value);
    }

    function endMinting(bool _transferAllowed) onlyOwner canMint public returns (bool) {
        if (!_transferAllowed) {
            // Only ever called if the sale failed to reach soft cap
            selfdestruct(msg.sender);
            return true;
        }
        transferAllowed = _transferAllowed;
        TransferAllowed(_transferAllowed);
        return super.finishMinting();
    }
}

    Contract ABI  
[{"constant":false,"inputs":[],"name":"activateNextStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"softCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"contributor","type":"address"},{"name":"weiAmount","type":"uint256"}],"name":"canContribute","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"walletBountyAndAdvisors","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"refundAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"activeStage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"stageCaps","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_INVESTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"walletCoreTeam","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"weiBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"walletPlatform","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","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":"MIN_INVESTMENT_PHASE1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saleSuccessfullyFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"varTokenAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAdvisorTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contributor","type":"address"},{"name":"weiAmount","type":"uint256"}],"name":"addWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SOFT_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishCrowdsale","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"stageTokenMul","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vestedAdvisors","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"teamTokenAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"vestedTeam","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contributor","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":"withdrawCoreTeamTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","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"},{"constant":true,"inputs":[],"name":"CROWDSALE_ALLOCATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contributors","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"addWhitelistBulk","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_walletCoreTeam","type":"address"},{"name":"_walletPlatform","type":"address"},{"name":"_walletBountyAndAdvisors","type":"address"}],"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":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[],"name":"SoftCapReached","type":"event"},{"anonymous":false,"inputs":[],"name":"HardCapReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"successfullyFinished","type":"bool"}],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"uint256"}],"name":"StageOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"uint256"}],"name":"StageClosed","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060409081526000805460a060020a60ff02191681556002556003805462ffffff1916905560a09051908101604090815268a2a15d09519be0000082526901043561a88293000000602083015269017e2e676f7fc7e80000908201526901f8276d367cfcd00000606082015269028a857425466f80000060808201526200008c906004906005620002ca565b5060a060405190810160409081526113b082526110e06020830152610f7890820152610ec46060820152610e106080820152620000ce90600990600562000318565b506000600e55600f805460ff191690556060604051908101604090815260058083526020830152600a908201526200010b9060109060036200034f565b506080604051908101604090815260058083526020830181905290820181905260608201526200014090601390600462000385565b506080604051908101604090815260008083526020830181905290820181905260608201526200017590601790600462000385565b506000601b5534156200018757600080fd5b60405160a08062002b9c833981016040528080519190602001805191906020018051919060200180519190602001805160008054600160a060020a03191633600160a060020a031617905591505042851015620001e357600080fd5b600160a060020a0384161515620001f957600080fd5b600160a060020a03831615156200020f57600080fd5b600160a060020a03821615156200022557600080fd5b600160a060020a03811615156200023b57600080fd5b62000245620003ba565b604051809103906000f08015156200025c57600080fd5b60018054600160a060020a0319908116600160a060020a0393841617909155601c8054821696831696909617909555601d8054861694821694909417909355601e8054851692841692909217909155601f805490931691161790556020819055622a300001602155620003eb565b826005810192821562000306579160200282015b828111156200030657825182906001605060020a0316905591602001919060010190620002de565b5062000314929150620003cb565b5090565b826005810192821562000306579160200282015b8281111562000306578251829061ffff169055916020019190600101906200032c565b826003810192821562000306579160200282015b8281111562000306578251829060ff1690559160200191906001019062000363565b826004810192821562000306579160200282018281111562000306578251829060ff1690559160200191906001019062000363565b604051610d278062001e7583390190565b620003e891905b80821115620003145760008155600101620003d2565b90565b611a7a80620003fb6000396000f3006060604052600436106102005763ffffffff60e060020a6000350416631ff858d0811461020b5780632b9edee91461021e5780633197cbb614610245578063378b6a891461026a5780633a03171c1461028c5780633ccfd60b1461029f5780633e9744da146102b25780633f4ba83a146102e15780633fa911ae146102f457806344691f7e146103075780634864d8d91461031a5780634c46fb731461032d5780634ef8ff3314610343578063521eb27314610356578063590e1ae3146103695780635c975abb1461037c5780636681b9fd1461038f5780636a41ade3146103a25780636ef9e145146103b557806370a08231146103d457806378e97925146103f35780637f86f7f4146104065780638456cb59146104195780638da5cb5b1461042c57806394d453db1461043f57806396eecf95146104525780639762f802146104655780639b19251a14610478578063a53bfcf514610497578063a7aac32d146104ad578063b39d9009146104c0578063b652dc2f146104e2578063b80cdcf6146104f5578063c25c22ee14610508578063cd69859e1461051e578063d792b35614610531578063e6d1092d14610547578063ec8ac4d81461055d578063ecb70fb714610571578063f00648b814610584578063f2fde38b14610597578063fc0c546a146105b6578063fd09d013146105c9578063fd4ff437146105dc575b6102093361066b565b005b341561021657600080fd5b610209610906565b341561022957600080fd5b610231610993565b604051901515815260200160405180910390f35b341561025057600080fd5b61025861099c565b60405190815260200160405180910390f35b341561027557600080fd5b610231600160a060020a03600435166024356109a2565b341561029757600080fd5b6102586109e7565b34156102aa57600080fd5b6102096109f5565b34156102bd57600080fd5b6102c5610a73565b604051600160a060020a03909116815260200160405180910390f35b34156102ec57600080fd5b610209610a82565b34156102ff57600080fd5b610231610b01565b341561031257600080fd5b610231610b0a565b341561032557600080fd5b610258610b13565b341561033857600080fd5b610258600435610b19565b341561034e57600080fd5b610258610b2d565b341561036157600080fd5b6102c5610b39565b341561037457600080fd5b610209610b48565b341561038757600080fd5b610231610bdb565b341561039a57600080fd5b610258610beb565b34156103ad57600080fd5b6102c5610bf1565b34156103c057600080fd5b610258600160a060020a0360043516610c00565b34156103df57600080fd5b610258600160a060020a0360043516610c12565b34156103fe57600080fd5b610258610c8d565b341561041157600080fd5b6102c5610c93565b341561042457600080fd5b610209610ca2565b341561043757600080fd5b6102c5610d26565b341561044a57600080fd5b610258610d35565b341561045d57600080fd5b610231610d41565b341561047057600080fd5b610231610d50565b341561048357600080fd5b610258600160a060020a0360043516610d5e565b34156104a257600080fd5b610258600435610d70565b34156104b857600080fd5b610209610d7d565b34156104cb57600080fd5b610231600160a060020a0360043516602435610e57565b34156104ed57600080fd5b610258610eee565b341561050057600080fd5b610231610efb565b341561051357600080fd5b610258600435611420565b341561052957600080fd5b61025861142d565b341561053c57600080fd5b610258600435611433565b341561055257600080fd5b610258600435611440565b610209600160a060020a036004351661066b565b341561057c57600080fd5b61023161144d565b341561058f57600080fd5b610209611471565b34156105a257600080fd5b610209600160a060020a0360043516611748565b34156105c157600080fd5b6102c56117e3565b34156105d457600080fd5b6102586117f2565b34156105e757600080fd5b6102316004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506117f795505050505050565b600080600080600080600060149054906101000a900460ff1615151561069057600080fd5b602154421080156106ac575069028a857425466f800000600254105b15156106b757600080fd5b600e54955060009450349350600486600581106106d057fe5b01549250826002541015156106e457600080fd5b6106ec6118b4565b15156106f757600080fd5b61070187856109a2565b151561070c57600080fd5b60025461072090849063ffffffff61191a16565b91508382101561074257909250829061073f348363ffffffff61191a16565b94505b6107616009876005811061075257fe5b0154859063ffffffff61192c16565b600160a060020a03881660009081526022602052604090205490915061078d908563ffffffff61191a16565b600160a060020a0388166000908152602260209081526040808320939093556023905220546107c2908563ffffffff61196216565b600160a060020a0388166000908152602360205260409020556002546107ee908563ffffffff61196216565b600255600154600160a060020a03166340c10f19888360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561085057600080fd5b6102c65a03f1151561086157600080fd5b5050506040518051505060008511156108a557600160a060020a03331685156108fc0286604051600060405180830381858888f1935050505015156108a557600080fd5b86600160a060020a031660007f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18868460405191825260208201526040908101905180910390a36002548390106108fd576108fd611971565b50505050505050565b6000805433600160a060020a0390811691161461092257600080fd5b50600e546004816005811061093357fe5b0154600254101561094357600080fd5b6005600182011061095357600080fd5b60018101600e557fa87b73c77b5c78e7a4f2356b4727fe16b37e1515909ea1c4ff1e849adb31de136002820160405190815260200160405180910390a150565b60035460ff1681565b60215481565b6000600160a060020a03831615156109b957600080fd5b600082116109c657600080fd5b50600160a060020a0391909116600090815260226020526040902054101590565b69028a857425466f80000081565b60005433600160a060020a03908116911614610a1057600080fd5b60035460ff161515610a2157600080fd5b6000600160a060020a0330163111610a3857600080fd5b601c54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610a7157600080fd5b565b601f54600160a060020a031681565b60005433600160a060020a03908116911614610a9d57600080fd5b60005460a060020a900460ff161515610ab557600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600f5460ff1681565b60205442101590565b600e5481565b60048160058110610b2657fe5b0154905081565b67016345785d8a000081565b601c54600160a060020a031681565b600f5460009060ff161515610b5c57600080fd5b60035460ff1615610b6c57600080fd5b600160a060020a03331660009081526023602052604081205411610b8f57600080fd5b50600160a060020a033316600081815260236020526040808220805492905590919082156108fc0290839051600060405180830381858888f193505050501515610bd857600080fd5b50565b60005460a060020a900460ff1681565b60025481565b601d54600160a060020a031681565b60236020526000908152604090205481565b600154600090600160a060020a03166370a0823183836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610c6d57600080fd5b6102c65a03f11515610c7e57600080fd5b50505060405180519392505050565b60205481565b601e54600160a060020a031681565b60005433600160a060020a03908116911614610cbd57600080fd5b60005460a060020a900460ff1615610cd457600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600054600160a060020a031681565b674563918244f4000081565b60035462010000900460ff1681565b600354610100900460ff1681565b60226020526000908152604090205481565b60108160038110610b2657fe5b60005433600160a060020a03908116911614610d9857600080fd5b60035462010000900460ff161515610daf57600080fd5b60205462ed4e000142118015610dc757506000601b54115b15610a7157600154601f54601b54600160a060020a039283169263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e3557600080fd5b6102c65a03f11515610e4657600080fd5b505050604051805150506000601b55565b6000805433600160a060020a03908116911614610e7357600080fd5b600160a060020a0383161515610e8857600080fd5b60008211610e9557600080fd5b600160a060020a038316600081815260226020526040908190208490557f6ea640312e182de387819fbeb13be00db3171a445412852248559054871c41999084905190815260200160405180910390a250600192915050565b68a2a15d09519be0000081565b6000806000806000806000806000806000809054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316141515610f3e57600080fd5b60215442101580610f5b575069028a857425466f80000060025410155b1515610f6657600080fd5b60035462010000900460ff16158015610f825750600f5460ff16155b1515610f8d57600080fd5b60035460ff161561135e57600154603c9950600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fe457600080fd5b6102c65a03f11515610ff557600080fd5b5050506040518051985061102890508961101c601060005b01548b9063ffffffff61192c16565b9063ffffffff611a3716565b965061103a8961101c6010600161100d565b955061104c8961101c6010600261100d565b601b879055945060009350600492508391508190505b828110156110aa5761107e8961101c6013846004811061100d57fe5b9150816017826004811061108e57fe5b01556110a0848363ffffffff61196216565b9350600101611062565b600154601f54600160a060020a03918216916340c10f1991168960006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b50505060405180515050600154601e54600160a060020a03918216916340c10f1991168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561119157600080fd5b6102c65a03f115156111a257600080fd5b50505060405180515050600154600160a060020a03166340c10f19308860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561120b57600080fd5b6102c65a03f1151561121c57600080fd5b50505060405180515050600154600160a060020a03166340c10f19308660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561128557600080fd5b6102c65a03f1151561129657600080fd5b5050506040518051505060018054600160a060020a031690634dd3e5759060006040516020015260405160e060020a63ffffffff84160281529015156004820152602401602060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b505050604051805150506003805462ff00001916620100001790557f41493253ae80c9f89e25283c36f67849365d0515134ce43de1314223cb6f73426001604051901515815260200160405180910390a160019950611414565b600f805460ff1916600190811790915554600160a060020a0316634dd3e5756000806040516020015260405160e060020a63ffffffff84160281529015156004820152602401602060405180830381600087803b15156113bd57600080fd5b6102c65a03f115156113ce57600080fd5b50505060405180519050507f41493253ae80c9f89e25283c36f67849365d0515134ce43de1314223cb6f73426000604051901515815260200160405180910390a1600099505b50505050505050505090565b60098160058110610b2657fe5b601b5481565b60138160048110610b2657fe5b60178160048110610b2657fe5b60006021544210158061146c575069028a857425466f80000060025410155b905090565b60005433600160a060020a0390811691161461148c57600080fd5b60035462010000900460ff1615156114a357600080fd5b6020546303b5380001421180156114bd5750601a54600090115b1561154c57600154601d54601a54600160a060020a039283169263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561152b57600080fd5b6102c65a03f1151561153c57600080fd5b505050604051805150506000601a555b602054630317040001421180156115665750601954600090115b156115f557600154601d54601954600160a060020a039283169263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156115d457600080fd5b6102c65a03f115156115e557600080fd5b5050506040518051505060006019555b602054630278d000014211801561160f5750601854600090115b1561169e57600154601d54601854600160a060020a039283169263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561167d57600080fd5b6102c65a03f1151561168e57600080fd5b5050506040518051505060006018555b6020546301da9c0001421180156116b85750601754600090115b15610a7157600154601d54601754600160a060020a039283169263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561172657600080fd5b6102c65a03f1151561173757600080fd5b505050604051805150506000601755565b60005433600160a060020a0390811691161461176357600080fd5b600160a060020a038116151561177857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b603c81565b6000805481908190819033600160a060020a0390811691161461181957600080fd5b60215442108015611835575069028a857425466f800000600254105b151561184057600080fd5b845186511461184e57600080fd5b5060005b85518110156118a85785818151811061186757fe5b90602001906020020151925084818151811061187f57fe5b9060200190602002015191506118958383610e57565b15156118a057600080fd5b600101611852565b50600195945050505050565b600080600060205462030d400142111580156118d75750674563918244f4000034105b156118e55760009250611915565b60205442101580156118f957506021544211155b91505067016345785d8a00003410158180156119125750805b92505b505090565b60008282111561192657fe5b50900390565b60008083151561193f576000915061195b565b5082820282848281151561194f57fe5b041461195757fe5b8091505b5092915050565b60008282018381101561195757fe5b600e548015156119b9576003805460ff191660011790557f629c1b672a634075c61f1cbfbec5f3e47b94c3f90f065486f615ecfa18713d3460405160405180910390a16119fe565b60048114156119fe576003805461ff0019166101001790557f9788c3426de973293d591b3f0e14ad70f5569c28608c87c18153eabc2a157eed60405160405180910390a15b7f3498c518c1664de68a3744940b2f4f05ebbd29e00304ef21a7e00fcc691e862d8160010160405190815260200160405180910390a150565b6000808284811515611a4557fe5b049493505050505600a165627a7a72305820fb147627e503716e8fcbbd3bce8bc28ba39cba41bb6b69e1dcd940324a28a7a10029606060405260038054600160b060020a03191633600160a060020a0316179055610cf98061002e6000396000f3006060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461010057806306fdde0314610127578063095ea7b3146101b157806318160ddd146101d357806323b872dd146101f8578063313ce5671461022057806334fec4671461024957806340c10f191461025c5780634dd3e5751461027e578063661884631461029657806370a08231146102b85780637d64bcb4146102d75780638da5cb5b146102ea57806395d89b4114610319578063a9059cbb1461032c578063d73dd6231461034e578063dd62ed3e14610370578063f2fde38b14610395575b600080fd5b341561010b57600080fd5b6101136103b6565b604051901515815260200160405180910390f35b341561013257600080fd5b61013a6103c6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017657808201518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101bc57600080fd5b610113600160a060020a03600435166024356103fd565b34156101de57600080fd5b6101e6610469565b60405190815260200160405180910390f35b341561020357600080fd5b610113600160a060020a036004358116906024351660443561046f565b341561022b57600080fd5b6102336104b2565b60405160ff909116815260200160405180910390f35b341561025457600080fd5b6101136104b7565b341561026757600080fd5b610113600160a060020a03600435166024356104c7565b341561028957600080fd5b61011360043515156105d5565b34156102a157600080fd5b610113600160a060020a0360043516602435610689565b34156102c357600080fd5b6101e6600160a060020a0360043516610783565b34156102e257600080fd5b61011361079e565b34156102f557600080fd5b6102fd610829565b604051600160a060020a03909116815260200160405180910390f35b341561032457600080fd5b61013a610838565b341561033757600080fd5b610113600160a060020a036004351660243561086f565b341561035957600080fd5b610113600160a060020a03600435166024356108b0565b341561037b57600080fd5b6101e6600160a060020a0360043581169060243516610954565b34156103a057600080fd5b6103b4600160a060020a036004351661097f565b005b60035460a060020a900460ff1681565b60408051908101604052601081527f5472616465727368756220546f6b656e00000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60015490565b60035460009060a060020a900460ff168015610494575060035460a860020a900460ff165b151561049f57600080fd5b6104aa848484610a1a565b949350505050565b601281565b60035460a860020a900460ff1681565b60035460009033600160a060020a039081169116146104e557600080fd5b60035460a060020a900460ff16156104fc57600080fd5b60015461050f908363ffffffff610b9a16565b600155600160a060020a03831660009081526020819052604090205461053b908363ffffffff610b9a16565b600160a060020a0384166000818152602081905260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b60035460009033600160a060020a039081169116146105f357600080fd5b60035460a060020a900460ff161561060a57600080fd5b81151561061d5733600160a060020a0316ff5b6003805475ff000000000000000000000000000000000000000000191660a860020a841515021790557f09453fb3c77c88037c1b664345201b4e2c2e71c35ef789fb3f61972c140e0ac582604051901515815260200160405180910390a161068361079e565b92915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156106e657600160a060020a03338116600090815260026020908152604080832093881683529290529081205561071d565b6106f6818463ffffffff610ba916565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526020819052604090205490565b60035460009033600160a060020a039081169116146107bc57600080fd5b60035460a060020a900460ff16156107d357600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60408051908101604052600381527f5448540000000000000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff168015610894575060035460a860020a900460ff165b151561089f57600080fd5b6108a98383610bbb565b9392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546108e8908363ffffffff610b9a16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461099a57600080fd5b600160a060020a03811615156109af57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a0383161515610a3157600080fd5b600160a060020a038416600090815260208190526040902054821115610a5657600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610a8957600080fd5b600160a060020a038416600090815260208190526040902054610ab2908363ffffffff610ba916565b600160a060020a038086166000908152602081905260408082209390935590851681522054610ae7908363ffffffff610b9a16565b600160a060020a0380851660009081526020818152604080832094909455878316825260028152838220339093168252919091522054610b2d908363ffffffff610ba916565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b6000828201838110156108a957fe5b600082821115610bb557fe5b50900390565b6000600160a060020a0383161515610bd257600080fd5b600160a060020a033316600090815260208190526040902054821115610bf757600080fd5b600160a060020a033316600090815260208190526040902054610c20908363ffffffff610ba916565b600160a060020a033381166000908152602081905260408082209390935590851681522054610c55908363ffffffff610b9a16565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a3506001929150505600a165627a7a723058204a9a6d2fb4c1af3ff6565fce8b8c722192ec8167fe1e45fd24a499e10aa5f0490029000000000000000000000000000000000000000000000000000000005a8edaf0000000000000000000000000cbe68025e4883430e53a1e59de0a556358f335f1000000000000000000000000ecf3fa1553b6f16bd63805433383cf5ce3ca995300000000000000000000000000b3f327c503d2d3ff79c88438aed27848c1691900000000000000000000000000cb16adfe143cadd5d7d86860b381d7d2fa54d7

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

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a8edaf0
Arg [1] : 000000000000000000000000cbe68025e4883430e53a1e59de0a556358f335f1
Arg [2] : 000000000000000000000000ecf3fa1553b6f16bd63805433383cf5ce3ca9953
Arg [3] : 00000000000000000000000000b3f327c503d2d3ff79c88438aed27848c16919
Arg [4] : 00000000000000000000000000cb16adfe143cadd5d7d86860b381d7d2fa54d7


   Swarm Source:
bzzr://4a9a6d2fb4c1af3ff6565fce8b8c722192ec8167fe1e45fd24a499e10aa5f049

 

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.