Sponsored:   Ubex.com - Token sale will end in just 5 days. 98% hard cap already reached. Don't Miss Out!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 66 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xcf095bcb36c1525b28652ba80925456c2181f9cbat txn 0x0fd985f8c79d4f55d895951d1d3baad85cd2b7a1ea710cc6a0107e6defbe8065
Token Balance:
 Latest 25 txns From a total of 66 Transactions

TxHash Age From To Value [TxFee]
0x8618d947d5ba9b2acef1e4654ba65f15a132b9b8a8abce533b25e3a6890eed08325 days 8 hrs ago0xf691ed3734deb05544008c5b61200251fefcdafe  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a1 Ether0.001711668
0x44b639342eca570b8276d2d1af79443d585d8020ebf809e43fa88c05a268aa43325 days 12 hrs ago0xfa9beb5c20bc5169ce6da083aeddd262689b69ba  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.056 Ether0.001711668
0xe2b6b3923de0d649225f39ec95109155e6564c6237b2bcb3a24aec83ad4bfc3f325 days 12 hrs ago0xfa9beb5c20bc5169ce6da083aeddd262689b69ba  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.06 Ether0.000441
0xd1dfa720aa5562cc04862a1796bd002d2219b2e916131f1e5700a18701b84182325 days 12 hrs ago0xfa9beb5c20bc5169ce6da083aeddd262689b69ba  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.06 Ether0.000441
0x69fa79d1a9eeb18450c91ed7a93083814ac51fca128b8a57ec93b61967ed42e9325 days 12 hrs ago0xfa9beb5c20bc5169ce6da083aeddd262689b69ba  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.06 Ether0.000441
0x95f530704843d1924883e5bc915050df65d1d1718309638bc14cb5563c3e3e07325 days 14 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a6 Ether0.002061748
0xbbcf39c22a0f821337239593af5a7d5e4dc5c3c760a3f282f715b2d0a5079fce325 days 15 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a1 Ether0.002061748
0xca43bdb3a6e0fd00f7e8570fd4da0779f2c52d45cfe624167a800ad7d7e00ee0325 days 16 hrs ago0x56572710b589351563d1cf32114b942aeff694e0  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.3933 Ether0.00319205705
0x7fe4a8cb26e49ae641fbfcb46caa1a61e46da91b3d33b20f71f07bbc7e9eebc0325 days 17 hrs ago0x9e89d66bd90c9b7f8dfa4e2d294207c45aec79f7  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.1 Ether0.001711668
0x2372d78f301968b8dedb0c26b04413e320a17235314a65af099385d0da851f2c325 days 17 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a4 Ether0.002061748
0xbbef0df3a447cb4de06f227a50d2e0b1c8bbeef5034c00c87521900249439980325 days 17 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a3 Ether0.002061748
0xdcce4092ad32761e101581df55a0d57328c690a1b71885e3d3d18f9a95572422325 days 18 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a8 Ether0.002061748
0xed5f13b275ca4042539e597448831308c01da74716b3ae5850501b0026eaa9ab325 days 18 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a3 Ether0.002061748
0xaa1eb274e7b46eeaf88f2a3ac0801829a0699c69853f7f5758f39fd080071ed5325 days 21 hrs ago0xba83193f18ae67de7968a276826d97f6d5f3106c  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.21 Ether0.001711668
0x28cd95c649e7a23226c5add5b83baa801dac260ae01b09662d069ddb7f91da49325 days 21 hrs ago0xba83193f18ae67de7968a276826d97f6d5f3106c  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.23 Ether0.000441
0x48ce61de13a83911ebc712805bd74c4407d7974ba38bc9f04c14f1b7224e4620326 days 2 hrs ago0x4a1a940e14c2fb121ab3140e90b20295155169d2  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a2 Ether0.000081508
0x12ef1b0c13236a23e687b81e2d2092c3f784c9b21b1847a4cb9a71c7e76e1936326 days 3 hrs ago0x6e9e2233d922d128013c35438adf999e88d451b8  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.2 Ether0.00163016
0xbeff33f4d2b06909a8732c9334dcd21f0172e5cd667b4152ea0cccf10dcd56ef326 days 4 hrs ago0x8c001afc391f0f0daa554280a0b9db257b1c1824  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.5 Ether0.0014498744
0xfbc6dd6723b768e3ec2bbdf05e1923071f1dea4bef6d85266a3d6069be376f48326 days 4 hrs ago0x8c001afc391f0f0daa554280a0b9db257b1c1824  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.01 Ether0.0017768744
0x19ecc8bac60f050c05e1e396acb6db0f935bb349da082169cd45c66545618e1f326 days 4 hrs ago0x8c001afc391f0f0daa554280a0b9db257b1c1824  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.01 Ether0.0004578
0x97ae7e79aae2bce851781f3285d66bac96dac18e536aa7c3c30ac0b1b87a2a0d326 days 4 hrs ago0x8c001afc391f0f0daa554280a0b9db257b1c1824  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.01 Ether0.0001155
0x842406c3a5d23e7a86fffd244db6619bc8e48e87ddc8ca573429e588b81e6097326 days 5 hrs ago0xbb297df59c4458d3211017aed8e1662f292a6042  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a1 Ether0.004238416
0x1cc67b9941a7a233148df3bd5d266c4e2a3f29d2d313cda5acff16564e21f8a0326 days 8 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a14 Ether0.002061748
0x08d90bb220614bd774e52a1d087ec1479636d200061f2bbc73f182d7597f0bc1326 days 8 hrs ago0xc48b283c8ff3fed4c36fe622564977e63e767916  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a1 Ether0.002526748
0xe2e6e98cb51c34aaeba47b8a3849bad965b0867d19771d2f1b1a28e5120ea3fb326 days 10 hrs ago0x5a30597863a54ac22a89f285e94195c063aaabb2  IN   0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0.15 Ether0.001711668
[ 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
0x8618d947d5ba9b2acef1e4654ba65f15a132b9b8a8abce533b25e3a6890eed084483638325 days 8 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb1 Ether
0x44b639342eca570b8276d2d1af79443d585d8020ebf809e43fa88c05a268aa434482708325 days 12 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.056 Ether
0x95f530704843d1924883e5bc915050df65d1d1718309638bc14cb5563c3e3e074482193325 days 14 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb6 Ether
0xbbcf39c22a0f821337239593af5a7d5e4dc5c3c760a3f282f715b2d0a5079fce4481970325 days 15 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb1 Ether
0xca43bdb3a6e0fd00f7e8570fd4da0779f2c52d45cfe624167a800ad7d7e00ee04481679325 days 16 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.3933 Ether
0x7fe4a8cb26e49ae641fbfcb46caa1a61e46da91b3d33b20f71f07bbc7e9eebc04481537325 days 17 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.1 Ether
0x2372d78f301968b8dedb0c26b04413e320a17235314a65af099385d0da851f2c4481472325 days 17 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb4 Ether
0xbbef0df3a447cb4de06f227a50d2e0b1c8bbeef5034c00c875219002494399804481395325 days 17 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb3 Ether
0xdcce4092ad32761e101581df55a0d57328c690a1b71885e3d3d18f9a955724224481246325 days 18 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb8 Ether
0xed5f13b275ca4042539e597448831308c01da74716b3ae5850501b0026eaa9ab4481160325 days 18 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb3 Ether
0xaa1eb274e7b46eeaf88f2a3ac0801829a0699c69853f7f5758f39fd080071ed54480395325 days 21 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.21 Ether
0x48ce61de13a83911ebc712805bd74c4407d7974ba38bc9f04c14f1b7224e46204479171326 days 2 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb2 Ether
0x12ef1b0c13236a23e687b81e2d2092c3f784c9b21b1847a4cb9a71c7e76e19364478926326 days 3 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.2 Ether
0xbeff33f4d2b06909a8732c9334dcd21f0172e5cd667b4152ea0cccf10dcd56ef4478606326 days 4 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.5 Ether
0xfbc6dd6723b768e3ec2bbdf05e1923071f1dea4bef6d85266a3d6069be376f484478595326 days 4 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.01 Ether
0x842406c3a5d23e7a86fffd244db6619bc8e48e87ddc8ca573429e588b81e60974478459326 days 5 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb1 Ether
0x1cc67b9941a7a233148df3bd5d266c4e2a3f29d2d313cda5acff16564e21f8a04477693326 days 8 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb14 Ether
0x08d90bb220614bd774e52a1d087ec1479636d200061f2bbc73f182d7597f0bc14477609326 days 8 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb1 Ether
0xe2e6e98cb51c34aaeba47b8a3849bad965b0867d19771d2f1b1a28e5120ea3fb4477075326 days 10 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.15 Ether
0x13188f1584f815e6456536d7ada991f469b58f6577a65acafce26e0e50d89cee4475999326 days 14 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.2 Ether
0xdc34fd0299e00d7c4bcef30535222f987ac816e01b267d4ed8a4171f7b0761ee4473663326 days 23 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.15 Ether
0xc544fee121d7949d75550708556ccecd5145883e5b083f9e89acabc597c650d04471260327 days 9 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.6 Ether
0x0948790c7e177141d2ee317f0ea4f9bca5eeb6307cee9d78b1da8b92066e207c4470963327 days 10 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.17 Ether
0xb6815f3f006e46a8b5080f480ca0e8694eae508db32d4532df2440141124cb984467250328 days 56 mins ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.1 Ether
0x45016e94657103c45a48605d4a34f489d80d8e038021a31c6c6991789e88b94f4466407328 days 4 hrs ago0xb7feef5cf872df05f7cec25a2ce82a14cedcc27a0xcf095bcb36c1525b28652ba80925456c2181f9cb0.02 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: PreSaleCrowd
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

/**
 * @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) {
    uint256 c = a / b;
    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) public constant returns (uint256);
  function transfer(address to, uint256 value) public 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) public returns (bool) {
    require(_to != address(0));

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

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

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

/**
 * @title Standard ERC20 token
 * @dev Implementation of the basic standard token
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {
  mapping (address => mapping (address => uint256)) 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));

    uint256 _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[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;

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

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

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

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

/**
 * @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 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(0x0, _to, _amount);
    return true;
  }

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

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

  bool public paused = 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();
  }
}

/**
 * @title PreSale CDT token
 * @dev The minting functionality is reimplemented, as opposed to inherited
 * from MintableToken, to allow for giving right to mint to arbitery account.
 */
contract PreSaleCDT is StandardToken, Ownable, Pausable {
  // Disable transfer unless explicitly enabled
  function PreSaleCDT() public { paused = true; }

  // The address of the contract or user that is allowed to mint tokens.
  address public minter;

  /**
   * @dev Set the address of the minter
   * @param _minter address to be set as minter.
   *
   * Note: We also need to implement "mint" method.
   */
  function setMinter(address _minter) public onlyOwner {
      minter = _minter;
  }

  /**
   * @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) public returns (bool) {
    require(msg.sender == minter);

    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);

    Transfer(0x0, _to, _amount);
    return true;
  }

  /**
   * @dev account for paused/unpaused-state.
   */
  function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transfer(_to, _value);
  }

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

  /**
   * @dev Token meta-information
   * @param name of the token as it's shown to user
   * @param symbol of the token
   * @param decimals number
   * Number of indivisible tokens that make up 1 CDT = 10^{decimals}
   */
  string public constant name = "Presale CDT Token";
  string public constant symbol = "CDT";
  uint8  public constant decimals = 18;
}

