ETH Price: $2,545.28 (+3.29%)

Contract

0x0c4911ba2A7EF0a82E7bfce61B7e358121196Ba1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer48011282017-12-26 14:51:102437 days ago1514299870IN
0x0c4911ba...121196Ba1
1 ETH0.0004265220
Transfer48009912017-12-26 14:15:422437 days ago1514297742IN
0x0c4911ba...121196Ba1
1 ETH0.0004265220
Transfer47615262017-12-19 19:18:032444 days ago1513711083IN
0x0c4911ba...121196Ba1
0.00418379 ETH0.0008440
Transfer46214622017-11-25 20:37:262468 days ago1511642246IN
0x0c4911ba...121196Ba1
2 ETH0.0004478421
Withdraw Ether46024942017-11-22 19:24:562471 days ago1511378696IN
0x0c4911ba...121196Ba1
0 ETH0.0012621
Withdraw Ether46024522017-11-22 19:16:542471 days ago1511378214IN
0x0c4911ba...121196Ba1
0 ETH0.00000750.30026083
Transfer45708982017-11-17 17:23:122476 days ago1510939392IN
0x0c4911ba...121196Ba1
0.08 ETH0.0004478421
Transfer45522102017-11-14 17:01:462479 days ago1510678906IN
0x0c4911ba...121196Ba1
0.13 ETH0.0004478421
Transfer45521882017-11-14 16:56:072479 days ago1510678567IN
0x0c4911ba...121196Ba1
0.13 ETH0.0004478421
Withdraw Ether45239732017-11-10 4:21:152484 days ago1510287675IN
0x0c4911ba...121196Ba1
0 ETH0.004221
Withdraw Ether45239592017-11-10 4:17:302484 days ago1510287450IN
0x0c4911ba...121196Ba1
0 ETH0.002121
Transfer45239312017-11-10 4:08:512484 days ago1510286931IN
0x0c4911ba...121196Ba1
0 ETH0.00044121
Transfer45223152017-11-09 21:55:102484 days ago1510264510IN
0x0c4911ba...121196Ba1
0.07781375 ETH0.0004265220
Withdraw Ether45015292017-11-06 13:45:452487 days ago1509975945IN
0x0c4911ba...121196Ba1
0 ETH0.0000250.25000099
0x6276612e44754382017-11-02 9:04:572491 days ago1509613497IN
0x0c4911ba...121196Ba1
18 ETH0.0004923421
Withdraw Ether44662402017-10-31 21:06:332493 days ago1509483993IN
0x0c4911ba...121196Ba1
0 ETH0.002121
Withdraw Ether44662162017-10-31 21:01:202493 days ago1509483680IN
0x0c4911ba...121196Ba1
0 ETH0.00052521
Withdraw Ether44662062017-10-31 20:59:342493 days ago1509483574IN
0x0c4911ba...121196Ba1
0 ETH0.000459921
Withdraw Ether44174052017-10-23 23:58:222501 days ago1508803102IN
0x0c4911ba...121196Ba1
0 ETH0.004221
Withdraw Ether44121802017-10-23 3:52:382502 days ago1508730758IN
0x0c4911ba...121196Ba1
0 ETH0.0010521
Withdraw Ether44121702017-10-23 3:49:222502 days ago1508730562IN
0x0c4911ba...121196Ba1
0 ETH0.00046221
Transfer43779782017-10-17 16:22:332507 days ago1508257353IN
0x0c4911ba...121196Ba1
0.0017464 ETH0.0004478421
Withdraw Ether43769662017-10-17 12:19:512507 days ago1508242791IN
0x0c4911ba...121196Ba1
0 ETH0.00550
Withdraw Ether43769442017-10-17 12:15:402507 days ago1508242540IN
0x0c4911ba...121196Ba1
0 ETH0.0027550
Withdraw Ether43725752017-10-16 19:00:022508 days ago1508180402IN
0x0c4911ba...121196Ba1
0 ETH0.0004467121
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
43719832017-10-16 16:30:432508 days ago1508171443
0x0c4911ba...121196Ba1
0.39 ETH
43719792017-10-16 16:29:282508 days ago1508171368
0x0c4911ba...121196Ba1
0.98703838 ETH
43719752017-10-16 16:28:502508 days ago1508171330
0x0c4911ba...121196Ba1
0.45 ETH
43719642017-10-16 16:26:562508 days ago1508171216
0x0c4911ba...121196Ba1
1 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.01470155 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
1 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
1.01 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
1.50515464 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.5 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.01 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.23 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.3 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.198 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.667 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.63 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
1.5 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.297 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.2 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.1 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.00114891 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
1.3 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.5 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
2.5 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.17312125 ETH
43716472017-10-16 14:57:402508 days ago1508165860
0x0c4911ba...121196Ba1
0.03 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ImmlaIco

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-09-15
*/

pragma solidity ^0.4.15;

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

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

  function add(uint256 a, uint256 b) constant internal returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
  
  function mulByFraction(uint256 number, uint256 numerator, uint256 denominator) internal returns (uint256) {
      return div(mul(number, numerator), denominator);
  }
}


/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
/// @title Abstract token contract - Functions to be implemented by token contracts.

contract AbstractToken {
    // This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions
    function totalSupply() constant returns (uint256) {}
    function balanceOf(address owner) constant returns (uint256 balance);
    function transfer(address to, uint256 value) returns (bool success);
    function transferFrom(address from, address to, uint256 value) returns (bool success);
    function approve(address spender, uint256 value) returns (bool success);
    function allowance(address owner, address spender) constant returns (uint256 remaining);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Issuance(address indexed to, uint256 value);
}

contract StandardToken is AbstractToken {
    /*
     *  Data structures
     */
    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    uint256 public totalSupply;

    /*
     *  Read and write storage functions
     */
    /// @dev Transfers sender's tokens to a given address. Returns success.
    /// @param _to Address of token receiver.
    /// @param _value Number of tokens to transfer.
    function transfer(address _to, uint256 _value) returns (bool success) {
        if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);
            return true;
        }
        else {
            return false;
        }
    }

    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.
    /// @param _from Address from where tokens are withdrawn.
    /// @param _to Address to where tokens are sent.
    /// @param _value Number of tokens to transfer.
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
      if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
            balances[_to] += _value;
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            Transfer(_from, _to, _value);
            return true;
        }
        else {
            return false;
        }
    }

    /// @dev Returns number of tokens owned by given address.
    /// @param _owner Address of token owner.
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    /// @dev Sets approved amount of tokens for spender. Returns success.
    /// @param _spender Address of allowed account.
    /// @param _value Number of approved tokens.
    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /*
     * Read storage functions
     */
    /// @dev Returns number of allowed tokens for given address.
    /// @param _owner Address of token owner.
    /// @param _spender Address of token spender.
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

}


