ETH Price: $3,279.97 (-5.61%)

Contract

0x1518e1d8c6cf6584B2AD4f4ba577650Ac4903107
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer55042292018-04-25 16:31:212460 days ago1524673881IN
0x1518e1d8...Ac4903107
0.05 ETH0.0011019820
Resume55042042018-04-25 16:25:092460 days ago1524673509IN
0x1518e1d8...Ac4903107
0 ETH0.0003164110
Tune55041862018-04-25 16:20:342460 days ago1524673234IN
0x1518e1d8...Ac4903107
0 ETH0.0004162910
Suspend55041722018-04-25 16:16:082460 days ago1524672968IN
0x1518e1d8...Ac4903107
0 ETH0.0002845410
Transfer54907012018-04-23 8:15:592462 days ago1524471359IN
0x1518e1d8...Ac4903107
10 ETH0.000434420
Transfer54906742018-04-23 8:09:222462 days ago1524470962IN
0x1518e1d8...Ac4903107
10 ETH0.000434420
Transfer54906562018-04-23 8:06:102462 days ago1524470770IN
0x1518e1d8...Ac4903107
10 ETH0.0000211
Transfer54898682018-04-23 4:50:262462 days ago1524459026IN
0x1518e1d8...Ac4903107
1 ETH0.000434420
Transfer54898462018-04-23 4:43:162462 days ago1524458596IN
0x1518e1d8...Ac4903107
1 ETH0.000021721
Transfer54898212018-04-23 4:37:072462 days ago1524458227IN
0x1518e1d8...Ac4903107
1 ETH0.000434420
Transfer54872142018-04-22 17:57:472463 days ago1524419867IN
0x1518e1d8...Ac4903107
4 ETH0.0032946547
Transfer54867752018-04-22 16:16:332463 days ago1524413793IN
0x1518e1d8...Ac4903107
0.25 ETH0.0035049550
Transfer54717422018-04-20 2:17:022465 days ago1524190622IN
0x1518e1d8...Ac4903107
0.26354336 ETH0.000066783.18
Transfer54487552018-04-16 3:45:142469 days ago1523850314IN
0x1518e1d8...Ac4903107
2 ETH0.0014019820
Transfer54391352018-04-14 12:45:232471 days ago1523709923IN
0x1518e1d8...Ac4903107
14.93 ETH0.0011019820
Transfer54278932018-04-12 15:02:162473 days ago1523545336IN
0x1518e1d8...Ac4903107
0.19 ETH0.000110192
Transfer54272792018-04-12 12:35:542473 days ago1523536554IN
0x1518e1d8...Ac4903107
1 ETH0.0011019820
Transfer54266372018-04-12 9:59:552473 days ago1523527195IN
0x1518e1d8...Ac4903107
0.1 ETH0.000220394
Transfer54265662018-04-12 9:42:262473 days ago1523526146IN
0x1518e1d8...Ac4903107
0.1 ETH0.000275495
Transfer54265452018-04-12 9:37:332473 days ago1523525853IN
0x1518e1d8...Ac4903107
0.3 ETH0.000280394
Transfer54001422018-04-08 0:22:402477 days ago1523146960IN
0x1518e1d8...Ac4903107
0.6 ETH0.0014019820
Transfer53905522018-04-06 10:16:422479 days ago1523009802IN
0x1518e1d8...Ac4903107
0.09 ETH0.0014019820
Transfer53901142018-04-06 8:33:332479 days ago1523003613IN
0x1518e1d8...Ac4903107
1.6 ETH0.0014019820
Transfer53608052018-04-01 11:58:392484 days ago1522583919IN
0x1518e1d8...Ac4903107
1 ETH0.000110192
Transfer53606762018-04-01 11:27:002484 days ago1522582020IN
0x1518e1d8...Ac4903107
1 ETH0.000055091
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
55042292018-04-25 16:31:212460 days ago1524673881
0x1518e1d8...Ac4903107
0.05 ETH
54872142018-04-22 17:57:472463 days ago1524419867
0x1518e1d8...Ac4903107
4 ETH
54867752018-04-22 16:16:332463 days ago1524413793
0x1518e1d8...Ac4903107
0.25 ETH
54487552018-04-16 3:45:142469 days ago1523850314
0x1518e1d8...Ac4903107
2 ETH
54391352018-04-14 12:45:232471 days ago1523709923
0x1518e1d8...Ac4903107
14.93 ETH
54278932018-04-12 15:02:162473 days ago1523545336
0x1518e1d8...Ac4903107
0.19 ETH
54272792018-04-12 12:35:542473 days ago1523536554
0x1518e1d8...Ac4903107
1 ETH
54266372018-04-12 9:59:552473 days ago1523527195
0x1518e1d8...Ac4903107
0.1 ETH
54265662018-04-12 9:42:262473 days ago1523526146
0x1518e1d8...Ac4903107
0.1 ETH
54265452018-04-12 9:37:332473 days ago1523525853
0x1518e1d8...Ac4903107
0.3 ETH
54001422018-04-08 0:22:402477 days ago1523146960
0x1518e1d8...Ac4903107
0.6 ETH
53905522018-04-06 10:16:422479 days ago1523009802
0x1518e1d8...Ac4903107
0.09 ETH
53901142018-04-06 8:33:332479 days ago1523003613
0x1518e1d8...Ac4903107
1.6 ETH
53608052018-04-01 11:58:392484 days ago1522583919
0x1518e1d8...Ac4903107
1 ETH
53606762018-04-01 11:27:002484 days ago1522582020
0x1518e1d8...Ac4903107
1 ETH
53542942018-03-31 10:23:072485 days ago1522491787
0x1518e1d8...Ac4903107
2 ETH
53516722018-03-30 23:45:522485 days ago1522453552
0x1518e1d8...Ac4903107
0.2 ETH
53500812018-03-30 17:15:242486 days ago1522430124
0x1518e1d8...Ac4903107
0.1 ETH
53448272018-03-29 20:00:542487 days ago1522353654
0x1518e1d8...Ac4903107
0.54403 ETH
53448212018-03-29 19:59:302487 days ago1522353570
0x1518e1d8...Ac4903107
2.495 ETH
53255002018-03-26 13:40:102490 days ago1522071610
0x1518e1d8...Ac4903107
1.87 ETH
53021832018-03-22 16:42:412494 days ago1521736961
0x1518e1d8...Ac4903107
0.1 ETH
52974732018-03-21 21:47:492494 days ago1521668869
0x1518e1d8...Ac4903107
1.35981872 ETH
52864332018-03-20 1:18:052496 days ago1521508685
0x1518e1d8...Ac4903107
2 ETH
52700882018-03-17 7:13:342499 days ago1521270814
0x1518e1d8...Ac4903107
0.5 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OTCPreICO

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.18;