/**
 * @title Cryder Crowdsale contract
 * @dev Govern the presale:
 *   1) Taking place in a specific limited period of time.
 *   2) Having HARDCAP value set --- a number of sold tokens to end the pre-sale
 *
 * Owner can change time parameters at any time --- just in case of emergency
 * Owner can change minter at any time --- just in case of emergency
 *
 * !!! There is no way to change the address of the wallet !!!
 */
contract PreSaleCrowd is Ownable {
    // Use SafeMath library to provide methods for uint256-type vars.
    using SafeMath for uint256;

    // The hardcoded address of wallet
    address public wallet;

    // The address of presale token
    PreSaleCDT public token;

    /**
     * @dev Variables
     *
     * @public START_TIME uint the time of the start of the sale
     * @public CLOSE_TIME uint the time of the end of the sale
     * @public HARDCAP uint256 if @HARDCAP is reached, presale stops
     * @public the amount of indivisible quantities (=10^18 CDT) given for 1 wei
     */
    uint public START_TIME = 1508544000;
    uint public CLOSE_TIME = 1509728400;
    uint256 public HARDCAP = 50000000000000000000000000;
    uint256 public exchangeRate = 9000;

    /**
     * Fallback function
     * @dev The contracts are prevented from using fallback function.
     * That prevents loosing control of tokens that will eventually get attributed to the contract, not the user.
     * To buy tokens from the wallet (that is a contract) user has to specify beneficiary of tokens using buyTokens method.
     */
    function () payable public {
      require(msg.sender == tx.origin);
      buyTokens(msg.sender);
    }

    /**
     * @dev A function to withdraw all funds.
     * Normally, contract should not have ether at all.
     */
    function withdraw() onlyOwner public {
      wallet.transfer(this.balance);
    }

    /**
     * @dev The constructor sets the tokens address
     * @param _token address
     */
    function PreSaleCrowd(address _token, address _wallet) public {
      token  = PreSaleCDT(_token);
      wallet = _wallet;
    }

    /**
     * event for token purchase logging
     * @param purchaser who paid for the tokens
     * @param beneficiary who got the tokens
     * @param value weis paid for purchase
     * @param amount amount of tokens purchased
     */
    event TokenPurchase(
      address indexed purchaser,
      address indexed beneficiary,
      uint256 value,
      uint256 amount
    );

    /**
     * @dev Sets the start and end of the sale.
     * @param _start uint256 start of the sale.
     * @param _close uint256 end of the sale.
     */
    function setTime(uint _start, uint _close) public onlyOwner {
      require( _start < _close );
      START_TIME = _start;
      CLOSE_TIME = _close;
    }

    /**
     * @dev Sets exhange rate, ie amount of tokens (10^18 CDT) for 1 wei.
     * @param _exchangeRate uint256 new exhange rate.
     */
    function setExchangeRate(uint256 _exchangeRate) public onlyOwner  {
      require(now < START_TIME);
      exchangeRate = _exchangeRate;
    }

    /**
     * @dev Buy tokens for all sent ether. Tokens will be added to beneficiary's account
     * @param beneficiary address the owner of bought tokens.
     */
    function buyTokens(address beneficiary) payable public {
      uint256 total = token.totalSupply();
      uint256 amount = msg.value;
      require(amount > 0);

      // Check that hardcap not reached, and sale-time.
      require(total < HARDCAP);
      require(now >= START_TIME);
      require(now < CLOSE_TIME);

      // Override exchange rate for daily bonuses
      if (now < START_TIME + 3600 * 24 * 1) {
          exchangeRate = 10800;
      } else if (now < START_TIME + 3600 * 24 * 2) {
          exchangeRate = 10350;
      } else if (now < START_TIME + 3600 * 24 * 3) {
          exchangeRate = 9900;
      }

      // Mint tokens bought for all sent ether to beneficiary
      uint256 tokens = amount.mul(exchangeRate);

      token.mint(beneficiary, tokens);
      TokenPurchase(msg.sender, beneficiary, amount, tokens);

      // Mint 8% tokens to wallet as a team part
      uint256 teamTokens = tokens / 100 * 8;
      token.mint(wallet, teamTokens);

      // Finally, sent all the money to wallet
      wallet.transfer(amount);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"exchangeRate","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":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_start","type":"uint256"},{"name":"_close","type":"uint256"}],"name":"setTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CLOSE_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_exchangeRate","type":"uint256"}],"name":"setExchangeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","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":[{"name":"_token","type":"address"},{"name":"_wallet","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":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526359ea8e006003556359fca0906004556a295be96e64066972000000600555612328600655341561003457600080fd5b604051604080610715833981016040528080519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600280549683169682169690961790955560018054919092169416939093179092555050610675806100a06000396000f3006060604052600436106100a05763ffffffff60e060020a6000350416633ba0b9a981146100cb5780633bd74880146100f05780633ccfd60b14610103578063521eb273146101165780638da5cb5b14610145578063a0355eca14610158578063d33d5f3e14610171578063db068e0e14610184578063ddaa26ad1461019a578063ec8ac4d8146101ad578063f2fde38b146101c1578063fc0c546a146101e0575b32600160a060020a031633600160a060020a03161415156100c057600080fd5b6100c9336101f3565b005b34156100d657600080fd5b6100de610488565b60405190815260200160405180910390f35b34156100fb57600080fd5b6100de61048e565b341561010e57600080fd5b6100c9610494565b341561012157600080fd5b6101296104ea565b604051600160a060020a03909116815260200160405180910390f35b341561015057600080fd5b6101296104f9565b341561016357600080fd5b6100c9600435602435610508565b341561017c57600080fd5b6100de61053a565b341561018f57600080fd5b6100c9600435610540565b34156101a557600080fd5b6100de61056e565b6100c9600160a060020a03600435166101f3565b34156101cc57600080fd5b6100c9600160a060020a0360043516610574565b34156101eb57600080fd5b61012961060f565b600254600090819081908190600160a060020a03166318160ddd82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561024357600080fd5b6102c65a03f1151561025457600080fd5b50505060405180519450349350506000831161026f57600080fd5b600554841061027d57600080fd5b60035442101561028c57600080fd5b600454421061029a57600080fd5b60035462015180014210156102b457612a306006556102e4565b6003546202a300014210156102ce5761286e6006556102e4565b6003546203f480014210156102e4576126ac6006555b6006546102f890849063ffffffff61061e16565b600254909250600160a060020a03166340c10f19868460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561035a57600080fd5b6102c65a03f1151561036b57600080fd5b505050604051805190505084600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18858560405191825260208201526040908101905180910390a3506002546001546008606484040291600160a060020a03908116916340c10f1991168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561043357600080fd5b6102c65a03f1151561044457600080fd5b50505060405180515050600154600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561048157600080fd5b5050505050565b60065481565b60055481565b60005433600160a060020a039081169116146104af57600080fd5b600154600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156104e857600080fd5b565b600154600160a060020a031681565b600054600160a060020a031681565b60005433600160a060020a0390811691161461052357600080fd5b80821061052f57600080fd5b600391909155600455565b60045481565b60005433600160a060020a0390811691161461055b57600080fd5b600354421061056957600080fd5b600655565b60035481565b60005433600160a060020a0390811691161461058f57600080fd5b600160a060020a03811615156105a457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b600082820283158061063a575082848281151561063757fe5b04145b151561064257fe5b93925050505600a165627a7a723058207988fb3a161567e3f0b27d66474393757b08da1572a0fe159ffd0577e20321d000290000000000000000000000002b3f20d82e2bd9e942c8f1ea6fae0d75436fd32e000000000000000000000000cf095bcb36c1525b28652ba80925456c2181f9cb

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

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002B3f20D82E2Bd9E942c8f1Ea6FAe0d75436fd32e
Arg [1] : 000000000000000000000000cf095bCb36C1525B28652Ba80925456C2181F9cB


   Swarm Source:
bzzr://7988fb3a161567e3f0b27d66474393757b08da1572a0fe159ffd0577e20321d0

 

View All
Block Age transaction Difficulty 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.