Contract 0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d

 

TxHash Block Age From To Value [TxFee]
0x206ccd561deb549bd35d4339342d0cdfa3a92c01fac12ca0e8693adfee71722e72267012 hrs 23 mins ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.0006043619
0xb88b9c7f921e0fd357dadf95f723196207e054f91826785e7af4f5faeb01efa272265583 hrs 16 mins ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.0006018459
0xbc50ede4b250a2ebaae9fb389569b4ac2b1bb5800a0ab98ec7da561fe4d9fa6872256778 hrs 12 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000123555
0xd74219aa5ad689a572dd41df642fc5ab1082d3d12b364887329d1f92766f5a0572256758 hrs 12 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000124195
0x07372c7b69190b4f0bfaa287fd8081670c488fc9f469234cd9c566c8117d086072256758 hrs 12 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000123235
0xc7b62511cd845956ad38216e33109b43d4e3f707c2c18267ce469ff6ae22e0e972256728 hrs 15 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000123555
0xbbcd26e74bb4300e7ba9325fdc888ec28acf2c99e7e691f1d0a308d6392a5e2d72256728 hrs 15 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000123235
0xa873dc5caf74a6174ed476cf3eec96fe240b6e144021accfe1902629e8d2d02572253949 hrs 49 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000074517
0x4e29aa7f2d903994625f3ce14a60e363b44801fe56bca4b22ddb3f2de37db11172253919 hrs 50 mins ago0xba41207ac94ca61ad300c9ad5bd8a37551102d08  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000074517
0xf2d6c4cdd5ab0dcc875d5e9e75350eb92800121fb0877a6ddf445d098969088f722458114 hrs 35 mins ago0xb5288ce67780cb667b67dbf84af9e66bebb8ddd4  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000182974
0x7580a67889b0f12726275dd1e70a8f78acd146e317c03db40c9795d96348b22472212271 day 9 hrs ago0x26b350f462ae30ec1c48c36ba944ab66f06dafee  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000049018
0x9366a08e79a9126aefe44e7ad24b2f61a541930e35a6c78129966deb2d736e5972212231 day 9 hrs ago0x26b350f462ae30ec1c48c36ba944ab66f06dafee  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000049018
0x809455513e6654ce8c463504f0295b91b26e137d9500599d3aa576f86da9451472206881 day 12 hrs ago0xb5288ce67780cb667b67dbf84af9e66bebb8ddd4  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.0001099956
0xbfe4c6b54c8b6ec0367d55a2bff0c88cd5410e53416d21183652ede27017e7c772182582 days 3 hrs ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000555183
0x66a422fc3c32f41489f1981996ca1bb6c76fec8cc09af8c0406e47182061210172179512 days 4 hrs ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000533118
0xc3980ded1209fc85ed708fd45c94ee657b1fe1bbfd5382a64df67f0cd09aa6ce72179322 days 4 hrs ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000710404
0xf6ece96542e5679b513b9c29beb0d7887bb2deb0f711506f4a3458d2d872af3972178752 days 5 hrs ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.00071268
0x24c7a0225f65910c2b9236afc90cc7b9d27971a762b63f1160125751eafb70b772177912 days 5 hrs ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000735632
0x994da4226eae5eaaa546cfaa5cd7d6288452f5c386a95f0d9611b3a95777876072137163 days 4 hrs ago0xb5288ce67780cb667b67dbf84af9e66bebb8ddd4  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000182974
0x19eb33df395cbfa1113cbd25feaa0d428a717aecbdea204932a129147aed034e72136943 days 5 hrs ago0x9a6f70527abc589362bd5cd50e2d492579acabc0  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.002285436
0x9af76041ab17c76437094d69fe66b6a4f9a1864203f4c46fb5cfcf3303ddb22372136923 days 5 hrs ago0x9a6f70527abc589362bd5cd50e2d492579acabc0  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.001482872
0xc852ea2181c56ce5eca6c2a467f126a01bbf7de002e4e9351e68d2db96c4893572136883 days 5 hrs ago0x9a6f70527abc589362bd5cd50e2d492579acabc0  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.001476936
0xd4a4df944e8b500ccff6f57438b8780bf19c780c9d77682ffeb830822f62061372135213 days 6 hrs ago0x9d3f10f5d553dda3f36e09ab0c3c757ba99e8894  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000771718
0x4af46620fe532c3fbac274fb1ccb1fa2edf847e6091ed5976205e1fca77d526272130273 days 9 hrs ago0x885e24895fe5567358fa17f0da4147a01557ede5  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.0001827
0xec781ab6405a608970a7007316be83a6ab698be1b063905e7df0b849be16a68a72129873 days 9 hrs ago0xb5288ce67780cb667b67dbf84af9e66bebb8ddd4  IN   0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0 Ether0.000182974
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xf2d6c4cdd5ab0dcc875d5e9e75350eb92800121fb0877a6ddf445d098969088f722458114 hrs 35 mins ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0xf3557efdf68d6b3960e5fdd7ef0e46e7baecf89d0.032343742150300155 Ether
0xdca407ad57d83850ee08d3cf6b9a3c36c42d8f1839949804b2b1b1a1940534a7722397918 hrs 2 mins ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f0.000195415 Ether
0xdca407ad57d83850ee08d3cf6b9a3c36c42d8f1839949804b2b1b1a1940534a7722397918 hrs 2 mins ago0x024be6824fe397521179503c3bd2d9feb4ab05b40x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0.000977075 Ether
0xb4a083ce0ff1d98c3be3d4269d0b8e6bcc8838603643e22fbbcc6bcb440de04172212161 day 9 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f0.00625 Ether
0xb4a083ce0ff1d98c3be3d4269d0b8e6bcc8838603643e22fbbcc6bcb440de04172212161 day 9 hrs ago0xfd6d4265443647c70f8d0d80356f3b22d596da290x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0.03125 Ether
0x809455513e6654ce8c463504f0295b91b26e137d9500599d3aa576f86da9451472206881 day 12 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x545c237a190189a3476142c3b79a6e48ccdf44282.69266336304598703 Ether
0x994da4226eae5eaaa546cfaa5cd7d6288452f5c386a95f0d9611b3a95777876072137163 days 4 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x646e6007c32f0a13b7f81623ecdefdf2f6f9087d0.003409458367515361 Ether
0xec781ab6405a608970a7007316be83a6ab698be1b063905e7df0b849be16a68a72129873 days 9 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x185ae85fd1875998ab7d6a81e1fa3a9049674afa0.014106792423629758 Ether
0x2f0c9867938432bd09dfe1ec95dfe06416f55b939bcea6e06080c25b94d5310c72128213 days 10 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x9a7379c8af6765aa267d338a20d197dd1544bf9b0.160875372198059291 Ether
0xf6a55595dda7acaea1cfa0596878bbb4a31345a53f2a631058e9d1ac71fa008b72123863 days 12 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x1c82e3a75c287c3c8f2d52483a72ff92983c72940.01690333382265669 Ether
0xfb052fa8ed3379e21580ccf5514501a32ab285c3983ed347496854d432697d5372123243 days 13 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0xaf8487980af6c604f42d2cb0b51966d936e5bac60.000628310883414864 Ether
0x3604eadda9609081f16b779fdab25acec1965326f583abc8a316d9cfa296323672122063 days 13 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0xcf0e9b4746cfb97bae329fe5f696969f6564566a0.005031716249047414 Ether
0x9ffdf53904541d88d97a0334aba0518987d85ccf23abe1a36291306e3cbb53a671827709 days 22 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f0.00001 Ether
0x9ffdf53904541d88d97a0334aba0518987d85ccf23abe1a36291306e3cbb53a671827709 days 22 hrs ago0xfd6d4265443647c70f8d0d80356f3b22d596da290x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0.00005 Ether
0x47545b111d3653f91848f2ff3d2e81d081a0c8d1f4e8e253dd790fb825b983d9717729711 days 1 hr ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f0.00001 Ether
0x47545b111d3653f91848f2ff3d2e81d081a0c8d1f4e8e253dd790fb825b983d9717729711 days 1 hr ago0xfd6d4265443647c70f8d0d80356f3b22d596da290x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0.00005 Ether
0x8796be79607500be4fcacf16dc10768ad662d64d1a49e206b035eadfcc47d10b717613011 days 7 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f0.0002 Ether
0x8796be79607500be4fcacf16dc10768ad662d64d1a49e206b035eadfcc47d10b717613011 days 7 hrs ago0xfd6d4265443647c70f8d0d80356f3b22d596da290x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0.001 Ether
0x7f0c60cf8cdfbd20e9c380f45ad9d626db728babccba285389fb80777ecffa53717611611 days 7 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x2efde4863c1920d34dc12dbc06b7f6fb8c77d86f0.005 Ether
0x7f0c60cf8cdfbd20e9c380f45ad9d626db728babccba285389fb80777ecffa53717611611 days 7 hrs ago0xee9c50f882af9e947cc3e727720b2e61d46689b00x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0.025 Ether
0x936aa78ba970af28124a4fd69640d245eca534f798796a3145d01a683d06e726717141012 days 6 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x21b9aa9581fc77b76ac6f6b696c302506ddd073a0.177100676803932831 Ether
0xa87016a7f1920daf2ac51cd83ed88f1a70292bb2f2b9bc99a03a01ec309d4051716933612 days 16 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x03f9b2b2c50d4be575c40ed54a27b5e7087e8bb00.000273735532557894 Ether
0xc3b76960b9ca885b65f48f989e052eb6a5974c0e0d72f2484a3c4cb1b5633039714778817 days 1 hr ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x228c1334fc57eb6e02ecc448e749a041124321c10.035227185209937561 Ether
0x509bf8a63259a0e98c8f5577451ce5d54c02afffa85810342c0f28eea18fe420714190518 days 6 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x91242abd745e7390c3b12af09f40f559089cdbb10.191445824182134838 Ether
0x8636d54001de6fb6759ec9f4cf5c767474c140f7a172efcb72f7ab6e5523c9ac714109218 days 10 hrs ago0x8fe19c447821b4cdcdd5012bca1b5469ca96d80d0x123085670e817602041e58febb243abe01a9a8250.023457198013836968 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ETToken
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
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 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":"heroContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_index","type":"uint32"},{"name":"_floorContract","type":"address"}],"name":"authorizeFloor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_address","type":"address"},{"name":"_value","type":"bool"}],"name":"setCanAcceptTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"canAcceptTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"_floorIndex","type":"uint32"}],"name":"acceptDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"_floorIndex","type":"uint32"}],"name":"rewardTokensFloor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_param1","type":"uint256"},{"name":"_param2","type":"uint256"},{"name":"_param3","type":"uint256"}],"name":"transferWithParams","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"floorContracts","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_value","type":"bool"}],"name":"setIsMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_value","type":"uint256"}],"name":"payoutDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_oracle","type":"address"}],"name":"setOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"oracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"rewardTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint256"}],"name":"accountAuth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"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":"","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_heroContract","type":"address"}],"name":"setHeroContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Dividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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
606060405260408051908101604052600e81527f4554482e544f574e20546f6b656e000000000000000000000000000000000000602082015260049080516200004d92916020019062000106565b5060408051908101604052600481527f4554495400000000000000000000000000000000000000000000000000000000602082015260059080516200009792916020019062000106565b506006805460ff191660121790553415620000b157600080fd5b60008054600160a060020a03338116600160a060020a031992831617808455600780549093169116908117909155600680546101009290920261010060a860020a0319909216919091179055600255620001ab565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014957805160ff191683800117855562000179565b8280016001018555821562000179579182015b82811115620001795782518255916020019190600101906200015c565b50620001879291506200018b565b5090565b620001a891905b8082111562000187576000815560010162000192565b90565b61137a80620001bb6000396000f30060606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610181578063095ea7b31461020b5780630daf999a1461024157806318160ddd14610270578063182575f1146102955780631c31f710146102bd57806323b872dd146102dc578063294205b4146103045780632e15563e14610328578063313ce567146103475780633719427e1461037057806338af3eed1461038f5780633e2e806d146103a2578063411cc791146103cd57806342966c68146103f85780634d7987171461040e578063661884631461042a57806366eb399f1461044c57806370a082311461047057806373eec3c51461048f5780637adbf973146104b15780637dc0d1d0146104d057806381a4af15146104e3578063824032971461050557806395d89b411461051b578063a9059cbb1461052e578063aa271e1a14610550578063d2ac0f591461056f578063d73dd6231461058e578063dd62ed3e146105b0575b005b341561018c57600080fd5b6101946105d5565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d05780820151838201526020016101b8565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021657600080fd5b61022d600160a060020a0360043516602435610673565b604051901515815260200160405180910390f35b341561024c57600080fd5b6102546106df565b604051600160a060020a03909116815260200160405180910390f35b341561027b57600080fd5b6102836106ee565b60405190815260200160405180910390f35b34156102a057600080fd5b61017f63ffffffff60043516600160a060020a03602435166106f4565b34156102c857600080fd5b61017f600160a060020a0360043516610752565b34156102e757600080fd5b61022d600160a060020a03600435811690602435166044356107a2565b341561030f57600080fd5b61017f600160a060020a0360043516602435151561091d565b341561033357600080fd5b61022d600160a060020a0360043516610963565b341561035257600080fd5b61035a610978565b60405160ff909116815260200160405180910390f35b341561037b57600080fd5b61017f60043563ffffffff60243516610981565b341561039a57600080fd5b6102546109bc565b34156103ad57600080fd5b61017f600160a060020a036004351660243563ffffffff604435166109d0565b34156103d857600080fd5b61022d600160a060020a0360043516602435604435606435608435610a0d565b341561040357600080fd5b61017f600435610b14565b341561041957600080fd5b61025463ffffffff60043516610bd2565b341561043557600080fd5b61022d600160a060020a0360043516602435610bed565b341561045757600080fd5b61017f600160a060020a03600435166024351515610ce7565b341561047b57600080fd5b610283600160a060020a0360043516610d2d565b341561049a57600080fd5b61017f600160a060020a0360043516602435610d48565b34156104bc57600080fd5b61017f600160a060020a0360043516610dd5565b34156104db57600080fd5b610254610e1f565b34156104ee57600080fd5b61017f600160a060020a0360043516602435610e2e565b341561051057600080fd5b61017f600435610e78565b341561052657600080fd5b610194610e7b565b341561053957600080fd5b61022d600160a060020a0360043516602435610ee6565b341561055b57600080fd5b61022d600160a060020a0360043516610fdd565b341561057a57600080fd5b61017f600160a060020a0360043516610ff2565b341561059957600080fd5b61022d600160a060020a036004351660243561103c565b34156105bb57600080fd5b610283600160a060020a03600435811690602435166110e0565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b505050505081565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600854600160a060020a031681565b60025490565b60005433600160a060020a0390811691161461070f57600080fd5b63ffffffff919091166000908152600960205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60005433600160a060020a0390811691161461076d57600080fd5b60068054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000600160a060020a03831615156107b957600080fd5b600160a060020a0384166000908152600160205260409020548211156107de57600080fd5b600160a060020a038085166000908152600360209081526040808320339094168352929052205482111561081157600080fd5b600160a060020a03841660009081526001602052604090205461083a908363ffffffff61110b16565b600160a060020a03808616600090815260016020526040808220939093559085168152205461086f908363ffffffff61111d16565b600160a060020a038085166000908152600160209081526040808320949094558783168252600381528382203390931682529190915220546108b7908363ffffffff61110b16565b600160a060020a038086166000818152600360209081526040808320338616845290915290819020939093559085169160008051602061132f8339815191529085905190815260200160405180910390a3610913848484611133565b5060019392505050565b60005433600160a060020a0390811691161461093857600080fd5b600160a060020a03919091166000908152600a60205260409020805460ff1916911515919091179055565b600a6020526000908152604090205460ff1681565b60065460ff1681565b63ffffffff811660009081526009602052604090205433600160a060020a039081169116146109af57600080fd5b6109b882611143565b5050565b6006546101009004600160a060020a031681565b63ffffffff811660009081526009602052604090205433600160a060020a039081169116146109fe57600080fd5b610a0883836111c6565b505050565b600060a03660a414610a1b57fe5b600160a060020a0387161515610a3057600080fd5b600160a060020a033316600090815260016020526040902054861115610a5557600080fd5b600160a060020a033316600090815260016020526040902054610a7e908763ffffffff61110b16565b600160a060020a033381166000908152600160205260408082209390935590891681522054610ab3908763ffffffff61111d16565b600160a060020a03808916600081815260016020526040908190209390935591339091169060008051602061132f8339815191529089905190815260200160405180910390a3610b07338888888888611266565b5060019695505050505050565b600160a060020a03331660009081526001602052604090205481901015610b3a57600080fd5b600160a060020a033316600090815260016020526040902054610b63908263ffffffff61110b16565b600160a060020a033316600090815260016020526040902055600254610b8f908263ffffffff61110b16565b600255600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a250565b600960205260009081526040902054600160a060020a031681565b600160a060020a03338116600090815260036020908152604080832093861683529290529081205480831115610c4a57600160a060020a033381166000908152600360209081526040808320938816835292905290812055610c81565b610c5a818463ffffffff61110b16565b600160a060020a033381166000908152600360209081526040808320938916835292905220555b600160a060020a0333811660008181526003602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b60005433600160a060020a03908116911614610d0257600080fd5b600160a060020a03919091166000908152600b60205260409020805460ff1916911515919091179055565b600160a060020a031660009081526001602052604090205490565b60075433600160a060020a03908116911614610d6357600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515610d9457600080fd5b81600160a060020a03167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658260405190815260200160405180910390a25050565b60005433600160a060020a03908116911614610df057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600754600160a060020a031681565b60005433600160a060020a0390811691161480610e635750600160a060020a0333166000908152600b602052604090205460ff165b1515610e6e57600080fd5b6109b882826111c6565b50565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561066b5780601f106106405761010080835404028352916020019161066b565b6000604036604414610ef457fe5b600160a060020a0384161515610f0957600080fd5b600160a060020a033316600090815260016020526040902054831115610f2e57600080fd5b600160a060020a033316600090815260016020526040902054610f57908463ffffffff61110b16565b600160a060020a033381166000908152600160205260408082209390935590861681522054610f8c908463ffffffff61111d16565b600160a060020a03808616600081815260016020526040908190209390935591339091169060008051602061132f8339815191529086905190815260200160405180910390a3610913338585611133565b600b6020526000908152604090205460ff1681565b60005433600160a060020a0390811691161461100d57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a033381166000908152600360209081526040808320938616835292905290812054611074908363ffffffff61111d16565b600160a060020a0333811660008181526003602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60008282111561111757fe5b50900390565b60008282018381101561112c57fe5b9392505050565b610a088383836000806000611266565b600581046000611153838361110b565b6006549091506101009004600160a060020a03166108fc83150283604051600060405180830381858888f19350505050151561118e57600080fd5b7f69c382338c74e0d3a990efe1a52ae89dcf6a9ab705628ec4424f49cddd4e2f898160405190815260200160405180910390a1505050565b600160a060020a03821615156111db57600080fd5b600160a060020a038216600090815260016020526040902054611204908263ffffffff61111d16565b600160a060020a038316600090815260016020526040902055600254611230908263ffffffff61111d16565b600255600160a060020a0380831690301660008051602061132f8339815191528360405190815260200160405180910390a35050565b600160a060020a0385166000908152600a602052604081205460ff16151561128d57611325565b5084600160a060020a038116639c908f6188878787876040517c010000000000000000000000000000000000000000000000000000000063ffffffff8816028152600160a060020a039095166004860152602485019390935260448401919091526064830152608482015260a401600060405180830381600087803b151561131457600080fd5b5af1151561132157600080fd5b5050505b505050505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582017eec06f396b0ca99a695c50ebca4876cca778c0bd1a22a29ae6199c2e734ecd0029


   Swarm Source:
bzzr://17eec06f396b0ca99a695c50ebca4876cca778c0bd1a22a29ae6199c2e734ecd
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.