Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x6977cd3998Ab00Ca4a0d053d1bcB06Da47551933
Balance 0 ETH
Nonce 1
Code Size 3208 bytes
Indexed Transactions 0
External Etherscan · Sourcify

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