Sponsored:   Temco - Join the Largest VC Backed ICO on the Bitcoin Network! TEMCO KYC Whitelist Starts Now!!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 7 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x961863188d6c78a63bd9bbed70c58cafadad7c18at txn 0xd6f5c777305db595b2e2eb7909fa538efd22a202660182d077e9b81613747dc2
Token Balance:
 Latest 7 txns

TxHash Age From To Value [TxFee]
0x26c691d03e599765df59c5cf62ec0aaaed54c790b6b69166f16b362d5c11062831 days 22 hrs ago0xe7cd23d237db2d547289bd781de2499ea889d38d  IN   0x06971d87387687a355c93de18f664663b269e06d0.2 Ether0.00159957
0x53c4a0f9c8675516710ed8085522745c2bb95fe2a3b6d1fb9227070e67d10c0243 days 16 hrs ago0x659f825b5952410f4cd5a37b35220b32d6950409  IN   0x06971d87387687a355c93de18f664663b269e06d0.2 Ether0.00159957
0xe8d2f30736586cbcc8232d380c17c6c3b93a135770e50a41ee3cd6625e623ef755 days 17 hrs ago0xd30c6a9eab85a75e67f0b65d2a18d912acbc755e  IN   0x06971d87387687a355c93de18f664663b269e06d0 Ether0.000245094
0x543f71210f38cef47d8bdf64d53a10945cddff607e5f0367db606b09b699389059 days 21 hrs ago0xcf042480a21582392df435d3afb2c3c9a78eef1f  IN   0x06971d87387687a355c93de18f664663b269e06d0.1 Ether0.00170521
0xea23c39e4ef579136032da7a81989d63b01e42e34a25a6e06929a71ef38c59e359 days 21 hrs ago0xcf042480a21582392df435d3afb2c3c9a78eef1f  IN   0x06971d87387687a355c93de18f664663b269e06d0.1 Ether0.0018
0x2b51278569010376db8e3f87102bbe30a6d2ab11e87e41177a4e5e068762899e72 days 15 hrs ago0x961863188d6c78a63bd9bbed70c58cafadad7c18  IN   0x06971d87387687a355c93de18f664663b269e06d0 Ether0.000122964
0xd6f5c777305db595b2e2eb7909fa538efd22a202660182d077e9b81613747dc272 days 15 hrs ago0x961863188d6c78a63bd9bbed70c58cafadad7c18  IN    Contract Creation0 Ether0.00453284315
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 3 Internal Transactions

ParentTxHash Block Age From To Value
0x26c691d03e599765df59c5cf62ec0aaaed54c790b6b69166f16b362d5c110628653609631 days 22 hrs ago0x06971d87387687a355c93de18f664663b269e06d0xd30c6a9eab85a75e67f0b65d2a18d912acbc755e0.2 Ether
0x53c4a0f9c8675516710ed8085522745c2bb95fe2a3b6d1fb9227070e67d10c02646352343 days 16 hrs ago0x06971d87387687a355c93de18f664663b269e06d0xd30c6a9eab85a75e67f0b65d2a18d912acbc755e0.2 Ether
0x543f71210f38cef47d8bdf64d53a10945cddff607e5f0367db606b09b6993890636471159 days 21 hrs ago0x06971d87387687a355c93de18f664663b269e06d0xd30c6a9eab85a75e67f0b65d2a18d912acbc755e0.1 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: EzeCrowdsale
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.24;


