Sponsored:   Ubex.com - Additional 17% of tokens are available for purchase! Trading on exchanges already started.
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 44 txns
Misc
Address Watch: Add To Watch List
Contract Creator: 0x035f02e6988a7e99337096727215ebce3e94e176at txn 0x2b1b4efe0682fb9319578919def9f2a24bf1382a83f5ad5f6fdb3a3622592804
Token Balances:
 Latest 25 txns from a total Of 44 transactions

TxHash Age From To Value [TxFee]
0xab18bb573b06b7e6c593c440919a54fc72497fad1fdce844c7696ae496fe5c557 days 17 hrs ago0xa91c2ceb9d2e343bfd5a12d5b3b3794346a8c473  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.75 Ether0.0045567
0x04131dc8ed3f07f5186f5861d9fcfefaa3de842d95292436c2595bcb2c320ee97 days 20 hrs ago0x948af1c7a15793cf4db41e4990ec2a7e08a260e5  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.2 Ether0.002354295
0x50372f633088b29b604acb78100fe2c898a1844e57abab3b30d3a6206d64cc648 days 2 hrs ago0xa91c2ceb9d2e343bfd5a12d5b3b3794346a8c473  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.4 Ether0.001139175
0x34d9d7a337b739d3e1b1f2f6a8aae9c0a783f61b595ab512f07c830d0edba6af8 days 2 hrs ago0x948af1c7a15793cf4db41e4990ec2a7e08a260e5  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.15 Ether0.001889295
0x70011aadaaf80693612aa921c7a4ce5bd094b0e22f2c63e0f14626bd8822e13d8 days 3 hrs ago0x98229161df1a7db994bd93f684b3c5e54351d154  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.05 Ether0.0030378
0x116ba64495d701a56fcd4a93f6d8bb18d3ff67e24045f6e28b7d24d206f4f9b18 days 3 hrs ago0xa91c2ceb9d2e343bfd5a12d5b3b3794346a8c473  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.08 Ether0.000987285
0x5c8a2af0f1353ddaec3ab130c3392165bc4f640a239659b3a24703a16e2e2ff08 days 3 hrs ago0x948af1c7a15793cf4db41e4990ec2a7e08a260e5  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.3 Ether0.002354295
0xcd2ad89baf5c9d1c32bab8019d07b842acd749c1c8d2b387b415355af9f792a68 days 4 hrs ago0xa91c2ceb9d2e343bfd5a12d5b3b3794346a8c473  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.08 Ether0.0045567
0xda65dcbb6b6b348b6a165e5164df45ecaa435c360276f03ca204f9d9261154438 days 4 hrs ago0x98229161df1a7db994bd93f684b3c5e54351d154  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.08 Ether0.0015189
0xe862366de90f15c93e7128e97e6475cb3d4b79ea7b0aa3e5cc03944a9e57dd8d8 days 4 hrs ago0x3017dfac3d40c753b55b89116ff3bdff81ecd598  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.3 Ether0.002354295
0x3165a484b0b035b8cfc2f7ccce78925900fedd3ffa360a042a9c6dd968f982f48 days 4 hrs ago0x3017dfac3d40c753b55b89116ff3bdff81ecd598  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.15 Ether0.002354295
0x4de63b3bbf30702e791656222ba44d8873393fd73ed2a8ce971aa9028ba4668c22 days 19 hrs ago0x5ea85d36eb9c9960724b6d1f912d52d4856805f1  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.1 Ether0.00030378
0x95a855b2c295108ee845d70f7f8ac867a742a2c844501b1ce2df7e924640916f57 days 3 hrs ago0x5d71249bb1cb22c2b008a0e917900fe3ed01a3ff  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.11 Ether0.000075945
0xf5dd57f9b5f064b32a809bc6e70b7c0ec3d53b429af3b0c4a72f96b444c1139557 days 22 hrs ago0x2188f6212ce37dcbfec7e0167d68d9e5e5f07e3a  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c1 Ether0.0030378
0xe91f4832d2bc229f67f5bd249e1c92bae90576a2d94e31b643d7e62f34f82b5179 days 8 hrs ago0x3fd51473217cf4a556620523d9cc5e23e85e7c5f  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.000135 Ether0.000997448
0x094d89e44c95996282c8753dfa63faa4a4be7a0adcb94765edaea975a876be31116 days 18 hrs ago0x035f02e6988a7e99337096727215ebce3e94e176  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0 Ether0.000111532
0x611d87b7dd50fb82c7d95d17d5c24e3b66decf223b8daff6b60560d9e01d2831119 days 10 hrs ago0xbc9abaffb12b8dfcaf2d9d571745a214450e15d4  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.321560975 Ether0.000792285
0x0331644f79abc662a00b29ab133ae61fd386c49543185dd3a7d6f5d4b9cefd4d119 days 23 hrs ago0xbc9abaffb12b8dfcaf2d9d571745a214450e15d4  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.05 Ether0.000987285
0x27b4e05b50e41967d4a08abfde902c137452a41add4e25b98c1442d669cb1965120 days 8 hrs ago0xed4810ff9acb009352ed17ce4c84662eff7922b9  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c1 Ether0.00045567
0x5031007d29c3ef0853bfbd841ece082751f039592f236f992327a79c5dd607ba120 days 23 hrs ago0x664cd243946e62713a3da341b3bda49845ad304a  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.5 Ether0.003113745
0x16ed223cf06d8555f4a6f632cbf33ccb9d3d431d34eb59144be34802bc112fa3121 days 23 hrs ago0x0982e2fc242d4f57613e9b92904d747dc0ec683d  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.05 Ether0.0000316458
0xd53249e15fd90012eeb97ef74de6df8b457d54dc12525e3624c6628c93b77ee3121 days 23 hrs ago0x0982e2fc242d4f57613e9b92904d747dc0ec683d  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.05 Ether0.000052743
0xc12e58cd9063d7121c6c4d794b79061b1921439232b781c71d2991cc1fec2b24123 days 3 hrs ago0x26ddc36c955dd5078087790f1a74f7dc935b96ba  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.05 Ether0.000030378
0xaf516e4881d78062cbfee5a7c0195a0fffc01a439d9d9d47526e1f6c2a071971123 days 3 hrs ago0x26ddc36c955dd5078087790f1a74f7dc935b96ba  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c0.05 Ether0.000028
0x7b47772d5b9f8adc02fae95dc7154ac4372afdabf78e622fde35f732ea095f63134 days 4 hrs ago0x2f6e2f7b0839bf17bd128fb2ca85281cdac42fbe  IN   0x5983f1eb0508190e821e380a8ed273725f5d927c3.45 Ether0.000426615
[ 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
0xab18bb573b06b7e6c593c440919a54fc72497fad1fdce844c7696ae496fe5c5561210677 days 17 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.75 Ether
0x04131dc8ed3f07f5186f5861d9fcfefaa3de842d95292436c2595bcb2c320ee961204267 days 20 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.2 Ether
0x50372f633088b29b604acb78100fe2c898a1844e57abab3b30d3a6206d64cc6461189268 days 2 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.4 Ether
0x34d9d7a337b739d3e1b1f2f6a8aae9c0a783f61b595ab512f07c830d0edba6af61187578 days 2 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.15 Ether
0x70011aadaaf80693612aa921c7a4ce5bd094b0e22f2c63e0f14626bd8822e13d61185118 days 3 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.05 Ether
0x116ba64495d701a56fcd4a93f6d8bb18d3ff67e24045f6e28b7d24d206f4f9b161184918 days 3 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.08 Ether
0x5c8a2af0f1353ddaec3ab130c3392165bc4f640a239659b3a24703a16e2e2ff061184888 days 3 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.3 Ether
0xcd2ad89baf5c9d1c32bab8019d07b842acd749c1c8d2b387b415355af9f792a661184448 days 4 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.08 Ether
0xda65dcbb6b6b348b6a165e5164df45ecaa435c360276f03ca204f9d92611544361183948 days 4 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.08 Ether
0xe862366de90f15c93e7128e97e6475cb3d4b79ea7b0aa3e5cc03944a9e57dd8d61183588 days 4 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.3 Ether
0x3165a484b0b035b8cfc2f7ccce78925900fedd3ffa360a042a9c6dd968f982f461182648 days 4 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.15 Ether
0x4de63b3bbf30702e791656222ba44d8873393fd73ed2a8ce971aa9028ba4668c603172022 days 19 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.1 Ether
0x95a855b2c295108ee845d70f7f8ac867a742a2c844501b1ce2df7e924640916f583064957 days 3 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.11 Ether
0xf5dd57f9b5f064b32a809bc6e70b7c0ec3d53b429af3b0c4a72f96b444c11395582598357 days 22 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e11 Ether
0x611d87b7dd50fb82c7d95d17d5c24e3b66decf223b8daff6b60560d9e01d28315474661119 days 10 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.321560975 Ether
0x0331644f79abc662a00b29ab133ae61fd386c49543185dd3a7d6f5d4b9cefd4d5471609119 days 23 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.05 Ether
0x27b4e05b50e41967d4a08abfde902c137452a41add4e25b98c1442d669cb19655469445120 days 8 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e11 Ether
0x5031007d29c3ef0853bfbd841ece082751f039592f236f992327a79c5dd607ba5465846120 days 23 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.5 Ether
0xc12e58cd9063d7121c6c4d794b79061b1921439232b781c71d2991cc1fec2b245453110123 days 3 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.05 Ether
0x7b47772d5b9f8adc02fae95dc7154ac4372afdabf78e622fde35f732ea095f635387084134 days 4 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e13.45 Ether
0x5fcff0effa4c4c0782d3f1ad2bb3db7b2703542b4a7acaa6f8b0a940bec9e1b15386807134 days 5 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e11.976383123 Ether
0xe479772db4a7292af24a4d8cab94df90089674ac401250697558d73de01b62b35362256138 days 7 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.1 Ether
0xe44fb0ecb5ab26a7c6d04f5f2faef69cf561f991f1e5620065007b0262aca9d25357671139 days 1 hr ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.5 Ether
0xacd4bf282b9af8cbdf0c2565c23ce51922d03ad7fa2b86bd8f45fd4a90d3d1eb5355196139 days 11 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.06 Ether
0x282330aa9a541b5c1965a90ddc319738d0b0be2efb3897a7b7b7f75e48754eee5344703141 days 5 hrs ago0x5983f1eb0508190e821e380a8ed273725f5d927c0x6941a0fd30198c70b3872d4d1b808e4bfc5a07e10.1 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: CryptoAngelCrowdsale
Compiler Version: v0.4.19-nightly.2017.10.18+commit.f7ca2421
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 pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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


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

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

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

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

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


contract CryptoAngelConstants {

  string constant TOKEN_NAME = "CryptoAngel";
  string constant TOKEN_SYMBOL = "ANGEL";
  uint constant TOKEN_DECIMALS = 18;
  uint8 constant TOKEN_DECIMALS_UINT8 = uint8(TOKEN_DECIMALS);
  uint constant TOKEN_DECIMAL_MULTIPLIER = 10 ** TOKEN_DECIMALS;

  uint constant TEAM_TOKENS =   18000000 * TOKEN_DECIMAL_MULTIPLIER;
  uint constant HARD_CAP_TOKENS =   88000000 * TOKEN_DECIMAL_MULTIPLIER;
  uint constant MINIMAL_PURCHASE = 0.05 ether;
  uint constant RATE = 1000; // 1ETH = 1000ANGEL

  address constant TEAM_ADDRESS = 0x6941A0FD30198c70b3872D4d1b808e4bFc5A07E1;
}


/**
 * @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 view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}


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


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

  mapping(address => uint256) balances;

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


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;

  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

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

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

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    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) {
    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) {
    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 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(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;
  }
}

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is StandardToken {

    event Burn(address indexed burner, uint256 value);

  /**
   * @dev Burns a specific amount of tokens.
   * @param _value The amount of token to be burned.
   */
  function burn(uint256 _value) public {
      require(_value > 0);
      require(_value <= balances[msg.sender]);
      // no need to require value <= totalSupply, since that would imply the
      // sender's balance is greater than the totalSupply, which *should* be an assertion failure

      address burner = msg.sender;
      balances[burner] = balances[burner].sub(_value);
      totalSupply = totalSupply.sub(_value);
      Burn(burner, _value);
  }

  /**
   * @dev Burn tokens from the specified address.
   * @param _from address The address which you want to burn tokens from.
   * @param _value uint The amount of tokens to be burned.
   */
  function burnFrom(address _from, uint256 _value) public returns (bool) {
      require(_value > 0);
      var allowance = allowed[_from][msg.sender];
      require(allowance >= _value);
      balances[_from] = balances[_from].sub(_value);
      totalSupply = totalSupply.sub(_value);
      allowed[_from][msg.sender] = allowance.sub(_value);
      Burn(_from, _value);
      return true;
  }
}


