Blockwell

KickToken

ERC20

This contract is an ERC20 token.

Name KickToken
Symbol KICK
Decimals 8
Total Supply 1,248,944,861,722 KICK

About

Stats

Public Functions 49
Event Types 12
Code Size 18,722 bytes

Library Use

Uses SafeMath for uint256.

Events (12) keyboard_arrow_up

Approval Event

Parameters help
owner
address help
spender
address help
value
uint256 help

BurnerTransferred Event

Parameters help
previousBurner
address help
newBurner
address help

Freeze Event

Parameters help
from
address help
amount
uint256 help

FrozenTransfer Event

Parameters help
from
address help
to
address help
value
uint256 help

Melt Event

Parameters help
from
address help
amount
uint256 help

MelterTransferred Event

Parameters help
previousMelter
address help
newMelter
address help

MintFrozen Event

Parameters help
to
address help
amount
uint256 help

MinterTransferred Event

Parameters help
previousMinter
address help
newMinter
address help

OwnershipTransferred Event

Parameters help
previousOwner
address help
newOwner
address help

PauserTransferred Event

Parameters help
previousPauser
address help
newPauser
address help

Transfer Event

Parameters help
from
address help
to
address help
value
uint256 help

WhitelistAdminTransferred Event

Parameters help
previousAdmin
address help
newAdmin
address help

name Variable

string help

symbol Variable

string help

decimals Variable

uint8 help

pendingOwner Variable

address help

pendingWhiteListAdmin Variable

address help

pendingBurner Variable

address help

pendingPauser Variable

address help

pendingMinterAdmin Variable

address help

pendingMelterAdmin Variable

address help

_balances Variable

mapping(address => uint256) help
Internal Variable

_allowances Variable

mapping(address => mapping(address => uint256)) help
Internal Variable

_totalSupply Variable

uint256 help
Internal Variable

frozen_balances Variable

mapping(address => uint256) help
Internal Variable

_owner Variable

address help
Internal Variable

_whitelistadmin Variable

address help
Internal Variable

_whitelisted Variable

mapping(address => bool) help
Internal Variable

_burnallow Variable

bool help
Internal Variable

_burner Variable

address help
Internal Variable

_paused Variable

bool help
Internal Variable

_pauser Variable

address help
Internal Variable

_minters Variable

mapping(address => bool) help
Internal Variable

_minteradmin Variable

address help
Internal Variable

_melters Variable

mapping(address => bool) help
Internal Variable

_melteradmin Variable

address help
Internal Variable

Functions Expand All Collapse All

melteradmin keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function melteradmin() public view returns (address) {
  return _melteradmin;
}

addToMelters keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function addToMelters(address account) public onlyMelterAdmin {
  _melters[account] = true;
}

removeFromMelters keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function removeFromMelters(address account) public onlyMelterAdmin {
  _melters[account] = false;
}

transferMelterAdmin keyboard_arrow_up

Parameters help

Name Type
newMelter
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferMelterAdmin(address newMelter) public onlyMelterAdmin {
  pendingMelterAdmin = newMelter;
}

claimMelterAdmin keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function claimMelterAdmin() public onlyPendingMelterAdmin {
  emit MelterTransferred(_melteradmin, pendingMelterAdmin);
  _melteradmin = pendingMelterAdmin;
  pendingMelterAdmin = address(0);
}

minteradmin keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function minteradmin() public view returns (address) {
  return _minteradmin;
}

addToMinters keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function addToMinters(address account) public onlyMinterAdmin {
  _minters[account] = true;
}

removeFromMinters keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function removeFromMinters(address account) public onlyMinterAdmin {
  _minters[account] = false;
}

transferMinterAdmin keyboard_arrow_up

Parameters help

Name Type
newMinter
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferMinterAdmin(address newMinter) public onlyMinterAdmin {
  pendingMinterAdmin = newMinter;
}

claimMinterAdmin keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function claimMinterAdmin() public onlyPendingMinterAdmin {
  emit MinterTransferred(_minteradmin, pendingMinterAdmin);
  _minteradmin = pendingMinterAdmin;
  pendingMinterAdmin = address(0);
}

paused keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function paused() public view returns (bool) {
  return _paused;
}

pauser keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function pauser() public view returns (address) {
  return _pauser;
}

pauseTrigger keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function pauseTrigger() public onlyPauser {
  _paused = !_paused;
}

transferPauser keyboard_arrow_up

Parameters help