contract ImmlaToken is StandardToken, SafeMath {
    /*
     * Token meta data
     */
    string public constant name = "IMMLA";
    string public constant symbol = "IML";
    uint public constant decimals = 18;
    uint public constant supplyLimit = 550688955000000000000000000;
    
    address public icoContract = 0x0;
    /*
     * Modifiers
     */
    
    modifier onlyIcoContract() {
        // only ICO contract is allowed to proceed
        require(msg.sender == icoContract);
        _;
    }
    
    /*
     * Contract functions
     */
    
    /// @dev Contract is needed in icoContract address
    /// @param _icoContract Address of account which will be mint tokens
    function ImmlaToken(address _icoContract) {
        assert(_icoContract != 0x0);
        icoContract = _icoContract;
    }
    
    /// @dev Burns tokens from address. It's can be applied by account with address this.icoContract
    /// @param _from Address of account, from which will be burned tokens
    /// @param _value Amount of tokens, that will be burned
    function burnTokens(address _from, uint _value) onlyIcoContract {
        assert(_from != 0x0);
        require(_value > 0);
        
        balances[_from] = sub(balances[_from], _value);
    }
    
    /// @dev Adds tokens to address. It's can be applied by account with address this.icoContract
    /// @param _to Address of account to which the tokens will pass
    /// @param _value Amount of tokens
    function emitTokens(address _to, uint _value) onlyIcoContract {
        assert(_to != 0x0);
        require(_value > 0);
        
        balances[_to] = add(balances[_to], _value);
    }
}


