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

TxHash Age From To Value [TxFee]
0x3a156cdda5ae86a069eb4f77b4342ec8c5dc0d8fe76829bdafa3ed91c9aec0cc243 days 11 hrs ago0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0 Ether0.000207852
0x22013ddd979a4983716423e526db43219f0559a3be961f2e45edf2dcb428e0af243 days 11 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f15.3 Ether0.00022052
0x1c691ebd0b3a64ce481a057522fd58a9b3a209dd6d4aefbb61ef241f832a14bb243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f15.2 Ether0.0066156
0x98432f8b66549f51d95b34e36bd6fb48f8aa13a4cc31fa3afcd6186d25a2d069243 days 11 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f15.1 Ether0.00042198
0xc2c50509df62a55f9120dd6977e18fb503b249607bc90d669512de31420a0594243 days 11 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f11.69 Ether0.000980056
0x7ed131fb0f214ea563c07000abe0adfea1b5ccc3e187ab283b097ec9678736a6243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f15 Ether0.021056802
0x7ce05835f742beac58a3e1ef2ab7e6f002674ed3ea205660d8fe017ee3ffe610243 days 11 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f11.1 Ether0.00042198
0x601a2c9866ba1b9464bac693a5aa78fd65a88a3f90405a31aa709f0b8db465d8243 days 11 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f10.69 Ether0.000245014
0x5959a137f6251cc3a7fc70fdbba98a5f50875779c39619e074091537e5133c40243 days 11 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f10.2 Ether0.00011137
0x54ad86e9c6dff2e47e95797af44e54b41ff172aa6cf63759f9c2826c45d3ec18243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f11 Ether0.00337584
0x0ad0f60402c184f9d9030261d23cc287c97da79c8c2ba0b98660736df42b1eac243 days 11 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f10.1 Ether0.000069975834
0x7d8a69b8dd7b29e2d6c5506bdfda9d097856a1d8b672eaf871435b11b2f2ba08243 days 11 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f10.1 Ether0.000168792
0xaadab61e13fde082485754804eef2b8149a261705dfdb42154c6713f0858bba7243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f10 Ether0.0022274
0x83a6702e7202e9578b02c2e495970e0e27dd9e05d8646107adc2989480463a10243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f10 Ether0.0021099
0xc25e343fb0154e62ced1031471a988abc5fe8f276b35440f2aea293e3297d02c243 days 11 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f7.5 Ether0.000084396
0xd77edcc27edd373de95ab74df950807330e4e62c1192b73e18c1834c377bce7f243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f7 Ether0.00168792
0xab7203ccb4d8294eb8ef9694a93b8a70bd28bc3a82cc5f49c89aa063a3dfa3ac243 days 11 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f6.2 Ether0.00168792
0xeedb1870c1c86551d020e3faf1370e5decf0777b604e36385b5385584dc30afc243 days 11 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f6.1 Ether0.000132568926
0xfbd17c68ed007100fd835e8f45ced867dacc9e813f6ea2689e60d0d8d0f42eff243 days 12 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f6 Ether0.00168792
0x6024a25954fb9ea7a6b4fc5ce873aaf05c75e0d10bd4a1487740f073b32de09d243 days 12 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f5.4 Ether0.00168792
0x41f76b400560dfc6b22936e5a2ab22705807c1cebdae2eab9f45bf583578847e243 days 12 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f5.3 Ether0.000084396
0xfd9589fb1b944c37d5ac00bc0a5e58d31ca6dc460f77e02bf1627e3348a8d9e5243 days 13 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f5.2 Ether0.00042198
0xc3054f277a339e436cfebd3fea8d0dad68ec6c33e4ef0c178271fbe152c79cfc243 days 14 hrs ago0xf3a2727a3447653a58d57e4be63d5d5cdc55421b  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f5.1 Ether0.000084396
0xec7fb483ead2638bb9b9a2f1242b360ca53b01a508c0db4a74bb186869c6caba243 days 17 hrs ago0x183febd8828a9ac6c70c0e27fbf441b93004fc05  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f5 Ether0.000084396
0x6f563d12c96445fa4c9a3208898a7afd8a1723b49054b065bfc6133bb2cef8b1243 days 19 hrs agoF2Pool_1  IN   0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f4.1 Ether0.000132568926
[ 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
0x3a156cdda5ae86a069eb4f77b4342ec8c5dc0d8fe76829bdafa3ed91c9aec0cc5289561243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f15.1 Ether
0x98432f8b66549f51d95b34e36bd6fb48f8aa13a4cc31fa3afcd6186d25a2d0695289532243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b15 Ether
0x7ed131fb0f214ea563c07000abe0adfea1b5ccc3e187ab283b097ec9678736a65289526243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x61c808d82a3ac53231750dadc13c777b59310bd911.1 Ether
0x7ce05835f742beac58a3e1ef2ab7e6f002674ed3ea205660d8fe017ee3ffe6105289524243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b11 Ether
0x54ad86e9c6dff2e47e95797af44e54b41ff172aa6cf63759f9c2826c45d3ec185289521243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x183febd8828a9ac6c70c0e27fbf441b93004fc0510.1 Ether
0x7d8a69b8dd7b29e2d6c5506bdfda9d097856a1d8b672eaf871435b11b2f2ba085289516243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b10 Ether
0x83a6702e7202e9578b02c2e495970e0e27dd9e05d8646107adc2989480463a105289497243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x183febd8828a9ac6c70c0e27fbf441b93004fc057.5 Ether
0xc25e343fb0154e62ced1031471a988abc5fe8f276b35440f2aea293e3297d02c5289490243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b7 Ether
0xd77edcc27edd373de95ab74df950807330e4e62c1192b73e18c1834c377bce7f5289450243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b6.2 Ether
0xab7203ccb4d8294eb8ef9694a93b8a70bd28bc3a82cc5f49c89aa063a3dfa3ac5289447243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x61c808d82a3ac53231750dadc13c777b59310bd96.1 Ether
0xeedb1870c1c86551d020e3faf1370e5decf0777b604e36385b5385584dc30afc5289440243 days 11 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b6 Ether
0xfbd17c68ed007100fd835e8f45ced867dacc9e813f6ea2689e60d0d8d0f42eff5289380243 days 12 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b5.4 Ether
0x6024a25954fb9ea7a6b4fc5ce873aaf05c75e0d10bd4a1487740f073b32de09d5289353243 days 12 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x183febd8828a9ac6c70c0e27fbf441b93004fc055.3 Ether
0x41f76b400560dfc6b22936e5a2ab22705807c1cebdae2eab9f45bf583578847e5289330243 days 12 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b5.2 Ether
0xfd9589fb1b944c37d5ac00bc0a5e58d31ca6dc460f77e02bf1627e3348a8d9e55289136243 days 13 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b5.1 Ether
0xc3054f277a339e436cfebd3fea8d0dad68ec6c33e4ef0c178271fbe152c79cfc5288851243 days 14 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x183febd8828a9ac6c70c0e27fbf441b93004fc055 Ether
0xec7fb483ead2638bb9b9a2f1242b360ca53b01a508c0db4a74bb186869c6caba5288012243 days 17 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x61c808d82a3ac53231750dadc13c777b59310bd94.1 Ether
0x6f563d12c96445fa4c9a3208898a7afd8a1723b49054b065bfc6133bb2cef8b15287693243 days 19 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x183febd8828a9ac6c70c0e27fbf441b93004fc053.9 Ether
0xda239caaa88a80a0bdcd7813e04932be1afc8982334707f21669a02af4061b335287427243 days 20 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xe8d337c900542aab7811869c738ef481caab35023.6 Ether
0x24ec9d0cb5b869d3ad6d2f19080cce3b06395b41b6e88a3052e841e391f1fc315287385243 days 20 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x183febd8828a9ac6c70c0e27fbf441b93004fc053.5 Ether
0x0c147982bb274e7085391690d3c7ea0035c80962e3655ef818fc7adb3448d66d5284301244 days 8 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x61c808d82a3ac53231750dadc13c777b59310bd93 Ether
0xc8881f6bf86cae358739e932f521ecddb32b2b1a63f3c888fd22968b2dc8959e5278546245 days 7 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x79f26d9169c57b9950c04981af27733141ae9f882.5 Ether
0xd0364ab0e0d5f7d4f1317f2346caa04415a9cfb565bf4a27634e12a78a4a7f6e5277104245 days 13 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x61c808d82a3ac53231750dadc13c777b59310bd92.4 Ether
0xba18845895a340d003f40a634a766c0e1407032da6275c29182f5c3e2d7d8abf5270623246 days 16 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0xf3a2727a3447653a58d57e4be63d5d5cdc55421b2.1 Ether
0x121fef43c8ed3ef78800792b300896bd38b1b41e5aca1018d5adf982d0c820c65269501246 days 20 hrs ago0x8bea722e8ca5f0874c2c6762209f63fe60bf8a7f0x0d41f957181e584db82d2e316837b2de1738c4772 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.