ETH Price: $3,188.87 (+2.77%)

Contract

0x41D9384Dc97470bd2aFA06dB0c1be4f872519eEC
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer54594792018-04-17 23:31:102404 days ago1524007870IN
0x41D9384D...872519eEC
0 ETH0.0012136550
Transfer54594792018-04-17 23:31:102404 days ago1524007870IN
0x41D9384D...872519eEC
0 ETH0.0012168550
Transfer54594632018-04-17 23:27:142404 days ago1524007634IN
0x41D9384D...872519eEC
0 ETH0.0012168550
Transfer54550852018-04-17 5:20:062405 days ago1523942406IN
0x41D9384D...872519eEC
0 ETH0.00007323
Transfer54531962018-04-16 21:52:292405 days ago1523915549IN
0x41D9384D...872519eEC
0 ETH0.0012168550
Transfer54475582018-04-15 22:55:572406 days ago1523832957IN
0x41D9384D...872519eEC
0 ETH0.0005124221
Transfer52976302018-03-21 22:27:342431 days ago1521671254IN
0x41D9384D...872519eEC
0 ETH0.0006100225
Transfer Ownersh...52961142018-03-21 16:31:352431 days ago1521649895IN
0x41D9384D...872519eEC
0 ETH0.0014016659
Transfer52848072018-03-19 18:54:182433 days ago1521485658IN
0x41D9384D...872519eEC
0 ETH0.0005110721
Transfer52624022018-03-15 23:53:472437 days ago1521158027IN
0x41D9384D...872519eEC
0 ETH0.0005110721
Transfer49154272018-01-16 1:19:052496 days ago1516065545IN
0x41D9384D...872519eEC
0 ETH0.0019520880
Transfer48956312018-01-12 10:36:102500 days ago1515753370IN
0x41D9384D...872519eEC
0 ETH0.0017080770
Transfer48827642018-01-10 1:28:232502 days ago1515547703IN
0x41D9384D...872519eEC
0 ETH0.0014640660
Transfer48826952018-01-10 1:07:582502 days ago1515546478IN
0x41D9384D...872519eEC
0 ETH0.001250
Transfer47569872017-12-18 23:54:002524 days ago1513641240IN
0x41D9384D...872519eEC
0.02 ETH0.00046222
Transfer46167352017-11-25 2:26:092548 days ago1511576769IN
0x41D9384D...872519eEC
0.22492995 ETH0.001074550
Transfer46140752017-11-24 16:15:252548 days ago1511540125IN
0x41D9384D...872519eEC
0.01725447 ETH0.000429820
Transfer46139962017-11-24 15:57:452548 days ago1511539065IN
0x41D9384D...872519eEC
0.25 ETH0.008013550
Transfer46139802017-11-24 15:52:352548 days ago1511538755IN
0x41D9384D...872519eEC
0.10013 ETH0.008013550
Transfer46139782017-11-24 15:52:102548 days ago1511538730IN
0x41D9384D...872519eEC
0.11 ETH0.008013550
Transfer46139722017-11-24 15:50:592548 days ago1511538659IN
0x41D9384D...872519eEC
0.038 ETH0.001052150.1
Transfer46139502017-11-24 15:46:112548 days ago1511538371IN
0x41D9384D...872519eEC
1.33194035 ETH0.0039168549.9
Transfer46139372017-11-24 15:43:032548 days ago1511538183IN
0x41D9384D...872519eEC
0.3260765 ETH0.003924750
Transfer46139372017-11-24 15:43:032548 days ago1511538183IN
0x41D9384D...872519eEC
0.11 ETH0.0010550
Transfer46139112017-11-24 15:36:382548 days ago1511537798IN
0x41D9384D...872519eEC
2 ETH0.008013550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
46139962017-11-24 15:57:452548 days ago1511539065
0x41D9384D...872519eEC
0.25 ETH
46139802017-11-24 15:52:352548 days ago1511538755
0x41D9384D...872519eEC
0.10013 ETH
46139782017-11-24 15:52:102548 days ago1511538730
0x41D9384D...872519eEC
0.11 ETH
46139502017-11-24 15:46:112548 days ago1511538371
0x41D9384D...872519eEC
1.33194035 ETH
46139372017-11-24 15:43:032548 days ago1511538183
0x41D9384D...872519eEC
0.3260765 ETH
46139112017-11-24 15:36:382548 days ago1511537798
0x41D9384D...872519eEC
2 ETH
46138662017-11-24 15:26:092548 days ago1511537169
0x41D9384D...872519eEC
0.8509478 ETH
46138112017-11-24 15:14:482548 days ago1511536488
0x41D9384D...872519eEC
0.113 ETH
46138062017-11-24 15:12:542548 days ago1511536374
0x41D9384D...872519eEC
1.15 ETH
46137992017-11-24 15:10:582548 days ago1511536258
0x41D9384D...872519eEC
0.13403316 ETH
46137922017-11-24 15:09:392548 days ago1511536179
0x41D9384D...872519eEC
0.3941865 ETH
46137912017-11-24 15:09:182548 days ago1511536158
0x41D9384D...872519eEC
0.05861 ETH
46137662017-11-24 15:04:072548 days ago1511535847
0x41D9384D...872519eEC
0.33877936 ETH
46137612017-11-24 15:02:402548 days ago1511535760
0x41D9384D...872519eEC
0.2154035 ETH
46137422017-11-24 14:58:372548 days ago1511535517
0x41D9384D...872519eEC
0.1 ETH
46136992017-11-24 14:48:242548 days ago1511534904
0x41D9384D...872519eEC
0.04395746 ETH
46136482017-11-24 14:35:242548 days ago1511534124
0x41D9384D...872519eEC
0.1 ETH
46136092017-11-24 14:27:122548 days ago1511533632
0x41D9384D...872519eEC
1.0776 ETH
46135752017-11-24 14:21:282548 days ago1511533288
0x41D9384D...872519eEC
0.14 ETH
46135592017-11-24 14:18:372548 days ago1511533117
0x41D9384D...872519eEC
0.249 ETH
46135122017-11-24 14:07:152548 days ago1511532435
0x41D9384D...872519eEC
0.04522135 ETH
46134782017-11-24 13:59:432548 days ago1511531983
0x41D9384D...872519eEC
0.04522135 ETH
46134782017-11-24 13:59:432548 days ago1511531983
0x41D9384D...872519eEC
0.05 ETH
46134312017-11-24 13:48:132548 days ago1511531293
0x41D9384D...872519eEC
0.10312 ETH
46132822017-11-24 13:11:322549 days ago1511529092
0x41D9384D...872519eEC
0.06826975 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FollowCoinTokenSale

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-10-27
*/

