Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 37 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86fat txn 0x76f097e593630f003590b341710e28dacde098ba2f2c4847c0a57e0f3323bac0
 Latest 25 transactions from a total of 37 transactions

TxHash Age From To Value [TxFee]
0x2c220beeb769cb73b6aff42ab47061f216632610ce03409fa54c84acbb8e56c3305 days 21 hrs ago0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56990 Ether0.000207852
0xbfcfda5bbdee6b9e659d7ca33157556f041addf03f33b5761ce6ac40d45e5c1c306 days 52 mins ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb569921 Ether0.00042198
0xe6985e7251f21f83233aa0d2764988a362d0b202bf523b2e22f045e57048c611306 days 52 mins ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb569920.1 Ether0.0126594
0x62cee36df9d3d0e3b6cbe02a5748e93cea6fbcffd52b722f3f6e0db53ab06703306 days 54 mins ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb569920 Ether0.000337584
0x898d058979250b43d70e99e05e79e36c5d67fcb62723be20ed92bad4c6fbfed1306 days 54 mins ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56998.6 Ether0.0084396
0xadb3fd6f0288d1424ac837320a81ef952ea6ed0804145f27ddf094752b2baa20306 days 57 mins ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56998.5 Ether0.00021099
0x385d9ef5d49db032a13ca4dbc1993d011f2058872354cd49d0d604683dbe6af1306 days 1 hr ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56996.5 Ether0.000044548
0x33bc4ec10c8537533494f99651a622a632774728f1b87ecef9e008d50d484726306 days 1 hr ago0x5c035bb4cb7dacbfee076a5e61aa39a10da2e956  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56995.6 Ether0.00022274
0x79582e92edcf5675a15884837d3a74bb3d2b84831a188ae1df8ae95f8cb5227e306 days 1 hr ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56998 Ether0.000253188
0xc3e7ab26e440fcde3bf6ccce90de50de3e5a76db622022569234afc3e6c2a019306 days 1 hr ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56995.5 Ether0.0042198
0x7cd0b11237da500ccc61b41d8be9e86ec7ddde6ed8f57c4bc1220eaf0a087adb306 days 1 hr ago0xe6725657db0a26c98f63f9f2fab7065d566bee9b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56995.4 Ether0.000042198
0x5ed4b89195287b5e67a12663165a822588b41d847830e8f811c61667fd982965306 days 2 hrs ago0xe374479695fd5eefbc1caaa8e9d705f05ae24f2b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56995.3 Ether0.000084396
0x9e827c8262583fa23d10d40f66bc89029c28863a189c2ae7be136b41450aeec4306 days 2 hrs ago0xe7eca2a94e9d59848f3c1e1ffaacd881d4c3a4f2  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56995 Ether0.00021099
0xf9683a12c0f3792e0334d5131c2dadab3dc885b2b898eda6e6997e22658983a1306 days 2 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56994 Ether0.000084396
0x6e4c896a63eb972a55796ce61214eb6d8446acf6f0b37abaf07526b18cdd1512306 days 3 hrs ago0xe6725657db0a26c98f63f9f2fab7065d566bee9b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56993.2 Ether0.000084396
0x5f8877d0ef116901079e9873a427ab360d7bcd0636e51b4c68f387bd931faff3306 days 3 hrs ago0x5c035bb4cb7dacbfee076a5e61aa39a10da2e956  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56993.1 Ether0.000084396
0x44f3b0fb031052caa061db78e10d01cc56f12edf423b75071334fff24fff1a34306 days 4 hrs ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56993 Ether0.000295386
0xef26657e6806d5aad1e4ea04303fb5d4397143a41f7373aecca95fd80c3d54c3306 days 4 hrs ago0x5c035bb4cb7dacbfee076a5e61aa39a10da2e956  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56992.3 Ether0.000084396
0xcc88adc60467fc1be9d900517a79ba85ea5de9939f5539cae8ce7b524181e9e8306 days 10 hrs ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56992.2 Ether0.000168792
0x88bb77b4daee86eee2a0c062abe301a18c9bce04eca4ecf2937a39bc8ef7acb4306 days 11 hrs ago0xe374479695fd5eefbc1caaa8e9d705f05ae24f2b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56992.1 Ether0.000084396
0x0c2fd5fe1f6ac71778ffab89ebac23f3e87c390822ff84fd91022d5bf9304692306 days 14 hrs ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56992 Ether0.000042198
0x7dccc67a9a09790d98d386c8e3a9f318f550a75f8e3d358a17487a4324687fc8306 days 14 hrs ago0xd082fc9a7db6d22aa0623e584e57376a6a8af064  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56991.7 Ether0.000168792
0x8dba6c79db2b1874e9117ffd60957f496f6ff3517c63f151e2f9178477f6abec306 days 15 hrs ago0xe6725657db0a26c98f63f9f2fab7065d566bee9b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56991.4 Ether0.000044548
0xc067c3d87cd769d04cad29eaf3974475081e4dea67b55a892a50a9cec7f00951306 days 15 hrs ago0x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56991.6 Ether0.000042198
0x96c3b6c2a4ff6aed6cb70710f58f5ea4919af98adf174789873dc60c1d186a07306 days 15 hrs ago0xe6725657db0a26c98f63f9f2fab7065d566bee9b  IN   0x59a6dc30e56a7b952edefce012aeef25abeb56991.5 Ether0.000084396
[ 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
0x2c220beeb769cb73b6aff42ab47061f216632610ce03409fa54c84acbb8e56c35305350305 days 21 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f21 Ether
0xbfcfda5bbdee6b9e659d7ca33157556f041addf03f33b5761ce6ac40d45e5c1c5304527306 days 52 mins ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xf3a2727a3447653a58d57e4be63d5d5cdc55421b20.1 Ether
0xe6985e7251f21f83233aa0d2764988a362d0b202bf523b2e22f045e57048c6115304524306 days 52 mins ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc20 Ether
0x62cee36df9d3d0e3b6cbe02a5748e93cea6fbcffd52b722f3f6e0db53ab067035304514306 days 54 mins ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xf3a2727a3447653a58d57e4be63d5d5cdc55421b8.6 Ether
0x898d058979250b43d70e99e05e79e36c5d67fcb62723be20ed92bad4c6fbfed15304512306 days 54 mins ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x183febd8828a9ac6c70c0e27fbf441b93004fc058.5 Ether
0xadb3fd6f0288d1424ac837320a81ef952ea6ed0804145f27ddf094752b2baa205304502306 days 57 mins ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc8 Ether
0x79582e92edcf5675a15884837d3a74bb3d2b84831a188ae1df8ae95f8cb5227e5304484306 days 1 hr ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xf3a2727a3447653a58d57e4be63d5d5cdc55421b5.5 Ether
0xc3e7ab26e440fcde3bf6ccce90de50de3e5a76db622022569234afc3e6c2a0195304454306 days 1 hr ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe6725657db0a26c98f63f9f2fab7065d566bee9b5.4 Ether
0x7cd0b11237da500ccc61b41d8be9e86ec7ddde6ed8f57c4bc1220eaf0a087adb5304449306 days 1 hr ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe374479695fd5eefbc1caaa8e9d705f05ae24f2b5.3 Ether
0x5ed4b89195287b5e67a12663165a822588b41d847830e8f811c61667fd9829655304222306 days 2 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe7eca2a94e9d59848f3c1e1ffaacd881d4c3a4f25 Ether
0x9e827c8262583fa23d10d40f66bc89029c28863a189c2ae7be136b41450aeec45304117306 days 2 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x183febd8828a9ac6c70c0e27fbf441b93004fc054 Ether
0xf9683a12c0f3792e0334d5131c2dadab3dc885b2b898eda6e6997e22658983a15304057306 days 2 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe6725657db0a26c98f63f9f2fab7065d566bee9b3.2 Ether
0x6e4c896a63eb972a55796ce61214eb6d8446acf6f0b37abaf07526b18cdd15125303939306 days 3 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x5c035bb4cb7dacbfee076a5e61aa39a10da2e9563.1 Ether
0x5f8877d0ef116901079e9873a427ab360d7bcd0636e51b4c68f387bd931faff35303893306 days 3 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc3 Ether
0x44f3b0fb031052caa061db78e10d01cc56f12edf423b75071334fff24fff1a345303682306 days 4 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x5c035bb4cb7dacbfee076a5e61aa39a10da2e9562.3 Ether
0xef26657e6806d5aad1e4ea04303fb5d4397143a41f7373aecca95fd80c3d54c35303666306 days 4 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc2.2 Ether
0xcc88adc60467fc1be9d900517a79ba85ea5de9939f5539cae8ce7b524181e9e85302031306 days 10 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe374479695fd5eefbc1caaa8e9d705f05ae24f2b2.1 Ether
0x88bb77b4daee86eee2a0c062abe301a18c9bce04eca4ecf2937a39bc8ef7acb45301740306 days 11 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc2 Ether
0x0c2fd5fe1f6ac71778ffab89ebac23f3e87c390822ff84fd91022d5bf93046925301107306 days 14 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xd082fc9a7db6d22aa0623e584e57376a6a8af0641.7 Ether
0x7dccc67a9a09790d98d386c8e3a9f318f550a75f8e3d358a17487a4324687fc85301081306 days 14 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc1.6 Ether
0xc067c3d87cd769d04cad29eaf3974475081e4dea67b55a892a50a9cec7f009515300869306 days 15 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe6725657db0a26c98f63f9f2fab7065d566bee9b1.5 Ether
0x96c3b6c2a4ff6aed6cb70710f58f5ea4919af98adf174789873dc60c1d186a075300800306 days 15 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x3f0d2aa2a23c76f418c5ed7786f6d2c8f6f693bc1.4 Ether
0x50171b99b6b23f0dd2d886c594aac474dd05686a2d750f1302f957a3158d43245300639306 days 16 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990xe6725657db0a26c98f63f9f2fab7065d566bee9b1.3 Ether
0x229c2fdf11bad10fcd0f37c4d0a8a17043fd35324e37bd0ff582c428ff5dbe8f5297912307 days 3 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x5c035bb4cb7dacbfee076a5e61aa39a10da2e9561.2 Ether
0xb72b8294dde8cf7bf7088c3108cdae0c25d117a5a8c0365ec24fc9363e1418465297715307 days 4 hrs ago0x59a6dc30e56a7b952edefce012aeef25abeb56990x46f9a1dc80df2e5d1cc0efd24f4ec341523753d31.1 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Similar Match)
Note: Displaying Similar Match Verified Source Code At Contract 0x6ecd58c1fb4af86d347f7bcf6ff713a0a8f99c4c(Excluding Constructor Arguments if any)
Contract Name: ETStarPresale
Compiler Text: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.21;

