Contract 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e

 

TxHash Block Age From To Value [TxFee]
0xecb6b30edb45432b56b7696c9707f31d3913eb0ea0ac31e77b49b02a08dd700a707230635 days 7 hrs ago0x57cc2087c191b82edb4bbe0930d64afdaeeeedae IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000197136
0xdec65e0745b7a358c0c1952a23dd382589d33cb4aa9dbc6cdde16682b0adb91d706660536 days 7 hrs ago0xfdae636657cb3edd08dd71be4cc1ae2b1c593275 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000172494
0x791cc689b31c10c9aa09be7eb182de4cd414595789f5e190732a36a9f34bb89e706660036 days 7 hrs ago0xad39108991e039d81d6e626da4a75adb185d4887 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000147852
0x769282949426f0d5382ac3229647fac3e78399359c0f782d545a059109985900706660036 days 7 hrs ago0xa5a72c096c30afbe5b52de92aaaa4a00df14a2e4 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000147852
0x2b5a1e711e87f157e4e4cd76f252ef724750ff90b6fc83e5f56629f59ea31102706659136 days 7 hrs ago0x253a93293fa6a3b1ef34a507ec92e33d015df6b2 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000147852
0xd9f1ac5e38e185ab8d4e0801b3a9ef6f38d94316864cb9ce11191c059529cca3706658936 days 7 hrs ago0x9940e15602ef830083706217d261ef4e36c7f1ec IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000147852
0x41466e78ad229ee4423ce0aca5476949269239e22b6137a0fa32c3ef844fb1da706657436 days 7 hrs ago0x77d2d1ef17f06fe33fc46fefcfa0822241639e62 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000147852
0xb90c913d66b72cd07c3afbbd8c77eb0a9e9e330a3ff6270a089e94b11a130062706656136 days 7 hrs ago0x3ad4f84a22f72f0fb0e35996d394d28de45abb95 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000172494
0xf3fae031a1179c005d04aa46346fb9f88947232f205b6430a406ac930d73d364706654936 days 7 hrs ago0x3ad4f84a22f72f0fb0e35996d394d28de45abb95 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.00022929
0x4126316b588a8b75d568ef18e6d78faee4b3c73015e9921069ab561bf8ce8999696403654 days 7 hrs ago0x3ad4f84a22f72f0fb0e35996d394d28de45abb95 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000100158
0xeeba2469cd68f7f794c41a2ac8cdd236fd3093ead346bbc889c74a9853bacf56695233056 days 7 hrs ago0xd6f74cb6addaa89c097304613c989a49b85beb6f IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.039916 Ether0.000359388
0x82cc56f06244dcd8c4d18c17db492c247337facf8f589c0db7b69371b1f2c413690170664 days 21 hrs ago0x7f7441cb07cce903b8d234bf62636d2395cf5e81 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.081638513 Ether0.003015427
0x20aa2089cf07797eca1fef28c2674e768a40808cf0468edceaea18353d4d23a9690168864 days 21 hrs ago0x7f7441cb07cce903b8d234bf62636d2395cf5e81 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.088639513 Ether0.000861
0x2b7bcbf6178ea66dbd341563b3cca4b0e68cebdb8a2fd6438c8648052368c7a2680326081 days 4 hrs ago0x3ad4f84a22f72f0fb0e35996d394d28de45abb95 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0 Ether0.000298125
0xd52b08f675a57e463b041530eccca7c8912c657ace07f6fc67e8d111aaba92a3680324881 days 4 hrs ago0x3ad4f84a22f72f0fb0e35996d394d28de45abb95 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.1 Ether0.001656752
0x7ca42efa59d69ad77ed06257dc857d0d65f24473c0a843baf6553293e802f8ff680246881 days 7 hrs ago0xa5a72c096c30afbe5b52de92aaaa4a00df14a2e4 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.25 Ether0.000956111
0x1fbd0bcb58b5dc243f74a78cc9b587c58e6e759f57596ff245423b3f83d32cb4680234081 days 7 hrs ago0xa5a72c096c30afbe5b52de92aaaa4a00df14a2e4 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e3 Ether0.001103205
0x173b6f945473f5ecd06409f11dd6357cb67605ee761c23b72692f1c87322af12680232581 days 7 hrs ago0x57cc2087c191b82edb4bbe0930d64afdaeeeedae IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.95 Ether0.000588376
0xf228e09b905d45f9b5c2dcefa75a641f8b69892ae5e9a17ff4acc4ba44622738680232481 days 7 hrs ago0xa5a72c096c30afbe5b52de92aaaa4a00df14a2e4 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e3 Ether0.000189
0xdc5aa15751a04d826f11c772e789a50b6c84e0085db58d9f9f5aad829a2632bf680227281 days 8 hrs ago0x57cc2087c191b82edb4bbe0930d64afdaeeeedae IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.2 Ether0.000724829
0xa23d621294318d084a21f2b12cde8e47174573da7df1a623e00a029b3e286dd3677851485 days 6 hrs ago0x7f7441cb07cce903b8d234bf62636d2395cf5e81 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.034863513 Ether0.001544487
0x4deac0129c20e12cefe9a1e7ff28f3bf1aea8c3c7a57c9b820068c7dcc18a5d9677849385 days 6 hrs agoCryptonator IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.03613074 Ether0.00517735
0x78116f32d7df64c4d72f40444c4c51200e333dc5ed57c4323d214490198a5a90677844985 days 6 hrs ago0x7f7441cb07cce903b8d234bf62636d2395cf5e81 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.033936803 Ether0.001544487
0x5fce7395822f5ec7e23e78e419781e8bef51e9dbe956ae6a3ba755e04e97f469673273892 days 18 hrs ago0xb6ffa54d8ba6f298730392f0721de117dd591dc3 IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.003066228 Ether0.000621282
0x48849e0a278113cb80a43a835295bbdf9deb332702a122774a22f6dc36047d74672424994 days 3 hrs ago0x31743969fd09dc19b70a6d1a9407bddd0389c41e IN 0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0.006 Ether0.000063
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xeeba2469cd68f7f794c41a2ac8cdd236fd3093ead346bbc889c74a9853bacf56695233056 days 7 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.039916 Ether
0x82cc56f06244dcd8c4d18c17db492c247337facf8f589c0db7b69371b1f2c413690170664 days 21 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.081638513 Ether
0xd52b08f675a57e463b041530eccca7c8912c657ace07f6fc67e8d111aaba92a3680324881 days 4 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.1 Ether
0x7ca42efa59d69ad77ed06257dc857d0d65f24473c0a843baf6553293e802f8ff680246881 days 7 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.25 Ether
0x1fbd0bcb58b5dc243f74a78cc9b587c58e6e759f57596ff245423b3f83d32cb4680234081 days 7 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf3 Ether
0x173b6f945473f5ecd06409f11dd6357cb67605ee761c23b72692f1c87322af12680232581 days 7 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.95 Ether
0xdc5aa15751a04d826f11c772e789a50b6c84e0085db58d9f9f5aad829a2632bf680227281 days 8 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.2 Ether
0xa23d621294318d084a21f2b12cde8e47174573da7df1a623e00a029b3e286dd3677851485 days 6 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.034863513 Ether
0x4deac0129c20e12cefe9a1e7ff28f3bf1aea8c3c7a57c9b820068c7dcc18a5d9677849385 days 6 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.03613074 Ether
0x78116f32d7df64c4d72f40444c4c51200e333dc5ed57c4323d214490198a5a90677844985 days 6 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.033936803 Ether
0x5fce7395822f5ec7e23e78e419781e8bef51e9dbe956ae6a3ba755e04e97f469673273892 days 18 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.003066228 Ether
0x67a30e6203284386950d718d41985bfdd552e8b5a17a0c406c5f0dd14704b2a1671725395 days 7 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.14256676641635142 Ether
0xea636da6df1ab74f85867d1e6837275b1e39f126de96397855397d19fefc95d9669698398 days 14 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.179694519317160827 Ether
0xb1ca494be2ac1f794a52e57c6dfef0273198074c0af19c3907b3db8f899e8172669578898 days 19 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.016415013 Ether
0xa7ccc02eade11f72a2c32ad07a636b6b6c2dd55714291e0866d947ad30729536669271099 days 7 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.272992563306034077 Ether
0x1463b0e5ff566326f9483ff277d65539d56d761609dbc0ca55ef407ce9261061669238599 days 9 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf4.09569197376492238 Ether
0xb0877a20b01ea71cbb7e6727c26bd41f7aaa138c364163224cf5d38c127ac48d6687036100 days 5 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.402748163942193793 Ether
0x5734265a32237acc8fd654333f239d4d7b5049934b0b229a94bbdbad0f3285fe6639546108 days 53 mins ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.25362551091965538 Ether
0x6fa01a831b6a3e8bf8c2f496d0ab22a50f64930dd92dc4513e7018fcb99ec3936634447108 days 20 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.11 Ether
0xaec5363d237c7bce43b791efb6362ade66d2608b5914bdd4905579292a86ac536633295109 days 1 hr ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.05 Ether
0x46a67d94b06e70d45f4a0ed59c33f86a6ab53277d0aed709c1977308af4564926622441110 days 20 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.011796746 Ether
0x1441ac2f8ce8c8b263cc30b1bed9e8de7d51c71c4f92a6f046f61c87d2f355bf6622415110 days 20 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.01290718 Ether
0x0a0e3771c9bf31b0083fc6c9a1a03425491093be65242c97d3c006db93cafd306622381110 days 20 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.02045386 Ether
0xb4ce1cc15228eaf64d6280fc311a72d0a2524163009879db7d0d13aad67501cc6622103110 days 21 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.02 Ether
0x4d47dab3df50090d26bd815f935962885df9a8d4c24ea0ff7daae1073db736036621990110 days 21 hrs ago0xef9d61a0f2bfd4695faeb17dd61d85202bdc8e6e0x5856a669197982f09b656c843b8d546a2b35d8cf0.073625513 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CNIFCrowdsale
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
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 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 Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


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


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


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

}

















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

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


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

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

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

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

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

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

}





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