contract CryptoAngel is CryptoAngelConstants, MintableToken, BurnableToken {

  mapping (address => bool) public frozenAccount;

  event FrozenFunds(address target, bool frozen);

  /**
   * @param target Address to be frozen
   * @param freeze either to freeze it or not
   */
  function freezeAccount(address target, bool freeze) public onlyOwner {
      frozenAccount[target] = freeze;
      FrozenFunds(target, freeze);
  }
    
  /**
   * @dev Returns token's name.
   */
  function name() pure public returns (string _name) {
      return TOKEN_NAME;
  }

  /**
   * @dev Returns token's symbol.
   */
  function symbol() pure public returns (string _symbol) {
      return TOKEN_SYMBOL;
  }

  /**
   * @dev Returns number of decimals.
   */
  function decimals() pure public returns (uint8 _decimals) {
      return TOKEN_DECIMALS_UINT8;
  }

  /**
    * @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 public returns (bool) {
        require(!frozenAccount[_to]);
        super.mint(_to, _amount);
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(!frozenAccount[msg.sender]);
        return super.transfer(_to, _value);
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(!frozenAccount[_from]);
        require(!frozenAccount[_to]);
        return super.transferFrom(_from, _to, _value);
    }
}

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end timestamps, where investors can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet
 * as they arrive.
 */
contract Crowdsale is CryptoAngelConstants{
  using SafeMath for uint256;

  // The token being sold
  CryptoAngel public token;

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

  // address where funds are collected
  address public wallet;

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

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

  // maximum amount of tokens to mint.
  uint public hardCap;

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


  function Crowdsale(uint256 _startTime, uint256 _endTime, address _wallet) public {
    require(_startTime >= now);
    require(_endTime >= _startTime);
    require(_wallet != address(0));

    token = createTokenContract();
    startTime = _startTime;
    endTime = _endTime;
    hardCap = HARD_CAP_TOKENS;
    wallet = _wallet;
    rate = RATE;
  }

  // creates the token to be sold.
  function createTokenContract() internal returns (CryptoAngel) {
    return new CryptoAngel();
  }

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

  // low level token purchase function
  function buyTokens(address beneficiary, uint256 weiAmount) internal {
    require(beneficiary != address(0));
    require(validPurchase(weiAmount, token.totalSupply()));

    // calculate token amount to be created
    uint256 tokens = calculateTokens(token.totalSupply(), weiAmount);

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

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

    forwardFunds(weiAmount);
  }

  // @return number of tokens which should be created
  function calculateTokens(uint256 totalTokens, uint256 weiAmount) internal view returns (uint256) {

    uint256 numOfTokens = weiAmount.mul(RATE);

    if (totalTokens <= hardCap.mul(30).div(100)) { // first 30% of available tokens
        numOfTokens += numOfTokens.mul(30).div(100);
    }
    else if (totalTokens <= hardCap.mul(45).div(100)) { // 30-45% of available tokens
        numOfTokens += numOfTokens.mul(20).div(100);
    }
    else if (totalTokens <= hardCap.mul(60).div(100)) { // 45-60% of available tokens
        numOfTokens += numOfTokens.mul(10).div(100);
    }  
   return numOfTokens;
  }

  // send ether to the fund collection wallet
  // override to create custom fund forwarding mechanisms
  function forwardFunds(uint amountWei) internal {
    wallet.transfer(amountWei);
  }

  // @return true if the transaction can buy tokens
  function validPurchase(uint _amountWei, uint _totalSupply) internal view returns (bool) {
    bool withinPeriod = now >= startTime && now <= endTime;
    bool nonMinimalPurchase = _amountWei >= MINIMAL_PURCHASE;
    bool hardCapNotReached = _totalSupply <= hardCap;
    return withinPeriod && nonMinimalPurchase && hardCapNotReached;
  }

  // @return true if crowdsale event has ended
  function hasEnded() internal view returns (bool) {
    return now > endTime;
  }
}


/**
 * @title FinalizableCrowdsale
 * @dev Extension of Crowdsale where an owner can do extra work
 * after finishing.
 */
contract FinalizableCrowdsale is Crowdsale, Ownable {
  using SafeMath for uint256;

  bool public isFinalized = false;

  event Finalized();

  function FinalizableCrowdsale(uint _startTime, uint _endTime, address _wallet) public
            Crowdsale(_startTime, _endTime, _wallet) {
    }

  /**
   * @dev Must be called after crowdsale ends, to do some extra finalization
   * work. Calls the contract's finalization function.
   */
  function finalize() onlyOwner public {
    require(!isFinalized);
    require(hasEnded());
    isFinalized = true;
    token.finishMinting();
    token.transferOwnership(owner);
    Finalized();
  }

  modifier notFinalized() {
    require(!isFinalized);
    _;
  }
}


contract CryptoAngelCrowdsale is CryptoAngelConstants, FinalizableCrowdsale {

    function CryptoAngelCrowdsale(
            uint _startTime,
            uint _endTime,
            address _wallet
    ) public
        FinalizableCrowdsale(_startTime, _endTime, _wallet) {
        token.mint(TEAM_ADDRESS, TEAM_TOKENS);
    }

  /**
   * @dev Allows the current owner to set the new start time if crowdsale is not finalized.
   * @param _startTime new end time.
   */
    function setStartTime(uint256 _startTime) public onlyOwner notFinalized {
        require(_startTime < endTime);
        startTime = _startTime;
    }

  /**
   * @dev Allows the current owner to set the new end time if crowdsale is not finalized.
   * @param _endTime new end time.
   */
    function setEndTime(uint256 _endTime) public onlyOwner notFinalized {
        require(_endTime > startTime);
        endTime = _endTime;
    }

  /**
   * @dev Allows the current owner to change the hard cap if crowdsale is not finalized.
   * @param _hardCapTokens new hard cap.
   */
    function setHardCap(uint256 _hardCapTokens) public onlyOwner notFinalized {
        require(_hardCapTokens * TOKEN_DECIMAL_MULTIPLIER > hardCap);
        hardCap = _hardCapTokens * TOKEN_DECIMAL_MULTIPLIER;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","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":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"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":"_endTime","type":"uint256"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_hardCapTokens","type":"uint256"}],"name":"setHardCap","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":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"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"}]

  Contract Creation Code Switch To Opcodes View