// SafeMath is a part of Zeppelin Solidity library
// licensed under MIT License
// https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/LICENSE

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(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) {
        assert(b <= a);
        return a - b;
    }

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

// https://github.com/OpenZeppelin/zeppelin-solidity

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

/**
 * @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 Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) balances;

    uint256 totalSupply_;

    /**
    * @dev Protection from short address attack
    */
    modifier onlyPayloadSize(uint size) {
        assert(msg.data.length == size + 4);
        _;
    }

    /**
    * @dev total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) 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);
        emit Transfer(msg.sender, _to, _value);

        _postTransferHook(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];
    }

    /**
    * @dev Hook for custom actions to be executed after transfer has completed
    * @param _from Transferred from
    * @param _to Transferred to
    * @param _value Value transferred
    */
    function _postTransferHook(address _from, address _to, uint256 _value) internal;
}

/**
 * @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);
        emit Transfer(_from, _to, _value);

        _postTransferHook(_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;
        emit 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) {
        return allowed[_owner][_spender];
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a 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
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the allowance by.
     */
    function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowed[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

contract Owned {
    address owner;

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

    /// @dev Contract constructor
    function Owned() public {
        owner = msg.sender;
    }
}


contract AcceptsTokens {
    ETToken public tokenContract;

    function AcceptsTokens(address _tokenContract) public {
        tokenContract = ETToken(_tokenContract);
    }

    modifier onlyTokenContract {
        require(msg.sender == address(tokenContract));
        _;
    }

    function acceptTokens(address _from, uint256 _value, uint256 param1, uint256 param2, uint256 param3) external;
}

contract ETToken is Owned, StandardToken {
    using SafeMath for uint;

    string public name = "ETH.TOWN Token";
    string public symbol = "ETIT";
    uint8 public decimals = 18;

    address public beneficiary;
    address public oracle;
    address public heroContract;
    modifier onlyOracle {
        require(msg.sender == oracle);
        _;
    }

    mapping (uint32 => address) public floorContracts;
    mapping (address => bool) public canAcceptTokens;

    mapping (address => bool) public isMinter;

    modifier onlyMinters {
        require(msg.sender == owner || isMinter[msg.sender]);
        _;
    }

    event Dividend(uint256 value);
    event Withdrawal(address indexed to, uint256 value);
    event Burn(address indexed from, uint256 value);

    function ETToken() public {
        oracle = owner;
        beneficiary = owner;

        totalSupply_ = 0;
    }

    function setOracle(address _oracle) external onlyOwner {
        oracle = _oracle;
    }
    function setBeneficiary(address _beneficiary) external onlyOwner {
        beneficiary = _beneficiary;
    }
    function setHeroContract(address _heroContract) external onlyOwner {
        heroContract = _heroContract;
    }

    function _mintTokens(address _user, uint256 _amount) private {
        require(_user != 0x0);

        balances[_user] = balances[_user].add(_amount);
        totalSupply_ = totalSupply_.add(_amount);

        emit Transfer(address(this), _user, _amount);
    }

    function authorizeFloor(uint32 _index, address _floorContract) external onlyOwner {
        floorContracts[_index] = _floorContract;
    }

    function _acceptDividends(uint256 _value) internal {
        uint256 beneficiaryShare = _value / 5;
        uint256 poolShare = _value.sub(beneficiaryShare);

        beneficiary.transfer(beneficiaryShare);

        emit Dividend(poolShare);
    }

    function acceptDividends(uint256 _value, uint32 _floorIndex) external {
        require(floorContracts[_floorIndex] == msg.sender);

        _acceptDividends(_value);
    }

    function rewardTokensFloor(address _user, uint256 _tokens, uint32 _floorIndex) external {
        require(floorContracts[_floorIndex] == msg.sender);

        _mintTokens(_user, _tokens);
    }

    function rewardTokens(address _user, uint256 _tokens) external onlyMinters {
        _mintTokens(_user, _tokens);
    }

    function() payable public {
        // Intentionally left empty, for use by floors
    }

    function payoutDividends(address _user, uint256 _value) external onlyOracle {
        _user.transfer(_value);

        emit Withdrawal(_user, _value);
    }

    function accountAuth(uint256 /*_challenge*/) external {
        // Does nothing by design
    }

    function burn(uint256 _amount) external {
        require(balances[msg.sender] >= _amount);

        balances[msg.sender] = balances[msg.sender].sub(_amount);
        totalSupply_ = totalSupply_.sub(_amount);

        emit Burn(msg.sender, _amount);
    }

    function setCanAcceptTokens(address _address, bool _value) external onlyOwner {
        canAcceptTokens[_address] = _value;
    }

    function setIsMinter(address _address, bool _value) external onlyOwner {
        isMinter[_address] = _value;
    }

    function _invokeTokenRecipient(address _from, address _to, uint256 _value, uint256 _param1, uint256 _param2, uint256 _param3) internal {
        if (!canAcceptTokens[_to]) {
            return;
        }

        AcceptsTokens recipient = AcceptsTokens(_to);

        recipient.acceptTokens(_from, _value, _param1, _param2, _param3);
    }

    /**
    * @dev transfer token for a specified address and forward the parameters to token recipient if any
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    * @param _param1 Parameter 1 for the token recipient
    * @param _param2 Parameter 2 for the token recipient
    * @param _param3 Parameter 3 for the token recipient
    */
    function transferWithParams(address _to, uint256 _value, uint256 _param1, uint256 _param2, uint256 _param3) onlyPayloadSize(5 * 32) external 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);
        emit Transfer(msg.sender, _to, _value);

        _invokeTokenRecipient(msg.sender, _to, _value, _param1, _param2, _param3);

        return true;
    }

    /**
    * @dev Hook for custom actions to be executed after transfer has completed
    * @param _from Transferred from
    * @param _to Transferred to
    * @param _value Value transferred
    */
    function _postTransferHook(address _from, address _to, uint256 _value) internal {
        _invokeTokenRecipient(_from, _to, _value, 0, 0, 0);
    }


}

