ETH Price: $2,949.54 (+3.21%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer51391922018-02-23 1:11:172856 days ago1519348277IN
0x201DCb47...37d5fd1CD
0.95 ETH0.00371794165
Finalize50486692018-02-07 19:04:172871 days ago1518030257IN
0x201DCb47...37d5fd1CD
0 ETH0.00419340
Transfer50412442018-02-06 13:12:512872 days ago1517922771IN
0x201DCb47...37d5fd1CD
1 ETH0.0013519860
Transfer50412412018-02-06 13:11:402872 days ago1517922700IN
0x201DCb47...37d5fd1CD
2 ETH0.0013519860
Transfer50412312018-02-06 13:10:042872 days ago1517922604IN
0x201DCb47...37d5fd1CD
0.5 ETH0.0011266550
Transfer50412172018-02-06 13:05:382872 days ago1517922338IN
0x201DCb47...37d5fd1CD
0.5 ETH0.0011266550
Transfer50412102018-02-06 13:04:312872 days ago1517922271IN
0x201DCb47...37d5fd1CD
0.5 ETH0.0010550
Transfer50412102018-02-06 13:04:312872 days ago1517922271IN
0x201DCb47...37d5fd1CD
3 ETH0.0013519860
Transfer50412012018-02-06 13:02:182872 days ago1517922138IN
0x201DCb47...37d5fd1CD
3 ETH0.0013519860
Transfer50411722018-02-06 12:54:402872 days ago1517921680IN
0x201DCb47...37d5fd1CD
1 ETH0.000112665
Transfer50411712018-02-06 12:54:312872 days ago1517921671IN
0x201DCb47...37d5fd1CD
5 ETH0.006107350
Update Whitelist50411472018-02-06 12:47:452872 days ago1517921265IN
0x201DCb47...37d5fd1CD
0 ETH0.0018480840
Transfer50411422018-02-06 12:46:292872 days ago1517921189IN
0x201DCb47...37d5fd1CD
1 ETH0.0027959541
Transfer50411422018-02-06 12:46:292872 days ago1517921189IN
0x201DCb47...37d5fd1CD
0.37 ETH0.0046409541
Transfer50411422018-02-06 12:46:292872 days ago1517921189IN
0x201DCb47...37d5fd1CD
0.5 ETH0.005659750
Transfer50411382018-02-06 12:44:532872 days ago1517921093IN
0x201DCb47...37d5fd1CD
0.5 ETH0.005659750
Transfer50411382018-02-06 12:44:532872 days ago1517921093IN
0x201DCb47...37d5fd1CD
1 ETH0.0040916460
Transfer50411382018-02-06 12:44:532872 days ago1517921093IN
0x201DCb47...37d5fd1CD
0.3 ETH0.0040916460
Transfer50411372018-02-06 12:44:352872 days ago1517921075IN
0x201DCb47...37d5fd1CD
5 ETH0.0026034623
Transfer50411362018-02-06 12:44:112872 days ago1517921051IN
0x201DCb47...37d5fd1CD
0.07549278 ETH0.0046409541
Transfer50411362018-02-06 12:44:112872 days ago1517921051IN
0x201DCb47...37d5fd1CD
2 ETH0.005659750
Transfer50411262018-02-06 12:41:192872 days ago1517920879IN
0x201DCb47...37d5fd1CD
0.3 ETH0.0067916460
Update Whitelist50411242018-02-06 12:40:412872 days ago1517920841IN
0x201DCb47...37d5fd1CD
0 ETH0.0018480840
Transfer50411222018-02-06 12:40:002872 days ago1517920800IN
0x201DCb47...37d5fd1CD
0.7 ETH0.0046409541
Transfer50411182018-02-06 12:38:392872 days ago1517920719IN
0x201DCb47...37d5fd1CD
0.5 ETH0.0040916460
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer50411712018-02-06 12:54:312872 days ago1517921671
0x201DCb47...37d5fd1CD
3.59649262 ETH
Transfer50411712018-02-06 12:54:312872 days ago1517921671
0x201DCb47...37d5fd1CD
1.40350737 ETH
Transfer50411422018-02-06 12:46:292872 days ago1517921189
0x201DCb47...37d5fd1CD
1 ETH
Transfer50411422018-02-06 12:46:292872 days ago1517921189
0x201DCb47...37d5fd1CD
0.37 ETH
Transfer50411422018-02-06 12:46:292872 days ago1517921189
0x201DCb47...37d5fd1CD
0.5 ETH
Transfer50411382018-02-06 12:44:532872 days ago1517921093
0x201DCb47...37d5fd1CD
0.5 ETH
Transfer50411382018-02-06 12:44:532872 days ago1517921093
0x201DCb47...37d5fd1CD
1 ETH
Transfer50411382018-02-06 12:44:532872 days ago1517921093
0x201DCb47...37d5fd1CD
0.3 ETH
Transfer50411372018-02-06 12:44:352872 days ago1517921075
0x201DCb47...37d5fd1CD
5 ETH
Transfer50411362018-02-06 12:44:112872 days ago1517921051
0x201DCb47...37d5fd1CD
0.07549278 ETH
Transfer50411362018-02-06 12:44:112872 days ago1517921051
0x201DCb47...37d5fd1CD
2 ETH
Transfer50411262018-02-06 12:41:192872 days ago1517920879
0x201DCb47...37d5fd1CD
0.3 ETH
Transfer50411222018-02-06 12:40:002872 days ago1517920800
0x201DCb47...37d5fd1CD
0.7 ETH
Transfer50411182018-02-06 12:38:392872 days ago1517920719
0x201DCb47...37d5fd1CD
0.5 ETH
Transfer50411132018-02-06 12:38:072872 days ago1517920687
0x201DCb47...37d5fd1CD
0.2 ETH
Transfer50411042018-02-06 12:36:152872 days ago1517920575
0x201DCb47...37d5fd1CD
0.3 ETH
Transfer50411022018-02-06 12:35:512872 days ago1517920551
0x201DCb47...37d5fd1CD
2 ETH
Transfer50410922018-02-06 12:33:552872 days ago1517920435
0x201DCb47...37d5fd1CD
0.9 ETH
Transfer50410652018-02-06 12:26:512872 days ago1517920011
0x201DCb47...37d5fd1CD
1.0855 ETH
Transfer50410492018-02-06 12:21:502872 days ago1517919710
0x201DCb47...37d5fd1CD
2 ETH
Transfer50410482018-02-06 12:21:412872 days ago1517919701
0x201DCb47...37d5fd1CD
10 ETH
Transfer50410482018-02-06 12:21:412872 days ago1517919701
0x201DCb47...37d5fd1CD
2.5 ETH
Transfer50410482018-02-06 12:21:412872 days ago1517919701
0x201DCb47...37d5fd1CD
0.1 ETH
Transfer50410432018-02-06 12:19:502872 days ago1517919590
0x201DCb47...37d5fd1CD
10 ETH
Transfer50410412018-02-06 12:19:402872 days ago1517919580
0x201DCb47...37d5fd1CD
0.08693734 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DataWalletCrowdsale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-02-05
*/

pragma solidity ^0.4.13;

contract ReentrancyGuard {

  /**
   * @dev We use a single lock for the whole contract.
   */
  bool private reentrancy_lock = false;

  /**
   * @dev Prevents a contract from calling itself, directly or indirectly.
   * @notice If you mark a function `nonReentrant`, you should also
   * mark it `external`. Calling one nonReentrant function from
   * another is not supported. Instead, you can implement a
   * `private` function doing the actual work, and a `external`
   * wrapper marked as `nonReentrant`.
   */
  modifier nonReentrant() {
    require(!reentrancy_lock);
    reentrancy_lock = true;
    _;
    reentrancy_lock = false;
  }

}

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;
  }
}

