Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 4 txns
Token Tracker: TFWC-04-MOROCCO (MAR)
 Latest 4 txns

TxHash Age From To Value [TxFee]
0x9e5e5ae4c67482c61dfd25ed5c50efcdfaf2523d4a49322943cae67b830c0e94121 days 19 hrs ago0x0022a370cdebaff99746b8a1311a8d9734bf3a28  IN   0xb85a54944b58342b07887942e6f530f616479efd0 Ether0.00040213
0xd6a39c4710365ce0a4fe935c7926c10ca6feda69b4413248e1b0f1f4d794b1a6122 days 20 hrs ago0x5dc905c625e43ced2a76c648f66ae9b98455f58d  IN   0xb85a54944b58342b07887942e6f530f616479efd1.14 Ether0.00067391
0x43d2a06aa78294e7a816515ca30ee65b6bea43d27cdd2ed08123f87f832799f8123 days 9 hrs ago0x0022a370cdebaff99746b8a1311a8d9734bf3a28  IN   0xb85a54944b58342b07887942e6f530f616479efd0 Ether0.00014634
0xd42daa3f87482ce25715054110f9a563e21c091908908b34e9a255555d11b919123 days 10 hrs ago0x0022a370cdebaff99746b8a1311a8d9734bf3a28  IN    Contract Creation0 Ether0.006569192
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 2 Internal Transactions

ParentTxHash Block Age From To Value
0x9e5e5ae4c67482c61dfd25ed5c50efcdfaf2523d4a49322943cae67b830c0e945794254121 days 19 hrs ago0xb85a54944b58342b07887942e6f530f616479efd0x66d3b18c12f1b0a6f2b8bf6f161b76bc0750f8681.083 Ether
0x9e5e5ae4c67482c61dfd25ed5c50efcdfaf2523d4a49322943cae67b830c0e945794254121 days 19 hrs ago0xb85a54944b58342b07887942e6f530f616479efd0x0076cd1cd7710db0e3732ee6fe28a3efc1c93bf90.057 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: EthTeamContract
Compiler Text: v0.4.23+commit.124ca40d
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.21;

/**
 * @title SafeMath
 * @dev https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/math/SafeMath.sol
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    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;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    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 a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @title Ownable
 * @dev https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

/**
 * @title StandardToken
 * @dev https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC20/StandardToken.sol
 * @dev Standard ERC20 token
 */
