Blockwell

ATCCOIN

ERC20

This contract is an ERC20 token.

Name ATCCOIN
Symbol ATCC
Decimals 18
Total Supply 410,000,000 ATCC

About link

ATC Coin (ATCC) is a cryptocurrency launched in 2018and operates on the Ethereum platform. ATC Coin has a current supply of 410,000,000 with 408,553,792.28571516 in circulation. The last known price of ATC Coin is 0.00063945 USD and is down -49.10 over the last 24 hours. It is currently trading on 1 active market(s) with $289.85 traded over the last 24 hours. More information can be found at http://www.atccoin.com/.

Stats

Public Functions 9
Event Types 5
Code Size 10,238 bytes

Library Use

Uses SafeMath for uint.

Events (5) keyboard_arrow_up

Approval Event

Parameters help
_owner
address help
_spender
address help
_value
uint256 help

Issue Event

Parameters help
amount
uint help

Params Event

Parameters help
feeBasisPoints
uint help
maximumFee
uint help
minimumFee
uint help

Redeem Event

Parameters help
amount
uint help

Transfer Event

Parameters help
from
address help
to
address help
value
uint256 help

name Variable

string help

symbol Variable

string help

decimals Variable

uint8 help

basisPointsRate Variable

uint help

minimumFee Variable

uint help

maximumFee Variable

uint help

owner Variable

address help

_totalSupply Variable

uint help
Internal Variable

balances Variable

mapping(address => uint256) help
Internal Variable

allowed Variable

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

Functions Expand All Collapse All

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
owner
address help

Properties

Visibility help public
Mutability help view
Source Code
function balanceOf(address owner) public view returns (uint256) {
  return balances[owner];
}

Parameters help

Name Type
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function transfer(address _to, uint256 _value) public onlyPayloadSize(2 * 32) {
  //Calculate Fees from basis point rate
  uint256 fee = (_value.mul(basisPointsRate)).div(1000);
  if (fee > maximumFee) {
    fee = maximumFee;
  }
  if (fee < minimumFee) {
    fee = minimumFee;
  }
  // Prevent transfer to 0x0 address.
  require(_to != 0x0);
  //check receiver is not owner
  require(_to != address(0));
  //Check transfer value is > 0;
  require(_value > 0);
  // Check if the sender has enough
  require(balances[msg.sender] > _value);
  // Check for overflows
  require(balances[_to].add(_value) > balances[_to]);
  //sendAmount to receiver after deducted fee
  uint256 sendAmount = _value.sub(fee);
  // Subtract from the sender
  balances[msg.sender] = balances[msg.sender].sub(_value);
  // Add the same to the recipient
  balances[_to] = balances[_to].add(sendAmount);
  //Add fee to owner Account
  if (fee > 0) {
    balances[owner] = balances[owner].add(fee);
    emit Transfer(msg.sender, owner, fee);
  }
  // Notify anyone listening that this transfer took place
  emit Transfer(msg.sender, _to, _value);
}

Parameters help

Name Type
_spender
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function approve(address _spender, uint256 _value)
  public
  onlyPayloadSize(2 * 32)
  returns (bool success)
{
  //Check approve value is > 0;
  require(_value > 0);
  //Check balance of owner is greater than
  require(balances[owner] > _value);
  //check _spender is not itself
  require(_spender != msg.sender);
  //Allowed token to _spender
  allowed[msg.sender][_spender] = _value;
  //Notify anyone listening that this Approval took place
  emit Approval(msg.sender, _spender, _value);
  return true;
}

Parameters help

Name Type
_from
address help
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function transferFrom(
  address _from,
  address _to,
  uint256 _value
) public onlyPayloadSize(2 * 32) returns (bool success) {
  //Calculate Fees from basis point rate
  uint256 fee = (_value.mul(basisPointsRate)).div(1000);
  if (fee > maximumFee) {
    fee = maximumFee;
  }
  if (fee < minimumFee) {
    fee = minimumFee;
  }
  // Prevent transfer to 0x0 address. Use burn() instead
  require(_to != 0x0);
  //check receiver is not owner
  require(_to != address(0));
  //Check transfer value is > 0;
  require(_value > 0);
  // Check if the sender has enough
  require(_value < balances[_from]);
  // Check for overflows
  require(balances[_to].add(_value) > balances[_to]);
  // Check allowance
  require(_value <= allowed[_from][msg.sender]);
  uint256 sendAmount = _value.sub(fee);
  balances[_from] = balances[_from].sub(_value); // Subtract from the sender
  balances[_to] = balances[_to].add(sendAmount); // Add the same to the recipient
  allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
  if (fee > 0) {
    balances[owner] = balances[owner].add(fee);
    emit Transfer(_from, owner, fee);
  }
  emit Transfer(_from, _to, sendAmount);
  return true;
}

Parameters help

Name Type
_from
address help
_spender
address help

Properties

Visibility help public
Mutability help view
Source Code
function allowance(address _from, address _spender)
  public
  view
  returns (uint256 remaining)
{
  return allowed[_from][_spender];
}

setParams keyboard_arrow_up

Parameters help

Name Type
newBasisPoints
uint help
newMaxFee
uint help
newMinFee
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
function setParams(
  uint256 newBasisPoints,
  uint256 newMaxFee,
  uint256 newMinFee
) public onlyOwner {
  // Ensure transparency by hardcoding limit beyond which fees can never be added
  require(newBasisPoints <= 9);
  require(newMaxFee <= 100);
  require(newMinFee <= 5);
  basisPointsRate = newBasisPoints;
  maximumFee = newMaxFee.mul(10**uint256(decimals));
  minimumFee = newMinFee.mul(10**uint256(decimals));
  emit Params(basisPointsRate, maximumFee, minimumFee);
}

increaseSupply keyboard_arrow_up

Parameters help

Name Type
amount
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
function increaseSupply(uint256 amount) public onlyOwner {
  require(amount <= 10000000);
  amount = amount.mul(10**uint256(decimals));
  require(_totalSupply.add(amount) > _totalSupply);
  require(balances[owner].add(amount) > balances[owner]);
  balances[owner] = balances[owner].add(amount);
  _totalSupply = _totalSupply.add(amount);
  emit Issue(amount);
}

decreaseSupply keyboard_arrow_up

Parameters help

Name Type
amount
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
function decreaseSupply(uint256 amount) public onlyOwner {
  require(amount <= 10000000);
  amount = amount.mul(10**uint256(decimals));
  require(_totalSupply >= amount);
  require(balances[owner] >= amount);
  _totalSupply = _totalSupply.sub(amount);
  balances[owner] = balances[owner].sub(amount);
  emit Redeem(amount);
}

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.