Name Type
newPauser
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferPauser(address newPauser) public onlyPauser {
  pendingPauser = newPauser;
}

claimPauser keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function claimPauser() public onlyPendingPauser {
  emit PauserTransferred(_pauser, pendingPauser);
  _pauser = pendingPauser;
  pendingPauser = address(0);
}

burnallow keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function burnallow() public view returns (bool) {
  return _burnallow;
}

burner keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function burner() public view returns (address) {
  return _burner;
}

burnTrigger keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function burnTrigger() public onlyBurner {
  _burnallow = !_burnallow;
}

transferWhitelistAdmin keyboard_arrow_up

Parameters help

Name Type
newAdmin
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferWhitelistAdmin(address newAdmin) public onlyWhitelistAdmin {
  pendingWhiteListAdmin = newAdmin;
}

claimBurner keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function claimBurner() public onlyPendingBurner {
  emit BurnerTransferred(_burner, pendingBurner);
  _burner = pendingBurner;
  pendingBurner = address(0);
}

whitelistadmin keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function whitelistadmin() public view returns (address) {
  return _whitelistadmin;
}

addWhitelisted keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function addWhitelisted(address account) public onlyWhitelistAdmin {
  _whitelisted[account] = true;
}

removeWhitelisted keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function removeWhitelisted(address account) public onlyWhitelistAdmin {
  _whitelisted[account] = false;
}

isWhitelisted keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help view
Source Code
function isWhitelisted(address account) public view returns (bool) {
  return _whitelisted[account];
}

claimWhitelistAdmin keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function claimWhitelistAdmin() public onlyPendingWhitelistAdmin {
  emit WhitelistAdminTransferred(_whitelistadmin, pendingWhiteListAdmin);
  _whitelistadmin = pendingWhiteListAdmin;
  pendingWhiteListAdmin = address(0);
}

owner keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function owner() public view returns (address) {
  return _owner;
}

transferOwnership keyboard_arrow_up

Parameters help

Name Type
newOwner
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferOwnership(address newOwner) public onlyOwner {
  pendingOwner = newOwner;
}