contract Ownable {
  address public owner;


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


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


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


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

}

contract RefundVault is Ownable {
  using SafeMath for uint256;

  enum State { Active, Refunding, Closed }

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

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

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

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

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

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

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

contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }

}

contract BurnableToken is BasicToken {

    event Burn(address indexed burner, uint256 value);

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

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

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract StandardToken is ERC20, BasicToken {

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


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

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

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

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

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

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

}

contract PausableToken is StandardToken, Pausable {

  function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
    return super.approve(_spender, _value);
  }

  function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
    return super.increaseApproval(_spender, _addedValue);
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
    return super.decreaseApproval(_spender, _subtractedValue);
  }
}

contract DataWalletCrowdsale is Ownable, ReentrancyGuard {
    using SafeMath for uint256;

    // We have a window in the first 24hrs that permits to allocate all whitelist 
    // participants with an equal distribution => firstDayCap = cap / whitelist participants.
    uint256 public firstDayCap;
    uint256 public cap;
    uint256 public goal;
    uint256 public rate;
    uint256 public constant WEI_TO_INSIGHTS = 10**uint256(10);


    RefundVault public vault;
    DataWalletToken public token;

    uint256 public startTime;
    uint256 public endTime;
    uint256 public firstDay;

    bool public isFinalized = false;
    uint256 public weiRaised;

    mapping(address => bool) public whitelist;
    mapping(address => uint256) public contribution;
    
    event WhitelistUpdate(address indexed purchaser, bool status);
    event TokenPurchase(address indexed beneficiary, uint256 value, uint256 amount);
    event TokenRefund(address indexed refundee, uint256 amount);

    event Finalized();
    

    function DataWalletCrowdsale(
        address _token, 
        address _wallet,
        uint256 _startTime,
        uint256 _endTime,
        uint256 _rate,
        uint256 _cap,
        uint256 _firstDayCap,
        uint256 _goal
    ) {
        require(_startTime >= getBlockTimestamp());
        require(_endTime >= _startTime);
        require(_rate > 0);
        require(_goal > 0);
        require(_cap > 0);
        require(_wallet != 0x0);

        vault = new RefundVault(_wallet);
        token = DataWalletToken(_token);
        startTime = _startTime;
        endTime = _endTime;
        firstDay = startTime + 1 * 1 days;
        firstDayCap = _firstDayCap;
        rate = _rate;
        goal = _goal;
        cap = _cap;
    }

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

    //low level function to buy tokens
    function buyTokens(address beneficiary) internal {
        require(beneficiary != 0x0);
        require(whitelist[beneficiary]);
        require(validPurchase());

        //derive amount in wei to buy 
        uint256 weiAmount = msg.value;

        // check if contribution is in the first 24h hours
        if (getBlockTimestamp() <= firstDay) {
            require((contribution[beneficiary].add(weiAmount)) <= firstDayCap);
        }
        //check if there is enough funds 
        uint256 remainingToFund = cap.sub(weiRaised);
        if (weiAmount > remainingToFund) {
            weiAmount = remainingToFund;
        }
        uint256 weiToReturn = msg.value.sub(weiAmount);
        //Forward funs to the vault 
        forwardFunds(weiAmount);
        //refund if the contribution exceed the cap
        if (weiToReturn > 0) {
            beneficiary.transfer(weiToReturn);
            TokenRefund(beneficiary, weiToReturn);
        }
        //derive how many tokens
        uint256 tokens = getTokens(weiAmount);
        //update the state of weiRaised
        weiRaised = weiRaised.add(weiAmount);
        contribution[beneficiary] = contribution[beneficiary].add(weiAmount);
     
        //Trigger the event of TokenPurchase
        TokenPurchase(beneficiary, weiAmount, tokens);

        token.transfer(beneficiary, tokens); 
    }

    function getTokens(uint256 amount) internal constant returns (uint256) {
        return amount.mul(rate).div(WEI_TO_INSIGHTS);
    }

    // contributors can claim refund if the goal is not reached
    function claimRefund() nonReentrant external {
        require(isFinalized);
        require(!goalReached());
        vault.refund(msg.sender);
    }

    //in case of endTime before the reach of the cap, the owner can claim the unsold tokens
    function claimUnsold() onlyOwner {
        require(endTime <= getBlockTimestamp());
        uint256 unsold = token.balanceOf(this);

        if (unsold > 0) {
            require(token.transfer(msg.sender, unsold));
        }
    }

    // add/remove to whitelist array of addresses based on boolean status
    function updateWhitelist(address[] addresses, bool status) public onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            address contributorAddress = addresses[i];
            whitelist[contributorAddress] = status;
            WhitelistUpdate(contributorAddress, status);
        }
    }

    //Only owner can manually finalize the sale
    function finalize() onlyOwner {
        require(!isFinalized);
        require(hasEnded());

        //update the sate of isFinalized
        isFinalized = true;
        //trigger and emit the event of finalization
        Finalized();

        if (goalReached()) {
            //Close the vault
            vault.close();
            //Unpause the token 
            token.unpause();
            //give ownership back to deployer
            token.transferOwnership(owner);
        } else {
            //else enable refunds
            vault.enableRefunds();
        }
    } 

    // send ether to the fund collection wallet, the vault in this case
    function forwardFunds(uint256 weiAmount) internal {
        vault.deposit.value(weiAmount)(msg.sender);
    }

    // @return true if crowdsale event has ended or cap reached
    function hasEnded() public constant returns (bool) {
        bool passedEndTime = getBlockTimestamp() > endTime;
        return passedEndTime || capReached();
    }

    function capReached() public constant returns (bool) {
        return weiRaised >= cap;
    }

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

    function isWhitelisted(address contributor) public constant returns (bool) {
        return whitelist[contributor];
    }

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

    function getBlockTimestamp() internal constant returns (uint256) {
        return block.timestamp;
    }
}

