Sponsored Link:   Learn and build dApps today without code using Crowd Machine's Crowd App Studio.
 Latest 25 txns from a total Of 10336 transactions

TxHash Age From To Value [TxFee]
0xf25d8d0aac4e23789facbff6a34c36775a0775261d3827fee3041ac679f5212911 days 17 hrs ago0xd9a193131025f02800c6313781ffbce8e619c401  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0.6 Ether0.00086496
0x71c6574a474acdde02e9913a24805803f7d6ed4e85870c538eea990ab956a15611 days 20 hrs ago0x706f03245407df3209477b6baddd92d19a8a0bf8  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a4.5 Ether0.00086496
0xa8cb586d95e905ee388dd05f83246fc1c3d16dcdd5393eaad6aeb3c1a8a98f7a12 days 20 hrs ago0x666213a35b7e6e8ab70e1112dd09d233f9c1fd35  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a1.2 Ether0.00086496
0xe8e83ee7353923d5798007e34185d5a4528b8d711d73d223debc3151d7db955220 days 8 hrs ago0xfba4d50cab44f13102c0e270721e1cbefebd8922  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0 Ether0.00156582
0x8374a94e191df82bdfbcc69b0e006c09002e34cf6aaa64f856292358f023962225 days 16 hrs ago0x0fd92329edec41a05620e0a7e2a6e9d908517ca8  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a5 Ether0.00086496
0xe04e89c5e478ec103da78a19f085b267b95f6a4eaf478e71a686a40d55a51ede27 days 13 hrs ago0xe62c34a301594360d7ca8285d718f19fd548b3fc  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a5 Ether0.00086496
0x97ac6f75999fc33c131847a6b837bea423daf094709d9dd428d9f7b0ad24160d28 days 8 hrs ago0xeecd5005e730bf54c726b6fec5941909ea9f65c2  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0x1a98f339000dd401d7185ba3dc6bf7a016ca52931eecefbe7aef3c3dc40a032829 days 10 hrs ago0x52365d3badead3c7072b46bc6d0161d5c35e57c0  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a5 Ether0.00086496
0x7fddc2fa90c00555a6e985978317510bdd7d2c8c4318698a0c250c1d33acce7829 days 14 hrs ago0x63d06f12e934e91dd3a83e326346e0d44fed7a68  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a1.5 Ether0.00118932
0xc52965732b1cba612f974da24bbd0af80ddc2934a8bf0a7e7cb98cfde97b81c129 days 14 hrs ago0x63d06f12e934e91dd3a83e326346e0d44fed7a68  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a1.5 Ether0.000043248
0x34a56dc7db11de502e037f15ac9dee11df53d0ebcb09cee5752efb946651d7cf29 days 14 hrs ago0x63d06f12e934e91dd3a83e326346e0d44fed7a68  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a1.5 Ether0.000021624
0x95fe8bc2bec543882484f7b2dd3f1711b99c83493cfd0614128d1f4e1986958629 days 15 hrs ago0xd05f7e4a6328a3c0bea410775841c35fb207eb49  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0x699d84b390c30143bafae78b77e257b3a11616d5f8850ab1aac91aba481ce0b629 days 15 hrs ago0xd05f7e4a6328a3c0bea410775841c35fb207eb49  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0xff4d4b64ec287dd73162fdae59ee34b4f598922f8b094a1bb9f30faa6ce3befb29 days 15 hrs ago0xd05f7e4a6328a3c0bea410775841c35fb207eb49  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0xba97baad3510a0da06dc6810f2323fb4f4761b729c9c62fd13d553479f01895b29 days 15 hrs ago0xd05f7e4a6328a3c0bea410775841c35fb207eb49  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0x6914960670d959cff58f0c6fe9b596462aefbfe7784afe011c8f0d1e0cb0494329 days 15 hrs ago0xd05f7e4a6328a3c0bea410775841c35fb207eb49  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0x5c322ee0cd5aeb6a1b901ef87e2224e72d642fd2147ade0f1df1e637585e874929 days 15 hrs ago0xd05f7e4a6328a3c0bea410775841c35fb207eb49  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a2 Ether0.00086496
0xa2245458f5ffd144c028c446337cfd8a11e07808af09c930625794687be7d48029 days 18 hrs ago0x6a474b262fff47520b32fdcbff46d943373cf6c6  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a1.2 Ether0.00086496
0xf670eb2dee873de8ae85c82b24cb2faea006601670a6f09eb58df8e470e3d95629 days 20 hrs ago0xe9ff4c0cacea602dafe55e10fb2ec1cf9734089f  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0.5 Ether0.000021624
0xcaf2db95c97d1ce3ccf24a69af5b930a810b49347f4c940bed362ab3e2989fdd29 days 20 hrs ago0xca7d2feb510c488caa6cfc59bb70f34e5a330b1f  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a5 Ether0.00086496
0xed1c996b0e23602efc390959ece486e4d304599ce1c3b449d8905e7f8caf132829 days 20 hrs ago0xca7d2feb510c488caa6cfc59bb70f34e5a330b1f  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a5 Ether0.000021624
0x50c2e2100f138d139a94cb11f077c294f496a5a27e5908012f7f14114634979c30 days 52 mins ago0xe4dca2d50fae4042882c45e514bb9733fc99f43c  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a4.5 Ether0.000064872
0x2512b39b9ecc8b66b20194824963ff00493e97159b5aadc2612de002622cf15530 days 52 mins ago0xe4dca2d50fae4042882c45e514bb9733fc99f43c  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a4.5 Ether0.000043248
0xae2b21250a92c47e01c3ac41ae957815d6611fb756dfccd5d1463613fe72936c30 days 52 mins ago0xe4dca2d50fae4042882c45e514bb9733fc99f43c  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a4.5 Ether0.00086496
0x51ecd14d55c16ea8b48288ad46937c729f1630a3ee67260c7dd477e48386e23b30 days 52 mins ago0xe4dca2d50fae4042882c45e514bb9733fc99f43c  IN   0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a4.5 Ether0.00086496
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 4 Internal Transactions

