Blockwell

PlayChip

ERC20

This contract is an ERC20 token.

Name PlayChip
Symbol PLA
Decimals 18
Total Supply 50,000,000,000 PLA

About link description

PlayChip (PLA) is a cryptocurrency and operates on the Ethereum platform. PlayChip has a current supply of 49,999,999,999.999901 with 0 in circulation. The last known price of PlayChip is 0.01265042 USD and is down -5.64 over the last 24 hours. It is currently trading on 4 active market(s) with $45,540.88 traded over the last 24 hours. More information can be found at https://www.playchip.com.

Stats

Public Functions 15
Event Types 10
Code Size 26,251 bytes

Events (10) keyboard_arrow_up

Approval Event

Parameters help
owner
address help
spender
address help
quantity
uint help

OwnerChanged Event

Parameters help
oldOwner
address help
newOwner
address help

OwnerNominated Event

Parameters help
newOwner
address help

Paused Event

Parameters help

SelfDestructBeneficiaryUpdated Event

Parameters help
newBeneficiary
address help

SelfDestructInitiated Event

Parameters help
selfDestructDelay
uint help

SelfDestructTerminated Event

Parameters help

SelfDestructed Event

Parameters help
beneficiary
address help

Transfer Event

Parameters help
from
address help
to
address help
quantity
uint help

Unpaused Event

Parameters help

SELFDESTRUCT_DELAY Constant

uint help
4 weeks

name Variable

string help

symbol Variable

string help

decimals Variable

uint8 help

totalSupply Variable

uint help

owner Variable

address help

nominatedOwner Variable

address help

paused Variable

bool help

selfDestructInitiationTime Variable

uint help

selfDestructInitiated Variable

bool help

selfDestructBeneficiary Variable

address help

balanceOf Variable

mapping(address => uint) help

allowance Variable

mapping(address => mapping(address => uint)) help
Internal Variable

Functions Expand All Collapse All

nominateNewOwner keyboard_arrow_up

Parameters help

Name Type
_owner
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function nominateNewOwner(address _owner) public onlyOwner {
  nominatedOwner = _owner;
  emit OwnerNominated(_owner);
}

acceptOwnership keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function acceptOwnership() external {
  require(msg.sender == nominatedOwner, "Not nominated.");
  emit OwnerChanged(owner, nominatedOwner);
  owner = nominatedOwner;
  nominatedOwner = address(0);
}

setSelfDestructBeneficiary keyboard_arrow_up

Parameters help

Name Type
_beneficiary
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function setSelfDestructBeneficiary(address _beneficiary) external onlyOwner {
  require(
    _beneficiary != address(0),
    "Beneficiary must not be the zero address."
  );
  selfDestructBeneficiary = _beneficiary;
  emit SelfDestructBeneficiaryUpdated(_beneficiary);
}

initiateSelfDestruct keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function initiateSelfDestruct() external onlyOwner {
  require(!selfDestructInitiated, "Self-destruct already initiated.");
  selfDestructInitiationTime = now;
  selfDestructInitiated = true;
  emit SelfDestructInitiated(SELFDESTRUCT_DELAY);
}

terminateSelfDestruct keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function terminateSelfDestruct() external onlyOwner {
  require(selfDestructInitiated, "Self-destruct not yet initiated.");
  selfDestructInitiationTime = 0;
  selfDestructInitiated = false;
  emit SelfDestructTerminated();
}

selfDestruct keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function selfDestruct() external onlyOwner {
  require(selfDestructInitiated, "Self-destruct not yet initiated.");
  require(
    selfDestructInitiationTime + SELFDESTRUCT_DELAY < now,
    "Self-destruct delay has not yet elapsed."
  );
  address beneficiary = selfDestructBeneficiary;
  emit SelfDestructed(beneficiary);
  selfdestruct(beneficiary);
}

pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function pause() public onlyOwner {
  _pause();
}

unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function unpause() public onlyOwner {
  _unpause();
}

Parameters help

Name Type
spender
address help
quantity
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function approve(address spender, uint256 quantity)
  public
  pausableIfNotSelfDestructing
  returns (bool)
{
  require(spender != address(0), "Approvals for 0x0 disallowed.");
  allowance[msg.sender][spender] = quantity;
  emit Approval(msg.sender, spender, quantity);
  return true;
}

