ETH Price: $3,046.08 (-3.02%)
Gas: 7 Gwei

Token

PlayCoin (PLY)
 

Overview

Max Total Supply

1,000,000,000 PLY

Holders

4,098

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

PlayCoin is the blockchain-based cryptocurrency for game creators and its users. PlayCoin has launched a platform for both creators and users that becomes a channel to the game companies.

ICO Information

ICO Start Date : 15 Nov 2017  
ICO End Date : 24 Mar 2018
Total Cap : 100,000,000 PLY
Hard Cap : 33M USD
Soft Cap : 10M USD
Token Distribution Date : May 2018
ICO Price  : $ 0.33 
Country : Hong Kong

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PlayCoin

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 2018-08-30
*/

pragma solidity ^0.4.24;

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * See https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address _who) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // assert(_b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
    return _a / _b;
  }

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

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

// File: openzeppelin-solidity/contracts/token/ERC20/BasicToken.sol

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) internal balances;

  uint256 internal totalSupply_;

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

  /**
  * @dev Transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_value <= balances[msg.sender]);
    require(_to != address(0));

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

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256) {
    return balances[_owner];
  }

}

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address _owner, address _spender)
    public view 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
  );
}

// File: openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/issues/20
 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    public
    returns (bool)
  {
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);
    require(_to != address(0));

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

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(
    address _owner,
    address _spender
   )
    public
    view
    returns (uint256)
  {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(
    address _spender,
    uint256 _addedValue
  )
    public
    returns (bool)
  {
    allowed[msg.sender][_spender] = (
      allowed[msg.sender][_spender].add(_addedValue));
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(
    address _spender,
    uint256 _subtractedValue
  )
    public
    returns (bool)
  {
    uint256 oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue >= oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

// File: contracts/PlayCoin.sol

/**
 * @title PlayCoin contract 
 */