// File: contracts/flavours/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;

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

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

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

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

// File: contracts/commons/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    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;
  }
}

// File: contracts/flavours/Lockable.sol

/**
 * @title Lockable
 * @dev Base contract which allows children to
 *      implement main operations locking mechanism.
 */
contract Lockable is Ownable {
  event Lock();
  event Unlock();

  bool public locked = false;

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

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

  /**
   * @dev called by the owner to locke, triggers locked state
   */
  function lock() onlyOwner whenNotLocked public {
    locked = true;
    Lock();
  }

  /**
   * @dev called by the owner
   *      to unlock, returns to unlocked state
   */
  function unlock() onlyOwner whenLocked public {
    locked = false;
    Unlock();
  }
}

// File: contracts/base/BaseFixedERC20Token.sol

contract BaseFixedERC20Token is Lockable {
  using SafeMath for uint;

  /// @dev ERC20 Total supply
  uint public totalSupply;

  mapping(address => uint) balances;

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

  /// @dev Fired if Token transfered accourding to ERC20
  event Transfer(address indexed from, address indexed to, uint value);

  /// @dev Fired if Token withdraw is approved accourding to ERC20
  event Approval(address indexed owner, address indexed spender, uint value);

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

  /**
   * @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_, uint value_) whenNotLocked public returns (bool) {
    require(to_ != address(0) && 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 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_ uint the amount of tokens to be transferred
   */
  function transferFrom(address from_, address to_, uint value_) whenNotLocked public returns (bool) {
    require(to_ != address(0) && value_ <= balances[from_] && 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.
   *
   * To change the approve amount you first have to reduce the addresses
   * allowance to zero by calling `approve(spender_, 0)` if it is not
   * already 0 to mitigate the race condition described in:
   * 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_, uint value_) whenNotLocked public returns (bool) {
    if (value_ != 0 && allowed[msg.sender][spender_] != 0) {
      revert();
    }
    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 uint specifying the amount of tokens still available for the spender.
   */
  function allowance(address owner_, address spender_) view public returns (uint) {
    return allowed[owner_][spender_];
  }
}

// File: contracts/base/BaseICOToken.sol

/**
 * @dev Not mintable, ERC20 compilant token, distributed by ICO/Pre-ICO.
 */
contract BaseICOToken is BaseFixedERC20Token {

  /// @dev Available supply of tokens
  uint public availableSupply;

  /// @dev ICO/Pre-ICO smart contract allowed to distribute public funds for this
  address public ico;

  /// @dev Fired if investment for `amount` of tokens performed by `to` address
  event ICOTokensInvested(address indexed to, uint amount);

  /// @dev ICO contract changed for this token
  event ICOChanged(address indexed icoContract);

  /**
   * @dev Not mintable, ERC20 compilant token, distributed by ICO/Pre-ICO.
   * @param totalSupply_ Total tokens supply.
   */
  function BaseICOToken(uint totalSupply_) public {
    locked = true; // Audit: I'd call lock() for better readability
    totalSupply = totalSupply_;
    availableSupply = totalSupply_;
  }

  /**
   * @dev Set address of ICO smart-contract which controls token
   * initial token distribution.
   * @param ico_ ICO contract address.
   */
  function changeICO(address ico_) onlyOwner public {
    ico = ico_;
    ICOChanged(ico);
  }

  // Audit: Keep the sender logic separated from the input validation
  // Audit Create modifier onlyICOAddress -  and use it in the icoInvestment method
  function isValidICOInvestment(address to_, uint amount_) internal view returns(bool) {
    return msg.sender == ico && to_ != address(0) && amount_ <= availableSupply;
  }

  /**
   * @dev Assign `amount_` of tokens to investor identified by `to_` address.
   * @param to_ Investor address.
   * @param amount_ Number of tokens distributed.
   */
  function icoInvestment(address to_, uint amount_) public returns (uint) {
    require(isValidICOInvestment(to_, amount_));
    availableSupply -= amount_; // Audit: Please keep using safe math here too 
    balances[to_] = balances[to_].add(amount_);
    ICOTokensInvested(to_, amount_);
    return amount_;
  }
}

// File: contracts/base/BaseICO.sol

/**
 * @dev Base abstract smart contract for any ICO
 */
contract BaseICO is Ownable {

  /// @dev ICO state
  enum State {
    // ICO is not active and not started
    Inactive,
    // ICO is active, tokens can be distributed among investors.
    // ICO parameters (end date, hard/low caps) cannot be changed.
    Active,
    // ICO is suspended, tokens cannot be distributed among investors.
    // ICO can be resumed to `Active state`.
    // ICO parameters (end date, hard/low caps) may changed.
    Suspended,
    // ICO is termnated by owner, ICO cannot be resumed.
    Terminated,
    // ICO goals are not reached,
    // ICO terminated and cannot be resumed.
    NotCompleted,
    // ICO completed, ICO goals reached successfully,
    // ICO terminated and cannot be resumed.
    Completed
  }

  /// @dev Token which controlled by this ICO
  BaseICOToken public token;

  /// @dev Current ICO state.
  State public state;

  /// @dev ICO start date seconds since epoch.
  uint public startAt;

  /// @dev ICO end date seconds since epoch.
  uint public endAt;

  /// @dev Minimal amount of investments in wei needed for successfull ICO
  uint public lowCapWei; // Audit: I'd name this softCapWei

  /// @dev Maximal amount of investments in wei for this ICO.
  /// If reached ICO will be in `Completed` state.
  uint public hardCapWei;

  /// @dev Minimal amount of investments in wei per investor.
  uint public lowCapTxWei; // Audit: I'd name this minimalContributionWei

  /// @dev Maximal amount of investments in wei per investor.
  uint public hardCapTxWei; // Audit: I'd name this maximumContributionWei

  /// @dev Number of investments collected by this ICO
  uint public collectedWei;

  /// @dev Team wallet used to collect funds
  address public teamWallet;

  /// @dev True if whitelist enabled
  bool public whitelistEnabled = true;

  /// @dev ICO whitelist
  mapping (address => bool) public whitelist;

  // ICO state transition events
  event ICOStarted(uint indexed endAt, uint lowCapWei, uint hardCapWei, uint lowCapTxWei, uint hardCapTxWei);
  event ICOResumed(uint indexed endAt, uint lowCapWei, uint hardCapWei, uint lowCapTxWei, uint hardCapTxWei);
  event ICOSuspended();
  event ICOTerminated();
  event ICONotCompleted();
  event ICOCompleted(uint collectedWei);
  event ICOInvestment(address indexed from, uint investedWei, uint tokens, uint8 bonusPct);
  event ICOWhitelisted(address indexed addr);
  event ICOBlacklisted(address indexed addr);

  modifier isSuspended() {
    require(state == State.Suspended);
    _;
  }

  modifier isActive() {
    require(state == State.Active);
    _;
  }

  /**
   * Add address to ICO whitelist
   * @param address_ Investor address
   */
  function whitelist(address address_) external onlyOwner {
    whitelist[address_] = true;
    ICOWhitelisted(address_);
  }

  /**
   * Remove address from ICO whitelist
   * @param address_ Investor address
   */
  function blacklist(address address_) external onlyOwner {
    delete whitelist[address_];
    ICOBlacklisted(address_);
  }

  /**
   * @dev Returns true if given address in ICO whitelist
   */
  function whitelisted(address address_) public view returns (bool) {
    if (whitelistEnabled) {
      return whitelist[address_];
    } else {
      return true;
    }
  }

  /**
   * @dev Enable whitelisting
   */
  function enableWhitelist() public onlyOwner {
    whitelistEnabled = true;
  }

  /**
   * @dev Disable whitelisting
   */
  function disableWhitelist() public onlyOwner {
    whitelistEnabled = false;
  }

  /**
   * @dev Trigger start of ICO.
   * @param endAt_ ICO end date, seconds since epoch.
   */
  function start(uint endAt_) onlyOwner public {
    require(endAt_ > block.timestamp && state == State.Inactive);
    endAt = endAt_;
    startAt = block.timestamp;
    state = State.Active;
    ICOStarted(endAt, lowCapWei, hardCapWei, lowCapTxWei, hardCapTxWei);
  }

  /**
   * @dev Suspend this ICO.
   * ICO can be activated later by calling `resume()` function.
   * In suspend state, ICO owner can change basic ICO paraneter using `tune()` function,
   * tokens cannot be distributed among investors.
   */
  function suspend() onlyOwner isActive public {
    state = State.Suspended;
    ICOSuspended();
  }

  /**
   * @dev Terminate the ICO.
   * ICO goals are not reached, ICO terminated and cannot be resumed.
   */
  function terminate() onlyOwner public {
    require(state != State.Terminated &&
            state != State.NotCompleted &&
            state != State.Completed);
    state = State.Terminated;
    ICOTerminated();
  }

  /**
   * @dev Change basic ICO parameters. Can be done only during `Suspended` state.
   * Any provided parameter is used only if it is not zero.
   * @param endAt_ ICO end date seconds since epoch. Used if it is not zero.
   * @param lowCapWei_ ICO low capacity. Used if it is not zero.
   * @param hardCapWei_ ICO hard capacity. Used if it is not zero.
   * @param lowCapTxWei_ Min limit for ICO per transaction
   * @param hardCapTxWei_ Hard limit for ICO per transaction
   */
  function tune(uint endAt_,
                uint lowCapWei_,
                uint hardCapWei_,
                uint lowCapTxWei_,
                uint hardCapTxWei_) onlyOwner isSuspended public {
    if (endAt_ > block.timestamp) {
      endAt = endAt_;
    }
    if (lowCapWei_ > 0) {
      lowCapWei = lowCapWei_;
    }
    if (hardCapWei_ > 0) {
      hardCapWei = hardCapWei_;
    }
    if (lowCapTxWei_ > 0) {
      lowCapTxWei = lowCapTxWei_;
    }
    if (hardCapTxWei_ > 0) {
      hardCapTxWei = hardCapTxWei_;
    }
    require(lowCapWei <= hardCapWei && lowCapTxWei <= hardCapTxWei);
    touch();
  }

  /**
   * @dev Resume a previously suspended ICO.
   */
  function resume() onlyOwner isSuspended public {
    state = State.Active;
    ICOResumed(endAt, lowCapWei, hardCapWei, lowCapTxWei, hardCapTxWei);
    touch();
  }

  /**
   * @dev Send ether to the fund collection wallet
   */
   // Audit: I could not find logic for refund on softCap not reached
   // Audit: Something like this might make sense for this case:
   // https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/crowdsale/RefundVault.sol
   // Here is how it can be used:
   // https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/crowdsale/RefundableCrowdsale.sol
  function forwardFunds() internal {
    teamWallet.transfer(msg.value);
  }

  /**
   * @dev Recalculate ICO state based on current block time.
   * Should be called periodically by ICO owner.
   */
  function touch() public;

  /**
   * @dev Buy tokens
   */
  function buyTokens() public payable;
}

// File: contracts/OTCPreICO.sol

// Audit: If this contract is used for the full ICO not only the pre-sale it might make sense to rename it to OTCCrowdsale or something similar

 
/**
 * @title OTCrit Pre-ICO smart contract.
 */
contract OTCPreICO is BaseICO {
  using SafeMath for uint;

  /// @dev 18 decimals for token
  uint internal constant ONE_TOKEN = 1e18;

  /// @dev 1e18 WEI == 1ETH == 5000 tokens
  uint public constant ETH_TOKEN_EXCHANGE_RATIO = 5000;

  // Audit: It might be better for these setters to be in a constructur in the BaseICO
  function OTCPreICO(address icoToken_,
                     address teamWallet_,
                     uint lowCapWei_,
                     uint hardCapWei_,
                     uint lowCapTxWei_,
                     uint hardCapTxWei_) public {
    require(icoToken_ != address(0) && teamWallet_ != address(0));
    token = BaseICOToken(icoToken_); 
    teamWallet = teamWallet_;
    state = State.Inactive;
    lowCapWei = lowCapWei_;
    hardCapWei = hardCapWei_;
    lowCapTxWei = lowCapTxWei_;
    hardCapTxWei = hardCapTxWei_;
  }

  /**
   * @dev Recalculate ICO state based on current block time.
   * Should be called periodically by ICO owner.
   */
  function touch() public {
    if (state != State.Active && state != State.Suspended) {
      return;
    }
    if (collectedWei >= hardCapWei) {
      state = State.Completed;
      endAt = block.timestamp;
      ICOCompleted(collectedWei);
    } else if (block.timestamp >= endAt) {
      if (collectedWei < lowCapWei) {
        state = State.NotCompleted;
        ICONotCompleted();
      } else {
        state = State.Completed;
        ICOCompleted(collectedWei);
      }
    }
  }

  function buyTokens() public payable {
    require(state == State.Active &&
            block.timestamp <= endAt &&
            msg.value >= lowCapTxWei &&
            msg.value <= hardCapTxWei &&
            collectedWei + msg.value <= hardCapWei &&
            whitelisted(msg.sender) );
    uint amountWei = msg.value;
    uint8 bonus = (block.timestamp - startAt >= 1 weeks) ? 10 : 20;
    uint iwei = bonus > 0 ? amountWei.mul(100 + bonus).div(100) : amountWei;
    uint itokens = iwei * ETH_TOKEN_EXCHANGE_RATIO;
    token.icoInvestment(msg.sender, itokens); // Transfer tokens to investor
    collectedWei = collectedWei.add(amountWei);
    ICOInvestment(msg.sender, amountWei, itokens, bonus);
    forwardFunds();
    touch();
  }

  /**
   * Accept direct payments
   */
  function() external payable {
    buyTokens();
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"terminate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ETH_TOKEN_EXCHANGE_RATIO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCapTxWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lowCapTxWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelistEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endAt","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":"endAt_","type":"uint256"}],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"address_","type":"address"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"touch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"disableWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"address_","type":"address"}],"name":"whitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"endAt_","type":"uint256"},{"name":"lowCapWei_","type":"uint256"},{"name":"hardCapWei_","type":"uint256"},{"name":"lowCapTxWei_","type":"uint256"},{"name":"hardCapTxWei_","type":"uint256"}],"name":"tune","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"suspend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardCapWei","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":"collectedWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lowCapWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"address_","type":"address"}],"name":"blacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"icoToken_","type":"address"},{"name":"teamWallet_","type":"address"},{"name":"lowCapWei_","type":"uint256"},{"name":"hardCapWei_","type":"uint256"},{"name":"lowCapTxWei_","type":"uint256"},{"name":"hardCapTxWei_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"endAt","type":"uint256"},{"indexed":false,"name":"lowCapWei","type":"uint256"},{"indexed":false,"name":"hardCapWei","type":"uint256"},{"indexed":false,"name":"lowCapTxWei","type":"uint256"},{"indexed":false,"name":"hardCapTxWei","type":"uint256"}],"name":"ICOStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"endAt","type":"uint256"},{"indexed":false,"name":"lowCapWei","type":"uint256"},{"indexed":false,"name":"hardCapWei","type":"uint256"},{"indexed":false,"name":"lowCapTxWei","type":"uint256"},{"indexed":false,"name":"hardCapTxWei","type":"uint256"}],"name":"ICOResumed","type":"event"},{"anonymous":false,"inputs":[],"name":"ICOSuspended","type":"event"},{"anonymous":false,"inputs":[],"name":"ICOTerminated","type":"event"},{"anonymous":false,"inputs":[],"name":"ICONotCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"collectedWei","type":"uint256"}],"name":"ICOCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"investedWei","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"bonusPct","type":"uint8"}],"name":"ICOInvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"ICOWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"ICOBlacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60606040526009805460a060020a60ff02191674010000000000000000000000000000000000000000179055341561003657600080fd5b60405160c080610fdf83398101604052808051919060200180519190602001805191906020018051919060200180519190602001805160008054600160a060020a03191633600160a060020a0390811691909117909155909250871615801591506100a95750600160a060020a03851615155b15156100b457600080fd5b6001805460098054600160a060020a03988916600160a060020a03199182161790915597909616969095169590951760a060020a60ff021916909355600491909155600555600655600755610ed18061010e6000396000f3006060604052600436106101535763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663046f7da2811461015d5780630c08bf8814610170578063281ae55814610183578063387ed59b146101a857806338d2b172146101bb57806351fb012d146101ce57806359927044146101f55780637cc3ae8c146102245780638da5cb5b1461023757806395805dad1461024a5780639b19251a14610260578063a55526db1461027f578063c19d93fb14610292578063c7446565146102c9578063cdfb2b4e146102dc578063d0febe4c14610153578063d6b0f484146102ef578063d936547e14610302578063e18b170e14610321578063e6400bbe14610343578063e923e70714610356578063f2fde38b14610369578063f637b7da14610388578063f8b2e2591461039b578063f9f92be4146103ae578063fc0c546a146103cd575b61015b6103e0565b005b341561016857600080fd5b61015b6105c8565b341561017b57600080fd5b61015b610694565b341561018e57600080fd5b610196610781565b60405190815260200160405180910390f35b34156101b357600080fd5b610196610787565b34156101c657600080fd5b61019661078d565b34156101d957600080fd5b6101e1610793565b604051901515815260200160405180910390f35b341561020057600080fd5b6102086107a3565b604051600160a060020a03909116815260200160405180910390f35b341561022f57600080fd5b6101966107b2565b341561024257600080fd5b6102086107b8565b341561025557600080fd5b61015b6004356107c7565b341561026b57600080fd5b61015b600160a060020a03600435166108a2565b341561028a57600080fd5b61015b610910565b341561029d57600080fd5b6102a5610ac0565b604051808260058111156102b557fe5b60ff16815260200191505060405180910390f35b34156102d457600080fd5b610196610ad0565b34156102e757600080fd5b61015b610ad6565b34156102fa57600080fd5b61015b610b17565b341561030d57600080fd5b6101e1600160a060020a0360043516610b52565b341561032c57600080fd5b61015b600435602435604435606435608435610b92565b341561034e57600080fd5b61015b610c4d565b341561036157600080fd5b610196610cee565b341561037457600080fd5b61015b600160a060020a0360043516610cf4565b341561039357600080fd5b610196610d8f565b34156103a657600080fd5b610196610d95565b34156103b957600080fd5b61015b600160a060020a0360043516610d9b565b34156103d857600080fd5b610208610e06565b60008080806001805460a060020a900460ff1660058111156103fe57fe5b14801561040d57506003544211155b801561041b57506006543410155b801561042957506007543411155b801561043b5750600554346008540111155b801561044b575061044b33610b52565b151561045657600080fd5b34935062093a806002544203101561046f576014610472565b600a5b925060008360ff161161048557836104ab565b6104ab606461049f8660ff8784011663ffffffff610e1516565b9063ffffffff610e4b16565b60015490925061138883029150600160a060020a0316637277236b33836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561052d57600080fd5b6102c65a03f1151561053e57600080fd5b5050506040518051505060085461055b908563ffffffff610e6216565b600855600160a060020a0333167f6e36893a4e5bef2f5ed1c0125b68495c13ad948e138ef22973b4528514ef5668858386604051928352602083019190915260ff166040808301919091526060909101905180910390a26105ba610e71565b6105c2610910565b50505050565b60005433600160a060020a039081169116146105e357600080fd5b600260015460a060020a900460ff1660058111156105fd57fe5b1461060757600080fd5b60018054819074ff0000000000000000000000000000000000000000191660a060020a8202179055506003547f6bf99bbfcd93ccaeb69bf505b279813e6ea9427a02f344aebeca8e4b3e10cc466004546005546006546007546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2610692610910565b565b60005433600160a060020a039081169116146106af57600080fd5b600360015460a060020a900460ff1660058111156106c957fe5b141580156106ef5750600460015460a060020a900460ff1660058111156106ec57fe5b14155b80156107135750600560015460a060020a900460ff16600581111561071057fe5b14155b151561071e57600080fd5b6001805474ff00000000000000000000000000000000000000001916740300000000000000000000000000000000000000001790557f1e2466c660fb4c22a780bb95549acaa2a7b03cca14c1dc1c82a7e36c8d5b357460405160405180910390a1565b61138881565b60075481565b60065481565b60095460a060020a900460ff1681565b600954600160a060020a031681565b60035481565b600054600160a060020a031681565b60005433600160a060020a039081169116146107e257600080fd5b42811180156108085750600060015460a060020a900460ff16600581111561080657fe5b145b151561081357600080fd5b60038190554260025560018054819074ff0000000000000000000000000000000000000000191660a060020a8202179055506003547f87e7dc5f7915642959de5fa47a1cb6307b5107406d5506813504ed14a7a30a516004546005546006546007546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250565b60005433600160a060020a039081169116146108bd57600080fd5b600160a060020a0381166000818152600a602052604090819020805460ff191660011790557fd49ab244ff4dcab14bc41675d0476050d6f212b0856bb84100e1d474d6ec996b905160405180910390a250565b6001805460a060020a900460ff16600581111561092957fe5b1415801561094f5750600260015460a060020a900460ff16600581111561094c57fe5b14155b1561095957610692565b600554600854106109d8576001805474ff0000000000000000000000000000000000000000191674050000000000000000000000000000000000000000179055426003556008547f81a5e88b00c2660f790b27221f79127ebaae2e3ffd4422e63456682041f567189060405190815260200160405180910390a1610692565b6003544210610692576004546008541015610a53576001805474ff00000000000000000000000000000000000000001916740400000000000000000000000000000000000000001790557f98a1803cd1adfb4ad3bb0c3428807a3115d46cd6bed95016864944bd67c121f960405160405180910390a1610692565b6001805474ff00000000000000000000000000000000000000001916740500000000000000000000000000000000000000001790556008547f81a5e88b00c2660f790b27221f79127ebaae2e3ffd4422e63456682041f567189060405190815260200160405180910390a1565b60015460a060020a900460ff1681565b60025481565b60005433600160a060020a03908116911614610af157600080fd5b6009805474ff0000000000000000000000000000000000000000191660a060020a179055565b60005433600160a060020a03908116911614610b3257600080fd5b6009805474ff000000000000000000000000000000000000000019169055565b60095460009060a060020a900460ff1615610b895750600160a060020a0381166000908152600a602052604090205460ff16610b8d565b5060015b919050565b60005433600160a060020a03908116911614610bad57600080fd5b600260015460a060020a900460ff166005811115610bc757fe5b14610bd157600080fd5b42851115610bdf5760038590555b6000841115610bee5760048490555b6000831115610bfd5760058390555b6000821115610c0c5760068290555b6000811115610c1b5760078190555b60055460045411158015610c33575060075460065411155b1515610c3e57600080fd5b610c46610910565b5050505050565b60005433600160a060020a03908116911614610c6857600080fd5b6001805460a060020a900460ff166005811115610c8157fe5b14610c8b57600080fd5b6001805474ff00000000000000000000000000000000000000001916740200000000000000000000000000000000000000001790557f05bf9ecee4a9d8d35d42deb54e912956a511544fa82392cb8c65e5010eff55d460405160405180910390a1565b60055481565b60005433600160a060020a03908116911614610d0f57600080fd5b600160a060020a0381161515610d2457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b60045481565b60005433600160a060020a03908116911614610db657600080fd5b600160a060020a0381166000818152600a602052604090819020805460ff191690557ff0e86f93f7127c0fbbe66c81d3f9ffc791a274118b803ecaa8843f4f18c5978f905160405180910390a250565b600154600160a060020a031681565b600080831515610e285760009150610e44565b50828202828482811515610e3857fe5b0414610e4057fe5b8091505b5092915050565b6000808284811515610e5957fe5b04949350505050565b600082820183811015610e4057fe5b600954600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561069257600080fd00a165627a7a723058204174afb494c3352d38a7e632151798171ca01c0003fa9732197b1afb7ace47dd0029000000000000000000000000763bbbfad61a1bef272c155aad828e3f8309710e0000000000000000000000003fbd2cf3de0f52bbe9786662c3791fbb468654e200000000000000000000000000000000000000000000000ad78ebc5ac620000000000000000000000000000000000000000000000000005150ae84a8cdf0000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000005150ae84a8cdf00000

Deployed Bytecode

0x6060604052600436106101535763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663046f7da2811461015d5780630c08bf8814610170578063281ae55814610183578063387ed59b146101a857806338d2b172146101bb57806351fb012d146101ce57806359927044146101f55780637cc3ae8c146102245780638da5cb5b1461023757806395805dad1461024a5780639b19251a14610260578063a55526db1461027f578063c19d93fb14610292578063c7446565146102c9578063cdfb2b4e146102dc578063d0febe4c14610153578063d6b0f484146102ef578063d936547e14610302578063e18b170e14610321578063e6400bbe14610343578063e923e70714610356578063f2fde38b14610369578063f637b7da14610388578063f8b2e2591461039b578063f9f92be4146103ae578063fc0c546a146103cd575b61015b6103e0565b005b341561016857600080fd5b61015b6105c8565b341561017b57600080fd5b61015b610694565b341561018e57600080fd5b610196610781565b60405190815260200160405180910390f35b34156101b357600080fd5b610196610787565b34156101c657600080fd5b61019661078d565b34156101d957600080fd5b6101e1610793565b604051901515815260200160405180910390f35b341561020057600080fd5b6102086107a3565b604051600160a060020a03909116815260200160405180910390f35b341561022f57600080fd5b6101966107b2565b341561024257600080fd5b6102086107b8565b341561025557600080fd5b61015b6004356107c7565b341561026b57600080fd5b61015b600160a060020a03600435166108a2565b341561028a57600080fd5b61015b610910565b341561029d57600080fd5b6102a5610ac0565b604051808260058111156102b557fe5b60ff16815260200191505060405180910390f35b34156102d457600080fd5b610196610ad0565b34156102e757600080fd5b61015b610ad6565b34156102fa57600080fd5b61015b610b17565b341561030d57600080fd5b6101e1600160a060020a0360043516610b52565b341561032c57600080fd5b61015b600435602435604435606435608435610b92565b341561034e57600080fd5b61015b610c4d565b341561036157600080fd5b610196610cee565b341561037457600080fd5b61015b600160a060020a0360043516610cf4565b341561039357600080fd5b610196610d8f565b34156103a657600080fd5b610196610d95565b34156103b957600080fd5b61015b600160a060020a0360043516610d9b565b34156103d857600080fd5b610208610e06565b60008080806001805460a060020a900460ff1660058111156103fe57fe5b14801561040d57506003544211155b801561041b57506006543410155b801561042957506007543411155b801561043b5750600554346008540111155b801561044b575061044b33610b52565b151561045657600080fd5b34935062093a806002544203101561046f576014610472565b600a5b925060008360ff161161048557836104ab565b6104ab606461049f8660ff8784011663ffffffff610e1516565b9063ffffffff610e4b16565b60015490925061138883029150600160a060020a0316637277236b33836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561052d57600080fd5b6102c65a03f1151561053e57600080fd5b5050506040518051505060085461055b908563ffffffff610e6216565b600855600160a060020a0333167f6e36893a4e5bef2f5ed1c0125b68495c13ad948e138ef22973b4528514ef5668858386604051928352602083019190915260ff166040808301919091526060909101905180910390a26105ba610e71565b6105c2610910565b50505050565b60005433600160a060020a039081169116146105e357600080fd5b600260015460a060020a900460ff1660058111156105fd57fe5b1461060757600080fd5b60018054819074ff0000000000000000000000000000000000000000191660a060020a8202179055506003547f6bf99bbfcd93ccaeb69bf505b279813e6ea9427a02f344aebeca8e4b3e10cc466004546005546006546007546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2610692610910565b565b60005433600160a060020a039081169116146106af57600080fd5b600360015460a060020a900460ff1660058111156106c957fe5b141580156106ef5750600460015460a060020a900460ff1660058111156106ec57fe5b14155b80156107135750600560015460a060020a900460ff16600581111561071057fe5b14155b151561071e57600080fd5b6001805474ff00000000000000000000000000000000000000001916740300000000000000000000000000000000000000001790557f1e2466c660fb4c22a780bb95549acaa2a7b03cca14c1dc1c82a7e36c8d5b357460405160405180910390a1565b61138881565b60075481565b60065481565b60095460a060020a900460ff1681565b600954600160a060020a031681565b60035481565b600054600160a060020a031681565b60005433600160a060020a039081169116146107e257600080fd5b42811180156108085750600060015460a060020a900460ff16600581111561080657fe5b145b151561081357600080fd5b60038190554260025560018054819074ff0000000000000000000000000000000000000000191660a060020a8202179055506003547f87e7dc5f7915642959de5fa47a1cb6307b5107406d5506813504ed14a7a30a516004546005546006546007546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250565b60005433600160a060020a039081169116146108bd57600080fd5b600160a060020a0381166000818152600a602052604090819020805460ff191660011790557fd49ab244ff4dcab14bc41675d0476050d6f212b0856bb84100e1d474d6ec996b905160405180910390a250565b6001805460a060020a900460ff16600581111561092957fe5b1415801561094f5750600260015460a060020a900460ff16600581111561094c57fe5b14155b1561095957610692565b600554600854106109d8576001805474ff0000000000000000000000000000000000000000191674050000000000000000000000000000000000000000179055426003556008547f81a5e88b00c2660f790b27221f79127ebaae2e3ffd4422e63456682041f567189060405190815260200160405180910390a1610692565b6003544210610692576004546008541015610a53576001805474ff00000000000000000000000000000000000000001916740400000000000000000000000000000000000000001790557f98a1803cd1adfb4ad3bb0c3428807a3115d46cd6bed95016864944bd67c121f960405160405180910390a1610692565b6001805474ff00000000000000000000000000000000000000001916740500000000000000000000000000000000000000001790556008547f81a5e88b00c2660f790b27221f79127ebaae2e3ffd4422e63456682041f567189060405190815260200160405180910390a1565b60015460a060020a900460ff1681565b60025481565b60005433600160a060020a03908116911614610af157600080fd5b6009805474ff0000000000000000000000000000000000000000191660a060020a179055565b60005433600160a060020a03908116911614610b3257600080fd5b6009805474ff000000000000000000000000000000000000000019169055565b60095460009060a060020a900460ff1615610b895750600160a060020a0381166000908152600a602052604090205460ff16610b8d565b5060015b919050565b60005433600160a060020a03908116911614610bad57600080fd5b600260015460a060020a900460ff166005811115610bc757fe5b14610bd157600080fd5b42851115610bdf5760038590555b6000841115610bee5760048490555b6000831115610bfd5760058390555b6000821115610c0c5760068290555b6000811115610c1b5760078190555b60055460045411158015610c33575060075460065411155b1515610c3e57600080fd5b610c46610910565b5050505050565b60005433600160a060020a03908116911614610c6857600080fd5b6001805460a060020a900460ff166005811115610c8157fe5b14610c8b57600080fd5b6001805474ff00000000000000000000000000000000000000001916740200000000000000000000000000000000000000001790557f05bf9ecee4a9d8d35d42deb54e912956a511544fa82392cb8c65e5010eff55d460405160405180910390a1565b60055481565b60005433600160a060020a03908116911614610d0f57600080fd5b600160a060020a0381161515610d2457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b60045481565b60005433600160a060020a03908116911614610db657600080fd5b600160a060020a0381166000818152600a602052604090819020805460ff191690557ff0e86f93f7127c0fbbe66c81d3f9ffc791a274118b803ecaa8843f4f18c5978f905160405180910390a250565b600154600160a060020a031681565b600080831515610e285760009150610e44565b50828202828482811515610e3857fe5b0414610e4057fe5b8091505b5092915050565b6000808284811515610e5957fe5b04949350505050565b600082820183811015610e4057fe5b600954600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561069257600080fd00a165627a7a723058204174afb494c3352d38a7e632151798171ca01c0003fa9732197b1afb7ace47dd0029

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

000000000000000000000000763bbbfad61a1bef272c155aad828e3f8309710e0000000000000000000000003fbd2cf3de0f52bbe9786662c3791fbb468654e200000000000000000000000000000000000000000000000ad78ebc5ac620000000000000000000000000000000000000000000000000005150ae84a8cdf0000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000005150ae84a8cdf00000

-----Decoded View---------------
Arg [0] : icoToken_ (address): 0x763BBbFad61a1BeF272c155Aad828E3f8309710e
Arg [1] : teamWallet_ (address): 0x3fBD2cf3DE0F52BBe9786662C3791FbB468654E2
Arg [2] : lowCapWei_ (uint256): 200000000000000000000
Arg [3] : hardCapWei_ (uint256): 1500000000000000000000
Arg [4] : lowCapTxWei_ (uint256): 50000000000000000
Arg [5] : hardCapTxWei_ (uint256): 1500000000000000000000

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000763bbbfad61a1bef272c155aad828e3f8309710e
Arg [1] : 0000000000000000000000003fbd2cf3de0f52bbe9786662c3791fbb468654e2
Arg [2] : 00000000000000000000000000000000000000000000000ad78ebc5ac6200000
Arg [3] : 00000000000000000000000000000000000000000000005150ae84a8cdf00000
Arg [4] : 00000000000000000000000000000000000000000000000000b1a2bc2ec50000
Arg [5] : 00000000000000000000000000000000000000000000005150ae84a8cdf00000


Swarm Source

bzzr://4174afb494c3352d38a7e632151798171ca01c0003fa9732197b1afb7ace47dd

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.