ETH Price: $3,422.94 (-0.51%)
Gas: 2 Gwei

Token

RockScissorPaper (RSP)
 

Overview

Max Total Supply

155,000.25 RSP

Holders

235

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Werekitty
Balance
2 RSP

Value
$0.00
0x137d9174D3bd00F2153DcC0Fe7AF712d3876a71E
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RockScissorPaper

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-09
*/

//  ___             _                         ___              _
// | _ )  _  _   __| |  __ _    __ __  ___   | _ \  ___   ___ | |_
// | _ \ | || | / _` | / _` |   \ V / (_-<   |  _/ / -_) (_-< |  _|
// |___/  \_,_| \__,_| \__,_|    \_/  /__/   |_|   \___| /__/  \__|

// Buda vs Pest
// the most ridiculous Rock-Scissor-Paper game on Ethereum
// Copyright 2018 www.budapestgame.com

pragma solidity ^0.4.18;

// File: contracts-raw/Ownable.sol

contract Ownable {
      address public        owner;


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

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

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

        function transferOwnership (address newOwner) public onlyOwner {
              require (newOwner != address (0));

              OwnershipTransferred (owner, newOwner);
              owner     = newOwner;
        }
}

// File: contracts-raw/SafeMath.sol

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

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

        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;
        }

        // Solidty automatically throws
        // 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;
        // }
}

// File: contracts-raw/StandardToken.sol

// ERC20 is ERC20Basic


// ERC20 standard
contract ERC20 {
        // Basic
        function totalSupply () public view returns (uint256);
        function balanceOf (address tokenOwner) public view returns (uint256);
        function transfer (address to, uint256 amount) public returns (bool);
        event Transfer (address indexed from, address indexed to, uint256 amount);

        // Additional
        function allowance (address tokenOwner, address spender) public view returns (uint256);
        function approve (address spender, uint256 amount) public returns (bool);
        function transferFrom (address from, address to, uint256 amount) public returns (bool);
        event Approval (address indexed tokenOwner, address indexed spender, uint256 amount);
}


// BasicToken is ERC20Basic

contract StandardToken is ERC20 {
        using SafeMath for uint256;

        // Basic
        uint256                             _tokenTotal;
        mapping (address => uint256)        _tokenBalances;

        function totalSupply () public view returns (uint256) {
                return _tokenTotal;
        }

        function balanceOf (address tokenOwner) public view returns (uint256) {
                return _tokenBalances[tokenOwner];
        }

        function _transfer (address to, uint256 amount) internal {
                // SafeMath.sub will throw if there is not enough balance.
                // SafeMath.add will throw if overflows
                _tokenBalances[msg.sender]      = _tokenBalances[msg.sender].sub (amount);
                _tokenBalances[to]              = _tokenBalances[to].add (amount);

                Transfer (msg.sender, to, amount);
        }

        function transfer (address to, uint256 amount) public returns (bool) {
                require (to != address (0));
                require (amount <= _tokenBalances[msg.sender]);     // should not be necessary, but double checks

                _transfer (to, amount);
                return true;
        }


        // Additional
        mapping (address => mapping (address => uint256)) internal  _tokenAllowance;

        function allowance (address tokenOwner, address spender) public view returns (uint256) {
                return _tokenAllowance[tokenOwner][spender];
        }

        function approve (address spender, uint256 amount) public returns (bool) {
                _tokenAllowance[msg.sender][spender]   = amount;
                Approval (msg.sender, spender, amount);
                return true;
        }

        function _transferFrom (address from, address to, uint256 amount) internal {
                // SafeMath.sub will throw if there is not enough balance.
                // SafeMath.add will throw if overflows
                _tokenBalances[from]    = _tokenBalances[from].sub (amount);
                _tokenBalances[to]      = _tokenBalances[to].add (amount);

                Transfer (from, to, amount);
        }

        function transferFrom (address from, address to, uint256 amount) public returns (bool) {
                require (to != address (0));
                require (amount <= _tokenBalances[from]);
                require (amount <= _tokenAllowance[from][msg.sender]);

                _transferFrom (from, to, amount);

                _tokenAllowance[from][msg.sender]     = _tokenAllowance[from][msg.sender].sub (amount);
                return true;
        }
}

// File: contracts-raw/RockScissorPaper.sol

//  ___             _                         ___              _
// | _ )  _  _   __| |  __ _    __ __  ___   | _ \  ___   ___ | |_
// | _ \ | || | / _` | / _` |   \ V / (_-<   |  _/ / -_) (_-< |  _|
// |___/  \_,_| \__,_| \__,_|    \_/  /__/   |_|   \___| /__/  \__|

// Buda vs Pest
// the most ridiculous Rock-Scissor-Paper game on Ethereum
// Copyright 2018 www.budapestgame.com

pragma solidity ^0.4.18;





contract RSPScienceInterface {

        function isRSPScience() public pure returns (bool);
        function calcPoseBits (uint256 sek, uint256 posesek0, uint256 posesek1) public pure returns (uint256);
}


