ETH Price: $3,455.15 (-6.91%)
 

Overview

Max Total Supply

410,000,000 PCPL

Holders

671

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
513,970.77264700000451 PCPL

Value
$0.00
0x0d3625852e730315A32f6FE2Ae6498C715558673
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:
PROCOINPLUS

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-08-14
*/

pragma solidity ^0.4.24;
/**
* Math operations with safety checks
*/

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        //assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

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

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


contract Ownable {
    address public owner;

    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    constructor() public {
        owner = msg.sender;
    }

    /**
      * @dev Throws if called by any account other than the owner.
      */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    /**
    * @dev Fix for the ERC20 short address attack.
    */    
    modifier onlyPayloadSize(uint size) {
        assert(msg.data.length >= size + 4);
        _;
    }
}


contract PROCOINPLUS is Ownable{
    using SafeMath for uint;
    string public name;     
    string public symbol;
    uint8 public decimals;  
    uint private _totalSupply;
    uint public basisPointsRate = 0;
    uint public minimumFee = 0;
    uint public maximumFee = 0;

    
    /* This creates an array with all balances */
    mapping (address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;
    
    /* This generates a public event on the blockchain that will notify clients */
    /* notify about transfer to client*/
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );
    
    /* notify about approval to client*/
    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _value
    );
    
    /* notify about basisPointsRate to client*/
    event Params(
        uint feeBasisPoints,
        uint maximumFee,
        uint minimumFee
    );
    
    // Called when new token are issued
    event Issue(
        uint amount
    );

    // Called when tokens are redeemed
    event Redeem(
        uint amount
    );
    
    /*
        The contract can be initialized with a number of tokens
        All the tokens are deposited to the owner address
        @param _balance Initial supply of the contract
        @param _name Token Name
        @param _symbol Token symbol
        @param _decimals Token decimals
    */
    constructor() public {
        name = 'PROCOIN PLUS'; // Set the name for display purposes
        symbol = 'PCPL'; // Set the symbol for display purposes
        decimals = 18; // Amount of decimals for display purposes
        _totalSupply = 410000000 * 10**uint(decimals); // Update total supply
        balances[msg.sender] = _totalSupply; // Give the creator all initial tokens
    }
    
    /*
        @dev Total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
   
   /*
    @dev Gets the balance of the specified address.
  * @param owner The address to query the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
    function balanceOf(address owner) public view returns (uint256) {
        return balances[owner];
    }
    /*
        @dev transfer token for a specified address
        @param _to The address to transfer to.
        @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256  _value) public onlyPayloadSize(2 * 32){
        //Calculate Fees from basis point rate 
        uint fee = (_value.mul(basisPointsRate)).div(1000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        if (fee < minimumFee) {
            fee = minimumFee;
        }
        // Prevent transfer to 0x0 address.
        require (_to != 0x0);
        //check receiver is not owner
        require(_to != address(0));
        //Check transfer value is > 0;
        require (_value > 0); 
        // Check if the sender has enough
        require (balances[msg.sender] >= _value);
        // Check for overflows
        require (balances[_to].add(_value) >= balances[_to]);
        //sendAmount to receiver after deducted fee
        uint sendAmount = _value.sub(fee);
        // Subtract from the sender
        balances[msg.sender] = balances[msg.sender].sub(_value);
        // Add the same to the recipient
        balances[_to] = balances[_to].add(sendAmount); 
        //Add fee to owner Account
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            emit Transfer(msg.sender, owner, fee);
        }
        // Notify anyone listening that this transfer took place
        emit Transfer(msg.sender, _to, _value);
    }
    
    /*
        @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
        @param _spender The address which will spend the funds.
        @param _value The amount of tokens to be spent.
    */
    function approve(address _spender, uint256 _value) public onlyPayloadSize(2 * 32) returns (bool success) {
        //Check approve value is > 0;
        require (_value >= 0);
        //Check balance of owner is greater than
        require (balances[msg.sender] >= _value);
        //check _spender is not itself
        require (_spender != msg.sender);
        //Allowed token to _spender
        allowed[msg.sender][_spender] = _value;
        //Notify anyone listening that this Approval took place
        emit Approval(msg.sender,_spender, _value);
        return true;
    }
    
    /*
        @dev Transfer tokens from one address to another
        @param _from address The address which you want to send tokens from
        @param _to address The address which you want to transfer to
        @param _value uint the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint256 _value) public onlyPayloadSize(2 * 32) returns (bool success) {
        //Calculate Fees from basis point rate 
        uint fee = (_value.mul(basisPointsRate)).div(1000);
        if (fee > maximumFee) {
                fee = maximumFee;
        }
        if (fee < minimumFee) {
            fee = minimumFee;
        }
        // Prevent transfer to 0x0 address.
        require (_to != 0x0);
        //check receiver is not owner
        require(_to != address(0));
        //Check transfer value is > 0;
        require (_value > 0); 
        // Check if the sender has enough
        require(_value <= balances[_from]);
        // Check for overflows
        require (balances[_to].add(_value) >= balances[_to]);
        // Check allowance
        require (_value <= allowed[_from][msg.sender]);
        uint sendAmount = _value.sub(fee);
        balances[_from] = balances[_from].sub(_value);// Subtract from the sender
        balances[_to] = balances[_to].add(sendAmount); // Add the same to the recipient
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            emit Transfer(_from, owner, fee);
        }
        emit Transfer(_from, _to, sendAmount);
        return true;
    }
    
    /*
        @dev Function to check the amount of tokens than an owner allowed to a spender.
        @param _owner address The address which owns the funds.
        @param _spender address The address which will spend the funds.
        @return A uint specifying the amount of tokens still available for the spender.
    */
    function allowance(address _from, address _spender) public view returns (uint remaining) {
        return allowed[_from][_spender];
    }
    
    /*
        @dev Function to set the basis point rate .
        @param newBasisPoints uint which is <= 9.
    */
    function setParams(uint newBasisPoints,uint newMaxFee,uint newMinFee) public onlyOwner {
        // Ensure transparency by hardcoding limit beyond which fees can never be added
        require(newBasisPoints <= 9);
        require(newMaxFee <= 100);
        require(newMinFee <= 5);
        basisPointsRate = newBasisPoints;
        maximumFee = newMaxFee.mul(10**uint(decimals));
        minimumFee = newMinFee.mul(10**uint(decimals));
        emit Params(basisPointsRate, maximumFee, minimumFee);
    }
    /*
    Issue a new amount of tokens
    these tokens are deposited into the owner address
    @param _amount Number of tokens to be issued
    */
    function increaseSupply(uint amount) public onlyOwner {
        require(amount <= 10000000);
        amount = amount.mul(10**uint(decimals));
        require(_totalSupply.add(amount) > _totalSupply);
        require(balances[owner].add(amount) > balances[owner]);
        balances[owner] = balances[owner].add(amount);
        _totalSupply = _totalSupply.add(amount);
        emit Issue(amount);
    }
    
    /*
    Redeem tokens.
    These tokens are withdrawn from the owner address
    if the balance must be enough to cover the redeem
    or the call will fail.
    @param _amount Number of tokens to be issued
    */
    function decreaseSupply(uint amount) public onlyOwner {
        require(amount <= 10000000);
        amount = amount.mul(10**uint(decimals));
        require(_totalSupply >= amount);
        require(balances[owner] >= amount);
        _totalSupply = _totalSupply.sub(amount);
        balances[owner] = balances[owner].sub(amount);
        emit Redeem(amount);
    }

    //onlyOwner is custom modifier
    //`owner` is the owners address
    function close(address owner) public onlyOwner {
        require(msg.sender == owner);
        selfdestruct(owner);
    }
}

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":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"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":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"},{"name":"newMinFee","type":"uint256"}],"name":"setParams","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"decreaseSupply","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"increaseSupply","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","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":"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":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maximumFee","type":"uint256"},{"indexed":false,"name":"minimumFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Redeem","type":"event"}]

