P2P Global Network
ERC20
This contract is an ERC20 token.
Name
P2P Global Network
Symbol
P2PX
Decimals
18
Total Supply
100,000,000 P2PX
About
Stats
Public Functions
14
Event Types
7
Code Size
13,833 bytes
Events (7) keyboard_arrow_up
State Variables (6) keyboard_arrow_up
Functions
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address _to, uint256 _value) public returns (bool success) {
require(!frozenAccount[msg.sender]);
if (frozen) return false;
else return AbstractToken.transfer(_to, _value);
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public returns (bool success) {
require(!frozenAccount[_from]);
if (frozen) return false;
else return AbstractToken.transferFrom(_from, _to, _value);
}
approve keyboard_arrow_up
Requirements help
One or more of the following:
-
_value
must be equal to
0
- OR
the result of calling allowance with the sender's address, _spender
must be equal to
0
Source Code
function approve(address _spender, uint256 _value)
public
returns (bool success)
{
require(allowance(msg.sender, _spender) == 0 || _value == 0);
return AbstractToken.approve(_spender, _value);
}
allowance keyboard_arrow_up
createTokens keyboard_arrow_up
Requirements help
Source Code
function createTokens(uint256 _value) public returns (bool success) {
require(msg.sender == owner);
if (_value > 0) {
if (_value > safeSub(MAX_TOKEN_COUNT, tokenCount)) return false;
accounts[msg.sender] = safeAdd(accounts[msg.sender], _value);
tokenCount = safeAdd(tokenCount, _value);
// adding transfer event and _from address as null address
emit Transfer(address(0), msg.sender, _value);
return true;
}
return false;
}
mintToken keyboard_arrow_up
Requirements help
Source Code
function mintToken(address target, uint256 mintedAmount)
public
returns (bool success)
{
require(msg.sender == owner);
if (mintedAmount > 0) {
accounts[target] = safeAdd(accounts[target], mintedAmount);
tokenCount = safeAdd(tokenCount, mintedAmount);
// adding transfer event and _from address as null address
emit Transfer(address(0), target, mintedAmount);
return true;
}
return false;
}
burn keyboard_arrow_up
Requirements help
Source Code
function burn(uint256 _value) public returns (bool success) {
require(accounts[msg.sender] >= _value);
require(msg.sender == owner);
accounts[msg.sender] = safeSub(accounts[msg.sender], _value);
tokenCount = safeSub(tokenCount, _value);
emit Burn(msg.sender, _value);
return true;
}
setOwner keyboard_arrow_up
freezeTransfers keyboard_arrow_up
unfreezeTransfers keyboard_arrow_up
refundTokens keyboard_arrow_up
Requirements help
Source Code
function refundTokens(
address _token,
address _refund,
uint256 _value
) public {
require(msg.sender == owner);
require(_token != address(this));
AbstractToken token = AbstractToken(_token);
token.transfer(_refund, _value);
emit RefundTokens(_token, _refund, _value);
}
freezeAccount keyboard_arrow_up
Requirements help
Source Code
function freezeAccount(address _target, bool freeze) public {
require(msg.sender == owner);
require(msg.sender != _target);
frozenAccount[_target] = freeze;
emit FrozenFunds(_target, freeze);
}
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.
internal SafeMath.mul keyboard_arrow_up
Source Code
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;
}
internal SafeMath.safeDiv keyboard_arrow_up
Source Code
function safeDiv(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 c;
}