Address Contract Partially Verified
Address
0x6977cd3998Ab00Ca4a0d053d1bcB06Da47551933
Balance
0 ETH
Nonce
1
Code Size
3208 bytes
Creator
0xA805b4B4...6390 at tx 0xab6b326a...4ab6b0
Indexed Transactions
0
Contract Bytecode
3208 bytes
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d71461021f578063a9059cbb14610232578063dd62ed3e14610245578063f2fde38b1461027e57600080fd5b8063715018a6146101df5780638da5cb5b146101e957806395d89b41146102045780639a55fff01461020c57600080fd5b806323b872dd116100d357806323b872dd1461017b578063313ce5671461018e57806339509351146101a357806370a08231146101b657600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd146101465780631cdd3be314610158575b600080fd5b61010d610291565b60405161011a9190610ad3565b60405180910390f35b610136610131366004610a25565b610323565b604051901515815260200161011a565b6006545b60405190815260200161011a565b61013661016636600461099e565b60076020526000908152604090205460ff1681565b6101366101893660046109ea565b610339565b60055460405160ff909116815260200161011a565b6101366101b1366004610a25565b6103a2565b61014a6101c436600461099e565b6001600160a01b031660009081526001602052604090205490565b6101e76103d8565b005b6000546040516001600160a01b03909116815260200161011a565b61010d610417565b6101e761021a366004610a4e565b610426565b61013661022d366004610a25565b6104d5565b610136610240366004610a25565b610524565b61014a6102533660046109b8565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101e761028c36600461099e565b610531565b6060600380546102a090610b73565b80601f01602080910402602001604051908101604052809291908181526020018280546102cc90610b73565b80156103195780601f106102ee57610100808354040283529160200191610319565b820191906000526020600020905b8154815290600101906020018083116102fc57829003601f168201915b5050505050905090565b60006103303384846105df565b50600192915050565b6000610346848484610704565b610398843361039385604051806060016040528060288152602001610c06602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610906565b6105df565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161033091859061039390866105cc565b6000546001600160a01b0316331461040b5760405162461bcd60e51b815260040161040290610b26565b60405180910390fd5b6104156000610932565b565b6060600480546102a090610b73565b6000546001600160a01b031633146104505760405162461bcd60e51b815260040161040290610b26565b60005b828110156104cf57816007600086868581811061048057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610495919061099e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806104c781610bae565b915050610453565b50505050565b6000610330338461039385604051806060016040528060258152602001610c2e602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610906565b6000610330338484610704565b6000546001600160a01b0316331461055b5760405162461bcd60e51b815260040161040290610b26565b6001600160a01b0381166105c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610402565b6105c981610932565b50565b60006105d88284610b5b565b9392505050565b6001600160a01b0383166106415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610402565b6001600160a01b0382166106a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610402565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107685760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610402565b6001600160a01b0382166107ca5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610402565b6001600160a01b03831660009081526007602052604090205460ff1615801561080c57506001600160a01b03821660009081526007602052604090205460ff16155b6108465760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610402565b61088381604051806060016040528060268152602001610be0602691396001600160a01b0386166000908152600160205260409020549190610906565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108b290826105cc565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106f79085815260200190565b6000818484111561092a5760405162461bcd60e51b81526004016104029190610ad3565b505050900390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461099957600080fd5b919050565b6000602082840312156109af578081fd5b6105d882610982565b600080604083850312156109ca578081fd5b6109d383610982565b91506109e160208401610982565b90509250929050565b6000806000606084860312156109fe578081fd5b610a0784610982565b9250610a1560208501610982565b9150604084013590509250925092565b60008060408385031215610a37578182fd5b610a4083610982565b946020939093013593505050565b600080600060408486031215610a62578283fd5b833567ffffffffffffffff80821115610a79578485fd5b818601915086601f830112610a8c578485fd5b813581811115610a9a578586fd5b8760208260051b8501011115610aae578586fd5b602092830195509350508401358015158114610ac8578182fd5b809150509250925092565b6000602080835283518082850152825b81811015610aff57858101830151858201604001528201610ae3565b81811115610b105783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610b6e57610b6e610bc9565b500190565b600181811c90821680610b8757607f821691505b60208210811415610ba857634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610bc257610bc2610bc9565b5060010190565b634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200d6a1a71ef55a1088d016182c606b772f75369cab6ebe8aaa4a38fc1b712373d64736f6c63430008040033
Verified Source Code Partial Match
Compiler: v0.8.4+commit.c7e474f2
EVM: istanbul
Optimization: Yes (200 runs)
ZEUS.sol 322 lines
// SPDX-License-Identifier: MIT
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_setOwner(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
pragma solidity =0.8.4;
contract ZEUS is IERC20, Ownable {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
string private _name;
string private _symbol;
uint8 private _decimals;
uint256 private _totalSupply;
mapping(address => bool) public _isBlacklisted;
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_
) payable {
_name = name_;
_symbol = symbol_;
_decimals = 18;
_totalSupply = totalSupply_ * 10**_decimals;
_balances[owner()] = _balances[owner()].add(_totalSupply);
emit Transfer(address(0), owner(), _totalSupply);
}
function multipleBotlistAddress(address[] calldata accounts, bool excluded) public onlyOwner {
for (uint256 i = 0; i < accounts.length; i++) {
_isBlacklisted[accounts[i]] = excluded;
}
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return _decimals;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account)
public
view
virtual
override
returns (uint256)
{
return _balances[account];
}
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
virtual
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "Blacklisted");
_balances[sender] = _balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
Read Contract
_isBlacklisted 0x1cdd3be3 → bool
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 8 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
multipleBotlistAddress 0x9a55fff0
address[] accounts
bool excluded
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address