how can i add mint and burn function to my this erc20 contract code?

by Ahmet Emre   Last Updated October 09, 2019 21:28 PM

how can i add mint and burn function to my this erc20 contract code ?

this code is working properly but i couldnt add mint and burn function that working true..

is there anyone who will help me about fixing this code.

thx and best wishes


pragma solidity ^0.4.24;

library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; require(c >= a); } function sub(uint256 a, uint256 b) internal pure returns (uint256 c) { require(b <= a); c = a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a * b; require(a == 0 || c / a == b); } function div(uint256 a, uint256 b) internal pure returns (uint256 c) { require(b > 0); c = a / b; } }

contract ERC20Interface { function totalSupply() public constant returns (uint256); function balanceOf(address tokenOwner) public constant returns (uint256 balance); function allowance(address tokenOwner, address spender) public constant returns (uint256 remaining); function transfer(address to, uint256 tokens) public returns (bool success); function approve(address spender, uint256 tokens) public returns (bool success); function transferFrom(address from, address to, uint256 tokens) public returns (bool success);

event Transfer(address indexed from, address indexed to, uint256 tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens);

}

contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) public; }

contract Owned { address public owner; address public newOwner;

event OwnershipTransferred(address indexed _from, address indexed _to);

constructor() public {
    owner = msg.sender;
}

modifier onlyOwner {
    require(msg.sender == owner);
    _;
}

function transferOwnership(address _newOwner) public onlyOwner {
    newOwner = _newOwner;
}
function acceptOwnership() public {
    require(msg.sender == newOwner);
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
    newOwner = address(0);
}

}

contract ESSTOKEN is ERC20Interface, Owned { using SafeMath for uint256;

string public symbol;
string public  name;
uint8 public decimals;
uint256 _totalSupply;

mapping(address => uint256) balances;
mapping(address => mapping(address => uint256)) allowed;



constructor() public {
    symbol = "ESS";
    name = "ESS TOKEN";
    decimals = 8;
    _totalSupply = 100000 * 10**uint(decimals);
    balances[owner] = _totalSupply;
    emit Transfer(address(0), owner, _totalSupply);
}



function totalSupply() public view returns (uint256) {
    return _totalSupply.sub(balances[address(0)]);
}



function balanceOf(address tokenOwner) public view returns (uint256 balance) {
    return balances[tokenOwner];
}



function transfer(address to, uint256 tokens) public returns (bool success) {
    require(to != address(0));
    require(tokens <= balances[msg.sender]);
    balances[msg.sender] = balances[msg.sender].sub(tokens);
    balances[to] = balances[to].add(tokens);
    emit Transfer(msg.sender, to, tokens);
    return true;
}



function approve(address spender, uint256 tokens) public returns (bool success) {
    allowed[msg.sender][spender] = tokens;
    emit Approval(msg.sender, spender, tokens);
    return true;
}



function transferFrom(address from, address to, uint256 tokens) public returns (bool success) {
    require(to != address(0));
    require(tokens <= balances[msg.sender]);
    balances[from] = balances[from].sub(tokens);
    allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
    balances[to] = balances[to].add(tokens);
    emit Transfer(from, to, tokens);
    return true;
}



function allowance(address tokenOwner, address spender) public view returns (uint256 remaining) {
    return allowed[tokenOwner][spender];
}



function approveAndCall(address spender, uint256 tokens, bytes data) public returns (bool success) {
    allowed[msg.sender][spender] = tokens;
    emit Approval(msg.sender, spender, tokens);
    ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
    return true;
}



function () public payable {
    revert();
}



function transferAnyERC20Token(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
    return ERC20Interface(tokenAddress).transfer(owner, tokens);
}

}



Related Questions


Updated October 26, 2018 14:28 PM

Updated August 19, 2017 07:28 AM

Updated August 28, 2017 18:28 PM

Updated September 29, 2017 04:28 AM

Updated March 13, 2018 06:28 AM