contract CNIFToken is MintableToken {
  string public name = "CryptoNote Index Fund Token";
  string public symbol = "CNIF";
  uint8 public decimals = 18;
}








/**
 * @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 {
  using SafeMath for uint256;

  // The token being sold
  MintableToken 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;

  /**
   * 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, uint256 _rate, address _wallet) public {
    require(_startTime >= now);
    require(_endTime >= _startTime);
    require(_rate > 0);
    require(_wallet != address(0));

    token = createTokenContract();
    startTime = _startTime;
    endTime = _endTime;
    rate = _rate;
    wallet = _wallet;
  }

  // creates the token to be sold.
  // override this method to have crowdsale of a specific mintable token.
  function createTokenContract() internal returns (MintableToken) {
    return new MintableToken();
  }


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

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

    uint256 weiAmount = msg.value;

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

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

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

    forwardFunds();
  }

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

  // @return true if the transaction can buy tokens
  function validPurchase() internal view returns (bool) {
    bool withinPeriod = now >= startTime && now <= endTime;
    bool nonZeroPurchase = msg.value != 0;
    return withinPeriod && nonZeroPurchase;
  }

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


}


/**
 * @title CappedCrowdsale
 * @dev Extension of Crowdsale with a max amount of funds raised
 */
contract CappedCrowdsale is Crowdsale {
  using SafeMath for uint256;

  uint256 public cap;

  function CappedCrowdsale(uint256 _cap) public {
    require(_cap > 0);
    cap = _cap;
  }

  // overriding Crowdsale#validPurchase to add extra cap logic
  // @return true if investors can buy at the moment
  function validPurchase() internal view returns (bool) {
    bool withinCap = weiRaised.add(msg.value) <= cap;
    return super.validPurchase() && withinCap;
  }

  // overriding Crowdsale#hasEnded to add cap logic
  // @return true if crowdsale event has ended
  function hasEnded() public view returns (bool) {
    bool capReached = weiRaised >= cap;
    return super.hasEnded() || capReached;
  }

}











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

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

    finalization();
    Finalized();

    isFinalized = true;
  }

  /**
   * @dev Can be overridden to add finalization logic. The overriding function
   * should call super.finalization() to ensure the chain of finalization is
   * executed entirely.
   */
  function finalization() internal {
  }
}