contract DataWalletToken is PausableToken, BurnableToken {

    string public constant name = "DataWallet Token";
    string public constant symbol = "DXT";
    uint8 public constant decimals = 8;
    uint256 public constant INITIAL_SUPPLY = 1000000000 * 10**uint256(decimals);
    
    /**
    * @dev DataWalletToken Constructor
    */

    function DataWalletToken() public {
        totalSupply = INITIAL_SUPPLY;   
        balances[msg.sender] = INITIAL_SUPPLY;
    }

    function transfer(address beneficiary, uint256 amount) public returns (bool) {
        if (msg.sender != owner) {
            require(!paused);
        }
        require(beneficiary != address(0));
        require(amount <= balances[msg.sender]);

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(amount);
        balances[beneficiary] = balances[beneficiary].add(amount);
        Transfer(msg.sender, beneficiary, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"contributor","type":"address"}],"name":"isWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"capReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstDayCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WEI_TO_INSIGHTS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"status","type":"bool"}],"name":"updateWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"firstDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimUnsold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"},{"name":"_wallet","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_cap","type":"uint256"},{"name":"_firstDayCap","type":"uint256"},{"name":"_goal","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"status","type":"bool"}],"name":"WhitelistUpdate","type":"event"},{"anonymous":false,"inputs":[{"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":"refundee","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenRefund","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405260008060146101000a81548160ff0219169083151502179055506000600a60006101000a81548160ff02191690831515021790555034156200004557600080fd5b60405161010080620024e683398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001006200029564010000000002620015e9176401000000009004565b86101515156200010f57600080fd5b8585101515156200011f57600080fd5b6000841115156200012f57600080fd5b6000811115156200013f57600080fd5b6000831115156200014f57600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff16141515156200017657600080fd5b86620001816200029d565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801515620001ce57600080fd5b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600781905550846008819055506201518060075401600981905550816001819055508360048190555080600381905550826002819055505050505050505050620002ae565b600042905090565b604051610a778062001a6f83390190565b6117b180620002be6000396000f30060606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632c4e722e146101495780633197cbb614610172578063355274ea1461019b5780633af32abf146101c457806340193883146102155780634042b66f1461023e5780634bb278f3146102675780634f9359451461027c5780635ab47550146102a957806378e97925146102d25780637d3d6522146102fb5780638d4e4083146103285780638da5cb5b146103555780639671ef91146103aa5780639b19251a146103d3578063aff177ca14610424578063b5545a3c14610489578063cf1405fe1461049e578063dad72332146104c7578063e2dc4310146104dc578063ecb70fb714610529578063f2fde38b14610556578063fbfa77cf1461058f578063fc0c546a146105e4575b61014733610639565b005b341561015457600080fd5b61015c610a24565b6040518082815260200191505060405180910390f35b341561017d57600080fd5b610185610a2a565b6040518082815260200191505060405180910390f35b34156101a657600080fd5b6101ae610a30565b6040518082815260200191505060405180910390f35b34156101cf57600080fd5b6101fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a36565b604051808215151515815260200191505060405180910390f35b341561022057600080fd5b610228610a8c565b6040518082815260200191505060405180910390f35b341561024957600080fd5b610251610a92565b6040518082815260200191505060405180910390f35b341561027257600080fd5b61027a610a98565b005b341561028757600080fd5b61028f610e3a565b604051808215151515815260200191505060405180910390f35b34156102b457600080fd5b6102bc610e49565b6040518082815260200191505060405180910390f35b34156102dd57600080fd5b6102e5610e4f565b6040518082815260200191505060405180910390f35b341561030657600080fd5b61030e610e55565b604051808215151515815260200191505060405180910390f35b341561033357600080fd5b61033b610e64565b604051808215151515815260200191505060405180910390f35b341561036057600080fd5b610368610e77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b557600080fd5b6103bd610e9c565b6040518082815260200191505060405180910390f35b34156103de57600080fd5b61040a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ea3565b604051808215151515815260200191505060405180910390f35b341561042f57600080fd5b6104876004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080351515906020019091905050610ec3565b005b341561049457600080fd5b61049c611005565b005b34156104a957600080fd5b6104b1611157565b6040518082815260200191505060405180910390f35b34156104d257600080fd5b6104da61115d565b005b34156104e757600080fd5b610513600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113b4565b6040518082815260200191505060405180910390f35b341561053457600080fd5b61053c6113cc565b604051808215151515815260200191505060405180910390f35b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113f3565b005b341561059a57600080fd5b6105a2611548565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105ef57600080fd5b6105f761156e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060008060008573ffffffffffffffffffffffffffffffffffffffff161415151561066557600080fd5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106bd57600080fd5b6106c5611594565b15156106d057600080fd5b3493506009546106de6115e9565b1115156107485760015461073a85600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b1115151561074757600080fd5b5b61075f600b5460025461160f90919063ffffffff16565b92508284111561076d578293505b610780843461160f90919063ffffffff16565b915061078b84611628565b6000821115610823578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156107d457600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167f50ea9274879b4e2a584129ff0e7d656cf15144ef80e8935d4cf890390f8f1580836040518082815260200191505060405180910390a25b61082c846116fc565b905061084384600b546115f190919063ffffffff16565b600b8190555061089b84600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8583604051808381526020018281526020019250505060405180910390a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a0157600080fd5b6102c65a03f11515610a1257600080fd5b50505060405180519050505050505050565b60045481565b60085481565b60025481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60035481565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af357600080fd5b600a60009054906101000a900460ff16151515610b0f57600080fd5b610b176113cc565b1515610b2257600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1610b71610e55565b15610d9e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343d726d66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610bfb57600080fd5b6102c65a03f11515610c0c57600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610d8557600080fd5b6102c65a03f11515610d9657600080fd5b505050610e38565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c52dc416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610e2357600080fd5b6102c65a03f11515610e3457600080fd5b5050505b565b6000600254600b541015905090565b60015481565b60075481565b6000600354600b541015905090565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a800a81565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2157600080fd5b600091505b8351821015610fff578382815181101515610f3d57fe5b90602001906020020151905082600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe79695dad1622e5cfb085702e2abebcb33fd471154ab1504f4c883df61e3e53b84604051808215151515815260200191505060405180910390a28180600101925050610f26565b50505050565b600060149054906101000a900460ff1615151561102157600080fd5b6001600060146101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16151561105757600080fd5b61105f610e55565b15151561106b57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa89401a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561112757600080fd5b6102c65a03f1151561113857600080fd5b50505060008060146101000a81548160ff021916908315150217905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ba57600080fd5b6111c26115e9565b600854111515156111d257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561129757600080fd5b6102c65a03f115156112a857600080fd5b50505060405180519050905060008111156113b157600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561138a57600080fd5b6102c65a03f1151561139b57600080fd5b5050506040518051905015156113b057600080fd5b5b50565b600d6020528060005260406000206000915090505481565b6000806008546113da6115e9565b11905080806113ed57506113ec610e3a565b5b91505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561148a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806007546115a56115e9565b101580156115bc57506008546115b96115e9565b11155b925060003414159150600254600b541090508280156115d85750815b80156115e15750805b935050505090565b600042905090565b600080828401905083811015151561160557fe5b8091505092915050565b600082821115151561161d57fe5b818303905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0182336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b15156116e457600080fd5b6125ee5a03f115156116f557600080fd5b5050505050565b6000611728600a800a61171a6004548561172f90919063ffffffff16565b61176a90919063ffffffff16565b9050919050565b60008060008414156117445760009150611763565b828402905082848281151561175557fe5b0414151561175f57fe5b8091505b5092915050565b600080828481151561177857fe5b04905080915050929150505600a165627a7a72305820060d2c01638c1affd4f3ae045fff8aa56a62e4c6bf8f8c30cac74bbdcc82b58300296060604052341561000f57600080fd5b604051602080610a7783398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100a757600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260146101000a81548160ff0219169083600281111561010757fe5b02179055505061095b8061011c6000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806343d726d61461009e578063521eb273146100b35780638c52dc41146101085780638da5cb5b1461011d578063c19d93fb14610172578063cb13cddb146101a9578063f2fde38b146101f6578063f340fa011461022f578063fa89401a1461025d575b600080fd5b34156100a957600080fd5b6100b1610296565b005b34156100be57600080fd5b6100c66103ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561011357600080fd5b61011b610415565b005b341561012857600080fd5b6101306104f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017d57600080fd5b61018561051b565b6040518082600281111561019557fe5b60ff16815260200191505060405180910390f35b34156101b457600080fd5b6101e0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061052e565b6040518082815260200191505060405180910390f35b341561020157600080fd5b61022d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610546565b005b61025b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061069b565b005b341561026857600080fd5b610294600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107c2565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102f157600080fd5b600060028111156102fe57fe5b600260149054906101000a900460ff16600281111561031957fe5b14151561032557600080fd5b60028060146101000a81548160ff0219169083600281111561034357fe5b02179055507f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156103ed57600080fd5b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561047057600080fd5b6000600281111561047d57fe5b600260149054906101000a900460ff16600281111561049857fe5b1415156104a457600080fd5b6001600260146101000a81548160ff021916908360028111156104c357fe5b02179055507f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8960405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff1681565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105dd57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106f657600080fd5b6000600281111561070357fe5b600260149054906101000a900460ff16600281111561071e57fe5b14151561072a57600080fd5b61077c34600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461091190919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600160028111156107d157fe5b600260149054906101000a900460ff1660028111156107ec57fe5b1415156107f857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156108bf57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651826040518082815260200191505060405180910390a25050565b600080828401905083811015151561092557fe5b80915050929150505600a165627a7a72305820b119bf336cdc9b65e6e068d30ab44c96de686e5f1421af5fd9473c2ab80671b700290000000000000000000000008db54ca569d3019a2ba126d03c37c44b5ef81ef60000000000000000000000007efc2977d11e078ce0c9aca1c12ab1683e93c875000000000000000000000000000000000000000000000000000000005a785550000000000000000000000000000000000000000000000000000000005a9d3f5000000000000000000000000000000000000000000000000000000000000011ff0000000000000000000000000000000000000000000001057bc7a2f560e780000000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000003635c9adc5dea00000

Deployed Bytecode

0x60606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632c4e722e146101495780633197cbb614610172578063355274ea1461019b5780633af32abf146101c457806340193883146102155780634042b66f1461023e5780634bb278f3146102675780634f9359451461027c5780635ab47550146102a957806378e97925146102d25780637d3d6522146102fb5780638d4e4083146103285780638da5cb5b146103555780639671ef91146103aa5780639b19251a146103d3578063aff177ca14610424578063b5545a3c14610489578063cf1405fe1461049e578063dad72332146104c7578063e2dc4310146104dc578063ecb70fb714610529578063f2fde38b14610556578063fbfa77cf1461058f578063fc0c546a146105e4575b61014733610639565b005b341561015457600080fd5b61015c610a24565b6040518082815260200191505060405180910390f35b341561017d57600080fd5b610185610a2a565b6040518082815260200191505060405180910390f35b34156101a657600080fd5b6101ae610a30565b6040518082815260200191505060405180910390f35b34156101cf57600080fd5b6101fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a36565b604051808215151515815260200191505060405180910390f35b341561022057600080fd5b610228610a8c565b6040518082815260200191505060405180910390f35b341561024957600080fd5b610251610a92565b6040518082815260200191505060405180910390f35b341561027257600080fd5b61027a610a98565b005b341561028757600080fd5b61028f610e3a565b604051808215151515815260200191505060405180910390f35b34156102b457600080fd5b6102bc610e49565b6040518082815260200191505060405180910390f35b34156102dd57600080fd5b6102e5610e4f565b6040518082815260200191505060405180910390f35b341561030657600080fd5b61030e610e55565b604051808215151515815260200191505060405180910390f35b341561033357600080fd5b61033b610e64565b604051808215151515815260200191505060405180910390f35b341561036057600080fd5b610368610e77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b557600080fd5b6103bd610e9c565b6040518082815260200191505060405180910390f35b34156103de57600080fd5b61040a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ea3565b604051808215151515815260200191505060405180910390f35b341561042f57600080fd5b6104876004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080351515906020019091905050610ec3565b005b341561049457600080fd5b61049c611005565b005b34156104a957600080fd5b6104b1611157565b6040518082815260200191505060405180910390f35b34156104d257600080fd5b6104da61115d565b005b34156104e757600080fd5b610513600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113b4565b6040518082815260200191505060405180910390f35b341561053457600080fd5b61053c6113cc565b604051808215151515815260200191505060405180910390f35b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113f3565b005b341561059a57600080fd5b6105a2611548565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105ef57600080fd5b6105f761156e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060008060008573ffffffffffffffffffffffffffffffffffffffff161415151561066557600080fd5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106bd57600080fd5b6106c5611594565b15156106d057600080fd5b3493506009546106de6115e9565b1115156107485760015461073a85600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b1115151561074757600080fd5b5b61075f600b5460025461160f90919063ffffffff16565b92508284111561076d578293505b610780843461160f90919063ffffffff16565b915061078b84611628565b6000821115610823578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156107d457600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167f50ea9274879b4e2a584129ff0e7d656cf15144ef80e8935d4cf890390f8f1580836040518082815260200191505060405180910390a25b61082c846116fc565b905061084384600b546115f190919063ffffffff16565b600b8190555061089b84600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8583604051808381526020018281526020019250505060405180910390a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a0157600080fd5b6102c65a03f11515610a1257600080fd5b50505060405180519050505050505050565b60045481565b60085481565b60025481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60035481565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af357600080fd5b600a60009054906101000a900460ff16151515610b0f57600080fd5b610b176113cc565b1515610b2257600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1610b71610e55565b15610d9e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343d726d66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610bfb57600080fd5b6102c65a03f11515610c0c57600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610d8557600080fd5b6102c65a03f11515610d9657600080fd5b505050610e38565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c52dc416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610e2357600080fd5b6102c65a03f11515610e3457600080fd5b5050505b565b6000600254600b541015905090565b60015481565b60075481565b6000600354600b541015905090565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a800a81565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2157600080fd5b600091505b8351821015610fff578382815181101515610f3d57fe5b90602001906020020151905082600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe79695dad1622e5cfb085702e2abebcb33fd471154ab1504f4c883df61e3e53b84604051808215151515815260200191505060405180910390a28180600101925050610f26565b50505050565b600060149054906101000a900460ff1615151561102157600080fd5b6001600060146101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16151561105757600080fd5b61105f610e55565b15151561106b57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa89401a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561112757600080fd5b6102c65a03f1151561113857600080fd5b50505060008060146101000a81548160ff021916908315150217905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ba57600080fd5b6111c26115e9565b600854111515156111d257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561129757600080fd5b6102c65a03f115156112a857600080fd5b50505060405180519050905060008111156113b157600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561138a57600080fd5b6102c65a03f1151561139b57600080fd5b5050506040518051905015156113b057600080fd5b5b50565b600d6020528060005260406000206000915090505481565b6000806008546113da6115e9565b11905080806113ed57506113ec610e3a565b5b91505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561148a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806007546115a56115e9565b101580156115bc57506008546115b96115e9565b11155b925060003414159150600254600b541090508280156115d85750815b80156115e15750805b935050505090565b600042905090565b600080828401905083811015151561160557fe5b8091505092915050565b600082821115151561161d57fe5b818303905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0182336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b15156116e457600080fd5b6125ee5a03f115156116f557600080fd5b5050505050565b6000611728600a800a61171a6004548561172f90919063ffffffff16565b61176a90919063ffffffff16565b9050919050565b60008060008414156117445760009150611763565b828402905082848281151561175557fe5b0414151561175f57fe5b8091505b5092915050565b600080828481151561177857fe5b04905080915050929150505600a165627a7a72305820060d2c01638c1affd4f3ae045fff8aa56a62e4c6bf8f8c30cac74bbdcc82b5830029

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

0000000000000000000000008db54ca569d3019a2ba126d03c37c44b5ef81ef60000000000000000000000007efc2977d11e078ce0c9aca1c12ab1683e93c875000000000000000000000000000000000000000000000000000000005a785550000000000000000000000000000000000000000000000000000000005a9d3f5000000000000000000000000000000000000000000000000000000000000011ff0000000000000000000000000000000000000000000001057bc7a2f560e780000000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000003635c9adc5dea00000

-----Decoded View---------------
Arg [0] : _token (address): 0x8dB54ca569D3019A2ba126D03C37c44b5eF81EF6
Arg [1] : _wallet (address): 0x7EfC2977D11E078ce0C9acA1C12aB1683E93C875
Arg [2] : _startTime (uint256): 1517835600
Arg [3] : _endTime (uint256): 1520254800
Arg [4] : _rate (uint256): 4607
Arg [5] : _cap (uint256): 4823519480000000000000
Arg [6] : _firstDayCap (uint256): 10000000000000000000
Arg [7] : _goal (uint256): 1000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000008db54ca569d3019a2ba126d03c37c44b5ef81ef6
Arg [1] : 0000000000000000000000007efc2977d11e078ce0c9aca1c12ab1683e93c875
Arg [2] : 000000000000000000000000000000000000000000000000000000005a785550
Arg [3] : 000000000000000000000000000000000000000000000000000000005a9d3f50
Arg [4] : 00000000000000000000000000000000000000000000000000000000000011ff
Arg [5] : 0000000000000000000000000000000000000000000001057bc7a2f560e78000
Arg [6] : 0000000000000000000000000000000000000000000000008ac7230489e80000
Arg [7] : 00000000000000000000000000000000000000000000003635c9adc5dea00000


Swarm Source

bzzr://b119bf336cdc9b65e6e068d30ab44c96de686e5f1421af5fd9473c2ab80671b7

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.