ETH Price: $3,497.05 (+1.21%)

Token

Chicken Park Coin (CKN)
 

Overview

Max Total Supply

248,402.825129199699892675 CKN

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.0767251265 CKN

Value
$0.00
0xdb59f29f7242989a3eda271483b89e1f74353ffa
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:
ChickenPark

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-10-05
*/

pragma solidity ^0.4.24;

//    _____ _     _      _                _____           _    
//   / ____| |   (_)    | |              |  __ \         | |   
//  | |    | |__  _  ___| | _____ _ __   | |__) |_ _ _ __| | __
//  | |    | '_ \| |/ __| |/ / _ \ '_ \  |  ___/ _` | '__| |/ /
//  | |____| | | | | (__|   <  __/ | | | | |  | (_| | |  |   < 
//   \_____|_| |_|_|\___|_|\_\___|_| |_| |_|   \__,_|_|  |_|\_\

// ------- What? ------- 
//A home for blockchain games.

// ------- How? ------- 
//Buy CKN Token before playing any games.
//You can buy & sell CKN in this contract at anytime and anywhere.
//As the amount of ETH in the contract increases to 10,000, the dividend will gradually drop to 2%.

//We got 4 phase in the Roadmap, will launch Plasma chain in the phase 2.

// ------- How? ------- 
//10/2018 SIMPLE E-SPORT
//11/2018 SPORT PREDICTION
//02/2019 MOBILE GAME
//06/2019 MMORPG

// ------- Who? ------- 
//Only 1/10 smarter than vitalik.
//[email protected]
//Sometime we think plama is a Pseudo topic, but it's a only way to speed up the TPS.
//And Everybody will also trust the Node & Result.

library SafeMath {
    
    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) 
        internal 
        pure 
        returns (uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        require(c / a == b, "SafeMath mul failed");
        return c;
    }

    /**
    * @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) 
    {
        require(b <= a, "SafeMath sub failed");
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b)
        internal
        pure
        returns (uint256 c) 
    {
        c = a + b;
        require(c >= a, "SafeMath add failed");
        return c;
    }
    
    /**
     * @dev gives square root of given x.
     */
    function sqrt(uint256 x)
        internal
        pure
        returns (uint256 y) 
    {
        uint256 z = ((add(x,1)) / 2);
        y = x;
        while (z < y) 
        {
            y = z;
            z = ((add((x / z),z)) / 2);
        }
    }
    
    /**
     * @dev gives square. multiplies x by x
     */
    function sq(uint256 x)
        internal
        pure
        returns (uint256)
    {
        return (mul(x,x));
    }
    
    /**
     * @dev x to the power of y 
     */
    function pwr(uint256 x, uint256 y)
        internal 
        pure 
        returns (uint256)
    {
        if (x==0)
            return (0);
        else if (y==0)
            return (1);
        else 
        {
            uint256 z = x;
            for (uint256 i=1; i < y; i++)
                z = mul(z,x);
            return (z);
        }
    }   
}

contract ERC223ReceivingContract { 
/**
 * @dev Standard ERC223 function that will handle incoming token transfers.
 *
 * @param _from  Token sender address.
 * @param _value Amount of tokens.
 * @param _data  Transaction metadata.
 */
    function tokenFallback(address _from, uint _value, bytes _data)public;
}

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

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

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}