contract StandardToken {
    using SafeMath for uint256;

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

    mapping(address => uint256) internal balances_;
    mapping(address => mapping(address => uint256)) internal allowed_;

    uint256 internal totalSupply_;
    string public name;
    string public symbol;
    uint8 public decimals;

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

    /**
    * @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) {
        return balances_[_owner];
    }

    /**
     * @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 transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances_[msg.sender]);

        balances_[msg.sender] = balances_[msg.sender].sub(_value);
        balances_[_to] = balances_[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }


    /**
     * @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);
        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;
    }
}

/**
 * @title EthTeamContract
 * @dev The team token. One token represents a team. EthTeamContract is also a ERC20 standard token.
 */
contract EthTeamContract is StandardToken, Ownable {
    event Buy(address indexed token, address indexed from, uint256 value, uint256 weiValue);
    event Sell(address indexed token, address indexed from, uint256 value, uint256 weiValue);
    event BeginGame(address indexed team1, address indexed team2, uint64 gameTime);
    event EndGame(address indexed team1, address indexed team2, uint8 gameResult);
    event ChangeStatus(address indexed team, uint8 status);

    /**
    * @dev Token price based on ETH
    */
    uint256 public price;
    /**
    * @dev status=0 buyable & sellable, user can buy or sell the token.
    * status=1 not buyable & not sellable, user cannot buy or sell the token.
    */
    uint8 public status;
    /**
    * @dev The game start time. gameTime=0 means game time is not enabled or not started.
    */
    uint64 public gameTime;
    /**
    * @dev If the time is older than FinishTime (usually one month after game).
    * The owner has permission to transfer the balance to the feeOwner.
    * The user can get back the balance using the website after this time.
    */
    uint64 public finishTime;
    /**
    * @dev The fee owner. The fee will send to this address.
    */
    address public feeOwner;
    /**
    * @dev Game opponent, gameOpponent is also a EthTeamContract.
    */
    address public gameOpponent;

    /**
    * @dev Team name and team symbol will be ERC20 token name and symbol. Token decimals will be 3.
    * Token total supply will be 0. The initial price will be 1 szabo (1000000000000 Wei)
    */
    function EthTeamContract(
        string _teamName, string _teamSymbol, address _gameOpponent, uint64 _gameTime, uint64 _finishTime, address _feeOwner
    ) public {
        name = _teamName;
        symbol = _teamSymbol;
        decimals = 3;
        totalSupply_ = 0;
        price = 1 szabo;
        gameOpponent = _gameOpponent;
        gameTime = _gameTime;
        finishTime = _finishTime;
        feeOwner = _feeOwner;
        owner = msg.sender;
    }

    /**
    * @dev Sell Or Transfer the token.
    *
    * Override ERC20 transfer token function. If the _to address is not this EthTeamContract,
    * then call the super transfer function, which will be ERC20 token transfer.
    * Otherwise, the user want to sell the token (EthTeamContract -> ETH).
    * @param _to address The address which you want to transfer/sell to
    * @param _value uint256 the amount of tokens to be transferred/sold
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        if (_to != address(this)) {
            return super.transfer(_to, _value);
        }
        require(_value <= balances_[msg.sender] && status == 0);
        // If gameTime is enabled (larger than 1514764800 (2018-01-01))
        if (gameTime > 1514764800) {
            // We will not allowed to sell after 5 minutes (300 seconds) before game start
            require(gameTime - 300 > block.timestamp);
        }
        balances_[msg.sender] = balances_[msg.sender].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        uint256 weiAmount = price.mul(_value);
        msg.sender.transfer(weiAmount);
        emit Transfer(msg.sender, _to, _value);
        emit Sell(_to, msg.sender, _value, weiAmount);
        return true;
    }

    /**
    * @dev Buy token using ETH
    * User send ETH to this EthTeamContract, then his token balance will be increased based on price.
    * The total supply will also be increased.
    */
    function() payable public {
        require(status == 0 && price > 0);
        // If gameTime is enabled (larger than 1514764800 (2018-01-01))
        if (gameTime > 1514764800) {
            // We will not allowed to sell after 5 minutes (300 seconds) before game start
            require(gameTime - 300 > block.timestamp);
        }
        uint256 amount = msg.value.div(price);
        balances_[msg.sender] = balances_[msg.sender].add(amount);
        totalSupply_ = totalSupply_.add(amount);
        emit Transfer(address(this), msg.sender, amount);
        emit Buy(address(this), msg.sender, amount, msg.value);
    }

    /**
    * @dev The the game status.
    *
    * status = 0 buyable & sellable, user can buy or sell the token.
    * status=1 not buyable & not sellable, user cannot buy or sell the token.
    * @param _status The game status.
    */
    function changeStatus(uint8 _status) onlyOwner public {
        require(status != _status);
        status = _status;
        emit ChangeStatus(address(this), _status);
    }

    /**
    * @dev Finish the game
    *
    * If the time is older than FinishTime (usually one month after game).
    * The owner has permission to transfer the balance to the feeOwner.
    * The user can get back the balance using the website after this time.
    */
    function finish() onlyOwner public {
        require(block.timestamp >= finishTime);
        feeOwner.transfer(address(this).balance);
    }

    /**
    * @dev Start the game
    *
    * Start a new game. Initialize game opponent, game time and status.
    * @param _gameOpponent The game opponent contract address
    * @param _gameTime The game begin time. optional
    */
    function beginGame(address _gameOpponent, uint64 _gameTime) onlyOwner public {
        require(_gameOpponent != address(this));
        // 1514764800 = 2018-01-01
        require(_gameTime == 0 || (_gameTime > 1514764800));
        gameOpponent = _gameOpponent;
        gameTime = _gameTime;
        status = 0;
        emit BeginGame(address(this), _gameOpponent, _gameTime);
    }

    /**
    * @dev End the game with game final result.
    *
    * The function only allow to be called with the lose team or the draw team with large balance.
    * We have this rule because the lose team or draw team will large balance need transfer balance to opposite side.
    * This function will also change status of opposite team by calling transferFundAndEndGame function.
    * So the function only need to be called one time for the home and away team.
    * The new price will be recalculated based on the new balance and total supply.
    *
    * Balance transfer rule:
    * 1. The rose team will transfer all balance to opposite side.
    * 2. If the game is draw, the balances of two team will go fifty-fifty.
    * 3. If game is canceled, the balance is not touched and the game states will be reset to initial states.
    * 4. The fee will be 5% of each transfer amount.
    * @param _gameOpponent The game opponent contract address
    * @param _gameResult game result. 1=lose, 2=draw, 3=cancel, 4=win (not allow)
    */
    function endGame(address _gameOpponent, uint8 _gameResult) onlyOwner public {
        require(gameOpponent != address(0) && gameOpponent == _gameOpponent);
        uint256 amount = address(this).balance;
        uint256 opAmount = gameOpponent.balance;
        require(_gameResult == 1 || (_gameResult == 2 && amount >= opAmount) || _gameResult == 3);
        EthTeamContract op = EthTeamContract(gameOpponent);
        if (_gameResult == 1) {
            // Lose
            if (amount > 0 && totalSupply_ > 0) {
                uint256 lostAmount = amount;
                // If opponent has supply
                if (op.totalSupply() > 0) {
                    // fee is 5%
                    uint256 feeAmount = lostAmount.div(20);
                    lostAmount = lostAmount.sub(feeAmount);
                    feeOwner.transfer(feeAmount);
                    op.transferFundAndEndGame.value(lostAmount)();
                } else {
                    // If opponent has not supply, then send the lose money to fee owner.
                    feeOwner.transfer(lostAmount);
                    op.transferFundAndEndGame();
                }
            } else {
                op.transferFundAndEndGame();
            }
        } else if (_gameResult == 2) {
            // Draw
            if (amount > opAmount) {
                lostAmount = amount.sub(opAmount).div(2);
                if (op.totalSupply() > 0) {
                    // fee is 5%
                    feeAmount = lostAmount.div(20);
                    lostAmount = lostAmount.sub(feeAmount);
                    feeOwner.transfer(feeAmount);
                    op.transferFundAndEndGame.value(lostAmount)();
                } else {
                    feeOwner.transfer(lostAmount);
                    op.transferFundAndEndGame();
                }
            } else if (amount == opAmount) {
                op.transferFundAndEndGame();
            } else {
                // should not happen
                revert();
            }
        } else if (_gameResult == 3) {
            //canceled
            op.transferFundAndEndGame();
        } else {
            // should not happen
            revert();
        }
        endGameInternal();
        if (totalSupply_ > 0) {
            price = address(this).balance.div(totalSupply_);
        }
        emit EndGame(address(this), _gameOpponent, _gameResult);
    }

    /**
    * @dev Reset team token states
    *
    */
    function endGameInternal() private {
        gameOpponent = address(0);
        gameTime = 0;
        status = 0;
    }

    /**
    * @dev Reset team states and recalculate the price.
    *
    * This function will be called by opponent team token after end game.
    * It accepts the ETH transfer and recalculate the new price based on
    * new balance and total supply.
    */
    function transferFundAndEndGame() payable public {
        require(gameOpponent != address(0) && gameOpponent == msg.sender);
        if (msg.value > 0 && totalSupply_ > 0) {
            price = address(this).balance.div(totalSupply_);
        }
        endGameInternal();
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_gameOpponent","type":"address"},{"name":"_gameResult","type":"uint8"}],"name":"endGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"status","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finishTime","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_status","type":"uint8"}],"name":"changeStatus","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":"_gameOpponent","type":"address"},{"name":"_gameTime","type":"uint64"}],"name":"beginGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gameTime","outputs":[{"name":"","type":"uint64"}],"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":"feeOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"transferFundAndEndGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"finish","outputs":[],"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"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gameOpponent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_teamName","type":"string"},{"name":"_teamSymbol","type":"string"},{"name":"_gameOpponent","type":"address"},{"name":"_gameTime","type":"uint64"},{"name":"_finishTime","type":"uint64"},{"name":"_feeOwner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"token","type":"address"},{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"weiValue","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"token","type":"address"},{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"weiValue","type":"uint256"}],"name":"Sell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"team1","type":"address"},{"indexed":true,"name":"team2","type":"address"},{"indexed":false,"name":"gameTime","type":"uint64"}],"name":"BeginGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"team1","type":"address"},{"indexed":true,"name":"team2","type":"address"},{"indexed":false,"name":"gameResult","type":"uint8"}],"name":"EndGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"team","type":"address"},{"indexed":false,"name":"status","type":"uint8"}],"name":"ChangeStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"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"}]

  Contract Creation Code Switch To Opcodes View
