ETH Price: $2,736.94 (-2.32%)

Contract

0x00A9F7D093C46D95F0318e4A6fFc6Ed68F73044C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer39885482017-07-07 15:04:472786 days ago1499439887IN
0x00A9F7D0...68F73044C
0.05 ETH0.000551621.88894988
Transfer39795572017-07-05 20:07:562788 days ago1499285276IN
0x00A9F7D0...68F73044C
0.2 ETH0.00062525
Transfer39794352017-07-05 19:31:452788 days ago1499283105IN
0x00A9F7D0...68F73044C
0.2 ETH0.0062525
Transfer39784872017-07-05 15:10:052788 days ago1499267405IN
0x00A9F7D0...68F73044C
0.61377092 ETH0.0010521
Transfer39709832017-07-04 3:30:112790 days ago1499139011IN
0x00A9F7D0...68F73044C
0.2 ETH0.01260
Transfer39699562017-07-03 22:35:082790 days ago1499121308IN
0x00A9F7D0...68F73044C
0.2 ETH0.00170121
Transfer39699512017-07-03 22:33:372790 days ago1499121217IN
0x00A9F7D0...68F73044C
0.2 ETH0.00086121
Transfer39699452017-07-03 22:32:372790 days ago1499121157IN
0x00A9F7D0...68F73044C
0.2 ETH0.00052521
Transfer39699322017-07-03 22:30:012790 days ago1499121001IN
0x00A9F7D0...68F73044C
0.2 ETH0.00044121
Transfer39693382017-07-03 19:43:332790 days ago1499111013IN
0x00A9F7D0...68F73044C
0.5 ETH0.00044121
Transfer39688922017-07-03 17:32:262790 days ago1499103146IN
0x00A9F7D0...68F73044C
0.01 ETH0.00044121
Transfer39684492017-07-03 15:24:082790 days ago1499095448IN
0x00A9F7D0...68F73044C
0.2 ETH0.0005708222.65161452
Transfer39680502017-07-03 13:25:262790 days ago1499088326IN
0x00A9F7D0...68F73044C
0.087 ETH0.00660
Transfer39679142017-07-03 12:44:352790 days ago1499085875IN
0x00A9F7D0...68F73044C
0.1 ETH0.0031521
Transfer39671302017-07-03 9:04:332791 days ago1499072673IN
0x00A9F7D0...68F73044C
0.245 ETH0.006321
Transfer39669222017-07-03 8:04:082791 days ago1499069048IN
0x00A9F7D0...68F73044C
0.31299165 ETH0.0150
Transfer39669112017-07-03 8:02:182791 days ago1499068938IN
0x00A9F7D0...68F73044C
0.32299165 ETH0.0010550
Withdraw39668442017-07-03 7:43:012791 days ago1499067781IN
0x00A9F7D0...68F73044C
0 ETH0.0013115524
Transfer39668442017-07-03 7:43:012791 days ago1499067781IN
0x00A9F7D0...68F73044C
1.384345 ETH0.0022179424.64386002
Transfer39668372017-07-03 7:40:012791 days ago1499067601IN
0x00A9F7D0...68F73044C
0.31818593 ETH0.0014937624
Transfer39668192017-07-03 7:35:552791 days ago1499067355IN
0x00A9F7D0...68F73044C
5 ETH0.0023911929
Transfer39668172017-07-03 7:34:482791 days ago1499067288IN
0x00A9F7D0...68F73044C
5 ETH0.0014529
Transfer39668142017-07-03 7:33:042791 days ago1499067184IN
0x00A9F7D0...68F73044C
10 ETH0.002929
Transfer39668122017-07-03 7:32:302791 days ago1499067150IN
0x00A9F7D0...68F73044C
0.5 ETH0.0017315521
Transfer39668122017-07-03 7:32:302791 days ago1499067150IN
0x00A9F7D0...68F73044C
1.68840078 ETH0.0020613725
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
39668442017-07-03 7:43:012791 days ago1499067781
0x00A9F7D0...68F73044C
751.87969924 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AhooleeTokenPreSale

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-07-03
*/

pragma solidity ^0.4.11;

/**
 * Math operations with safety checks
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

  function add(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

}

/*
 * Ownable
 *
 * Base contract with an owner.
 * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
 */
contract Ownable {
  address public owner;

  function Ownable() {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    if (msg.sender != owner) {
      throw;
    }
    _;
  }

  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}