contract RockScissorPaper is StandardToken, Ownable {
        using SafeMath for uint256;

        string public   name                = 'RockScissorPaper';
        string public   symbol              = 'RSP';
        uint8 public    decimals            = 18;

        uint8 public    version             = 7;

        // uint256 public  initialAmount        = 5 * 10**uint(decimals+6);

        RSPScienceInterface public      rspScience;


        function _setRSPScienceAddress (address addr) internal {
                RSPScienceInterface     candidate   = RSPScienceInterface (addr);
                require (candidate.isRSPScience ());
                rspScience      = candidate;
        }

        function setRSPScienceAddress (address addr) public onlyOwner {
                _setRSPScienceAddress (addr);
        }

        // Constructor is not called multiple times, fortunately
        function RockScissorPaper (address addr) public {
                // Onwer should be set up and become msg.sender
                // During test, mint owner some amount
                // During deployment, onwer himself has to buy tokens to be fair
                // _mint (msg.sender, initialAmount);

                if (addr != address(0)) {
                        _setRSPScienceAddress (addr);
                }
        }

        function () public payable {
                revert ();
        }


        mapping (address => uint256) public         weiInvested;
        mapping (address => uint256) public         weiRefunded;

        mapping (address => address) public         referrals;
        mapping (address => uint256) public         nRefs;
        mapping (address => uint256) public         weiFromRefs;

        event TokenInvest (address indexed purchaser, uint256 nWeis, uint256 nTokens, address referral);
        event TokenRefund (address indexed purchaser, uint256 nWeis, uint256 nTokens);

        // Buying and selling incur minting and burning
        function _mint (address tokenOwner, uint256 amount) internal {
                _tokenTotal                     = _tokenTotal.add (amount);
                _tokenBalances[tokenOwner]     += amount;   // no need to require, overflow already checked above

                // Just emit a Transfer Event
                Transfer (address (0), tokenOwner, amount);
        }

        function _burn (address tokenOwner, uint256 amount) internal {
                _tokenBalances[tokenOwner]  = _tokenBalances[tokenOwner].sub (amount);
                _tokenTotal                -= amount;       // no need to require, underflow already checked above

                // Just emit a Transfer Event
                Transfer (tokenOwner, address (0), amount);
        }

        // Only owner is allowed to do this
        function mint (uint256 amount) onlyOwner public {
                _mint (msg.sender, amount);
        }


        function buyTokens (address referral) public payable {
                // minimum buys: 1 token
                uint256     amount      = msg.value.mul (5000);
                require (amount >= 1 * 10**uint(decimals));

                // _processPurchase, _deliverTokens using Minting
                _mint (msg.sender, amount);

                if ( referrals[msg.sender] == address(0) &&
                     referral != msg.sender ) {
                        if (referral == address(0)) {
                                referral    = owner;
                        }

                        referrals[msg.sender]   = referral;
                        nRefs[referral]        += 1;
                }

                // Fund logs
                weiInvested[msg.sender]    += msg.value;
                TokenInvest (msg.sender, msg.value, amount, referral);
        }

        function sellTokens (uint256 amount) public {
                _burn (msg.sender, amount);

                // uint256     nWeis   = amount/rate * 0.9;
                uint256     nWeis   = amount / 5000;
                // gameBalance        -= nWeis;

                // Fund logs
                weiRefunded[msg.sender]     += nWeis;
                TokenRefund (msg.sender, nWeis, amount);

                msg.sender.transfer (nWeis);
        }



        // Gamings
        struct GameRSP {
                address         creator;
                uint256         creatorPose;
                // uint256
                uint256         nTokens;

                address         player;
                uint256         playerPose;
                uint256         sek;
                uint256         posebits;
        }


        GameRSP[]   games;
        // mapping (address => uint256) public         lastGameId;

        function totalGames () public view returns (uint256) {
                return games.length;
        }

        function gameInfo (uint256 gameId) public view returns (address, uint256, uint256, address, uint256, uint256, uint256) {
                GameRSP storage     game    = games[gameId];

                return (
                    game.creator,
                    game.creatorPose,
                    game.nTokens,
                    game.player,
                    game.playerPose,
                    game.sek,
                    game.posebits
                );
        }


        uint8 public        ownerCut            = 5;                // 5 percent
        uint8 public        referralCut         = 5;                // 5 percent
        function changeFeeCut (uint8 ownCut, uint8 refCut) onlyOwner public {
                ownerCut        = ownCut;
                referralCut     = refCut;
        }


        event GameCreated (address indexed creator, uint256 gameId, uint256 pose);
        event GamePlayed (address indexed player, uint256 gameId, uint256 pose);
        event GameSolved (address indexed solver, uint256 gameId, uint256 posebits, address referral, uint256 solverFee);

        function createGame (uint256 amount, uint256 pose) public {
                // Will check tokenBalance of sender in transfer ()
                // require (_tokenBalances[msg.sender] >= amount && amount >= 100 * 10**uint(decimals));
                require (_tokenBalances[msg.sender] >= amount);

                // We set 1 as the minimal token required, but 100 tokens probably is the minimum viable
                require (amount >= 1 * 10**uint(decimals));


                // escrew tokens;
                _transfer (this, amount);

                GameRSP memory      game    = GameRSP ({
                        creator:        msg.sender,
                        creatorPose:    pose,
                        nTokens:        amount,
                        player:         address (0),
                        playerPose:     0,
                        sek:            0,
                        posebits:       0
                });

                uint256     gameId          = games.push (game) - 1;

                // lastGameId[msg.sender]      = gameId;
                // Todo: Last GameId
                // Let's be absolutely sure array don't hit its limits
                require (gameId == uint256(uint32(gameId)));
                GameCreated (msg.sender, gameId, pose);
        }


        function playGame (uint256 gameId, uint256 pose) public {
                GameRSP storage     game    = games[gameId];

                require (msg.sender != game.creator);
                require (game.player == address (0));

                uint256     nTokens = game.nTokens;
                // Will check tokenBalance of sender in transfer ()
                require (_tokenBalances[msg.sender] >= nTokens);

                // escrew tokens;
                _transfer (this, nTokens);

                game.player         = msg.sender;
                game.playerPose     = pose;

                GamePlayed (msg.sender, gameId, pose);
        }

        // Convenience functions
        function buyAndCreateGame (uint256 amount, uint256 pose, address referral) public payable {
                buyTokens (referral);
                createGame (amount, pose);
        }

        function buyAndPlayGame (uint256 gameId, uint256 pose, address referral) public payable {
                buyTokens (referral);
                playGame (gameId, pose);
        }


        // Bounty to eththrowaway4
        function _solveGame (uint256 gameId, uint256 sek, uint256 solFee) internal {
                GameRSP storage     game    = games[gameId];

                require (game.player != address (0));
                uint256     nTokens     = game.nTokens;

                require (_tokenBalances[this] >= nTokens * 2);

                uint256     ownerFee            = nTokens * 2 * ownerCut / 100;
                uint256     referralFee         = nTokens * 2 * referralCut / 100;
                uint256     winnerPrize         = nTokens * 2 - ownerFee - referralFee - solFee;
                uint256     drawPrize           = nTokens - solFee/2;

                require (game.sek == 0 && sek != 0);
                game.sek        = sek;

                address     referral;
                // Let's start solving the game
                uint256     posebits        = rspScience.calcPoseBits (sek, game.creatorPose, game.playerPose);

                // RK, SC, PA,   RK, SC, PA
                // 1,  2,  4,    8,  16, 32
                if ((posebits % 9) == 0) {                                  // 9, 18 or 36
                        require (drawPrize >= 0);

                        // draw (we don't take any fees - fair enough?)
                        _transferFrom (this, game.creator, drawPrize);
                        _transferFrom (this, game.player, drawPrize);
                }
                else if ((posebits % 17) == 0 || posebits == 12) {          // 12, 17, or 34
                        require (winnerPrize >= 0);

                        referral            = referrals[game.creator];
                        if (referral == address(0)) {
                                referral    = owner;
                        }

                        // creator wins
                        _transferFrom (this, game.creator, winnerPrize);
                        _transferFrom (this, referral, referralFee);
                        _transferFrom (this, owner, ownerFee);

                        weiFromRefs[referral]     += referralFee;
                }
                else if ((posebits % 10) == 0 || posebits == 33) {          // 10, 20, or 33
                        require (winnerPrize >= 0);

                        referral            = referrals[game.player];
                        if (referral == address(0)) {
                                referral    = owner;
                        }

                        // player wins
                        _transferFrom (this, game.player, winnerPrize);
                        _transferFrom (this, referral, referralFee);
                        _transferFrom (this, owner, ownerFee);

                        weiFromRefs[referral]     += referralFee;
                }

                if (solFee > 0) {
                        _transferFrom (this, msg.sender, solFee);
                }

                game.posebits    = posebits;
                GameSolved (msg.sender, gameId, game.posebits, referral, solFee);
        }



        // Anyone could call this to claim the prize (an pay gas himself)
        function solveGame (uint256 gameId, uint256 sek) public {
                _solveGame (gameId, sek, 0);
        }

        // Or the game could be automatically solved a few moments later by the owner,
        // charging a 'solverFee'
        function autoSolveGame (uint256 gameId, uint256 sek, uint256 solFee) onlyOwner public {
                _solveGame (gameId, sek, solFee);
        }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"weiRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"pose","type":"uint256"},{"name":"referral","type":"address"}],"name":"buyAndCreateGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalGames","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"gameId","type":"uint256"},{"name":"pose","type":"uint256"}],"name":"playGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"nRefs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"pose","type":"uint256"}],"name":"createGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sellTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setRSPScienceAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ownCut","type":"uint8"},{"name":"refCut","type":"uint8"}],"name":"changeFeeCut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerCut","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"weiInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referrals","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"gameId","type":"uint256"}],"name":"gameInfo","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"referralCut","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"gameId","type":"uint256"},{"name":"sek","type":"uint256"},{"name":"solFee","type":"uint256"}],"name":"autoSolveGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rspScience","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"weiFromRefs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"gameId","type":"uint256"},{"name":"pose","type":"uint256"},{"name":"referral","type":"address"}],"name":"buyAndPlayGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"referral","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"gameId","type":"uint256"},{"name":"sek","type":"uint256"}],"name":"solveGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"addr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"nWeis","type":"uint256"},{"indexed":false,"name":"nTokens","type":"uint256"},{"indexed":false,"name":"referral","type":"address"}],"name":"TokenInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"nWeis","type":"uint256"},{"indexed":false,"name":"nTokens","type":"uint256"}],"name":"TokenRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"creator","type":"address"},{"indexed":false,"name":"gameId","type":"uint256"},{"indexed":false,"name":"pose","type":"uint256"}],"name":"GameCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"gameId","type":"uint256"},{"indexed":false,"name":"pose","type":"uint256"}],"name":"GamePlayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"solver","type":"address"},{"indexed":false,"name":"gameId","type":"uint256"},{"indexed":false,"name":"posebits","type":"uint256"},{"indexed":false,"name":"referral","type":"address"},{"indexed":false,"name":"solverFee","type":"uint256"}],"name":"GameSolved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"prevOwner","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Approval","type":"event"}]