contract PlayCoin is StandardToken {
    string public symbol;
    string public name;
    uint8 public decimals = 9;

    uint noOfTokens = 1000000000; // 1,000,000,000 (1B)

    // Address of playcoin vault (a PlayCoinMultiSigWallet contract)
    // The vault will have all the playcoin issued and the operation
    // on its token will be protected by multi signing.
    // In addtion, vault can recall(transfer back) the reserved amount
    // from some address.
    address internal vault;

    // Address of playcoin owner (a PlayCoinMultiSigWallet contract)
    // The owner can change admin and vault address, but the change operation
    // will be protected by multi signing.
    address internal owner;

    // Address of playcoin admin (a PlayCoinMultiSigWallet contract)
    // The admin can change reserve. The reserve is the amount of token
    // assigned to some address but not permitted to use.
    // Once the signers of the admin agree with removing the reserve,
    // they can change the reserve to zero to permit the user to use all reserved
    // amount. So in effect, reservation will postpone the use of some tokens
    // being used until all stakeholders agree with giving permission to use that
    // token to the token owner.
    // All admin operation will be protected by multi signing.
    address internal admin;

    event OwnerChanged(address indexed previousOwner, address indexed newOwner);
    event VaultChanged(address indexed previousVault, address indexed newVault);
    event AdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event ReserveChanged(address indexed _address, uint amount);
    event Recalled(address indexed from, uint amount);

    // for debugging
    event MsgAndValue(string message, bytes32 value);

    /**
     * @dev reserved number of tokens per each address
     *
     * To limit token transaction for some period by the admin or owner,
     * each address' balance cannot become lower than this amount
     *
     */
    mapping(address => uint) public reserves;

    /**
       * @dev modifier to limit access to the owner only
       */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
       * @dev limit access to the vault only
       */
    modifier onlyVault() {
        require(msg.sender == vault);
        _;
    }

    /**
       * @dev limit access to the admin only
       */
    modifier onlyAdmin() {
        require(msg.sender == admin);
        _;
    }

    /**
       * @dev limit access to admin or vault
       */
    modifier onlyAdminOrVault() {
        require(msg.sender == vault || msg.sender == admin);
        _;
    }

    /**
       * @dev limit access to owner or vault
       */
    modifier onlyOwnerOrVault() {
        require(msg.sender == owner || msg.sender == vault);
        _;
    }

    /**
       * @dev limit access to owner or admin
       */
    modifier onlyAdminOrOwner() {
        require(msg.sender == owner || msg.sender == admin);
        _;
    }

    /**
       * @dev limit access to owner or admin or vault
       */
    modifier onlyAdminOrOwnerOrVault() {
        require(msg.sender == owner || msg.sender == vault || msg.sender == admin);
        _;
    }

    /**
     * @dev initialize QRC20(ERC20)
     *
     * all token will deposit into the vault
     * later, the vault, owner will be multi sign contract to protect privileged operations
     *
     * @param _symbol token symbol
     * @param _name   token name
     * @param _owner  owner address
     * @param _admin  admin address
     * @param _vault  vault address
     */
    constructor (string _symbol, string _name, address _owner, address _admin, address _vault) public {
        require(bytes(_symbol).length > 0);
        require(bytes(_name).length > 0);

        totalSupply_ = noOfTokens * (10 ** uint(decimals));
        // 1E9 tokens initially

        symbol = _symbol;
        name = _name;
        owner = _owner;
        admin = _admin;
        vault = _vault;

        balances[vault] = totalSupply_;
        emit Transfer(address(0), vault, totalSupply_);
    }

    /**
     * @dev change the amount of reserved token
     *    reserve should be less than or equal to the current token balance
     *
     *    Refer to the comment on the admin if you want to know more.
     *
     * @param _address the target address whose token will be frozen for future use
     * @param _reserve  the amount of reserved token
     *
     */
    function setReserve(address _address, uint _reserve) public onlyAdmin {
        require(_reserve <= totalSupply_);
        require(_address != address(0));

        reserves[_address] = _reserve;
        emit ReserveChanged(_address, _reserve);
    }

    /**
     * @dev transfer token from sender to other
     *         the result balance should be greater than or equal to the reserved token amount
     */
    function transfer(address _to, uint256 _value) public returns (bool) {
        // check the reserve
        require(balanceOf(msg.sender) - _value >= reserveOf(msg.sender));
        return super.transfer(_to, _value);
    }

    /**
     * @dev change vault address
     *    BEWARE! this withdraw all token from old vault and store it to the new vault
     *            and new vault's allowed, reserve will be set to zero
     * @param _newVault new vault address
     */
    function setVault(address _newVault) public onlyOwner {
        require(_newVault != address(0));
        require(_newVault != vault);

        address _oldVault = vault;

        // change vault address
        vault = _newVault;
        emit VaultChanged(_oldVault, _newVault);

        // adjust balance
        uint _value = balances[_oldVault];
        balances[_oldVault] = 0;
        balances[_newVault] = balances[_newVault].add(_value);

        // vault cannot have any allowed or reserved amount!!!
        allowed[_newVault][msg.sender] = 0;
        reserves[_newVault] = 0;
        emit Transfer(_oldVault, _newVault, _value);
    }

    /**
     * @dev change owner address
     * @param _newOwner new owner address
     */
    function setOwner(address _newOwner) public onlyVault {
        require(_newOwner != address(0));
        require(_newOwner != owner);

        owner = _newOwner;
        emit OwnerChanged(owner, _newOwner);
    }

    /**
     * @dev change admin address
     * @param _newAdmin new admin address
     */
    function setAdmin(address _newAdmin) public onlyOwnerOrVault {
        require(_newAdmin != address(0));
        require(_newAdmin != admin);

        admin = _newAdmin;

        emit AdminChanged(admin, _newAdmin);
    }

    /**
     * @dev transfer a part of reserved amount to the vault
     *
     *    Refer to the comment on the vault if you want to know more.
     *
     * @param _from the address from which the reserved token will be taken
     * @param _amount the amount of token to be taken
     */
    function recall(address _from, uint _amount) public onlyAdmin {
        require(_from != address(0));
        require(_amount > 0);

        uint currentReserve = reserveOf(_from);
        uint currentBalance = balanceOf(_from);

        require(currentReserve >= _amount);
        require(currentBalance >= _amount);

        uint newReserve = currentReserve - _amount;
        reserves[_from] = newReserve;
        emit ReserveChanged(_from, newReserve);

        // transfer token _from to vault
        balances[_from] = balances[_from].sub(_amount);
        balances[vault] = balances[vault].add(_amount);
        emit Transfer(_from, vault, _amount);

        emit Recalled(_from, _amount);
    }

    /**
     * @dev Transfer tokens from one address to another
     *
     * The _from's PLY balance should be larger than the reserved amount(reserves[_from]) plus _value.
     *
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_value <= balances[_from].sub(reserves[_from]));
        return super.transferFrom(_from, _to, _value);
    }

    function getOwner() public view onlyAdminOrOwnerOrVault returns (address) {
        return owner;
    }

    function getVault() public view onlyAdminOrOwnerOrVault returns (address) {
        return vault;
    }

    function getAdmin() public view onlyAdminOrOwnerOrVault returns (address) {
        return admin;
    }

    function getOnePlayCoin() public view returns (uint) {
        return (10 ** uint(decimals));
    }

    function getMaxNumberOfTokens() public view returns (uint) {
        return noOfTokens;
    }

    /**
     * @dev get the amount of reserved token
     */
    function reserveOf(address _address) public view returns (uint _reserve) {
        return reserves[_address];
    }

    /**
     * @dev get the amount reserved token of the sender
     */
    function reserve() public view returns (uint _reserve) {
        return reserves[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":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","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":"_amount","type":"uint256"}],"name":"recall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newVault","type":"address"}],"name":"setVault","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"}],"name":"setAdmin","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":false,"inputs":[{"name":"_address","type":"address"},{"name":"_reserve","type":"uint256"}],"name":"setReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOnePlayCoin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getVault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMaxNumberOfTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"reserveOf","outputs":[{"name":"_reserve","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"reserve","outputs":[{"name":"_reserve","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"reserves","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_symbol","type":"string"},{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_admin","type":"address"},{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousVault","type":"address"},{"indexed":true,"name":"newVault","type":"address"}],"name":"VaultChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousAdmin","type":"address"},{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"ReserveChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Recalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"message","type":"string"},{"indexed":false,"name":"value","type":"bytes32"}],"name":"MsgAndValue","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526005805460ff19166009179055633b9aca006006553480156200002657600080fd5b506040516200137138038062001371833981016040908152815160208301519183015160608401516080850151928501805190959490940193919290916000106200007057600080fd5b83516000106200007f57600080fd5b60055460065460ff909116600a0a026001558451620000a690600390602088019062000156565b508351620000bc90600490602087019062000156565b5060088054600160a060020a03808616600160a060020a0319928316179092556009805485841690831617905560078054848416921691909117808255600154908316600090815260208181526040808320849055935484519384529351939094169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050505050620001fb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019957805160ff1916838001178555620001c9565b82800160010185558215620001c9579182015b82811115620001c9578251825591602001919060010190620001ac565b50620001d7929150620001db565b5090565b620001f891905b80821115620001d75760008155600101620001e2565b90565b611166806200020b6000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610142578063095ea7b3146101cc57806313af40351461020457806318160ddd146102275780631f035c7a1461024e57806323b872dd14610272578063313ce5671461029c57806366188463146102c75780636817031b146102eb5780636e9960c31461030c578063704b6c021461033d57806370a082311461035e57806378250b631461037f57806379891359146103a3578063893d20e8146103b85780638d928af8146103cd578063944b7c3f146103e257806395d89b41146103f75780639fa77b201461040c578063a9059cbb1461042d578063cd3293de14610451578063d66bd52414610466578063d73dd62314610487578063dd62ed3e146104ab575b600080fd5b34801561014e57600080fd5b506101576104d2565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101f0600160a060020a0360043516602435610560565b604080519115158252519081900360200190f35b34801561021057600080fd5b50610225600160a060020a03600435166105c6565b005b34801561023357600080fd5b5061023c61066a565b60408051918252519081900360200190f35b34801561025a57600080fd5b50610225600160a060020a0360043516602435610670565b34801561027e57600080fd5b506101f0600160a060020a0360043581169060243516604435610829565b3480156102a857600080fd5b506102b161087a565b6040805160ff9092168252519081900360200190f35b3480156102d357600080fd5b506101f0600160a060020a0360043516602435610883565b3480156102f757600080fd5b50610225600160a060020a0360043516610972565b34801561031857600080fd5b50610321610abb565b60408051600160a060020a039092168252519081900360200190f35b34801561034957600080fd5b50610225600160a060020a0360043516610b11565b34801561036a57600080fd5b5061023c600160a060020a0360043516610bcc565b34801561038b57600080fd5b50610225600160a060020a0360043516602435610be7565b3480156103af57600080fd5b5061023c610c76565b3480156103c457600080fd5b50610321610c82565b3480156103d957600080fd5b50610321610cd8565b3480156103ee57600080fd5b5061023c610d2e565b34801561040357600080fd5b50610157610d34565b34801561041857600080fd5b5061023c600160a060020a0360043516610d8f565b34801561043957600080fd5b506101f0600160a060020a0360043516602435610daa565b34801561045d57600080fd5b5061023c610ddc565b34801561047257600080fd5b5061023c600160a060020a0360043516610def565b34801561049357600080fd5b506101f0600160a060020a0360043516602435610e01565b3480156104b757600080fd5b5061023c600160a060020a0360043581169060243516610e9a565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105585780601f1061052d57610100808354040283529160200191610558565b820191906000526020600020905b81548152906001019060200180831161053b57829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600754600160a060020a031633146105dd57600080fd5b600160a060020a03811615156105f257600080fd5b600854600160a060020a038281169116141561060d57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691821792839055604051919216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a350565b60015490565b60095460009081908190600160a060020a0316331461068e57600080fd5b600160a060020a03851615156106a357600080fd5b600084116106b057600080fd5b6106b985610d8f565b92506106c485610bcc565b9150838310156106d357600080fd5b838210156106e057600080fd5b50600160a060020a0384166000818152600a602090815260409182902086860390819055825181815292519093927f872768977511ded17070d838c821f2459b45f6dff642dc0cd79be17d6f9c12fc92908290030190a2600160a060020a038516600090815260208190526040902054610760908563ffffffff610ec516565b600160a060020a038087166000908152602081905260408082209390935560075490911681522054610798908563ffffffff610ed716565b60078054600160a060020a039081166000908152602081815260409182902094909455915482518881529251908216939189169260008051602061111b83398151915292908290030190a3604080518581529051600160a060020a038716917fbf7736aaf310cd7aa7cd231ba28117821189be3bc3d836e8afe017dfc629c665919081900360200190a25050505050565b600160a060020a0383166000908152600a60209081526040808320549183905282205461085b9163ffffffff610ec516565b82111561086757600080fd5b610872848484610eea565b949350505050565b60055460ff1681565b336000908152600260209081526040808320600160a060020a03861684529091528120548083106108d757336000908152600260209081526040808320600160a060020a038816845290915281205561090c565b6108e7818463ffffffff610ec516565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6008546000908190600160a060020a0316331461098e57600080fd5b600160a060020a03831615156109a357600080fd5b600754600160a060020a03848116911614156109be57600080fd5b60078054600160a060020a0385811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116935083907f16e2accad9173abff57b295b56993ec5d86b3cbf791fea02f02a6616463754ea90600090a350600160a060020a038082166000908152602081905260408082208054908390559285168252902054610a52908263ffffffff610ed716565b600160a060020a0380851660008181526020818152604080832095909555600281528482203383528152848220829055828252600a8152848220919091558351858152935191939286169260008051602061111b833981519152929081900390910190a3505050565b600854600090600160a060020a0316331480610ae15750600754600160a060020a031633145b80610af65750600954600160a060020a031633145b1515610b0157600080fd5b50600954600160a060020a031690565b600854600160a060020a0316331480610b345750600754600160a060020a031633145b1515610b3f57600080fd5b600160a060020a0381161515610b5457600080fd5b600954600160a060020a0382811691161415610b6f57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691821792839055604051919216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a350565b600160a060020a031660009081526020819052604090205490565b600954600160a060020a03163314610bfe57600080fd5b600154811115610c0d57600080fd5b600160a060020a0382161515610c2257600080fd5b600160a060020a0382166000818152600a6020908152604091829020849055815184815291517f872768977511ded17070d838c821f2459b45f6dff642dc0cd79be17d6f9c12fc9281900390910190a25050565b60055460ff16600a0a90565b600854600090600160a060020a0316331480610ca85750600754600160a060020a031633145b80610cbd5750600954600160a060020a031633145b1515610cc857600080fd5b50600854600160a060020a031690565b600854600090600160a060020a0316331480610cfe5750600754600160a060020a031633145b80610d135750600954600160a060020a031633145b1515610d1e57600080fd5b50600754600160a060020a031690565b60065490565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105585780601f1061052d57610100808354040283529160200191610558565b600160a060020a03166000908152600a602052604090205490565b6000610db533610d8f565b82610dbf33610bcc565b031015610dcb57600080fd5b610dd5838361104d565b9392505050565b336000908152600a602052604090205490565b600a6020526000908152604090205481565b336000908152600260209081526040808320600160a060020a0386168452909152812054610e35908363ffffffff610ed716565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600082821115610ed157fe5b50900390565b81810182811015610ee457fe5b92915050565b600160a060020a038316600090815260208190526040812054821115610f0f57600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610f3f57600080fd5b600160a060020a0383161515610f5457600080fd5b600160a060020a038416600090815260208190526040902054610f7d908363ffffffff610ec516565b600160a060020a038086166000908152602081905260408082209390935590851681522054610fb2908363ffffffff610ed716565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610ff4908363ffffffff610ec516565b600160a060020a038086166000818152600260209081526040808320338452825291829020949094558051868152905192871693919260008051602061111b833981519152929181900390910190a35060019392505050565b3360009081526020819052604081205482111561106957600080fd5b600160a060020a038316151561107e57600080fd5b3360009081526020819052604090205461109e908363ffffffff610ec516565b3360009081526020819052604080822092909255600160a060020a038516815220546110d0908363ffffffff610ed716565b600160a060020a0384166000818152602081815260409182902093909355805185815290519192339260008051602061111b8339815191529281900390910190a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058207e675eb55c1041805c8407b46bdb1450742b9e8022848e0e81248eb4d6e6a42d002900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000bf66753a42eeb2f5b5b528622073d576794535b7000000000000000000000000dc7e6fe01c5a8f753f3ff8de2dab145051ae17f300000000000000000000000059f66183e707ca6d2ec12fdcc192fdaae5ebb4da0000000000000000000000000000000000000000000000000000000000000003504c5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008506c6179436f696e000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610142578063095ea7b3146101cc57806313af40351461020457806318160ddd146102275780631f035c7a1461024e57806323b872dd14610272578063313ce5671461029c57806366188463146102c75780636817031b146102eb5780636e9960c31461030c578063704b6c021461033d57806370a082311461035e57806378250b631461037f57806379891359146103a3578063893d20e8146103b85780638d928af8146103cd578063944b7c3f146103e257806395d89b41146103f75780639fa77b201461040c578063a9059cbb1461042d578063cd3293de14610451578063d66bd52414610466578063d73dd62314610487578063dd62ed3e146104ab575b600080fd5b34801561014e57600080fd5b506101576104d2565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101f0600160a060020a0360043516602435610560565b604080519115158252519081900360200190f35b34801561021057600080fd5b50610225600160a060020a03600435166105c6565b005b34801561023357600080fd5b5061023c61066a565b60408051918252519081900360200190f35b34801561025a57600080fd5b50610225600160a060020a0360043516602435610670565b34801561027e57600080fd5b506101f0600160a060020a0360043581169060243516604435610829565b3480156102a857600080fd5b506102b161087a565b6040805160ff9092168252519081900360200190f35b3480156102d357600080fd5b506101f0600160a060020a0360043516602435610883565b3480156102f757600080fd5b50610225600160a060020a0360043516610972565b34801561031857600080fd5b50610321610abb565b60408051600160a060020a039092168252519081900360200190f35b34801561034957600080fd5b50610225600160a060020a0360043516610b11565b34801561036a57600080fd5b5061023c600160a060020a0360043516610bcc565b34801561038b57600080fd5b50610225600160a060020a0360043516602435610be7565b3480156103af57600080fd5b5061023c610c76565b3480156103c457600080fd5b50610321610c82565b3480156103d957600080fd5b50610321610cd8565b3480156103ee57600080fd5b5061023c610d2e565b34801561040357600080fd5b50610157610d34565b34801561041857600080fd5b5061023c600160a060020a0360043516610d8f565b34801561043957600080fd5b506101f0600160a060020a0360043516602435610daa565b34801561045d57600080fd5b5061023c610ddc565b34801561047257600080fd5b5061023c600160a060020a0360043516610def565b34801561049357600080fd5b506101f0600160a060020a0360043516602435610e01565b3480156104b757600080fd5b5061023c600160a060020a0360043581169060243516610e9a565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105585780601f1061052d57610100808354040283529160200191610558565b820191906000526020600020905b81548152906001019060200180831161053b57829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600754600160a060020a031633146105dd57600080fd5b600160a060020a03811615156105f257600080fd5b600854600160a060020a038281169116141561060d57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691821792839055604051919216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a350565b60015490565b60095460009081908190600160a060020a0316331461068e57600080fd5b600160a060020a03851615156106a357600080fd5b600084116106b057600080fd5b6106b985610d8f565b92506106c485610bcc565b9150838310156106d357600080fd5b838210156106e057600080fd5b50600160a060020a0384166000818152600a602090815260409182902086860390819055825181815292519093927f872768977511ded17070d838c821f2459b45f6dff642dc0cd79be17d6f9c12fc92908290030190a2600160a060020a038516600090815260208190526040902054610760908563ffffffff610ec516565b600160a060020a038087166000908152602081905260408082209390935560075490911681522054610798908563ffffffff610ed716565b60078054600160a060020a039081166000908152602081815260409182902094909455915482518881529251908216939189169260008051602061111b83398151915292908290030190a3604080518581529051600160a060020a038716917fbf7736aaf310cd7aa7cd231ba28117821189be3bc3d836e8afe017dfc629c665919081900360200190a25050505050565b600160a060020a0383166000908152600a60209081526040808320549183905282205461085b9163ffffffff610ec516565b82111561086757600080fd5b610872848484610eea565b949350505050565b60055460ff1681565b336000908152600260209081526040808320600160a060020a03861684529091528120548083106108d757336000908152600260209081526040808320600160a060020a038816845290915281205561090c565b6108e7818463ffffffff610ec516565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6008546000908190600160a060020a0316331461098e57600080fd5b600160a060020a03831615156109a357600080fd5b600754600160a060020a03848116911614156109be57600080fd5b60078054600160a060020a0385811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116935083907f16e2accad9173abff57b295b56993ec5d86b3cbf791fea02f02a6616463754ea90600090a350600160a060020a038082166000908152602081905260408082208054908390559285168252902054610a52908263ffffffff610ed716565b600160a060020a0380851660008181526020818152604080832095909555600281528482203383528152848220829055828252600a8152848220919091558351858152935191939286169260008051602061111b833981519152929081900390910190a3505050565b600854600090600160a060020a0316331480610ae15750600754600160a060020a031633145b80610af65750600954600160a060020a031633145b1515610b0157600080fd5b50600954600160a060020a031690565b600854600160a060020a0316331480610b345750600754600160a060020a031633145b1515610b3f57600080fd5b600160a060020a0381161515610b5457600080fd5b600954600160a060020a0382811691161415610b6f57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691821792839055604051919216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a350565b600160a060020a031660009081526020819052604090205490565b600954600160a060020a03163314610bfe57600080fd5b600154811115610c0d57600080fd5b600160a060020a0382161515610c2257600080fd5b600160a060020a0382166000818152600a6020908152604091829020849055815184815291517f872768977511ded17070d838c821f2459b45f6dff642dc0cd79be17d6f9c12fc9281900390910190a25050565b60055460ff16600a0a90565b600854600090600160a060020a0316331480610ca85750600754600160a060020a031633145b80610cbd5750600954600160a060020a031633145b1515610cc857600080fd5b50600854600160a060020a031690565b600854600090600160a060020a0316331480610cfe5750600754600160a060020a031633145b80610d135750600954600160a060020a031633145b1515610d1e57600080fd5b50600754600160a060020a031690565b60065490565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105585780601f1061052d57610100808354040283529160200191610558565b600160a060020a03166000908152600a602052604090205490565b6000610db533610d8f565b82610dbf33610bcc565b031015610dcb57600080fd5b610dd5838361104d565b9392505050565b336000908152600a602052604090205490565b600a6020526000908152604090205481565b336000908152600260209081526040808320600160a060020a0386168452909152812054610e35908363ffffffff610ed716565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600082821115610ed157fe5b50900390565b81810182811015610ee457fe5b92915050565b600160a060020a038316600090815260208190526040812054821115610f0f57600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610f3f57600080fd5b600160a060020a0383161515610f5457600080fd5b600160a060020a038416600090815260208190526040902054610f7d908363ffffffff610ec516565b600160a060020a038086166000908152602081905260408082209390935590851681522054610fb2908363ffffffff610ed716565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610ff4908363ffffffff610ec516565b600160a060020a038086166000818152600260209081526040808320338452825291829020949094558051868152905192871693919260008051602061111b833981519152929181900390910190a35060019392505050565b3360009081526020819052604081205482111561106957600080fd5b600160a060020a038316151561107e57600080fd5b3360009081526020819052604090205461109e908363ffffffff610ec516565b3360009081526020819052604080822092909255600160a060020a038516815220546110d0908363ffffffff610ed716565b600160a060020a0384166000818152602081815260409182902093909355805185815290519192339260008051602061111b8339815191529281900390910190a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058207e675eb55c1041805c8407b46bdb1450742b9e8022848e0e81248eb4d6e6a42d0029

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000bf66753a42eeb2f5b5b528622073d576794535b7000000000000000000000000dc7e6fe01c5a8f753f3ff8de2dab145051ae17f300000000000000000000000059f66183e707ca6d2ec12fdcc192fdaae5ebb4da0000000000000000000000000000000000000000000000000000000000000003504c5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008506c6179436f696e000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _symbol (string): PLY
Arg [1] : _name (string): PlayCoin
Arg [2] : _owner (address): 0xBf66753a42eeb2f5b5B528622073d576794535B7
Arg [3] : _admin (address): 0xDc7e6Fe01c5a8f753f3fF8de2DaB145051aE17f3
Arg [4] : _vault (address): 0x59f66183E707ca6d2EC12fDCC192fdAae5Ebb4Da

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 000000000000000000000000bf66753a42eeb2f5b5b528622073d576794535b7
Arg [3] : 000000000000000000000000dc7e6fe01c5a8f753f3ff8de2dab145051ae17f3
Arg [4] : 00000000000000000000000059f66183e707ca6d2ec12fdcc192fdaae5ebb4da
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 504c590000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [8] : 506c6179436f696e000000000000000000000000000000000000000000000000


Swarm Source

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