ETH Price: $2,534.82 (-3.92%)

Token

Copyright Protection System (CPS)
 

Overview

Max Total Supply

32,000,000 CPS

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 3 Decimals)

Balance
5 CPS

Value
$0.00
0xf2fcA6600baBF47a472dd25112565249Ae44E2b2
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Blockchain-based platform designed to detect counterfeiting and infringement of intellectual property rights, created on the Ethereum smart contract platform.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CPS

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-31
*/

pragma solidity ^0.4.24;

/*
 * @title  Copyright Protection System (CPS)
 */
library SafeMath {


    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }


    function div(uint256 a, uint256 b) internal pure returns (uint256) {

        return a / b;
    }

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


    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}

contract ForeignToken {
    function balanceOf(address _owner) constant public returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
}

contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address who) public constant returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public constant returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract CPS is ERC20 {
    
    using SafeMath for uint256;
    address owner = msg.sender;

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
 

    string public constant name = "Copyright Protection System";
    string public constant symbol = "CPS";
    uint public constant decimals = 3;

    
    uint256 public totalSupply = 32000000e3;
    uint256 public totalDistributed;
    uint256 public constant requestMinimum = 1 ether / 100; // 0.01 Ether
    uint256 public CPSPerEth = 2500e3;
    
    


    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    
    event Distr(address indexed to, uint256 amount);
    event DistrFinished();
    


    event CPSPerEthUpdated(uint _CPSPerEth);
    
    event Burn(address indexed burner, uint256 value);
    
    event Add(uint256 value);

    bool public distributionFinished = false;
    
    modifier canDistr() {
        require(!distributionFinished);
        _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    
    function transferOwnership(address newOwner) onlyOwner public {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

    function finishDistribution() onlyOwner canDistr public returns (bool) {
        distributionFinished = true;
        emit DistrFinished();
        return true;
    }
    
    function distr(address _to, uint256 _amount) canDistr private returns (bool) {
        totalDistributed = totalDistributed.add(_amount);        
        balances[_to] = balances[_to].add(_amount);
        emit Distr(_to, _amount);
        emit Transfer(address(0), _to, _amount);

        return true;
    }
    
    function Distribute(address _participant, uint _amount) onlyOwner internal {

        require( _amount > 0 );      
        require( totalDistributed < totalSupply );
        balances[_participant] = balances[_participant].add(_amount);
        totalDistributed = totalDistributed.add(_amount);

        if (totalDistributed >= totalSupply) {
            distributionFinished = true;
        }

       
        emit Transfer(address(0), _participant, _amount);
    }
    
    function SendCPSTokens(address _participant, uint _amount) onlyOwner external {        
        Distribute(_participant, _amount);
    }

    function SendCPSTokensMultiple(address[] _addresses, uint _amount) onlyOwner external {        
        for (uint i = 0; i < _addresses.length; i++) Distribute(_addresses[i], _amount);
    }

    function updateCPSPerEth(uint _CPSPerEth) public onlyOwner {        
        CPSPerEth = _CPSPerEth;
        emit CPSPerEthUpdated(_CPSPerEth);
    }
           
    function () external payable {
        getTokens();
     }

    function getTokens() payable canDistr  public {
        uint256 tokens = 0;
        uint256 bonus = 0;
        uint256 levelbonus = 0;
        uint256 bonuslevel1 = 1 ether / 10;
        uint256 bonuslevel2 = 1 ether ;


        tokens = CPSPerEth.mul(msg.value) / 1 ether;        
        address investor = msg.sender;

        if (msg.value >= requestMinimum) {
            if(msg.value >= bonuslevel1 && msg.value < bonuslevel2){
                levelbonus = tokens * 10 / 100;
            }else if(msg.value >= bonuslevel2){
                levelbonus = tokens * 35 / 100;
            }else{
            levelbonus = 0;
        }

        bonus = tokens + levelbonus;
		
		distr(investor, bonus);
		owner.transfer(msg.value);
         }else{
            require( msg.value >= requestMinimum );
        }

        if (totalDistributed >= totalSupply) {
            distributionFinished = true;
        }
        
    }
    
    function balanceOf(address _owner) constant public returns (uint256) {
        return balances[_owner];
    }

    modifier onlyPayloadSize(uint size) {
        assert(msg.data.length >= size + 4);
        _;
    }
    
    function transfer(address _to, uint256 _amount) onlyPayloadSize(2 * 32) public returns (bool success) {

        require(_to != address(0));
        require(_amount <= balances[msg.sender]);
        
        balances[msg.sender] = balances[msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);
        return true;
    }
    
    function transferFrom(address _from, address _to, uint256 _amount) onlyPayloadSize(3 * 32) public returns (bool success) {

        require(_to != address(0));
        require(_amount <= balances[_from]);
        require(_amount <= allowed[_from][msg.sender]);
        
        balances[_from] = balances[_from].sub(_amount);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(_from, _to, _amount);
        return true;
    }
    
    function approve(address _spender, uint256 _value) public returns (bool success) {
        if (_value != 0 && allowed[msg.sender][_spender] != 0) { return false; }
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function allowance(address _owner, address _spender) constant public returns (uint256) {
        return allowed[_owner][_spender];
    }
    
    function getTokenBalance(address tokenAddress, address who) constant public returns (uint){
        ForeignToken t = ForeignToken(tokenAddress);
        uint bal = t.balanceOf(who);
        return bal;
    }
    


    function burn(uint256 _value) onlyOwner public {
        require(_value <= balances[msg.sender]);
        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply = totalSupply.sub(_value);
        totalDistributed = totalDistributed.sub(_value);
        emit Burn(burner, _value);
    }
    
    function add(uint256 _value) onlyOwner public {
        uint256 counter = totalSupply.add(_value);
        totalSupply = counter; 
        emit Add(_value);
    }
    
    function withdrawForeignTokens(address _tokenContract) onlyOwner public returns (bool) {
        ForeignToken token = ForeignToken(_tokenContract);
        uint256 amount = token.balanceOf(address(this));
        return token.transfer(owner, amount);
    }
}

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":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"add","outputs":[],"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":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requestMinimum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CPSPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"SendCPSTokensMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishDistribution","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"},{"name":"_amount","type":"uint256"}],"name":"SendCPSTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"distributionFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"who","type":"address"}],"name":"getTokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"withdrawForeignTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDistributed","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":false,"inputs":[{"name":"_CPSPerEth","type":"uint256"}],"name":"updateCPSPerEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Distr","type":"event"},{"anonymous":false,"inputs":[],"name":"DistrFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_CPSPerEth","type":"uint256"}],"name":"CPSPerEthUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Add","type":"event"}]

