ETH Price: $3,550.34 (-1.60%)
Gas: 29 Gwei

Contract

0x5156e901a673049011500022Be70F8D50BF8e4a1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
0x6060604053211582018-03-25 20:27:082195 days ago1522009628IN
 Create: DayDayCrowdsale
0 ETH0.009779534

Advanced mode:
Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DayDayCrowdsale

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-25
*/

pragma solidity ^0.4.19;


/**
 * @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));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

interface TokenInterface {
     function totalSupply() external constant returns (uint);
     function balanceOf(address tokenOwner) external constant returns (uint balance);
     function allowance(address tokenOwner, address spender) external constant returns (uint remaining);
     function transfer(address to, uint tokens) external returns (bool success);
     function approve(address spender, uint tokens) external returns (bool success);
     function transferFrom(address from, address to, uint tokens) external returns (bool success);
     function burn(uint256 _value) external; 
     function lockTokensForFs (address F1, address F2) external;
     function lockTokensForAs( address A1, address A2, address A3, address A4, address A5, address A6, address A7, address A8, address A9) external;
     function lockTokensForCs(address C1,address C2, address C3) external;
     function lockTokensForTeamAndReserve(address team) external;
     event Transfer(address indexed from, address indexed to, uint tokens);
     event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
     event Burn(address indexed burner, uint256 value);
}

 contract DayDayCrowdsale is Ownable{
  using SafeMath for uint256;
 
  // The token being sold
  TokenInterface public token;

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


  // how many token units a buyer gets per wei
  uint256 public ratePerWei = 50000;

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

  uint256 TOKENS_SOLD;
  
  uint256 minimumContributionPrivate = 10 * 10 ** 18; //10 eth is the minimum contribution in private investment phase
  uint256 maximumContributionPrivate = 200 * 10 ** 18; //200 eth is the maximum contribution in private investment phase
  
  uint256 minimumContributionPublic = 1 * 10 ** 18; //1 eth is the minimum contribution in public investment phase
  uint256 maximumContributionPublic = 10 * 10 ** 18; //10 eth is the maximum contribution in public investment phase
  
  uint256 maxTokensToSaleInPrivateSeedPhase1;
  uint256 maxTokensToSaleInPrivateSeedPhase2;
  uint256 maxTokensToSaleInSyndicagteSeed; 
  uint256 maxTokensToSaleInPreITOPublic;
  uint256 maxTokensToSaleInITOPublicPhase1;
  uint256 maxTokensToSaleInITOPublicPhase2;
  uint256 maxTokensToSaleInITOPublicPhase3;
  uint256 maxTokensToSale;
  
  uint256 bonusInPrivateSeedPhase1;
  uint256 bonusInPrivateSeedPhase2;
  uint256 bonusInSyndicagteSeed; 
  uint256 bonusInPreITOPublic;
  uint256 bonusInITOPublicPhase1;
  uint256 bonusInITOPublicPhase2;
  uint256 bonusInITOPublicPhase3;
  
  bool isCrowdsalePaused = false;
  
  uint256 softCap;
  uint256 hardCap;
  
  mapping(address=>uint256) amountSentByBuyers; 
  bool refundToBuyers = false;
  uint256 totalDurationInDays = 166 days;
  uint256 decimals = 2;
  /**
   * 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 DayDayCrowdsale(uint256 _startTime, address _wallet, address _tokenAddress) public 
  {
    require(_startTime >=now);
    require(_wallet != 0x0);

    startTime = _startTime;  
    endTime = startTime + totalDurationInDays;
    require(endTime >= startTime);
   
    owner = _wallet;
    
    softCap = 3860*10**18;
    hardCap = 23000*10**18;
    
    maxTokensToSaleInPrivateSeedPhase1 = 199500000 * 10 ** uint256(decimals);
    maxTokensToSaleInPrivateSeedPhase2 = 388500000 * 10 ** uint256(decimals);
    maxTokensToSaleInSyndicagteSeed = 924000000 * 10 ** uint256(decimals); 
    maxTokensToSaleInPreITOPublic = 1396500000 * 10 ** uint256(decimals);
    maxTokensToSaleInITOPublicPhase1 = 1790250000 * 10 ** uint256(decimals);
    maxTokensToSaleInITOPublicPhase2 = 2294250000 * 10 ** uint256(decimals);
    maxTokensToSaleInITOPublicPhase3 = 2898000000 * 10 ** uint256(decimals);
    maxTokensToSale = 3000000000 * 10 ** uint256(decimals);

    bonusInPrivateSeedPhase1 = 90;
    bonusInPrivateSeedPhase2 = 80;
    bonusInSyndicagteSeed = 70; 
    bonusInPreITOPublic = 50;
    bonusInITOPublicPhase1 = 25;
    bonusInITOPublicPhase2 = 20;
    bonusInITOPublicPhase3 = 15;
    
    token = TokenInterface(_tokenAddress);
  }
  
  
   // fallback function can be used to buy tokens
   function () public  payable {
     buyTokens(msg.sender);
    }
    
    function determineBonus(uint tokens) internal view returns (uint256 bonus) 
    {
        uint256 timeElapsed = now - startTime;
        uint256 timeElapsedInDays = timeElapsed.div(1 days);
        
        //private seed phase 1 (5 days)
        if (timeElapsedInDays <5)
        {
            //bonus application of private seed phase 1
            if (TOKENS_SOLD <maxTokensToSaleInPrivateSeedPhase1)
            {
                bonus = tokens.mul(bonusInPrivateSeedPhase1); 
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPrivateSeedPhase1);
            }
            
            //bonus application of private seed phase 2
            else if (TOKENS_SOLD >= maxTokensToSaleInPrivateSeedPhase1 && TOKENS_SOLD < maxTokensToSaleInPrivateSeedPhase2)
            {
                bonus = tokens.mul(bonusInPrivateSeedPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPrivateSeedPhase2);
            } 
            
            //bonus application of SyndicagteSeed
            else if (TOKENS_SOLD >= maxTokensToSaleInPrivateSeedPhase2 && TOKENS_SOLD < maxTokensToSaleInSyndicagteSeed)
            {
                bonus = tokens.mul(bonusInSyndicagteSeed);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInSyndicagteSeed);
            }
            
            //bonus application of PreITOPublic phase
            else if (TOKENS_SOLD >= maxTokensToSaleInSyndicagteSeed && TOKENS_SOLD < maxTokensToSaleInPreITOPublic)
            {
                bonus = tokens.mul(bonusInPreITOPublic);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPreITOPublic);
            }
            
            //bonus application of ITOPublic phase 1
            else if (TOKENS_SOLD >= maxTokensToSaleInPreITOPublic && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase1)
            {
                bonus = tokens.mul(bonusInITOPublicPhase1);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase1);
            }
            
            //bonus application of ITOPublic phase 2
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase1 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase2)
            {
                bonus = tokens.mul(bonusInITOPublicPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase2);
            }
            
            //bonus application of ITOPublic phase 3
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        //private seed phase 2 (10 days)
        else if (timeElapsedInDays >= 5 && timeElapsedInDays <16)
        {
            //bonus application of private seed phase 2
            if (TOKENS_SOLD >= maxTokensToSaleInPrivateSeedPhase1 && TOKENS_SOLD < maxTokensToSaleInPrivateSeedPhase2)
            {
                bonus = tokens.mul(bonusInPrivateSeedPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPrivateSeedPhase2);
            } 
            
            //bonus application of SyndicagteSeed
            else if (TOKENS_SOLD >= maxTokensToSaleInPrivateSeedPhase2 && TOKENS_SOLD < maxTokensToSaleInSyndicagteSeed)
            {
                bonus = tokens.mul(bonusInSyndicagteSeed);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInSyndicagteSeed);
            }
            
            //bonus application of PreITOPublic phase
            else if (TOKENS_SOLD >= maxTokensToSaleInSyndicagteSeed && TOKENS_SOLD < maxTokensToSaleInPreITOPublic)
            {
                bonus = tokens.mul(bonusInPreITOPublic);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPreITOPublic);
            }
            
            //bonus application of ITOPublic phase 1
            else if (TOKENS_SOLD >= maxTokensToSaleInPreITOPublic && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase1)
            {
                bonus = tokens.mul(bonusInITOPublicPhase1);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase1);
            }
            
            //bonus application of ITOPublic phase 2
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase1 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase2)
            {
                bonus = tokens.mul(bonusInITOPublicPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase2);
            }
            
            //bonus application of ITOPublic phase 3
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        //Syndicagte phase (19 days) 
        else if (timeElapsedInDays >= 16 && timeElapsedInDays<36)
        {
            //bonus application of SyndicagteSeed
            if (TOKENS_SOLD >= maxTokensToSaleInPrivateSeedPhase2 && TOKENS_SOLD < maxTokensToSaleInSyndicagteSeed)
            {
                bonus = tokens.mul(bonusInSyndicagteSeed);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInSyndicagteSeed);
            }
            
            //bonus application of PreITOPublic phase
            else if (TOKENS_SOLD >= maxTokensToSaleInSyndicagteSeed && TOKENS_SOLD < maxTokensToSaleInPreITOPublic)
            {
                bonus = tokens.mul(bonusInPreITOPublic);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPreITOPublic);
            }
            
            //bonus application of ITOPublic phase 1
            else if (TOKENS_SOLD >= maxTokensToSaleInPreITOPublic && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase1)
            {
                bonus = tokens.mul(bonusInITOPublicPhase1);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase1);
            }
            
            //bonus application of ITOPublic phase 2
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase1 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase2)
            {
                bonus = tokens.mul(bonusInITOPublicPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase2);
            }
            
            //bonus application of ITOPublic phase 3
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        // Pause before the public phases
        else if (timeElapsedInDays >= 36 && timeElapsedInDays<103)
        {
            //67 days break
            revert();  //no sale during this time, so revert this transaction
        }
        
        // Pre-ITO public phase (5 days)
        else if (timeElapsedInDays >= 103 && timeElapsedInDays<109)
        {
            //bonus application of PreITOPublic phase
            if (TOKENS_SOLD >= maxTokensToSaleInSyndicagteSeed && TOKENS_SOLD < maxTokensToSaleInPreITOPublic)
            {
                bonus = tokens.mul(bonusInPreITOPublic);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInPreITOPublic);
            }
            
            //bonus application of ITOPublic phase 1
            else if (TOKENS_SOLD >= maxTokensToSaleInPreITOPublic && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase1)
            {
                bonus = tokens.mul(bonusInITOPublicPhase1);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase1);
            }
            
            //bonus application of ITOPublic phase 2
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase1 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase2)
            {
                bonus = tokens.mul(bonusInITOPublicPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase2);
            }
            
            //bonus application of ITOPublic phase 3
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        // Public ITO phase 1 (15 days)
        else if (timeElapsedInDays >= 109 && timeElapsedInDays<125)
        {
            //bonus application of ITOPublic phase 1
            if (TOKENS_SOLD >= maxTokensToSaleInPreITOPublic && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase1)
            {
                bonus = tokens.mul(bonusInITOPublicPhase1);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase1);
            }
            
            //bonus application of ITOPublic phase 2
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase1 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase2)
            {
                bonus = tokens.mul(bonusInITOPublicPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase2);
            }
            
            //bonus application of ITOPublic phase 3
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        // Public ITO phase 2 (20 days)
        else if (timeElapsedInDays >= 125 && timeElapsedInDays<146)
        {
            //bonus application of ITOPublic phase 2
            if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase1 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase2)
            {
                bonus = tokens.mul(bonusInITOPublicPhase2);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase2);
            }
            
            //bonus application of ITOPublic phase 3
            else if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        // Public ITO phase 3 (20 days)
        else if (timeElapsedInDays >= 146 && timeElapsedInDays<167)
        {
            //bonus application of ITOPublic phase 3
            if (TOKENS_SOLD >= maxTokensToSaleInITOPublicPhase2 && TOKENS_SOLD < maxTokensToSaleInITOPublicPhase3)
            {
                bonus = tokens.mul(bonusInITOPublicPhase3);
                bonus = bonus.div(100);
                require (TOKENS_SOLD.add(tokens.add(bonus)) <= maxTokensToSaleInITOPublicPhase3);
            }
            else 
            {
                bonus = 0;
            }
        }
        
        else 
        {
            bonus = 0;
        }
    }

  // low level token purchase function
  
  function buyTokens(address beneficiary) public payable {
    require(beneficiary != 0x0);
    require(isCrowdsalePaused == false);
    require(validPurchase());
    
    if (isPrivateInvestmentPhase())
        require(msg.value>= minimumContributionPrivate && msg.value<=maximumContributionPrivate);
    else
        require(msg.value>= minimumContributionPublic && msg.value<=maximumContributionPublic);
    
    require(TOKENS_SOLD<maxTokensToSale);
   
    uint256 weiAmount = msg.value;
    
    // calculate token amount to be created
    uint weiAmountForTokens = weiAmount.div(10**16);
    uint256 tokens = weiAmountForTokens.mul(ratePerWei);
    uint256 bonus = determineBonus(tokens);
    tokens = tokens.add(bonus);
    require(TOKENS_SOLD.add(tokens)<=maxTokensToSale);
    
    // update state
    weiRaised = weiRaised.add(weiAmount);
    
    token.transfer(beneficiary,tokens);
    amountSentByBuyers[beneficiary] = weiAmount;
    emit TokenPurchase(owner, beneficiary, weiAmount, tokens);
    TOKENS_SOLD = TOKENS_SOLD.add(tokens);
    forwardFunds();
  }

  // send ether to the fund collection wallet
  function forwardFunds() internal {
    owner.transfer(msg.value);
  }

  // @return true if the transaction can buy tokens
  function validPurchase() internal constant 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 constant returns (bool) {
    return now > endTime;
  }
  
   /**
    * function to change the end timestamp of the ico
    * can only be called by owner wallet
    **/
    function changeEndDate(uint256 endTimeUnixTimestamp) public onlyOwner{
        endTime = endTimeUnixTimestamp;
    }
    
    /**
    * function to change the start timestamp of the ico
    * can only be called by owner wallet
    **/
    
    function changeStartDate(uint256 startTimeUnixTimestamp) public onlyOwner{
        startTime = startTimeUnixTimestamp;
    }
    
    /**
    * function to change the rate of tokens
    * can only be called by owner wallet
    **/
    function setPriceRate(uint256 newPrice) public onlyOwner {
        ratePerWei = newPrice;
    }
    
    function changeMinimumContributionForPrivatePhase(uint256 minContribution) public onlyOwner{
        minimumContributionPrivate = minContribution.mul(10 ** 15);
    }
    
    function changeMinimumContributionForPublicPhase(uint256 minContribution) public onlyOwner{
        minimumContributionPublic = minContribution.mul(10 ** 15);
    }
    
     function changeMaximumContributionForPrivatePhase(uint256 minContribution) public onlyOwner{
        maximumContributionPrivate = minContribution.mul(10 ** 15);
    }
    
     function changeMaximumContributionForPublicPhase(uint256 minContribution) public onlyOwner{
        maximumContributionPublic = minContribution.mul(10 ** 15);
    }
     /**
     * function to pause the crowdsale 
     * can only be called from owner wallet
     **/
     
    function pauseCrowdsale() public onlyOwner {
        isCrowdsalePaused = true;
    }

    /**
     * function to resume the crowdsale if it is paused
     * can only be called from owner wallet
     **/ 
    function resumeCrowdsale() public onlyOwner {
        isCrowdsalePaused = false;
    }
    
    /**
     * function to change the soft cap of the contract 
     **/
    function changeSoftCap(uint256 softCapEthers) public onlyOwner
    {
        softCap = softCapEthers.mul(10**18);
    }
    
    /**
     * function to change the hard cap of the contract 
     **/
    function changeHardCap(uint256 hardCapEthers) public onlyOwner
    {
        hardCap = hardCapEthers.mul(10**18);
    }
     
     // ------------------------------------------------------------------------
     // Remaining tokens for sale
     // ------------------------------------------------------------------------
     function remainingTokensForSale() public constant returns (uint) {
         return maxTokensToSale.sub(TOKENS_SOLD);
     }
    
     function isPrivateInvestmentPhase() internal constant returns (bool)
     {
         uint timePassed = now.sub(startTime);
         if (timePassed<=30 days)
            return true;
        return false;
     }
     
     function burnUnsoldTokens() public onlyOwner 
     {
         require(hasEnded());
         uint value = remainingTokensForSale();
         token.burn(value);
         TOKENS_SOLD = maxTokensToSale;
     }
    
     function tokensAllocatedForFs(address F1, address F2) public onlyOwner
     {
         token.transfer(F1,90000000 * 10 ** uint256(decimals));
         token.transfer(F2,60000000 * 10 ** uint256(decimals));
         token.lockTokensForFs(F1,F2);
         
     }
     function tokensAllocatedForAs( address A1, address A2, 
                                    address A3, address A4,
                                    address A5, address A6,
                                    address A7, address A8,
                                    address A9) public onlyOwner
     {
         token.transfer(A1,90000000 * 10 ** uint256(decimals));
         token.transfer(A2,60000000 * 10 ** uint256(decimals));
         token.transfer(A3,30000000 * 10 ** uint256(decimals));
         token.transfer(A4,60000000 * 10 ** uint256(decimals));
         token.transfer(A5,60000000 * 10 ** uint256(decimals));
         token.transfer(A6,15000000 * 10 ** uint256(decimals));
         token.transfer(A7,15000000 * 10 ** uint256(decimals));
         token.transfer(A8,15000000 * 10 ** uint256(decimals));
         token.transfer(A9,15000000 * 10 ** uint256(decimals));
         token.lockTokensForAs(A1,A2,A3,A4,A5,A6,A7,A8,A9);
     }
     function tokensAllocatedForCs(address C1, address C2, address C3) public onlyOwner
     {
         token.transfer(C1,2500000 * 10 ** uint256(decimals));
         token.transfer(C2,1000000 * 10 ** uint256(decimals));
         token.transfer(C3,1500000 * 10 ** uint256(decimals));
         token.lockTokensForCs(C1,C2,C3);
     }
      function tokensAllocatedForTeamAndReserve(address team) public onlyOwner
     {
         token.transfer(team,63000000 * 10 ** uint256(decimals));
         token.lockTokensForTeamAndReserve(team);
     }
     
     function refundToBuyersIfSoftCapNotReached() public payable onlyOwner
     {
         require(hasEnded());
         require(weiRaised<softCap);
         require(msg.value>=weiRaised);
         refundToBuyers = true;
     }
     
     function getRefund() public 
     {
         require(refundToBuyers == true);
         if (amountSentByBuyers[msg.sender] > 0)
            msg.sender.transfer(amountSentByBuyers[msg.sender]);
     }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"startTimeUnixTimestamp","type":"uint256"}],"name":"changeStartDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"hardCapEthers","type":"uint256"}],"name":"changeHardCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"C1","type":"address"},{"name":"C2","type":"address"},{"name":"C3","type":"address"}],"name":"tokensAllocatedForCs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refundToBuyersIfSoftCapNotReached","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"softCapEthers","type":"uint256"}],"name":"changeSoftCap","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":"minContribution","type":"uint256"}],"name":"changeMinimumContributionForPrivatePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"endTimeUnixTimestamp","type":"uint256"}],"name":"changeEndDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"setPriceRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"F1","type":"address"},{"name":"F2","type":"address"}],"name":"tokensAllocatedForFs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"minContribution","type":"uint256"}],"name":"changeMinimumContributionForPublicPhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"burnUnsoldTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"remainingTokensForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"team","type":"address"}],"name":"tokensAllocatedForTeamAndReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ratePerWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"A1","type":"address"},{"name":"A2","type":"address"},{"name":"A3","type":"address"},{"name":"A4","type":"address"},{"name":"A5","type":"address"},{"name":"A6","type":"address"},{"name":"A7","type":"address"},{"name":"A8","type":"address"},{"name":"A9","type":"address"}],"name":"tokensAllocatedForAs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minContribution","type":"uint256"}],"name":"changeMaximumContributionForPrivatePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"minContribution","type":"uint256"}],"name":"changeMaximumContributionForPublicPhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resumeCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405261c350600455678ac7230489e800006007819055680ad78ebc5ac6200000600855670de0b6b3a7640000600955600a55601a805460ff19908116909155601e8054909116905562dad900601f556002602055341561006157600080fd5b604051606080611bdc83398101604052808051919060200180519190602001805160008054600160a060020a03191633600160a060020a0316179055915050428310156100ad57600080fd5b600160a060020a03821615156100c257600080fd5b6002839055601f5483016003819055839010156100de57600080fd5b60008054600160a060020a03938416600160a060020a03199182161790915568d14042ccd7efd00000601b556904ded51e9cc700600000601c55602054630be420e0600a9190910a908102600b556317280a208102600c556337131f008102600d5563533ce6208102600e55636ab50c108102600f9081556388bf7a10820260105563acbbf880820260115563b2d05e00909102601255605a601355605060149081556046601555603260165560196017819055601891909155556001805492909316911617905550611a26806101b66000396000f30060606040526004361061014f5763ffffffff60e060020a600035041662739f2a811461015a57806324f32f821461017057806325925806146101865780633174cc87146101b15780633197cbb6146101b9578063392087fd146101de5780634042b66f146101f45780634342ffe51461020757806345737b1e1461021d5780636786ed0e146102335780636ff934761461024957806378e979251461026e57806388535e90146102815780638da5cb5b14610297578063940bb344146102c65780639b39f9bf146102d9578063a8351c03146102ec578063b2d5ae44146102ff578063b82fcdeb14610312578063bc7c322c14610331578063ce4ef57714610344578063d9ece4c714610394578063ec8ac4d8146103aa578063ecb70fb7146103be578063f2fde38b146103e5578063f5f5f12314610404578063f6a60d891461041a578063fc0c546a1461042d575b61015833610440565b005b341561016557600080fd5b610158600435610659565b341561017b57600080fd5b610158600435610679565b341561019157600080fd5b610158600160a060020a03600435811690602435811690604435166106b2565b6101586108b8565b34156101c457600080fd5b6101cc610914565b60405190815260200160405180910390f35b34156101e957600080fd5b61015860043561091a565b34156101ff57600080fd5b6101cc610953565b341561021257600080fd5b610158600435610959565b341561022857600080fd5b610158600435610991565b341561023e57600080fd5b6101586004356109b1565b341561025457600080fd5b610158600160a060020a03600435811690602435166109d1565b341561027957600080fd5b6101cc610b4b565b341561028c57600080fd5b610158600435610b51565b34156102a257600080fd5b6102aa610b89565b604051600160a060020a03909116815260200160405180910390f35b34156102d157600080fd5b610158610b98565b34156102e457600080fd5b6101cc610c33565b34156102f757600080fd5b610158610c51565b341561030a57600080fd5b610158610c7b565b341561031d57600080fd5b610158600160a060020a0360043516610cf0565b341561033c57600080fd5b6101cc610deb565b341561034f57600080fd5b610158600160a060020a0360043581169060243581169060443581169060643581169060843581169060a43581169060c43581169060e4358116906101043516610df1565b341561039f57600080fd5b61015860043561131f565b610158600160a060020a0360043516610440565b34156103c957600080fd5b6103d1611357565b604051901515815260200160405180910390f35b34156103f057600080fd5b610158600160a060020a036004351661135f565b341561040f57600080fd5b6101586004356113fa565b341561042557600080fd5b610158611432565b341561043857600080fd5b6102aa611459565b6000808080600160a060020a038516151561045a57600080fd5b601a5460ff161561046a57600080fd5b610472611468565b151561047d57600080fd5b610485611498565b156104ae57600754341015801561049e57506008543411155b15156104a957600080fd5b6104cd565b60095434101580156104c25750600a543411155b15156104cd57600080fd5b601254600654106104dd57600080fd5b3493506104f784662386f26fc1000063ffffffff6114ce16565b925061050e600454846114ea90919063ffffffff16565b91506105198261151c565b905061052b828263ffffffff6119a516565b9150601254610545836006546119a590919063ffffffff16565b111561055057600080fd5b600554610563908563ffffffff6119a516565b600555600154600160a060020a031663a9059cbb868460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105bc57600080fd5b5af115156105c957600080fd5b50505060405180515050600160a060020a038086166000818152601d60205260408082208890559054919291909116907f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad1890879086905191825260208201526040908101905180910390a3600654610647908363ffffffff6119a516565b6006556106526119b4565b5050505050565b60005433600160a060020a0390811691161461067457600080fd5b600255565b60005433600160a060020a0390811691161461069457600080fd5b6106ac81670de0b6b3a764000063ffffffff6114ea16565b601c5550565b60005433600160a060020a039081169116146106cd57600080fd5b600154602054600160a060020a039091169063a9059cbb908590600a0a622625a00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561073257600080fd5b5af1151561073f57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908490600a0a620f42400260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156107ae57600080fd5b5af115156107bb57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908390600a0a6216e3600260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561082a57600080fd5b5af1151561083757600080fd5b50505060405180515050600154600160a060020a031663e22aa47a84848460405160e060020a63ffffffff8616028152600160a060020a03938416600482015291831660248301529091166044820152606401600060405180830381600087803b15156108a357600080fd5b5af115156108b057600080fd5b505050505050565b60005433600160a060020a039081169116146108d357600080fd5b6108db611357565b15156108e657600080fd5b601b54600554106108f657600080fd5b60055434101561090557600080fd5b601e805460ff19166001179055565b60035481565b60005433600160a060020a0390811691161461093557600080fd5b61094d81670de0b6b3a764000063ffffffff6114ea16565b601b5550565b60055481565b60005433600160a060020a0390811691161461097457600080fd5b61098b8166038d7ea4c6800063ffffffff6114ea16565b60075550565b60005433600160a060020a039081169116146109ac57600080fd5b600355565b60005433600160a060020a039081169116146109cc57600080fd5b600455565b60005433600160a060020a039081169116146109ec57600080fd5b600154602054600160a060020a039091169063a9059cbb908490600a0a63055d4a800260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610a5257600080fd5b5af11515610a5f57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908390600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610acf57600080fd5b5af11515610adc57600080fd5b50505060405180515050600154600160a060020a031663b0d81f94838360405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610b3e57600080fd5b5af1151561065257600080fd5b60025481565b60005433600160a060020a03908116911614610b6c57600080fd5b610b838166038d7ea4c6800063ffffffff6114ea16565b60095550565b600054600160a060020a031681565b6000805433600160a060020a03908116911614610bb457600080fd5b610bbc611357565b1515610bc757600080fd5b610bcf610c33565b600154909150600160a060020a03166342966c688260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515610c1a57600080fd5b5af11515610c2757600080fd5b50506012546006555050565b6000610c4c6006546012546119e890919063ffffffff16565b905090565b60005433600160a060020a03908116911614610c6c57600080fd5b601a805460ff19166001179055565b601e5460ff161515600114610c8f57600080fd5b600160a060020a0333166000908152601d60205260408120541115610cee57600160a060020a0333166000818152601d6020526040908190205480156108fc029151600060405180830381858888f193505050501515610cee57600080fd5b565b60005433600160a060020a03908116911614610d0b57600080fd5b600154602054600160a060020a039091169063a9059cbb908390600a0a6303c14dc00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d7157600080fd5b5af11515610d7e57600080fd5b50505060405180515050600154600160a060020a031663565f2da98260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610dd857600080fd5b5af11515610de557600080fd5b50505050565b60045481565b60005433600160a060020a03908116911614610e0c57600080fd5b600154602054600160a060020a039091169063a9059cbb908b90600a0a63055d4a800260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e7257600080fd5b5af11515610e7f57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908a90600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610eef57600080fd5b5af11515610efc57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908990600a0a6301c9c3800260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f6c57600080fd5b5af11515610f7957600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908890600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fe957600080fd5b5af11515610ff657600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908790600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561106657600080fd5b5af1151561107357600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908690600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110e257600080fd5b5af115156110ef57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908590600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561115e57600080fd5b5af1151561116b57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908490600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156111da57600080fd5b5af115156111e757600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908390600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561125657600080fd5b5af1151561126357600080fd5b50505060405180515050600154600160a060020a031663ad4a7bd98a8a8a8a8a8a8a8a8a60405160e060020a63ffffffff8c16028152600160a060020a03998a1660048201529789166024890152958816604488015293871660648701529186166084860152851660a4850152841660c4840152831660e483015290911661010482015261012401600060405180830381600087803b151561130457600080fd5b5af1151561131157600080fd5b505050505050505050505050565b60005433600160a060020a0390811691161461133a57600080fd5b6113518166038d7ea4c6800063ffffffff6114ea16565b60085550565b600354421190565b60005433600160a060020a0390811691161461137a57600080fd5b600160a060020a038116151561138f57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461141557600080fd5b61142c8166038d7ea4c6800063ffffffff6114ea16565b600a5550565b60005433600160a060020a0390811691161461144d57600080fd5b601a805460ff19169055565b600154600160a060020a031681565b6000806000600254421015801561148157506003544211155b9150503415158180156114915750805b9250505090565b6000806114b0600254426119e890919063ffffffff16565b905062278d0081116114c557600191506114ca565b600091505b5090565b60008082848115156114dc57fe5b0490508091505b5092915050565b6000808315156114fd57600091506114e3565b5082820282848281151561150d57fe5b041461151557fe5b9392505050565b600254600090420381611538826201518063ffffffff6114ce16565b905060058110156117e057600b5460065410156115ae5760135461156390859063ffffffff6114ea16565b925061157683606463ffffffff6114ce16565b600b5490935061159e61158f868663ffffffff6119a516565b6006549063ffffffff6119a516565b11156115a957600080fd5b6117db565b600b54600654101580156115c55750600c54600654105b1561160a576014546115de90859063ffffffff6114ea16565b92506115f183606463ffffffff6114ce16565b600c5490935061159e61158f868663ffffffff6119a516565b600c54600654101580156116215750600d54600654105b156116665760155461163a90859063ffffffff6114ea16565b925061164d83606463ffffffff6114ce16565b600d5490935061159e61158f868663ffffffff6119a516565b600d546006541015801561167d5750600e54600654105b156116c25760165461169690859063ffffffff6114ea16565b92506116a983606463ffffffff6114ce16565b600e5490935061159e61158f868663ffffffff6119a516565b600e54600654101580156116d95750600f54600654105b1561171e576017546116f290859063ffffffff6114ea16565b925061170583606463ffffffff6114ce16565b600f5490935061159e61158f868663ffffffff6119a516565b600f54600654101580156117355750601054600654105b1561177a5760185461174e90859063ffffffff6114ea16565b925061176183606463ffffffff6114ce16565b60105490935061159e61158f868663ffffffff6119a516565b601054600654101580156117915750601154600654105b156117d6576019546117aa90859063ffffffff6114ea16565b92506117bd83606463ffffffff6114ce16565b60115490935061159e61158f868663ffffffff6119a516565b600092505b61199e565b600581101580156117f15750601081105b1561182557600b54600654101580156115c55750600c54600654101561160a576014546115de90859063ffffffff6114ea16565b601081101580156118365750602481105b1561186a57600c54600654101580156116215750600d5460065410156116665760155461163a90859063ffffffff6114ea16565b6024811015801561187b5750606781105b1561188557600080fd5b606781101580156118965750606d81105b156118ca57600d546006541015801561167d5750600e5460065410156116c25760165461169690859063ffffffff6114ea16565b606d81101580156118db5750607d81105b1561190f57600e54600654101580156116d95750600f54600654101561171e576017546116f290859063ffffffff6114ea16565b607d81101580156119205750609281105b1561195457600f54600654101580156117355750601054600654101561177a5760185461174e90859063ffffffff6114ea16565b60928110158015611965575060a781105b156119995760105460065410158015611791575060115460065410156117d6576019546117aa90859063ffffffff6114ea16565b600092505b5050919050565b60008282018381101561151557fe5b600054600160a060020a03163480156108fc0290604051600060405180830381858888f193505050501515610cee57600080fd5b6000828211156119f457fe5b509003905600a165627a7a723058207f1951f6238f0a2b1ef4653353a2322e1f1434c1e82e8ef382e72b968a08fae60029000000000000000000000000000000000000000000000000000000005ab8e0c0000000000000000000000000e05dd64204ad48076077266bb52093a427b92f93000000000000000000000000e2dcd10f43cd9229f253e5147a793e6f64283f2b

