EnhancedToken.sol

 avatar
bruteCoder
plain_text
9 months ago
1.0 kB
8
Indexable
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

contract EnhancedToken {

    // Public variables here
    string public tokenName = "DogeCoin";
    string public tokenAbbrv = "DOGE";
    uint public totalSupply = 0;

    // Mapping variable here
    mapping(address => uint) public balances;

    // Events
    event Mint(address indexed to, uint256 value);
    event Burn(address indexed from, uint256 value);

    // Mint function
    function mint(address _address, uint _value) public  {
        totalSupply += _value;
        balances[_address] += _value;
        emit Mint(_address, _value);
    }

    // Burn function
    function burn(address _address, uint _value) public {
        require(balances[_address] >= _value, "Not enough tokens to burn");
        totalSupply -= _value;
        balances[_address] -= _value;
        emit Burn(_address, _value);
    }

    // Function to check balance of an address
    function balanceOf(address _address) public view returns (uint) {
        return balances[_address];
    }
}
Editor is loading...
Leave a Comment