608060405260018054600160a060020a03191633179055640773594000600455622625a06006556007805460ff1916905534801561003c57600080fd5b5061106d8061004c6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013c578063095ea7b3146101c65780631003e2d2146101fe57806318160ddd1461021657806323b872dd1461023d578063313ce5671461026757806342966c681461027c57806370a082311461029457806374ff2324146102b55780637f34bd7e146102ca5780638a5391de146102df57806395d89b41146103035780639b1cbccc146103185780639b43acc71461032d578063a9059cbb14610351578063aa6ca80814610132578063c108d54214610375578063c489744b1461038a578063dd62ed3e146103b1578063e58fc54c146103d8578063efca2eed146103f9578063f2fde38b1461040e578063f9fa46811461042f575b61013a610447565b005b34801561014857600080fd5b50610151610574565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018b578181015183820152602001610173565b50505050905090810190601f1680156101b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d257600080fd5b506101ea600160a060020a03600435166024356105ab565b604080519115158252519081900360200190f35b34801561020a57600080fd5b5061013a600435610653565b34801561022257600080fd5b5061022b6106c0565b60408051918252519081900360200190f35b34801561024957600080fd5b506101ea600160a060020a03600435811690602435166044356106c6565b34801561027357600080fd5b5061022b610839565b34801561028857600080fd5b5061013a60043561083e565b3480156102a057600080fd5b5061022b600160a060020a036004351661091d565b3480156102c157600080fd5b5061022b610938565b3480156102d657600080fd5b5061022b610943565b3480156102eb57600080fd5b5061013a602460048035828101929101359035610949565b34801561030f57600080fd5b506101516109a2565b34801561032457600080fd5b506101ea6109d9565b34801561033957600080fd5b5061013a600160a060020a0360043516602435610a3f565b34801561035d57600080fd5b506101ea600160a060020a0360043516602435610a64565b34801561038157600080fd5b506101ea610b43565b34801561039657600080fd5b5061022b600160a060020a0360043581169060243516610b4c565b3480156103bd57600080fd5b5061022b600160a060020a0360043581169060243516610bfd565b3480156103e457600080fd5b506101ea600160a060020a0360043516610c28565b34801561040557600080fd5b5061022b610d7c565b34801561041a57600080fd5b5061013a600160a060020a0360043516610d82565b34801561043b57600080fd5b5061013a600435610dd4565b6007546000908190819081908190819060ff161561046457600080fd5b6006546000965086955085945067016345785d8a00009350670de0b6b3a764000092508290610499903463ffffffff610e2616565b8115156104a257fe5b049550339050662386f26fc10000341061053f578234101580156104c557508134105b156104d9576064600a87025b0493506104f0565b3482116104eb576064602387026104d1565b600093505b83860194506104ff8186610e4f565b50600154604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610539573d6000803e3d6000fd5b50610553565b662386f26fc1000034101561055357600080fd5b6004546005541061056c576007805460ff191660011790555b505050505050565b60408051808201909152601b81527f436f707972696768742050726f74656374696f6e2053797374656d0000000000602082015281565b600081158015906105de5750336000908152600360209081526040808320600160a060020a038716845290915290205415155b156105eb5750600061064d565b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600154600090600160a060020a0316331461066d57600080fd5b600454610680908363ffffffff610f2b16565b60048190556040805184815290519192507f90f1f758f0e2b40929b1fd48df7ebe10afc272a362e1f0d63a90b8b4715d799f919081900360200190a15050565b60045481565b6000606060643610156106d557fe5b600160a060020a03841615156106ea57600080fd5b600160a060020a03851660009081526002602052604090205483111561070f57600080fd5b600160a060020a038516600090815260036020908152604080832033845290915290205483111561073f57600080fd5b600160a060020a038516600090815260026020526040902054610768908463ffffffff610f3816565b600160a060020a03861660009081526002602090815260408083209390935560038152828220338352905220546107a5908463ffffffff610f3816565b600160a060020a0380871660009081526003602090815260408083203384528252808320949094559187168152600290915220546107e9908463ffffffff610f2b16565b600160a060020a03808616600081815260026020908152604091829020949094558051878152905191939289169260008051602061102283398151915292918290030190a3506001949350505050565b600381565b600154600090600160a060020a0316331461085857600080fd5b3360009081526002602052604090205482111561087457600080fd5b5033600081815260026020526040902054610895908363ffffffff610f3816565b600160a060020a0382166000908152600260205260409020556004546108c1908363ffffffff610f3816565b6004556005546108d7908363ffffffff610f3816565b600555604080518381529051600160a060020a038316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600160a060020a031660009081526002602052604090205490565b662386f26fc1000081565b60065481565b600154600090600160a060020a0316331461096357600080fd5b5060005b8281101561099c5761099484848381811061097e57fe5b90506020020135600160a060020a031683610f4a565b600101610967565b50505050565b60408051808201909152600381527f4350530000000000000000000000000000000000000000000000000000000000602082015281565b600154600090600160a060020a031633146109f357600080fd5b60075460ff1615610a0357600080fd5b6007805460ff191660011790556040517f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc90600090a150600190565b600154600160a060020a03163314610a5657600080fd5b610a608282610f4a565b5050565b600060406044361015610a7357fe5b600160a060020a0384161515610a8857600080fd5b33600090815260026020526040902054831115610aa457600080fd5b33600090815260026020526040902054610ac4908463ffffffff610f3816565b3360009081526002602052604080822092909255600160a060020a03861681522054610af6908463ffffffff610f2b16565b600160a060020a0385166000818152600260209081526040918290209390935580518681529051919233926000805160206110228339815191529281900390910190a35060019392505050565b60075460ff1681565b600080600084915081600160a060020a03166370a08231856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610bc857600080fd5b505af1158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b505195945050505050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009081908190600160a060020a03163314610c4657600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610caa57600080fd5b505af1158015610cbe573d6000803e3d6000fd5b505050506040513d6020811015610cd457600080fd5b5051600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506040513d6020811015610d7257600080fd5b5051949350505050565b60055481565b600154600160a060020a03163314610d9957600080fd5b600160a060020a03811615610dd1576001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600154600160a060020a03163314610deb57600080fd5b60068190556040805182815290517f1b3f4127da3ea6792a10e8415464fbfd0cd7849706724a9e4e16d15d3dee299b9181900360200190a150565b6000821515610e375750600061064d565b50818102818382811515610e4757fe5b041461064d57fe5b60075460009060ff1615610e6257600080fd5b600554610e75908363ffffffff610f2b16565b600555600160a060020a038316600090815260026020526040902054610ea1908363ffffffff610f2b16565b600160a060020a038416600081815260026020908152604091829020939093558051858152905191927f8940c4b8e215f8822c5c8f0056c12652c746cbc57eedbd2a440b175971d47a7792918290030190a2604080518381529051600160a060020a038516916000916000805160206110228339815191529181900360200190a350600192915050565b8181018281101561064d57fe5b600082821115610f4457fe5b50900390565b600154600160a060020a03163314610f6157600080fd5b60008111610f6e57600080fd5b60045460055410610f7e57600080fd5b600160a060020a038216600090815260026020526040902054610fa7908263ffffffff610f2b16565b600160a060020a038316600090815260026020526040902055600554610fd3908263ffffffff610f2b16565b600581905560045411610fee576007805460ff191660011790555b604080518281529051600160a060020a038416916000916000805160206110228339815191529181900360200190a350505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c401ab23df0163bd56be31be76cefec336e86efeafcc275ca50206bb6049b40b0029