/**
 * @title RefundVault
 * @dev This contract is used for storing funds while a crowdsale
 * is in progress. Supports refunding the money if crowdsale fails,
 * and forwarding it if crowdsale is successful.
 */
contract RefundVault is Ownable {
  using SafeMath for uint256;

  enum State { Active, Refunding, Closed }

  mapping (address => uint256) public deposited;
  address public wallet;
  State public state;

  event Closed();
  event RefundsEnabled();
  event Refunded(address indexed beneficiary, uint256 weiAmount);

  function RefundVault(address _wallet) public {
    require(_wallet != address(0));
    wallet = _wallet;
    state = State.Active;
  }

  function deposit(address investor) onlyOwner public payable {
    require(state == State.Active);
    deposited[investor] = deposited[investor].add(msg.value);
  }

  function close() onlyOwner public {
    require(state == State.Active);
    state = State.Closed;
    Closed();
    wallet.transfer(this.balance);
  }

  function enableRefunds() onlyOwner public {
    require(state == State.Active);
    state = State.Refunding;
    RefundsEnabled();
  }

  function refund(address investor) public {
    require(state == State.Refunding);
    uint256 depositedValue = deposited[investor];
    deposited[investor] = 0;
    investor.transfer(depositedValue);
    Refunded(investor, depositedValue);
  }
}



/**
 * @title RefundableCrowdsale
 * @dev Extension of Crowdsale contract that adds a funding goal, and
 * the possibility of users getting a refund if goal is not met.
 * Uses a RefundVault as the crowdsale's vault.
 */
contract RefundableCrowdsale is FinalizableCrowdsale {
  using SafeMath for uint256;

  // minimum amount of funds to be raised in weis
  uint256 public goal;

  // refund vault used to hold funds while crowdsale is running
  RefundVault public vault;

  function RefundableCrowdsale(uint256 _goal) public {
    require(_goal > 0);
    vault = new RefundVault(wallet);
    goal = _goal;
  }

  // We're overriding the fund forwarding from Crowdsale.
  // In addition to sending the funds, we want to call
  // the RefundVault deposit function
  function forwardFunds() internal {
    vault.deposit.value(msg.value)(msg.sender);
  }

  // if crowdsale is unsuccessful, investors can claim refunds here
  function claimRefund() public {
    require(isFinalized);
    require(!goalReached());

    vault.refund(msg.sender);
  }

  // vault finalization task, called when owner calls finalize()
  function finalization() internal {
    if (goalReached()) {
      vault.close();
    } else {
      vault.enableRefunds();
    }

    super.finalization();
  }

  function goalReached() public view returns (bool) {
    return weiRaised >= goal;
  }

}


