ERC20
This contract is an ERC20 token.
                Name
                
                        Alchemix
                
            
            
                Symbol
                ALCX
            
            
                Decimals
                18
            
            
                Total Supply
                1,258,480 ALCX
            
            
            
        
                About
                    
                        link
                    
                     
            
            
                Alchemix (ALCX) is a cryptocurrency and operates on the Ethereum platform. Alchemix has a current supply of 716,506.98482562 with 283,672.98482562 in circulation. The last known price of Alchemix is 269.1364893 USD and is down -3.40 over the last 24 hours. It is currently trading on 16 active market(s) with $2,228,463.57 traded over the last 24 hours. More information can be found at https://alchemix.fi/.
            
        Stats
                Public Functions
                19
            
            
                Event Types
                5
            
            
                Code Size
                47,063 bytes
            
        Events (5) keyboard_arrow_up
State Variables (7) keyboard_arrow_up
Functions
name keyboard_arrow_up
symbol keyboard_arrow_up
decimals keyboard_arrow_up
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address recipient, uint256 amount)
  public
  virtual
  override
  returns (bool)
{
  _transfer(_msgSender(), recipient, amount);
  return true;
}
allowance keyboard_arrow_up
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 amount)
  public
  virtual
  override
  returns (bool)
{
  _approve(_msgSender(), spender, amount);
  return true;
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
  address sender,
  address recipient,
  uint256 amount
) public virtual override returns (bool) {
  _transfer(sender, recipient, amount);
  _approve(
    sender,
    _msgSender(),
    _allowances[sender][_msgSender()].sub(
      amount,
      "ERC20: transfer amount exceeds allowance"
    )
  );
  return true;
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
  public
  virtual
  returns (bool)
{
  _approve(
    _msgSender(),
    spender,
    _allowances[_msgSender()][spender].add(addedValue)
  );
  return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
  public
  virtual
  returns (bool)
{
  _approve(
    _msgSender(),
    spender,
    _allowances[_msgSender()][spender].sub(
      subtractedValue,
      "ERC20: decreased allowance below zero"
    )
  );
  return true;
}
hasRole keyboard_arrow_up
getRoleMemberCount keyboard_arrow_up
getRoleMember keyboard_arrow_up
getRoleAdmin keyboard_arrow_up
grantRole keyboard_arrow_up
Requirements help
null
                    Source Code
function grantRole(bytes32 role, address account) public virtual {
  require(
    hasRole(_roles[role].adminRole, _msgSender()),
    "AccessControl: sender must be an admin to grant"
  );
  _grantRole(role, account);
}
revokeRole keyboard_arrow_up
Requirements help
null
                    Source Code
function revokeRole(bytes32 role, address account) public virtual {
  require(
    hasRole(_roles[role].adminRole, _msgSender()),
    "AccessControl: sender must be an admin to revoke"
  );
  _revokeRole(role, account);
}
renounceRole keyboard_arrow_up
Requirements help
Source Code
function renounceRole(bytes32 role, address account) public virtual {
  require(
    account == _msgSender(),
    "AccessControl: can only renounce roles for self"
  );
  _revokeRole(role, account);
}
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 AccessControl._setupRole keyboard_arrow_up
internal AccessControl._setRoleAdmin keyboard_arrow_up
Source Code
function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
  emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);
  _roles[role].adminRole = adminRole;
}
internal AccessControl._grantRole keyboard_arrow_up
internal AccessControl._revokeRole keyboard_arrow_up
internal Context._msgSender keyboard_arrow_up
internal Context._msgData keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function _msgData() internal view virtual returns (bytes memory) {
  this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
  return msg.data;
}
internal ERC20._transfer keyboard_arrow_up
Requirements help
Source Code
function _transfer(
  address sender,
  address recipient,
  uint256 amount
) internal virtual {
  require(sender != address(0), "ERC20: transfer from the zero address");
  require(recipient != address(0), "ERC20: transfer to the zero address");
  _beforeTokenTransfer(sender, recipient, amount);
  _balances[sender] = _balances[sender].sub(
    amount,
    "ERC20: transfer amount exceeds balance"
  );
  _balances[recipient] = _balances[recipient].add(amount);
  emit Transfer(sender, recipient, amount);
}
internal ERC20._mint keyboard_arrow_up
Requirements help
Source Code
function _mint(address account, uint256 amount) internal virtual {
  require(account != address(0), "ERC20: mint to the zero address");
  _beforeTokenTransfer(address(0), account, amount);
  _totalSupply = _totalSupply.add(amount);
  _balances[account] = _balances[account].add(amount);
  emit Transfer(address(0), account, amount);
}
internal ERC20._burn keyboard_arrow_up
Source Code
function _burn(address account, uint256 amount) internal virtual {
  require(account != address(0), "ERC20: burn from the zero address");
  _beforeTokenTransfer(account, address(0), amount);
  _balances[account] = _balances[account].sub(
    amount,
    "ERC20: burn amount exceeds balance"
  );
  _totalSupply = _totalSupply.sub(amount);
  emit Transfer(account, address(0), amount);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
function _approve(
  address owner,
  address spender,
  uint256 amount
) internal virtual {
  require(owner != address(0), "ERC20: approve from the zero address");
  require(spender != address(0), "ERC20: approve to the zero address");
  _allowances[owner][spender] = amount;
  emit Approval(owner, spender, amount);
}
internal ERC20._setupDecimals keyboard_arrow_up
internal ERC20._beforeTokenTransfer keyboard_arrow_up
internal Context._msgSender keyboard_arrow_up
internal Context._msgData keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function _msgData() internal view virtual returns (bytes memory) {
  this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
  return msg.data;
}
 
         
    