/**
 * @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.
   */
  constructor() 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; 
     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 EzeCrowdsale 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 ratePerWeiInSelfDrop = 60000;
  uint256 public ratePerWeiInPrivateSale = 30000;
  uint256 public ratePerWeiInPreICO = 20000;
  uint256 public ratePerWeiInMainICO = 15000;

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

  uint256 public TOKENS_SOLD;
  
  uint256 maxTokensToSale;
  
  uint256 bonusInSelfDrop = 20;
  uint256 bonusInPrivateSale = 10;
  uint256 bonusInPreICO = 5;
  uint256 bonusInMainICO = 2;
  
  bool isCrowdsalePaused = false;
  
  uint256 totalDurationInDays = 213 days;
  
  /**
   * 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);

  constructor(uint256 _startTime, address _wallet, address _tokenAddress) public 
  {
    require(_startTime >=now);
    require(_wallet != 0x0);

    startTime = _startTime;  
    endTime = startTime + totalDurationInDays;
    require(endTime >= startTime);
   
    owner = _wallet;
    
    maxTokensToSale = uint(15000000000).mul( 10 ** uint256(18));
   
    token = TokenInterface(_tokenAddress);
  }
  
  
   // fallback function can be used to buy tokens
   function () public  payable {
     buyTokens(msg.sender);
    }
    
    function calculateTokens(uint value) internal view returns (uint256 tokens) 
    {
        uint256 timeElapsed = now - startTime;
        uint256 timeElapsedInDays = timeElapsed.div(1 days);
        uint256 bonus = 0;
        //Phase 1 (30 days)
        if (timeElapsedInDays <30)
        {
            tokens = value.mul(ratePerWeiInSelfDrop);
            bonus = tokens.mul(bonusInSelfDrop); 
            bonus = bonus.div(100);
            tokens = tokens.add(bonus);
            require (TOKENS_SOLD.add(tokens) <= maxTokensToSale);
        }
        //Phase 2 (31 days)
        else if (timeElapsedInDays >=30 && timeElapsedInDays <61)
        {
            tokens = value.mul(ratePerWeiInPrivateSale);
            bonus = tokens.mul(bonusInPrivateSale); 
            bonus = bonus.div(100);
            tokens = tokens.add(bonus);
            require (TOKENS_SOLD.add(tokens) <= maxTokensToSale);
        }
       
        //Phase 3 (30 days)
        else if (timeElapsedInDays >=61 && timeElapsedInDays <91)
        {
            tokens = value.mul(ratePerWeiInPreICO);
            bonus = tokens.mul(bonusInPreICO); 
            bonus = bonus.div(100);
            tokens = tokens.add(bonus);
            require (TOKENS_SOLD.add(tokens) <= maxTokensToSale);
        }
        
        //Phase 4 (122 days)
        else if (timeElapsedInDays >=91 && timeElapsedInDays <213)
        {
            tokens = value.mul(ratePerWeiInMainICO);
            bonus = tokens.mul(bonusInMainICO); 
            bonus = bonus.div(100);
            tokens = tokens.add(bonus);
            require (TOKENS_SOLD.add(tokens) <= maxTokensToSale);
        }
        else 
        {
            bonus = 0;
        }
    }

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

    
    require(TOKENS_SOLD<maxTokensToSale);
   
    uint256 weiAmount = msg.value;
    
    uint256 tokens = calculateTokens(weiAmount);
    
    // update state
    weiRaised = weiRaised.add(msg.value);
    
    token.transfer(beneficiary,tokens);
    emit TokenPurchase(owner, beneficiary, msg.value, 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 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 takeTokensBack() public onlyOwner
     {
         uint remainingTokensInTheContract = token.balanceOf(address(this));
         token.transfer(owner,remainingTokensInTheContract);
     }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"startTimeUnixTimestamp","type":"uint256"}],"name":"changeStartDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_SOLD","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":"ratePerWeiInPrivateSale","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":"endTimeUnixTimestamp","type":"uint256"}],"name":"changeEndDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"takeTokensBack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ratePerWeiInSelfDrop","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ratePerWeiInPreICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ratePerWeiInMainICO","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":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"}]

  Contract Creation Code Switch To Opcodes View
608060405261ea606004556175306005908155614e20600655613a986007556014600b55600a600c55600d556002600e55600f805460ff19169055630118cf8060105534801561004e57600080fd5b50604051606080610ad283398101604090815281516020830151919092015160008054600160a060020a031916331790554283101561008c57600080fd5b600160a060020a03821615156100a157600080fd5b6002839055601054830160038190558311156100bc57600080fd5b60008054600160a060020a031916600160a060020a0384161790556100fb64037e11d600670de0b6b3a764000064010000000061012681026109101704565b600a5560018054600160a060020a031916600160a060020a03929092169190911790555061015c9050565b6000808315156101395760009150610155565b5082820282848281151561014957fe5b041461015157fe5b8091505b5092915050565b6109678061016b6000396000f3006080604052600436106100fa5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662739f2a81146101055780630c8f167e1461011d5780633197cbb61461014457806334cc4b8f146101595780634042b66f1461016e57806345737b1e1461018357806358c6f08b1461019b57806378e97925146101b05780638da5cb5b146101c5578063a1e03f57146101f6578063a8351c031461020b578063b9e5e2c414610220578063caf306c214610235578063ec8ac4d81461024a578063ecb70fb71461025e578063f2fde38b14610287578063f6a60d89146102a8578063fc0c546a146102bd575b610103336102d2565b005b34801561011157600080fd5b50610103600435610449565b34801561012957600080fd5b50610132610465565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013261046b565b34801561016557600080fd5b50610132610471565b34801561017a57600080fd5b50610132610477565b34801561018f57600080fd5b5061010360043561047d565b3480156101a757600080fd5b50610103610499565b3480156101bc57600080fd5b506101326105e2565b3480156101d157600080fd5b506101da6105e8565b60408051600160a060020a039092168252519081900360200190f35b34801561020257600080fd5b506101326105f7565b34801561021757600080fd5b506101036105fd565b34801561022c57600080fd5b50610132610623565b34801561024157600080fd5b50610132610629565b610103600160a060020a03600435166102d2565b34801561026a57600080fd5b5061027361062f565b604080519115158252519081900360200190f35b34801561029357600080fd5b50610103600160a060020a0360043516610637565b3480156102b457600080fd5b506101036106cb565b3480156102c957600080fd5b506101da6106ee565b600080600160a060020a03831615156102ea57600080fd5b600f5460ff16156102fa57600080fd5b6103026106fd565b151561030d57600080fd5b600a546009541061031d57600080fd5b3491506103298261072d565b60085490915061033f903463ffffffff6108a216565b600855600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156103b157600080fd5b505af11580156103c5573d6000803e3d6000fd5b505050506040513d60208110156103db57600080fd5b505060005460408051348152602081018490528151600160a060020a038088169416927f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18928290030190a3600954610439908263ffffffff6108a216565b6009556104446108bc565b505050565b600054600160a060020a0316331461046057600080fd5b600255565b60095481565b60035481565b60055481565b60085481565b600054600160a060020a0316331461049457600080fd5b600355565b60008054600160a060020a031633146104b157600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561051757600080fd5b505af115801561052b573d6000803e3d6000fd5b505050506040513d602081101561054157600080fd5b505160015460008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101869052905194955092169263a9059cbb926044808201936020939283900390910190829087803b1580156105b857600080fd5b505af11580156105cc573d6000803e3d6000fd5b505050506040513d602081101561044457600080fd5b60025481565b600054600160a060020a031681565b60045481565b600054600160a060020a0316331461061457600080fd5b600f805460ff19166001179055565b60065481565b60075481565b600354421190565b600054600160a060020a0316331461064e57600080fd5b600160a060020a038116151561066357600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106e257600080fd5b600f805460ff19169055565b600154600160a060020a031681565b6000806000600254421015801561071657506003544211155b9150503415158180156107265750805b9250505090565b6002546000904203818061074a836201518063ffffffff6108f916565b915060009050601e8210156107d35760045461076d90869063ffffffff61091016565b9350610784600b548561091090919063ffffffff16565b905061079781606463ffffffff6108f916565b90506107a9848263ffffffff6108a216565b9350600a546107c3856009546108a290919063ffffffff16565b11156107ce57600080fd5b61089a565b601e82101580156107e45750603d82105b15610814576005546107fd90869063ffffffff61091016565b9350610784600c548561091090919063ffffffff16565b603d82101580156108255750605b82105b156108555760065461083e90869063ffffffff61091016565b9350610784600d548561091090919063ffffffff16565b605b8210158015610866575060d582105b156108965760075461087f90869063ffffffff61091016565b9350610784600e548561091090919063ffffffff16565b5060005b505050919050565b6000828201838110156108b157fe5b8091505b5092915050565b60008054604051600160a060020a03909116913480156108fc02929091818181858888f193505050501580156108f6573d6000803e3d6000fd5b50565b600080828481151561090757fe5b04949350505050565b60008083151561092357600091506108b5565b5082820282848281151561093357fe5b04146108b157fe00a165627a7a72305820ab401e1b43c519239bf1b897c1760d85f3aa7ef8e307329a8c172930f99f95790029000000000000000000000000000000000000000000000000000000005ba2e300000000000000000000000000961863188d6c78a63bd9bbed70c58cafadad7c180000000000000000000000002c4a9bb2eab3d1f9b8bdbff78b74f6f399f75b4e

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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005ba2e300
Arg [1] : 000000000000000000000000961863188d6c78a63bd9bbed70c58cafadad7c18
Arg [2] : 0000000000000000000000002c4a9bb2eab3d1f9b8bdbff78b74f6f399f75b4e


   Swarm Source:
bzzr://ab401e1b43c519239bf1b897c1760d85f3aa7ef8e307329a8c172930f99f9579

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.