Deployed Bytecode

0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013c578063095ea7b3146101c65780631003e2d2146101fe57806318160ddd1461021657806323b872dd1461023d578063313ce5671461026757806342966c681461027c57806370a082311461029457806374ff2324146102b55780637f34bd7e146102ca5780638a5391de146102df57806395d89b41146103035780639b1cbccc146103185780639b43acc71461032d578063a9059cbb14610351578063aa6ca80814610132578063c108d54214610375578063c489744b1461038a578063dd62ed3e146103b1578063e58fc54c146103d8578063efca2eed146103f9578063f2fde38b1461040e578063f9fa46811461042f575b61013a610447565b005b34801561014857600080fd5b50610151610574565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018b578181015183820152602001610173565b50505050905090810190601f1680156101b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d257600080fd5b506101ea600160a060020a03600435166024356105ab565b604080519115158252519081900360200190f35b34801561020a57600080fd5b5061013a600435610653565b34801561022257600080fd5b5061022b6106c0565b60408051918252519081900360200190f35b34801561024957600080fd5b506101ea600160a060020a03600435811690602435166044356106c6565b34801561027357600080fd5b5061022b610839565b34801561028857600080fd5b5061013a60043561083e565b3480156102a057600080fd5b5061022b600160a060020a036004351661091d565b3480156102c157600080fd5b5061022b610938565b3480156102d657600080fd5b5061022b610943565b3480156102eb57600080fd5b5061013a602460048035828101929101359035610949565b34801561030f57600080fd5b506101516109a2565b34801561032457600080fd5b506101ea6109d9565b34801561033957600080fd5b5061013a600160a060020a0360043516602435610a3f565b34801561035d57600080fd5b506101ea600160a060020a0360043516602435610a64565b34801561038157600080fd5b506101ea610b43565b34801561039657600080fd5b5061022b600160a060020a0360043581169060243516610b4c565b3480156103bd57600080fd5b5061022b600160a060020a0360043581169060243516610bfd565b3480156103e457600080fd5b506101ea600160a060020a0360043516610c28565b34801561040557600080fd5b5061022b610d7c565b34801561041a57600080fd5b5061013a600160a060020a0360043516610d82565b34801561043b57600080fd5b5061013a600435610dd4565b6007546000908190819081908190819060ff161561046457600080fd5b6006546000965086955085945067016345785d8a00009350670de0b6b3a764000092508290610499903463ffffffff610e2616565b8115156104a257fe5b049550339050662386f26fc10000341061053f578234101580156104c557508134105b156104d9576064600a87025b0493506104f0565b3482116104eb576064602387026104d1565b600093505b83860194506104ff8186610e4f565b50600154604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610539573d6000803e3d6000fd5b50610553565b662386f26fc1000034101561055357600080fd5b6004546005541061056c576007805460ff191660011790555b505050505050565b60408051808201909152601b81527f436f707972696768742050726f74656374696f6e2053797374656d0000000000602082015281565b600081158015906105de5750336000908152600360209081526040808320600160a060020a038716845290915290205415155b156105eb5750600061064d565b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600154600090600160a060020a0316331461066d57600080fd5b600454610680908363ffffffff610f2b16565b60048190556040805184815290519192507f90f1f758f0e2b40929b1fd48df7ebe10afc272a362e1f0d63a90b8b4715d799f919081900360200190a15050565b60045481565b6000606060643610156106d557fe5b600160a060020a03841615156106ea57600080fd5b600160a060020a03851660009081526002602052604090205483111561070f57600080fd5b600160a060020a038516600090815260036020908152604080832033845290915290205483111561073f57600080fd5b600160a060020a038516600090815260026020526040902054610768908463ffffffff610f3816565b600160a060020a03861660009081526002602090815260408083209390935560038152828220338352905220546107a5908463ffffffff610f3816565b600160a060020a0380871660009081526003602090815260408083203384528252808320949094559187168152600290915220546107e9908463ffffffff610f2b16565b600160a060020a03808616600081815260026020908152604091829020949094558051878152905191939289169260008051602061102283398151915292918290030190a3506001949350505050565b600381565b600154600090600160a060020a0316331461085857600080fd5b3360009081526002602052604090205482111561087457600080fd5b5033600081815260026020526040902054610895908363ffffffff610f3816565b600160a060020a0382166000908152600260205260409020556004546108c1908363ffffffff610f3816565b6004556005546108d7908363ffffffff610f3816565b600555604080518381529051600160a060020a038316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600160a060020a031660009081526002602052604090205490565b662386f26fc1000081565b60065481565b600154600090600160a060020a0316331461096357600080fd5b5060005b8281101561099c5761099484848381811061097e57fe5b90506020020135600160a060020a031683610f4a565b600101610967565b50505050565b60408051808201909152600381527f4350530000000000000000000000000000000000000000000000000000000000602082015281565b600154600090600160a060020a031633146109f357600080fd5b60075460ff1615610a0357600080fd5b6007805460ff191660011790556040517f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc90600090a150600190565b600154600160a060020a03163314610a5657600080fd5b610a608282610f4a565b5050565b600060406044361015610a7357fe5b600160a060020a0384161515610a8857600080fd5b33600090815260026020526040902054831115610aa457600080fd5b33600090815260026020526040902054610ac4908463ffffffff610f3816565b3360009081526002602052604080822092909255600160a060020a03861681522054610af6908463ffffffff610f2b16565b600160a060020a0385166000818152600260209081526040918290209390935580518681529051919233926000805160206110228339815191529281900390910190a35060019392505050565b60075460ff1681565b600080600084915081600160a060020a03166370a08231856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610bc857600080fd5b505af1158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b505195945050505050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009081908190600160a060020a03163314610c4657600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610caa57600080fd5b505af1158015610cbe573d6000803e3d6000fd5b505050506040513d6020811015610cd457600080fd5b5051600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506040513d6020811015610d7257600080fd5b5051949350505050565b60055481565b600154600160a060020a03163314610d9957600080fd5b600160a060020a03811615610dd1576001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600154600160a060020a03163314610deb57600080fd5b60068190556040805182815290517f1b3f4127da3ea6792a10e8415464fbfd0cd7849706724a9e4e16d15d3dee299b9181900360200190a150565b6000821515610e375750600061064d565b50818102818382811515610e4757fe5b041461064d57fe5b60075460009060ff1615610e6257600080fd5b600554610e75908363ffffffff610f2b16565b600555600160a060020a038316600090815260026020526040902054610ea1908363ffffffff610f2b16565b600160a060020a038416600081815260026020908152604091829020939093558051858152905191927f8940c4b8e215f8822c5c8f0056c12652c746cbc57eedbd2a440b175971d47a7792918290030190a2604080518381529051600160a060020a038516916000916000805160206110228339815191529181900360200190a350600192915050565b8181018281101561064d57fe5b600082821115610f4457fe5b50900390565b600154600160a060020a03163314610f6157600080fd5b60008111610f6e57600080fd5b60045460055410610f7e57600080fd5b600160a060020a038216600090815260026020526040902054610fa7908263ffffffff610f2b16565b600160a060020a038316600090815260026020526040902055600554610fd3908263ffffffff610f2b16565b600581905560045411610fee576007805460ff191660011790555b604080518281529051600160a060020a038416916000916000805160206110228339815191529181900360200190a350505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c401ab23df0163bd56be31be76cefec336e86efeafcc275ca50206bb6049b40b0029

