ERC20
This contract is an ERC20 token.
Name
ElacToken
Symbol
ELAC
Decimals
18
Total Supply
10,000,000,000 ELAC
About
Stats
Public Functions
17
Event Types
12
Code Size
12,345 bytes
Library Use
Uses SafeMath for uint256.
Events (12) keyboard_arrow_up
State Variables (11) keyboard_arrow_up
Functions
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function transferOwnership(address _newOwner) public onlyOwner {
_transferOwnership(_newOwner);
}
freeze keyboard_arrow_up
unfreeze keyboard_arrow_up
freezeOf keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
whenNotFreeze checks for the following:
Source Code
function freezeOf(address _account) public onlyOwner whenNotFreeze {
freezeOf[_account] = true;
emit Freeze(_account);
}
unfreezeOf keyboard_arrow_up
transferAccessOn keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
offTransferAccess checks for the following:
Source Code
function transferAccessOn(address _account)
public
onlyOwner
offTransferAccess(_account)
{
transferAccess[_account] = true;
emit TransferAccessOn();
}
transferAccessOff keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
onTransferAccess checks for the following:
Source Code
function transferAccessOff(address _account)
public
onlyOwner
onTransferAccess(_account)
{
transferAccess[_account] = false;
emit TransferAccessOff();
}
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Modifiers help
onlyPayloadSize checks for the following:
whenNotFreeze checks for the following:
whenNotFreezeOf checks for the following:
whenNotFreezeOf checks for the following:
Requirements help
Source Code
function transfer(address _to, uint256 _value)
public
onlyPayloadSize(2 * 32)
whenNotFreeze
whenNotFreezeOf(msg.sender)
whenNotFreezeOf(_to)
{
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
}
accsessAccountTransfer keyboard_arrow_up
Modifiers help
onlyPayloadSize checks for the following:
onTransferAccess checks for the following:
Requirements help
Source Code
function accsessAccountTransfer(address _to, uint256 _value)
public
onlyPayloadSize(2 * 32)
onTransferAccess(msg.sender)
{
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Modifiers help
onlyPayloadSize checks for the following:
whenNotFreeze checks for the following:
whenNotFreezeOf checks for the following:
whenNotFreezeOf checks for the following:
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
)
public
onlyPayloadSize(3 * 32)
whenNotFreeze
whenNotFreezeOf(_from)
whenNotFreezeOf(_to)
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);
emit 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;
emit Approval(msg.sender, _spender, _value);
return true;
}
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval(address _spender, uint256 _addedValue)
public
returns (bool)
{
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];
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;
}
mint keyboard_arrow_up
Modifiers help
hasMintPermission checks for the following:
canMint checks for the following:
Source Code
function mint(address _to, uint256 _amount)
public
hasMintPermission
canMint
returns (bool)
{
totalSupply = totalSupply.add(_amount);
balances[_to] = balances[_to].add(_amount);
emit Mint(_to, _amount);
emit Transfer(address(0), _to, _amount);
return true;
}
finishMinting keyboard_arrow_up
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 Ownable._transferOwnership keyboard_arrow_up
Source Code
function _transferOwnership(address _newOwner) internal {
require(_newOwner != address(0));
emit OwnershipTransferred(owner, _newOwner);
owner = _newOwner;
}