Parameters help

Name Type
to
address help
quantity
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function transfer(address to, uint256 quantity)
  public
  pausableIfNotSelfDestructing
  returns (bool)
{
  return _transfer(msg.sender, to, quantity);
}

Parameters help

Name Type
from
address help
to
address help
quantity
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function transferFrom(
  address from,
  address to,
  uint256 quantity
) public pausableIfNotSelfDestructing returns (bool) {
  // safeSub handles insufficient allowance.
  allowance[from][msg.sender] = safeSub(allowance[from][msg.sender], quantity);
  return _transfer(from, to, quantity);
}

batchTransfer keyboard_arrow_up

Parameters help

Name Type
recipients
address[] help
quantities
uint[] help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function batchTransfer(address[] recipients, uint256[] quantities)
  external
  pausableIfNotSelfDestructing
  returns (bool)
{
  return _batchTransfer(msg.sender, recipients, quantities);
}

batchApprove keyboard_arrow_up

Parameters help

Name Type
spenders
address[] help
quantities
uint[] help

Properties

Visibility help public
Mutability help transaction
Source Code
function batchApprove(address[] spenders, uint256[] quantities)
  external
  pausableIfNotSelfDestructing
  requireSameLength(spenders.length, quantities.length)
  returns (bool)
{
  uint256 length = spenders.length;
  for (uint256 i = 0; i < length; i++) {
    approve(spenders[i], quantities[i]);
  }
  return true;
}

batchTransferFrom keyboard_arrow_up

Parameters help

Name Type
spenders
address[] help
recipients
address[] help
quantities
uint[] help

Properties

Visibility help public
Mutability help transaction
Source Code
function batchTransferFrom(
  address[] spenders,
  address[] recipients,
  uint256[] quantities
)
  external
  pausableIfNotSelfDestructing
  requireSameLength(spenders.length, recipients.length)
  requireSameLength(recipients.length, quantities.length)
  returns (bool)
{
  uint256 length = spenders.length;
  for (uint256 i = 0; i < length; i++) {
    transferFrom(spenders[i], recipients[i], quantities[i]);
  }
  return true;
}

contractBatchTransfer keyboard_arrow_up

Parameters help

Name Type
recipients
address[] help
quantities
uint[] help

Properties

Visibility help public
Mutability help transaction
Source Code
function contractBatchTransfer(address[] recipients, uint256[] quantities)
  external
  onlyOwner
  returns (bool)
{
  return _batchTransfer(this, recipients, quantities);
}

Internal Functions Expand All Collapse All

Internal functions are parts of the contract that can't be used directly, but instead are used by the public functions listed above.

internal PlayChip.safeSub keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure

Requirements help

Source Code
function safeSub(uint256 x, uint256 y) internal pure returns (uint256) {
  require(y <= x, "Safe sub failed.");
  return x - y;
}

internal PlayChip._transfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
quantity
uint help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _transfer(
  address from,
  address to,
  uint256 quantity
) internal returns (bool) {
  require(to != address(0), "Transfers to 0x0 disallowed.");
  balanceOf[from] = safeSub(balanceOf[from], quantity); // safeSub handles insufficient balance.
  balanceOf[to] += quantity;
  emit Transfer(from, to, quantity);
  return true;

  /* Since balances are only manipulated here, and the sum of all
   * balances is preserved, no balance is greater than
   * totalSupply; the safeSub implies that balanceOf[to] + quantity is
   * no greater than totalSupply.
   * Thus a safeAdd is unnecessary, since overflow is impossible. */
}

internal PlayChip._batchTransfer keyboard_arrow_up

Parameters help

Name Type
sender
address help
recipients
address[] help
quantities
uint[] help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _batchTransfer(
  address sender,
  address[] recipients,
  uint256[] quantities
)
  internal
  requireSameLength(recipients.length, quantities.length)
  returns (bool)
{
  uint256 length = recipients.length;
  for (uint256 i = 0; i < length; i++) {
    _transfer(sender, recipients[i], quantities[i]);
  }
  return true;
}

internal Pausable._pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
function _pause() internal {
  if (!paused) {
    paused = true;
    emit Paused();
  }
}

internal Pausable._unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
function _unpause() internal {
  if (paused) {
    paused = false;
    emit Unpaused();
  }
}