60606040526007805460a060020a60ff0219169055341561001f57600080fd5b604051606080612aeb833981016040528080519190602001805191906020018051915083905082828282824283101561005757600080fd5b8282101561006457600080fd5b600160a060020a038116151561007957600080fd5b61008e64010000000061090e6101a282021704565b60008054600160a060020a0319908116600160a060020a03938416178083556001969096556002949094556a48cab98f1671af58000000600655600380548516938316939093179092556103e86004556007805490931633821617909255911693506340c10f199250736941a0fd30198c70b3872d4d1b808e4bfc5a07e191506a0ee3a5f48a68b55200000090604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561017e57600080fd5b6102c65a03f1151561018f57600080fd5b50505060405180519050505050506101d7565b60006101ac6101c7565b604051809103906000f08015156101c257600080fd5b905090565b604051610fcb80611b2083390190565b61193a806101e66000396000f3006060604052600436106100b65763ffffffff60e060020a6000350416632c4e722e81146100c25780633197cbb6146100e75780633e0a322d146100fa5780634042b66f146101105780634bb278f314610123578063521eb2731461013657806378e97925146101655780638d4e4083146101785780638da5cb5b1461019f578063ccb98ffc146101b2578063d18d944b146101c8578063f2fde38b146101de578063fb86a404146101fd578063fc0c546a14610210575b6100c03334610223565b005b34156100cd57600080fd5b6100d5610417565b60405190815260200160405180910390f35b34156100f257600080fd5b6100d561041d565b341561010557600080fd5b6100c0600435610423565b341561011b57600080fd5b6100d5610468565b341561012e57600080fd5b6100c061046e565b341561014157600080fd5b6101496105d4565b604051600160a060020a03909116815260200160405180910390f35b341561017057600080fd5b6100d56105e3565b341561018357600080fd5b61018b6105e9565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101496105f9565b34156101bd57600080fd5b6100c0600435610608565b34156101d357600080fd5b6100c060043561064d565b34156101e957600080fd5b6100c0600160a060020a03600435166106a6565b341561020857600080fd5b6100d5610741565b341561021b57600080fd5b610149610747565b6000600160a060020a038316151561023a57600080fd5b600080546102a9918491600160a060020a0316906318160ddd90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561028957600080fd5b6102c65a03f1151561029a57600080fd5b50505060405180519050610756565b15156102b457600080fd5b6000805461032491600160a060020a03909116906318160ddd90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561030357600080fd5b6102c65a03f1151561031457600080fd5b50505060405180519050836107a4565b60055490915061033a908363ffffffff61087f16565b60055560008054600160a060020a0316906340c10f1990859084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561039f57600080fd5b6102c65a03f115156103b057600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a36104128261088e565b505050565b60045481565b60025481565b60075433600160a060020a0390811691161461043e57600080fd5b60075460a060020a900460ff161561045557600080fd5b600254811061046357600080fd5b600155565b60055481565b60075433600160a060020a0390811691161461048957600080fd5b60075460a060020a900460ff16156104a057600080fd5b6104a86108c4565b15156104b357600080fd5b6007805474ff0000000000000000000000000000000000000000191660a060020a17905560008054600160a060020a031690637d64bcb490604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561052057600080fd5b6102c65a03f1151561053157600080fd5b50505060405180515050600054600754600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561059257600080fd5b6102c65a03f115156105a357600080fd5b5050507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1565b600354600160a060020a031681565b60015481565b60075460a060020a900460ff1681565b600754600160a060020a031681565b60075433600160a060020a0390811691161461062357600080fd5b60075460a060020a900460ff161561063a57600080fd5b600154811161064857600080fd5b600255565b60075433600160a060020a0390811691161461066857600080fd5b60075460a060020a900460ff161561067f57600080fd5b600654670de0b6b3a764000082021161069757600080fd5b670de0b6b3a764000002600655565b60075433600160a060020a039081169116146106c157600080fd5b600160a060020a03811615156106d657600080fd5b600754600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065481565b600054600160a060020a031681565b600080600080600154421015801561077057506002544211155b925066b1a2bc2ec50000861015915060065485111590508280156107915750815b801561079a5750805b9695505050505050565b6000806107b9836103e863ffffffff6108cc16565b90506107e260646107d6601e6006546108cc90919063ffffffff16565b9063ffffffff6108f716565b8411610804576107fe60646107d683601e63ffffffff6108cc16565b01610874565b61081f60646107d6602d6006546108cc90919063ffffffff16565b841161083b576107fe60646107d683601463ffffffff6108cc16565b61085660646107d6603c6006546108cc90919063ffffffff16565b84116108745761087260646107d683600a63ffffffff6108cc16565b015b8091505b5092915050565b60008282018381101561087457fe5b600354600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156108c157600080fd5b50565b600254421190565b6000808315156108df5760009150610878565b508282028284828115156108ef57fe5b041461087457fe5b600080828481151561090557fe5b04949350505050565b6000610918610933565b604051809103906000f080151561092e57600080fd5b905090565b604051610fcb80610944833901905600606060405260038054600160a860020a03191633600160a060020a0316179055610f9d8061002e6000396000f3006060604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461011657806306fdde031461013d578063095ea7b3146101c757806318160ddd146101e957806323b872dd1461020e578063313ce5671461023657806340c10f191461025f57806342966c6814610281578063661884631461029957806370a08231146102bb57806379cc6790146102da5780637d64bcb4146102fc5780638da5cb5b1461030f57806395d89b411461033e578063a9059cbb14610351578063b414d4b614610373578063d73dd62314610392578063dd62ed3e146103b4578063e724529c146103d9578063f2fde38b146103fd575b600080fd5b341561012157600080fd5b61012961041c565b604051901515815260200160405180910390f35b341561014857600080fd5b61015061042c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018c578082015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610129600160a060020a036004351660243561046d565b34156101f457600080fd5b6101fc6104e4565b60405190815260200160405180910390f35b341561021957600080fd5b610129600160a060020a03600435811690602435166044356104ea565b341561024157600080fd5b610249610549565b60405160ff909116815260200160405180910390f35b341561026a57600080fd5b610129600160a060020a036004351660243561054e565b341561028c57600080fd5b6102976004356105a3565b005b34156102a457600080fd5b610129600160a060020a036004351660243561066c565b34156102c657600080fd5b6101fc600160a060020a0360043516610766565b34156102e557600080fd5b610129600160a060020a0360043516602435610781565b341561030757600080fd5b610129610897565b341561031a57600080fd5b610322610922565b604051600160a060020a03909116815260200160405180910390f35b341561034957600080fd5b610150610931565b341561035c57600080fd5b610129600160a060020a0360043516602435610972565b341561037e57600080fd5b610129600160a060020a03600435166109a9565b341561039d57600080fd5b610129600160a060020a03600435166024356109be565b34156103bf57600080fd5b6101fc600160a060020a0360043581169060243516610a62565b34156103e457600080fd5b610297600160a060020a03600435166024351515610a8d565b341561040857600080fd5b610297600160a060020a0360043516610b19565b60035460a060020a900460ff1681565b610434610f5f565b60408051908101604052600b81527f43727970746f416e67656c0000000000000000000000000000000000000000006020820152905090565b600080821161047b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600160a060020a03831660009081526004602052604081205460ff161561051057600080fd5b600160a060020a03831660009081526004602052604090205460ff161561053657600080fd5b610541848484610bb4565b949350505050565b601290565b60035460009033600160a060020a0390811691161461056c57600080fd5b600160a060020a03831660009081526004602052604090205460ff161561059257600080fd5b61059c8383610d36565b5092915050565b60008082116105b157600080fd5b600160a060020a0333166000908152600160205260409020548211156105d657600080fd5b5033600160a060020a0381166000908152600160205260409020546105fb9083610e43565b600160a060020a03821660009081526001602052604081209190915554610628908363ffffffff610e4316565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156106c957600160a060020a033381166000908152600260209081526040808320938816835292905290812055610700565b6106d9818463ffffffff610e4316565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60008080831161079057600080fd5b50600160a060020a0380841660009081526002602090815260408083203390941683529290522054828110156107c557600080fd5b600160a060020a0384166000908152600160205260409020546107ee908463ffffffff610e4316565b600160a060020a0385166000908152600160205260408120919091555461081b908463ffffffff610e4316565b60005561082e818463ffffffff610e4316565b600160a060020a038086166000818152600260209081526040808320339095168352939052829020929092557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59085905190815260200160405180910390a25060019392505050565b60035460009033600160a060020a039081169116146108b557600080fd5b60035460a060020a900460ff16156108cc57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b610939610f5f565b60408051908101604052600581527f414e47454c0000000000000000000000000000000000000000000000000000006020820152905090565b600160a060020a03331660009081526004602052604081205460ff161561099857600080fd5b6109a28383610e55565b9392505050565b60046020526000908152604090205460ff1681565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546109f6908363ffffffff610f5016565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610aa857600080fd5b600160a060020a03821660009081526004602052604090819020805460ff19168315151790557f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b60035433600160a060020a03908116911614610b3457600080fd5b600160a060020a0381161515610b4957600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a0383161515610bcb57600080fd5b600160a060020a038416600090815260016020526040902054821115610bf057600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610c2357600080fd5b600160a060020a038416600090815260016020526040902054610c4c908363ffffffff610e4316565b600160a060020a038086166000908152600160205260408082209390935590851681522054610c81908363ffffffff610f5016565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610cc9908363ffffffff610e4316565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035460009033600160a060020a03908116911614610d5457600080fd5b60035460a060020a900460ff1615610d6b57600080fd5b600054610d7e908363ffffffff610f5016565b6000908155600160a060020a038416815260016020526040902054610da9908363ffffffff610f5016565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600082821115610e4f57fe5b50900390565b6000600160a060020a0383161515610e6c57600080fd5b600160a060020a033316600090815260016020526040902054821115610e9157600080fd5b600160a060020a033316600090815260016020526040902054610eba908363ffffffff610e4316565b600160a060020a033381166000908152600160205260408082209390935590851681522054610eef908363ffffffff610f5016565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156109a257fe5b602060405190810160405260008152905600a165627a7a723058205764594c192b743ed22fe60c05dc7ee2a33869a0bddd77faa60a5e82e75498d70029a165627a7a723058206d1e429168c692c07dd8a2635601736bde3dcc361b68e02f1d1a705155c1babe0029606060405260038054600160a860020a03191633600160a060020a0316179055610f9d8061002e6000396000f3006060604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461011657806306fdde031461013d578063095ea7b3146101c757806318160ddd146101e957806323b872dd1461020e578063313ce5671461023657806340c10f191461025f57806342966c6814610281578063661884631461029957806370a08231146102bb57806379cc6790146102da5780637d64bcb4146102fc5780638da5cb5b1461030f57806395d89b411461033e578063a9059cbb14610351578063b414d4b614610373578063d73dd62314610392578063dd62ed3e146103b4578063e724529c146103d9578063f2fde38b146103fd575b600080fd5b341561012157600080fd5b61012961041c565b604051901515815260200160405180910390f35b341561014857600080fd5b61015061042c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018c578082015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610129600160a060020a036004351660243561046d565b34156101f457600080fd5b6101fc6104e4565b60405190815260200160405180910390f35b341561021957600080fd5b610129600160a060020a03600435811690602435166044356104ea565b341561024157600080fd5b610249610549565b60405160ff909116815260200160405180910390f35b341561026a57600080fd5b610129600160a060020a036004351660243561054e565b341561028c57600080fd5b6102976004356105a3565b005b34156102a457600080fd5b610129600160a060020a036004351660243561066c565b34156102c657600080fd5b6101fc600160a060020a0360043516610766565b34156102e557600080fd5b610129600160a060020a0360043516602435610781565b341561030757600080fd5b610129610897565b341561031a57600080fd5b610322610922565b604051600160a060020a03909116815260200160405180910390f35b341561034957600080fd5b610150610931565b341561035c57600080fd5b610129600160a060020a0360043516602435610972565b341561037e57600080fd5b610129600160a060020a03600435166109a9565b341561039d57600080fd5b610129600160a060020a03600435166024356109be565b34156103bf57600080fd5b6101fc600160a060020a0360043581169060243516610a62565b34156103e457600080fd5b610297600160a060020a03600435166024351515610a8d565b341561040857600080fd5b610297600160a060020a0360043516610b19565b60035460a060020a900460ff1681565b610434610f5f565b60408051908101604052600b81527f43727970746f416e67656c0000000000000000000000000000000000000000006020820152905090565b600080821161047b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600160a060020a03831660009081526004602052604081205460ff161561051057600080fd5b600160a060020a03831660009081526004602052604090205460ff161561053657600080fd5b610541848484610bb4565b949350505050565b601290565b60035460009033600160a060020a0390811691161461056c57600080fd5b600160a060020a03831660009081526004602052604090205460ff161561059257600080fd5b61059c8383610d36565b5092915050565b60008082116105b157600080fd5b600160a060020a0333166000908152600160205260409020548211156105d657600080fd5b5033600160a060020a0381166000908152600160205260409020546105fb9083610e43565b600160a060020a03821660009081526001602052604081209190915554610628908363ffffffff610e4316565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156106c957600160a060020a033381166000908152600260209081526040808320938816835292905290812055610700565b6106d9818463ffffffff610e4316565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60008080831161079057600080fd5b50600160a060020a0380841660009081526002602090815260408083203390941683529290522054828110156107c557600080fd5b600160a060020a0384166000908152600160205260409020546107ee908463ffffffff610e4316565b600160a060020a0385166000908152600160205260408120919091555461081b908463ffffffff610e4316565b60005561082e818463ffffffff610e4316565b600160a060020a038086166000818152600260209081526040808320339095168352939052829020929092557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59085905190815260200160405180910390a25060019392505050565b60035460009033600160a060020a039081169116146108b557600080fd5b60035460a060020a900460ff16156108cc57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b610939610f5f565b60408051908101604052600581527f414e47454c0000000000000000000000000000000000000000000000000000006020820152905090565b600160a060020a03331660009081526004602052604081205460ff161561099857600080fd5b6109a28383610e55565b9392505050565b60046020526000908152604090205460ff1681565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546109f6908363ffffffff610f5016565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610aa857600080fd5b600160a060020a03821660009081526004602052604090819020805460ff19168315151790557f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b60035433600160a060020a03908116911614610b3457600080fd5b600160a060020a0381161515610b4957600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a0383161515610bcb57600080fd5b600160a060020a038416600090815260016020526040902054821115610bf057600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610c2357600080fd5b600160a060020a038416600090815260016020526040902054610c4c908363ffffffff610e4316565b600160a060020a038086166000908152600160205260408082209390935590851681522054610c81908363ffffffff610f5016565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610cc9908363ffffffff610e4316565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035460009033600160a060020a03908116911614610d5457600080fd5b60035460a060020a900460ff1615610d6b57600080fd5b600054610d7e908363ffffffff610f5016565b6000908155600160a060020a038416815260016020526040902054610da9908363ffffffff610f5016565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600082821115610e4f57fe5b50900390565b6000600160a060020a0383161515610e6c57600080fd5b600160a060020a033316600090815260016020526040902054821115610e9157600080fd5b600160a060020a033316600090815260016020526040902054610eba908363ffffffff610e4316565b600160a060020a033381166000908152600160205260408082209390935590851681522054610eef908363ffffffff610f5016565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156109a257fe5b602060405190810160405260008152905600a165627a7a723058205764594c192b743ed22fe60c05dc7ee2a33869a0bddd77faa60a5e82e75498d70029000000000000000000000000000000000000000000000000000000005a90ab00000000000000000000000000000000000000000000000000000000005ac020ff0000000000000000000000006941a0fd30198c70b3872d4d1b808e4bfc5a07e1

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

-----Decoded View---------------
Found 3 constructor arguments :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a90ab00
Arg [1] : 000000000000000000000000000000000000000000000000000000005ac020ff
Arg [2] : 0000000000000000000000006941a0fd30198c70b3872d4d1b808e4bfc5a07e1


   Swarm Source:
bzzr://5764594c192b743ed22fe60c05dc7ee2a33869a0bddd77faa60a5e82e75498d7

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.