CrypteriumToken
ERC20
This contract is an ERC20 token.
Name
CrypteriumToken
Symbol
CRPT
Decimals
18
Total Supply
99,489,833 CRPT
About
Stats
Public Functions
11
Event Types
5
Code Size
6,339 bytes
Events (5) keyboard_arrow_up
Constants (8) keyboard_arrow_up
State Variables (6) keyboard_arrow_up
Functions
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
owner = newOwner;
}
transfer keyboard_arrow_up
Modifiers help
whenTransferAllowed checks for the following:
Requirements help
Source Code
function transfer(address _to, uint256 _value)
public
whenTransferAllowed
returns (bool)
{
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender] - _value;
balances[_to] = balances[_to] + _value;
//assert(balances[_to] >= _value); no need to check, since mint has limited hardcap
Transfer(msg.sender, _to, _value);
return true;
}
balanceOf keyboard_arrow_up
transferFrom keyboard_arrow_up
Modifiers help
whenTransferAllowed checks for the following:
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public whenTransferAllowed returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from] - _value;
balances[_to] = balances[_to] + _value;
//assert(balances[_to] >= _value); no need to check, since mint has limited hardcap
allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value;
Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
//NOTE: To prevent attack vectors like the one discussed here:
//https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729,
//clients SHOULD make sure to create user interfaces in such a way
//that they set the allowance first to 0 before setting it to another value for the same spender.
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
allowance keyboard_arrow_up
allowTransfer keyboard_arrow_up
mint keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
saleIsOn checks for the following:
canMint checks for the following:
Requirements help
Source Code
function mint(address _to, uint256 _value)
public
onlyOwner
saleIsOn
canMint
returns (bool)
{
require(_to != address(0));
uint256 restrictedTokens = (_value * restrictedPercent) /
(100 - restrictedPercent);
uint256 _amount = _value + restrictedTokens;
assert(_amount >= _value);
if (_amount + totalSupply <= hardcap) {
totalSupply = totalSupply + _amount;
assert(totalSupply >= _amount);
balances[msg.sender] = balances[msg.sender] + _amount;
assert(balances[msg.sender] >= _amount);
Mint(msg.sender, _amount);
transfer(_to, _value);
transfer(restricted, restrictedTokens);
}
return true;
}
finishMinting keyboard_arrow_up
burn keyboard_arrow_up
Requirements help
Source Code
function burn(uint256 _value) public returns (bool) {
require(_value <= balances[msg.sender]);
// no need to require value <= totalSupply, since that would imply the
// sender's balance is greater than the totalSupply, which *should* be an assertion failure
balances[msg.sender] = balances[msg.sender] - _value;
totalSupply = totalSupply - _value;
Burn(msg.sender, _value);
return true;
}
burnFrom keyboard_arrow_up
Requirements help
Source Code
function burnFrom(address _from, uint256 _value) public returns (bool success) {
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from] - _value;
allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value;
totalSupply = totalSupply - _value;
Burn(_from, _value);
return true;
}
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.