608060405260006005556000600655600060075534801561001f57600080fd5b5060008054600160a060020a0319163317905560408051808201909152600c8082527f50524f434f494e20504c555300000000000000000000000000000000000000006020909201918252610076916001916100f3565b506040805180820190915260048082527f5043504c0000000000000000000000000000000000000000000000000000000060209092019182526100bb916002916100f3565b5060038054601260ff19909116179081905560ff16600a0a6318701a800260048190553360009081526008602052604090205561018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013457805160ff1916838001178555610161565b82800160010185558215610161579182015b82811115610161578251825591602001919060010190610146565b5061016d929150610171565b5090565b61018b91905b8082111561016d5760008155600101610177565b90565b610e598061019d6000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b75780631a7626e7146101de57806323b872dd146101f3578063313ce5671461021d57806335390714146102485780635a0ce6761461025d57806370a082311461027d5780638da5cb5b1461029e57806395d89b41146102cf57806398e52f9a146102e4578063a9059cbb146102fc578063b921e16314610320578063c74073a114610338578063dd62ed3e14610359578063dd644f7214610380575b600080fd5b34801561010157600080fd5b5061010a610395565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a0360043516602435610422565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6104db565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101cc6104e1565b3480156101ff57600080fd5b506101a3600160a060020a03600435811690602435166044356104e7565b34801561022957600080fd5b5061023261079c565b6040805160ff9092168252519081900360200190f35b34801561025457600080fd5b506101cc6107a5565b34801561026957600080fd5b5061027b6004356024356044356107ab565b005b34801561028957600080fd5b506101cc600160a060020a036004351661087a565b3480156102aa57600080fd5b506102b3610895565b60408051600160a060020a039092168252519081900360200190f35b3480156102db57600080fd5b5061010a6108a4565b3480156102f057600080fd5b5061027b6004356108fc565b34801561030857600080fd5b5061027b600160a060020a0360043516602435610a09565b34801561032c57600080fd5b5061027b600435610c0a565b34801561034457600080fd5b5061027b600160a060020a0360043516610d2c565b34801561036557600080fd5b506101cc600160a060020a0360043581169060243516610d64565b34801561038c57600080fd5b506101cc610d8f565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561041a5780601f106103ef5761010080835404028352916020019161041a565b820191906000526020600020905b8154815290600101906020018083116103fd57829003601f168201915b505050505081565b60006040604436101561043157fe5b600083101561043f57600080fd5b3360009081526008602052604090205483111561045b57600080fd5b600160a060020a03841633141561047157600080fd5b336000818152600960209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b60045490565b60065481565b60008080604060443610156104f857fe5b61051f6103e861051360055488610d9590919063ffffffff16565b9063ffffffff610dc716565b92506007548311156105315760075492505b6006548310156105415760065492505b600160a060020a038616151561055657600080fd5b600160a060020a038616151561056b57600080fd5b6000851161057857600080fd5b600160a060020a03871660009081526008602052604090205485111561059d57600080fd5b600160a060020a0386166000908152600860205260409020546105c6818763ffffffff610dde16565b10156105d157600080fd5b600160a060020a038716600090815260096020908152604080832033845290915290205485111561060157600080fd5b610611858463ffffffff610dfb16565b600160a060020a03881660009081526008602052604090205490925061063d908663ffffffff610dfb16565b600160a060020a038089166000908152600860205260408082209390935590881681522054610672908363ffffffff610dde16565b600160a060020a03808816600090815260086020908152604080832094909455918a1681526009825282812033825290915220546106b6908663ffffffff610dfb16565b600160a060020a03881660009081526009602090815260408083203384529091528120919091558311156107565760008054600160a060020a031681526008602052604090205461070d908463ffffffff610dde16565b60008054600160a060020a0390811682526008602090815260408084209490945591548351878152935190821693918b1692600080516020610e0e833981519152928290030190a35b85600160a060020a031687600160a060020a0316600080516020610e0e833981519152846040518082815260200191505060405180910390a35060019695505050505050565b60035460ff1681565b60075481565b600054600160a060020a031633146107c257600080fd5b60098311156107d057600080fd5b60648211156107de57600080fd5b60058111156107ec57600080fd5b600583905560035461080b90839060ff16600a0a63ffffffff610d9516565b60075560035461082890829060ff16600a0a63ffffffff610d9516565b60068190556005546007546040805192835260208301919091528181019290925290517fd16858b87f79d06c5d7f4cdf7f0943a3b343a9eb149c10ec26e7bcaae7f19bc59181900360600190a1505050565b600160a060020a031660009081526008602052604090205490565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561041a5780601f106103ef5761010080835404028352916020019161041a565b600054600160a060020a0316331461091357600080fd5b6298968081111561092357600080fd5b60035461093d90829060ff16600a0a63ffffffff610d9516565b9050806004541015151561095057600080fd5b60008054600160a060020a031681526008602052604090205481111561097557600080fd5b600454610988908263ffffffff610dfb16565b60045560008054600160a060020a03168152600860205260409020546109b4908263ffffffff610dfb16565b60008054600160a060020a031681526008602090815260409182902092909255805183815290517f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44929181900390910190a150565b60008060406044361015610a1957fe5b610a346103e861051360055487610d9590919063ffffffff16565b9250600754831115610a465760075492505b600654831015610a565760065492505b600160a060020a0385161515610a6b57600080fd5b600160a060020a0385161515610a8057600080fd5b60008411610a8d57600080fd5b33600090815260086020526040902054841115610aa957600080fd5b600160a060020a038516600090815260086020526040902054610ad2818663ffffffff610dde16565b1015610add57600080fd5b610aed848463ffffffff610dfb16565b33600090815260086020526040902054909250610b10908563ffffffff610dfb16565b3360009081526008602052604080822092909255600160a060020a03871681522054610b42908363ffffffff610dde16565b600160a060020a038616600090815260086020526040812091909155831115610bd55760008054600160a060020a0316815260086020526040902054610b8e908463ffffffff610dde16565b60008054600160a060020a039081168252600860209081526040808420949094559154835187815293519116923392600080516020610e0e83398151915292918290030190a35b604080518581529051600160a060020a038716913391600080516020610e0e8339815191529181900360200190a35050505050565b600054600160a060020a03163314610c2157600080fd5b62989680811115610c3157600080fd5b600354610c4b90829060ff16600a0a63ffffffff610d9516565b600454909150610c61818363ffffffff610dde16565b11610c6b57600080fd5b60008054600160a060020a0316815260086020526040902054610c94818363ffffffff610dde16565b11610c9e57600080fd5b60008054600160a060020a0316815260086020526040902054610cc7908263ffffffff610dde16565b60008054600160a060020a0316815260086020526040902055600454610cf3908263ffffffff610dde16565b6004556040805182815290517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9181900360200190a150565b600054600160a060020a03163314610d4357600080fd5b33600160a060020a03821614610d5857600080fd5b80600160a060020a0316ff5b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b60055481565b600080831515610da857600091506104d4565b50828202828482811515610db857fe5b0414610dc057fe5b9392505050565b6000808284811515610dd557fe5b04949350505050565b6000828201838110801590610df35750828110155b1515610dc057fe5b600082821115610e0757fe5b509003905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d7defe2755acb0934ee4cd2869a2083e2406720d64f0a5e899a0c4838fbfc0980029