/*
 * Haltable
 *
 * Abstract contract that allows children to implement an
 * emergency stop mechanism. Differs from Pausable by causing a throw when in halt mode.
 *
 *
 * Originally envisioned in FirstBlood ICO contract.
 */
contract Haltable is Ownable {
  bool public halted;

  modifier stopInEmergency {
    if (halted) throw;
    _;
  }

  modifier onlyInEmergency {
    if (!halted) throw;
    _;
  }

  // called by the owner on emergency, triggers stopped state
  function halt() external onlyOwner {
    halted = true;
  }

  // called by the owner on end of emergency, returns to normal state
  function unhalt() external onlyOwner onlyInEmergency {
    halted = false;
  }

}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint256);
  function transferFrom(address from, address to, uint256 value);
  function approve(address spender, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances. 
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
   * @dev Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint256 size) {
     if(msg.data.length < size + 4) {
       throw;
     }
     _;
  }

  /**
  * @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) onlyPayloadSize(2 * 32) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
  }

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

}

/**
 * @title Standard ERC20 token
 *
 * @dev Implemantation of the basic standart token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is BasicToken, ERC20 {

  mapping (address => mapping (address => uint256)) 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 amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

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

  /**
   * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) {

    // 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 here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }

  /**
   * @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 specifing the amount of tokens still avaible for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

}

/**
 * @title SimpleToken
 * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator. 
 * Note they can later distribute these tokens as they wish using `transfer` and other
 * `StandardToken` functions.
 */
contract AhooleeToken is StandardToken {

  string public name = "Ahoolee Token";
  string public symbol = "AHT";
  uint256 public decimals = 18;
  uint256 public INITIAL_SUPPLY = 100000000 * 1 ether;

  /**
   * @dev Contructor that gives msg.sender all of existing tokens. 
   */
  function AhooleeToken() {
    totalSupply = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
  }

}


contract AhooleeTokenPreSale is Haltable {
    using SafeMath for uint;

    string public name = "Ahoolee Token PreSale";

    AhooleeToken public token;
    address public beneficiary;

    uint public hardCap;
    uint public softCap;
    uint public collected;
    uint public price;
    uint public purchaseLimit;

    uint public tokensSold = 0;
    uint public weiRaised = 0;
    uint public investorCount = 0;
    uint public weiRefunded = 0;

    uint public startTime;
    uint public endTime;

    bool public softCapReached = false;
    bool public crowdsaleFinished = false;

    mapping (address => bool) refunded;

    event GoalReached(uint amountRaised);
    event SoftCapReached(uint softCap);
    event NewContribution(address indexed holder, uint256 tokenAmount, uint256 etherAmount);
    event Refunded(address indexed holder, uint256 amount);

    modifier onlyAfter(uint time) {
        if (now < time) throw;
        _;
    }

    modifier onlyBefore(uint time) {
        if (now > time) throw;
        _;
    }

    function AhooleeTokenPreSale(
        uint _hardCapUSD,
        uint _softCapUSD,
        address _token,
        address _beneficiary,
        uint _totalTokens,
        uint _priceETH,
        uint _purchaseLimitUSD,

        uint _startTime,
        uint _duration
    ) {
        hardCap = _hardCapUSD  * 1 ether / _priceETH;
        softCap = _softCapUSD * 1 ether / _priceETH;
        price = _totalTokens * 1 ether / hardCap;

        purchaseLimit = _purchaseLimitUSD * 1 ether / _priceETH * price;
        token = AhooleeToken(_token);
        beneficiary = _beneficiary;

        startTime = _startTime;
        endTime = _startTime + _duration * 1 hours;
    }

    function () payable stopInEmergency{
        if (msg.value < 0.01 * 1 ether) throw;
        doPurchase(msg.sender);
    }

    function refund() external onlyAfter(endTime) {
        if (softCapReached) throw;
        if (refunded[msg.sender]) throw;

        uint balance = token.balanceOf(msg.sender);
        if (balance == 0) throw;

        uint refund = balance / price;
        if (refund > this.balance) {
            refund = this.balance;
        }

        if (!msg.sender.send(refund)) throw;
        refunded[msg.sender] = true;
        weiRefunded = weiRefunded.add(refund);
        Refunded(msg.sender, refund);
    }

    function withdraw() onlyOwner {
        if (!softCapReached) throw;
        if (!beneficiary.send(collected)) throw;
        token.transfer(beneficiary, token.balanceOf(this));
        crowdsaleFinished = true;
    }

    function doPurchase(address _owner) private onlyAfter(startTime) onlyBefore(endTime) {
        
        assert(crowdsaleFinished == false);

        if (collected.add(msg.value) > hardCap) throw;

        if (!softCapReached && collected < softCap && collected.add(msg.value) >= softCap) {
            softCapReached = true;
            SoftCapReached(softCap);
        }

        uint tokens = msg.value * price;
        if (token.balanceOf(msg.sender) + tokens > purchaseLimit) throw;

        if (token.balanceOf(msg.sender) == 0) investorCount++;
      
        collected = collected.add(msg.value);

        token.transfer(msg.sender, tokens);

        weiRaised = weiRaised.add(msg.value);
        tokensSold = tokensSold.add(tokens);

        NewContribution(_owner, tokens, msg.value);

        if (collected == hardCap) {
            GoalReached(hardCap);
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"purchaseLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"softCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"collected","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_hardCapUSD","type":"uint256"},{"name":"_softCapUSD","type":"uint256"},{"name":"_token","type":"address"},{"name":"_beneficiary","type":"address"},{"name":"_totalTokens","type":"uint256"},{"name":"_priceETH","type":"uint256"},{"name":"_purchaseLimitUSD","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_duration","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amountRaised","type":"uint256"}],"name":"GoalReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"softCap","type":"uint256"}],"name":"SoftCapReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"etherAmount","type":"uint256"}],"name":"NewContribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Refunded","type":"event"}]

