ETH Price: $3,131.46 (-4.37%)

Contract

0x5824D62F4f3C875C906F4E16d488BeD05a87A2Ea
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer107947672020-09-04 12:12:301532 days ago1599221550IN
0x5824D62F...05a87A2Ea
0.225 ETH0.01632122179
Transfer107947392020-09-04 12:05:141532 days ago1599221114IN
0x5824D62F...05a87A2Ea
0.225 ETH0.01923898211
Transfer98205752020-04-06 20:13:571682 days ago1586204037IN
0x5824D62F...05a87A2Ea
0.01 ETH0.0045250
Transfer98205512020-04-06 20:07:501682 days ago1586203670IN
0x5824D62F...05a87A2Ea
0.03 ETH0.00455950
Transfer98205052020-04-06 19:56:441682 days ago1586203004IN
0x5824D62F...05a87A2Ea
0.04 ETH0.000638267
Transfer98204972020-04-06 19:54:471682 days ago1586202887IN
0x5824D62F...05a87A2Ea
0.04301869 ETH0.000410314.5
Transfer95978052020-03-03 11:07:391717 days ago1583233659IN
0x5824D62F...05a87A2Ea
0.237 ETH0.00090410
Transfer91071952019-12-14 21:19:141796 days ago1576358354IN
0x5824D62F...05a87A2Ea
0.19284712 ETH0.00054246
Transfer91071772019-12-14 21:13:301796 days ago1576358010IN
0x5824D62F...05a87A2Ea
0.39361776 ETH0.00115555
Transfer91071662019-12-14 21:09:571796 days ago1576357797IN
0x5824D62F...05a87A2Ea
0.39361776 ETH0.00052525
Transfer91071562019-12-14 21:07:501796 days ago1576357670IN
0x5824D62F...05a87A2Ea
0.39361776 ETH0.0001899
Transfer91071432019-12-14 21:04:361796 days ago1576357476IN
0x5824D62F...05a87A2Ea
0.39361776 ETH0.0001055
Transfer91071252019-12-14 21:02:001796 days ago1576357320IN
0x5824D62F...05a87A2Ea
0.39361776 ETH0.0000422
Transfer91070772019-12-14 20:47:291796 days ago1576356449IN
0x5824D62F...05a87A2Ea
0.39350713 ETH0.0000211
Transfer91070542019-12-14 20:41:211796 days ago1576356081IN
0x5824D62F...05a87A2Ea
0.38661605 ETH0.0001266
Transfer91070382019-12-14 20:34:461796 days ago1576355686IN
0x5824D62F...05a87A2Ea
0.38634447 ETH0.0000211
Transfer91070162019-12-14 20:28:131796 days ago1576355293IN
0x5824D62F...05a87A2Ea
0.38607328 ETH0.00002311.1
Transfer88228632019-10-27 17:19:251845 days ago1572196765IN
0x5824D62F...05a87A2Ea
0.30628724 ETH0.0003355
Transfer87200902019-10-11 11:23:531861 days ago1570793033IN
0x5824D62F...05a87A2Ea
0 ETH0.000173768.1
Transfer86433512019-09-29 11:15:181873 days ago1569755718IN
0x5824D62F...05a87A2Ea
0.329528 ETH0.0013278116.19288389
Transfer86433032019-09-29 11:06:111873 days ago1569755171IN
0x5824D62F...05a87A2Ea
0.32373684 ETH0.00031515
Transfer82485062019-07-29 23:36:061934 days ago1564443366IN
0x5824D62F...05a87A2Ea
2.375 ETH0.0016420
Transfer82093832019-07-23 21:33:341940 days ago1563917614IN
0x5824D62F...05a87A2Ea
1 ETH0.0006710
Transfer81758772019-07-18 16:56:051946 days ago1563468965IN
0x5824D62F...05a87A2Ea
0.19463271 ETH0.0003284
Transfer80306232019-06-26 1:21:591968 days ago1561512119IN
0x5824D62F...05a87A2Ea
0.15657 ETH0.0006710
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
98205752020-04-06 20:13:571682 days ago1586204037
0x5824D62F...05a87A2Ea
0.01 ETH
95978052020-03-03 11:07:391717 days ago1583233659
0x5824D62F...05a87A2Ea
0.237 ETH
91071952019-12-14 21:19:141796 days ago1576358354
0x5824D62F...05a87A2Ea
0.19284712 ETH
88228632019-10-27 17:19:251845 days ago1572196765
0x5824D62F...05a87A2Ea
0.30628724 ETH
86433512019-09-29 11:15:181873 days ago1569755718
0x5824D62F...05a87A2Ea
0.329528 ETH
82485062019-07-29 23:36:061934 days ago1564443366
0x5824D62F...05a87A2Ea
2.375 ETH
82093832019-07-23 21:33:341940 days ago1563917614
0x5824D62F...05a87A2Ea
1 ETH
81758772019-07-18 16:56:051946 days ago1563468965
0x5824D62F...05a87A2Ea
0.19463271 ETH
80306232019-06-26 1:21:591968 days ago1561512119
0x5824D62F...05a87A2Ea
0.15657 ETH
77671992019-05-15 20:54:562009 days ago1557953696
0x5824D62F...05a87A2Ea
1.10729166 ETH
77670822019-05-15 20:29:302009 days ago1557952170
0x5824D62F...05a87A2Ea
0.04582187 ETH
77301552019-05-10 2:36:292015 days ago1557455789
0x5824D62F...05a87A2Ea
0.25928 ETH
77036762019-05-05 22:49:132019 days ago1557096553
0x5824D62F...05a87A2Ea
0.03478 ETH
76584572019-04-28 21:57:092026 days ago1556488629
0x5824D62F...05a87A2Ea
0.08537 ETH
75810032019-04-16 20:15:162038 days ago1555445716
0x5824D62F...05a87A2Ea
1.524 ETH
75753462019-04-15 22:59:452039 days ago1555369185
0x5824D62F...05a87A2Ea
1.5270922 ETH
75472772019-04-11 14:29:572044 days ago1554992997
0x5824D62F...05a87A2Ea
0.5 ETH
75408342019-04-10 14:13:302045 days ago1554905610
0x5824D62F...05a87A2Ea
2.14761057 ETH
75396942019-04-10 10:03:062045 days ago1554890586
0x5824D62F...05a87A2Ea
0.9903322 ETH
75305862019-04-09 0:02:422046 days ago1554768162
0x5824D62F...05a87A2Ea
0.29234 ETH
75232452019-04-07 20:44:482047 days ago1554669888
0x5824D62F...05a87A2Ea
0.4 ETH
75223302019-04-07 17:23:302048 days ago1554657810
0x5824D62F...05a87A2Ea
1.17858 ETH
75027812019-04-04 16:36:242051 days ago1554395784
0x5824D62F...05a87A2Ea
3.51030321 ETH
74968052019-04-03 18:15:452051 days ago1554315345
0x5824D62F...05a87A2Ea
3.19140294 ETH
74965892019-04-03 17:19:172052 days ago1554311957
0x5824D62F...05a87A2Ea
0.58238404 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Crowdsale

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-02
*/