ParentTxHash Block Age From To Value
0xe8e83ee7353923d5798007e34185d5a4528b8d711d73d223debc3151d7db9552587633720 days 8 hrs ago0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0xcfce5b74042739ec265a04e4002e31eb71ec10c93,895 Ether
0x2ec57b0b89c5f4d0ec5a3b81d689b96543c169328f639e0d81d0e2ddfb3a13ad581590630 days 18 hrs ago0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0xac35d74f53b7dc212ed9c2879e6598910bb7f7123.431024140859971687 Ether
0x9f28fbe08155998e7b7c872299447895c3882d8c1ff7d6458b798e1f4c44cd81581590530 days 18 hrs ago0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0xbc1a997243787f6a905e74508258eb55e5d593d74.98 Ether
0xede943514b258823ff8112fa2dfb2966f60b03d51fae8ea8029d095f1688b534581590130 days 18 hrs ago0x2cfc06b1ec0735bd7ef00b211764cc7e06e9456a0x1aef9e889b8d48cf38290d0c1103a8ece0df1d614.98 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: PublicSale
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

library SafeMath {

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

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

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

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

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

contract Ownable {
  address public owner;


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


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

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

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

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

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;
    emit Pause();
  }

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

contract PublicSale is Pausable {
    using SafeMath for uint256;
    using SafeERC20 for ERC20;

    uint256 public maxgas;
    uint256 public maxcap;      // sale hardcap
    uint256 public exceed;      // indivisual hardcap
    uint256 public minimum;     // indivisual softcap
    uint256 public rate;        // exchange rate

    bool public ignited = false;  // is sale started?
    uint256 public weiRaised = 0; // check sale status

    address public wallet;      // wallet for withdrawal
    Whitelist public List;      // whitelist
    ERC20 public Token;         // token

    constructor (
        uint256 _maxcap,
        uint256 _exceed,
        uint256 _minimum,
        uint256 _rate,
        uint256 _maxgas,
        address _wallet,
        address _whitelist,
        address _token
    ) public {
        require(_wallet != address(0));
        require(_whitelist != address(0));
        require(_token != address(0));

        maxcap = _maxcap;
        exceed = _exceed;
        minimum = _minimum;
        rate = _rate;

        maxgas = _maxgas;
        wallet = _wallet;

        Token = ERC20(_token);
        List = Whitelist(_whitelist);
    }

    /* fallback function */
    function () external payable {
        collect();
    }

//  address
    event Change(address addr, string name);
    event ChangeMaxGas(uint256 gas);

    function setMaxGas(uint256 gas)
        external
        onlyOwner
    {
        require(gas > 0);
        maxgas = gas;
        emit ChangeMaxGas(gas);
    }

    function setWhitelist(address whitelist)
        external
        onlyOwner
    {
        require(whitelist != address(0));

        List = Whitelist(whitelist);
        emit Change(whitelist, "whitelist");
    }

    function setWallet(address newWallet)
        external
        onlyOwner
    {
        require(newWallet != address(0));

        wallet = newWallet;
        emit Change(newWallet, "wallet");
    }

//  sale controller
    event Ignite();
    event Extinguish();

    function ignite()
        external
        onlyOwner
    {
        ignited = true;
        emit Ignite();
    }

    function extinguish()
        external
        onlyOwner
    {
        ignited = false;
        emit Extinguish();
    }

//  collect eth
    event Purchase(address indexed buyer, uint256 purchased, uint256 refund, uint256 tokens);

    mapping (address => uint256) public buyers;

    function collect()
        public
        payable
        whenNotPaused
    {
        address buyer = msg.sender;
        uint256 amount = msg.value;

        require(ignited);
        require(List.whitelist(buyer));
        require(buyer != address(0));
        require(buyers[buyer].add(amount) >= minimum);
        require(buyers[buyer] < exceed);
        require(weiRaised < maxcap);
        require(tx.gasprice <= maxgas);

        uint256 purchase;
        uint256 refund;

        (purchase, refund) = getPurchaseAmount(buyer, amount);

        weiRaised = weiRaised.add(purchase);
        if(weiRaised >= maxcap) ignited = false;

        buyers[buyer] = buyers[buyer].add(purchase);

        buyer.transfer(refund);
        Token.safeTransfer(buyer, purchase.mul(rate));

        emit Purchase(buyer, purchase, refund, purchase.mul(rate));
    }

//  util functions for collect
    function getPurchaseAmount(address _buyer, uint256 _amount)
        private
        view
        returns (uint256, uint256)
    {
        uint256 d1 = maxcap.sub(weiRaised);
        uint256 d2 = exceed.sub(buyers[_buyer]);

        uint256 d = (d1 > d2) ? d2 : d1;

        return (_amount > d) ? (d, _amount.sub(d)) : (_amount, 0);
    }

//  finalize
    bool public finalized = false;

    function finalize()
        external
        onlyOwner
        whenNotPaused
    {
        require(!finalized);

        withdrawEther();
        withdrawToken();

        finalized = true;
    }

//  withdraw
    event WithdrawToken(address indexed from, uint256 amount);
    event WithdrawEther(address indexed from, uint256 amount);

    function withdrawToken()
        public
        onlyOwner
        whenNotPaused
    {
        require(!ignited);
        Token.safeTransfer(wallet, Token.balanceOf(address(this)));
        emit WithdrawToken(wallet, Token.balanceOf(address(this)));
    }

    function withdrawEther()
        public
        onlyOwner
        whenNotPaused
    {
        require(!ignited);
        wallet.transfer(address(this).balance);
        emit WithdrawEther(wallet, address(this).balance);
    }
}

contract RBAC {
  using Roles for Roles.Role;

  mapping (string => Roles.Role) private roles;

  event RoleAdded(address addr, string roleName);
  event RoleRemoved(address addr, string roleName);

  /**
   * @dev reverts if addr does not have role
   * @param addr address
   * @param roleName the name of the role
   * // reverts
   */
  function checkRole(address addr, string roleName)
    view
    public
  {
    roles[roleName].check(addr);
  }

  /**
   * @dev determine if addr has role
   * @param addr address
   * @param roleName the name of the role
   * @return bool
   */
  function hasRole(address addr, string roleName)
    view
    public
    returns (bool)
  {
    return roles[roleName].has(addr);
  }

  /**
   * @dev add a role to an address
   * @param addr address
   * @param roleName the name of the role
   */
  function addRole(address addr, string roleName)
    internal
  {
    roles[roleName].add(addr);
    emit RoleAdded(addr, roleName);
  }

  /**
   * @dev remove a role from an address
   * @param addr address
   * @param roleName the name of the role
   */
  function removeRole(address addr, string roleName)
    internal
  {
    roles[roleName].remove(addr);
    emit RoleRemoved(addr, roleName);
  }

  /**
   * @dev modifier to scope access to a single role (uses msg.sender as addr)
   * @param roleName the name of the role
   * // reverts
   */
  modifier onlyRole(string roleName)
  {
    checkRole(msg.sender, roleName);
    _;
  }

  /**
   * @dev modifier to scope access to a set of roles (uses msg.sender as addr)
   * @param roleNames the names of the roles to scope access to
   * // reverts
   *
   * @TODO - when solidity supports dynamic arrays as arguments to modifiers, provide this
   *  see: https://github.com/ethereum/solidity/issues/2467
   */
  // modifier onlyRoles(string[] roleNames) {
  //     bool hasAnyRole = false;
  //     for (uint8 i = 0; i < roleNames.length; i++) {
  //         if (hasRole(msg.sender, roleNames[i])) {
  //             hasAnyRole = true;
  //             break;
  //         }
  //     }

  //     require(hasAnyRole);

  //     _;
  // }
}

contract Whitelist is Ownable, RBAC {
  event WhitelistedAddressAdded(address addr);
  event WhitelistedAddressRemoved(address addr);

  string public constant ROLE_WHITELISTED = "whitelist";

  /**
   * @dev Throws if called by any account that's not whitelisted.
   */
  modifier onlyWhitelisted() {
    checkRole(msg.sender, ROLE_WHITELISTED);
    _;
  }

  /**
   * @dev add an address to the whitelist
   * @param addr address
   * @return true if the address was added to the whitelist, false if the address was already in the whitelist
   */
  function addAddressToWhitelist(address addr)
    onlyOwner
    public
  {
    addRole(addr, ROLE_WHITELISTED);
    emit WhitelistedAddressAdded(addr);
  }

  /**
   * @dev getter to determine if address is in whitelist
   */
  function whitelist(address addr)
    public
    view
    returns (bool)
  {
    return hasRole(addr, ROLE_WHITELISTED);
  }

  /**
   * @dev add addresses to the whitelist
   * @param addrs addresses
   * @return true if at least one address was added to the whitelist,
   * false if all addresses were already in the whitelist
   */
  function addAddressesToWhitelist(address[] addrs)
    onlyOwner
    public
  {
    for (uint256 i = 0; i < addrs.length; i++) {
      addAddressToWhitelist(addrs[i]);
    }
  }

  /**
   * @dev remove an address from the whitelist
   * @param addr address
   * @return true if the address was removed from the whitelist,
   * false if the address wasn't in the whitelist in the first place
   */
  function removeAddressFromWhitelist(address addr)
    onlyOwner
    public
  {
    removeRole(addr, ROLE_WHITELISTED);
    emit WhitelistedAddressRemoved(addr);
  }

  /**
   * @dev remove addresses from the whitelist
   * @param addrs addresses
   * @return true if at least one address was removed from the whitelist,
   * false if all addresses weren't in the whitelist in the first place
   */
  function removeAddressesFromWhitelist(address[] addrs)
    onlyOwner
    public
  {
    for (uint256 i = 0; i < addrs.length; i++) {
      removeAddressFromWhitelist(addrs[i]);
    }
  }

}

library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an address access to this role
   */
  function add(Role storage role, address addr)
    internal
  {
    role.bearer[addr] = true;
  }

  /**
   * @dev remove an address' access to this role
   */
  function remove(Role storage role, address addr)
    internal
  {
    role.bearer[addr] = false;
  }

  /**
   * @dev check if an address has this role
   * // reverts
   */
  function check(Role storage role, address addr)
    view
    internal
  {
    require(has(role, addr));
  }

  /**
   * @dev check if an address has this role
   * @return bool
   */
  function has(Role storage role, address addr)
    view
    internal
    returns (bool)
  {
    return role.bearer[addr];
  }
}

contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  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 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
  );
}

library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    require(token.transfer(to, value));
  }

  function safeTransferFrom(
    ERC20 token,
    address from,
    address to,
    uint256 value
  )
    internal
  {
    require(token.transferFrom(from, to, value));
  }

  function safeApprove(ERC20 token, address spender, uint256 value) internal {
    require(token.approve(spender, value));
  }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"exceed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxgas","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ignited","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"whitelist","type":"address"}],"name":"setWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"gas","type":"uint256"}],"name":"setMaxGas","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"buyers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"List","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"extinguish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newWallet","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ignite","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_maxcap","type":"uint256"},{"name":"_exceed","type":"uint256"},{"name":"_minimum","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_maxgas","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_whitelist","type":"address"},{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"name","type":"string"}],"name":"Change","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"gas","type":"uint256"}],"name":"ChangeMaxGas","type":"event"},{"anonymous":false,"inputs":[],"name":"Ignite","type":"event"},{"anonymous":false,"inputs":[],"name":"Extinguish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"purchased","type":"uint256"},{"indexed":false,"name":"refund","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawEther","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526000805460a060020a60ff02191681556006805460ff19908116909155600791909155600c8054909116905534801561003c57600080fd5b506040516101008061118083398101604090815281516020830151918301516060840151608085015160a086015160c087015160e09097015160008054600160a060020a031916331790559496939492939192909190600160a060020a03831615156100a757600080fd5b600160a060020a03821615156100bc57600080fd5b600160a060020a03811615156100d157600080fd5b60029790975560039590955560049390935560059190915560015560088054600160a060020a0319908116600160a060020a0393841617909155600a805482169483169490941790935560098054909316911617905561104a806101366000396000f30060806040526004361061015e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b18156781146101685780630d6f7ca31461018f5780632c4e722e146101a45780633f4ba83a146101b95780634042b66f146101ce5780634bb278f3146101e3578063521eb273146101f857806352d6804d1461022957806355456f581461023e5780635c975abb1461025357806366092ea81461027c578063715018a6146102915780637362377b146102a65780638456cb59146102bb578063854cff2f146102d05780638da5cb5b146102f15780638e9280761461030657806397a993aa1461031e578063b3f05b971461033f578063c241267614610354578063c258ff7414610369578063c54837a41461037e578063ca628c7814610393578063deaa59df146103a8578063e52253811461015e578063f2fde38b146103c9578063f768923a146103ea575b6101666103ff565b005b34801561017457600080fd5b5061017d6106a6565b60408051918252519081900360200190f35b34801561019b57600080fd5b5061017d6106ac565b3480156101b057600080fd5b5061017d6106b2565b3480156101c557600080fd5b506101666106b8565b3480156101da57600080fd5b5061017d61072e565b3480156101ef57600080fd5b50610166610734565b34801561020457600080fd5b5061020d610791565b60408051600160a060020a039092168252519081900360200190f35b34801561023557600080fd5b5061017d6107a0565b34801561024a57600080fd5b5061017d6107a6565b34801561025f57600080fd5b506102686107ac565b604080519115158252519081900360200190f35b34801561028857600080fd5b506102686107bc565b34801561029d57600080fd5b506101666107c5565b3480156102b257600080fd5b50610166610831565b3480156102c757600080fd5b506101666108ef565b3480156102dc57600080fd5b50610166600160a060020a036004351661096a565b3480156102fd57600080fd5b5061020d610a2b565b34801561031257600080fd5b50610166600435610a3a565b34801561032a57600080fd5b5061017d600160a060020a0360043516610a99565b34801561034b57600080fd5b50610268610aab565b34801561036057600080fd5b5061020d610ab4565b34801561037557600080fd5b5061020d610ac3565b34801561038a57600080fd5b50610166610ad2565b34801561039f57600080fd5b50610166610b1e565b3480156103b457600080fd5b50610166600160a060020a0360043516610cda565b3480156103d557600080fd5b50610166600160a060020a0360043516610d9a565b3480156103f657600080fd5b50610166610dbd565b6000805481908190819060a060020a900460ff161561041d57600080fd5b60065433945034935060ff16151561043457600080fd5b600954604080517f9b19251a000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691639b19251a9160248083019260209291908290030181600087803b15801561049c57600080fd5b505af11580156104b0573d6000803e3d6000fd5b505050506040513d60208110156104c657600080fd5b505115156104d357600080fd5b600160a060020a03841615156104e857600080fd5b600454600160a060020a0385166000908152600b6020526040902054610514908563ffffffff610e0c16565b101561051f57600080fd5b600354600160a060020a0385166000908152600b60205260409020541061054557600080fd5b6002546007541061055557600080fd5b6001543a111561056457600080fd5b61056e8484610e1f565b6007549193509150610586908363ffffffff610e0c16565b60078190556002541161059e576006805460ff191690555b600160a060020a0384166000908152600b60205260409020546105c7908363ffffffff610e0c16565b600160a060020a0385166000818152600b6020526040808220939093559151909183156108fc02918491818181858888f1935050505015801561060e573d6000803e3d6000fd5b506106418461062860055485610eae90919063ffffffff16565b600a54600160a060020a0316919063ffffffff610ed716565b83600160a060020a03167f5bc97d73357ac0d035d4b9268a69240988a5776b8a4fcced3dbc223960123f40838361068360055487610eae90919063ffffffff16565b60408051938452602084019290925282820152519081900360600190a250505050565b60035481565b60015481565b60055481565b600054600160a060020a031633146106cf57600080fd5b60005460a060020a900460ff1615156106e757600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60075481565b600054600160a060020a0316331461074b57600080fd5b60005460a060020a900460ff161561076257600080fd5b600c5460ff161561077257600080fd5b61077a610831565b610782610b1e565b600c805460ff19166001179055565b600854600160a060020a031681565b60045481565b60025481565b60005460a060020a900460ff1681565b60065460ff1681565b600054600160a060020a031633146107dc57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a0316331461084857600080fd5b60005460a060020a900460ff161561085f57600080fd5b60065460ff161561086f57600080fd5b600854604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156108a9573d6000803e3d6000fd5b5060085460408051303181529051600160a060020a03909216917fdb35132c111efe920cede025e819975671cfd1b8fcc1174762c8670c4e94c2119181900360200190a2565b600054600160a060020a0316331461090657600080fd5b60005460a060020a900460ff161561091d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a0316331461098157600080fd5b600160a060020a038116151561099657600080fd5b60098054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811782556040805191825260208201819052818101929092527f77686974656c6973740000000000000000000000000000000000000000000000606082015290517fa785fc346da73c9ad6c933dde68fe85362a97b7b07706c3e23ff3400cc5d93b59181900360800190a150565b600054600160a060020a031681565b600054600160a060020a03163314610a5157600080fd5b60008111610a5e57600080fd5b60018190556040805182815290517f0a43199e88e7835e571e0fc8b9a50f07066a81593dc117a0f70cbed732584c1a9181900360200190a150565b600b6020526000908152604090205481565b600c5460ff1681565b600a54600160a060020a031681565b600954600160a060020a031681565b600054600160a060020a03163314610ae957600080fd5b6006805460ff191690556040517fd53036fa90376b59ca8afb9d95483e6b47ffa785d597814fcfd7405a91bba67a90600090a1565b600054600160a060020a03163314610b3557600080fd5b60005460a060020a900460ff1615610b4c57600080fd5b60065460ff1615610b5c57600080fd5b600854600a54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610c0f93600160a060020a039081169316916370a082319160248083019260209291908290030181600087803b158015610bca57600080fd5b505af1158015610bde573d6000803e3d6000fd5b505050506040513d6020811015610bf457600080fd5b5051600a54600160a060020a0316919063ffffffff610ed716565b600854600a54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03938416937f992ee874049a42cae0757a765cd7f641b6028cc35c3478bde8330bf417c3a7a99316916370a082319160248083019260209291908290030181600087803b158015610c9b57600080fd5b505af1158015610caf573d6000803e3d6000fd5b505050506040513d6020811015610cc557600080fd5b505160408051918252519081900360200190a2565b600054600160a060020a03163314610cf157600080fd5b600160a060020a0381161515610d0657600080fd5b60088054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252602082018190526006828201527f77616c6c657400000000000000000000000000000000000000000000000000006060830152517fa785fc346da73c9ad6c933dde68fe85362a97b7b07706c3e23ff3400cc5d93b59181900360800190a150565b600054600160a060020a03163314610db157600080fd5b610dba81610f8f565b50565b600054600160a060020a03163314610dd457600080fd5b6006805460ff191660011790556040517fb66ce7cc84acb9e2cdfa3c16073eec63d39b0540887b91247afebaee4645611a90600090a1565b81810182811015610e1957fe5b92915050565b6000806000806000610e3e60075460025461100c90919063ffffffff16565b600160a060020a0388166000908152600b6020526040902054600354919450610e6d919063ffffffff61100c16565b9150818311610e7c5782610e7e565b815b9050808611610e8f57856000610ea0565b80610ea0878263ffffffff61100c16565b945094505050509250929050565b6000821515610ebf57506000610e19565b50818102818382811515610ecf57fe5b0414610e1957fe5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f5357600080fd5b505af1158015610f67573d6000803e3d6000fd5b505050506040513d6020811015610f7d57600080fd5b50511515610f8a57600080fd5b505050565b600160a060020a0381161515610fa457600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561101857fe5b509003905600a165627a7a72305820683ae425950a162f76badfc74240e9cabed1c51123f114346eab4aff3aaad86b00290000000000000000000000000000000000000000000000d325fbc767d27c00000000000000000000000000000000000000000000000000004563918244f4000000000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000009502f9000000000000000000000000000cfce5b74042739ec265a04e4002e31eb71ec10c900000000000000000000000066610b1a261908a4b07394560c4b90f02f187b3d000000000000000000000000f8b358b3397a8ea5464f8cc753645d42e14b79ea

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

-----Decoded View---------------
Found 8 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000d325fbc767d27c0000
Arg [1] : 0000000000000000000000000000000000000000000000004563918244f40000
Arg [2] : 00000000000000000000000000000000000000000000000006f05b59d3b20000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [4] : 00000000000000000000000000000000000000000000000000000009502f9000
Arg [5] : 000000000000000000000000cfce5b74042739ec265a04e4002e31eb71ec10c9
Arg [6] : 00000000000000000000000066610b1a261908a4b07394560c4b90f02f187b3d
Arg [7] : 000000000000000000000000f8b358b3397a8ea5464f8cc753645d42e14b79ea


   Swarm Source:
bzzr://683ae425950a162f76badfc74240e9cabed1c51123f114346eab4aff3aaad86b

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.