Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview | IUNGO Token
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 1721 txns
Token Tracker 0x24ddff6d8b8a42d835af3b440de91f3386554aa4
Misc  
   
Address Watch Add To Watch List
Contract Creator 0xb5085b85a6b77331652150289e961285b364f777at txn 0x0c79bcf2d09f59be885d3b9ff26f566dc0e57809ca8dc0e6c3b26dd6cad0cd0b
Token Tracker
  Latest 25 txns from a total Of 1721 transactions (+1 PendingTxn) View All

TxHash Age From To Value [TxFee]
0x165290797e7beb9fa7f50520665ebf6333b23ad1aa876ddd24803b644cd6aded(pending)18 mins ago0x24e193d429e2fbc0ad6bb7e8ca2306de48ba19dd  IN  0x24ddff6d8b8a42d835af3b440de91f3386554aa40.001 Ether(pending)
0x3036e301dfa84336a689bb5fc646ede381af9d8b079150e6e518294d1ec3d90d13 mins ago0xf9d0a651d4f23d9c3c3523f3d27a15a517e14b12  IN   IUNGO Token2 Ether0.003606846
0x73e7c222e1f6d630efbaf1e43173561c675e30c9776c3f17a797c98a168ca3b727 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.01196649
0x40b51bf328cf352cdc02d0410d0a5e0d0b4b7701eb4327ee3825b5700697dd0943 mins ago0x22585347d192a226e4a01e5c70e509adb97daa03  IN   IUNGO Token0.343929792 Ether0.000861
0x7950a6667d12a1a6d621e22e545cccde735bb3006c08ee5da838d3c5d4b8dbb243 mins ago0xb9bc67fad34ebc51b8531e4694ccfcfbd5d41723  IN   IUNGO Token0.07 Ether0.002594398
0xfdbd35c8740c0bdbf441ac96c8f77ca6a0f10824734d4cceeecc11a4989dc0d943 mins ago0xbecaefa3566024ad0629138d3f14a6014e04e60f  IN   IUNGO Token0.12 Ether0.0031639
0x6349b1f5fe981dbd3562c08cc7b7b45cafe431836a6acaacf24c1fa71947611345 mins ago0x6a598f832f89b8382d5d4a4dfc6c6afeb63297d8  IN   IUNGO Token0.472763 Ether0.002594398
0x81ecab5deeb72efe0d3ea3fd05b4a7a0dd4a92fc4fb0cf4061276c1d3ce0dd8c48 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.016234515
0x18f3a152cbc3f127d705bd37245b12e9ea4a20d175d430858a61c7c8067920f749 mins ago0x7ed1e469fcb3ee19c0366d829e291451be638e59  IN   IUNGO Token0.0418 Ether0.00386224
0x4ab21082e87faea0a83742a4b35f3a1d449ccb762456e7459dfd3ce659b870bc51 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.0252747
0xfb8d137952946945e67016ccb21877ead61c2ccd8113d3607ab2ab0fa76a660153 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.039970755
0x34e64ca603cbf5f5ef45ee9cb7a69ae9d45d363bfa0e4adb4eeba9735adcce261 hr 6 mins ago0x12047102b2b29d6cab58c9e37b714d05eeec4400  IN   IUNGO Token0.44 Ether0.0031639
0x90a2fa4af50238ecced51152de0e6ff87dbe4ffa93738c196374ea691ead256b1 hr 10 mins ago0x6025f0405dce5722854bae2a1f79f339e90639a0  IN   IUNGO Token2.6 Ether0.00379668
0x39ffaed98edadf8ef0d56a7cb88a863f3d8d6fa864df2b2b0331446dd898ff4e1 hr 10 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.00191574
0x3f0648366f36a52df7a28c642069d11eb2483d428d2c14a0c93815eaf4d25a751 hr 25 mins ago0x7c5e1a40a31f0ecc64f5cbb288bba3f464b2884e  IN   IUNGO Token0.012 Ether0.001328838
0x821552a4e1751c26eb165f17311d2abbaa1d63a5e076c47cf08da1cb553f96601 hr 25 mins ago0x919864c0b79d5db826e77a71c039b586af2cc73b  IN   IUNGO Token0.06643259 Ether0.003606846
0x2e58ee316948f17784fa44d45821ed8c431c7f884c35d0a276fea0159660efe51 hr 30 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.00191862
0xb25744f0b4656a8568c9f79de222108f71e2a25e55aaa5e5ace360ffa125003d1 hr 35 mins ago0x747b0336a9593bae28efed17705c6c5977231a2c  IN   IUNGO Token0.88 Ether0.001013838
0x4d8dedc199169d1d5b8a03163df47d6700c2884675b8dc56573df943b771ea3c1 hr 35 mins ago0xda746a96e13dc59035e3e0b66585b75b1f7b983a  IN   IUNGO Token0.163720786 Ether0.001328838
0xbddcf080e5ae5e7abee5da55a334c97e7e834b85ba322200ba3992982efcbc961 hr 37 mins ago0x4440de2a899f863157b2f8bad2cbc5600c8d0cd9  IN   IUNGO Token15.252869956 Ether0.0031639
0xd0555e06e324c73c034301da205bc2fde1c5253e8c23d4e76dfc24510242e1061 hr 39 mins ago0xb5085b85a6b77331652150289e961285b364f777  IN   IUNGO Token0 Ether0.00259074
0x39d5278bee354f587f4cfc0d56f7520be87285b18bdbe6810488935301a570b71 hr 54 mins ago0x2bb08665f2cc2426da392aa895b809561537b045  IN   IUNGO Token0.05 Ether0.0031639
0xc64116492068778816a2e5d497fe9c55890d79e7ff2b68a1cee018401f7940962 hrs 4 mins ago0x0c9f2f7f5ad6f6787f6952e34e35a45c7e407007  IN   IUNGO Token0.1 Ether0.0031639
0xccf148b6e91bed20aa47410742b1380a9987c07db49b68a4f90d7f25028bedd42 hrs 5 mins ago0x3a6ac2c5d71f7f293dea0aeb57aa99a875e98f9f  IN   IUNGO Token0.2 Ether0.003227178
0xbb07f4c2b450c128250955760326f5d9d49747a38148ebe5bbb0256e95b236702 hrs 14 mins ago0xc858e25fa3c2d881f975a5b1734bfd88ebdd79fe  IN   IUNGO Token1.874677789754885 Ether0.003606846
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0x3036e301dfa84336a689bb5fc646ede381af9d8b079150e6e518294d1ec3d90d493163813 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d62 Ether
0x7950a6667d12a1a6d621e22e545cccde735bb3006c08ee5da838d3c5d4b8dbb2493152043 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.07 Ether
0xfdbd35c8740c0bdbf441ac96c8f77ca6a0f10824734d4cceeecc11a4989dc0d9493152043 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.12 Ether
0x6349b1f5fe981dbd3562c08cc7b7b45cafe431836a6acaacf24c1fa719476113493151345 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.472763 Ether
0x18f3a152cbc3f127d705bd37245b12e9ea4a20d175d430858a61c7c8067920f7493149749 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.0418 Ether
0x34e64ca603cbf5f5ef45ee9cb7a69ae9d45d363bfa0e4adb4eeba9735adcce2649314201 hr 6 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.44 Ether
0x90a2fa4af50238ecced51152de0e6ff87dbe4ffa93738c196374ea691ead256b49313991 hr 10 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d62.6 Ether
0x3f0648366f36a52df7a28c642069d11eb2483d428d2c14a0c93815eaf4d25a7549313371 hr 25 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.012 Ether
0x821552a4e1751c26eb165f17311d2abbaa1d63a5e076c47cf08da1cb553f966049313371 hr 25 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.06643259 Ether
0xb25744f0b4656a8568c9f79de222108f71e2a25e55aaa5e5ace360ffa125003d49312981 hr 35 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.88 Ether
0x4d8dedc199169d1d5b8a03163df47d6700c2884675b8dc56573df943b771ea3c49312981 hr 35 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.163720786 Ether
0xbddcf080e5ae5e7abee5da55a334c97e7e834b85ba322200ba3992982efcbc9649312931 hr 37 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d615.252869956 Ether
0x39d5278bee354f587f4cfc0d56f7520be87285b18bdbe6810488935301a570b749312371 hr 54 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.05 Ether
0xc64116492068778816a2e5d497fe9c55890d79e7ff2b68a1cee018401f79409649311932 hrs 4 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.1 Ether
0xccf148b6e91bed20aa47410742b1380a9987c07db49b68a4f90d7f25028bedd449311852 hrs 5 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.2 Ether
0xbb07f4c2b450c128250955760326f5d9d49747a38148ebe5bbb0256e95b2367049311532 hrs 14 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d61.874677789754885879 Ether
0x3573b0709e7781ceb2f8917c7ecbcd2e576b08fb21f275805c585099e4dc859549311412 hrs 17 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.25 Ether
0x4711425baecc99e62087aad4bbffebf902b7629f461b546cf881b17a590cc93c49310892 hrs 30 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.55 Ether
0xfa19212ac41c6e4695799928fe6a3149a6ff197a5c6cea44a5a0fb6dcd6fcfe549310592 hrs 37 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.15 Ether
0x0d7bbadddb2dcaf0b3c32147ff6c01824f702b50d95330db5275aef53541099d49310252 hrs 46 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d62.93360684 Ether
0x1d3e7ddb8cf277114cdb8d4e34b9c5b3a68de8901c3d70d1af64c9e9fb5e834b49309882 hrs 57 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.15 Ether
0x1047f80231cdc4d083fc39a317234e566090417f9062339f85beba44f788ee8a49309872 hrs 57 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.49 Ether
0x36249c42cff9a56c564be22fa6daf4ebb485a023e4c26461d6e110ab2661895749309493 hrs 6 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.99 Ether
0x07dd4d1e0a83edbf6557af8f65cdd75350d71e497cf819a3b1bb73872dafa47f49309493 hrs 6 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.2 Ether
0xcf41f0459a361941a3d677da0a40833d17d2e919329af0aa57fc6f90602613e649309133 hrs 16 mins ago0x24ddff6d8b8a42d835af3b440de91f3386554aa40x31a633c4ee2c317de2c65beb00593eadd9f172d60.445 Ether
[ Download CSV Export  ] 
Contract Source Code Verified
Contract Name: IungoToken
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity 0.4.18;


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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        return a - b;
    }

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