Deployed Bytecode

0x6080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b75780631a7626e7146101de57806323b872dd146101f3578063313ce5671461021d57806335390714146102485780635a0ce6761461025d57806370a082311461027d5780638da5cb5b1461029e57806395d89b41146102cf57806398e52f9a146102e4578063a9059cbb146102fc578063b921e16314610320578063c74073a114610338578063dd62ed3e14610359578063dd644f7214610380575b600080fd5b34801561010157600080fd5b5061010a610395565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a0360043516602435610422565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6104db565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101cc6104e1565b3480156101ff57600080fd5b506101a3600160a060020a03600435811690602435166044356104e7565b34801561022957600080fd5b5061023261079c565b6040805160ff9092168252519081900360200190f35b34801561025457600080fd5b506101cc6107a5565b34801561026957600080fd5b5061027b6004356024356044356107ab565b005b34801561028957600080fd5b506101cc600160a060020a036004351661087a565b3480156102aa57600080fd5b506102b3610895565b60408051600160a060020a039092168252519081900360200190f35b3480156102db57600080fd5b5061010a6108a4565b3480156102f057600080fd5b5061027b6004356108fc565b34801561030857600080fd5b5061027b600160a060020a0360043516602435610a09565b34801561032c57600080fd5b5061027b600435610c0a565b34801561034457600080fd5b5061027b600160a060020a0360043516610d2c565b34801561036557600080fd5b506101cc600160a060020a0360043581169060243516610d64565b34801561038c57600080fd5b506101cc610d8f565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561041a5780601f106103ef5761010080835404028352916020019161041a565b820191906000526020600020905b8154815290600101906020018083116103fd57829003601f168201915b505050505081565b60006040604436101561043157fe5b600083101561043f57600080fd5b3360009081526008602052604090205483111561045b57600080fd5b600160a060020a03841633141561047157600080fd5b336000818152600960209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b60045490565b60065481565b60008080604060443610156104f857fe5b61051f6103e861051360055488610d9590919063ffffffff16565b9063ffffffff610dc716565b92506007548311156105315760075492505b6006548310156105415760065492505b600160a060020a038616151561055657600080fd5b600160a060020a038616151561056b57600080fd5b6000851161057857600080fd5b600160a060020a03871660009081526008602052604090205485111561059d57600080fd5b600160a060020a0386166000908152600860205260409020546105c6818763ffffffff610dde16565b10156105d157600080fd5b600160a060020a038716600090815260096020908152604080832033845290915290205485111561060157600080fd5b610611858463ffffffff610dfb16565b600160a060020a03881660009081526008602052604090205490925061063d908663ffffffff610dfb16565b600160a060020a038089166000908152600860205260408082209390935590881681522054610672908363ffffffff610dde16565b600160a060020a03808816600090815260086020908152604080832094909455918a1681526009825282812033825290915220546106b6908663ffffffff610dfb16565b600160a060020a03881660009081526009602090815260408083203384529091528120919091558311156107565760008054600160a060020a031681526008602052604090205461070d908463ffffffff610dde16565b60008054600160a060020a0390811682526008602090815260408084209490945591548351878152935190821693918b1692600080516020610e0e833981519152928290030190a35b85600160a060020a031687600160a060020a0316600080516020610e0e833981519152846040518082815260200191505060405180910390a35060019695505050505050565b60035460ff1681565b60075481565b600054600160a060020a031633146107c257600080fd5b60098311156107d057600080fd5b60648211156107de57600080fd5b60058111156107ec57600080fd5b600583905560035461080b90839060ff16600a0a63ffffffff610d9516565b60075560035461082890829060ff16600a0a63ffffffff610d9516565b60068190556005546007546040805192835260208301919091528181019290925290517fd16858b87f79d06c5d7f4cdf7f0943a3b343a9eb149c10ec26e7bcaae7f19bc59181900360600190a1505050565b600160a060020a031660009081526008602052604090205490565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561041a5780601f106103ef5761010080835404028352916020019161041a565b600054600160a060020a0316331461091357600080fd5b6298968081111561092357600080fd5b60035461093d90829060ff16600a0a63ffffffff610d9516565b9050806004541015151561095057600080fd5b60008054600160a060020a031681526008602052604090205481111561097557600080fd5b600454610988908263ffffffff610dfb16565b60045560008054600160a060020a03168152600860205260409020546109b4908263ffffffff610dfb16565b60008054600160a060020a031681526008602090815260409182902092909255805183815290517f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44929181900390910190a150565b60008060406044361015610a1957fe5b610a346103e861051360055487610d9590919063ffffffff16565b9250600754831115610a465760075492505b600654831015610a565760065492505b600160a060020a0385161515610a6b57600080fd5b600160a060020a0385161515610a8057600080fd5b60008411610a8d57600080fd5b33600090815260086020526040902054841115610aa957600080fd5b600160a060020a038516600090815260086020526040902054610ad2818663ffffffff610dde16565b1015610add57600080fd5b610aed848463ffffffff610dfb16565b33600090815260086020526040902054909250610b10908563ffffffff610dfb16565b3360009081526008602052604080822092909255600160a060020a03871681522054610b42908363ffffffff610dde16565b600160a060020a038616600090815260086020526040812091909155831115610bd55760008054600160a060020a0316815260086020526040902054610b8e908463ffffffff610dde16565b60008054600160a060020a039081168252600860209081526040808420949094559154835187815293519116923392600080516020610e0e83398151915292918290030190a35b604080518581529051600160a060020a038716913391600080516020610e0e8339815191529181900360200190a35050505050565b600054600160a060020a03163314610c2157600080fd5b62989680811115610c3157600080fd5b600354610c4b90829060ff16600a0a63ffffffff610d9516565b600454909150610c61818363ffffffff610dde16565b11610c6b57600080fd5b60008054600160a060020a0316815260086020526040902054610c94818363ffffffff610dde16565b11610c9e57600080fd5b60008054600160a060020a0316815260086020526040902054610cc7908263ffffffff610dde16565b60008054600160a060020a0316815260086020526040902055600454610cf3908263ffffffff610dde16565b6004556040805182815290517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9181900360200190a150565b600054600160a060020a03163314610d4357600080fd5b33600160a060020a03821614610d5857600080fd5b80600160a060020a0316ff5b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b60055481565b600080831515610da857600091506104d4565b50828202828482811515610db857fe5b0414610dc057fe5b9392505050565b6000808284811515610dd557fe5b04949350505050565b6000828201838110801590610df35750828110155b1515610dc057fe5b600082821115610e0757fe5b509003905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d7defe2755acb0934ee4cd2869a2083e2406720d64f0a5e899a0c4838fbfc0980029