pragma solidity ^0.4.24;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
     * @dev Multiplies two numbers, throws on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns(uint256 c) {
        // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
     * @dev Integer division of two numbers, truncating the quotient.
     */
    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 a / b;
    }

    /**
     * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns(uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
     * @dev Adds two numbers, throws on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns(uint256 c) {
        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 OwnershipRenounced(address indexed previousOwner);
    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 relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(owner);
        owner = address(0);
    }

    /**
     * @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 {
        _transferOwnership(_newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address _newOwner) internal {
        require(_newOwner != address(0));
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    function safeTransfer(ERC20 token, address to, uint256 value) internal {
        require(token.transfer(to, value));
    }
}

/**
 * @title Oraclize contract interface (returns uint256 USD)
 */
contract OraclizeInterface {
  function getEthPrice() public view returns (uint256);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
  function totalSupply() public view returns (uint256);

  function balanceOf(address _who) public view returns (uint256);

  function allowance(address _owner, address _spender)
    public view returns (uint256);

  function transfer(address _to, uint256 _value) public returns (bool);

  function approve(address _spender, uint256 _value)
    public returns (bool);

  function transferFrom(address _from, address _to, uint256 _value)
    public returns (bool);

  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );

  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20 {
  using SafeMath for uint256;

  mapping (address => uint256) private balances;

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

  uint256 private totalSupply_;

  /**
  * @dev Total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @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) {
    return balances[_owner];
  }

  /**
   * @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 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(_value <= balances[msg.sender]);
    require(_to != address(0));

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

  /**
   * @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(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);
    require(_to != address(0));

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

  /**
   * @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, uint256 _addedValue ) public returns (bool) {
    allowed[msg.sender][_spender] = (
      allowed[msg.sender][_spender].add(_addedValue));
    emit 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, uint256 _subtractedValue ) public returns (bool) {
    uint256 oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue >= oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Internal function that mints an amount of the token and assigns it to
   * an account. This encapsulates the modification of balances such that the
   * proper events are emitted.
   * @param _account The account that will receive the created tokens.
   * @param _amount The amount that will be created.
   */
  function _mint(address _account, uint256 _amount) internal {
    require(_account != 0);
    totalSupply_ = totalSupply_.add(_amount);
    balances[_account] = balances[_account].add(_amount);
    emit Transfer(address(0), _account, _amount);
  }

  /**
   * @dev Internal function that burns an amount of the token of a given
   * account.
   * @param _account The account whose tokens will be burnt.
   * @param _amount The amount that will be burnt.
   */
  function _burn(address _account, uint256 _amount) internal {
    require(_account != 0);
    require(_amount <= balances[_account]);

    totalSupply_ = totalSupply_.sub(_amount);
    balances[_account] = balances[_account].sub(_amount);
    emit Transfer(_account, address(0), _amount);
  }

  /**
   * @dev Internal function that burns an amount of the token of a given
   * account, deducting from the sender's allowance for said account. Uses the
   * internal _burn function.
   * @param _account The account whose tokens will be burnt.
   * @param _amount The amount that will be burnt.
   */
  function _burnFrom(address _account, uint256 _amount) internal {
    require(_amount <= allowed[_account][msg.sender]);

    // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
    // this function needs to emit an event with the updated approval.
    allowed[_account][msg.sender] = allowed[_account][msg.sender].sub(_amount);
    _burn(_account, _amount);
  }
}

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

  event Burn(address indexed burner, uint256 value);

  /**
   * @dev Burns a specific amount of tokens.
   * @param _value The amount of token to be burned.
   */
  function burn(uint256 _value) public {
    _burn(msg.sender, _value);
  }

  /**
   * @dev Burns a specific amount of tokens from the target address and decrements allowance
   * @param _from address The address which you want to send tokens from
   * @param _value uint256 The amount of token to be burned
   */
  function burnFrom(address _from, uint256 _value) public {
    _burnFrom(_from, _value);
  }

  /**
   * @dev Overrides StandardToken._burn in order for burn and burnFrom to emit
   * an additional Burn event.
   */
  function _burn(address _who, uint256 _value) internal {
    super._burn(_who, _value);
    emit Burn(_who, _value);
  }
}