60a0604052601560608190527f41686f6f6c656520546f6b656e2050726553616c650000000000000000000000608090815261003e9160019190610186565b5060006009819055600a819055600b819055600c55600f805461ffff19169055341561006657fe5b6040516101208062000fbe83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e0880151610100909801519597949593949293919290915b5b60008054600160a060020a03191633600160a060020a03161790555b8389670de0b6b3a7640000028115156100e457fe5b0460045583670de0b6b3a764000089028115156100fd57fe5b04600555600454670de0b6b3a7640000860281151561011857fe5b04600781905584670de0b6b3a7640000850281151561013357fe5b040260085560028054600160a060020a03808a16600160a060020a0319928316179092556003805492891692909116919091179055600d829055610e1081028201600e555b505050505050505050610226565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101c757805160ff19168380011785556101f4565b828001600101855582156101f4579182015b828111156101f45782518255916020019190600101906101d9565b5b50610201929150610205565b5090565b61022391905b80821115610201576000815560010161020b565b5090565b90565b610d8880620002366000396000f300606060405236156101175763ffffffff60e060020a60003504166306fdde03811461015757806318886657146101e75780632b9edee9146102095780633197cbb61461022d57806338af3eed1461024f5780633ccfd60b1461027b5780634042b66f1461028d578063518ab2a8146102af578063590e1ae3146102d15780635da89ac0146102e35780635ed7ca5b1461030557806378e979251461031757806384bcefd4146103395780638da5cb5b1461035b578063906a26e014610387578063a035b1fe146103a9578063b9b8af0b146103cb578063cb3e64fd146103ef578063d7e64c0014610401578063ece84fd514610423578063f2fde38b14610447578063fb86a40414610465578063fc0c546a14610487575b6101555b60005460a060020a900460ff16156101335760006000fd5b662386f26fc100003410156101485760006000fd5b610151336104b3565b5b5b565b005b341561015f57fe5b61016761080c565b6040805160208082528351818301528351919283929083019185019080838382156101ad575b8051825260208311156101ad57601f19909201916020918201910161018d565b505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ef57fe5b6101f7610899565b60408051918252519081900360200190f35b341561021157fe5b61021961089f565b604080519115158252519081900360200190f35b341561023557fe5b6101f76108a8565b60408051918252519081900360200190f35b341561025757fe5b61025f6108ae565b60408051600160a060020a039092168252519081900360200190f35b341561028357fe5b6101556108bd565b005b341561029557fe5b6101f7610a1c565b60408051918252519081900360200190f35b34156102b757fe5b6101f7610a22565b60408051918252519081900360200190f35b34156102d957fe5b610155610a28565b005b34156102eb57fe5b6101f7610be7565b60408051918252519081900360200190f35b341561030d57fe5b610155610bed565b005b341561031f57fe5b6101f7610c31565b60408051918252519081900360200190f35b341561034157fe5b6101f7610c37565b60408051918252519081900360200190f35b341561036357fe5b61025f610c3d565b60408051600160a060020a039092168252519081900360200190f35b341561038f57fe5b6101f7610c4c565b60408051918252519081900360200190f35b34156103b157fe5b6101f7610c52565b60408051918252519081900360200190f35b34156103d357fe5b610219610c58565b604080519115158252519081900360200190f35b34156103f757fe5b610155610c68565b005b341561040957fe5b6101f7610cc0565b60408051918252519081900360200190f35b341561042b57fe5b610219610cc6565b604080519115158252519081900360200190f35b341561044f57fe5b610155600160a060020a0360043516610cd4565b005b341561046d57fe5b6101f7610d2d565b60408051918252519081900360200190f35b341561048f57fe5b61025f610d33565b60408051600160a060020a039092168252519081900360200190f35b6000600d54804210156104c65760006000fd5b600e54804211156104d75760006000fd5b600f54610100900460ff16156104e957fe5b6004546006546104ff903463ffffffff610d4216565b111561050b5760006000fd5b600f5460ff161580156105215750600554600654105b8015610541575060055460065461053e903463ffffffff610d4216565b10155b1561058957600f805460ff1916600117905560055460408051918252517f42ef6182c6d744dd081ab962505f40413083376dfcc13e58b60f4f32e96738099181900360200190a15b6007543402925060085483600260009054906101000a9004600160a060020a0316600160a060020a03166370a08231336000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561060957fe5b6102c65a03f1151561061757fe5b5050506040518051905001111561062e5760006000fd5b600254604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152935193909416936370a08231936024808301949391928390030190829087803b151561069c57fe5b6102c65a03f115156106aa57fe5b505060405151151590506106c257600b805460010190555b6006546106d5903463ffffffff610d4216565b600655600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152602482018790529151919092169163a9059cbb91604480830192600092919082900301818387803b151561074257fe5b6102c65a03f1151561075057fe5b5050600a5461076691503463ffffffff610d4216565b600a5560095461077c908463ffffffff610d4216565b600955604080518481523460208201528151600160a060020a038716927f16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b8928290030190a260045460065414156108035760045460408051918252517ffbfd8ab7c24300fa9888cd721c8565a7da56759384781283684dcf7c7c4a846b9181900360200190a15b5b5b505b505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108915780601f1061086657610100808354040283529160200191610891565b820191906000526020600020905b81548152906001019060200180831161087457829003601f168201915b505050505081565b60085481565b600f5460ff1681565b600e5481565b600354600160a060020a031681565b60005433600160a060020a039081169116146108d95760006000fd5b600f5460ff1615156108eb5760006000fd5b600354600654604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015156109225760006000fd5b600254600354604080516000602091820181905282517f70a0823100000000000000000000000000000000000000000000000000000000815230600160a060020a03908116600483015293519584169563a9059cbb959094169386936370a08231936024808501949293928390030190829087803b151561099f57fe5b6102c65a03f115156109ad57fe5b505060408051805160e060020a63ffffffff8716028252600160a060020a0390941660048201526024810193909352516044808401936000935082900301818387803b15156109f857fe5b6102c65a03f11515610a0657fe5b5050600f805461ff001916610100179055505b5b565b600a5481565b60095481565b60006000600e5480421015610a3d5760006000fd5b600f5460ff1615610a4e5760006000fd5b600160a060020a03331660009081526010602052604090205460ff1615610a755760006000fd5b600254604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152935193909416936370a08231936024808301949391928390030190829087803b1515610ae357fe5b6102c65a03f11515610af157fe5b505060405151935050821515610b075760006000fd5b60075483811515610b1457fe5b04915030600160a060020a031631821115610b375730600160a060020a03163191505b604051600160a060020a0333169083156108fc029084906000818181858888f193505050501515610b685760006000fd5b600160a060020a0333166000908152601060205260409020805460ff19166001179055600c54610b9e908363ffffffff610d4216565b600c55604080518381529051600160a060020a033316917fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651919081900360200190a25b5b505050565b600c5481565b60005433600160a060020a03908116911614610c095760006000fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b600d5481565b60065481565b600054600160a060020a031681565b60055481565b60075481565b60005460a060020a900460ff1681565b60005433600160a060020a03908116911614610c845760006000fd5b60005460a060020a900460ff161515610c9d5760006000fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b600b5481565b600f54610100900460ff1681565b60005433600160a060020a03908116911614610cf05760006000fd5b600160a060020a03811615610d28576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60045481565b600254600160a060020a031681565b600082820183811015610d5157fe5b8091505b50929150505600a165627a7a72305820b535db74d3c18bc8dd7ca13361ed76dd0328af9c8228388aa55291d721abdfac00290000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000008fb97dc96558199ffb549a35a231b97a19fdc91200000000000000000000000067d53d842f1cd5a3922bc0009fd6d99f108d9b320000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000c350000000000000000000000000000000000000000000000000000000005959eb7000000000000000000000000000000000000000000000000000000000000000a8

