/

    Contract Diff Checker

    Contract Name:
    BUBA0000205

    Contract Source Code:

    File 1 of 1 : BUBA0000205

    pragma solidity 0.5.17;
    
    contract BUBA0000205 {
        using SafeMath for uint256;
    
        // State variables
        string public name;
        string public symbol;
        uint8 public decimals;
        uint256 private _totalSupply;
    
        mapping (address => uint256) private _balances;
        mapping (address => mapping (address => uint256)) private _allowances;
    
        // Events as per ERC20 standard
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    
        constructor(
            string memory tokenName,
            string memory tokenSymbol,
            uint8 decimalUnits,
            uint256 initialSupply
        ) public {
            name = tokenName;
            symbol = tokenSymbol;
            decimals = decimalUnits;
            _totalSupply = initialSupply * (10 ** uint256(decimals));
            _balances[msg.sender] = _totalSupply;
            emit Transfer(address(0), msg.sender, _totalSupply);
        }
    
        // Core ERC20 transfer functions
        function transfer(address recipient, uint256 amount) public returns (bool) {
            require(recipient != address(0), "ERC20: transfer to the zero address");
    
            _balances[msg.sender] = _balances[msg.sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(amount);
    
            emit Transfer(msg.sender, recipient, amount);
            return true;
        }
    
        function approve(address spender, uint256 amount) public returns (bool) {
            require(spender != address(0), "ERC20: approve to the zero address");
    
            _allowances[msg.sender][spender] = amount;
            emit Approval(msg.sender, spender, amount);
    
            return true;
        }
    
        function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
            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);
    
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount);
    
            emit Transfer(sender, recipient, amount);
            return true;
        }
        // Public functions
        function totalSupply() public view returns (uint256) {
            return _totalSupply;
        }
    
        function balanceOf(address account) public view returns (uint256) {
            return _balances[account];
        }
    
        function allowance(address owner, address spender) public view returns (uint256) {
            return _allowances[owner][spender];
        }
    
        function getDecimals() public view returns (uint256) {
            return decimals;
        }
        
    }
    
    // SafeMath library for arithmetic operations
    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            uint256 c = a + b;
            require(c >= a, "SafeMath: addition overflow");
    
            return c;
        }
    
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            require(b <= a, "SafeMath: subtraction overflow");
            uint256 c = a - b;
    
            return c;
        }
    }

    Please enter a contract address above to load the contract details and source code.

    Context size (optional):