Deployed Bytecode Sourcemap

1437:9007:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1505:18: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;1505:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5648:594;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5648:594:0;-1:-1:-1;;;;;5648:594:0;;;;;;;;;;;;;;;;;;;;;;;;;3458:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3458:91:0;;;;;;;;;;;;;;;;;;;;1662:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1662:26:0;;;;6542:1387;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6542:1387:0;-1:-1:-1;;;;;6542:1387:0;;;;;;;;;;;;1562:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1562:21:0;;;;;;;;;;;;;;;;;;;;;;;1695:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1695:26:0;;;;8544:513;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8544:513:0;;;;;;;;;;;3758:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3758:105:0;-1:-1:-1;;;;;3758:105:0;;;;;848:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;848:20:0;;;;;;;;-1:-1:-1;;;;;848:20:0;;;;;;;;;;;;;;1535;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1535:20:0;;;;9863:373;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9863:373:0;;;;;4039:1353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4039:1353:0;-1:-1:-1;;;;;4039:1353:0;;;;;;;9218:409;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9218:409:0;;;;;10317:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10317:124:0;-1:-1:-1;;;;;10317:124:0;;;;;8273:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8273:139:0;-1:-1:-1;;;;;8273:139:0;;;;;;;;;;1624:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1624:31:0;;;;1505:18;;;;;;;;;;;;;;;-1:-1:-1;;1505:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5648:594::-;5739:12;5722:6;1399:8;1380;:27;;1373:35;;;;5822:1;5812:11;;;5803:21;;;;;;5903:10;5894:20;;;;:8;:20;;;;;;:30;-1:-1:-1;5894:30:0;5885:40;;;;;;-1:-1:-1;;;;;5985:22:0;;5997:10;5985:22;;5976:32;;;;;;6064:10;6056:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6056:29:0;;;;;;;;;;;;:38;;;6175:37;;;;;;;6056:29;;6064:10;6175:37;;;;;;;;;;;6230:4;6223:11;;1419:1;5648:594;;;;;:::o;3458:91::-;3529:12;;3458:91;:::o;1662:26::-;;;;:::o;6542:1387::-;6648:12;;;6631:6;1399:8;1380;:27;;1373:35;;;;6733:39;6767:4;6734:27;6745:15;;6734:6;:10;;:27;;;;:::i;:::-;6733:33;:39;:33;:39;:::i;:::-;6722:50;;6793:10;;6787:3;:16;6783:69;;;6830:10;;6824:16;;6783:69;6872:10;;6866:3;:16;6862:65;;;6905:10;;6899:16;;6862:65;-1:-1:-1;;;;;6991:10:0;;;;6982:20;;;;;;-1:-1:-1;;;;;7060:17:0;;;;7052:26;;;;;;7147:1;7138:10;;7129:20;;;;;;-1:-1:-1;;;;;7222:15:0;;;;;;:8;:15;;;;;;7212:25;;;7204:34;;;;;;-1:-1:-1;;;;;7319:13:0;;;;;;:8;:13;;;;;;7290:25;7319:13;7308:6;7290:25;:17;:25;:::i;:::-;:42;;7281:52;;;;;;-1:-1:-1;;;;;7391:14:0;;;;;;:7;:14;;;;;;;;7406:10;7391:26;;;;;;;;7381:36;;;7372:46;;;;;;7447:15;:6;7458:3;7447:15;:10;:15;:::i;:::-;-1:-1:-1;;;;;7491:15:0;;;;;;:8;:15;;;;;;7429:33;;-1:-1:-1;7491:27:0;;7511:6;7491:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;7473:15:0;;;;;;;:8;:15;;;;;;:45;;;;7572:13;;;;;;;:29;;7590:10;7572:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;7556:13:0;;;;;;;:8;:13;;;;;;;;:45;;;;7674:14;;;;;:7;:14;;;;;7689:10;7674:26;;;;;;;:38;;7705:6;7674:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;7645:14:0;;;;;;:7;:14;;;;;;;;7660:10;7645:26;;;;;;;:67;;;;7727:7;;7723:129;;;7769:15;7778:5;;-1:-1:-1;;;;;7778:5:0;7769:15;;:8;:15;;;;;;:24;;7789:3;7769:24;:19;:24;:::i;:::-;7751:15;7760:5;;-1:-1:-1;;;;;7760:5:0;;;7751:15;;:8;:15;;;;;;;;:42;;;;7829:5;;7813:27;;;;;;;7829:5;;;;7813:27;;;;-1:-1:-1;;;;;;;;;;;7813:27:0;;;;;;;7723:129;7883:3;-1:-1:-1;;;;;7867:32:0;7876:5;-1:-1:-1;;;;;7867:32:0;-1:-1:-1;;;;;;;;;;;7888:10:0;7867:32;;;;;;;;;;;;;;;;;;-1:-1:-1;7917:4:0;;6542:1387;-1:-1:-1;;;;;;6542:1387:0:o;1562:21::-;;;;;;:::o;1695:26::-;;;;:::o;8544:513::-;1215:5;;-1:-1:-1;;;;;1215:5:0;1201:10;:19;1193:28;;;;;;8757:1;8739:19;;;8731:28;;;;;;8791:3;8778:16;;;8770:25;;;;;;8827:1;8814:14;;;8806:23;;;;;;8840:15;:32;;;8919:8;;8896:33;;:9;;8919:8;;8910:2;:18;8896:33;:13;:33;:::i;:::-;8883:10;:46;8976:8;;8953:33;;:9;;8976:8;;8967:2;:18;8953:33;:13;:33;:::i;:::-;8940:10;:46;;;9009:15;;9026:10;;9002:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8544:513;;;:::o;3758:105::-;-1:-1:-1;;;;;3840:15:0;3813:7;3840:15;;;:8;:15;;;;;;;3758:105::o;848:20::-;;;-1:-1:-1;;;;;848:20:0;;:::o;1535:::-;;;;;;;;;;;;;;-1:-1:-1;;1535:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9863:373;1215:5;;-1:-1:-1;;;;;1215:5:0;1201:10;:19;1193:28;;;;;;9946:8;9936:18;;;9928:27;;;;;;9995:8;;9975:30;;:6;;9995:8;;9986:2;:18;9975:30;:10;:30;:::i;:::-;9966:39;;10040:6;10024:12;;:22;;10016:31;;;;;;;;10066:15;10075:5;;-1:-1:-1;;;;;10075:5:0;10066:15;;:8;:15;;;;;;:25;-1:-1:-1;10066:25:0;10058:34;;;;;;10118:12;;:24;;10135:6;10118:24;:16;:24;:::i;:::-;10103:12;:39;10171:15;10180:5;;-1:-1:-1;;;;;10180:5:0;10171:15;;:8;:15;;;;;;:27;;10191:6;10171:27;:19;:27;:::i;:::-;10153:15;10162:5;;-1:-1:-1;;;;;10162:5:0;10153:15;;:8;:15;;;;;;;;;:45;;;;10214:14;;;;;;;;;;;;;;;;;;9863:373;:::o;4039:1353::-;4177:8;;4110:6;1399:8;1380;:27;;1373:35;;;;4188:39;4222:4;4189:27;4200:15;;4189:6;:10;;:27;;;;:::i;4188:39::-;4177:50;;4248:10;;4242:3;:16;4238:65;;;4281:10;;4275:16;;4238:65;4323:10;;4317:3;:16;4313:65;;;4356:10;;4350:16;;4313:65;-1:-1:-1;;;;;4442:10:0;;;;4433:20;;;;;;-1:-1:-1;;;;;4511:17:0;;;;4503:26;;;;;;4598:1;4589:10;;4580:20;;;;;;4673:10;4664:20;;;;:8;:20;;;;;;:30;-1:-1:-1;4664:30:0;4655:40;;;;;;-1:-1:-1;;;;;4776:13:0;;;;;;:8;:13;;;;;;4747:25;4776:13;4765:6;4747:25;:17;:25;:::i;:::-;:42;;4738:52;;;;;;4872:15;:6;4883:3;4872:15;:10;:15;:::i;:::-;4967:10;4958:20;;;;:8;:20;;;;;;4854:33;;-1:-1:-1;4958:32:0;;4983:6;4958:32;:24;:32;:::i;:::-;4944:10;4935:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;5059:13:0;;;;;;:29;;5077:10;5059:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;5043:13:0;;;;;;:8;:13;;;;;:45;;;;5140:7;;5136:134;;;5182:15;5191:5;;-1:-1:-1;;;;;5191:5:0;5182:15;;:8;:15;;;;;;:24;;5202:3;5182:24;:19;:24;:::i;:::-;5164:15;5173:5;;-1:-1:-1;;;;;5173:5:0;;;5164:15;;:8;:15;;;;;;;;:42;;;;5247:5;;5226:32;;;;;;;5247:5;;;5235:10;;-1:-1:-1;;;;;;;;;;;5226:32:0;;;;;;;;5136:134;5351:33;;;;;;;;-1:-1:-1;;;;;5351:33:0;;;5360:10;;-1:-1:-1;;;;;;;;;;;5351:33:0;;;;;;;;4039:1353;;;;;:::o;9218:409::-;1215:5;;-1:-1:-1;;;;;1215:5:0;1201:10;:19;1193:28;;;;;;9301:8;9291:18;;;9283:27;;;;;;9350:8;;9330:30;;:6;;9350:8;;9341:2;:18;9330:30;:10;:30;:::i;:::-;9406:12;;9321:39;;-1:-1:-1;9379:24:0;9406:12;9321:39;9379:24;:16;:24;:::i;:::-;:39;9371:48;;;;;;9468:15;9477:5;;-1:-1:-1;;;;;9477:5:0;9468:15;;:8;:15;;;;;;9438:27;9468:15;9458:6;9438:27;:19;:27;:::i;:::-;:45;9430:54;;;;;;9513:15;9522:5;;-1:-1:-1;;;;;9522:5:0;9513:15;;:8;:15;;;;;;:27;;9533:6;9513:27;:19;:27;:::i;:::-;9495:15;9504:5;;-1:-1:-1;;;;;9504:5:0;9495:15;;:8;:15;;;;;:45;9566:12;;:24;;9583:6;9566:24;:16;:24;:::i;:::-;9551:12;:39;9606:13;;;;;;;;;;;;;;;;;9218:409;:::o;10317:124::-;1215:5;;-1:-1:-1;;;;;1215:5:0;1201:10;:19;1193:28;;;;;;10383:10;-1:-1:-1;;;;;10383:19:0;;;10375:28;;;;;;10427:5;-1:-1:-1;;;;;10414:19:0;;8273:139;-1:-1:-1;;;;;8380:14:0;;;8346;8380;;;:7;:14;;;;;;;;:24;;;;;;;;;;;;;8273:139::o;1624:31::-;;;;:::o;99:208::-;157:7;;181:6;;177:47;;;211:1;204:8;;;;177:47;-1:-1:-1;246:5:0;;;250:1;246;:5;269;;;;;;;;:10;262:18;;;;298:1;99:208;-1:-1:-1;;;99:208:0:o;315:::-;373:7;393:9;409:1;405;:5;;;;;;;;;315:208;-1:-1:-1;;;;315:208:0:o;662:153::-;720:7;752:5;;;775:4;;;;;;:12;;;786:1;783;:4;;775:12;768:20;;;;;531:123;589:7;616:6;;;;609:14;;;;-1:-1:-1;641:5:0;;;531:123::o

Swarm Source

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