60806040523480156200001157600080fd5b506040516200168b3803806200168b8339810160409081528151602080840151928401516060850151608086015160a087015194870180519097969096019592949193909262000068916003919089019062000133565b5084516200007e90600490602088019062000133565b5060058054600060025564e8d4a5100060065560098054600160a060020a0319908116600160a060020a03988916179091556007805468ffffffffffffffff00191661010067ffffffffffffffff988916810291909117604860020a608860020a0319166901000000000000000000979098169690960296909617909555600880549095169286169290921790935560ff191660031761010060a860020a031916339093160291909117905550620001d89050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017657805160ff1916838001178555620001a6565b82800160010185558215620001a6579182015b82811115620001a657825182559160200191906001019062000189565b50620001b4929150620001b8565b5090565b620001d591905b80821115620001b45760008155600101620001bf565b90565b6114a380620001e86000396000f30060806040526004361061010d5763ffffffff60e060020a600035041662203116811461026b57806306fdde0314610294578063095ea7b31461031e57806318160ddd14610356578063200d2ed21461037d57806323b872dd146103a8578063313ce567146103d25780635958611e146103e757806370a08231146104195780638da5cb5b1461043a57806395bc95381461046b57806395d89b411461048657806397b817c91461049b578063a035b1fe146104c9578063a5d1c0c0146104de578063a9059cbb146104f3578063b9818be114610517578063c8a5e6d71461052c578063d56b288914610534578063dd62ed3e14610549578063f2fde38b14610570578063fef8383e14610591575b60075460009060ff1615801561012557506000600654115b151561013057600080fd5b600754635a497a0061010090910467ffffffffffffffff161115610174576007544261010090910467ffffffffffffffff90811661012b1901161161017457600080fd5b60065461018890349063ffffffff6105a616565b600160a060020a0333166000908152602081905260409020549091506101b4908263ffffffff6105bb16565b600160a060020a0333166000908152602081905260409020556002546101e0908263ffffffff6105bb16565b600255604080518281529051600160a060020a033381169230909116916000805160206114588339815191529181900360200190a333600160a060020a031630600160a060020a03167f89f5adc174562e07c9c9b1cae7109bbecb21cf9d1b2847e550042b8653c54a0e8334604051808381526020018281526020019250505060405180910390a350005b34801561027757600080fd5b50610292600160a060020a036004351660ff602435166105d5565b005b3480156102a057600080fd5b506102a9610a65565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e35781810151838201526020016102cb565b50505050905090810190601f1680156103105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032a57600080fd5b50610342600160a060020a0360043516602435610af3565b604080519115158252519081900360200190f35b34801561036257600080fd5b5061036b610b5d565b60408051918252519081900360200190f35b34801561038957600080fd5b50610392610b63565b6040805160ff9092168252519081900360200190f35b3480156103b457600080fd5b50610342600160a060020a0360043581169060243516604435610b6c565b3480156103de57600080fd5b50610392610cda565b3480156103f357600080fd5b506103fc610ce3565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561042557600080fd5b5061036b600160a060020a0360043516610d00565b34801561044657600080fd5b5061044f610d1b565b60408051600160a060020a039092168252519081900360200190f35b34801561047757600080fd5b5061029260ff60043516610d2f565b34801561049257600080fd5b506102a9610db8565b3480156104a757600080fd5b50610292600160a060020a036004351667ffffffffffffffff60243516610e13565b3480156104d557600080fd5b5061036b610f17565b3480156104ea57600080fd5b506103fc610f1d565b3480156104ff57600080fd5b50610342600160a060020a0360043516602435610f32565b34801561052357600080fd5b5061044f611116565b610292611125565b34801561054057600080fd5b5061029261119b565b34801561055557600080fd5b5061036b600160a060020a036004358116906024351661121f565b34801561057c57600080fd5b50610292600160a060020a036004351661124a565b34801561059d57600080fd5b5061044f6112f3565b600081838115156105b357fe5b049392505050565b6000828201838110156105ca57fe5b8091505b5092915050565b600554600090819081908190819033600160a060020a03908116610100909204161461060057600080fd5b600954600160a060020a0316158015906106275750600954600160a060020a038881169116145b151561063257600080fd5b600954600160a060020a033081163196501631935060ff86166001148061066757508560ff1660021480156106675750838510155b8061067557508560ff166003145b151561068057600080fd5b600954600160a060020a0316925060ff8616600114156108d4576000851180156106ac57506000600254115b1561087857849150600083600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106f457600080fd5b505af1158015610708573d6000803e3d6000fd5b505050506040513d602081101561071e57600080fd5b505111156107e15761073782601463ffffffff6105a616565b9050610749828263ffffffff61130216565b600854604051919350600160a060020a03169082156108fc029083906000818181858888f19350505050158015610784573d6000803e3d6000fd5b5082600160a060020a031663c8a5e6d7836040518263ffffffff1660e060020a0281526004016000604051808303818588803b1580156107c357600080fd5b505af11580156107d7573d6000803e3d6000fd5b5050505050610873565b600854604051600160a060020a039091169083156108fc029084906000818181858888f1935050505015801561081b573d6000803e3d6000fd5b5082600160a060020a031663c8a5e6d76040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050505b6108cf565b82600160a060020a031663c8a5e6d76040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050505b6109e0565b8560ff1660021415610996578385111561094b5761090960026108fd878763ffffffff61130216565b9063ffffffff6105a616565b9150600083600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106f457600080fd5b838514156109915782600160a060020a031663c8a5e6d76040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561085a57600080fd5b600080fd5b8560ff16600314156109915782600160a060020a031663c8a5e6d76040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156108b657600080fd5b6109e8611314565b60006002541115610a1557600254610a1190600160a060020a033016319063ffffffff6105a616565b6006555b6040805160ff881681529051600160a060020a03808a169230909116917fca877aac494c1a237a54e53d1cf34403a485633cd56280f38c182df72936526f9181900360200190a350505050505050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aeb5780601f10610ac057610100808354040283529160200191610aeb565b820191906000526020600020905b815481529060010190602001808311610ace57829003601f168201915b505050505081565b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b60075460ff1681565b6000600160a060020a0383161515610b8357600080fd5b600160a060020a038416600090815260208190526040902054821115610ba857600080fd5b600160a060020a0380851660009081526001602090815260408083203390941683529290522054821115610bdb57600080fd5b600160a060020a038416600090815260208190526040902054610c04908363ffffffff61130216565b600160a060020a038086166000908152602081905260408082209390935590851681522054610c39908363ffffffff6105bb16565b600160a060020a0380851660009081526020818152604080832094909455878316825260018152838220339093168252919091522054610c7f908363ffffffff61130216565b600160a060020a03808616600081815260016020908152604080832033861684528252918290209490945580518681529051928716939192600080516020611458833981519152929181900390910190a35060019392505050565b60055460ff1681565b6007546901000000000000000000900467ffffffffffffffff1681565b600160a060020a031660009081526020819052604090205490565b6005546101009004600160a060020a031681565b60055433600160a060020a039081166101009092041614610d4f57600080fd5b60075460ff82811691161415610d6457600080fd5b6007805460ff831660ff1990911681179091556040805191825251600160a060020a033016917fb82ce22096c6500c582b45cfbf153014e62fd0cbcccaf9a68dc6bfbd53d875d3919081900360200190a250565b6004805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aeb5780601f10610ac057610100808354040283529160200191610aeb565b60055433600160a060020a039081166101009092041614610e3357600080fd5b30600160a060020a031682600160a060020a031614151515610e5457600080fd5b67ffffffffffffffff81161580610e785750635a497a008167ffffffffffffffff16115b1515610e8357600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169182179092556007805468ffffffffffffffff00191661010067ffffffffffffffff86169081029190911760ff1916909155604080519182525191923016917f1892465d280bc871343cfbf3c63bbbc2bee69afc8d669e83d7e94e54d74c8933916020908290030190a35050565b60065481565b600754610100900467ffffffffffffffff1681565b60008030600160a060020a031684600160a060020a0316141515610f6157610f5a8484611345565b91506105ce565b600160a060020a0333166000908152602081905260409020548311801590610f8c575060075460ff16155b1515610f9757600080fd5b600754635a497a0061010090910467ffffffffffffffff161115610fdb576007544261010090910467ffffffffffffffff90811661012b19011611610fdb57600080fd5b600160a060020a033316600090815260208190526040902054611004908463ffffffff61130216565b600160a060020a033316600090815260208190526040902055600254611030908463ffffffff61130216565b600255600654611046908463ffffffff61142c16565b604051909150600160a060020a0333169082156108fc029083906000818181858888f1935050505015801561107f573d6000803e3d6000fd5b5083600160a060020a031633600160a060020a0316600080516020611458833981519152856040518082815260200191505060405180910390a333600160a060020a031684600160a060020a03167fa082022e93cfcd9f1da5f9236718053910f7e840da080c789c7845698dc032ff8584604051808381526020018281526020019250505060405180910390a35060019392505050565b600854600160a060020a031681565b600954600160a060020a03161580159061114d575060095433600160a060020a039081169116145b151561115857600080fd5b60003411801561116a57506000600254115b156111915760025461118d90600160a060020a033016319063ffffffff6105a616565b6006555b611199611314565b565b60055433600160a060020a0390811661010090920416146111bb57600080fd5b6007546901000000000000000000900467ffffffffffffffff164210156111e157600080fd5b600854604051600160a060020a039182169130163180156108fc02916000818181858888f1935050505015801561121c573d6000803e3d6000fd5b50565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60055433600160a060020a03908116610100909204161461126a57600080fd5b600160a060020a038116151561127f57600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600954600160a060020a031681565b60008282111561130e57fe5b50900390565b6009805473ffffffffffffffffffffffffffffffffffffffff191690556007805468ffffffffffffffffff19169055565b6000600160a060020a038316151561135c57600080fd5b600160a060020a03331660009081526020819052604090205482111561138157600080fd5b600160a060020a0333166000908152602081905260409020546113aa908363ffffffff61130216565b600160a060020a0333811660009081526020819052604080822093909355908516815220546113df908363ffffffff6105bb16565b600160a060020a038085166000818152602081815260409182902094909455805186815290519193339093169260008051602061145883398151915292918290030190a350600192915050565b60008083151561143f57600091506105ce565b5082820282848281151561144f57fe5b04146105ca57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582027ff25e375de58bb1605cbcf1fbfe08364feb0dc0ee92ff94729a2aed0a3f1cf002900000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000b85a54944b58342b07887942e6f530f616479efd000000000000000000000000000000000000000000000000000000005b23d470000000000000000000000000000000000000000000000000000000005b743ff00000000000000000000000000076cd1cd7710db0e3732ee6fe28a3efc1c93bf9000000000000000000000000000000000000000000000000000000000000000f544657432d30342d4d4f524f43434f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d41520000000000000000000000000000000000000000000000000000000000

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

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 000000000000000000000000b85a54944b58342b07887942e6f530f616479efd
Arg [3] : 000000000000000000000000000000000000000000000000000000005b23d470
Arg [4] : 000000000000000000000000000000000000000000000000000000005b743ff0
Arg [5] : 0000000000000000000000000076cd1cd7710db0e3732ee6fe28a3efc1c93bf9
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [7] : 544657432d30342d4d4f524f43434f0000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [9] : 4d41520000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://27ff25e375de58bb1605cbcf1fbfe08364feb0dc0ee92ff94729a2aed0a3f1cf

 

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.