ERC20
This contract is an ERC20 token.
Name
Chainium
Symbol
CHX
Decimals
18
Total Supply
168,956,522 CHX
About
Stats
Public Functions
24
Event Types
4
Code Size
14,294 bytes
Events (4) 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));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
increaseApproval keyboard_arrow_up
Modifiers help
restricted checks for the following:
Source Code
function increaseApproval(address _spender, uint256 _addedValue)
public
restricted
returns (bool success)
{
return super.increaseApproval(_spender, _addedValue);
}
decreaseApproval keyboard_arrow_up
Modifiers help
restricted checks for the following:
Source Code
function decreaseApproval(address _spender, uint256 _subtractedValue)
public
restricted
returns (bool success)
{
return super.decreaseApproval(_spender, _subtractedValue);
}
burn keyboard_arrow_up
Requirements help
Source Code
function burn(uint256 _value) public {
require(_value > 0);
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
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply = totalSupply.sub(_value);
Burn(burner, _value);
}
setTokenSaleContractAddress keyboard_arrow_up
setRestrictedState keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function setRestrictedState(bool _isRestricted) external onlyOwner {
isRestricted = _isRestricted;
}
transfer keyboard_arrow_up
transferFrom keyboard_arrow_up
approve keyboard_arrow_up
Modifiers help
restricted checks for the following:
Source Code
function approve(address _spender, uint256 _value)
public
restricted
returns (bool)
{
return super.approve(_spender, _value);
}
batchTransfer keyboard_arrow_up
Requirements help
Source Code
function batchTransfer(address[] _recipients, uint256[] _values)
external
returns (bool)
{
require(_recipients.length == _values.length);
for (uint256 i = 0; i < _values.length; i++) {
require(transfer(_recipients[i], _values[i]));
}
return true;
}
batchTransferFrom keyboard_arrow_up
Requirements help
Source Code
function batchTransferFrom(
address _from,
address[] _recipients,
uint256[] _values
) external returns (bool) {
require(_recipients.length == _values.length);
for (uint256 i = 0; i < _values.length; i++) {
require(transferFrom(_from, _recipients[i], _values[i]));
}
return true;
}
batchTransferFromMany keyboard_arrow_up
Requirements help
Source Code
function batchTransferFromMany(
address[] _senders,
address _to,
uint256[] _values
) external returns (bool) {
require(_senders.length == _values.length);
for (uint256 i = 0; i < _values.length; i++) {
require(transferFrom(_senders[i], _to, _values[i]));
}
return true;
}
batchTransferFromManyToMany keyboard_arrow_up
Requirements help
Source Code
function batchTransferFromManyToMany(
address[] _senders,
address[] _recipients,
uint256[] _values
) external returns (bool) {
require(_senders.length == _recipients.length);
require(_senders.length == _values.length);
for (uint256 i = 0; i < _values.length; i++) {
require(transferFrom(_senders[i], _recipients[i], _values[i]));
}
return true;
}
batchApprove keyboard_arrow_up
Requirements help
Source Code
function batchApprove(address[] _spenders, uint256[] _values)
external
returns (bool)
{
require(_spenders.length == _values.length);
for (uint256 i = 0; i < _values.length; i++) {
require(approve(_spenders[i], _values[i]));
}
return true;
}
batchIncreaseApproval keyboard_arrow_up
Requirements help
Source Code
function batchIncreaseApproval(address[] _spenders, uint256[] _addedValues)
external
returns (bool)
{
require(_spenders.length == _addedValues.length);
for (uint256 i = 0; i < _addedValues.length; i++) {
require(increaseApproval(_spenders[i], _addedValues[i]));
}
return true;
}
batchDecreaseApproval keyboard_arrow_up
Requirements help
Source Code
function batchDecreaseApproval(address[] _spenders, uint256[] _subtractedValues)
external
returns (bool)
{
require(_spenders.length == _subtractedValues.length);
for (uint256 i = 0; i < _subtractedValues.length; i++) {
require(decreaseApproval(_spenders[i], _subtractedValues[i]));
}
return true;
}
burn keyboard_arrow_up
drainStrayEther keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function drainStrayEther(uint256 _amount) external onlyOwner returns (bool) {
owner.transfer(_amount);
return true;
}
drainStrayTokens keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function drainStrayTokens(ERC20Basic _token, uint256 _amount)
external
onlyOwner
returns (bool)
{
return _token.transfer(owner, _amount);
}
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.