contract PresaleContract is Owned {
    ETToken public tokenContract;

    /// @dev Contract constructor
    function PresaleContract(address _tokenContract) public {
        tokenContract = ETToken(_tokenContract);
    }
}



contract ETStarPresale is PresaleContract {
    using SafeMath for uint;

    uint256 public auctionEnd;
    uint256 public itemType;

    address public highestBidder;
    uint256 public highestBid;
    bool public ended;

    event Bid(address from, uint256 amount);
    event AuctionEnded(address winner, uint256 amount);

    function ETStarPresale(address _presaleToken, uint256 _auctionEnd, uint256 _itemType)
        PresaleContract(_presaleToken)
        public
    {
        auctionEnd = _auctionEnd;
        itemType = _itemType;
    }

    function _isContract(address _user) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(_user) }
        return size > 0;
    }

    function auctionExpired() public view returns (bool) {
        return now > auctionEnd;
    }

    function() public payable {
        require(!_isContract(msg.sender));
        require(!auctionExpired());

        require(msg.value > highestBid);

        if (highestBid != 0) {
            highestBidder.transfer(highestBid);
        }

        highestBidder = msg.sender;
        highestBid = msg.value;

        emit Bid(msg.sender, msg.value);
    }

    function endAuction() public onlyOwner {
        require(auctionExpired());
        require(!ended);

        ended = true;
        emit AuctionEnded(highestBidder, highestBid);
        tokenContract.rewardTokens(highestBidder, highestBid * 200);

        owner.transfer(address(this).balance);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"ended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"auctionEnd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"auctionExpired","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"highestBidder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"highestBid","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"itemType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_presaleToken","type":"address"},{"name":"_auctionEnd","type":"uint256"},{"name":"_itemType","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Bid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"winner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuctionEnded","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b6040516060806104a483398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a03199283161790925560018054929097169116179094555050600255600355610430806100746000396000f30060606040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166312fa6feb811461017a5780632a24f46c146101a157806355a373d6146101c65780636a3f5146146101f557806391f9015714610208578063d57bde791461021b578063f5470d7b1461022e578063fe67a54b14610241575b61009633610256565b156100a057600080fd5b6100a861025e565b156100b257600080fd5b60055434116100c057600080fd5b6005541561010157600454600554600160a060020a039091169080156108fc0290604051600060405180830381858888f19350505050151561010157600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a038116919091179091553460058190557fe684a55f31b79eca403df938249029212a5925ec6be8012e099b45bc1019e5d29190604051600160a060020a03909216825260208201526040908101905180910390a1005b341561018557600080fd5b61018d610266565b604051901515815260200160405180910390f35b34156101ac57600080fd5b6101b461026f565b60405190815260200160405180910390f35b34156101d157600080fd5b6101d9610275565b604051600160a060020a03909116815260200160405180910390f35b341561020057600080fd5b61018d61025e565b341561021357600080fd5b6101d9610284565b341561022657600080fd5b6101b4610293565b341561023957600080fd5b6101b4610299565b341561024c57600080fd5b61025461029f565b005b6000903b1190565b600254421190565b60065460ff1681565b60025481565b600154600160a060020a031681565b600454600160a060020a031681565b60055481565b60035481565b60005433600160a060020a039081169116146102ba57600080fd5b6102c261025e565b15156102cd57600080fd5b60065460ff16156102dd57600080fd5b6006805460ff191660011790556004546005547fdaec4582d5d9595688c8c98545fdd1c696d41c6aeaeb636737e84ed2f5c00eda91600160a060020a031690604051600160a060020a03909216825260208201526040908101905180910390a1600154600454600554600160a060020a03928316926381a4af1592169060c8026040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156103b957600080fd5b5af115156103c657600080fd5b5050600054600160a060020a03908116915030163180156108fc0290604051600060405180830381858888f19350505050151561040257600080fd5b5600a165627a7a7230582070e8bff58b5c0b612102fbe438acbab7bb6a4b55078fe0244cb257cd2b7c25ec00290000000000000000000000008fe19c447821b4cdcdd5012bca1b5469ca96d80d000000000000000000000000000000000000000000000000000000005abce3500000000000000000000000000000000000000000000000000000000000000001

   Swarm Source:
bzzr://70e8bff58b5c0b612102fbe438acbab7bb6a4b55078fe0244cb257cd2b7c25ec

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.