claimOwnership keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function claimOwnership() public onlyPendingOwner {
  emit OwnershipTransferred(_owner, pendingOwner);
  _owner = pendingOwner;
  pendingOwner = address(0);
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function totalSupply() public view returns (uint256) {
  return _totalSupply;
}

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help view
Source Code
function balanceOf(address account) public view returns (uint256) {
  return _balances[account].add(_frozen_balanceOf(account));
}

Parameters help

Name Type
recipient
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

canTransfer checks for the following:
Source Code
function transfer(address recipient, uint256 amount)
  public
  canTransfer
  returns (bool)
{
  require(
    recipient != address(this),
    "can't transfer tokens to the contract address"
  );

  _transfer(msg.sender, recipient, amount);
  return true;
}

Parameters help

Name Type
_owner
address help
spender
address help

Properties

Visibility help public
Mutability help view
Source Code
function allowance(address _owner, address spender)
  public
  view
  returns (uint256)
{
  return _allowances[_owner][spender];
}

Parameters help

Name Type
spender
address help
value
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function approve(address spender, uint256 value) public returns (bool) {
  _approve(msg.sender, spender, value);
  return true;
}

approveAndCall keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_value
uint256 help
_extraData
bytes help

Properties

Visibility help public
Mutability help transaction
Source Code
function approveAndCall(
  address _spender,
  uint256 _value,
  bytes memory _extraData
) public returns (bool) {
  TokenRecipient spender = TokenRecipient(_spender);
  if (approve(_spender, _value)) {
    spender.receiveApproval(msg.sender, _value, address(this), _extraData);
    return true;
  } else {
    return false;
  }
}

Parameters help

Name Type
sender
address help
recipient
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

canTransfer checks for the following:
Source Code
function transferFrom(
  address sender,
  address recipient,
  uint256 amount
) public canTransfer returns (bool) {
  require(
    recipient != address(this),
    "can't transfer tokens to the contract address"
  );

  _transfer(sender, recipient, amount);
  _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
  return true;
}

Parameters help

Name Type
spender
address help
addedValue
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function increaseAllowance(address spender, uint256 addedValue)
  public
  returns (bool)
{
  _approve(
    msg.sender,
    spender,
    _allowances[msg.sender][spender].add(addedValue)
  );
  return true;
}

Parameters help

Name Type
spender
address help
subtractedValue
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
  public
  returns (bool)
{
  _approve(
    msg.sender,
    spender,
    _allowances[msg.sender][spender].sub(subtractedValue)
  );
  return true;
}

mint keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function mint(address account, uint256 amount)
  public
  onlyMinter
  returns (bool)
{
  _mint(account, amount);
  return true;
}

burn keyboard_arrow_up

Parameters help

Name Type
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function burn(uint256 amount) public whenBurn {
  _burn(msg.sender, amount);
}

burnFrom keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function burnFrom(address account, uint256 amount) public whenBurn {
  _burnFrom(account, amount);
}

destroy keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function destroy(address account, uint256 amount) public onlyOwner {
  _burn(account, amount);
}

destroyFrozen keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function destroyFrozen(address account, uint256 amount) public onlyOwner {
  _burnFrozen(account, amount);
}

mintBatchToken keyboard_arrow_up

Parameters help

Name Type
accounts
address[] help
amounts
uint256[] help

Properties

Visibility help public
Mutability help transaction
Source Code
function mintBatchToken(address[] calldata accounts, uint256[] calldata amounts)
  external
  onlyMinter
  returns (bool)
{
  require(
    accounts.length > 0,
    "mintBatchToken: transfer should be to at least one address"
  );
  require(
    accounts.length == amounts.length,
    "mintBatchToken: recipients.length != amounts.length"
  );
  for (uint256 i = 0; i < accounts.length; i++) {
    _mint(accounts[i], amounts[i]);
  }

  return true;
}

transferFrozenToken keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function transferFrozenToken(
  address from,
  address to,
  uint256 amount
) public onlyOwner returns (bool) {
  require(from != address(0), "ERC20: transfer from the zero address");
  require(to != address(0), "ERC20: transfer to the zero address");

  _frozen_sub(from, amount);
  _frozen_add(to, amount);

  emit FrozenTransfer(from, to, amount);
  emit Transfer(from, to, amount);

  return true;
}

freezeTokens keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function freezeTokens(address account, uint256 amount)
  public
  onlyOwner
  returns (bool)
{
  _freeze(account, amount);
  emit Transfer(account, address(this), amount);
  return true;
}

meltTokens keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function meltTokens(address account, uint256 amount)
  public
  onlyMelter
  returns (bool)
{
  _melt(account, amount);
  emit Transfer(address(this), account, amount);
  return true;
}

mintFrozenTokens keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function mintFrozenTokens(address account, uint256 amount)
  public
  onlyMinter
  returns (bool)
{
  _mintfrozen(account, amount);
  return true;
}

mintBatchFrozenTokens keyboard_arrow_up

Parameters help

Name Type
accounts
address[] help
amounts
uint256[] help

Properties

Visibility help public
Mutability help transaction
Source Code
function mintBatchFrozenTokens(
  address[] calldata accounts,
  uint256[] calldata amounts
) external onlyMinter returns (bool) {
  require(
    accounts.length > 0,
    "mintBatchFrozenTokens: transfer should be to at least one address"
  );
  require(
    accounts.length == amounts.length,
    "mintBatchFrozenTokens: recipients.length != amounts.length"
  );
  for (uint256 i = 0; i < accounts.length; i++) {
    _mintfrozen(accounts[i], amounts[i]);
  }

  return true;
}

meltBatchTokens keyboard_arrow_up

Parameters help

Name Type
accounts
address[] help
amounts
uint256[] help

Properties

Visibility help public
Mutability help transaction
Source Code
function meltBatchTokens(
  address[] calldata accounts,
  uint256[] calldata amounts
) external onlyMelter returns (bool) {
  require(
    accounts.length > 0,
    "mintBatchFrozenTokens: transfer should be to at least one address"
  );
  require(
    accounts.length == amounts.length,
    "mintBatchFrozenTokens: recipients.length != amounts.length"
  );
  for (uint256 i = 0; i < accounts.length; i++) {
    _melt(accounts[i], amounts[i]);
    emit Transfer(address(this), accounts[i], amounts[i]);
  }

  return true;
}

Internal Functions Expand All Collapse All

Internal functions are parts of the contract that can't be used directly, but instead are used by the public functions listed above.

internal KickToken._transfer keyboard_arrow_up

Parameters help

Name Type
sender
address help
recipient
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _transfer(
  address sender,
  address recipient,
  uint256 amount
) internal {
  require(sender != address(0), "ERC20: transfer from the zero address");
  require(recipient != address(0), "ERC20: transfer to the zero address");

  _balances[sender] = _balances[sender].sub(amount);
  _balances[recipient] = _balances[recipient].add(amount);
  emit Transfer(sender, recipient, amount);
}

internal KickToken._mint keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mint(address account, uint256 amount) internal {
  require(account != address(0), "ERC20: mint to the zero address");
  require(account != address(this), "ERC20: mint to the contract address");
  require(amount > 0, "ERC20: mint amount should be > 0");

  _totalSupply = _totalSupply.add(amount);
  _balances[account] = _balances[account].add(amount);
  emit Transfer(address(this), account, amount);
}

internal KickToken._burn keyboard_arrow_up

Parameters help

Name Type
account
address help
value
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _burn(address account, uint256 value) internal {
  require(account != address(0), "ERC20: burn from the zero address");

  _totalSupply = _totalSupply.sub(value);
  _balances[account] = _balances[account].sub(value);
  emit Transfer(account, address(this), value);
}

internal KickToken._approve keyboard_arrow_up

Parameters help

Name Type
_owner
address help
spender
address help
value
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _approve(
  address _owner,
  address spender,
  uint256 value
) internal {
  require(_owner != address(0), "ERC20: approve from the zero address");
  require(spender != address(0), "ERC20: approve to the zero address");

  _allowances[_owner][spender] = value;
  emit Approval(_owner, spender, value);
}

internal KickToken._burnFrom keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burnFrom(address account, uint256 amount) internal {
  _burn(account, amount);
  _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
}

internal KickToken._freeze keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _freeze(address account, uint256 amount) internal {
  require(account != address(0), "ERC20: freeze from the zero address");
  require(amount > 0, "ERC20: freeze from the address: amount should be > 0");

  _balances[account] = _balances[account].sub(amount);
  _frozen_add(account, amount);

  emit Freeze(account, amount);
}

internal KickToken._mintfrozen keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mintfrozen(address account, uint256 amount) internal {
  require(account != address(0), "ERC20: mint frozen to the zero address");
  require(
    account != address(this),
    "ERC20: mint frozen to the contract address"
  );
  require(amount > 0, "ERC20: mint frozen amount should be > 0");

  _totalSupply = _totalSupply.add(amount);

  emit Transfer(address(this), account, amount);

  _frozen_add(account, amount);

  emit MintFrozen(account, amount);
}

internal KickToken._melt keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _melt(address account, uint256 amount) internal {
  require(account != address(0), "ERC20: melt from the zero address");
  require(amount > 0, "ERC20: melt from the address: value should be > 0");
  require(
    _frozen_balanceOf(account) >= amount,
    "ERC20: melt from the address: balance < amount"
  );

  _frozen_sub(account, amount);
  _balances[account] = _balances[account].add(amount);

  emit Melt(account, amount);
}

internal KickToken._burnFrozen keyboard_arrow_up

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _burnFrozen(address account, uint256 amount) internal {
  require(account != address(0), "ERC20: frozen burn from the zero address");

  _totalSupply = _totalSupply.sub(amount);
  _frozen_sub(account, amount);

  emit Transfer(account, address(this), amount);
}

internal AccountFrozenBalances._frozen_add keyboard_arrow_up

Parameters help

Name Type
_account
address help
_amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _frozen_add(address _account, uint256 _amount)
  internal
  returns (bool)
{
  frozen_balances[_account] = frozen_balances[_account].add(_amount);
  return true;
}

internal AccountFrozenBalances._frozen_sub keyboard_arrow_up

Parameters help

Name Type
_account
address help
_amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _frozen_sub(address _account, uint256 _amount)
  internal
  returns (bool)
{
  frozen_balances[_account] = frozen_balances[_account].sub(_amount);
  return true;
}

internal AccountFrozenBalances._frozen_balanceOf keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help internal
Mutability help view
Source Code
function _frozen_balanceOf(address _account) internal view returns (uint256) {
  return frozen_balances[_account];
}

internal Ownable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _owner = msg.sender;
}

internal Whitelisted.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _whitelistadmin = msg.sender;
  _whitelisted[msg.sender] = true;
}

internal Burnable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _burnallow = true;
  _burner = msg.sender;
}

internal Pausable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _paused = false;
  _pauser = msg.sender;
}

internal Mintable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _minteradmin = msg.sender;
  _minters[msg.sender] = true;
}

internal Meltable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _melteradmin = msg.sender;
  _melters[msg.sender] = true;
}