contract CNIFCrowdsale is CappedCrowdsale, RefundableCrowdsale {

  // ICO Stage
  // ============
  enum CrowdsaleStage { PreICO, ICO }
  CrowdsaleStage public stage = CrowdsaleStage.PreICO;
  // =============

  // Token Distribution
  // =============================
  uint256 public maxTokens = 1000000000000000000000000; // Total supply 1000 000 CNIF Tokens
  uint256 public tokensForEcosystem = 100000000000000000000000;
  uint256 public tokensForTeam = 100000000000000000000000;
  uint256 public tokensForBounty = 50000000000000000000000;
  uint256 public totalTokensForSale = 750000000000000000000000; // 750 000 CNIFs will be sold in Crowdsale
  uint256 public totalTokensForSaleDuringPreICO = 250000000000000000000000; // 250 000 out of 750 000 CNIFs will be sold during PreICO
  // ==============================

  // Amount raised in PreICO
  // ==================
  uint256 public totalWeiRaisedDuringPreICO;
  // ===================


  // Events
  event EthTransferred(string text);
  event EthRefunded(string text);


  // Constructor
  // ============
  function CNIFCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet, uint256 _goal, uint256 _cap) CappedCrowdsale(_cap) FinalizableCrowdsale() RefundableCrowdsale(_goal) Crowdsale(_startTime, _endTime, _rate, _wallet) public {
      require(_goal <= _cap);
  }
  // =============

  // Token Deployment
  // =================
  function createTokenContract() internal returns (MintableToken) {
    return new CNIFToken(); // Deploys the ERC20 token. Automatically called when crowdsale contract is deployed
  }
  // ==================

  // Crowdsale Stage Management
  // =========================================================

  // Change Crowdsale Stage. Available Options: PreICO, ICO
  function setCrowdsaleStage(uint value) public onlyOwner {

      CrowdsaleStage _stage;

      if (uint(CrowdsaleStage.PreICO) == value) {
        _stage = CrowdsaleStage.PreICO;
      } else if (uint(CrowdsaleStage.ICO) == value) {
        _stage = CrowdsaleStage.ICO;
      }

      stage = _stage;

      if (stage == CrowdsaleStage.PreICO) {
        setCurrentRate(1000);
      } else if (stage == CrowdsaleStage.ICO) {
        setCurrentRate(800);
      }
  }

  // Change the current rate
  function setCurrentRate(uint256 _rate) private {
      rate = _rate;
  }

  // ================ Stage Management Over =====================

  // Token Purchase
  // =========================
  function () external payable {
      uint256 tokensThatWillBeMintedAfterPurchase = msg.value.mul(rate);
      if ((stage == CrowdsaleStage.PreICO) && (token.totalSupply() + tokensThatWillBeMintedAfterPurchase > totalTokensForSaleDuringPreICO)) {
        msg.sender.transfer(msg.value); // Refund them
        EthRefunded("PreICO Limit Hit");
        return;
      }

      buyTokens(msg.sender);

      if (stage == CrowdsaleStage.PreICO) {
          totalWeiRaisedDuringPreICO = totalWeiRaisedDuringPreICO.add(msg.value);
      }
  }

  function forwardFunds() internal {
          EthTransferred("forwarding funds to refundable vault");
          super.forwardFunds();
  }
  // ===========================

  // Finish: Mint Extra Tokens as needed before finalizing the Crowdsale.
  // ====================================================================

  function finish(address _teamFund, address _ecosystemFund, address _bountyFund) public onlyOwner {
      require(!isFinalized);
      uint256 alreadyMinted = token.totalSupply();
      require(alreadyMinted < maxTokens);

      uint256 unsoldTokens = totalTokensForSale - alreadyMinted;
      if (unsoldTokens > 0) {
        tokensForEcosystem = tokensForEcosystem + unsoldTokens;
      }

      token.mint(_teamFund,tokensForTeam);
      token.mint(_ecosystemFund,tokensForEcosystem);
      token.mint(_bountyFund,tokensForBounty);
      finalize();
  }
}

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":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensForEcosystem","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":true,"inputs":[],"name":"totalTokensForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensForBounty","outputs":[{"name":"","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":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_teamFund","type":"address"},{"name":"_ecosystemFund","type":"address"},{"name":"_bountyFund","type":"address"}],"name":"finish","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"value","type":"uint256"}],"name":"setCrowdsaleStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalWeiRaisedDuringPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensForSaleDuringPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxTokens","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":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensForTeam","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_goal","type":"uint256"},{"name":"_cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"text","type":"string"}],"name":"EthTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"text","type":"string"}],"name":"EthRefunded","type":"event"},{"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
60606040526007805460a060020a60ff021990811690915560098054909116905569d3c21bcecceda1000000600a5569152d02c7e14af6800000600b819055600c55690a968163f0a57b400000600d55699ed194db19b238c00000600e556934f086f3b33b68400000600f5534156200007757600080fd5b60405160c0806200335c8339810160405280805191906020018051919060200180519190602001805191906020018051919060200180519150829050818787878742841015620000c657600080fd5b83831015620000d457600080fd5b60008211620000e257600080fd5b600160a060020a0381161515620000f857600080fd5b6200011064010000000062000f98620001ff82021704565b60008054600160a060020a0319908116600160a060020a039384161782556001969096556002949094556004929092556003805490941691161790915581116200015957600080fd5b60065560078054600160a060020a03191633600160a060020a0316179055600081116200018557600080fd5b600354600160a060020a03166200019b62000227565b600160a060020a039091168152602001604051809103906000f0801515620001c257600080fd5b60098054600160a060020a031916600160a060020a039290921691909117905560085580821115620001f357600080fd5b50505050505062000249565b60006200020b62000238565b604051809103906000f08015156200022257600080fd5b905090565b60405161060c8062001fd383390190565b604051610d7d80620025df83390190565b611d7a80620002596000396000f300606060405260043610620001615763ffffffff60e060020a6000350416632c4e722e8114620002fd5780633197cbb61462000325578063355274ea146200033b5780634019388314620003515780634042b66f14620003675780634bb278f3146200037d5780634c4cfc3b1462000395578063521eb27314620003ab57806360219c7b14620003dd578063644280e214620003f357806378e9792514620004095780637d3d6522146200041f5780637e02bb0f14620004495780638d4e408314620004775780638da5cb5b146200048d578063a997f82f14620004a3578063abe8014a14620004bc578063b5545a3c14620004d2578063c02aaea114620004e8578063c040e6b814620004fe578063e83157421462000539578063ec8ac4d8146200054f578063ecb70fb71462000565578063f2fde38b146200057b578063fbfa77cf146200059d578063fc0c546a14620005b3578063fde83a3414620005c9575b60006200017a60045434620005df90919063ffffffff16565b9050600060095460a060020a900460ff1660018111156200019757fe5b148015620002105750600f54600080548391600160a060020a03909116906318160ddd90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620001f157600080fd5b6102c65a03f115156200020357600080fd5b5050506040518051905001115b15620002b457600160a060020a0333163480156108fc0290604051600060405180830381858888f1935050505015156200024957600080fd5b7fc0283f9c45b2118c7ec26e4f4bf06fc486f94a186fb38dc5dff372d9cb709d3760405160208082526010908201527f50726549434f204c696d697420486974000000000000000000000000000000006040808301919091526060909101905180910390a1620002fa565b620002bf3362000619565b600060095460a060020a900460ff166001811115620002da57fe5b1415620002fa57601054620002f6903463ffffffff6200075916565b6010555b50005b34156200030957600080fd5b6200031362000769565b60405190815260200160405180910390f35b34156200033157600080fd5b620003136200076f565b34156200034757600080fd5b6200031362000775565b34156200035d57600080fd5b620003136200077b565b34156200037357600080fd5b6200031362000781565b34156200038957600080fd5b6200039362000787565b005b3415620003a157600080fd5b620003136200082d565b3415620003b757600080fd5b620003c162000833565b604051600160a060020a03909116815260200160405180910390f35b3415620003e957600080fd5b6200031362000842565b3415620003ff57600080fd5b6200031362000848565b34156200041557600080fd5b620003136200084e565b34156200042b57600080fd5b6200043562000854565b604051901515815260200160405180910390f35b34156200045557600080fd5b62000393600160a060020a03600435811690602435811690604435166200085f565b34156200048357600080fd5b6200043562000ac2565b34156200049957600080fd5b620003c162000ad2565b3415620004af57600080fd5b6200039360043562000ae1565b3415620004c857600080fd5b6200031362000bbd565b3415620004de57600080fd5b6200039362000bc3565b3415620004f457600080fd5b6200031362000c54565b34156200050a57600080fd5b6200051462000c5a565b604051808260018111156200052557fe5b60ff16815260200191505060405180910390f35b34156200054557600080fd5b6200031362000c6a565b62000393600160a060020a036004351662000619565b34156200057157600080fd5b6200043562000c70565b34156200058757600080fd5b62000393600160a060020a036004351662000c95565b3415620005a957600080fd5b620003c162000d32565b3415620005bf57600080fd5b620003c162000d41565b3415620005d557600080fd5b6200031362000d50565b600080831515620005f4576000915062000612565b508282028284828115156200060557fe5b04146200060e57fe5b8091505b5092915050565b600080600160a060020a03831615156200063257600080fd5b6200063c62000d56565b15156200064857600080fd5b6004543492506200066190839063ffffffff620005df16565b60055490915062000679908363ffffffff6200075916565b60055560008054600160a060020a0316906340c10f1990859084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620006df57600080fd5b6102c65a03f11515620006f157600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a36200075462000d8e565b505050565b6000828201838110156200060e57fe5b60045481565b60025481565b60065481565b60085481565b60055481565b60075433600160a060020a03908116911614620007a357600080fd5b60075460a060020a900460ff1615620007bb57600080fd5b620007c562000c70565b1515620007d157600080fd5b620007db62000e25565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16007805474ff0000000000000000000000000000000000000000191660a060020a179055565b600b5481565b600354600160a060020a031681565b600e5481565b600d5481565b60015481565b600854600554101590565b600754600090819033600160a060020a039081169116146200088057600080fd5b60075460a060020a900460ff16156200089857600080fd5b60008054600160a060020a0316906318160ddd90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620008e257600080fd5b6102c65a03f11515620008f457600080fd5b5050506040518051600a54909350831090506200091057600080fd5b81600e5403905060008111156200092a57600b8054820190555b60008054600c54600160a060020a03909116916340c10f199188916040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200099057600080fd5b6102c65a03f11515620009a257600080fd5b5050506040518051505060008054600b54600160a060020a03909116916340c10f199187916040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000a1257600080fd5b6102c65a03f1151562000a2457600080fd5b5050506040518051505060008054600d54600160a060020a03909116916340c10f199186916040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000a9457600080fd5b6102c65a03f1151562000aa657600080fd5b505050604051805190505062000abb62000787565b5050505050565b60075460a060020a900460ff1681565b600754600160a060020a031681565b60075460009033600160a060020a0390811691161462000b0057600080fd5b81151562000b115750600062000b1f565b816001141562000b1f575060015b6009805482919074ff0000000000000000000000000000000000000000191660a060020a83600181111562000b5057fe5b0217905550600060095460a060020a900460ff16600181111562000b7057fe5b141562000b8a5762000b846103e862000ef0565b62000bb9565b600160095460a060020a900460ff16600181111562000ba557fe5b141562000bb95762000bb961032062000ef0565b5050565b60105481565b60075460a060020a900460ff16151562000bdc57600080fd5b62000be662000854565b1562000bf157600080fd5b600954600160a060020a031663fa89401a3360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151562000c4257600080fd5b6102c65a03f115156200075457600080fd5b600f5481565b60095460a060020a900460ff1681565b600a5481565b60065460055460009190101562000c8662000ef5565b8062000c8f5750805b91505090565b60075433600160a060020a0390811691161462000cb157600080fd5b600160a060020a038116151562000cc757600080fd5b600754600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b600054600160a060020a031681565b600c5481565b60008060065462000d73346005546200075990919063ffffffff16565b1115905062000d8162000efd565b801562000c8f5750919050565b7f47af8c4076c54a76f613f82e4296a2c5e2167698d368157a82e62398393e345e60405160208082526024908201527f666f7277617264696e672066756e647320746f20726566756e6461626c6520766040808301919091527f61756c740000000000000000000000000000000000000000000000000000000060608301526080909101905180910390a162000e2362000f2f565b565b62000e2f62000854565b1562000e9057600954600160a060020a03166343d726d66040518163ffffffff1660e060020a028152600401600060405180830381600087803b151562000e7557600080fd5b6102c65a03f1151562000e8757600080fd5b50505062000ee6565b600954600160a060020a0316638c52dc416040518163ffffffff1660e060020a028152600401600060405180830381600087803b151562000ed057600080fd5b6102c65a03f1151562000ee257600080fd5b5050505b62000e2362000e23565b600455565b600254421190565b6000806000600154421015801562000f1757506002544211155b91505034151581801562000f285750805b9250505090565b600954600160a060020a031663f340fa01343360405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016000604051808303818588803b151562000f8057600080fd5b6125ee5a03f1151562000f9257600080fd5b50505050565b600062000fa462000fc0565b604051809103906000f080151562000fbb57600080fd5b905090565b604051610d7d8062000fd2833901905600606060409081526003805460a060020a60ff02191690558051908101604052601b81527f43727970746f4e6f746520496e6465782046756e6420546f6b656e00000000006020820152600490805161005b9291602001906100d3565b5060408051908101604052600481527f434e494600000000000000000000000000000000000000000000000000000000602082015260059080516100a39291602001906100d3565b506006805460ff1916601217905560038054600160a060020a033316600160a060020a031990911617905561016e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011457805160ff1916838001178555610141565b82800160010185558215610141579182015b82811115610141578251825591602001919060010190610126565b5061014d929150610151565b5090565b61016b91905b8082111561014d5760008155600101610157565b90565b610c008061017d6000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146100ea57806306fdde0314610111578063095ea7b31461019b57806318160ddd146101bd57806323b872dd146101e2578063313ce5671461020a57806340c10f1914610233578063661884631461025557806370a08231146102775780637d64bcb4146102965780638da5cb5b146102a957806395d89b41146102d8578063a9059cbb146102eb578063d73dd6231461030d578063dd62ed3e1461032f578063f2fde38b14610354575b600080fd5b34156100f557600080fd5b6100fd610375565b604051901515815260200160405180910390f35b341561011c57600080fd5b610124610385565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610160578082015183820152602001610148565b50505050905090810190601f16801561018d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a657600080fd5b6100fd600160a060020a0360043516602435610423565b34156101c857600080fd5b6101d061048f565b60405190815260200160405180910390f35b34156101ed57600080fd5b6100fd600160a060020a0360043581169060243516604435610495565b341561021557600080fd5b61021d610617565b60405160ff909116815260200160405180910390f35b341561023e57600080fd5b6100fd600160a060020a0360043516602435610620565b341561026057600080fd5b6100fd600160a060020a036004351660243561072d565b341561028257600080fd5b6101d0600160a060020a0360043516610827565b34156102a157600080fd5b6100fd610842565b34156102b457600080fd5b6102bc6108cd565b604051600160a060020a03909116815260200160405180910390f35b34156102e357600080fd5b6101246108dc565b34156102f657600080fd5b6100fd600160a060020a0360043516602435610947565b341561031857600080fd5b6100fd600160a060020a0360043516602435610a42565b341561033a57600080fd5b6101d0600160a060020a0360043581169060243516610ae6565b341561035f57600080fd5b610373600160a060020a0360043516610b11565b005b60035460a060020a900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a03831615156104ac57600080fd5b600160a060020a0384166000908152600160205260409020548211156104d157600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561050457600080fd5b600160a060020a03841660009081526001602052604090205461052d908363ffffffff610bac16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610562908363ffffffff610bbe16565b600160a060020a038085166000908152600160209081526040808320949094558783168252600281528382203390931682529190915220546105aa908363ffffffff610bac16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60065460ff1681565b60035460009033600160a060020a0390811691161461063e57600080fd5b60035460a060020a900460ff161561065557600080fd5b600054610668908363ffffffff610bbe16565b6000908155600160a060020a038416815260016020526040902054610693908363ffffffff610bbe16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561078a57600160a060020a0333811660009081526002602090815260408083209388168352929052908120556107c1565b61079a818463ffffffff610bac16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461086057600080fd5b60035460a060020a900460ff161561087757600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561041b5780601f106103f05761010080835404028352916020019161041b565b6000600160a060020a038316151561095e57600080fd5b600160a060020a03331660009081526001602052604090205482111561098357600080fd5b600160a060020a0333166000908152600160205260409020546109ac908363ffffffff610bac16565b600160a060020a0333811660009081526001602052604080822093909355908516815220546109e1908363ffffffff610bbe16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a7a908363ffffffff610bbe16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610b2c57600080fd5b600160a060020a0381161515610b4157600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115610bb857fe5b50900390565b600082820183811015610bcd57fe5b93925050505600a165627a7a7230582095f737cf66023240bf019f96bfa79f6a186fc77fd51ded58cbb3370db3f9feba0029a165627a7a72305820d5c8abfd13fa0fa57e69e593441e881957d012468cc644fc8910820a7d6ed8fe00296060604052341561000f57600080fd5b60405160208061060c8339810160405280805160008054600160a060020a03191633600160a060020a039081169190911790915590925082161515905061005557600080fd5b60028054600160a060020a031916600160a060020a03929092169190911760a060020a60ff021916905561057e8061008e6000396000f3006060604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166343d726d6811461009d578063521eb273146100b25780638c52dc41146100e15780638da5cb5b146100f4578063c19d93fb14610107578063cb13cddb1461013e578063f2fde38b1461016f578063f340fa011461018e578063fa89401a146101a2575b600080fd5b34156100a857600080fd5b6100b06101c1565b005b34156100bd57600080fd5b6100c561029c565b604051600160a060020a03909116815260200160405180910390f35b34156100ec57600080fd5b6100b06102ab565b34156100ff57600080fd5b6100c561033c565b341561011257600080fd5b61011a61034b565b6040518082600281111561012a57fe5b60ff16815260200191505060405180910390f35b341561014957600080fd5b61015d600160a060020a036004351661035b565b60405190815260200160405180910390f35b341561017a57600080fd5b6100b0600160a060020a036004351661036d565b6100b0600160a060020a0360043516610408565b34156101ad57600080fd5b6100b0600160a060020a036004351661048c565b60005433600160a060020a039081169116146101dc57600080fd5b60006002805460a060020a900460ff16908111156101f657fe5b1461020057600080fd5b6002805474ff00000000000000000000000000000000000000001916740200000000000000000000000000000000000000001790557f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1600254600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561029a57600080fd5b565b600254600160a060020a031681565b60005433600160a060020a039081169116146102c657600080fd5b60006002805460a060020a900460ff16908111156102e057fe5b146102ea57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790557f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8960405160405180910390a1565b600054600160a060020a031681565b60025460a060020a900460ff1681565b60016020526000908152604090205481565b60005433600160a060020a0390811691161461038857600080fd5b600160a060020a038116151561039d57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461042357600080fd5b60006002805460a060020a900460ff169081111561043d57fe5b1461044757600080fd5b600160a060020a038116600090815260016020526040902054610470903463ffffffff61053c16565b600160a060020a03909116600090815260016020526040902055565b600060016002805460a060020a900460ff16908111156104a857fe5b146104b257600080fd5b50600160a060020a038116600081815260016020526040808220805492905590919082156108fc0290839051600060405180830381858888f1935050505015156104fb57600080fd5b81600160a060020a03167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d06518260405190815260200160405180910390a25050565b60008282018381101561054b57fe5b93925050505600a165627a7a723058205c00d36dc3cacb69bf27e725cc0c231c96132969330fb131b07f35782fbb8b7a0029606060409081526003805460a060020a60ff02191690558051908101604052601b81527f43727970746f4e6f746520496e6465782046756e6420546f6b656e00000000006020820152600490805161005b9291602001906100d3565b5060408051908101604052600481527f434e494600000000000000000000000000000000000000000000000000000000602082015260059080516100a39291602001906100d3565b506006805460ff1916601217905560038054600160a060020a033316600160a060020a031990911617905561016e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011457805160ff1916838001178555610141565b82800160010185558215610141579182015b82811115610141578251825591602001919060010190610126565b5061014d929150610151565b5090565b61016b91905b8082111561014d5760008155600101610157565b90565b610c008061017d6000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146100ea57806306fdde0314610111578063095ea7b31461019b57806318160ddd146101bd57806323b872dd146101e2578063313ce5671461020a57806340c10f1914610233578063661884631461025557806370a08231146102775780637d64bcb4146102965780638da5cb5b146102a957806395d89b41146102d8578063a9059cbb146102eb578063d73dd6231461030d578063dd62ed3e1461032f578063f2fde38b14610354575b600080fd5b34156100f557600080fd5b6100fd610375565b604051901515815260200160405180910390f35b341561011c57600080fd5b610124610385565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610160578082015183820152602001610148565b50505050905090810190601f16801561018d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a657600080fd5b6100fd600160a060020a0360043516602435610423565b34156101c857600080fd5b6101d061048f565b60405190815260200160405180910390f35b34156101ed57600080fd5b6100fd600160a060020a0360043581169060243516604435610495565b341561021557600080fd5b61021d610617565b60405160ff909116815260200160405180910390f35b341561023e57600080fd5b6100fd600160a060020a0360043516602435610620565b341561026057600080fd5b6100fd600160a060020a036004351660243561072d565b341561028257600080fd5b6101d0600160a060020a0360043516610827565b34156102a157600080fd5b6100fd610842565b34156102b457600080fd5b6102bc6108cd565b604051600160a060020a03909116815260200160405180910390f35b34156102e357600080fd5b6101246108dc565b34156102f657600080fd5b6100fd600160a060020a0360043516602435610947565b341561031857600080fd5b6100fd600160a060020a0360043516602435610a42565b341561033a57600080fd5b6101d0600160a060020a0360043581169060243516610ae6565b341561035f57600080fd5b610373600160a060020a0360043516610b11565b005b60035460a060020a900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a03831615156104ac57600080fd5b600160a060020a0384166000908152600160205260409020548211156104d157600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561050457600080fd5b600160a060020a03841660009081526001602052604090205461052d908363ffffffff610bac16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610562908363ffffffff610bbe16565b600160a060020a038085166000908152600160209081526040808320949094558783168252600281528382203390931682529190915220546105aa908363ffffffff610bac16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60065460ff1681565b60035460009033600160a060020a0390811691161461063e57600080fd5b60035460a060020a900460ff161561065557600080fd5b600054610668908363ffffffff610bbe16565b6000908155600160a060020a038416815260016020526040902054610693908363ffffffff610bbe16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561078a57600160a060020a0333811660009081526002602090815260408083209388168352929052908120556107c1565b61079a818463ffffffff610bac16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461086057600080fd5b60035460a060020a900460ff161561087757600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561041b5780601f106103f05761010080835404028352916020019161041b565b6000600160a060020a038316151561095e57600080fd5b600160a060020a03331660009081526001602052604090205482111561098357600080fd5b600160a060020a0333166000908152600160205260409020546109ac908363ffffffff610bac16565b600160a060020a0333811660009081526001602052604080822093909355908516815220546109e1908363ffffffff610bbe16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a7a908363ffffffff610bbe16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610b2c57600080fd5b600160a060020a0381161515610b4157600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115610bb857fe5b50900390565b600082820183811015610bcd57fe5b93925050505600a165627a7a7230582095f737cf66023240bf019f96bfa79f6a186fc77fd51ded58cbb3370db3f9feba0029000000000000000000000000000000000000000000000000000000005bda4200000000000000000000000000000000000000000000000000000000005c3a7f7f00000000000000000000000000000000000000000000000000000000000003e800000000000000000000000036268e72ebeab143a5de65e0c86e049986b4319b000000000000000000000000000000000000000000000002b5e3af16b1880000000000000000000000000000000000000000000000000043c33c193756480000


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

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005bda4200
Arg [1] : 000000000000000000000000000000000000000000000000000000005c3a7f7f
Arg [2] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [3] : 00000000000000000000000036268e72ebeab143a5de65e0c86e049986b4319b
Arg [4] : 000000000000000000000000000000000000000000000002b5e3af16b1880000
Arg [5] : 000000000000000000000000000000000000000000000043c33c193756480000


   Swarm Source:
bzzr://95f737cf66023240bf019f96bfa79f6a186fc77fd51ded58cbb3370db3f9feba
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.