606060405260408051908101604052601081527f526f636b53636973736f72506170657200000000000000000000000000000000602082015260049080516200004d929160200190620001e9565b5060408051908101604052600381527f52535000000000000000000000000000000000000000000000000000000000006020820152600590805162000097929160200190620001e9565b506006805461070061ff001960ff19928316601217811691909117909255600d805461050092166005179092161790553415620000d357600080fd5b60405160208062001b5c8339810160405280805160038054600160a060020a03191633600160a060020a039081169190911790915590925082161590506200012e576200012e816401000000006200127d6200013582021704565b506200028e565b80600160a060020a03811663cb4c8ee46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200019657600080fd5b6102c65a03f11515620001a857600080fd5b505050604051805190501515620001be57600080fd5b60068054600160a060020a0390921662010000026201000060b060020a031990921691909117905550565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022c57805160ff19168380011785556200025c565b828001600101855582156200025c579182015b828111156200025c5782518255916020019190600101906200023f565b506200026a9291506200026e565b5090565b6200028b91905b808211156200026a576000815560010162000275565b90565b6118be806200029e6000396000f3006060604052600436106101a05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101a55780630714a4071461022f578063095ea7b31461026057806318160ddd14610296578063188d0aae146102a957806323b872dd146102c55780632c4e591b146102ed578063313ce5671461030057806334825a23146103295780633bc93f5a1461034257806354fd4d501461036157806360104cef146103745780636c11bcd31461038d5780636f32b2ac146103a3578063704dd019146103c257806370a08231146103e157806383b5ff8b146104005780638da5cb5b1461041357806395d89b411461044257806395e16aa9146104555780639ca423b314610474578063a0712d6814610493578063a6f81668146104a9578063a9059cbb14610509578063a91abdcb1461052b578063ae8b9d7b1461053e578063b2d138d21461055a578063bb7e791a1461056d578063c27382d91461058c578063dd62ed3e146105a6578063ec8ac4d8146105cb578063f2fde38b146105df578063fb282f92146105fe575b600080fd5b34156101b057600080fd5b6101b8610617565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101f45780820151838201526020016101dc565b50505050905090810190601f1680156102215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023a57600080fd5b61024e600160a060020a03600435166106b5565b60405190815260200160405180910390f35b341561026b57600080fd5b610282600160a060020a03600435166024356106c7565b604051901515815260200160405180910390f35b34156102a157600080fd5b61024e610733565b6102c3600435602435600160a060020a036044351661073a565b005b34156102d057600080fd5b610282600160a060020a0360043581169060243516604435610752565b34156102f857600080fd5b61024e610834565b341561030b57600080fd5b61031361083a565b60405160ff909116815260200160405180910390f35b341561033457600080fd5b6102c3600435602435610843565b341561034d57600080fd5b61024e600160a060020a0360043516610945565b341561036c57600080fd5b610313610957565b341561037f57600080fd5b6102c3600435602435610965565b341561039857600080fd5b6102c3600435610b15565b34156103ae57600080fd5b6102c3600160a060020a0360043516610bbb565b34156103cd57600080fd5b6102c360ff60043581169060243516610be2565b34156103ec57600080fd5b61024e600160a060020a0360043516610c22565b341561040b57600080fd5b610313610c3d565b341561041e57600080fd5b610426610c46565b604051600160a060020a03909116815260200160405180910390f35b341561044d57600080fd5b6101b8610c55565b341561046057600080fd5b61024e600160a060020a0360043516610cc0565b341561047f57600080fd5b610426600160a060020a0360043516610cd2565b341561049e57600080fd5b6102c3600435610ced565b34156104b457600080fd5b6104bf600435610d12565b604051600160a060020a0397881681526020810196909652604080870195909552929095166060850152608084015260a083019390935260c082019290925260e001905180910390f35b341561051457600080fd5b610282600160a060020a0360043516602435610d8a565b341561053657600080fd5b610313610dd9565b341561054957600080fd5b6102c3600435602435604435610de7565b341561056557600080fd5b610426610e0d565b341561057857600080fd5b61024e600160a060020a0360043516610e22565b6102c3600435602435600160a060020a0360443516610e34565b34156105b157600080fd5b61024e600160a060020a0360043581169060243516610e47565b6102c3600160a060020a0360043516610e72565b34156105ea57600080fd5b6102c3600160a060020a0360043516610fcb565b341561060957600080fd5b6102c3600435602435611066565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106ad5780601f10610682576101008083540402835291602001916106ad565b820191906000526020600020905b81548152906001019060200180831161069057829003601f168201915b505050505081565b60086020526000908152604090205481565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000545b90565b61074381610e72565b61074d8383610965565b505050565b6000600160a060020a038316151561076957600080fd5b600160a060020a03841660009081526001602052604090205482111561078e57600080fd5b600160a060020a03808516600090815260026020908152604080832033909416835292905220548211156107c157600080fd5b6107cc848484611072565b600160a060020a0380851660009081526002602090815260408083203390941683529290522054610803908363ffffffff61112c16565b600160a060020a03808616600090815260026020908152604080832033909416835292905220555060019392505050565b600c5490565b60065460ff1681565b600080600c8481548110151561085557fe5b60009182526020909120600790910201805490925033600160a060020a039081169116141561088357600080fd5b6003820154600160a060020a03161561089b57600080fd5b506002810154600160a060020a033316600090815260016020526040902054819010156108c757600080fd5b6108d1308261113e565b60038201805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316908117909155600483018490557f24b31e1dbf1732a12bb700d3d77e5fb96ff3b693374d9fa15ccbc03f42715076858560405191825260208201526040908101905180910390a250505050565b600a6020526000908152604090205481565b600654610100900460ff1681565b61096d6117b8565b600160a060020a0333166000908152600160205260408120548490101561099357600080fd5b60065460ff16600a0a8410156109a857600080fd5b6109b2308561113e565b60e06040519081016040528033600160a060020a031681526020018481526020018581526020016000600160a060020a031681526020016000815260200160008152602001600081525091506001600c8054806001018281610a149190611808565b600092835260209092208591600702018151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151816001015560408201518160020155606082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556080820151816004015560a0820151816005015560c08201516006909101555003905063ffffffff81168114610acb57600080fd5b33600160a060020a03167f27bd49aa3baf4aa9d565998bd41f40d6ff8cb737a8b4935d9ead830220fb73bc828560405191825260208201526040908101905180910390a250505050565b6000610b2133836111f8565b5033600160a060020a0316600081815260086020526040908190208054611388850490810190915591907f47bc8b296a721ead4262b15df1a3123f2c4eed6afa70823038a3c34d60d478f290839085905191825260208201526040908101905180910390a2600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610bb757600080fd5b5050565b60035433600160a060020a03908116911614610bd657600080fd5b610bdf8161127d565b50565b60035433600160a060020a03908116911614610bfd57600080fd5b600d805460ff9283166101000261ff00199490931660ff199091161792909216179055565b600160a060020a031660009081526001602052604090205490565b600d5460ff1681565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106ad5780601f10610682576101008083540402835291602001916106ad565b60076020526000908152604090205481565b600960205260009081526040902054600160a060020a031681565b60035433600160a060020a03908116911614610d0857600080fd5b610bdf338261133b565b600080600080600080600080600c89815481101515610d2d57fe5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601546006870154600160a060020a039687169f50949d50929b50931698509196509094509250905050919395979092949650565b6000600160a060020a0383161515610da157600080fd5b600160a060020a033316600090815260016020526040902054821115610dc657600080fd5b610dd0838361113e565b50600192915050565b600d54610100900460ff1681565b60035433600160a060020a03908116911614610e0257600080fd5b61074d8383836113aa565b600654620100009004600160a060020a031681565b600b6020526000908152604090205481565b610e3d81610e72565b61074d8383610843565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6000610e863461138863ffffffff61177316565b60065490915060ff16600a0a811015610e9e57600080fd5b610ea8338261133b565b600160a060020a0333811660009081526009602052604090205416158015610ee2575033600160a060020a031682600160a060020a031614155b15610f5457600160a060020a0382161515610f0657600354600160a060020a031691505b600160a060020a033381166000908152600960209081526040808320805494871673ffffffffffffffffffffffffffffffffffffffff1990951685179055928252600a905220805460010190555b600160a060020a033316600081815260076020526040908190208054349081019091557ff9d280e51917e2a2843caebb7e3365656911aa5b307986d48ff5c66958997c169184908690519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a25050565b60035433600160a060020a03908116911614610fe657600080fd5b600160a060020a0381161515610ffb57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610bb7828260006113aa565b600160a060020a03831660009081526001602052604090205461109b908263ffffffff61112c16565b600160a060020a0380851660009081526001602052604080822093909355908416815220546110d0908263ffffffff6117a916565b600160a060020a03808416600081815260016020526040908190209390935591908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60008282111561113857fe5b50900390565b600160a060020a033316600090815260016020526040902054611167908263ffffffff61112c16565b600160a060020a03338116600090815260016020526040808220939093559084168152205461119c908263ffffffff6117a916565b600160a060020a0380841660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a038216600090815260016020526040902054611221908263ffffffff61112c16565b600160a060020a0383166000818152600160205260408082209390935580548490038155917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b80600160a060020a03811663cb4c8ee46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112dd57600080fd5b6102c65a03f115156112ee57600080fd5b50505060405180519050151561130357600080fd5b60068054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff00001990921691909117905550565b60005461134e908263ffffffff6117a916565b6000908155600160a060020a038316808252600160205260408083208054850190559091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600080600080600080600080600c8b8154811015156113c557fe5b600091825260209091206007909102016003810154909850600160a060020a031615156113f157600080fd5b600280890154600160a060020a03301660009081526001602052604090205490985090880290101561142257600080fd5b600d54606460ff8083168a026002908102839004995061010090930416890282020495508781028790038690038a900394508904870392508760050154600014801561146d57508915155b151561147857600080fd5b600588018a9055600654600189015460048a015462010000909204600160a060020a031691639cda5a12918d916000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b151561150a57600080fd5b6102c65a03f1151561151b57600080fd5b505050604051805191505060098106151561157457600083101561153e57600080fd5b8754611555903090600160a060020a031685611072565b600388015461156f903090600160a060020a031685611072565b6116e0565b601181061580611584575080600c145b1561162957600084101561159757600080fd5b8754600160a060020a039081166000908152600960205260409020541691508115156115cc57600354600160a060020a031691505b87546115e3903090600160a060020a031686611072565b6115ee308387611072565b600354611606903090600160a060020a031688611072565b600160a060020a0382166000908152600b602052604090208054860190556116e0565b600a810615806116395750806021145b156116e057600084101561164c57600080fd5b6003880154600160a060020a0390811660009081526009602052604090205416915081151561168457600354600160a060020a031691505b600388015461169e903090600160a060020a031686611072565b6116a9308387611072565b6003546116c1903090600160a060020a031688611072565b600160a060020a0382166000908152600b602052604090208054860190555b60008911156116f4576116f430338b611072565b60068801819055600160a060020a0333167f48fc50c127b4354a02f63db205d57cea3f2d3bbbabc3cf6c9c848ac0f46784078c83858d6040518085815260200184815260200183600160a060020a0316600160a060020a0316815260200182815260200194505050505060405180910390a25050505050505050505050565b60008083151561178657600091506117a2565b5082820282848281151561179657fe5b041461179e57fe5b8091505b5092915050565b60008282018381101561179e57fe5b60e0604051908101604052806000600160a060020a0316815260200160008152602001600081526020016000600160a060020a031681526020016000815260200160008152602001600081525090565b81548183558181151161074d5760008381526020902061074d916107379160079182028101918502015b8082111561188e57805473ffffffffffffffffffffffffffffffffffffffff1990811682556000600183018190556002830181905560038301805490921690915560048201819055600582018190556006820155600701611832565b50905600a165627a7a72305820e0598a17e3bd6cac1a1b55f1d71c1feb1699bed5706e8c7acc69b11fbb8470e800290000000000000000000000009f0215d233d2fb3aa936ea4874ed733f95ef1dfe