Deployed Bytecode

0x606060405236156101175763ffffffff60e060020a60003504166306fdde03811461015757806318886657146101e75780632b9edee9146102095780633197cbb61461022d57806338af3eed1461024f5780633ccfd60b1461027b5780634042b66f1461028d578063518ab2a8146102af578063590e1ae3146102d15780635da89ac0146102e35780635ed7ca5b1461030557806378e979251461031757806384bcefd4146103395780638da5cb5b1461035b578063906a26e014610387578063a035b1fe146103a9578063b9b8af0b146103cb578063cb3e64fd146103ef578063d7e64c0014610401578063ece84fd514610423578063f2fde38b14610447578063fb86a40414610465578063fc0c546a14610487575b6101555b60005460a060020a900460ff16156101335760006000fd5b662386f26fc100003410156101485760006000fd5b610151336104b3565b5b5b565b005b341561015f57fe5b61016761080c565b6040805160208082528351818301528351919283929083019185019080838382156101ad575b8051825260208311156101ad57601f19909201916020918201910161018d565b505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ef57fe5b6101f7610899565b60408051918252519081900360200190f35b341561021157fe5b61021961089f565b604080519115158252519081900360200190f35b341561023557fe5b6101f76108a8565b60408051918252519081900360200190f35b341561025757fe5b61025f6108ae565b60408051600160a060020a039092168252519081900360200190f35b341561028357fe5b6101556108bd565b005b341561029557fe5b6101f7610a1c565b60408051918252519081900360200190f35b34156102b757fe5b6101f7610a22565b60408051918252519081900360200190f35b34156102d957fe5b610155610a28565b005b34156102eb57fe5b6101f7610be7565b60408051918252519081900360200190f35b341561030d57fe5b610155610bed565b005b341561031f57fe5b6101f7610c31565b60408051918252519081900360200190f35b341561034157fe5b6101f7610c37565b60408051918252519081900360200190f35b341561036357fe5b61025f610c3d565b60408051600160a060020a039092168252519081900360200190f35b341561038f57fe5b6101f7610c4c565b60408051918252519081900360200190f35b34156103b157fe5b6101f7610c52565b60408051918252519081900360200190f35b34156103d357fe5b610219610c58565b604080519115158252519081900360200190f35b34156103f757fe5b610155610c68565b005b341561040957fe5b6101f7610cc0565b60408051918252519081900360200190f35b341561042b57fe5b610219610cc6565b604080519115158252519081900360200190f35b341561044f57fe5b610155600160a060020a0360043516610cd4565b005b341561046d57fe5b6101f7610d2d565b60408051918252519081900360200190f35b341561048f57fe5b61025f610d33565b60408051600160a060020a039092168252519081900360200190f35b6000600d54804210156104c65760006000fd5b600e54804211156104d75760006000fd5b600f54610100900460ff16156104e957fe5b6004546006546104ff903463ffffffff610d4216565b111561050b5760006000fd5b600f5460ff161580156105215750600554600654105b8015610541575060055460065461053e903463ffffffff610d4216565b10155b1561058957600f805460ff1916600117905560055460408051918252517f42ef6182c6d744dd081ab962505f40413083376dfcc13e58b60f4f32e96738099181900360200190a15b6007543402925060085483600260009054906101000a9004600160a060020a0316600160a060020a03166370a08231336000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561060957fe5b6102c65a03f1151561061757fe5b5050506040518051905001111561062e5760006000fd5b600254604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152935193909416936370a08231936024808301949391928390030190829087803b151561069c57fe5b6102c65a03f115156106aa57fe5b505060405151151590506106c257600b805460010190555b6006546106d5903463ffffffff610d4216565b600655600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152602482018790529151919092169163a9059cbb91604480830192600092919082900301818387803b151561074257fe5b6102c65a03f1151561075057fe5b5050600a5461076691503463ffffffff610d4216565b600a5560095461077c908463ffffffff610d4216565b600955604080518481523460208201528151600160a060020a038716927f16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b8928290030190a260045460065414156108035760045460408051918252517ffbfd8ab7c24300fa9888cd721c8565a7da56759384781283684dcf7c7c4a846b9181900360200190a15b5b5b505b505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108915780601f1061086657610100808354040283529160200191610891565b820191906000526020600020905b81548152906001019060200180831161087457829003601f168201915b505050505081565b60085481565b600f5460ff1681565b600e5481565b600354600160a060020a031681565b60005433600160a060020a039081169116146108d95760006000fd5b600f5460ff1615156108eb5760006000fd5b600354600654604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015156109225760006000fd5b600254600354604080516000602091820181905282517f70a0823100000000000000000000000000000000000000000000000000000000815230600160a060020a03908116600483015293519584169563a9059cbb959094169386936370a08231936024808501949293928390030190829087803b151561099f57fe5b6102c65a03f115156109ad57fe5b505060408051805160e060020a63ffffffff8716028252600160a060020a0390941660048201526024810193909352516044808401936000935082900301818387803b15156109f857fe5b6102c65a03f11515610a0657fe5b5050600f805461ff001916610100179055505b5b565b600a5481565b60095481565b60006000600e5480421015610a3d5760006000fd5b600f5460ff1615610a4e5760006000fd5b600160a060020a03331660009081526010602052604090205460ff1615610a755760006000fd5b600254604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152935193909416936370a08231936024808301949391928390030190829087803b1515610ae357fe5b6102c65a03f11515610af157fe5b505060405151935050821515610b075760006000fd5b60075483811515610b1457fe5b04915030600160a060020a031631821115610b375730600160a060020a03163191505b604051600160a060020a0333169083156108fc029084906000818181858888f193505050501515610b685760006000fd5b600160a060020a0333166000908152601060205260409020805460ff19166001179055600c54610b9e908363ffffffff610d4216565b600c55604080518381529051600160a060020a033316917fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651919081900360200190a25b5b505050565b600c5481565b60005433600160a060020a03908116911614610c095760006000fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b600d5481565b60065481565b600054600160a060020a031681565b60055481565b60075481565b60005460a060020a900460ff1681565b60005433600160a060020a03908116911614610c845760006000fd5b60005460a060020a900460ff161515610c9d5760006000fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b600b5481565b600f54610100900460ff1681565b60005433600160a060020a03908116911614610cf05760006000fd5b600160a060020a03811615610d28576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60045481565b600254600160a060020a031681565b600082820183811015610d5157fe5b8091505b50929150505600a165627a7a72305820b535db74d3c18bc8dd7ca13361ed76dd0328af9c8228388aa55291d721abdfac0029

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

