PlatonCoin
ERC20
This contract is an ERC20 token.
Name
PlatonCoin
Symbol
PLTC
Decimals
18
Total Supply
21,000,000 PLTC
About
Stats
Public Functions
16
Event Types
5
Code Size
12,605 bytes
Library Use
Uses SafeMath for uint256.
Events (5) keyboard_arrow_up
State Variables (11) keyboard_arrow_up
Functions
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address _address, uint256 _tokens) public returns (bool) {
require(!stopped);
if (_tokens == 0) {
emit Transfer(msg.sender, _address, _tokens); // Follow the spec to launch the event when tokens are equal to 0
return true;
}
require(_address != address(0x0));
require(balances[msg.sender] >= _tokens);
balances[msg.sender] = (balances[msg.sender]).sub(_tokens);
balances[_address] = (balances[_address]).add(_tokens);
emit Transfer(msg.sender, _address, _tokens);
return true;
}
allowance keyboard_arrow_up
Requirements help
Source Code
function allowance(address _owner, address _spender)
public
view
returns (uint256)
{
require(!stopped);
require(_owner != address(0x0) && _spender != address(0x0));
return allowed[_owner][_spender];
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public returns (bool) {
require(!stopped);
if (_value == 0) {
emit Transfer(_from, _to, _value); // Follow the spec to launch the event when value is equal to 0
return true;
}
require(_to != address(0x0));
require(
balances[_from] >= _value &&
allowed[_from][msg.sender] >= _value &&
_value >= 0
);
balances[_from] = balances[_from].sub(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _tokens) public returns (bool) {
require(!stopped);
require(_spender != address(0x0));
allowed[msg.sender][_spender] = _tokens;
emit Approval(msg.sender, _spender, _tokens);
return true;
}
pauseCrowdSale keyboard_arrow_up
resumeCrowdSale keyboard_arrow_up
initWallets keyboard_arrow_up
Parameters help
Modifiers help
onlyOwner checks for the following:
Requirements help
Source Code
function initWallets(
address _teamWallet,
address _advisorWallet,
address _bountyWallet,
address _earlyInvWallet
) public onlyOwner {
require(!stopped);
require(
_teamWallet != address(0x0) &&
_advisorWallet != address(0x0) &&
_bountyWallet != address(0x0) &&
_earlyInvWallet != address(0x0)
);
balances[_teamWallet] = totalTeamSupply;
balances[_advisorWallet] = totalAdvisorsSupply;
balances[_bountyWallet] = totalBountySupply;
balances[_earlyInvWallet] = totalEarlyInvSupply;
emit Transfer(address(0x0), _teamWallet, balances[_teamWallet]);
emit Transfer(address(0x0), _advisorWallet, balances[_advisorWallet]);
emit Transfer(address(0x0), _bountyWallet, balances[_bountyWallet]);
emit Transfer(address(0x0), _earlyInvWallet, balances[_earlyInvWallet]);
}
burn keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Requirements help
Source Code
function burn(uint256 _value) public onlyOwner returns (bool) {
require(!stopped);
require(_value <= balances[msg.sender]);
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalTokenSupply = totalTokenSupply.sub(_value);
totalBurned = totalBurned.add(_value);
emit Burn(burner, _value);
emit Transfer(burner, address(0x0), _value);
return true;
}
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function transferOwnership(address _newOwner) public onlyOwner {
require(!stopped);
require(_newOwner != address(0x0));
balances[_newOwner] = (balances[_newOwner]).add(balances[owner]);
balances[owner] = 0;
owner = _newOwner;
emit Transfer(msg.sender, _newOwner, balances[_newOwner]);
}
renounceOwnership keyboard_arrow_up
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval(address _spender, uint256 _addedValue)
public
returns (bool)
{
require(!stopped);
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(
_addedValue
);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval(address _spender, uint256 _subtractedValue)
public
returns (bool)
{
uint256 oldValue = allowed[msg.sender][_spender];
require(!stopped);
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;
}
transferAnyERC20Token keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function transferAnyERC20Token(address _tokenAddress, uint256 _tokens)
public
onlyOwner
returns (bool)
{
require(!stopped);
return ERC20Interface(_tokenAddress).transfer(owner, _tokens);
}
Internal Functions
Internal functions are parts of the contract that can't be used directly, but instead are used by the public functions listed above.