contract ChickenPark is Owned{

    using SafeMath for *;

    modifier notContract() {
        require (msg.sender == tx.origin);
        _;
    }
    
    event Transfer(
        address indexed from,
        address indexed to,
        uint tokens
    );

    event Approval(
        address indexed tokenOwner,
        address indexed spender,
        uint tokens
    );

    event CKNPrice(
        address indexed who,
        uint prePrice,
        uint afterPrice,
        uint ethValue,
        uint token,
        uint timestamp,
        string action
    );
    
    event Withdraw(
        address indexed who,
        uint dividents
    );

    /*=====================================
    =            CONSTANTS                =
    =====================================*/
    uint8 constant public                decimals              = 18;
    uint constant internal               tokenPriceInitial_    = 0.00001 ether;
    uint constant internal               magnitude             = 2**64;

    /*================================
    =          CONFIGURABLES         =
    ================================*/
    string public                        name               = "Chicken Park Coin";
    string public                        symbol             = "CKN";

    /*================================
    =            DATASETS            =
    ================================*/

    // Tracks Token
    mapping(address => uint) internal    balances;
    mapping(address => mapping (address => uint))public allowed;

    // Payout tracking
    mapping(address => uint)    public referralBalance_;
    mapping(address => int256)  public payoutsTo_;
    uint256 public profitPerShare_ = 0;
    
    // Token
    uint internal tokenSupply = 0;

    // Sub Contract
    mapping(address => bool)  public gameAddress;
    address public marketAddress;

    /*================================
    =            FUNCTION            =
    ================================*/

    constructor() public {

    }

    function totalSupply() public view returns (uint) {
        return tokenSupply.sub(balances[address(0)]);
    }

    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`  CKN
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) public view returns (uint balance) {
        return balances[tokenOwner];
    }

    // ------------------------------------------------------------------------
    // Get the referral balance for account `tokenOwner`   ETH
    // ------------------------------------------------------------------------
    function referralBalanceOf(address tokenOwner) public view returns(uint){
        return referralBalance_[tokenOwner];
    }

    function setGameAddrt(address addr_, bool status_) public onlyOwner{
        gameAddress[addr_] = status_;
    }
    
    function setMarketAddr(address addr_) public onlyOwner{
        marketAddress = addr_;
    }

    // ------------------------------------------------------------------------
    // ERC20 Basic Function: Transfer CKN Token
    // ------------------------------------------------------------------------
    function transfer(address to, uint tokens) public returns (bool success) {
        require(balances[msg.sender] >= tokens);

        payoutsTo_[msg.sender] = payoutsTo_[msg.sender] - int(tokens.mul(profitPerShare_)/1e18);
        payoutsTo_[to] = payoutsTo_[to] + int(tokens.mul(profitPerShare_)/1e18);
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);

        emit Transfer(msg.sender, to, tokens);
        return true;
    }

    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }

    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        require(tokens <= balances[from] &&  tokens <= allowed[from][msg.sender]);

        payoutsTo_[from] = payoutsTo_[from] - int(tokens.mul(profitPerShare_)/1e18);
        payoutsTo_[to] = payoutsTo_[to] + int(tokens.mul(profitPerShare_)/1e18);
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(from, to, tokens);
        return true;
    }

    function allowance(address tokenOwner, address spender) public view returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }

    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }

    // ------------------------------------------------------------------------
    // Buy Chicken Park Coin, 1% for me, 1% for chicken market, 19.6 ~ 0% for dividents
    // ------------------------------------------------------------------------
    function buyChickenParkCoin(address referedAddress) notContract() public payable{
        uint fee = msg.value.mul(2)/100;
        owner.transfer(fee/2);

        marketAddress.transfer(fee/2);

        uint realBuy = msg.value.sub(fee).mul((1e20).sub(calculateDivi()))/1e20;
        uint divMoney = msg.value.sub(realBuy).sub(fee);

        if(referedAddress != msg.sender && referedAddress != address(0)){
            uint referralMoney = divMoney/10;
            referralBalance_[referedAddress] = referralBalance_[referedAddress].add(referralMoney);
            divMoney = divMoney.sub(referralMoney);
        }

        uint tokenAdd = getBuy(realBuy);
        uint price1 = getCKNPriceNow();

        tokenSupply = tokenSupply.add(tokenAdd);

        payoutsTo_[msg.sender] += (int256)(profitPerShare_.mul(tokenAdd)/1e18);
        profitPerShare_ = profitPerShare_.add(divMoney.mul(1e18)/totalSupply());
        balances[msg.sender] = balances[msg.sender].add(tokenAdd);

        uint price2 = getCKNPriceNow();
        emit Transfer(address(0x0), msg.sender, tokenAdd);
        emit CKNPrice(msg.sender,price1,price2,msg.value,tokenAdd,now,"BUY");
    } 

    // ------------------------------------------------------------------------
    // Sell Chicken Park Coin, 1% for me, 1% for chicken market, 19.6 ~ 0% for dividents
    // ------------------------------------------------------------------------
    function sellChickenParkCoin(uint tokenAnount) notContract() public {
        uint tokenSub = tokenAnount;
        uint sellEther = getSell(tokenSub);
        uint price1 = getCKNPriceNow();

        payoutsTo_[msg.sender] = payoutsTo_[msg.sender] - int(tokenSub.mul(profitPerShare_)/1e18);
        tokenSupply = tokenSupply.sub(tokenSub);

        balances[msg.sender] = balances[msg.sender].sub(tokenSub);
        uint diviTo = sellEther.mul(calculateDivi())/1e20;

        if(totalSupply()>0){
            profitPerShare_ = profitPerShare_.add(diviTo.mul(1e18)/totalSupply());
        }else{
            owner.transfer(diviTo); 
        }

        owner.transfer(sellEther.mul(1)/100);
        marketAddress.transfer(sellEther.mul(1)/100);

        msg.sender.transfer((sellEther.mul(98)/(100)).sub(diviTo));

        uint price2 = getCKNPriceNow();
        emit Transfer(msg.sender, address(0x0), tokenSub);
        emit CKNPrice(msg.sender,price1,price2,sellEther,tokenSub,now,"SELL");
    }

    // ------------------------------------------------------------------------
    // Withdraw your ETH dividents from Referral & CKN Dividents
    // ------------------------------------------------------------------------
    function withdraw() public {
        require(msg.sender == tx.origin || msg.sender == marketAddress || gameAddress[msg.sender]);
        require(myDividends(true)>0);

        uint dividents_ = uint(getDividents()).add(referralBalance_[msg.sender]);
        payoutsTo_[msg.sender] = payoutsTo_[msg.sender] + int(getDividents());
        referralBalance_[msg.sender] = 0;

        msg.sender.transfer(dividents_);
        emit Withdraw(msg.sender, dividents_);
    }
    
    // ------------------------------------------------------------------------
    // ERC223 Transfer CKN Token With Data Function
    // ------------------------------------------------------------------------
    function transferTo (address _from, address _to, uint _amountOfTokens, bytes _data) public {
        if (_from != msg.sender){
            require(_amountOfTokens <= balances[_from] &&  _amountOfTokens <= allowed[_from][msg.sender]);
        }
        else{
            require(_amountOfTokens <= balances[_from]);
        }

        transferFromInternal(_from, _to, _amountOfTokens, _data);
    }

    function transferFromInternal(address _from, address _toAddress, uint _amountOfTokens, bytes _data) internal
    {
        require(_toAddress != address(0x0));
        address _customerAddress     = _from;
        
        if (_customerAddress != msg.sender){
        // Update the allowed balance.
        // Don't update this if we are transferring our own tokens (via transfer or buyAndTransfer)
            allowed[_customerAddress][msg.sender] = allowed[_customerAddress][msg.sender].sub(_amountOfTokens);
        }

        // Exchange tokens
        balances[_customerAddress]    = balances[_customerAddress].sub(_amountOfTokens);
        balances[_toAddress]          = balances[_toAddress].add(_amountOfTokens);

        // Update dividend trackers
        payoutsTo_[_customerAddress] -= (int256)(profitPerShare_.mul(_amountOfTokens)/1e18);
        payoutsTo_[_toAddress]       +=  (int256)(profitPerShare_.mul(_amountOfTokens)/1e18);

        uint length;

        assembly {
            length := extcodesize(_toAddress)
        }

        if (length > 0){
        // its a contract
        // note: at ethereum update ALL addresses are contracts
            ERC223ReceivingContract receiver = ERC223ReceivingContract(_toAddress);
            receiver.tokenFallback(_from, _amountOfTokens, _data);
        }

        // Fire logging event.
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
    }

    function getCKNPriceNow() public view returns(uint){
        return (tokenPriceInitial_.mul(1e18+totalSupply()/100000000))/(1e18);
    }

    function getBuy(uint eth) public view returns(uint){
        return ((((1e36).add(totalSupply().sq()/1e16).add(totalSupply().mul(2).mul(1e10)).add(eth.mul(1e28).mul(2)/tokenPriceInitial_)).sqrt()).sub(1e18).sub(totalSupply()/1e8)).mul(1e8);
    }

    function calculateDivi()public view returns(uint){
        if(totalSupply() < 4e26){
            uint diviRate = (20e18).sub(totalSupply().mul(5)/1e8);
            return diviRate;
        } else {
            return 0;
        }
    }

    function getSell(uint token) public view returns(uint){
        return tokenPriceInitial_.mul((1e18).add((totalSupply().sub(token/2))/100000000)).mul(token)/(1e36);
    }

    function myDividends(bool _includeReferralBonus) public view returns(uint256)
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? getDividents().add(referralBalance_[_customerAddress]) : getDividents() ;
    }

    function getDividents() public view returns(uint){
        require(int((balances[msg.sender].mul(profitPerShare_)/1e18))-(payoutsTo_[msg.sender])>=0);
        return uint(int((balances[msg.sender].mul(profitPerShare_)/1e18))-(payoutsTo_[msg.sender]));
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amountOfTokens","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"referedAddress","type":"address"}],"name":"buyChickenParkCoin","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"referralBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr_","type":"address"}],"name":"setMarketAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"gameAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"profitPerShare_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAnount","type":"uint256"}],"name":"sellChickenParkCoin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCKNPriceNow","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":true,"inputs":[],"name":"marketAddress","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":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralBalance_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"calculateDivi","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"uint256"}],"name":"getSell","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr_","type":"address"},{"name":"status_","type":"bool"}],"name":"setGameAddrt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getDividents","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":"eth","type":"uint256"}],"name":"getBuy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":false,"name":"prePrice","type":"uint256"},{"indexed":false,"name":"afterPrice","type":"uint256"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"token","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"action","type":"string"}],"name":"CKNPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":false,"name":"dividents","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60c0604052601160808190527f436869636b656e205061726b20436f696e00000000000000000000000000000060a0908152620000409160029190620000b6565b506040805180820190915260038082527f434b4e00000000000000000000000000000000000000000000000000000000006020909201918252620000859181620000b6565b50600060085560006009553480156200009d57600080fd5b5060008054600160a060020a031916331790556200015b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000f957805160ff191683800117855562000129565b8280016001018555821562000129579182015b82811115620001295782518255916020019190600101906200010c565b50620001379291506200013b565b5090565b6200015891905b8082111562000137576000815560010162000142565b90565b611eb6806200016b6000396000f3006080604052600436106101a05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101a5578063095ea7b31461022f57806318160ddd1461026757806319fb361f1461028e57806323b872dd146102ff578063313ce567146103295780633c774dbb146103545780633ccfd60b14610368578063465346491461037d57806351d318221461039e5780635c658165146103bf578063688abbf7146103e6578063691ec7101461040057806370a0823114610421578063710b318b1461044257806379ba5097146104575780637a9df8c01461046c578063843a7f74146104845780638da5cb5b1461049957806395623641146104ca57806395d89b41146104df578063a9059cbb146104f4578063c664f7f114610518578063cae9ca5114610539578063d1f2f971146105a2578063d4ee1d90146105b7578063dd62ed3e146105cc578063dde4a70b146105f3578063e1456cb41461060b578063ec68197b1461062c578063f28d253d14610652578063f2fde38b14610667578063f32a547c14610688575b600080fd5b3480156101b157600080fd5b506101ba6106a0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f45781810151838201526020016101dc565b50505050905090810190601f1680156102215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023b57600080fd5b50610253600160a060020a036004351660243561072b565b604080519115158252519081900360200190f35b34801561027357600080fd5b5061027c610792565b60408051918252519081900360200190f35b34801561029a57600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526102fd94600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506107d59650505050505050565b005b34801561030b57600080fd5b50610253600160a060020a0360043581169060243516604435610877565b34801561033557600080fd5b5061033e610a4c565b6040805160ff9092168252519081900360200190f35b6102fd600160a060020a0360043516610a51565b34801561037457600080fd5b506102fd610d92565b34801561038957600080fd5b5061027c600160a060020a0360043516610ea2565b3480156103aa57600080fd5b506102fd600160a060020a0360043516610ebd565b3480156103cb57600080fd5b5061027c600160a060020a0360043581169060243516610f03565b3480156103f257600080fd5b5061027c6004351515610f20565b34801561040c57600080fd5b50610253600160a060020a0360043516610f63565b34801561042d57600080fd5b5061027c600160a060020a0360043516610f78565b34801561044e57600080fd5b5061027c610f93565b34801561046357600080fd5b506102fd610f99565b34801561047857600080fd5b506102fd600435611021565b34801561049057600080fd5b5061027c611340565b3480156104a557600080fd5b506104ae611392565b60408051600160a060020a039092168252519081900360200190f35b3480156104d657600080fd5b506104ae6113a1565b3480156104eb57600080fd5b506101ba6113b0565b34801561050057600080fd5b50610253600160a060020a036004351660243561140b565b34801561052457600080fd5b5061027c600160a060020a0360043516611548565b34801561054557600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610253948235600160a060020a031694602480359536959460649492019190819084018382808284375094975061155a9650505050505050565b3480156105ae57600080fd5b5061027c6116bb565b3480156105c357600080fd5b506104ae611722565b3480156105d857600080fd5b5061027c600160a060020a0360043581169060243516611731565b3480156105ff57600080fd5b5061027c60043561175c565b34801561061757600080fd5b5061027c600160a060020a03600435166117cf565b34801561063857600080fd5b506102fd600160a060020a036004351660243515156117e1565b34801561065e57600080fd5b5061027c611823565b34801561067357600080fd5b506102fd600160a060020a03600435166118bb565b34801561069457600080fd5b5061027c600435611901565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107235780601f106106f857610100808354040283529160200191610723565b820191906000526020600020905b81548152906001019060200180831161070657829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600080805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec546009546107d09163ffffffff6119c716565b905090565b600160a060020a038416331461084057600160a060020a03841660009081526004602052604090205482118015906108305750600160a060020a03841660009081526005602090815260408083203384529091529020548211155b151561083b57600080fd5b610865565b600160a060020a03841660009081526004602052604090205482111561086557600080fd5b61087184848484611a3e565b50505050565b600160a060020a03831660009081526004602052604081205482118015906108c25750600160a060020a03841660009081526005602090815260408083203384529091529020548211155b15156108cd57600080fd5b670de0b6b3a76400006108eb60085484611d0b90919063ffffffff16565b8115156108f457fe5b600160a060020a03861660009081526007602052604090208054929091049091039055600854670de0b6b3a76400009061093590849063ffffffff611d0b16565b81151561093e57fe5b600160a060020a03858116600090815260076020908152604080832080549690950490950190935590871681526004909152205461097c90836119c7565b600160a060020a03851660009081526004602090815260408083209390935560058152828220338352905220546109b9908363ffffffff6119c716565b600160a060020a0380861660009081526005602090815260408083203384528252808320949094559186168152600490915220546109fd908363ffffffff611d9916565b600160a060020a038085166000818152600460209081526040918290209490945580518681529051919392881692600080516020611e6b83398151915292918290030190a35060019392505050565b601281565b6000808080808080333214610a6557600080fd5b6064610a7834600263ffffffff611d0b16565b811515610a8157fe5b6000549190049750600160a060020a03166108fc600289049081150290604051600060405180830381858888f19350505050158015610ac4573d6000803e3d6000fd5b50600b54604051600160a060020a03909116906002890480156108fc02916000818181858888f19350505050158015610b01573d6000803e3d6000fd5b5068056bc75e2d63100000610b4c610b30610b1a6116bb565b68056bc75e2d631000009063ffffffff6119c716565b610b40348b63ffffffff6119c716565b9063ffffffff611d0b16565b811515610b5557fe5b049550610b7887610b6c348963ffffffff6119c716565b9063ffffffff6119c716565b9450600160a060020a0388163314801590610b9b5750600160a060020a03881615155b15610bf557600160a060020a038816600090815260066020526040902054600a86049450610bc99085611d99565b600160a060020a038916600090815260066020526040902055610bf2858563ffffffff6119c716565b94505b610bfe86611901565b9250610c08611340565b600954909250610c1e908463ffffffff611d9916565b600955600854670de0b6b3a764000090610c3e908563ffffffff611d0b16565b811515610c4757fe5b3360009081526007602052604090208054929091049091019055610c9e610c6c610792565b610c8487670de0b6b3a764000063ffffffff611d0b16565b811515610c8d57fe5b60085491900463ffffffff611d9916565b60085533600090815260046020526040902054610cc1908463ffffffff611d9916565b33600090815260046020526040902055610cd9611340565b6040805185815290519192503391600091600080516020611e6b833981519152919081900360200190a3604080518381526020810183905234818301526060810185905242608082015260c060a082018190526003908201527f425559000000000000000000000000000000000000000000000000000000000060e0820152905133917fc21fe061f20452b681f10868698c3166931a5e72af15bfde8f6d9cb855670d7691908190036101000190a25050505050505050565b600033321480610dac5750600b54600160a060020a031633145b80610dc65750336000908152600a602052604090205460ff165b1515610dd157600080fd5b6000610ddd6001610f20565b11610de757600080fd5b33600090815260066020526040902054610e0f90610e03611823565b9063ffffffff611d9916565b9050610e19611823565b336000818152600760209081526040808320805495909501909455600690528281208190559151909183156108fc02918491818181858888f19350505050158015610e68573d6000803e3d6000fd5b5060408051828152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a03163314610ed457600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600560209081526000928352604080842090915290825290205481565b60003382610f3557610f30611823565b610f5a565b600160a060020a038116600090815260066020526040902054610f5a90610e03611823565b91505b50919050565b600a6020526000908152604090205460ff1681565b600160a060020a031660009081526004602052604090205490565b60085481565b600154600160a060020a03163314610fb057600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60008080808033321461103357600080fd5b85945061103f8561175c565b9350611049611340565b9250670de0b6b3a764000061106960085487611d0b90919063ffffffff16565b81151561107257fe5b336000908152600760205260409020805492909104909103905560095461109f908663ffffffff6119c716565b600955336000908152600460205260409020546110c2908663ffffffff6119c716565b3360009081526004602052604090205568056bc75e2d631000006110f46110e76116bb565b869063ffffffff611d0b16565b8115156110fd57fe5b049150600061110a610792565b111561113b5761113361111b610792565b610c8484670de0b6b3a764000063ffffffff611d0b16565b600855611176565b60008054604051600160a060020a039091169184156108fc02918591818181858888f19350505050158015611174573d6000803e3d6000fd5b505b600054600160a060020a03166108fc606461119887600163ffffffff611d0b16565b8115156111a157fe5b049081150290604051600060405180830381858888f193505050501580156111cd573d6000803e3d6000fd5b50600b54600160a060020a03166108fc60646111f087600163ffffffff611d0b16565b8115156111f957fe5b049081150290604051600060405180830381858888f19350505050158015611225573d6000803e3d6000fd5b50336108fc61125784606461124189606263ffffffff611d0b16565b81151561124a57fe5b049063ffffffff6119c716565b6040518115909202916000818181858888f1935050505015801561127f573d6000803e3d6000fd5b50611288611340565b6040805187815290519192506000913391600080516020611e6b833981519152919081900360200190a360408051848152602081018390528082018690526060810187905242608082015260c060a082018190526004908201527f53454c4c0000000000000000000000000000000000000000000000000000000060e0820152905133917fc21fe061f20452b681f10868698c3166931a5e72af15bfde8f6d9cb855670d7691908190036101000190a2505050505050565b6000670de0b6b3a76400006113836305f5e10061135b610792565b81151561136457fe5b6509184e72a00091670de0b6b3a764000091040163ffffffff611d0b16565b81151561138c57fe5b04905090565b600054600160a060020a031681565b600b54600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107235780601f106106f857610100808354040283529160200191610723565b3360009081526004602052604081205482111561142757600080fd5b670de0b6b3a764000061144560085484611d0b90919063ffffffff16565b81151561144e57fe5b3360009081526007602052604090208054929091049091039055600854670de0b6b3a76400009061148690849063ffffffff611d0b16565b81151561148f57fe5b600160a060020a0385166000908152600760209081526040808320805495909404909401909255338152600490915220546114ca90836119c7565b3360009081526004602052604080822092909255600160a060020a038516815220546114fc908363ffffffff611d9916565b600160a060020a038416600081815260046020908152604091829020939093558051858152905191923392600080516020611e6b8339815191529281900390910190a350600192915050565b60066020526000908152604090205481565b336000818152600560209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561164a578181015183820152602001611632565b50505050905090810190601f1680156116775780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561169957600080fd5b505af11580156116ad573d6000803e3d6000fd5b506001979650505050505050565b6000806b014adf4b7320334b900000006116d3610792565b10156117195761170f6305f5e1006116ee6005610b40610792565b8115156116f757fe5b6801158e460913d0000091900463ffffffff6119c716565b905080915061171e565b600091505b5090565b600154600160a060020a031681565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b60006ec097ce7bc90715b34b9f10000000006117bf83610b406117ac6305f5e10061178c60028504610b6c610792565b81151561179557fe5b670de0b6b3a764000091900463ffffffff611d9916565b6509184e72a0009063ffffffff611d0b16565b8115156117c857fe5b0492915050565b60076020526000908152604090205481565b600054600160a060020a031633146117f857600080fd5b600160a060020a03919091166000908152600a60205260409020805460ff1916911515919091179055565b336000908152600760209081526040808320546008546004909352908320548392670de0b6b3a76400009161185d9163ffffffff611d0b16565b81151561186657fe5b0403121561187357600080fd5b336000908152600760209081526040808320546008546004909352922054670de0b6b3a7640000916118ab919063ffffffff611d0b16565b8115156118b457fe5b0403905090565b600054600160a060020a031633146118d257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061078c6305f5e100610b406305f5e10061191b610792565b81151561192457fe5b04610b6c670de0b6b3a7640000816119c26509184e72a00061195d6002610b408d6b204fce5e3e2502611000000063ffffffff611d0b16565b81151561196657fe5b04610e036119806402540be400610b406002610b40610792565b610e03662386f26fc1000061199b611996610792565b611e0b565b8115156119a457fe5b6ec097ce7bc90715b34b9f100000000091900463ffffffff611d9916565b611e17565b600082821115611a3857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820737562206661696c656400000000000000000000000000604482015290519081900360640190fd5b50900390565b60008080600160a060020a0386161515611a5757600080fd5b869250600160a060020a0383163314611ac357600160a060020a0383166000908152600560209081526040808320338452909152902054611a9e908663ffffffff6119c716565b600160a060020a03841660009081526005602090815260408083203384529091529020555b600160a060020a038316600090815260046020526040902054611aec908663ffffffff6119c716565b600160a060020a038085166000908152600460205260408082209390935590881681522054611b21908663ffffffff611d9916565b600160a060020a038716600090815260046020526040902055600854670de0b6b3a764000090611b57908763ffffffff611d0b16565b811515611b6057fe5b600160a060020a03851660009081526007602052604090208054929091049091039055600854670de0b6b3a764000090611ba0908763ffffffff611d0b16565b811515611ba957fe5b600160a060020a03881660009081526007602052604081208054939092049092019055863b9250821115611cc957506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483019081526024830187905260606044840190815286516064850152865189949385169363c0ee0b8a938c938b938b9360840190602085019080838360005b83811015611c62578181015183820152602001611c4a565b50505050905090810190601f168015611c8f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b505050505b85600160a060020a031683600160a060020a0316600080516020611e6b833981519152876040518082815260200191505060405180910390a350505050505050565b6000821515611d1c5750600061078c565b50818102818382811515611d2c57fe5b041461078c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d617468206d756c206661696c656400000000000000000000000000604482015290519081900360640190fd5b8181018281101561078c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b600061078c8283611d0b565b6000806002611e27846001611d99565b811515611e3057fe5b0490508291505b81811015610f5d578091506002611e598285811515611e5257fe5b0483611d99565b811515611e6257fe5b049050611e375600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582091162b9c51a4e667bc73637067a2bfa5ad4756ac257bebe13ac0312fe0bb5d460029

Deployed Bytecode

0x6080604052600436106101a05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101a5578063095ea7b31461022f57806318160ddd1461026757806319fb361f1461028e57806323b872dd146102ff578063313ce567146103295780633c774dbb146103545780633ccfd60b14610368578063465346491461037d57806351d318221461039e5780635c658165146103bf578063688abbf7146103e6578063691ec7101461040057806370a0823114610421578063710b318b1461044257806379ba5097146104575780637a9df8c01461046c578063843a7f74146104845780638da5cb5b1461049957806395623641146104ca57806395d89b41146104df578063a9059cbb146104f4578063c664f7f114610518578063cae9ca5114610539578063d1f2f971146105a2578063d4ee1d90146105b7578063dd62ed3e146105cc578063dde4a70b146105f3578063e1456cb41461060b578063ec68197b1461062c578063f28d253d14610652578063f2fde38b14610667578063f32a547c14610688575b600080fd5b3480156101b157600080fd5b506101ba6106a0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f45781810151838201526020016101dc565b50505050905090810190601f1680156102215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023b57600080fd5b50610253600160a060020a036004351660243561072b565b604080519115158252519081900360200190f35b34801561027357600080fd5b5061027c610792565b60408051918252519081900360200190f35b34801561029a57600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526102fd94600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506107d59650505050505050565b005b34801561030b57600080fd5b50610253600160a060020a0360043581169060243516604435610877565b34801561033557600080fd5b5061033e610a4c565b6040805160ff9092168252519081900360200190f35b6102fd600160a060020a0360043516610a51565b34801561037457600080fd5b506102fd610d92565b34801561038957600080fd5b5061027c600160a060020a0360043516610ea2565b3480156103aa57600080fd5b506102fd600160a060020a0360043516610ebd565b3480156103cb57600080fd5b5061027c600160a060020a0360043581169060243516610f03565b3480156103f257600080fd5b5061027c6004351515610f20565b34801561040c57600080fd5b50610253600160a060020a0360043516610f63565b34801561042d57600080fd5b5061027c600160a060020a0360043516610f78565b34801561044e57600080fd5b5061027c610f93565b34801561046357600080fd5b506102fd610f99565b34801561047857600080fd5b506102fd600435611021565b34801561049057600080fd5b5061027c611340565b3480156104a557600080fd5b506104ae611392565b60408051600160a060020a039092168252519081900360200190f35b3480156104d657600080fd5b506104ae6113a1565b3480156104eb57600080fd5b506101ba6113b0565b34801561050057600080fd5b50610253600160a060020a036004351660243561140b565b34801561052457600080fd5b5061027c600160a060020a0360043516611548565b34801561054557600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610253948235600160a060020a031694602480359536959460649492019190819084018382808284375094975061155a9650505050505050565b3480156105ae57600080fd5b5061027c6116bb565b3480156105c357600080fd5b506104ae611722565b3480156105d857600080fd5b5061027c600160a060020a0360043581169060243516611731565b3480156105ff57600080fd5b5061027c60043561175c565b34801561061757600080fd5b5061027c600160a060020a03600435166117cf565b34801561063857600080fd5b506102fd600160a060020a036004351660243515156117e1565b34801561065e57600080fd5b5061027c611823565b34801561067357600080fd5b506102fd600160a060020a03600435166118bb565b34801561069457600080fd5b5061027c600435611901565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107235780601f106106f857610100808354040283529160200191610723565b820191906000526020600020905b81548152906001019060200180831161070657829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600080805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec546009546107d09163ffffffff6119c716565b905090565b600160a060020a038416331461084057600160a060020a03841660009081526004602052604090205482118015906108305750600160a060020a03841660009081526005602090815260408083203384529091529020548211155b151561083b57600080fd5b610865565b600160a060020a03841660009081526004602052604090205482111561086557600080fd5b61087184848484611a3e565b50505050565b600160a060020a03831660009081526004602052604081205482118015906108c25750600160a060020a03841660009081526005602090815260408083203384529091529020548211155b15156108cd57600080fd5b670de0b6b3a76400006108eb60085484611d0b90919063ffffffff16565b8115156108f457fe5b600160a060020a03861660009081526007602052604090208054929091049091039055600854670de0b6b3a76400009061093590849063ffffffff611d0b16565b81151561093e57fe5b600160a060020a03858116600090815260076020908152604080832080549690950490950190935590871681526004909152205461097c90836119c7565b600160a060020a03851660009081526004602090815260408083209390935560058152828220338352905220546109b9908363ffffffff6119c716565b600160a060020a0380861660009081526005602090815260408083203384528252808320949094559186168152600490915220546109fd908363ffffffff611d9916565b600160a060020a038085166000818152600460209081526040918290209490945580518681529051919392881692600080516020611e6b83398151915292918290030190a35060019392505050565b601281565b6000808080808080333214610a6557600080fd5b6064610a7834600263ffffffff611d0b16565b811515610a8157fe5b6000549190049750600160a060020a03166108fc600289049081150290604051600060405180830381858888f19350505050158015610ac4573d6000803e3d6000fd5b50600b54604051600160a060020a03909116906002890480156108fc02916000818181858888f19350505050158015610b01573d6000803e3d6000fd5b5068056bc75e2d63100000610b4c610b30610b1a6116bb565b68056bc75e2d631000009063ffffffff6119c716565b610b40348b63ffffffff6119c716565b9063ffffffff611d0b16565b811515610b5557fe5b049550610b7887610b6c348963ffffffff6119c716565b9063ffffffff6119c716565b9450600160a060020a0388163314801590610b9b5750600160a060020a03881615155b15610bf557600160a060020a038816600090815260066020526040902054600a86049450610bc99085611d99565b600160a060020a038916600090815260066020526040902055610bf2858563ffffffff6119c716565b94505b610bfe86611901565b9250610c08611340565b600954909250610c1e908463ffffffff611d9916565b600955600854670de0b6b3a764000090610c3e908563ffffffff611d0b16565b811515610c4757fe5b3360009081526007602052604090208054929091049091019055610c9e610c6c610792565b610c8487670de0b6b3a764000063ffffffff611d0b16565b811515610c8d57fe5b60085491900463ffffffff611d9916565b60085533600090815260046020526040902054610cc1908463ffffffff611d9916565b33600090815260046020526040902055610cd9611340565b6040805185815290519192503391600091600080516020611e6b833981519152919081900360200190a3604080518381526020810183905234818301526060810185905242608082015260c060a082018190526003908201527f425559000000000000000000000000000000000000000000000000000000000060e0820152905133917fc21fe061f20452b681f10868698c3166931a5e72af15bfde8f6d9cb855670d7691908190036101000190a25050505050505050565b600033321480610dac5750600b54600160a060020a031633145b80610dc65750336000908152600a602052604090205460ff165b1515610dd157600080fd5b6000610ddd6001610f20565b11610de757600080fd5b33600090815260066020526040902054610e0f90610e03611823565b9063ffffffff611d9916565b9050610e19611823565b336000818152600760209081526040808320805495909501909455600690528281208190559151909183156108fc02918491818181858888f19350505050158015610e68573d6000803e3d6000fd5b5060408051828152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a03163314610ed457600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600560209081526000928352604080842090915290825290205481565b60003382610f3557610f30611823565b610f5a565b600160a060020a038116600090815260066020526040902054610f5a90610e03611823565b91505b50919050565b600a6020526000908152604090205460ff1681565b600160a060020a031660009081526004602052604090205490565b60085481565b600154600160a060020a03163314610fb057600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60008080808033321461103357600080fd5b85945061103f8561175c565b9350611049611340565b9250670de0b6b3a764000061106960085487611d0b90919063ffffffff16565b81151561107257fe5b336000908152600760205260409020805492909104909103905560095461109f908663ffffffff6119c716565b600955336000908152600460205260409020546110c2908663ffffffff6119c716565b3360009081526004602052604090205568056bc75e2d631000006110f46110e76116bb565b869063ffffffff611d0b16565b8115156110fd57fe5b049150600061110a610792565b111561113b5761113361111b610792565b610c8484670de0b6b3a764000063ffffffff611d0b16565b600855611176565b60008054604051600160a060020a039091169184156108fc02918591818181858888f19350505050158015611174573d6000803e3d6000fd5b505b600054600160a060020a03166108fc606461119887600163ffffffff611d0b16565b8115156111a157fe5b049081150290604051600060405180830381858888f193505050501580156111cd573d6000803e3d6000fd5b50600b54600160a060020a03166108fc60646111f087600163ffffffff611d0b16565b8115156111f957fe5b049081150290604051600060405180830381858888f19350505050158015611225573d6000803e3d6000fd5b50336108fc61125784606461124189606263ffffffff611d0b16565b81151561124a57fe5b049063ffffffff6119c716565b6040518115909202916000818181858888f1935050505015801561127f573d6000803e3d6000fd5b50611288611340565b6040805187815290519192506000913391600080516020611e6b833981519152919081900360200190a360408051848152602081018390528082018690526060810187905242608082015260c060a082018190526004908201527f53454c4c0000000000000000000000000000000000000000000000000000000060e0820152905133917fc21fe061f20452b681f10868698c3166931a5e72af15bfde8f6d9cb855670d7691908190036101000190a2505050505050565b6000670de0b6b3a76400006113836305f5e10061135b610792565b81151561136457fe5b6509184e72a00091670de0b6b3a764000091040163ffffffff611d0b16565b81151561138c57fe5b04905090565b600054600160a060020a031681565b600b54600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107235780601f106106f857610100808354040283529160200191610723565b3360009081526004602052604081205482111561142757600080fd5b670de0b6b3a764000061144560085484611d0b90919063ffffffff16565b81151561144e57fe5b3360009081526007602052604090208054929091049091039055600854670de0b6b3a76400009061148690849063ffffffff611d0b16565b81151561148f57fe5b600160a060020a0385166000908152600760209081526040808320805495909404909401909255338152600490915220546114ca90836119c7565b3360009081526004602052604080822092909255600160a060020a038516815220546114fc908363ffffffff611d9916565b600160a060020a038416600081815260046020908152604091829020939093558051858152905191923392600080516020611e6b8339815191529281900390910190a350600192915050565b60066020526000908152604090205481565b336000818152600560209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561164a578181015183820152602001611632565b50505050905090810190601f1680156116775780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561169957600080fd5b505af11580156116ad573d6000803e3d6000fd5b506001979650505050505050565b6000806b014adf4b7320334b900000006116d3610792565b10156117195761170f6305f5e1006116ee6005610b40610792565b8115156116f757fe5b6801158e460913d0000091900463ffffffff6119c716565b905080915061171e565b600091505b5090565b600154600160a060020a031681565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b60006ec097ce7bc90715b34b9f10000000006117bf83610b406117ac6305f5e10061178c60028504610b6c610792565b81151561179557fe5b670de0b6b3a764000091900463ffffffff611d9916565b6509184e72a0009063ffffffff611d0b16565b8115156117c857fe5b0492915050565b60076020526000908152604090205481565b600054600160a060020a031633146117f857600080fd5b600160a060020a03919091166000908152600a60205260409020805460ff1916911515919091179055565b336000908152600760209081526040808320546008546004909352908320548392670de0b6b3a76400009161185d9163ffffffff611d0b16565b81151561186657fe5b0403121561187357600080fd5b336000908152600760209081526040808320546008546004909352922054670de0b6b3a7640000916118ab919063ffffffff611d0b16565b8115156118b457fe5b0403905090565b600054600160a060020a031633146118d257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061078c6305f5e100610b406305f5e10061191b610792565b81151561192457fe5b04610b6c670de0b6b3a7640000816119c26509184e72a00061195d6002610b408d6b204fce5e3e2502611000000063ffffffff611d0b16565b81151561196657fe5b04610e036119806402540be400610b406002610b40610792565b610e03662386f26fc1000061199b611996610792565b611e0b565b8115156119a457fe5b6ec097ce7bc90715b34b9f100000000091900463ffffffff611d9916565b611e17565b600082821115611a3857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820737562206661696c656400000000000000000000000000604482015290519081900360640190fd5b50900390565b60008080600160a060020a0386161515611a5757600080fd5b869250600160a060020a0383163314611ac357600160a060020a0383166000908152600560209081526040808320338452909152902054611a9e908663ffffffff6119c716565b600160a060020a03841660009081526005602090815260408083203384529091529020555b600160a060020a038316600090815260046020526040902054611aec908663ffffffff6119c716565b600160a060020a038085166000908152600460205260408082209390935590881681522054611b21908663ffffffff611d9916565b600160a060020a038716600090815260046020526040902055600854670de0b6b3a764000090611b57908763ffffffff611d0b16565b811515611b6057fe5b600160a060020a03851660009081526007602052604090208054929091049091039055600854670de0b6b3a764000090611ba0908763ffffffff611d0b16565b811515611ba957fe5b600160a060020a03881660009081526007602052604081208054939092049092019055863b9250821115611cc957506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483019081526024830187905260606044840190815286516064850152865189949385169363c0ee0b8a938c938b938b9360840190602085019080838360005b83811015611c62578181015183820152602001611c4a565b50505050905090810190601f168015611c8f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b505050505b85600160a060020a031683600160a060020a0316600080516020611e6b833981519152876040518082815260200191505060405180910390a350505050505050565b6000821515611d1c5750600061078c565b50818102818382811515611d2c57fe5b041461078c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d617468206d756c206661696c656400000000000000000000000000604482015290519081900360640190fd5b8181018281101561078c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b600061078c8283611d0b565b6000806002611e27846001611d99565b811515611e3057fe5b0490508291505b81811015610f5d578091506002611e598285811515611e5257fe5b0483611d99565b811515611e6257fe5b049050611e375600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582091162b9c51a4e667bc73637067a2bfa5ad4756ac257bebe13ac0312fe0bb5d460029

Swarm Source

bzzr://91162b9c51a4e667bc73637067a2bfa5ad4756ac257bebe13ac0312fe0bb5d46
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.