Deployed Bytecode Sourcemap

1556:6632:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4517:11;:9;:11::i;:::-;1556:6632;1772:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1772:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1772:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6707:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6707:296:0;-1:-1:-1;;;;;6707:296:0;;;;;;;;;;;;;;;;;;;;;;;;;7747:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7747:166:0;;;;;1930:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1930:39:0;;;;;;;;;;;;;;;;;;;;6158:537;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6158:537:0;-1:-1:-1;;;;;6158:537:0;;;;;;;;;;;;1882:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1882:33:0;;;;7392:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7392:343:0;;;;;5511:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5511:111:0;-1:-1:-1;;;;;5511:111:0;;;;;2014:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2014:54:0;;;;2089:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2089:33:0;;;;4106:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4106:192:0;;;;;;;;;;;;;;;;1838:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1838:37:0;;;;2961:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2961:170:0;;;;3960:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3960:138:0;-1:-1:-1;;;;;3960:138:0;;;;;;;5744:402;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5744:402:0;-1:-1:-1;;;;;5744:402:0;;;;;;;2558:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2558:40:0;;;;7165:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7165:211:0;-1:-1:-1;;;;;7165:211:0;;;;;;;;;;7015:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7015:138:0;-1:-1:-1;;;;;7015:138:0;;;;;;;;;;7925:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7925:260:0;-1:-1:-1;;;;;7925:260:0;;;;;1976:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1976:31:0;;;;2802:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2802:151:0;-1:-1:-1;;;;;2802:151:0;;;;;4306:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4306:152:0;;;;;4545:954;2651:20;;4602:14;;;;;;;;;;;;2651:20;;2650:21;2642:30;;;;;;4791:9;;4619:1;;-1:-1:-1;4619:1:0;;-1:-1:-1;4619:1:0;;-1:-1:-1;4714:12:0;;-1:-1:-1;4759:7:0;;-1:-1:-1;4759:7:0;;4791:24;;4805:9;4791:24;:13;:24;:::i;:::-;:34;;;;;;;;;-1:-1:-1;4863:10:0;;-1:-1:-1;2055:13:0;4890:9;:27;4886:493;;4950:11;4937:9;:24;;:51;;;;;4977:11;4965:9;:23;4937:51;4934:263;;;5035:3;5030:2;5021:11;;:17;;5008:30;;4934:263;;;5062:9;:24;-1:-1:-1;5059:138:0;;5133:3;5128:2;5119:11;;:17;;5059:138;5184:1;5171:14;;5059:138;5226:10;5217:6;:19;5209:27;;5245:22;5251:8;5261:5;5245;:22::i;:::-;-1:-1:-1;5272:5:0;;:25;;-1:-1:-1;;;;;5272:5:0;;;;5287:9;5272:25;;;;;:5;:25;:5;:25;5287:9;5272:5;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5272:25:0;4886:493;;;2055:13;5338:9;:27;;5329:38;;;;;;5415:11;;5395:16;;:31;5391:91;;5443:20;:27;;-1:-1:-1;;5443:27:0;5466:4;5443:27;;;5391:91;4545:954;;;;;;:::o;1772:59::-;;;;;;;;;;;;;;;;;;;:::o;6707:296::-;6774:12;6803:11;;;;;:49;;-1:-1:-1;6826:10:0;6818:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6818:29:0;;;;;;;;;;:34;;6803:49;6799:72;;;-1:-1:-1;6863:5:0;6856:12;;6799:72;6889:10;6881:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6881:29:0;;;;;;;;;;;;:38;;;6935;;;;;;;6881:29;;6889:10;6935:38;;;;;;;;;;;-1:-1:-1;6991:4:0;6707:296;;;;;:::o;7747:166::-;2758:5;;7804:15;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;7822:11;;:23;;7838:6;7822:23;:15;:23;:::i;:::-;7856:11;:21;;;7894:11;;;;;;;;7804:41;;-1:-1:-1;7894:11:0;;;;;;;;;;7747:166;;:::o;1930:39::-;;;;:::o;6158:537::-;6265:12;6241:6;5703:8;5684;:27;;5677:35;;;;-1:-1:-1;;;;;6300:17:0;;;;6292:26;;;;;;-1:-1:-1;;;;;6348:15:0;;;;;;:8;:15;;;;;;6337:26;;;6329:35;;;;;;-1:-1:-1;;;;;6394:14:0;;;;;;:7;:14;;;;;;;;6409:10;6394:26;;;;;;;;6383:37;;;6375:46;;;;;;-1:-1:-1;;;;;6460:15:0;;;;;;:8;:15;;;;;;:28;;6480:7;6460:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;6442:15:0;;;;;;:8;:15;;;;;;;;:46;;;;6528:7;:14;;;;;6543:10;6528:26;;;;;;:39;;6559:7;6528:39;:30;:39;:::i;:::-;-1:-1:-1;;;;;6499:14:0;;;;;;;:7;:14;;;;;;;;6514:10;6499:26;;;;;;;:68;;;;6594:13;;;;;:8;:13;;;;;:26;;6612:7;6594:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;6578:13:0;;;;;;;:8;:13;;;;;;;;;:42;;;;6636:29;;;;;;;6578:13;;6636:29;;;;-1:-1:-1;;;;;;;;;;;6636:29:0;;;;;;;;-1:-1:-1;6683:4:0;;6158:537;-1:-1:-1;;;;6158:537:0:o;1882:33::-;1914:1;1882:33;:::o;7392:343::-;2758:5;;7500:14;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;7477:10;7468:20;;;;:8;:20;;;;;;7458:30;;;7450:39;;;;;;-1:-1:-1;7517:10:0;7557:16;;;;:8;:16;;;;;;:28;;7578:6;7557:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;7538:16:0;;;;;;:8;:16;;;;;:47;7610:11;;:23;;7626:6;7610:23;:15;:23;:::i;:::-;7596:11;:37;7663:16;;:28;;7684:6;7663:28;:20;:28;:::i;:::-;7644:16;:47;7707:20;;;;;;;;-1:-1:-1;;;;;7707:20:0;;;;;;;;;;;;;7392:343;;:::o;5511:111::-;-1:-1:-1;;;;;5598:16:0;5571:7;5598:16;;;:8;:16;;;;;;;5511:111::o;2014:54::-;2055:13;2014:54;:::o;2089:33::-;;;;:::o;4106:192::-;2758:5;;4216:6;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;-1:-1:-1;4225:1:0;4211:79;4228:21;;;4211:79;;;4256:34;4267:10;;4278:1;4267:13;;;;;;;;;;;;;-1:-1:-1;;;;;4267:13:0;4282:7;4256:10;:34::i;:::-;4251:3;;4211:79;;;4106:192;;;;:::o;1838:37::-;;;;;;;;;;;;;;;;;;;:::o;2961:170::-;2758:5;;3026:4;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;2651:20;;;;2650:21;2642:30;;;;;;3043:20;:27;;-1:-1:-1;;3043:27:0;3066:4;3043:27;;;3086:15;;;;3043:20;;3086:15;-1:-1:-1;3119:4:0;2961:170;:::o;3960:138::-;2758:5;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;4057:33;4068:12;4082:7;4057:10;:33::i;:::-;3960:138;;:::o;5744:402::-;5832:12;5808:6;5703:8;5684;:27;;5677:35;;;;-1:-1:-1;;;;;5867:17:0;;;;5859:26;;;;;;5924:10;5915:20;;;;:8;:20;;;;;;5904:31;;;5896:40;;;;;;5989:10;5980:20;;;;:8;:20;;;;;;:33;;6005:7;5980:33;:24;:33;:::i;:::-;5966:10;5957:20;;;;:8;:20;;;;;;:56;;;;-1:-1:-1;;;;;6040:13:0;;;;;;:26;;6058:7;6040:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;6024:13:0;;;;;;:8;:13;;;;;;;;;:42;;;;6082:34;;;;;;;6024:13;;6091:10;;-1:-1:-1;;;;;;;;;;;6082:34:0;;;;;;;;;-1:-1:-1;6134:4:0;;5744:402;-1:-1:-1;;;5744:402:0:o;2558:40::-;;;;;;:::o;7165:211::-;7250:4;7266:14;7320:8;7296:12;7266:43;;7331:1;-1:-1:-1;;;;;7331:11:0;;7343:3;7331:16;;;;;;;;;;;;;-1:-1:-1;;;;;7331:16:0;-1:-1:-1;;;;;7331:16:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7331:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7331:16:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7331:16:0;;7165:211;-1:-1:-1;;;;;7165:211:0:o;7015:138::-;-1:-1:-1;;;;;7120:15:0;;;7093:7;7120:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7015:138::o;7925:260::-;2758:5;;8006:4;;;;;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;8100:30;;;;;;8124:4;8100:30;;;;;;8057:14;;-1:-1:-1;;;;;;8100:15:0;;;;;:30;;;;;;;;;;;;;;-1:-1:-1;8100:15:0;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;8100:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8100:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8100:30:0;8163:5;;8148:29;;;;;;-1:-1:-1;;;;;8163:5:0;;;8148:29;;;;;;;;;;;;8100:30;;-1:-1:-1;8148:14:0;;;;;;:29;;;;;8100:30;;8148:29;;;;;;;;8163:5;8148:14;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8148:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8148:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8148:29:0;;7925:260;-1:-1:-1;;;;7925:260:0:o;1976:31::-;;;;:::o;2802:151::-;2758:5;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;-1:-1:-1;;;;;2879:22:0;;;2875:71;;2918:5;:16;;-1:-1:-1;;2918:16:0;-1:-1:-1;;;;;2918:16:0;;;;;2875:71;2802:151;:::o;4306:152::-;2758:5;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;4384:9;:22;;;4422:28;;;;;;;;;;;;;;;;;4306:152;:::o;111:202::-;169:9;195:6;;191:47;;;-1:-1:-1;225:1:0;218:8;;191:47;-1:-1:-1;252:5:0;;;256:1;252;:5;275;;;;;;;;:10;268:18;;;3143:314;2651:20;;3214:4;;2651:20;;2650:21;2642:30;;;;;;3250:16;;:29;;3271:7;3250:29;:20;:29;:::i;:::-;3231:16;:48;-1:-1:-1;;;;;3314:13:0;;;;;;:8;:13;;;;;;:26;;3332:7;3314:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;3298:13:0;;;;;;:8;:13;;;;;;;;;:42;;;;3356:19;;;;;;;3298:13;;3356:19;;;;;;;;;3391:34;;;;;;;;-1:-1:-1;;;;;3391:34:0;;;3408:1;;-1:-1:-1;;;;;;;;;;;3391:34:0;;;;;;;;-1:-1:-1;3445:4:0;3143:314;;;;:::o;564:141::-;648:5;;;671:6;;;;664:14;;;431:123;489:7;516:6;;;;509:14;;;;-1:-1:-1;541:5:0;;;431:123::o;3469:479::-;2758:5;;-1:-1:-1;;;;;2758:5:0;2744:10;:19;2736:28;;;;;;3576:1;3566:11;;3557:22;;;;;;3624:11;;3605:16;;:30;3596:41;;;;;;-1:-1:-1;;;;;3673:22:0;;;;;;:8;:22;;;;;;:35;;3700:7;3673:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;3648:22:0;;;;;;:8;:22;;;;;:60;3738:16;;:29;;3759:7;3738:29;:20;:29;:::i;:::-;3719:16;:48;;;3804:11;;-1:-1:-1;3780:91:0;;3832:20;:27;;-1:-1:-1;;3832:27:0;3855:4;3832:27;;;3780:91;3897:43;;;;;;;;-1:-1:-1;;;;;3897:43:0;;;3914:1;;-1:-1:-1;;;;;;;;;;;3897:43:0;;;;;;;;3469:479;;:::o

Swarm Source

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