Deployed Bytecode

0x60606040526004361061014f5763ffffffff60e060020a600035041662739f2a811461015a57806324f32f821461017057806325925806146101865780633174cc87146101b15780633197cbb6146101b9578063392087fd146101de5780634042b66f146101f45780634342ffe51461020757806345737b1e1461021d5780636786ed0e146102335780636ff934761461024957806378e979251461026e57806388535e90146102815780638da5cb5b14610297578063940bb344146102c65780639b39f9bf146102d9578063a8351c03146102ec578063b2d5ae44146102ff578063b82fcdeb14610312578063bc7c322c14610331578063ce4ef57714610344578063d9ece4c714610394578063ec8ac4d8146103aa578063ecb70fb7146103be578063f2fde38b146103e5578063f5f5f12314610404578063f6a60d891461041a578063fc0c546a1461042d575b61015833610440565b005b341561016557600080fd5b610158600435610659565b341561017b57600080fd5b610158600435610679565b341561019157600080fd5b610158600160a060020a03600435811690602435811690604435166106b2565b6101586108b8565b34156101c457600080fd5b6101cc610914565b60405190815260200160405180910390f35b34156101e957600080fd5b61015860043561091a565b34156101ff57600080fd5b6101cc610953565b341561021257600080fd5b610158600435610959565b341561022857600080fd5b610158600435610991565b341561023e57600080fd5b6101586004356109b1565b341561025457600080fd5b610158600160a060020a03600435811690602435166109d1565b341561027957600080fd5b6101cc610b4b565b341561028c57600080fd5b610158600435610b51565b34156102a257600080fd5b6102aa610b89565b604051600160a060020a03909116815260200160405180910390f35b34156102d157600080fd5b610158610b98565b34156102e457600080fd5b6101cc610c33565b34156102f757600080fd5b610158610c51565b341561030a57600080fd5b610158610c7b565b341561031d57600080fd5b610158600160a060020a0360043516610cf0565b341561033c57600080fd5b6101cc610deb565b341561034f57600080fd5b610158600160a060020a0360043581169060243581169060443581169060643581169060843581169060a43581169060c43581169060e4358116906101043516610df1565b341561039f57600080fd5b61015860043561131f565b610158600160a060020a0360043516610440565b34156103c957600080fd5b6103d1611357565b604051901515815260200160405180910390f35b34156103f057600080fd5b610158600160a060020a036004351661135f565b341561040f57600080fd5b6101586004356113fa565b341561042557600080fd5b610158611432565b341561043857600080fd5b6102aa611459565b6000808080600160a060020a038516151561045a57600080fd5b601a5460ff161561046a57600080fd5b610472611468565b151561047d57600080fd5b610485611498565b156104ae57600754341015801561049e57506008543411155b15156104a957600080fd5b6104cd565b60095434101580156104c25750600a543411155b15156104cd57600080fd5b601254600654106104dd57600080fd5b3493506104f784662386f26fc1000063ffffffff6114ce16565b925061050e600454846114ea90919063ffffffff16565b91506105198261151c565b905061052b828263ffffffff6119a516565b9150601254610545836006546119a590919063ffffffff16565b111561055057600080fd5b600554610563908563ffffffff6119a516565b600555600154600160a060020a031663a9059cbb868460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105bc57600080fd5b5af115156105c957600080fd5b50505060405180515050600160a060020a038086166000818152601d60205260408082208890559054919291909116907f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad1890879086905191825260208201526040908101905180910390a3600654610647908363ffffffff6119a516565b6006556106526119b4565b5050505050565b60005433600160a060020a0390811691161461067457600080fd5b600255565b60005433600160a060020a0390811691161461069457600080fd5b6106ac81670de0b6b3a764000063ffffffff6114ea16565b601c5550565b60005433600160a060020a039081169116146106cd57600080fd5b600154602054600160a060020a039091169063a9059cbb908590600a0a622625a00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561073257600080fd5b5af1151561073f57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908490600a0a620f42400260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156107ae57600080fd5b5af115156107bb57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908390600a0a6216e3600260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561082a57600080fd5b5af1151561083757600080fd5b50505060405180515050600154600160a060020a031663e22aa47a84848460405160e060020a63ffffffff8616028152600160a060020a03938416600482015291831660248301529091166044820152606401600060405180830381600087803b15156108a357600080fd5b5af115156108b057600080fd5b505050505050565b60005433600160a060020a039081169116146108d357600080fd5b6108db611357565b15156108e657600080fd5b601b54600554106108f657600080fd5b60055434101561090557600080fd5b601e805460ff19166001179055565b60035481565b60005433600160a060020a0390811691161461093557600080fd5b61094d81670de0b6b3a764000063ffffffff6114ea16565b601b5550565b60055481565b60005433600160a060020a0390811691161461097457600080fd5b61098b8166038d7ea4c6800063ffffffff6114ea16565b60075550565b60005433600160a060020a039081169116146109ac57600080fd5b600355565b60005433600160a060020a039081169116146109cc57600080fd5b600455565b60005433600160a060020a039081169116146109ec57600080fd5b600154602054600160a060020a039091169063a9059cbb908490600a0a63055d4a800260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610a5257600080fd5b5af11515610a5f57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908390600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610acf57600080fd5b5af11515610adc57600080fd5b50505060405180515050600154600160a060020a031663b0d81f94838360405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610b3e57600080fd5b5af1151561065257600080fd5b60025481565b60005433600160a060020a03908116911614610b6c57600080fd5b610b838166038d7ea4c6800063ffffffff6114ea16565b60095550565b600054600160a060020a031681565b6000805433600160a060020a03908116911614610bb457600080fd5b610bbc611357565b1515610bc757600080fd5b610bcf610c33565b600154909150600160a060020a03166342966c688260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515610c1a57600080fd5b5af11515610c2757600080fd5b50506012546006555050565b6000610c4c6006546012546119e890919063ffffffff16565b905090565b60005433600160a060020a03908116911614610c6c57600080fd5b601a805460ff19166001179055565b601e5460ff161515600114610c8f57600080fd5b600160a060020a0333166000908152601d60205260408120541115610cee57600160a060020a0333166000818152601d6020526040908190205480156108fc029151600060405180830381858888f193505050501515610cee57600080fd5b565b60005433600160a060020a03908116911614610d0b57600080fd5b600154602054600160a060020a039091169063a9059cbb908390600a0a6303c14dc00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d7157600080fd5b5af11515610d7e57600080fd5b50505060405180515050600154600160a060020a031663565f2da98260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610dd857600080fd5b5af11515610de557600080fd5b50505050565b60045481565b60005433600160a060020a03908116911614610e0c57600080fd5b600154602054600160a060020a039091169063a9059cbb908b90600a0a63055d4a800260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e7257600080fd5b5af11515610e7f57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908a90600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610eef57600080fd5b5af11515610efc57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908990600a0a6301c9c3800260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f6c57600080fd5b5af11515610f7957600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908890600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fe957600080fd5b5af11515610ff657600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908790600a0a63039387000260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561106657600080fd5b5af1151561107357600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908690600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110e257600080fd5b5af115156110ef57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908590600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561115e57600080fd5b5af1151561116b57600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908490600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156111da57600080fd5b5af115156111e757600080fd5b50505060405180515050600154602054600160a060020a039091169063a9059cbb908390600a0a62e4e1c00260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561125657600080fd5b5af1151561126357600080fd5b50505060405180515050600154600160a060020a031663ad4a7bd98a8a8a8a8a8a8a8a8a60405160e060020a63ffffffff8c16028152600160a060020a03998a1660048201529789166024890152958816604488015293871660648701529186166084860152851660a4850152841660c4840152831660e483015290911661010482015261012401600060405180830381600087803b151561130457600080fd5b5af1151561131157600080fd5b505050505050505050505050565b60005433600160a060020a0390811691161461133a57600080fd5b6113518166038d7ea4c6800063ffffffff6114ea16565b60085550565b600354421190565b60005433600160a060020a0390811691161461137a57600080fd5b600160a060020a038116151561138f57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461141557600080fd5b61142c8166038d7ea4c6800063ffffffff6114ea16565b600a5550565b60005433600160a060020a0390811691161461144d57600080fd5b601a805460ff19169055565b600154600160a060020a031681565b6000806000600254421015801561148157506003544211155b9150503415158180156114915750805b9250505090565b6000806114b0600254426119e890919063ffffffff16565b905062278d0081116114c557600191506114ca565b600091505b5090565b60008082848115156114dc57fe5b0490508091505b5092915050565b6000808315156114fd57600091506114e3565b5082820282848281151561150d57fe5b041461151557fe5b9392505050565b600254600090420381611538826201518063ffffffff6114ce16565b905060058110156117e057600b5460065410156115ae5760135461156390859063ffffffff6114ea16565b925061157683606463ffffffff6114ce16565b600b5490935061159e61158f868663ffffffff6119a516565b6006549063ffffffff6119a516565b11156115a957600080fd5b6117db565b600b54600654101580156115c55750600c54600654105b1561160a576014546115de90859063ffffffff6114ea16565b92506115f183606463ffffffff6114ce16565b600c5490935061159e61158f868663ffffffff6119a516565b600c54600654101580156116215750600d54600654105b156116665760155461163a90859063ffffffff6114ea16565b925061164d83606463ffffffff6114ce16565b600d5490935061159e61158f868663ffffffff6119a516565b600d546006541015801561167d5750600e54600654105b156116c25760165461169690859063ffffffff6114ea16565b92506116a983606463ffffffff6114ce16565b600e5490935061159e61158f868663ffffffff6119a516565b600e54600654101580156116d95750600f54600654105b1561171e576017546116f290859063ffffffff6114ea16565b925061170583606463ffffffff6114ce16565b600f5490935061159e61158f868663ffffffff6119a516565b600f54600654101580156117355750601054600654105b1561177a5760185461174e90859063ffffffff6114ea16565b925061176183606463ffffffff6114ce16565b60105490935061159e61158f868663ffffffff6119a516565b601054600654101580156117915750601154600654105b156117d6576019546117aa90859063ffffffff6114ea16565b92506117bd83606463ffffffff6114ce16565b60115490935061159e61158f868663ffffffff6119a516565b600092505b61199e565b600581101580156117f15750601081105b1561182557600b54600654101580156115c55750600c54600654101561160a576014546115de90859063ffffffff6114ea16565b601081101580156118365750602481105b1561186a57600c54600654101580156116215750600d5460065410156116665760155461163a90859063ffffffff6114ea16565b6024811015801561187b5750606781105b1561188557600080fd5b606781101580156118965750606d81105b156118ca57600d546006541015801561167d5750600e5460065410156116c25760165461169690859063ffffffff6114ea16565b606d81101580156118db5750607d81105b1561190f57600e54600654101580156116d95750600f54600654101561171e576017546116f290859063ffffffff6114ea16565b607d81101580156119205750609281105b1561195457600f54600654101580156117355750601054600654101561177a5760185461174e90859063ffffffff6114ea16565b60928110158015611965575060a781105b156119995760105460065410158015611791575060115460065410156117d6576019546117aa90859063ffffffff6114ea16565b600092505b5050919050565b60008282018381101561151557fe5b600054600160a060020a03163480156108fc0290604051600060405180830381858888f193505050501515610cee57600080fd5b6000828211156119f457fe5b509003905600a165627a7a723058207f1951f6238f0a2b1ef4653353a2322e1f1434c1e82e8ef382e72b968a08fae60029

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

000000000000000000000000000000000000000000000000000000005ab8e0c0000000000000000000000000e05dd64204ad48076077266bb52093a427b92f93000000000000000000000000e2dcd10f43cd9229f253e5147a793e6f64283f2b

-----Decoded View---------------
Arg [0] : _startTime (uint256): 1522065600
Arg [1] : _wallet (address): 0xE05dD64204aD48076077266bb52093A427b92f93
Arg [2] : _tokenAddress (address): 0xE2dCD10f43cD9229F253E5147A793E6F64283F2B

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005ab8e0c0
Arg [1] : 000000000000000000000000e05dd64204ad48076077266bb52093a427b92f93
Arg [2] : 000000000000000000000000e2dcd10f43cd9229f253e5147a793e6f64283f2b


Swarm Source

bzzr://7f1951f6238f0a2b1ef4653353a2322e1f1434c1e82e8ef382e72b968a08fae6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.