pragma solidity ^0.4.13;

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

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

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

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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    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) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  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) returns (bool);
  function approve(address spender, uint256 value) returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract FollowCoin is Ownable, ERC20 {
    using SafeMath for uint256;

    // Public variables of the token
    string public name;
    string public symbol;
    uint8 public decimals;
    
    // This creates an array with all balances
    mapping (address => uint256) public balances;
    mapping (address => bool) public allowedAccount;
    mapping (address => mapping (address => uint256)) public allowance;
    mapping (address => bool) public isHolder;
    address [] public holders;

    // This notifies clients about the amount burnt
    event Burn(address indexed from, uint256 value);

    bool public contributorsLockdown = true;

    function disableLockDown() onlyOwner {
      contributorsLockdown = false;
    }

    modifier coinsLocked() {
      require(!contributorsLockdown || msg.sender == owner || allowedAccount[msg.sender]);
      _;
    }

    /**
     * Constructor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    function FollowCoin(
        
        address multiSigWallet,
        uint256 initialSupply,
        string tokenName,
        uint8 decimalUnits,
        string tokenSymbol
        
    ) {

        owner = multiSigWallet;
        totalSupply = initialSupply;                        // Update total supply
        name = tokenName;                                   // Set the name for display purposes
        symbol = tokenSymbol;                               // Set the symbol for display purposes
        decimals = decimalUnits;                            // Amount of decimals for display purposes
        balances[owner] = totalSupply;                   // Give the creator all initial tokens

        if (isHolder[owner] != true) {
            holders[holders.length++] = owner;
            isHolder[owner] = true;
        }
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint _value) internal coinsLocked {
        require(_to != 0x0);                               // Prevent transfer to 0x0 address. Use burn() instead

        require(balanceOf(_from) >= _value);                // Check if the sender has enough
        require(balanceOf(_to).add(_value) > balanceOf(_to)); // Check for overflows
        balances[_from] = balanceOf(_from).sub(_value);                         // Subtract from the sender
        balances[_to] = balanceOf(_to).add(_value);                           // Add the same to the recipient

        if (isHolder[_to] != true) {
            holders[holders.length++] = _to;
            isHolder[_to] = true;
        }
        Transfer(_from, _to, _value);
    }
    
    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */

    function transfer(address _to, uint256 _value) public returns (bool)  {
        require(_to != address(this));
        _transfer(msg.sender, _to, _value);
    }

    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` in behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }


    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens in your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public
        returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
         return allowance[_owner][_spender];
    }


    function allowAccount(address _target, bool allow) onlyOwner returns (bool success) {

         allowedAccount[_target] = allow;
         return true;
    }

    function mint(uint256 mintedAmount) onlyOwner {
        balances[msg.sender] = balanceOf(msg.sender).add(mintedAmount);
        totalSupply  = totalSupply.add(mintedAmount);
        Transfer(0, owner, mintedAmount);
    }

    /**
     * Destroy tokens
     *
     * Remove `_value` tokens from the system irreversibly
     *
     * @param _value the amount of money to burn
     */
    function burn(uint256 _value) onlyOwner returns (bool success) {
        require(balanceOf(msg.sender) >= _value);   // Check if the sender has enough
        balances[msg.sender] = balanceOf(msg.sender).sub(_value);            // Subtract from the sender
        totalSupply = totalSupply.sub(_value);                      // Updates totalSupply
        Burn(msg.sender, _value);
        return true;
    }
}


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

   modifier inNormalState {
     assert(!halted);
     _;
   }

   modifier inEmergencyState {
     assert(halted);
     _;
   }

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

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

 }

contract FollowCoinTokenSale is Haltable {
    using SafeMath for uint256;

    address public beneficiary;
    address public multisig;
    uint public tokenLimitPerWallet;
    uint public hardCap;
    uint public amountRaised;
    uint public totalTokens;
    uint public tokensSold = 0;
    uint public investorCount = 0;
    uint public startTimestamp;
    uint public deadline;
    uint public tokensPerEther;
    FollowCoin public tokenReward;
    mapping(address => uint256) public balances;

    event FundTransfer(address backer, uint amount, bool isContribution);

    /**
     * Constructor function
     *
     * Setup the owner
     */
    function FollowCoinTokenSale(
        address multiSigWallet,
        uint icoTokensLimitPerWallet,
        uint icoHardCap,
        uint icoStartTimestamp,
        uint durationInDays,
        uint icoTotalTokens,
        uint icoTokensPerEther,
        address addressOfTokenUsedAsReward
        
    ) {
        multisig = multiSigWallet;
        owner = multiSigWallet;
        hardCap = icoHardCap;
        deadline = icoStartTimestamp + durationInDays * 1 days;
        startTimestamp = icoStartTimestamp;
        totalTokens = icoTotalTokens;
        tokenLimitPerWallet = icoTokensLimitPerWallet;
        tokensPerEther = icoTokensPerEther;
        tokenReward = FollowCoin(addressOfTokenUsedAsReward);
        beneficiary = multisig;
    }

    function changeMultisigWallet(address _multisig) onlyOwner {
        require(_multisig != address(0));
        multisig = _multisig;
    }

    function changeTokenReward(address _token) onlyOwner {
        require(_token != address(0));
        tokenReward = FollowCoin(_token);
        beneficiary = tokenReward.owner();
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    /**
     * Fallback function
     *
     * The function without name is the default function that is called whenever anyone sends funds to a contract
     */
    function () payable preSaleActive inNormalState {
        buyTokens();
    }

    function buyTokens() payable preSaleActive inNormalState {
        require(msg.value > 0);
       
        uint amount = msg.value;
        require(balanceOf(msg.sender).add(amount) <= tokenLimitPerWallet);

        uint tokens =  calculateTokenAmount(amount);
        require(totalTokens >= tokens);
        require(tokensSold.add(tokens) <= hardCap); // hardCap limit
        
        balances[msg.sender] = balances[msg.sender].add(amount);
        amountRaised = amountRaised.add(amount);

        tokensSold = tokensSold.add(tokens);
        totalTokens = totalTokens.sub(tokens);

        if (tokenReward.balanceOf(msg.sender) == 0) investorCount++;

        tokenReward.transfer(msg.sender, tokens);
        multisig.transfer(amount);
        FundTransfer(msg.sender, amount, true);
    }

    modifier preSaleActive() {
      require(now >= startTimestamp);
      require(now < deadline);
      _;
    }

    function setSold(uint tokens) onlyOwner {
      tokensSold = tokensSold.add(tokens);
    }


    function sendTokensBackToWallet() onlyOwner {
      totalTokens = 0;
      tokenReward.transfer(multisig, tokenReward.balanceOf(address(this)));
    }

    function getTokenBalance(address _from) constant returns(uint) {
      return tokenReward.balanceOf(_from);
    }

    function calculateTokenAmount(uint256 amount) constant returns(uint256) {
        return amount.mul(tokensPerEther);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"changeTokenReward","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"}],"name":"getTokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"multisig","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"tokens","type":"uint256"}],"name":"setSold","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"sendTokensBackToWallet","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalTokens","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":"amount","type":"uint256"}],"name":"calculateTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenLimitPerWallet","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_multisig","type":"address"}],"name":"changeMultisigWallet","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensPerEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"multiSigWallet","type":"address"},{"name":"icoTokensLimitPerWallet","type":"uint256"},{"name":"icoHardCap","type":"uint256"},{"name":"icoStartTimestamp","type":"uint256"},{"name":"durationInDays","type":"uint256"},{"name":"icoTotalTokens","type":"uint256"},{"name":"icoTokensPerEther","type":"uint256"},{"name":"addressOfTokenUsedAsReward","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"isContribution","type":"bool"}],"name":"FundTransfer","type":"event"}]

606060405260006007556000600855341561001957600080fd5b60405161010080610e4f83398101604052808051919060200180519190602001805191906020018051919060200180519190602001805191906020018051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b60028054600160a060020a03808b16600160a060020a0319928316811793849055600080548416909117905560048990556201518087028801600a556009889055600686905560038a9055600b859055600c80548583169084161790556001805490921692169190911790555b50505050505050505b610d4b806101046000396000f300606060405236156101385763ffffffff60e060020a60003504166327e235e3811461017757806329dcb0cf146101a857806336044ecc146101cd57806338af3eed146101ee5780633aecd0e31461021d5780634783c35b1461024e5780634b9143f71461027d578063518ab2a8146102955780635e511afa146102ba5780635ed7ca5b146102cf5780636e66f6e9146102e457806370a08231146103135780637b3e5e7b146103445780637e1c0c09146103695780638da5cb5b1461038e578063a24bcf46146103bd578063b9b8af0b146103e5578063bd2184931461040c578063cb3e64fd14610431578063d0febe4c1461016a578063d7e64c0014610450578063df961d2814610475578063e6fd48bc14610496578063f2fde38b146104bb578063f856d605146104dc578063fb86a40414610501575b5b60095442101561014857600080fd5b600a54421061015657600080fd5b60005460a060020a900460ff161561016a57fe5b610172610526565b5b5b5b005b341561018257600080fd5b610196600160a060020a03600435166107e0565b60405190815260200160405180910390f35b34156101b357600080fd5b6101966107f2565b60405190815260200160405180910390f35b34156101d857600080fd5b610172600160a060020a03600435166107f8565b005b34156101f957600080fd5b6102016108df565b604051600160a060020a03909116815260200160405180910390f35b341561022857600080fd5b610196600160a060020a03600435166108ee565b60405190815260200160405180910390f35b341561025957600080fd5b61020161096b565b604051600160a060020a03909116815260200160405180910390f35b341561028857600080fd5b61017260043561097a565b005b34156102a057600080fd5b6101966109b0565b60405190815260200160405180910390f35b34156102c557600080fd5b6101726109b6565b005b34156102da57600080fd5b610172610ac9565b005b34156102ef57600080fd5b610201610b21565b604051600160a060020a03909116815260200160405180910390f35b341561031e57600080fd5b610196600160a060020a0360043516610b30565b60405190815260200160405180910390f35b341561034f57600080fd5b610196610b4f565b60405190815260200160405180910390f35b341561037457600080fd5b610196610b55565b60405190815260200160405180910390f35b341561039957600080fd5b610201610b5b565b604051600160a060020a03909116815260200160405180910390f35b34156103c857600080fd5b610196600435610b6a565b60405190815260200160405180910390f35b34156103f057600080fd5b6103f8610b89565b604051901515815260200160405180910390f35b341561041757600080fd5b610196610b99565b60405190815260200160405180910390f35b341561043c57600080fd5b610172610b9f565b005b610172610526565b005b341561045b57600080fd5b610196610bf2565b60405190815260200160405180910390f35b341561048057600080fd5b610172600160a060020a0360043516610bf8565b005b34156104a157600080fd5b610196610c55565b60405190815260200160405180910390f35b34156104c657600080fd5b610172600160a060020a0360043516610c5b565b005b34156104e757600080fd5b610196610cb3565b60405190815260200160405180910390f35b341561050c57600080fd5b610196610cb9565b60405190815260200160405180910390f35b600080600954421015151561053a57600080fd5b600a54421061054857600080fd5b60005460a060020a900460ff161561055c57fe5b6000341161056957600080fd5b3491506003546105888361057c33610b30565b9063ffffffff610cbf16565b111561059357600080fd5b61059c82610b6a565b905080600654101515156105af57600080fd5b6004546007546105c5908363ffffffff610cbf16565b11156105d057600080fd5b600160a060020a0333166000908152600d60205260409020546105f9908363ffffffff610cbf16565b600160a060020a0333166000908152600d6020526040902055600554610625908363ffffffff610cbf16565b60055560075461063b908263ffffffff610cbf16565b600755600654610651908263ffffffff610cd916565b600655600c54600160a060020a03166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106ad57600080fd5b6102c65a03f115156106be57600080fd5b5050506040518051151590506106d8576008805460010190555b600c54600160a060020a031663a9059cbb338360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561073757600080fd5b6102c65a03f1151561074857600080fd5b50505060405180515050600254600160a060020a031682156108fc0283604051600060405180830381858888f19350505050151561078557600080fd5b7fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf633836001604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a15b5b5b5050565b600d6020526000908152604090205481565b600a5481565b60005433600160a060020a0390811691161461081357600080fd5b600160a060020a038116151561082857600080fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905516638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561089357600080fd5b6102c65a03f115156108a457600080fd5b50505060405180516001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055505b5b50565b600154600160a060020a031681565b600c54600090600160a060020a03166370a0823183836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561094957600080fd5b6102c65a03f1151561095a57600080fd5b50505060405180519150505b919050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461099557600080fd5b6007546109a8908263ffffffff610cbf16565b6007555b5b50565b60075481565b60005433600160a060020a039081169116146109d157600080fd5b60006006819055600c54600254600160a060020a039182169263a9059cbb929091169083906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a4357600080fd5b6102c65a03f11515610a5457600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610aaa57600080fd5b6102c65a03f11515610abb57600080fd5b505050604051805150505b5b565b60005433600160a060020a03908116911614610ae457600080fd5b60005460a060020a900460ff1615610af857fe5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5b565b600c54600160a060020a031681565b600160a060020a0381166000908152600d60205260409020545b919050565b60055481565b60065481565b600054600160a060020a031681565b6000610b81600b5483610cf090919063ffffffff16565b90505b919050565b60005460a060020a900460ff1681565b60035481565b60005433600160a060020a03908116911614610bba57600080fd5b60005460a060020a900460ff161515610bcf57fe5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b60085481565b60005433600160a060020a03908116911614610c1357600080fd5b600160a060020a0381161515610c2857600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60095481565b60005433600160a060020a03908116911614610c7657600080fd5b600160a060020a038116156108db576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600b5481565b60045481565b600082820183811015610cce57fe5b8091505b5092915050565b600082821115610ce557fe5b508082035b92915050565b6000828202831580610d0c5750828482811515610d0957fe5b04145b1515610cce57fe5b8091505b50929150505600a165627a7a723058204529089486e5cdaa6a7f84310c52ce39009fd65b34923be45f3de030d76f372c00290000000000000000000000003df11efa1149b7518f0bab20d616d9f73c99b4e700000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000000000000000000000195518939d43ed62a0000000000000000000000000000000000000000000000000000000000000059f35800000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000195518939d43ed62a0000000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000a25d01d15fc0e3cdede1bebee4124394aae0db33

Deployed Bytecode

0x606060405236156101385763ffffffff60e060020a60003504166327e235e3811461017757806329dcb0cf146101a857806336044ecc146101cd57806338af3eed146101ee5780633aecd0e31461021d5780634783c35b1461024e5780634b9143f71461027d578063518ab2a8146102955780635e511afa146102ba5780635ed7ca5b146102cf5780636e66f6e9146102e457806370a08231146103135780637b3e5e7b146103445780637e1c0c09146103695780638da5cb5b1461038e578063a24bcf46146103bd578063b9b8af0b146103e5578063bd2184931461040c578063cb3e64fd14610431578063d0febe4c1461016a578063d7e64c0014610450578063df961d2814610475578063e6fd48bc14610496578063f2fde38b146104bb578063f856d605146104dc578063fb86a40414610501575b5b60095442101561014857600080fd5b600a54421061015657600080fd5b60005460a060020a900460ff161561016a57fe5b610172610526565b5b5b5b005b341561018257600080fd5b610196600160a060020a03600435166107e0565b60405190815260200160405180910390f35b34156101b357600080fd5b6101966107f2565b60405190815260200160405180910390f35b34156101d857600080fd5b610172600160a060020a03600435166107f8565b005b34156101f957600080fd5b6102016108df565b604051600160a060020a03909116815260200160405180910390f35b341561022857600080fd5b610196600160a060020a03600435166108ee565b60405190815260200160405180910390f35b341561025957600080fd5b61020161096b565b604051600160a060020a03909116815260200160405180910390f35b341561028857600080fd5b61017260043561097a565b005b34156102a057600080fd5b6101966109b0565b60405190815260200160405180910390f35b34156102c557600080fd5b6101726109b6565b005b34156102da57600080fd5b610172610ac9565b005b34156102ef57600080fd5b610201610b21565b604051600160a060020a03909116815260200160405180910390f35b341561031e57600080fd5b610196600160a060020a0360043516610b30565b60405190815260200160405180910390f35b341561034f57600080fd5b610196610b4f565b60405190815260200160405180910390f35b341561037457600080fd5b610196610b55565b60405190815260200160405180910390f35b341561039957600080fd5b610201610b5b565b604051600160a060020a03909116815260200160405180910390f35b34156103c857600080fd5b610196600435610b6a565b60405190815260200160405180910390f35b34156103f057600080fd5b6103f8610b89565b604051901515815260200160405180910390f35b341561041757600080fd5b610196610b99565b60405190815260200160405180910390f35b341561043c57600080fd5b610172610b9f565b005b610172610526565b005b341561045b57600080fd5b610196610bf2565b60405190815260200160405180910390f35b341561048057600080fd5b610172600160a060020a0360043516610bf8565b005b34156104a157600080fd5b610196610c55565b60405190815260200160405180910390f35b34156104c657600080fd5b610172600160a060020a0360043516610c5b565b005b34156104e757600080fd5b610196610cb3565b60405190815260200160405180910390f35b341561050c57600080fd5b610196610cb9565b60405190815260200160405180910390f35b600080600954421015151561053a57600080fd5b600a54421061054857600080fd5b60005460a060020a900460ff161561055c57fe5b6000341161056957600080fd5b3491506003546105888361057c33610b30565b9063ffffffff610cbf16565b111561059357600080fd5b61059c82610b6a565b905080600654101515156105af57600080fd5b6004546007546105c5908363ffffffff610cbf16565b11156105d057600080fd5b600160a060020a0333166000908152600d60205260409020546105f9908363ffffffff610cbf16565b600160a060020a0333166000908152600d6020526040902055600554610625908363ffffffff610cbf16565b60055560075461063b908263ffffffff610cbf16565b600755600654610651908263ffffffff610cd916565b600655600c54600160a060020a03166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106ad57600080fd5b6102c65a03f115156106be57600080fd5b5050506040518051151590506106d8576008805460010190555b600c54600160a060020a031663a9059cbb338360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561073757600080fd5b6102c65a03f1151561074857600080fd5b50505060405180515050600254600160a060020a031682156108fc0283604051600060405180830381858888f19350505050151561078557600080fd5b7fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf633836001604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a15b5b5b5050565b600d6020526000908152604090205481565b600a5481565b60005433600160a060020a0390811691161461081357600080fd5b600160a060020a038116151561082857600080fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905516638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561089357600080fd5b6102c65a03f115156108a457600080fd5b50505060405180516001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055505b5b50565b600154600160a060020a031681565b600c54600090600160a060020a03166370a0823183836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561094957600080fd5b6102c65a03f1151561095a57600080fd5b50505060405180519150505b919050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461099557600080fd5b6007546109a8908263ffffffff610cbf16565b6007555b5b50565b60075481565b60005433600160a060020a039081169116146109d157600080fd5b60006006819055600c54600254600160a060020a039182169263a9059cbb929091169083906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a4357600080fd5b6102c65a03f11515610a5457600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610aaa57600080fd5b6102c65a03f11515610abb57600080fd5b505050604051805150505b5b565b60005433600160a060020a03908116911614610ae457600080fd5b60005460a060020a900460ff1615610af857fe5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5b565b600c54600160a060020a031681565b600160a060020a0381166000908152600d60205260409020545b919050565b60055481565b60065481565b600054600160a060020a031681565b6000610b81600b5483610cf090919063ffffffff16565b90505b919050565b60005460a060020a900460ff1681565b60035481565b60005433600160a060020a03908116911614610bba57600080fd5b60005460a060020a900460ff161515610bcf57fe5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b60085481565b60005433600160a060020a03908116911614610c1357600080fd5b600160a060020a0381161515610c2857600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60095481565b60005433600160a060020a03908116911614610c7657600080fd5b600160a060020a038116156108db576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600b5481565b60045481565b600082820183811015610cce57fe5b8091505b5092915050565b600082821115610ce557fe5b508082035b92915050565b6000828202831580610d0c5750828482811515610d0957fe5b04145b1515610cce57fe5b8091505b50929150505600a165627a7a723058204529089486e5cdaa6a7f84310c52ce39009fd65b34923be45f3de030d76f372c0029

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

0000000000000000000000003df11efa1149b7518f0bab20d616d9f73c99b4e700000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000000000000000000000195518939d43ed62a0000000000000000000000000000000000000000000000000000000000000059f35800000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000195518939d43ed62a0000000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000a25d01d15fc0e3cdede1bebee4124394aae0db33

-----Decoded View---------------
Arg [0] : multiSigWallet (address): 0x3dF11EFa1149b7518f0baB20d616d9f73c99B4e7
Arg [1] : icoTokensLimitPerWallet (uint256): 1000000000000000000000
Arg [2] : icoHardCap (uint256): 490000000000000000000000000
Arg [3] : icoStartTimestamp (uint256): 1509120000
Arg [4] : durationInDays (uint256): 28
Arg [5] : icoTotalTokens (uint256): 490000000000000000000000000
Arg [6] : icoTokensPerEther (uint256): 10000
Arg [7] : addressOfTokenUsedAsReward (address): 0xA25D01d15fC0e3cDeDE1BEbEE4124394aaE0DB33

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000003df11efa1149b7518f0bab20d616d9f73c99b4e7
Arg [1] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Arg [2] : 00000000000000000000000000000000000000000195518939d43ed62a000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000059f35800
Arg [4] : 000000000000000000000000000000000000000000000000000000000000001c
Arg [5] : 00000000000000000000000000000000000000000195518939d43ed62a000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [7] : 000000000000000000000000a25d01d15fc0e3cdede1bebee4124394aae0db33


Swarm Source

bzzr://4529089486e5cdaa6a7f84310c52ce39009fd65b34923be45f3de030d76f372c

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.