contract ImmlaIco is SafeMath {
    /*
     * ICO meta data
     */
    ImmlaToken public immlaToken;
    AbstractToken public preIcoToken;

    // Address of account to which ethers will be tranfered in case of successful ICO
    address public escrow;
    // Address of manager
    address public icoManager;
    // Address of a account, that will transfer tokens from pre-ICO
    address public tokenImporter = 0x0;
    // Addresses of founders, team and bountyOwner
    address public founder1;
    address public founder2;
    address public founder3;
    address public team;
    address public bountyOwner;
    
    // 38548226,7 IML is reward for team
    uint public constant teamsReward = 38548226701232220000000000;
    //  9361712,2 IML is token for bountyOwner
    uint public constant bountyOwnersTokens = 9361712198870680000000000;
    
    // BASE = 10^18
    uint constant BASE = 1000000000000000000;
    
    // 2017.09.14 21:00 UTC or 2017.09.15 0:00 MSK
    uint public constant defaultIcoStart = 1505422800;
    // ICO start time
    uint public icoStart = defaultIcoStart;
    
    // 2017.10.15 21:00 UTC or 2017.10.16 0:00 MSK
    uint public constant defaultIcoDeadline = 1508101200;
    // ICO end time
    uint public  icoDeadline = defaultIcoDeadline;
    
    // 2018.03.14 21:00 UTC or 2018.03.15 0:00 MSK
    uint public constant defaultFoundersRewardTime = 1521061200;
    // founders' reward time
    uint public foundersRewardTime = defaultFoundersRewardTime;
    
    // Min limit of tokens is 18 000 000 IML
    uint public constant minIcoTokenLimit = 18000000 * BASE;
    // Max limit of tokens is 434 477 177 IML
    uint public constant maxIcoTokenLimit = 434477177 * BASE;
    
    // Amount of imported tokens from pre-ICO
    uint public importedTokens = 0;
    // Amount of sold tokens on ICO
    uint public soldTokensOnIco = 0;
    // Amount of issued tokens on pre-ICO = 13232941,7 IML
    uint public constant soldTokensOnPreIco = 13232941687168431951684000;
    
    // There are 170053520 tokens in stage 1
    // 1 ETH = 3640 IML
    uint tokenPrice1 = 3640;
    uint tokenSupply1 = 170053520 * BASE;
    
    // There are 103725856 tokens in stage 2
    // 1 ETH = 3549 IML
    uint tokenPrice2 = 3549;
    uint tokenSupply2 = 103725856 * BASE;
    
    // There are 100319718 tokens in stage 3
    // 1 ETH = 3458 IML
    uint tokenPrice3 = 3458;
    uint tokenSupply3 = 100319718 * BASE;
    
    // There are 60378083 tokens in stage 4
    // 1 ETH = 3367 IML
    uint tokenPrice4 = 3367;
    uint tokenSupply4 = 60378083 * BASE;
    
    // Token's prices in stages in array
    uint[] public tokenPrices;
    // Token's remaining amounts in stages in array
    uint[] public tokenSupplies;
    
    // Check if manager can be setted
    bool public initialized = false;
    // If flag migrated=false, token can be burned
    bool public migrated = false;
    // Tokens to founders can be sent only if sentTokensToFounders == false and time > foundersRewardTime
    bool public sentTokensToFounders = false;
    // If stopICO is called, then ICO 
    bool public icoStoppedManually = false;
    
    // mapping of ether balances info
    mapping (address => uint) public balances;
    
    /*
     * Events
     */
    
    event BuyTokens(address buyer, uint value, uint amount);
    event WithdrawEther();
    event StopIcoManually();
    event SendTokensToFounders(uint founder1Reward, uint founder2Reward, uint founder3Reward);
    event ReturnFundsFor(address account);
    
    /*
     * Modifiers
     */
    
    modifier whenInitialized() {
        // only when contract is initialized
        require(initialized);
        _;
    } 
    
    modifier onlyManager() {
        // only ICO manager can do this action
        require(msg.sender == icoManager);
        _;
    }
    
    modifier onIcoRunning() {
        // Checks, if ICO is running and has not been stopped
        require(!icoStoppedManually && now >= icoStart && now <= icoDeadline);
        _;
    }
    
    modifier onGoalAchievedOrDeadline() {
        // Checks if amount of sold tokens >= min limit or deadline is reached
        require(soldTokensOnIco >= minIcoTokenLimit || now > icoDeadline || icoStoppedManually);
        _;
    }
    
    modifier onIcoStopped() {
        // Checks if ICO was stopped or deadline is reached
        require(icoStoppedManually || now > icoDeadline);
        _;
    }
    
    modifier notMigrated() {
        // Checks if base can be migrated
        require(!migrated);
        _;
    }
    
    /// @dev Constructor of ICO. Requires address of icoManager,
    /// address of preIcoToken, time of start ICO (or zero),
    /// time of ICO deadline (or zero), founders' reward time (or zero)
    /// @param _icoManager Address of ICO manager
    /// @param _preIcoToken Address of pre-ICO contract
    /// @param _icoStart Timestamp of ICO start (if equals 0, sets defaultIcoStart)
    /// @param _icoDeadline Timestamp of ICO deadline (if equals 0, sets defaultIcoDeadline)
    /// @param _foundersRewardTime Timestamp of founders rewarding time 
    /// (if equals 0, sets defaultFoundersRewardTime)
    function ImmlaIco(address _icoManager, address _preIcoToken, 
        uint _icoStart, uint _icoDeadline, uint _foundersRewardTime) {
        assert(_preIcoToken != 0x0);
        assert(_icoManager != 0x0);
        
        immlaToken = new ImmlaToken(this);
        icoManager = _icoManager;
        preIcoToken = AbstractToken(_preIcoToken);
        
        if (_icoStart != 0) {
            icoStart = _icoStart;
        }
        if (_icoDeadline != 0) {
            icoDeadline = _icoDeadline;
        }
        if (_foundersRewardTime != 0) {
            foundersRewardTime = _foundersRewardTime;
        }
        
        // tokenPrices and tokenSupplies arrays initialisation
        tokenPrices.push(tokenPrice1);
        tokenPrices.push(tokenPrice2);
        tokenPrices.push(tokenPrice3);
        tokenPrices.push(tokenPrice4);
        
        tokenSupplies.push(tokenSupply1);
        tokenSupplies.push(tokenSupply2);
        tokenSupplies.push(tokenSupply3);
        tokenSupplies.push(tokenSupply4);
    }
    
    /// @dev Initialises addresses of team, founders, tokens owner, escrow.
    /// Initialises balances of team and tokens owner
    /// @param _founder1 Address of founder 1
    /// @param _founder2 Address of founder 2
    /// @param _founder3 Address of founder 3
    /// @param _team Address of team
    /// @param _bountyOwner Address of bounty owner
    /// @param _escrow Address of escrow
    function init(
        address _founder1, address _founder2, address _founder3, 
        address _team, address _bountyOwner, address _escrow) onlyManager {
        assert(!initialized);
        assert(_founder1 != 0x0);
        assert(_founder2 != 0x0);
        assert(_founder3 != 0x0);
        assert(_team != 0x0);
        assert(_bountyOwner != 0x0);
        assert(_escrow != 0x0);
        
        founder1 = _founder1;
        founder2 = _founder2;
        founder3 = _founder3;
        team = _team;
        bountyOwner = _bountyOwner;
        escrow = _escrow;
        
        immlaToken.emitTokens(team, teamsReward);
        immlaToken.emitTokens(bountyOwner, bountyOwnersTokens);
        
        initialized = true;
    }
    
    /// @dev Sets new manager. Only manager can do it
    /// @param _newIcoManager Address of new ICO manager
    function setNewManager(address _newIcoManager) onlyManager {
        assert(_newIcoManager != 0x0);
        
        icoManager = _newIcoManager;
    }
    
    /// @dev Sets new token importer. Only manager can do it
    /// @param _newTokenImporter Address of token importer
    function setNewTokenImporter(address _newTokenImporter) onlyManager {
        tokenImporter = _newTokenImporter;
    } 
    
    // saves info if account's tokens were imported from pre-ICO
    mapping (address => bool) private importedFromPreIco;
    /// @dev Imports account's tokens from pre-ICO. It can be done only by user, ICO manager or token importer
    /// @param _account Address of account which tokens will be imported
    function importTokens(address _account) {
        // only tokens holder or manager or tokenImporter can do migration
        require(msg.sender == tokenImporter || msg.sender == icoManager || msg.sender == _account);
        require(!importedFromPreIco[_account]);
        
        uint preIcoBalance = preIcoToken.balanceOf(_account);
        if (preIcoBalance > 0) {
            immlaToken.emitTokens(_account, preIcoBalance);
            importedTokens = add(importedTokens, preIcoBalance);
        }
        
        importedFromPreIco[_account] = true;
    }
    
    /// @dev Stops ICO manually. Only manager can do it
    function stopIco() onlyManager /* onGoalAchievedOrDeadline */ {
        icoStoppedManually = true;
        StopIcoManually();
    }
    
    /// @dev If ICO is successful, sends funds to escrow (Only manager can do it). If ICO is failed, sends funds to caller (Anyone can do it)
    function withdrawEther() onGoalAchievedOrDeadline {
        if (soldTokensOnIco >= minIcoTokenLimit) {
            assert(initialized);
            assert(this.balance > 0);
            assert(msg.sender == icoManager);
            
            escrow.transfer(this.balance);
            WithdrawEther();
        } 
        else {
            returnFundsFor(msg.sender);
        }
    }
    
    /// @dev Returns funds to funder if ICO is unsuccessful. Dont removes IMMLA balance. Can be called only by manager or contract
    /// @param _account Address of funder
    function returnFundsFor(address _account) onGoalAchievedOrDeadline {
        assert(msg.sender == address(this) || msg.sender == icoManager || msg.sender == _account);
        assert(soldTokensOnIco < minIcoTokenLimit);
        assert(balances[_account] > 0);
        
        _account.transfer(balances[_account]);
        balances[_account] = 0;
        
        ReturnFundsFor(_account);
    }
    
    /// @dev count tokens that can be sold with amount of money. Can be called only by contract
    /// @param _weis Amount of weis
    function countTokens(uint _weis) private returns(uint) { 
        uint result = 0;
        uint stage;
        for (stage = 0; stage < 4; stage++) {
            if (_weis == 0) {
                break;
            }
            if (tokenSupplies[stage] == 0) {
                continue;
            }
            uint maxTokenAmount = tokenPrices[stage] * _weis;
            if (maxTokenAmount <= tokenSupplies[stage]) {
                result = add(result, maxTokenAmount);
                break;
            }
            result = add(result, tokenSupplies[stage]);
            _weis = sub(_weis, div(tokenSupplies[stage], tokenPrices[stage]));
        }
        
        if (stage == 4) {
            result = add(result, tokenPrices[3] * _weis);
        }
        
        return result;
    }
    
    /// @dev Invalidates _amount tokens. Can be called only by contract
    /// @param _amount Amount of tokens
    function removeTokens(uint _amount) private {
        for (uint i = 0; i < 4; i++) {
            if (_amount == 0) {
                break;
            }
            if (tokenSupplies[i] > _amount) {
                tokenSupplies[i] = sub(tokenSupplies[i], _amount);
                break;
            }
            _amount = sub(_amount, tokenSupplies[i]);
            tokenSupplies[i] = 0;
        }
    }
    
    /// @dev Buys quantity of tokens for the amount of sent ethers.
    /// @param _buyer Address of account which will receive tokens
    function buyTokens(address _buyer) private {
        assert(_buyer != 0x0);
        require(msg.value > 0);
        require(soldTokensOnIco < maxIcoTokenLimit);
        
        uint boughtTokens = countTokens(msg.value);
        assert(add(soldTokensOnIco, boughtTokens) <= maxIcoTokenLimit);
        
        removeTokens(boughtTokens);
        soldTokensOnIco = add(soldTokensOnIco, boughtTokens);
        immlaToken.emitTokens(_buyer, boughtTokens);
        
        balances[_buyer] = add(balances[_buyer], msg.value);
        
        BuyTokens(_buyer, msg.value, boughtTokens);
    }
    
    /// @dev Fall back function ~50k-100k gas
    function () payable onIcoRunning {
        buyTokens(msg.sender);
    }
    
    /// @dev Burn tokens from accounts only in state "not migrated". Only manager can do it
    /// @param _from Address of account 
    function burnTokens(address _from, uint _value) onlyManager notMigrated {
        immlaToken.burnTokens(_from, _value);
    }
    
    /// @dev Set state "migrated". Only manager can do it 
    function setStateMigrated() onlyManager {
        migrated = true;
    }
    
    /// @dev Send tokens to founders. Can be sent only after immlaToken.rewardTime() (2018.03.15 0:00 UTC)
    /// Sends 43% * 10% of all tokens to founder 1
    /// Sends 43% * 10% of all tokens to founder 2
    /// Sends 14% * 10% of all tokens to founder 3
    function sendTokensToFounders() onlyManager whenInitialized {
        require(!sentTokensToFounders && now >= foundersRewardTime);
        
        // soldTokensOnPreIco + soldTokensOnIco is ~81.3% of tokens 
        uint totalCountOfTokens = mulByFraction(add(soldTokensOnIco, soldTokensOnPreIco), 1000, 813);
        uint totalRewardToFounders = mulByFraction(totalCountOfTokens, 1, 10);
        
        uint founder1Reward = mulByFraction(totalRewardToFounders, 43, 100);
        uint founder2Reward = mulByFraction(totalRewardToFounders, 43, 100);
        uint founder3Reward = mulByFraction(totalRewardToFounders, 14, 100);
        immlaToken.emitTokens(founder1, founder1Reward);
        immlaToken.emitTokens(founder2, founder2Reward);
        immlaToken.emitTokens(founder3, founder3Reward);
        SendTokensToFounders(founder1Reward, founder2Reward, founder3Reward);
        sentTokensToFounders = true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"defaultIcoStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldTokensOnPreIco","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"importedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founder1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sendTokensToFounders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"migrated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoDeadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxIcoTokenLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preIcoToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenImporter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sentTokensToFounders","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bountyOwnersTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stopIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundersRewardTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"returnFundsFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founder2","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"immlaToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"team","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamsReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_founder1","type":"address"},{"name":"_founder2","type":"address"},{"name":"_founder3","type":"address"},{"name":"_team","type":"address"},{"name":"_bountyOwner","type":"address"},{"name":"_escrow","type":"address"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bountyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoStoppedManually","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"defaultFoundersRewardTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minIcoTokenLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenSupplies","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newIcoManager","type":"address"}],"name":"setNewManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"soldTokensOnIco","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setStateMigrated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escrow","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"importTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newTokenImporter","type":"address"}],"name":"setNewTokenImporter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenPrices","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"defaultIcoDeadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founder3","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_icoManager","type":"address"},{"name":"_preIcoToken","type":"address"},{"name":"_icoStart","type":"uint256"},{"name":"_icoDeadline","type":"uint256"},{"name":"_foundersRewardTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BuyTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"WithdrawEther","type":"event"},{"anonymous":false,"inputs":[],"name":"StopIcoManually","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"founder1Reward","type":"uint256"},{"indexed":false,"name":"founder2Reward","type":"uint256"},{"indexed":false,"name":"founder3Reward","type":"uint256"}],"name":"SendTokensToFounders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"ReturnFundsFor","type":"event"}]