0000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000008fb97dc96558199ffb549a35a231b97a19fdc91200000000000000000000000067d53d842f1cd5a3922bc0009fd6d99f108d9b320000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000c350000000000000000000000000000000000000000000000000000000005959eb7000000000000000000000000000000000000000000000000000000000000000a8

-----Decoded View---------------
Arg [0] : _hardCapUSD (uint256): 200000
Arg [1] : _softCapUSD (uint256): 100000
Arg [2] : _token (address): 0x8FB97Dc96558199ffb549a35a231B97A19Fdc912
Arg [3] : _beneficiary (address): 0x67d53d842F1CD5A3922bC0009fD6D99F108D9b32
Arg [4] : _totalTokens (uint256): 10000000
Arg [5] : _priceETH (uint256): 266
Arg [6] : _purchaseLimitUSD (uint256): 50000
Arg [7] : _startTime (uint256): 1499065200
Arg [8] : _duration (uint256): 168

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000030d40
Arg [1] : 00000000000000000000000000000000000000000000000000000000000186a0
Arg [2] : 0000000000000000000000008fb97dc96558199ffb549a35a231b97a19fdc912
Arg [3] : 00000000000000000000000067d53d842f1cd5a3922bc0009fd6d99f108d9b32
Arg [4] : 0000000000000000000000000000000000000000000000000000000000989680
Arg [5] : 000000000000000000000000000000000000000000000000000000000000010a
Arg [6] : 000000000000000000000000000000000000000000000000000000000000c350
Arg [7] : 000000000000000000000000000000000000000000000000000000005959eb70
Arg [8] : 00000000000000000000000000000000000000000000000000000000000000a8


Swarm Source

bzzr://b535db74d3c18bc8dd7ca13361ed76dd0328af9c8228388aa55291d721abdfac

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.