/**
 * @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) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

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

    mapping(address => uint256) public balances;

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

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

}

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

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    assert(token.transfer(to, value));
  }

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

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

/**
 * @title TokenTimelock
 * @dev TokenTimelock is a token holder contract that will allow a
 * beneficiary to extract the tokens after a given release time
 */
contract TokenTimelock {
  using SafeERC20 for ERC20Basic;

  // ERC20 basic token contract being held
  ERC20Basic public token;

  // beneficiary of tokens after they are released
  address public beneficiary;

  // timestamp when token release is enabled
  uint64 public releaseTime;

  function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) public {
    require(_releaseTime > uint64(block.timestamp));
    token = _token;
    beneficiary = _beneficiary;
    releaseTime = _releaseTime;
  }

  /**
   * @notice Transfers tokens held by timelock to beneficiary.
   */
  function release() public {
    require(uint64(block.timestamp) >= releaseTime);

    uint256 amount = token.balanceOf(this);
    require(amount > 0);

    token.safeTransfer(beneficiary, amount);
  }
}

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

    mapping (address => mapping (address => uint256)) internal allowed;


    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

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

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     *
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    /**
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     */
    function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

contract Owned {
    address public owner;

    function Owned() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
}

contract IungoToken is StandardToken, Owned {
    string public constant name = "IUNGO token";
    string public constant symbol = "ING";
    uint8 public constant decimals = 18;

    /// Maximum tokens to be allocated (100 million)
    uint256 public constant HARD_CAP = 100000000 * 10**uint256(decimals);

    /// Maximum tokens to be allocated on the sale (64 million)
    uint256 public constant TOKENS_SALE_HARD_CAP = 64000000 * 10**uint256(decimals);

    /// The owner of this address is the Iungo Founders fund
    address public foundersFundAddress;

    /// The owner of this address is the Iungo Team Foundation fund
    address public teamFundAddress;

    /// The owner of this address is the Reserve fund
    address public reserveFundAddress;

    /// This address will be sent all the received ether
    address public fundsTreasury;

    /// This is the address of the timelock contract for 
    /// the first 1/3 of the Founders fund tokens
    address public foundersFundTimelock1Address;

    /// This is the address of the timelock contract for 
    /// the second 1/3 of the Founders fund tokens
    address public foundersFundTimelock2Address;

    /// This is the address of the timelock contract for 
    /// the third 1/3 of the Founders fund tokens
    address public foundersFundTimelock3Address;

    /// seconds since 01.01.1970 to 06.12.2017 12:00:00 UTC
    /// tier 1 start time
    uint64 private constant date06Dec2017 = 1512561600;

    /// seconds since 01.01.1970 to 21.12.2017 14:00:00 UTC
    /// tier 1 end time; tier 2 start time
    uint64 private constant date21Dec2017 = 1513864800;

    /// seconds since 01.01.1970 to 12.01.2018 14:00:00 UTC
    /// tier 2 end time; tier 3 start time
    uint64 private constant date12Jan2018 = 1515765600;

    /// seconds since 01.01.1970 to 21.01.2018 14:00:00 UTC
    /// tier 3 end time; tier 4 start time
    uint64 private constant date21Jan2018 = 1516543200;

    /// seconds since 01.01.1970 to 31.01.2018 23:59:59 UTC
    /// tier 4 end time; closing token sale; trading open
    uint64 private constant date31Jan2018 = 1517443199;

    /// Base exchange rate is set to 1 ETH = 1000 ING
    uint256 public constant BASE_RATE = 1000;

    /// no tokens can be ever issued when this is set to "true"
    bool public tokenSaleClosed = false;

    /// Issue event index starting from 0.
    uint256 public issueIndex = 0;

    /// Emitted for each sucuessful token purchase.
    event Issue(uint _issueIndex, address addr, uint tokenAmount);

    /// Require that the buyers can still purchase
    modifier inProgress {
        require(totalSupply < TOKENS_SALE_HARD_CAP
                && !tokenSaleClosed
                && !saleDue());
        _;
    }

    /// Allow the closing to happen only once 
    modifier beforeEnd {
        require(!tokenSaleClosed);
        _;
    }

    /// Require that the end of the sale has passed (time is 01 Feb 2018 or later)
    modifier tradingOpen {
        require(saleDue());
        _;
    }

    /**
     * CONSTRUCTOR
     *
     * @dev Initialize the IungoToken Token
     * @param _foundersFundAddress The owner of this address is the Iungo Founders fund
     * @param _teamFundAddress The owner of this address is the Iungo Team Foundation fund
     * @param _reserveFundAddress The owner of this address is the Reserve fund
     */
    function IungoToken (address _foundersFundAddress, address _teamFundAddress,
                         address _reserveFundAddress, address _fundsTreasury) public {
        foundersFundAddress = 0x9CB0016511Fb93EAc7bC585A2bc2f0C34DEcEa15;
        teamFundAddress = 0xDda7003998244f6161A5BBAf0F4ed5a40E908b51;
        reserveFundAddress = 0x9186b48Db83E63adEDaB43C19345f39c83928E3f;
        fundsTreasury = 0x31a633c4eE2C317DE2C65beb00593EAdD9f172d6;
    }

    /// @dev Returns the current price.
    function price() public view returns (uint256 tokens) {
        return computeTokenAmount(1 ether);
    }

    /// @dev This default function allows token to be purchased by directly
    /// sending ether to this smart contract.
    function () public payable {
        purchaseTokens(msg.sender);
    }

    /// @dev Issue token based on Ether received.
    /// @param _beneficiary Address that newly issued token will be sent to.
    function purchaseTokens(address _beneficiary) public payable inProgress {
        // only accept a minimum amount of ETH?
        require(msg.value >= 0.01 ether);

        uint256 tokens = computeTokenAmount(msg.value);
        doIssueTokens(_beneficiary, tokens);

        /// forward the raised funds to the fund address
        fundsTreasury.transfer(msg.value);
    }

    /// @dev Batch issue tokens on the presale
    /// @param _addresses addresses that the presale tokens will be sent to.
    /// @param _addresses the amounts of tokens, with decimals expanded (full).
    function issueTokensMulti(address[] _addresses, uint256[] _tokens) public onlyOwner inProgress {
        require(_addresses.length == _tokens.length);
        require(_addresses.length <= 100);

        for (uint256 i = 0; i < _tokens.length; i = i.add(1)) {
            doIssueTokens(_addresses[i], _tokens[i]);
        }
    }

    /// @dev Issue tokens for a single buyer on the presale
    /// @param _beneficiary addresses that the presale tokens will be sent to.
    /// @param _tokensAmount the amount of tokens, with decimals expanded (full).
    function issueTokens(address _beneficiary, uint256 _tokensAmount) public onlyOwner inProgress {
        doIssueTokens(_beneficiary, _tokensAmount);
    }

    /// @dev issue tokens for a single buyer
    /// @param _beneficiary addresses that the tokens will be sent to.
    /// @param _tokensAmount the amount of tokens, with decimals expanded (full).
    function doIssueTokens(address _beneficiary, uint256 _tokensAmount) internal {
        require(_beneficiary != address(0));

        // compute without actually increasing it
        uint256 increasedTotalSupply = totalSupply.add(_tokensAmount);
        // roll back if hard cap reached
        require(increasedTotalSupply <= TOKENS_SALE_HARD_CAP);

        // increase token total supply
        totalSupply = increasedTotalSupply;
        // update the buyer's balance to number of tokens sent
        balances[_beneficiary] = balances[_beneficiary].add(_tokensAmount);
        // event is fired when tokens issued
        Issue(
            issueIndex++,
            _beneficiary,
            _tokensAmount
        );
    }

    /// @dev Compute the amount of ING token that can be purchased.
    /// @param ethAmount Amount of Ether to purchase ING.
    /// @return Amount of ING token to purchase
    function computeTokenAmount(uint256 ethAmount) internal view returns (uint256 tokens) {
        /// the percentage value (0-100) of the discount for each tier
        uint64 discountPercentage = currentTierDiscountPercentage();

        uint256 tokenBase = ethAmount.mul(BASE_RATE);
        uint256 tokenBonus = tokenBase.mul(discountPercentage).div(100);

        tokens = tokenBase.add(tokenBonus);
    }

    /// @dev Determine the current sale tier.
    /// @return the index of the current sale tier.
    function currentTierDiscountPercentage() internal view returns (uint64) {
        uint64 _now = uint64(block.timestamp);
        require(_now <= date31Jan2018);

        if(_now > date21Jan2018) return 0;
        if(_now > date12Jan2018) return 15;
        if(_now > date21Dec2017) return 35;
        return 50;
    }

    // function getnow() public view returns (uint64) {
    //     return uint64(block.timestamp);
    // }
    // 
    // function setnow(uint64 time) public {
    //     _now = time;
    // }

    /// @dev Finalize the sale and distribute the reserve, team tokens, lock the founders tokens
    function close() public onlyOwner beforeEnd {
        uint64 _now = uint64(block.timestamp);

        /// Final (sold tokens) / (team + reserve + founders funds tokens) = 64 / 36 proportion = 0.5625
        /// (sold tokens) + (team + reserve + founders funds tokens) = 64% + 36% = 100%
        /// Therefore, (team + reserve + founders funds tokens) = 56.25% of the sold tokens = 36% of the total tokens
        uint256 totalTokens = totalSupply.add(totalSupply.mul(5625).div(10000));

        /// Tokens to be allocated to the Reserve fund (12% of total ING)
        uint256 reserveFundTokens = totalTokens.mul(12).div(100);
        balances[reserveFundAddress] = balances[reserveFundAddress].add(reserveFundTokens);
        totalSupply = totalSupply.add(reserveFundTokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            reserveFundAddress,
            reserveFundTokens
        );

        /// Tokens to be allocated to the Team fund (12% of total ING)
        uint256 teamFundTokens = totalTokens.mul(12).div(100);
        balances[teamFundAddress] = balances[teamFundAddress].add(teamFundTokens);
        totalSupply = totalSupply.add(teamFundTokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            teamFundAddress,
            teamFundTokens
        );

        /// Tokens to be allocated to the locked Founders fund
        /// 12% (3 x 4%) of total ING allocated to the Founders fund locked as follows:
        /// first 4% locked for 6 months (183 days)
        TokenTimelock lock1_6months = new TokenTimelock(this, foundersFundAddress, _now + 183*24*60*60);
        foundersFundTimelock1Address = address(lock1_6months);
        uint256 foundersFund1Tokens = totalTokens.mul(4).div(100);
        /// update the contract balance to number of tokens issued
        balances[foundersFundTimelock1Address] = balances[foundersFundTimelock1Address].add(foundersFund1Tokens);
        /// increase total supply respective to the tokens issued
        totalSupply = totalSupply.add(foundersFund1Tokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            foundersFundTimelock1Address,
            foundersFund1Tokens
        );

        /// second 4% locked for 12 months (365 days)
        TokenTimelock lock2_12months = new TokenTimelock(this, foundersFundAddress, _now + 365*24*60*60);
        foundersFundTimelock2Address = address(lock2_12months);
        uint256 foundersFund2Tokens = totalTokens.mul(4).div(100);
        balances[foundersFundTimelock2Address] = balances[foundersFundTimelock2Address].add(foundersFund2Tokens);
        /// increase total supply respective to the tokens issued
        totalSupply = totalSupply.add(foundersFund2Tokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            foundersFundTimelock2Address,
            foundersFund2Tokens
        );

        /// third 4% locked for 18 months (548 days)
        TokenTimelock lock3_18months = new TokenTimelock(this, foundersFundAddress, _now + 548*24*60*60);
        foundersFundTimelock3Address = address(lock3_18months);
        uint256 foundersFund3Tokens = totalTokens.mul(4).div(100);
        balances[foundersFundTimelock3Address] = balances[foundersFundTimelock3Address].add(foundersFund3Tokens);
        /// increase total supply respective to the tokens issued
        totalSupply = totalSupply.add(foundersFund3Tokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            foundersFundTimelock3Address,
            foundersFund3Tokens
        );

        /// burn the unallocated tokens - no more tokens can be issued after this line
        tokenSaleClosed = true;

        /// forward the raised funds to the fund address
        fundsTreasury.transfer(this.balance);
    }

    /// @return if the token sale is finished
    function saleDue() public view returns (bool) {
        return date31Jan2018 < uint64(block.timestamp);
    }

    /// Transfer limited by the tradingOpen modifier (time is 01 Feb 2018 or later)
    function transferFrom(address _from, address _to, uint256 _value) public tradingOpen returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    /// Transfer limited by the tradingOpen modifier (time is 01 Feb 2018 or later)
    function transfer(address _to, uint256 _value) public tradingOpen returns (bool) {
        return super.transfer(_to, _value);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsTreasury","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BASE_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundTimelock1Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_tokensAmount","type":"uint256"}],"name":"issueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"reserveFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundTimelock3Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"issueIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_tokens","type":"uint256[]"}],"name":"issueTokensMulti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleDue","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundTimelock2Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_SALE_HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_foundersFundAddress","type":"address"},{"name":"_teamFundAddress","type":"address"},{"name":"_reserveFundAddress","type":"address"},{"name":"_fundsTreasury","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_issueIndex","type":"uint256"},{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600a60146101000a81548160ff0219169083151502179055506000600b55341561002f57600080fd5b6040516080806134cd8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739cb0016511fb93eac7bc585a2bc2f0c34decea15600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dda7003998244f6161a5bbaf0f4ed5a40e908b51600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739186b48db83e63adedab43c19345f39c83928e3f600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507331a633c4ee2c317de2c65beb00593eadd9f172d6600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506132bf8061020e6000396000f30060606040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610196578063095ea7b31461022457806318160ddd1461027e57806323b872dd146102a757806327e235e314610320578063313ce5671461036d57806339f5b6b61461039c5780633a03171c146103f157806341910f901461041a57806343d726d6146104435780634446c98c14610458578063475a9fa9146104ad5780634b58d0bb146104ef5780635e8a60441461054457806366188463146105995780636a28f828146105f357806370a082311461061c5780637fdb6720146106695780638da5cb5b146106be57806392e8438c1461071357806395d89b41146107ad578063a035b1fe1461083b578063a9059cbb14610864578063bea4ae88146108be578063ca185022146108eb578063ce55703114610940578063d13bf7691461096e578063d73dd623146109c3578063dd62ed3e14610a1d578063e55a07c214610a89578063f946372c14610ab6575b61019433610adf565b005b34156101a157600080fd5b6101a9610bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e95780820151818401526020810190506101ce565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022f57600080fd5b610264600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bf2565b604051808215151515815260200191505060405180910390f35b341561028957600080fd5b610291610ce4565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b610306600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cea565b604051808215151515815260200191505060405180910390f35b341561032b57600080fd5b610357600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d13565b6040518082815260200191505060405180910390f35b341561037857600080fd5b610380610d2b565b604051808260ff1660ff16815260200191505060405180910390f35b34156103a757600080fd5b6103af610d30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103fc57600080fd5b610404610d56565b6040518082815260200191505060405180910390f35b341561042557600080fd5b61042d610d67565b6040518082815260200191505060405180910390f35b341561044e57600080fd5b610456610d6d565b005b341561046357600080fd5b61046b611ad1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104b857600080fd5b6104ed600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611af7565b005b34156104fa57600080fd5b610502611ba8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054f57600080fd5b610557611bce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a457600080fd5b6105d9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611bf4565b604051808215151515815260200191505060405180910390f35b34156105fe57600080fd5b610606611e85565b6040518082815260200191505060405180910390f35b341561062757600080fd5b610653600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e8b565b6040518082815260200191505060405180910390f35b341561067457600080fd5b61067c611ed4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c957600080fd5b6106d1611efa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071e57600080fd5b6107ab60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611f20565b005b34156107b857600080fd5b6107c061204c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108005780820151818401526020810190506107e5565b50505050905090810190601f16801561082d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084657600080fd5b61084e612085565b6040518082815260200191505060405180910390f35b341561086f57600080fd5b6108a4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061209d565b604051808215151515815260200191505060405180910390f35b34156108c957600080fd5b6108d16120c4565b604051808215151515815260200191505060405180910390f35b34156108f657600080fd5b6108fe6120e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61096c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610adf565b005b341561097957600080fd5b61098161210c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ce57600080fd5b610a03600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612132565b604051808215151515815260200191505060405180910390f35b3415610a2857600080fd5b610a73600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061232e565b6040518082815260200191505060405180910390f35b3415610a9457600080fd5b610a9c6123b5565b604051808215151515815260200191505060405180910390f35b3415610ac157600080fd5b610ac96123c8565b6040518082815260200191505060405180910390f35b6000601260ff16600a0a6303d0900002600054108015610b0c5750600a60149054906101000a900460ff16155b8015610b1d5750610b1b6120c4565b155b1515610b2857600080fd5b662386f26fc100003410151515610b3e57600080fd5b610b47346123d9565b9050610b53828261244f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610bb557600080fd5b5050565b6040805190810160405280600b81526020017f49554e474f20746f6b656e00000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b6000610cf46120c4565b1515610cff57600080fd5b610d0a8484846125e3565b90509392505050565b60016020528060005260406000206000915090505481565b601281565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a0a6305f5e1000281565b6103e881565b600080600080600080600080600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dd857600080fd5b600a60149054906101000a900460ff16151515610df457600080fd5b429950610e36610e25612710610e176115f96000546129a290919063ffffffff16565b6129d890919063ffffffff16565b6000546129f390919063ffffffff16565b9850610e5f6064610e51600c8c6129a290919063ffffffff16565b6129d890919063ffffffff16565b9750610ed58860016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4f886000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16110216064611013600c8c6129a290919063ffffffff16565b6129d890919063ffffffff16565b96506110978760016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611111876000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662f142808c016111ee612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561128857600080fd5b955085600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112f260646112e460048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b94506113688560016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2856000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166301e133808c016114c0612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561155a57600080fd5b935083600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115c460646115b660048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b925061163a8360016000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116b4836000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166302d276008c01611792612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561182c57600080fd5b915081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611896606461188860048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b905061190c8160016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611986816000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001600a60146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611ac557600080fd5b50505050505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5357600080fd5b601260ff16600a0a6303d0900002600054108015611b7e5750600a60149054906101000a900460ff16155b8015611b8f5750611b8d6120c4565b155b1515611b9a57600080fd5b611ba4828261244f565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611d05576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d99565b611d188382612a1490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600b5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7e57600080fd5b601260ff16600a0a6303d0900002600054108015611fa95750600a60149054906101000a900460ff16155b8015611fba5750611fb86120c4565b155b1515611fc557600080fd5b81518351141515611fd557600080fd5b6064835111151515611fe657600080fd5b600090505b81518110156120475761202c838281518110151561200557fe5b90602001906020020151838381518110151561201d57fe5b9060200190602002015161244f565b6120406001826129f390919063ffffffff16565b9050611feb565b505050565b6040805190810160405280600381526020017f494e47000000000000000000000000000000000000000000000000000000000081525081565b6000612098670de0b6b3a76400006123d9565b905090565b60006120a76120c4565b15156120b257600080fd5b6120bc8383612a30565b905092915050565b60004267ffffffffffffffff16635a72587f67ffffffffffffffff1610905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121c382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60149054906101000a900460ff1681565b601260ff16600a0a6303d090000281565b6000806000806123e7612c54565b92506123fe6103e8866129a290919063ffffffff16565b915061243060646124228567ffffffffffffffff16856129a290919063ffffffff16565b6129d890919063ffffffff16565b905061244581836129f390919063ffffffff16565b9350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561248c57600080fd5b6124a1826000546129f390919063ffffffff16565b9050601260ff16600a0a6303d090000281111515156124bf57600080fd5b8060008190555061251882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b6000815480929190600101919050558484604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561262057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561266e57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156126f957600080fd5b61274b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127e082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128b282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080828402905060008414806129c357508284828115156129c057fe5b04145b15156129ce57600080fd5b8091505092915050565b60008082848115156129e657fe5b0490508091505092915050565b6000808284019050838110151515612a0a57600080fd5b8091505092915050565b6000828211151515612a2557600080fd5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612a6d57600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612abb57600080fd5b612b0d82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ba282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080429050635a72587f67ffffffffffffffff168167ffffffffffffffff1611151515612c8157600080fd5b635a649ce067ffffffffffffffff168167ffffffffffffffff161115612caa5760009150612d01565b635a58bf6067ffffffffffffffff168167ffffffffffffffff161115612cd357600f9150612d01565b635a3bbe6067ffffffffffffffff168167ffffffffffffffff161115612cfc5760239150612d01565b603291505b5090565b60405161057e80612d168339019056006060604052341561000f57600080fd5b60405160608061057e833981016040528080519060200190919080519060200190919080519060200190919050504267ffffffffffffffff168167ffffffffffffffff1611151561005f57600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050506104638061011b6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806338af3eed1461006757806386d1a69f146100bc578063b91d4001146100d1578063fc0c546a1461010e575b600080fd5b341561007257600080fd5b61007a610163565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100c757600080fd5b6100cf610189565b005b34156100dc57600080fd5b6100e4610325565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561011957600080fd5b61012161033f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160149054906101000a900467ffffffffffffffff1667ffffffffffffffff164267ffffffffffffffff16101515156101c457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561028857600080fd5b6102c65a03f1151561029957600080fd5b5050506040518051905090506000811115156102b457600080fd5b610322600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103649092919063ffffffff16565b50565b600160149054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561040f57600080fd5b6102c65a03f1151561042057600080fd5b50505060405180519050151561043257fe5b5050505600a165627a7a7230582037e046f4a517539791172a9c3cfb168d1293b8ece20fdc956cfee0a3a318496f0029a165627a7a7230582000d5d743b32024710ae7578eb25b92b1c95a6ebc2c640dc5ed001b989b5838780029

   Swarm Source:
bzzr://00d5d743b32024710ae7578eb25b92b1c95a6ebc2c640dc5ed001b989b583878

 

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