/

    Contract Diff Checker

    Contract Name:
    Token

    Contract Source Code:

    pragma solidity 0.8.19;
    
    interface IMemeboxTokenFactory {
        function getInitializable() external view returns (string memory, string memory, uint8, uint256);
    }
    
    contract Token {
        string public name;
        string public symbol;
        uint8 public decimals;
        uint256 public totalSupply;
    
        mapping(address => uint256) public balanceOf;
        mapping(address => mapping(address => uint256)) public allowance;
    
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    
        constructor() {
            (name, symbol, decimals, totalSupply) = IMemeboxTokenFactory(msg.sender).getInitializable();
            balanceOf[msg.sender] = totalSupply;
            emit Transfer(address(0), msg.sender, totalSupply);
        }
    
        function transfer(address to, uint256 amount) external returns (bool) {
            require(balanceOf[msg.sender] >= amount, "Insufficient balance");
            balanceOf[msg.sender] -= amount;
            balanceOf[to] += amount;
            emit Transfer(msg.sender, to, amount);
            return true;
        }
    
        function approve(address spender, uint256 amount) external returns (bool) {
            allowance[msg.sender][spender] = amount;
            emit Approval(msg.sender, spender, amount);
            return true;
        }
    
        function transferFrom(address from, address to, uint256 amount) external returns (bool) {
            require(balanceOf[from] >= amount, "Insufficient balance");
            require(allowance[from][msg.sender] >= amount, "Insufficient allowance");
            balanceOf[from] -= amount;
            balanceOf[to] += amount;
            allowance[from][msg.sender] -= amount;
            emit Transfer(from, to, amount);
            return true;
        }
    }

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

    Context size (optional):