/**
 * @title EVOAIToken
 */
contract EVOAIToken is BurnableToken {
    string public constant name = "EVOAI";
    string public constant symbol = "EVOT";
    uint8 public constant decimals = 18;

    uint256 public constant INITIAL_SUPPLY = 10000000 * 1 ether; // Need to change

    /**
     * @dev Constructor
     */
    constructor() public {
        _mint(msg.sender, INITIAL_SUPPLY);
    }
}

/**
 * @title Crowdsale
 */
contract Crowdsale is Ownable {
    using SafeMath for uint256;
    using SafeERC20 for EVOAIToken;

    struct State {
        string roundName;
        uint256 round;    // Round index
        uint256 tokens;   // Tokens amaunt for current round
        uint256 rate;     // USD rate of tokens
    }

    State public state;
    EVOAIToken public token;
    OraclizeInterface public oraclize;

    bool public open;
    address public fundsWallet;
    uint256 public weiRaised;
    uint256 public usdRaised;
    uint256 public privateSaleMinContrAmount = 1000;   // Min 1k
    uint256 public privateSaleMaxContrAmount = 10000;  // Max 10k

    /**
    * 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 TokensPurchased(
        address indexed purchaser,
        address indexed beneficiary,
        uint256 value,
        uint256 amount
    );

    event RoundStarts(uint256 timestamp, string round);

    /**
    * Constructor
    */
    constructor(address _tokenColdWallet, address _fundsWallet, address _oraclize) public {
        token = new EVOAIToken();
        oraclize = OraclizeInterface(_oraclize);
        open = false;
        fundsWallet = _fundsWallet;
        state.roundName = "Crowdsale doesnt started yet";
        token.safeTransfer(_tokenColdWallet, 3200000 * 1 ether);
    }

    // -----------------------------------------
    // Crowdsale external interface
    // -----------------------------------------

    /**
    * @dev fallback function ***DO NOT OVERRIDE***
    */
    function () external payable {
        buyTokens(msg.sender);
    }

    /**
    * @dev low level token purchase ***DO NOT OVERRIDE***
    * @param _beneficiary Address performing the token purchase
    */
    function buyTokens(address _beneficiary) public payable {
        uint256 weiAmount = msg.value;
        _preValidatePurchase(_beneficiary, weiAmount);

        // calculate wei to usd amount
        uint256 usdAmount = _getEthToUsdPrice(weiAmount);

        if(state.round == 1) {
            _validateUSDAmount(usdAmount);
        }

        // calculate token amount to be created
        uint256 tokens = _getTokenAmount(usdAmount);

        assert(tokens <= state.tokens);

        usdAmount = usdAmount.div(100); // Removing cents after whole calculation

        // update state
        state.tokens = state.tokens.sub(tokens);
        weiRaised = weiRaised.add(weiAmount);
        usdRaised = usdRaised.add(usdAmount);

        _processPurchase(_beneficiary, tokens);

        emit TokensPurchased(
        msg.sender,
        _beneficiary,
        weiAmount,
        tokens
        );

        _forwardFunds();
    }

    function changeFundsWallet(address _newFundsWallet) public onlyOwner {
        require(_newFundsWallet != address(0));
        fundsWallet = _newFundsWallet;
    }

    function burnUnsoldTokens() public onlyOwner {
        require(state.round > 8, "Crowdsale does not finished yet");

        uint256 unsoldTokens = token.balanceOf(this);
        token.burn(unsoldTokens);
    }

    function changeRound() public onlyOwner {
        if(state.round == 0) {
            state = State("Private sale", 1, 300000 * 1 ether, 35);
            emit RoundStarts(now, "Private sale starts.");
        } else if(state.round == 1) {
            state = State("Pre sale", 2, 500000 * 1 ether, 45);
            emit RoundStarts(now, "Pre sale starts.");
        } else if(state.round == 2) {
            state = State("1st round", 3, 1000000 * 1 ether, 55);
            emit RoundStarts(now, "1st round starts.");
        } else if(state.round == 3) {
            state = State("2nd round",4, 1000000 * 1 ether, 65);
            emit RoundStarts(now, "2nd round starts.");
        } else if(state.round == 4) {
            state = State("3th round",5, 1000000 * 1 ether, 75);
            emit RoundStarts(now, "3th round starts.");
        } else if(state.round == 5) {
            state = State("4th round",6, 1000000 * 1 ether, 85);
            emit RoundStarts(now, "4th round starts.");
        } else if(state.round == 6) {
            state = State("5th round",7, 1000000 * 1 ether, 95);
            emit RoundStarts(now, "5th round starts.");
        } else if(state.round == 7) {
            state = State("6th round",8, 1000000 * 1 ether, 105);
            emit RoundStarts(now, "6th round starts.");
        } else if(state.round >= 8) {
            state = State("Crowdsale finished!",9, 0, 0);
            emit RoundStarts(now, "Crowdsale finished!");
        }
    }

    function endCrowdsale() external onlyOwner {
        open = false;
    }

    function startCrowdsale() external onlyOwner {
        open = true;
    }

    // -----------------------------------------
    // Internal interface
    // -----------------------------------------

    /**
    * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use `super` in contracts that inherit from Crowdsale to extend their validations.
    * Example from CappedCrowdsale.sol's _preValidatePurchase method:
    *   super._preValidatePurchase(_beneficiary, _weiAmount);
    *   require(weiRaised.add(_weiAmount) <= cap);
    * @param _beneficiary Address performing the token purchase
    * @param _weiAmount Value in wei involved in the purchase
    */
    function _preValidatePurchase( address _beneficiary, uint256 _weiAmount ) internal view {
        require(open);
        require(_beneficiary != address(0));
        require(_weiAmount != 0);
    }

    /**
    * @dev Validate usd amount for private sale
    */
    function _validateUSDAmount( uint256 _usdAmount) internal view {
        require(_usdAmount.div(100) > privateSaleMinContrAmount);
        require(_usdAmount.div(100) < privateSaleMaxContrAmount);
    }

    /**
    * @dev Convert ETH to USD and return amount
    * @param _weiAmount ETH amount which will convert to USD
    */
    function _getEthToUsdPrice(uint256 _weiAmount) internal view returns(uint256) {
        return _weiAmount.mul(_getEthUsdPrice()).div(1 ether);
    }

    /**
    * @dev Getting price from oraclize contract
    */
    function _getEthUsdPrice() internal view returns (uint256) {
        return oraclize.getEthPrice();
    }

    /**
    * @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends its tokens.
    * @param _beneficiary Address performing the token purchase
    * @param _tokenAmount Number of tokens to be emitted
    */
    function _deliverTokens( address _beneficiary, uint256 _tokenAmount ) internal {
        token.safeTransfer(_beneficiary, _tokenAmount);
    }

    /**
    * @dev Executed when a purchase has been validated and is ready to be executed. Not necessarily emits/sends tokens.
    * @param _beneficiary Address receiving the tokens
    * @param _tokenAmount Number of tokens to be purchased
    */
    function _processPurchase( address _beneficiary, uint256 _tokenAmount ) internal {
        _deliverTokens(_beneficiary, _tokenAmount);
    }

    /**
    * @dev Override to extend the way in which usd is converted to tokens.
    * @param _usdAmount Value in usd to be converted into tokens
    * @return Number of tokens that can be purchased with the specified _usdAmount
    */
    function _getTokenAmount(uint256 _usdAmount) internal view returns (uint256) {
        return _usdAmount.div(state.rate).mul(1 ether);
    }

    /**
    * @dev Determines how ETH is stored/forwarded on purchases.
    */
    function _forwardFunds() internal {
        fundsWallet.transfer(msg.value);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"endCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundsWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oraclize","outputs":[{"name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newFundsWallet","type":"address"}],"name":"changeFundsWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"privateSaleMinContrAmount","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":false,"inputs":[],"name":"burnUnsoldTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"roundName","type":"string"},{"name":"round","type":"uint256"},{"name":"tokens","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"changeRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usdRaised","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":"privateSaleMaxContrAmount","outputs":[{"name":"","type":"uint256"}],"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":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"open","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenColdWallet","type":"address"},{"name":"_fundsWallet","type":"address"},{"name":"_oraclize","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":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"round","type":"string"}],"name":"RoundStarts","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526103e8600a55612710600b553480156200001d57600080fd5b50604051606080620023b783398101604090815281516020830151919092015160008054600160a060020a0319163317905562000059620001fa565b604051809103906000f08015801562000076573d6000803e3d6000fd5b5060058054600160a060020a0319908116600160a060020a03938416179091556006805482168484161760a060020a60ff02191690556007805490911691841691909117905560408051808201909152601c8082527f43726f776473616c6520646f65736e7420737461727465642079657400000000602090920191825262000102916001916200020b565b506005546200013590600160a060020a0316846a02a5a058fc295ed0000000640100000000620013f66200013e82021704565b505050620002b0565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015620001bb57600080fd5b505af1158015620001d0573d6000803e3d6000fd5b505050506040513d6020811015620001e757600080fd5b50511515620001f557600080fd5b505050565b604051610b65806200185283390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024e57805160ff19168380011785556200027e565b828001600101855582156200027e579182015b828111156200027e57825182559160200191906001019062000261565b506200028c92915062000290565b5090565b620002ad91905b808211156200028c576000815560010162000297565b90565b61159280620002c06000396000f3006080604052600436106100fb5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632095f2d481146101065780632194f3a21461011b5780633d9aa9321461014c5780634042b66f14610161578063715018a6146101885780637d6f0d5f1461019d578063890a9917146101be5780638da5cb5b146101d3578063940bb344146101e8578063a39953b2146101fd578063c19d93fb14610212578063dd506e09146102b4578063eadd94ec146102c9578063ec8ac4d8146102de578063f2d2fa91146102f2578063f2fde38b14610307578063fc0c546a14610328578063fcfff16f1461033d575b61010433610366565b005b34801561011257600080fd5b50610104610462565b34801561012757600080fd5b50610130610499565b60408051600160a060020a039092168252519081900360200190f35b34801561015857600080fd5b506101306104a8565b34801561016d57600080fd5b506101766104b7565b60408051918252519081900360200190f35b34801561019457600080fd5b506101046104bd565b3480156101a957600080fd5b50610104600160a060020a0360043516610529565b3480156101ca57600080fd5b50610176610584565b3480156101df57600080fd5b5061013061058a565b3480156101f457600080fd5b50610104610599565b34801561020957600080fd5b50610104610738565b34801561021e57600080fd5b50610227610786565b6040518080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b8381101561027657818101518382015260200161025e565b50505050905090810190601f1680156102a35780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156102c057600080fd5b50610104610829565b3480156102d557600080fd5b506101766110d8565b610104600160a060020a0360043516610366565b3480156102fe57600080fd5b506101766110de565b34801561031357600080fd5b50610104600160a060020a03600435166110e4565b34801561033457600080fd5b50610130611107565b34801561034957600080fd5b50610352611116565b604080519115158252519081900360200190f35b346000806103748484611137565b61037d83611185565b6002549092506001141561039457610394826111bd565b61039d826111f9565b6003549091508111156103ac57fe5b6103bd82606463ffffffff61122b16565b6003549092506103d3908263ffffffff61124016565b6003556008546103e9908463ffffffff61125216565b6008556009546103ff908363ffffffff61125216565b60095561040c848261125f565b60408051848152602081018390528151600160a060020a0387169233927f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b929081900390910190a361045c611269565b50505050565b600054600160a060020a0316331461047957600080fd5b6006805474ff000000000000000000000000000000000000000019169055565b600754600160a060020a031681565b600654600160a060020a031681565b60085481565b600054600160a060020a031633146104d457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a0316331461054057600080fd5b600160a060020a038116151561055557600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600054600160a060020a031681565b60008054600160a060020a031633146105b157600080fd5b60025460081061062257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43726f776473616c6520646f6573206e6f742066696e69736865642079657400604482015290519081900360640190fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561068857600080fd5b505af115801561069c573d6000803e3d6000fd5b505050506040513d60208110156106b257600080fd5b5051600554604080517f42966c68000000000000000000000000000000000000000000000000000000008152600481018490529051929350600160a060020a03909116916342966c689160248082019260009290919082900301818387803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b5050505050565b600054600160a060020a0316331461074f57600080fd5b6006805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815291839183018282801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050908060010154908060020154908060030154905084565b600054600160a060020a0316331461084057600080fd5b6002541515610935576040805160c081018252600c608082018181527f507269766174652073616c65000000000000000000000000000000000000000060a08401908152908352600160208401819052693f870857a3e0e380000094840194909452602360608401529192916108b8918391906114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526014818301527f507269766174652073616c65207374617274732e00000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460011415610a2b576040805160c0810182526008608082018181527f5072652073616c6500000000000000000000000000000000000000000000000060a08401908152908352600260208401526969e10de76676d080000093830193909352602d606083015290916001916109ae9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526010818301527f5072652073616c65207374617274732e0000000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b600280541415610b20576040805160c0810182526009608082018181527f31737420726f756e64000000000000000000000000000000000000000000000060a084019081529083526003602084015269d3c21bcecceda100000093830193909352603760608301529091600191610aa39183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f31737420726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460031415610c16576040805160c0810182526009608082018181527f326e6420726f756e64000000000000000000000000000000000000000000000060a084019081529083526004602084015269d3c21bcecceda100000093830193909352604160608301529091600191610b999183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f326e6420726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460041415610d0c576040805160c0810182526009608082018181527f33746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526005602084015269d3c21bcecceda100000093830193909352604b60608301529091600191610c8f9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f33746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460051415610e02576040805160c0810182526009608082018181527f34746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526006602084015269d3c21bcecceda100000093830193909352605560608301529091600191610d859183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f34746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460061415610ef8576040805160c0810182526009608082018181527f35746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526007602084015269d3c21bcecceda100000093830193909352605f60608301529091600191610e7b9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f35746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460071415610fee576040805160c0810182526009608082018181527f36746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526008602084015269d3c21bcecceda100000093830193909352606960608301529091600191610f719183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f36746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b6002546008116110d6576040805160c0810182526013608082018181527f43726f776473616c652066696e6973686564210000000000000000000000000060a084019081529083526009602084015260009383018490526060830193909352909160019161105d9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526013818301527f43726f776473616c652066696e6973686564210000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a15b565b60095481565b600b5481565b600054600160a060020a031633146110fb57600080fd5b611104816112a2565b50565b600554600160a060020a031681565b60065474010000000000000000000000000000000000000000900460ff1681565b60065474010000000000000000000000000000000000000000900460ff16151561116057600080fd5b600160a060020a038216151561117557600080fd5b80151561118157600080fd5b5050565b60006111b7670de0b6b3a76400006111ab61119e61131f565b859063ffffffff6113b016565b9063ffffffff61122b16565b92915050565b600a546111d182606463ffffffff61122b16565b116111db57600080fd5b600b546111ef82606463ffffffff61122b16565b1061110457600080fd5b60006111b7670de0b6b3a764000061121f6001600301548561122b90919063ffffffff16565b9063ffffffff6113b016565b6000818381151561123857fe5b049392505050565b60008282111561124c57fe5b50900390565b818101828110156111b757fe5b61118182826113d9565b600754604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015611104573d6000803e3d6000fd5b600160a060020a03811615156112b757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600654604080517f67c9b0170000000000000000000000000000000000000000000000000000000081529051600092600160a060020a0316916367c9b01791600480830192602092919082900301818787803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b505050506040513d60208110156113a857600080fd5b505190505b90565b60008215156113c1575060006111b7565b508181028183828115156113d157fe5b04146111b757fe5b60055461118190600160a060020a0316838363ffffffff6113f616565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561147257600080fd5b505af1158015611486573d6000803e3d6000fd5b505050506040513d602081101561149c57600080fd5b505115156114a957600080fd5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114ef57805160ff191683800117855561151c565b8280016001018555821561151c579182015b8281111561151c578251825591602001919060010190611501565b5061152892915061152c565b5090565b6113ad91905b808211156115285760008155600101611532560061ffa606a6ee31a8efc5a1118137feb70f862b7beb363e63f5ce4c87d7394020a165627a7a723058207d109924f3b9510f4a6f536c98b00d82ae0a3ab3ee6caeadccd6953fad3011ed0029608060405234801561001057600080fd5b5061002f336a084595161401484a000000640100000000610034810204565b6100ff565b600160a060020a038216151561004957600080fd5b600254610063908264010000000061086b6100ec82021704565b600255600160a060020a038216600090815260208190526040902054610096908264010000000061086b6100ec82021704565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b818101828110156100f957fe5b92915050565b610a578061010e6000396000f3006080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100d4578063095ea7b31461015e57806318160ddd1461019657806323b872dd146101bd5780632ff2e9dc146101e7578063313ce567146101fc57806342966c6814610227578063661884631461024157806370a082311461026557806379cc67901461028657806395d89b41146102aa578063a9059cbb146102bf578063d73dd623146102e3578063dd62ed3e14610307575b600080fd5b3480156100e057600080fd5b506100e961032e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012357818101518382015260200161010b565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016a57600080fd5b50610182600160a060020a0360043516602435610365565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101ab6103cb565b60408051918252519081900360200190f35b3480156101c957600080fd5b50610182600160a060020a03600435811690602435166044356103d1565b3480156101f357600080fd5b506101ab610546565b34801561020857600080fd5b50610211610555565b6040805160ff9092168252519081900360200190f35b34801561023357600080fd5b5061023f60043561055a565b005b34801561024d57600080fd5b50610182600160a060020a0360043516602435610567565b34801561027157600080fd5b506101ab600160a060020a0360043516610656565b34801561029257600080fd5b5061023f600160a060020a0360043516602435610671565b3480156102b657600080fd5b506100e961067f565b3480156102cb57600080fd5b50610182600160a060020a03600435166024356106b6565b3480156102ef57600080fd5b50610182600160a060020a0360043516602435610795565b34801561031357600080fd5b506101ab600160a060020a036004358116906024351661082e565b60408051808201909152600581527f45564f4149000000000000000000000000000000000000000000000000000000602082015281565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b600160a060020a0383166000908152602081905260408120548211156103f657600080fd5b600160a060020a038416600090815260016020908152604080832033845290915290205482111561042657600080fd5b600160a060020a038316151561043b57600080fd5b600160a060020a038416600090815260208190526040902054610464908363ffffffff61085916565b600160a060020a038086166000908152602081905260408082209390935590851681522054610499908363ffffffff61086b16565b600160a060020a038085166000908152602081815260408083209490945591871681526001825282812033825290915220546104db908363ffffffff61085916565b600160a060020a03808616600081815260016020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6a084595161401484a00000081565b601281565b610564338261087e565b50565b336000908152600160209081526040808320600160a060020a03861684529091528120548083106105bb57336000908152600160209081526040808320600160a060020a03881684529091528120556105f0565b6105cb818463ffffffff61085916565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b61067b82826108cb565b5050565b60408051808201909152600481527f45564f5400000000000000000000000000000000000000000000000000000000602082015281565b336000908152602081905260408120548211156106d257600080fd5b600160a060020a03831615156106e757600080fd5b33600090815260208190526040902054610707908363ffffffff61085916565b3360009081526020819052604080822092909255600160a060020a03851681522054610739908363ffffffff61086b16565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600160209081526040808320600160a060020a03861684529091528120546107c9908363ffffffff61086b16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60008282111561086557fe5b50900390565b8181018281101561087857fe5b92915050565b610888828261095d565b604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600160a060020a03821660009081526001602090815260408083203384529091529020548111156108fb57600080fd5b600160a060020a038216600090815260016020908152604080832033845290915290205461092f908263ffffffff61085916565b600160a060020a038316600090815260016020908152604080832033845290915290205561067b828261087e565b600160a060020a038216151561097257600080fd5b600160a060020a03821660009081526020819052604090205481111561099757600080fd5b6002546109aa908263ffffffff61085916565b600255600160a060020a0382166000908152602081905260409020546109d6908263ffffffff61085916565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505600a165627a7a72305820abb27e79a55bc4bba99a85bb649a10c80b533bfb3db80f2ad6cfe0cf657650290029000000000000000000000000c1ee8cbb5584170012c6ee94b1b3b038c2adfa0800000000000000000000000066b18668423ef9b1e2436ed25920e0506b2dfb6a00000000000000000000000097d8061df1370cbac097ede6a10ca10714c7774a

Deployed Bytecode

0x6080604052600436106100fb5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632095f2d481146101065780632194f3a21461011b5780633d9aa9321461014c5780634042b66f14610161578063715018a6146101885780637d6f0d5f1461019d578063890a9917146101be5780638da5cb5b146101d3578063940bb344146101e8578063a39953b2146101fd578063c19d93fb14610212578063dd506e09146102b4578063eadd94ec146102c9578063ec8ac4d8146102de578063f2d2fa91146102f2578063f2fde38b14610307578063fc0c546a14610328578063fcfff16f1461033d575b61010433610366565b005b34801561011257600080fd5b50610104610462565b34801561012757600080fd5b50610130610499565b60408051600160a060020a039092168252519081900360200190f35b34801561015857600080fd5b506101306104a8565b34801561016d57600080fd5b506101766104b7565b60408051918252519081900360200190f35b34801561019457600080fd5b506101046104bd565b3480156101a957600080fd5b50610104600160a060020a0360043516610529565b3480156101ca57600080fd5b50610176610584565b3480156101df57600080fd5b5061013061058a565b3480156101f457600080fd5b50610104610599565b34801561020957600080fd5b50610104610738565b34801561021e57600080fd5b50610227610786565b6040518080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b8381101561027657818101518382015260200161025e565b50505050905090810190601f1680156102a35780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156102c057600080fd5b50610104610829565b3480156102d557600080fd5b506101766110d8565b610104600160a060020a0360043516610366565b3480156102fe57600080fd5b506101766110de565b34801561031357600080fd5b50610104600160a060020a03600435166110e4565b34801561033457600080fd5b50610130611107565b34801561034957600080fd5b50610352611116565b604080519115158252519081900360200190f35b346000806103748484611137565b61037d83611185565b6002549092506001141561039457610394826111bd565b61039d826111f9565b6003549091508111156103ac57fe5b6103bd82606463ffffffff61122b16565b6003549092506103d3908263ffffffff61124016565b6003556008546103e9908463ffffffff61125216565b6008556009546103ff908363ffffffff61125216565b60095561040c848261125f565b60408051848152602081018390528151600160a060020a0387169233927f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b929081900390910190a361045c611269565b50505050565b600054600160a060020a0316331461047957600080fd5b6006805474ff000000000000000000000000000000000000000019169055565b600754600160a060020a031681565b600654600160a060020a031681565b60085481565b600054600160a060020a031633146104d457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a0316331461054057600080fd5b600160a060020a038116151561055557600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600054600160a060020a031681565b60008054600160a060020a031633146105b157600080fd5b60025460081061062257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43726f776473616c6520646f6573206e6f742066696e69736865642079657400604482015290519081900360640190fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561068857600080fd5b505af115801561069c573d6000803e3d6000fd5b505050506040513d60208110156106b257600080fd5b5051600554604080517f42966c68000000000000000000000000000000000000000000000000000000008152600481018490529051929350600160a060020a03909116916342966c689160248082019260009290919082900301818387803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b5050505050565b600054600160a060020a0316331461074f57600080fd5b6006805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815291839183018282801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050908060010154908060020154908060030154905084565b600054600160a060020a0316331461084057600080fd5b6002541515610935576040805160c081018252600c608082018181527f507269766174652073616c65000000000000000000000000000000000000000060a08401908152908352600160208401819052693f870857a3e0e380000094840194909452602360608401529192916108b8918391906114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526014818301527f507269766174652073616c65207374617274732e00000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460011415610a2b576040805160c0810182526008608082018181527f5072652073616c6500000000000000000000000000000000000000000000000060a08401908152908352600260208401526969e10de76676d080000093830193909352602d606083015290916001916109ae9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526010818301527f5072652073616c65207374617274732e0000000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b600280541415610b20576040805160c0810182526009608082018181527f31737420726f756e64000000000000000000000000000000000000000000000060a084019081529083526003602084015269d3c21bcecceda100000093830193909352603760608301529091600191610aa39183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f31737420726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460031415610c16576040805160c0810182526009608082018181527f326e6420726f756e64000000000000000000000000000000000000000000000060a084019081529083526004602084015269d3c21bcecceda100000093830193909352604160608301529091600191610b999183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f326e6420726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460041415610d0c576040805160c0810182526009608082018181527f33746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526005602084015269d3c21bcecceda100000093830193909352604b60608301529091600191610c8f9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f33746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460051415610e02576040805160c0810182526009608082018181527f34746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526006602084015269d3c21bcecceda100000093830193909352605560608301529091600191610d859183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f34746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460061415610ef8576040805160c0810182526009608082018181527f35746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526007602084015269d3c21bcecceda100000093830193909352605f60608301529091600191610e7b9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f35746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b60025460071415610fee576040805160c0810182526009608082018181527f36746820726f756e64000000000000000000000000000000000000000000000060a084019081529083526008602084015269d3c21bcecceda100000093830193909352606960608301529091600191610f719183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526011818301527f36746820726f756e64207374617274732e00000000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a16110d6565b6002546008116110d6576040805160c0810182526013608082018181527f43726f776473616c652066696e6973686564210000000000000000000000000060a084019081529083526009602084015260009383018490526060830193909352909160019161105d9183916114ae565b506020828101516001830155604080840151600284015560609384015160039093019290925581514281529081018290526013818301527f43726f776473616c652066696e6973686564210000000000000000000000000092810192909252516000805160206115478339815191529181900360800190a15b565b60095481565b600b5481565b600054600160a060020a031633146110fb57600080fd5b611104816112a2565b50565b600554600160a060020a031681565b60065474010000000000000000000000000000000000000000900460ff1681565b60065474010000000000000000000000000000000000000000900460ff16151561116057600080fd5b600160a060020a038216151561117557600080fd5b80151561118157600080fd5b5050565b60006111b7670de0b6b3a76400006111ab61119e61131f565b859063ffffffff6113b016565b9063ffffffff61122b16565b92915050565b600a546111d182606463ffffffff61122b16565b116111db57600080fd5b600b546111ef82606463ffffffff61122b16565b1061110457600080fd5b60006111b7670de0b6b3a764000061121f6001600301548561122b90919063ffffffff16565b9063ffffffff6113b016565b6000818381151561123857fe5b049392505050565b60008282111561124c57fe5b50900390565b818101828110156111b757fe5b61118182826113d9565b600754604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015611104573d6000803e3d6000fd5b600160a060020a03811615156112b757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600654604080517f67c9b0170000000000000000000000000000000000000000000000000000000081529051600092600160a060020a0316916367c9b01791600480830192602092919082900301818787803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b505050506040513d60208110156113a857600080fd5b505190505b90565b60008215156113c1575060006111b7565b508181028183828115156113d157fe5b04146111b757fe5b60055461118190600160a060020a0316838363ffffffff6113f616565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561147257600080fd5b505af1158015611486573d6000803e3d6000fd5b505050506040513d602081101561149c57600080fd5b505115156114a957600080fd5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114ef57805160ff191683800117855561151c565b8280016001018555821561151c579182015b8281111561151c578251825591602001919060010190611501565b5061152892915061152c565b5090565b6113ad91905b808211156115285760008155600101611532560061ffa606a6ee31a8efc5a1118137feb70f862b7beb363e63f5ce4c87d7394020a165627a7a723058207d109924f3b9510f4a6f536c98b00d82ae0a3ab3ee6caeadccd6953fad3011ed0029

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

000000000000000000000000c1ee8cbb5584170012c6ee94b1b3b038c2adfa0800000000000000000000000066b18668423ef9b1e2436ed25920e0506b2dfb6a00000000000000000000000097d8061df1370cbac097ede6a10ca10714c7774a

-----Decoded View---------------
Arg [0] : _tokenColdWallet (address): 0xc1EE8Cbb5584170012C6eE94b1b3B038c2adfa08
Arg [1] : _fundsWallet (address): 0x66b18668423EF9B1E2436ed25920e0506B2dFb6A
Arg [2] : _oraclize (address): 0x97D8061df1370cBAc097ede6a10CA10714c7774a

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c1ee8cbb5584170012c6ee94b1b3b038c2adfa08
Arg [1] : 00000000000000000000000066b18668423ef9b1e2436ed25920e0506b2dfb6a
Arg [2] : 00000000000000000000000097d8061df1370cbac097ede6a10ca10714c7774a


Swarm Source

bzzr://abb27e79a55bc4bba99a85bb649a10c80b533bfb3db80f2ad6cfe0cf65765029

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

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.