Deployed Bytecode

0x6060604052600436106101a05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101a55780630714a4071461022f578063095ea7b31461026057806318160ddd14610296578063188d0aae146102a957806323b872dd146102c55780632c4e591b146102ed578063313ce5671461030057806334825a23146103295780633bc93f5a1461034257806354fd4d501461036157806360104cef146103745780636c11bcd31461038d5780636f32b2ac146103a3578063704dd019146103c257806370a08231146103e157806383b5ff8b146104005780638da5cb5b1461041357806395d89b411461044257806395e16aa9146104555780639ca423b314610474578063a0712d6814610493578063a6f81668146104a9578063a9059cbb14610509578063a91abdcb1461052b578063ae8b9d7b1461053e578063b2d138d21461055a578063bb7e791a1461056d578063c27382d91461058c578063dd62ed3e146105a6578063ec8ac4d8146105cb578063f2fde38b146105df578063fb282f92146105fe575b600080fd5b34156101b057600080fd5b6101b8610617565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101f45780820151838201526020016101dc565b50505050905090810190601f1680156102215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023a57600080fd5b61024e600160a060020a03600435166106b5565b60405190815260200160405180910390f35b341561026b57600080fd5b610282600160a060020a03600435166024356106c7565b604051901515815260200160405180910390f35b34156102a157600080fd5b61024e610733565b6102c3600435602435600160a060020a036044351661073a565b005b34156102d057600080fd5b610282600160a060020a0360043581169060243516604435610752565b34156102f857600080fd5b61024e610834565b341561030b57600080fd5b61031361083a565b60405160ff909116815260200160405180910390f35b341561033457600080fd5b6102c3600435602435610843565b341561034d57600080fd5b61024e600160a060020a0360043516610945565b341561036c57600080fd5b610313610957565b341561037f57600080fd5b6102c3600435602435610965565b341561039857600080fd5b6102c3600435610b15565b34156103ae57600080fd5b6102c3600160a060020a0360043516610bbb565b34156103cd57600080fd5b6102c360ff60043581169060243516610be2565b34156103ec57600080fd5b61024e600160a060020a0360043516610c22565b341561040b57600080fd5b610313610c3d565b341561041e57600080fd5b610426610c46565b604051600160a060020a03909116815260200160405180910390f35b341561044d57600080fd5b6101b8610c55565b341561046057600080fd5b61024e600160a060020a0360043516610cc0565b341561047f57600080fd5b610426600160a060020a0360043516610cd2565b341561049e57600080fd5b6102c3600435610ced565b34156104b457600080fd5b6104bf600435610d12565b604051600160a060020a0397881681526020810196909652604080870195909552929095166060850152608084015260a083019390935260c082019290925260e001905180910390f35b341561051457600080fd5b610282600160a060020a0360043516602435610d8a565b341561053657600080fd5b610313610dd9565b341561054957600080fd5b6102c3600435602435604435610de7565b341561056557600080fd5b610426610e0d565b341561057857600080fd5b61024e600160a060020a0360043516610e22565b6102c3600435602435600160a060020a0360443516610e34565b34156105b157600080fd5b61024e600160a060020a0360043581169060243516610e47565b6102c3600160a060020a0360043516610e72565b34156105ea57600080fd5b6102c3600160a060020a0360043516610fcb565b341561060957600080fd5b6102c3600435602435611066565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106ad5780601f10610682576101008083540402835291602001916106ad565b820191906000526020600020905b81548152906001019060200180831161069057829003601f168201915b505050505081565b60086020526000908152604090205481565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000545b90565b61074381610e72565b61074d8383610965565b505050565b6000600160a060020a038316151561076957600080fd5b600160a060020a03841660009081526001602052604090205482111561078e57600080fd5b600160a060020a03808516600090815260026020908152604080832033909416835292905220548211156107c157600080fd5b6107cc848484611072565b600160a060020a0380851660009081526002602090815260408083203390941683529290522054610803908363ffffffff61112c16565b600160a060020a03808616600090815260026020908152604080832033909416835292905220555060019392505050565b600c5490565b60065460ff1681565b600080600c8481548110151561085557fe5b60009182526020909120600790910201805490925033600160a060020a039081169116141561088357600080fd5b6003820154600160a060020a03161561089b57600080fd5b506002810154600160a060020a033316600090815260016020526040902054819010156108c757600080fd5b6108d1308261113e565b60038201805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316908117909155600483018490557f24b31e1dbf1732a12bb700d3d77e5fb96ff3b693374d9fa15ccbc03f42715076858560405191825260208201526040908101905180910390a250505050565b600a6020526000908152604090205481565b600654610100900460ff1681565b61096d6117b8565b600160a060020a0333166000908152600160205260408120548490101561099357600080fd5b60065460ff16600a0a8410156109a857600080fd5b6109b2308561113e565b60e06040519081016040528033600160a060020a031681526020018481526020018581526020016000600160a060020a031681526020016000815260200160008152602001600081525091506001600c8054806001018281610a149190611808565b600092835260209092208591600702018151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151816001015560408201518160020155606082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556080820151816004015560a0820151816005015560c08201516006909101555003905063ffffffff81168114610acb57600080fd5b33600160a060020a03167f27bd49aa3baf4aa9d565998bd41f40d6ff8cb737a8b4935d9ead830220fb73bc828560405191825260208201526040908101905180910390a250505050565b6000610b2133836111f8565b5033600160a060020a0316600081815260086020526040908190208054611388850490810190915591907f47bc8b296a721ead4262b15df1a3123f2c4eed6afa70823038a3c34d60d478f290839085905191825260208201526040908101905180910390a2600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610bb757600080fd5b5050565b60035433600160a060020a03908116911614610bd657600080fd5b610bdf8161127d565b50565b60035433600160a060020a03908116911614610bfd57600080fd5b600d805460ff9283166101000261ff00199490931660ff199091161792909216179055565b600160a060020a031660009081526001602052604090205490565b600d5460ff1681565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106ad5780601f10610682576101008083540402835291602001916106ad565b60076020526000908152604090205481565b600960205260009081526040902054600160a060020a031681565b60035433600160a060020a03908116911614610d0857600080fd5b610bdf338261133b565b600080600080600080600080600c89815481101515610d2d57fe5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601546006870154600160a060020a039687169f50949d50929b50931698509196509094509250905050919395979092949650565b6000600160a060020a0383161515610da157600080fd5b600160a060020a033316600090815260016020526040902054821115610dc657600080fd5b610dd0838361113e565b50600192915050565b600d54610100900460ff1681565b60035433600160a060020a03908116911614610e0257600080fd5b61074d8383836113aa565b600654620100009004600160a060020a031681565b600b6020526000908152604090205481565b610e3d81610e72565b61074d8383610843565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6000610e863461138863ffffffff61177316565b60065490915060ff16600a0a811015610e9e57600080fd5b610ea8338261133b565b600160a060020a0333811660009081526009602052604090205416158015610ee2575033600160a060020a031682600160a060020a031614155b15610f5457600160a060020a0382161515610f0657600354600160a060020a031691505b600160a060020a033381166000908152600960209081526040808320805494871673ffffffffffffffffffffffffffffffffffffffff1990951685179055928252600a905220805460010190555b600160a060020a033316600081815260076020526040908190208054349081019091557ff9d280e51917e2a2843caebb7e3365656911aa5b307986d48ff5c66958997c169184908690519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a25050565b60035433600160a060020a03908116911614610fe657600080fd5b600160a060020a0381161515610ffb57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610bb7828260006113aa565b600160a060020a03831660009081526001602052604090205461109b908263ffffffff61112c16565b600160a060020a0380851660009081526001602052604080822093909355908416815220546110d0908263ffffffff6117a916565b600160a060020a03808416600081815260016020526040908190209390935591908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60008282111561113857fe5b50900390565b600160a060020a033316600090815260016020526040902054611167908263ffffffff61112c16565b600160a060020a03338116600090815260016020526040808220939093559084168152205461119c908263ffffffff6117a916565b600160a060020a0380841660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a038216600090815260016020526040902054611221908263ffffffff61112c16565b600160a060020a0383166000818152600160205260408082209390935580548490038155917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b80600160a060020a03811663cb4c8ee46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112dd57600080fd5b6102c65a03f115156112ee57600080fd5b50505060405180519050151561130357600080fd5b60068054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff00001990921691909117905550565b60005461134e908263ffffffff6117a916565b6000908155600160a060020a038316808252600160205260408083208054850190559091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600080600080600080600080600c8b8154811015156113c557fe5b600091825260209091206007909102016003810154909850600160a060020a031615156113f157600080fd5b600280890154600160a060020a03301660009081526001602052604090205490985090880290101561142257600080fd5b600d54606460ff8083168a026002908102839004995061010090930416890282020495508781028790038690038a900394508904870392508760050154600014801561146d57508915155b151561147857600080fd5b600588018a9055600654600189015460048a015462010000909204600160a060020a031691639cda5a12918d916000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b151561150a57600080fd5b6102c65a03f1151561151b57600080fd5b505050604051805191505060098106151561157457600083101561153e57600080fd5b8754611555903090600160a060020a031685611072565b600388015461156f903090600160a060020a031685611072565b6116e0565b601181061580611584575080600c145b1561162957600084101561159757600080fd5b8754600160a060020a039081166000908152600960205260409020541691508115156115cc57600354600160a060020a031691505b87546115e3903090600160a060020a031686611072565b6115ee308387611072565b600354611606903090600160a060020a031688611072565b600160a060020a0382166000908152600b602052604090208054860190556116e0565b600a810615806116395750806021145b156116e057600084101561164c57600080fd5b6003880154600160a060020a0390811660009081526009602052604090205416915081151561168457600354600160a060020a031691505b600388015461169e903090600160a060020a031686611072565b6116a9308387611072565b6003546116c1903090600160a060020a031688611072565b600160a060020a0382166000908152600b602052604090208054860190555b60008911156116f4576116f430338b611072565b60068801819055600160a060020a0333167f48fc50c127b4354a02f63db205d57cea3f2d3bbbabc3cf6c9c848ac0f46784078c83858d6040518085815260200184815260200183600160a060020a0316600160a060020a0316815260200182815260200194505050505060405180910390a25050505050505050505050565b60008083151561178657600091506117a2565b5082820282848281151561179657fe5b041461179e57fe5b8091505b5092915050565b60008282018381101561179e57fe5b60e0604051908101604052806000600160a060020a0316815260200160008152602001600081526020016000600160a060020a031681526020016000815260200160008152602001600081525090565b81548183558181151161074d5760008381526020902061074d916107379160079182028101918502015b8082111561188e57805473ffffffffffffffffffffffffffffffffffffffff1990811682556000600183018190556002830181905560038301805490921690915560048201819055600582018190556006820155600701611832565b50905600a165627a7a72305820e0598a17e3bd6cac1a1b55f1d71c1feb1699bed5706e8c7acc69b11fbb8470e80029

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

0000000000000000000000009f0215d233d2fb3aa936ea4874ed733f95ef1dfe

-----Decoded View---------------
Arg [0] : addr (address): 0x9f0215d233d2fB3aA936eA4874Ed733F95ef1dfE

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f0215d233d2fb3aa936ea4874ed733f95ef1dfe


Swarm Source

bzzr://e0598a17e3bd6cac1a1b55f1d71c1feb1699bed5706e8c7acc69b11fbb8470e8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.