606060405260048054600160a060020a03191690556359baedd0600a556359e3cc50600b55635aa98d50600c556000600d819055600e55610e38600f556a8caa3bca882cb004400000601055610ddd6011556a55cccdebc07db2f8800000601255610d826013556a52fb86cf580242c7d80000601455610d276015556a31f18e701dda1bb9ac00006016556019805463ffffffff191690553415620000a357600080fd5b60405160a080620024f983398101604052808051919060200180519190602001805191906020018051919060200180519150505b600160a060020a0384161515620000ea57fe5b600160a060020a0385161515620000fd57fe5b3062000108620002e5565b600160a060020a039091168152602001604051809103906000f08015156200012f57600080fd5b60008054600160a060020a0319908116600160a060020a03938416179091556003805482168884161790556001805490911691861691909117905582156200017757600a8390555b81156200018457600b8290555b80156200019157600c8190555b6017805460018101620001a58382620002f6565b916000526020600020900160005b50600f549055506017805460018101620001ce8382620002f6565b916000526020600020900160005b506011549055506017805460018101620001f78382620002f6565b916000526020600020900160005b506013549055506017805460018101620002208382620002f6565b916000526020600020900160005b506015549055506018805460018101620002498382620002f6565b916000526020600020900160005b506010549055506018805460018101620002728382620002f6565b916000526020600020900160005b5060125490555060188054600181016200029b8382620002f6565b916000526020600020900160005b506014549055506018805460018101620002c48382620002f6565b916000526020600020900160005b506016549055505b505050505062000347565b6040516108c18062001c3883390190565b8154818355818115116200031d576000838152602090206200031d91810190830162000323565b5b505050565b6200034491905b808211156200034057600081556001016200032a565b5090565b90565b6118e180620003576000396000f300606060405236156101d25763ffffffff60e060020a60003504166308dd14fc81146102155780630a0209d01461023a5780630c823abe1461025f5780630d1118ce14610284578063116b556b146102a8578063158ef93e146102d757806327e235e3146102fe57806327e7c0231461032f5780632c678c6414610344578063319df3bf1461036b57806333cf3ca01461039a5780634c6ebbbe146103bf578063636fa3c6146103e4578063681d52de146104135780636a0d3450146104425780637362377b146104695780637a1ab4071461047e5780637b274afc146104a35780637d61de37146104b85780637dfbdf6d146104dd578063806ba6d6146104fe578063809a812c1461052d578063827037db1461055c57806385f2aef21461058157806388bb0c73146105b057806399e133f9146105d55780639db069d814610614578063a057980114610643578063a19db6821461066a578063b08375241461068f578063c0c81969146106b4578063d30f945a146106dc578063dd09de33146106fd578063de01ec2814610722578063e2fdcc1714610737578063e3ba339814610766578063e3dd164e14610787578063e5afe3e6146107a8578063f85f3b7f146107d0578063fb38ec94146107f5575b5b6019546301000000900460ff161580156101ef5750600a544210155b80156101fd5750600b544211155b151561020857600080fd5b61021133610824565b5b5b005b341561022057600080fd5b6102286109ba565b60405190815260200160405180910390f35b341561024557600080fd5b6102286109c2565b60405190815260200160405180910390f35b341561026a57600080fd5b6102286109d1565b60405190815260200160405180910390f35b341561028f57600080fd5b610211600160a060020a03600435166024356109d7565b005b34156102b357600080fd5b6102bb610a78565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102ea610a87565b604051901515815260200160405180910390f35b341561030957600080fd5b610228600160a060020a0360043516610a90565b60405190815260200160405180910390f35b341561033a57600080fd5b610211610aa2565b005b341561034f57600080fd5b6102ea610d18565b604051901515815260200160405180910390f35b341561037657600080fd5b6102bb610d26565b604051600160a060020a03909116815260200160405180910390f35b34156103a557600080fd5b610228610d35565b60405190815260200160405180910390f35b34156103ca57600080fd5b610228610d3b565b60405190815260200160405180910390f35b34156103ef57600080fd5b6102bb610d4b565b604051600160a060020a03909116815260200160405180910390f35b341561041e57600080fd5b6102bb610d5a565b604051600160a060020a03909116815260200160405180910390f35b341561044d57600080fd5b6102ea610d69565b604051901515815260200160405180910390f35b341561047457600080fd5b610211610d78565b005b341561048957600080fd5b610228610e7c565b60405190815260200160405180910390f35b34156104ae57600080fd5b610211610e8b565b005b34156104c357600080fd5b610228610ee9565b60405190815260200160405180910390f35b34156104e857600080fd5b610211600160a060020a0360043516610eef565b005b341561050957600080fd5b6102bb611054565b604051600160a060020a03909116815260200160405180910390f35b341561053857600080fd5b6102bb611063565b604051600160a060020a03909116815260200160405180910390f35b341561056757600080fd5b610228611072565b60405190815260200160405180910390f35b341561058c57600080fd5b6102bb611078565b604051600160a060020a03909116815260200160405180910390f35b34156105bb57600080fd5b610228611087565b60405190815260200160405180910390f35b34156105e057600080fd5b610211600160a060020a0360043581169060243581169060443581169060643581169060843581169060a43516611096565b005b341561061f57600080fd5b6102bb61129c565b604051600160a060020a03909116815260200160405180910390f35b341561064e57600080fd5b6102ea6112ab565b604051901515815260200160405180910390f35b341561067557600080fd5b6102286112bb565b60405190815260200160405180910390f35b341561069a57600080fd5b6102286112c3565b60405190815260200160405180910390f35b34156106bf57600080fd5b6102286004356112d2565b60405190815260200160405180910390f35b34156106e757600080fd5b610211600160a060020a03600435166112f5565b005b341561070857600080fd5b61022861134f565b60405190815260200160405180910390f35b341561072d57600080fd5b610211611355565b005b341561074257600080fd5b6102bb611383565b604051600160a060020a03909116815260200160405180910390f35b341561077157600080fd5b610211600160a060020a0360043516611392565b005b341561079257600080fd5b610211600160a060020a036004351661152d565b005b34156107b357600080fd5b610228600435611575565b60405190815260200160405180910390f35b34156107db57600080fd5b610228611598565b60405190815260200160405180910390f35b341561080057600080fd5b6102bb6115a0565b604051600160a060020a03909116815260200160405180910390f35b6000600160a060020a038216151561083857fe5b6000341161084557600080fd5b600e546b0167641ef5be86c17e440000901061086057600080fd5b610869346115af565b9050670de0b6b3a76400006319e5987902610886600e5483611715565b111561088e57fe5b6108978161172f565b6108a3600e5482611715565b600e55600054600160a060020a031663f11b9fc8838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156108fc57600080fd5b6102c65a03f1151561090d57600080fd5b505050600160a060020a0382166000908152601a60205260409020546109339034611715565b601a600084600160a060020a0316600160a060020a03168152602001908152602001600020819055507f0a37b72bb67eee30e09084cf386f8a17817c57f620c3ab95fb25d6a20356ec778234836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5050565b6359baedd081565b6a0af22f34cec5cd87eba1a081565b600d5481565b60035433600160a060020a039081169116146109f257600080fd5b601954610100900460ff1615610a0757600080fd5b600054600160a060020a0316630d1118ce838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a5d57600080fd5b6102c65a03f11515610a6e57600080fd5b5050505b5b5b5050565b600554600160a060020a031681565b60195460ff1681565b601a6020526000908152604090205481565b600354600090819081908190819033600160a060020a03908116911614610ac857600080fd5b60195460ff161515610ad957600080fd5b60195462010000900460ff16158015610af45750600c544210155b1515610aff57600080fd5b610b24610b19600e546a0af22f34cec5cd87eba1a0611715565b6103e861032d611811565b9450610b33856001600a611811565b9350610b4284602b6064611811565b9250610b5184602b6064611811565b9150610b6084600e6064611811565b600054600554919250600160a060020a039081169163f11b9fc891168560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610bc057600080fd5b6102c65a03f11515610bd157600080fd5b5050600054600654600160a060020a03918216925063f11b9fc891168460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610c3157600080fd5b6102c65a03f11515610c4257600080fd5b5050600054600754600160a060020a03918216925063f11b9fc891168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610ca257600080fd5b6102c65a03f11515610cb357600080fd5b5050507f36ad6e464cd6d7160304df0eb54bdf17c4f1e8a9ddc9ed94938fae529ac88c1283838360405180848152602001838152602001828152602001935050505060405180910390a16019805462ff00001916620100001790555b5b5b5050505050565b601954610100900460ff1681565b600354600160a060020a031681565b600b5481565b6b0167641ef5be86c17e44000081565b600154600160a060020a031681565b600454600160a060020a031681565b60195462010000900460ff1681565b600e546a0ee3a5f48a68b55200000090101580610d965750600b5442115b80610daa57506019546301000000900460ff165b1515610db557600080fd5b600e546a0ee3a5f48a68b5520000009010610e6e5760195460ff161515610dd857fe5b6000600160a060020a0330163111610dec57fe5b60035433600160a060020a03908116911614610e0457fe5b600254600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610e3d57600080fd5b7f18ee1b9f03c782081d77fbeef56556de7e56e0a698cd4c98827718898d590f4760405160405180910390a1610e77565b610e7733610eef565b5b5b5b565b6a07be6b6f69ebdf9463f00081565b60035433600160a060020a03908116911614610ea657600080fd5b6019805463ff000000191663010000001790557f609669eb8341b074254d30befca4d168e482fbad94beb437e40f57139b9dd70760405160405180910390a15b5b565b600c5481565b600e546a0ee3a5f48a68b55200000090101580610f0d5750600b5442115b80610f2157506019546301000000900460ff165b1515610f2c57600080fd5b30600160a060020a031633600160a060020a03161480610f5a575060035433600160a060020a039081169116145b80610f76575080600160a060020a031633600160a060020a0316145b1515610f7e57fe5b600e546a0ee3a5f48a68b5520000009010610f9557fe5b600160a060020a0381166000908152601a602052604081205411610fb557fe5b600160a060020a0381166000818152601a6020526040908190205480156108fc029151600060405180830381858888f193505050501515610ff557600080fd5b600160a060020a0381166000908152601a6020526040808220919091557f420d4f35a6c31f27ba2d478b734271cf34b6afb064317b4ac7f72e1fb67ce5eb90829051600160a060020a03909116815260200160405180910390a15b5b50565b600654600160a060020a031681565b600054600160a060020a031681565b600a5481565b600854600160a060020a031681565b6a1fe2e78e86f86d5cf0980081565b60035433600160a060020a039081169116146110b157600080fd5b60195460ff16156110be57fe5b600160a060020a03861615156110d057fe5b600160a060020a03851615156110e257fe5b600160a060020a03841615156110f457fe5b600160a060020a038316151561110657fe5b600160a060020a038216151561111857fe5b600160a060020a038116151561112a57fe5b6005805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03898116919091179092556006805482168884161790556007805482168784161790556008805482168684161790819055600980548316868516179055600280549092168484161790915560005482169163f11b9fc891166a1fe2e78e86f86d5cf0980060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156111f557600080fd5b6102c65a03f1151561120657600080fd5b5050600054600954600160a060020a03918216925063f11b9fc891166a07be6b6f69ebdf9463f00060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561127157600080fd5b6102c65a03f1151561128257600080fd5b50506019805460ff19166001179055505b5b505050505050565b600954600160a060020a031681565b6019546301000000900460ff1681565b635aa98d5081565b6a0ee3a5f48a68b55200000081565b60188054829081106112e057fe5b906000526020600020900160005b5054905081565b60035433600160a060020a0390811691161461131057600080fd5b600160a060020a038116151561132257fe5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600e5481565b60035433600160a060020a0390811691161461137057600080fd5b6019805461ff0019166101001790555b5b565b600254600160a060020a031681565b60045460009033600160a060020a03908116911614806113c0575060035433600160a060020a039081169116145b806113dc575081600160a060020a031633600160a060020a0316145b15156113e757600080fd5b600160a060020a0382166000908152601b602052604090205460ff161561140d57600080fd5b600154600160a060020a03166370a082318360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561146657600080fd5b6102c65a03f1151561147757600080fd5b5050506040518051915050600081111561150557600054600160a060020a031663f11b9fc8838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156114e157600080fd5b6102c65a03f115156114f257600080fd5b505050611501600d5482611715565b600d555b600160a060020a0382166000908152601b60205260409020805460ff191660011790555b5050565b60035433600160a060020a0390811691161461154857600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60178054829081106112e057fe5b906000526020600020900160005b5054905081565b6359e3cc5081565b600754600160a060020a031681565b60008080805b60048210156116d2578415156115ca576116d2565b60188054839081106115d857fe5b906000526020600020900160005b505415156115f3576116c7565b8460178381548110151561160357fe5b906000526020600020900160005b505402905060188281548110151561162557fe5b906000526020600020900160005b5054811161164c576116458382611715565b92506116d2565b6116748360188481548110151561165f57fe5b906000526020600020900160005b5054611715565b92506116c4856116bf60188581548110151561168c57fe5b906000526020600020900160005b505460178054879081106116aa57fe5b906000526020600020900160005b5054611830565b61186f565b94505b6001909101906115b5565b8160041415611709576117068386601760038154811015156116f057fe5b906000526020600020900160005b505402611715565b92505b8293505b505050919050565b60008282018381101561172457fe5b8091505b5092915050565b60005b60048110156109b657811515611747576109b6565b8160188281548110151561175757fe5b906000526020600020900160005b505411156117b85761179560188281548110151561177f57fe5b906000526020600020900160005b50548361186f565b60188054839081106117a357fe5b906000526020600020900160005b50556109b6565b6117e0826018838154811015156117cb57fe5b906000526020600020900160005b505461186f565b915060006018828154811015156117f357fe5b906000526020600020900160005b50555b600101611732565b5b5050565b60006118266118208585611886565b83611830565b90505b9392505050565b60008082151561183c57fe5b828481151561184757fe5b049050828481151561185557fe5b06818402018414151561172457fe5b8091505b5092915050565b60008282111561187b57fe5b508082035b92915050565b60008282028315806118a2575082848281151561189f57fe5b04145b151561172457fe5b8091505b50929150505600a165627a7a723058203f6ea98b32f823f3e76194abe2e1e9bc91347d12e80b661cc4736017472c045e0029606060405260038054600160a060020a0319169055341561001f57600080fd5b6040516020806108c1833981016040528080519150505b600160a060020a038116151561004857fe5b60038054600160a060020a031916600160a060020a0383161790555b505b61084c806100756000396000f300606060405236156100c25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100c7578063095ea7b3146101525780630d1118ce1461018857806318160ddd146101ac57806319d1997a146101d157806323b872dd146101f6578063313ce5671461023257806370a082311461025757806395d89b4114610288578063a9059cbb14610313578063c66e409514610349578063dd62ed3e14610378578063f11b9fc8146103af575b600080fd5b34156100d257600080fd5b6100da6103d3565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101175780820151818401525b6020016100fe565b50505050905090810190601f1680156101445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015d57600080fd5b610174600160a060020a036004351660243561040a565b604051901515815260200160405180910390f35b341561019357600080fd5b6101aa600160a060020a0360043516602435610477565b005b34156101b757600080fd5b6101bf6104f3565b60405190815260200160405180910390f35b34156101dc57600080fd5b6101bf6104f9565b60405190815260200160405180910390f35b341561020157600080fd5b610174600160a060020a0360043581169060243516604435610509565b604051901515815260200160405180910390f35b341561023d57600080fd5b6101bf610619565b60405190815260200160405180910390f35b341561026257600080fd5b6101bf600160a060020a036004351661061e565b60405190815260200160405180910390f35b341561029357600080fd5b6100da61063d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101175780820151818401525b6020016100fe565b50505050905090810190601f1680156101445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031e57600080fd5b610174600160a060020a0360043516602435610674565b604051901515815260200160405180910390f35b341561035457600080fd5b61035c610737565b604051600160a060020a03909116815260200160405180910390f35b341561038357600080fd5b6101bf600160a060020a0360043581169060243516610746565b60405190815260200160405180910390f35b34156103ba57600080fd5b6101aa600160a060020a0360043516602435610773565b005b60408051908101604052600581527f494d4d4c41000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60035433600160a060020a0390811691161461049257600080fd5b600160a060020a03821615156104a457fe5b600081116104b157600080fd5b600160a060020a0382166000908152602081905260409020546104d490826107ef565b600160a060020a0383166000908152602081905260409020555b5b5050565b60025481565b6b01c784ec1198da7fa60c000081565b600160a060020a0383166000908152602081905260408120548290108015906105595750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b801561057e5750600160a060020a038316600090815260208190526040902054828101115b1561060d57600160a060020a0380841660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529490915290819020805486900390559091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610611565b5060005b5b9392505050565b601281565b600160a060020a0381166000908152602081905260409020545b919050565b60408051908101604052600381527f494d4c0000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a0333166000908152602081905260408120548290108015906106b65750600160a060020a038316600090815260208190526040902054828101115b1561072857600160a060020a033381166000818152602081905260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610471565b506000610471565b5b92915050565b600354600160a060020a031681565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b60035433600160a060020a0390811691161461078e57600080fd5b600160a060020a03821615156107a057fe5b600081116107ad57600080fd5b600160a060020a0382166000908152602081905260409020546104d49082610806565b600160a060020a0383166000908152602081905260409020555b5b5050565b6000828211156107fb57fe5b508082035b92915050565b60008282018381101561081557fe5b8091505b50929150505600a165627a7a723058200a610ce96fed9e377055e910d90a541b30770ac7b7c8a0c69dad1d4b56f701d300290000000000000000000000003abbb0967accde028030720160212be9bab60388000000000000000000000000d29ba5f94fb91eefc5e3aaf69f181febed73930e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x606060405236156101d25763ffffffff60e060020a60003504166308dd14fc81146102155780630a0209d01461023a5780630c823abe1461025f5780630d1118ce14610284578063116b556b146102a8578063158ef93e146102d757806327e235e3146102fe57806327e7c0231461032f5780632c678c6414610344578063319df3bf1461036b57806333cf3ca01461039a5780634c6ebbbe146103bf578063636fa3c6146103e4578063681d52de146104135780636a0d3450146104425780637362377b146104695780637a1ab4071461047e5780637b274afc146104a35780637d61de37146104b85780637dfbdf6d146104dd578063806ba6d6146104fe578063809a812c1461052d578063827037db1461055c57806385f2aef21461058157806388bb0c73146105b057806399e133f9146105d55780639db069d814610614578063a057980114610643578063a19db6821461066a578063b08375241461068f578063c0c81969146106b4578063d30f945a146106dc578063dd09de33146106fd578063de01ec2814610722578063e2fdcc1714610737578063e3ba339814610766578063e3dd164e14610787578063e5afe3e6146107a8578063f85f3b7f146107d0578063fb38ec94146107f5575b5b6019546301000000900460ff161580156101ef5750600a544210155b80156101fd5750600b544211155b151561020857600080fd5b61021133610824565b5b5b005b341561022057600080fd5b6102286109ba565b60405190815260200160405180910390f35b341561024557600080fd5b6102286109c2565b60405190815260200160405180910390f35b341561026a57600080fd5b6102286109d1565b60405190815260200160405180910390f35b341561028f57600080fd5b610211600160a060020a03600435166024356109d7565b005b34156102b357600080fd5b6102bb610a78565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102ea610a87565b604051901515815260200160405180910390f35b341561030957600080fd5b610228600160a060020a0360043516610a90565b60405190815260200160405180910390f35b341561033a57600080fd5b610211610aa2565b005b341561034f57600080fd5b6102ea610d18565b604051901515815260200160405180910390f35b341561037657600080fd5b6102bb610d26565b604051600160a060020a03909116815260200160405180910390f35b34156103a557600080fd5b610228610d35565b60405190815260200160405180910390f35b34156103ca57600080fd5b610228610d3b565b60405190815260200160405180910390f35b34156103ef57600080fd5b6102bb610d4b565b604051600160a060020a03909116815260200160405180910390f35b341561041e57600080fd5b6102bb610d5a565b604051600160a060020a03909116815260200160405180910390f35b341561044d57600080fd5b6102ea610d69565b604051901515815260200160405180910390f35b341561047457600080fd5b610211610d78565b005b341561048957600080fd5b610228610e7c565b60405190815260200160405180910390f35b34156104ae57600080fd5b610211610e8b565b005b34156104c357600080fd5b610228610ee9565b60405190815260200160405180910390f35b34156104e857600080fd5b610211600160a060020a0360043516610eef565b005b341561050957600080fd5b6102bb611054565b604051600160a060020a03909116815260200160405180910390f35b341561053857600080fd5b6102bb611063565b604051600160a060020a03909116815260200160405180910390f35b341561056757600080fd5b610228611072565b60405190815260200160405180910390f35b341561058c57600080fd5b6102bb611078565b604051600160a060020a03909116815260200160405180910390f35b34156105bb57600080fd5b610228611087565b60405190815260200160405180910390f35b34156105e057600080fd5b610211600160a060020a0360043581169060243581169060443581169060643581169060843581169060a43516611096565b005b341561061f57600080fd5b6102bb61129c565b604051600160a060020a03909116815260200160405180910390f35b341561064e57600080fd5b6102ea6112ab565b604051901515815260200160405180910390f35b341561067557600080fd5b6102286112bb565b60405190815260200160405180910390f35b341561069a57600080fd5b6102286112c3565b60405190815260200160405180910390f35b34156106bf57600080fd5b6102286004356112d2565b60405190815260200160405180910390f35b34156106e757600080fd5b610211600160a060020a03600435166112f5565b005b341561070857600080fd5b61022861134f565b60405190815260200160405180910390f35b341561072d57600080fd5b610211611355565b005b341561074257600080fd5b6102bb611383565b604051600160a060020a03909116815260200160405180910390f35b341561077157600080fd5b610211600160a060020a0360043516611392565b005b341561079257600080fd5b610211600160a060020a036004351661152d565b005b34156107b357600080fd5b610228600435611575565b60405190815260200160405180910390f35b34156107db57600080fd5b610228611598565b60405190815260200160405180910390f35b341561080057600080fd5b6102bb6115a0565b604051600160a060020a03909116815260200160405180910390f35b6000600160a060020a038216151561083857fe5b6000341161084557600080fd5b600e546b0167641ef5be86c17e440000901061086057600080fd5b610869346115af565b9050670de0b6b3a76400006319e5987902610886600e5483611715565b111561088e57fe5b6108978161172f565b6108a3600e5482611715565b600e55600054600160a060020a031663f11b9fc8838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156108fc57600080fd5b6102c65a03f1151561090d57600080fd5b505050600160a060020a0382166000908152601a60205260409020546109339034611715565b601a600084600160a060020a0316600160a060020a03168152602001908152602001600020819055507f0a37b72bb67eee30e09084cf386f8a17817c57f620c3ab95fb25d6a20356ec778234836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5050565b6359baedd081565b6a0af22f34cec5cd87eba1a081565b600d5481565b60035433600160a060020a039081169116146109f257600080fd5b601954610100900460ff1615610a0757600080fd5b600054600160a060020a0316630d1118ce838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a5d57600080fd5b6102c65a03f11515610a6e57600080fd5b5050505b5b5b5050565b600554600160a060020a031681565b60195460ff1681565b601a6020526000908152604090205481565b600354600090819081908190819033600160a060020a03908116911614610ac857600080fd5b60195460ff161515610ad957600080fd5b60195462010000900460ff16158015610af45750600c544210155b1515610aff57600080fd5b610b24610b19600e546a0af22f34cec5cd87eba1a0611715565b6103e861032d611811565b9450610b33856001600a611811565b9350610b4284602b6064611811565b9250610b5184602b6064611811565b9150610b6084600e6064611811565b600054600554919250600160a060020a039081169163f11b9fc891168560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610bc057600080fd5b6102c65a03f11515610bd157600080fd5b5050600054600654600160a060020a03918216925063f11b9fc891168460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610c3157600080fd5b6102c65a03f11515610c4257600080fd5b5050600054600754600160a060020a03918216925063f11b9fc891168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610ca257600080fd5b6102c65a03f11515610cb357600080fd5b5050507f36ad6e464cd6d7160304df0eb54bdf17c4f1e8a9ddc9ed94938fae529ac88c1283838360405180848152602001838152602001828152602001935050505060405180910390a16019805462ff00001916620100001790555b5b5b5050505050565b601954610100900460ff1681565b600354600160a060020a031681565b600b5481565b6b0167641ef5be86c17e44000081565b600154600160a060020a031681565b600454600160a060020a031681565b60195462010000900460ff1681565b600e546a0ee3a5f48a68b55200000090101580610d965750600b5442115b80610daa57506019546301000000900460ff165b1515610db557600080fd5b600e546a0ee3a5f48a68b5520000009010610e6e5760195460ff161515610dd857fe5b6000600160a060020a0330163111610dec57fe5b60035433600160a060020a03908116911614610e0457fe5b600254600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610e3d57600080fd5b7f18ee1b9f03c782081d77fbeef56556de7e56e0a698cd4c98827718898d590f4760405160405180910390a1610e77565b610e7733610eef565b5b5b5b565b6a07be6b6f69ebdf9463f00081565b60035433600160a060020a03908116911614610ea657600080fd5b6019805463ff000000191663010000001790557f609669eb8341b074254d30befca4d168e482fbad94beb437e40f57139b9dd70760405160405180910390a15b5b565b600c5481565b600e546a0ee3a5f48a68b55200000090101580610f0d5750600b5442115b80610f2157506019546301000000900460ff165b1515610f2c57600080fd5b30600160a060020a031633600160a060020a03161480610f5a575060035433600160a060020a039081169116145b80610f76575080600160a060020a031633600160a060020a0316145b1515610f7e57fe5b600e546a0ee3a5f48a68b5520000009010610f9557fe5b600160a060020a0381166000908152601a602052604081205411610fb557fe5b600160a060020a0381166000818152601a6020526040908190205480156108fc029151600060405180830381858888f193505050501515610ff557600080fd5b600160a060020a0381166000908152601a6020526040808220919091557f420d4f35a6c31f27ba2d478b734271cf34b6afb064317b4ac7f72e1fb67ce5eb90829051600160a060020a03909116815260200160405180910390a15b5b50565b600654600160a060020a031681565b600054600160a060020a031681565b600a5481565b600854600160a060020a031681565b6a1fe2e78e86f86d5cf0980081565b60035433600160a060020a039081169116146110b157600080fd5b60195460ff16156110be57fe5b600160a060020a03861615156110d057fe5b600160a060020a03851615156110e257fe5b600160a060020a03841615156110f457fe5b600160a060020a038316151561110657fe5b600160a060020a038216151561111857fe5b600160a060020a038116151561112a57fe5b6005805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03898116919091179092556006805482168884161790556007805482168784161790556008805482168684161790819055600980548316868516179055600280549092168484161790915560005482169163f11b9fc891166a1fe2e78e86f86d5cf0980060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156111f557600080fd5b6102c65a03f1151561120657600080fd5b5050600054600954600160a060020a03918216925063f11b9fc891166a07be6b6f69ebdf9463f00060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561127157600080fd5b6102c65a03f1151561128257600080fd5b50506019805460ff19166001179055505b5b505050505050565b600954600160a060020a031681565b6019546301000000900460ff1681565b635aa98d5081565b6a0ee3a5f48a68b55200000081565b60188054829081106112e057fe5b906000526020600020900160005b5054905081565b60035433600160a060020a0390811691161461131057600080fd5b600160a060020a038116151561132257fe5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600e5481565b60035433600160a060020a0390811691161461137057600080fd5b6019805461ff0019166101001790555b5b565b600254600160a060020a031681565b60045460009033600160a060020a03908116911614806113c0575060035433600160a060020a039081169116145b806113dc575081600160a060020a031633600160a060020a0316145b15156113e757600080fd5b600160a060020a0382166000908152601b602052604090205460ff161561140d57600080fd5b600154600160a060020a03166370a082318360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561146657600080fd5b6102c65a03f1151561147757600080fd5b5050506040518051915050600081111561150557600054600160a060020a031663f11b9fc8838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156114e157600080fd5b6102c65a03f115156114f257600080fd5b505050611501600d5482611715565b600d555b600160a060020a0382166000908152601b60205260409020805460ff191660011790555b5050565b60035433600160a060020a0390811691161461154857600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60178054829081106112e057fe5b906000526020600020900160005b5054905081565b6359e3cc5081565b600754600160a060020a031681565b60008080805b60048210156116d2578415156115ca576116d2565b60188054839081106115d857fe5b906000526020600020900160005b505415156115f3576116c7565b8460178381548110151561160357fe5b906000526020600020900160005b505402905060188281548110151561162557fe5b906000526020600020900160005b5054811161164c576116458382611715565b92506116d2565b6116748360188481548110151561165f57fe5b906000526020600020900160005b5054611715565b92506116c4856116bf60188581548110151561168c57fe5b906000526020600020900160005b505460178054879081106116aa57fe5b906000526020600020900160005b5054611830565b61186f565b94505b6001909101906115b5565b8160041415611709576117068386601760038154811015156116f057fe5b906000526020600020900160005b505402611715565b92505b8293505b505050919050565b60008282018381101561172457fe5b8091505b5092915050565b60005b60048110156109b657811515611747576109b6565b8160188281548110151561175757fe5b906000526020600020900160005b505411156117b85761179560188281548110151561177f57fe5b906000526020600020900160005b50548361186f565b60188054839081106117a357fe5b906000526020600020900160005b50556109b6565b6117e0826018838154811015156117cb57fe5b906000526020600020900160005b505461186f565b915060006018828154811015156117f357fe5b906000526020600020900160005b50555b600101611732565b5b5050565b60006118266118208585611886565b83611830565b90505b9392505050565b60008082151561183c57fe5b828481151561184757fe5b049050828481151561185557fe5b06818402018414151561172457fe5b8091505b5092915050565b60008282111561187b57fe5b508082035b92915050565b60008282028315806118a2575082848281151561189f57fe5b04145b151561172457fe5b8091505b50929150505600a165627a7a723058203f6ea98b32f823f3e76194abe2e1e9bc91347d12e80b661cc4736017472c045e0029

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

0000000000000000000000003abbb0967accde028030720160212be9bab60388000000000000000000000000d29ba5f94fb91eefc5e3aaf69f181febed73930e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _icoManager (address): 0x3ABBB0967ACcdE028030720160212bE9bAB60388
Arg [1] : _preIcoToken (address): 0xD29bA5F94fB91eEfc5e3AaF69F181fEBEd73930E
Arg [2] : _icoStart (uint256): 0
Arg [3] : _icoDeadline (uint256): 0
Arg [4] : _foundersRewardTime (uint256): 0

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000003abbb0967accde028030720160212be9bab60388
Arg [1] : 000000000000000000000000d29ba5f94fb91eefc5e3aaf69f181febed73930e
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://0a610ce96fed9e377055e910d90a541b30770ac7b7c8a0c69dad1d4b56f701d3

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.