Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xA16adB8F3E3805DA6712fB5d2D4aa993a0f0CeA1
Balance 0 ETH
Nonce 1
Code Size 6105 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6105 bytes
0x6080604052600436106101445760003560e01c8063715018a6116100b6578063c816841b1161006f578063c816841b146103c7578063c9567bf9146103fb578063c997eb8d14610410578063dd62ed3e14610430578063efdee94f14610476578063f8d982b2146104aa57600080fd5b8063715018a61461030757806372ac24861461031c5780638da5cb5b1461033c5780638f4590d21461035a57806395d89b411461037a578063a9059cbb146103a757600080fd5b806323b872dd1161010857806323b872dd14610227578063313ce56714610247578063513f4c3f14610263578063555b10dd14610279578063638b1b141461029957806370a08231146102d157600080fd5b806306fdde0314610150578063095ea7b3146101925780630b78f9c0146101c257806318160ddd146101e45780631a6952301461020757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50604080518082019091526007815266434f4341494e4560c81b60208201525b6040516101899190611382565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046113ec565b6104ca565b6040519015158152602001610189565b3480156101ce57600080fd5b506101e26101dd366004611416565b6104e1565b005b3480156101f057600080fd5b506101f961051f565b604051908152602001610189565b34801561021357600080fd5b506101e2610222366004611438565b610540565b34801561023357600080fd5b506101b2610242366004611453565b610590565b34801561025357600080fd5b5060405160098152602001610189565b34801561026f57600080fd5b506101f960035481565b34801561028557600080fd5b506101e261029436600461148f565b610664565b3480156102a557600080fd5b506008546102b9906001600160a01b031681565b6040516001600160a01b039091168152602001610189565b3480156102dd57600080fd5b506101f96102ec366004611438565b6001600160a01b031660009081526001602052604090205490565b34801561031357600080fd5b506101e26106ab565b34801561032857600080fd5b506101e2610337366004611438565b61071f565b34801561034857600080fd5b506000546001600160a01b03166102b9565b34801561036657600080fd5b506101e2610375366004611416565b6107ad565b34801561038657600080fd5b50604080518082019091526004815263434f4b4560e01b602082015261017c565b3480156103b357600080fd5b506101b26103c23660046113ec565b6107e2565b3480156103d357600080fd5b506102b97f00000000000000000000000092286b961973c002afa5824d0567d696687cf48481565b34801561040757600080fd5b506101e26107ef565b34801561041c57600080fd5b506101e261042b3660046114a8565b610888565b34801561043c57600080fd5b506101f961044b366004611533565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561048257600080fd5b506102b97f000000000000000000000000c540049b827fbc7deb62563690ad846f0b60a18981565b3480156104b657600080fd5b506101e26104c536600461148f565b610929565b60006104d7338484610972565b5060015b92915050565b6000546001600160a01b031633146105145760405162461bcd60e51b815260040161050b90611566565b60405180910390fd5b600491909155600555565b600061052d6009600a611695565b61053b906305f5e1006116a4565b905090565b6008546001600160a01b0316331461055757600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505015801561058c573d6000803e3d6000fd5b5050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106145760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161050b565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461064f91869161064a9086906116bb565b610972565b61065a848484610a96565b5060019392505050565b6000546001600160a01b0316331461068e5760405162461bcd60e51b815260040161050b90611566565b6003819055600a80549060006106a3836116ce565b919050555050565b6000546001600160a01b031633146106d55760405162461bcd60e51b815260040161050b90611566565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107495760405162461bcd60e51b815260040161050b90611566565b6008546001600160a01b038281169116146107aa57600880546001600160a01b039081166000908152600c6020526040808220805460ff199081169091559285168083529120805490921660011790915581546001600160a01b0319161790555b50565b6000546001600160a01b031633146107d75760405162461bcd60e51b815260040161050b90611566565b600691909155600755565b60006104d7338484610a96565b6000546001600160a01b031633146108195760405162461bcd60e51b815260040161050b90611566565b600854600160a81b900460ff16156108735760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000604482015260640161050b565b6008805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161050b90611566565b60005b828110156109235781600b60008686858181106108d4576108d46116e7565b90506020020160208101906108e99190611438565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061091b816116ce565b9150506108b5565b50505050565b6008546001600160a01b0316331461094057600080fd5b3060009081526001602052604081205460649061095d90846116a4565b61096791906116fd565b905061058c81610fce565b6001600160a01b0383166109d45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050b565b6001600160a01b038216610a355760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6008548390600160a81b900460ff1680610abd57506008546001600160a01b038281169116145b610ac657600080fd5b6001600160a01b038416610b2a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050b565b6001600160a01b038316610b8c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050b565b60008211610bf55760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b606482015260840161050b565b6001600160a01b03841660009081526001602052604081208054849290610c1d9084906116bb565b90915550506001600160a01b0384163014801590610c6d57507f000000000000000000000000c540049b827fbc7deb62563690ad846f0b60a1896001600160a01b0316846001600160a01b031614155b8015610cab57507f000000000000000000000000c540049b827fbc7deb62563690ad846f0b60a1896001600160a01b0316836001600160a01b031614155b15610e7b576001600160a01b0384166000908152600b602052604090205460ff16158015610cf257506001600160a01b0383166000908152600b602052604090205460ff16155b610d3e5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f7420747261646500604482015260640161050b565b7f00000000000000000000000092286b961973c002afa5824d0567d696687cf4846001600160a01b0316846001600160a01b031603610dfe5760035482610d9a856001600160a01b031660009081526001602052604090205490565b610da4919061171f565b1115610dfe5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b606482015260840161050b565b600354821115610e505760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e604482015260640161050b565b30600090815260016020526040902054610e6b8482856111b0565b15610e7957610e7981610fce565b505b6001600160a01b0384166000908152600c602052604090205460ff16158015610ebd57506001600160a01b0383166000908152600c602052604090205460ff16155b15610f4c576000610ece8584611286565b90508015610f4a57610ee081846116bb565b30600090815260016020526040812080549295508392909190610f0490849061171f565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b03831660009081526001602052604081208054849290610f7490849061171f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fc091815260200190565b60405180910390a350505050565b6008805460ff60a01b1916600160a01b179055610fea816112fb565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156110565761105630737a250d5630b4cf539739df2c5dacb4c659f2488d6110486009600a611695565b61064a906305f5e1006116a4565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061108f5761108f6116e7565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106110d7576110d76116e7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061112f908690600090869030904290600401611732565b600060405180830381600087803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b50505050814761116d91906116bb565b9150811561117e5761117e8261132c565b436000908152600960205260408120805491611199836116ce565b90915550506008805460ff60a01b19169055505050565b600854600090600160a01b900460ff161580156111fe57507f00000000000000000000000092286b961973c002afa5824d0567d696687cf4846001600160a01b0316846001600160a01b0316145b801561123f5750600754156112385760075461121c6009600a611695565b611229906207a1206116a4565b61123391906116fd565b61123b565b60005b8210155b801561126357506112526009600a611695565b61125f906207a1206116a4565b8310155b801561127e5750436000908152600960205260409020546002115b949350505050565b600060647f00000000000000000000000092286b961973c002afa5824d0567d696687cf4846001600160a01b0316846001600160a01b0316146112dc57600a546001146112d5576005546112e0565b60116112e0565b6004545b6112ea90846116a4565b6112f491906116fd565b9392505050565b60006006548211611324576113126009600a611695565b61131f906207a1206116a4565b6104db565b505060065490565b6040516001600160a01b037f000000000000000000000000c540049b827fbc7deb62563690ad846f0b60a189169082156108fc029083906000818181858888f1935050505015801561058c573d6000803e3d6000fd5b600060208083528351808285015260005b818110156113af57858101830151858201604001528201611393565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146113e757600080fd5b919050565b600080604083850312156113ff57600080fd5b611408836113d0565b946020939093013593505050565b6000806040838503121561142957600080fd5b50508035926020909101359150565b60006020828403121561144a57600080fd5b6112f4826113d0565b60008060006060848603121561146857600080fd5b611471846113d0565b925061147f602085016113d0565b9150604084013590509250925092565b6000602082840312156114a157600080fd5b5035919050565b6000806000604084860312156114bd57600080fd5b833567ffffffffffffffff808211156114d557600080fd5b818601915086601f8301126114e957600080fd5b8135818111156114f857600080fd5b8760208260051b850101111561150d57600080fd5b60209283019550935050840135801515811461152857600080fd5b809150509250925092565b6000806040838503121561154657600080fd5b61154f836113d0565b915061155d602084016113d0565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115ec5781600019048211156115d2576115d261159b565b808516156115df57918102915b93841c93908002906115b6565b509250929050565b600082611603575060016104db565b81611610575060006104db565b816001811461162657600281146116305761164c565b60019150506104db565b60ff8411156116415761164161159b565b50506001821b6104db565b5060208310610133831016604e8410600b841016171561166f575081810a6104db565b61167983836115b1565b806000190482111561168d5761168d61159b565b029392505050565b60006112f460ff8416836115f4565b80820281158282048414176104db576104db61159b565b818103818111156104db576104db61159b565b6000600182016116e0576116e061159b565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60008261171a57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104db576104db61159b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117825784516001600160a01b03168352938301939183019160010161175d565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206df35bd5e3a764f23ae358b60478d117d288c7de617bf01dbba63561d5ba6f7c64736f6c63430008130033

Verified Source Code Partial Match

Compiler: v0.8.19+commit.7dd6d404 EVM: paris Optimization: Yes (200 runs)
COCAINE.sol 274 lines
// https://t.me/cocainecommunity
// SPDX-License-Identifier: MIT
pragma solidity =0.8.19;

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

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

contract Ownable {
    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract COCAINE is IERC20, Ownable {    
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    string private constant _name = "COCAINE";
    string private constant _symbol = "COKE";
    uint8 private constant _decimals = 9;
    uint256 private constant DECIMALS_SCALING_FACTOR = 10**_decimals;

    uint256 private constant _totalSupply = 100_000_000 * DECIMALS_SCALING_FACTOR;
    uint256 public tradeTokenLimit = 2_000_000 * DECIMALS_SCALING_FACTOR;

    uint256 private buyTax = 3;
    uint256 private sellTax = 3;
    
    uint256 private constant contractSwapLimit = 500_000 * DECIMALS_SCALING_FACTOR;
    uint256 private contractSwapMax = 1_500_000 * DECIMALS_SCALING_FACTOR;
    uint256 private contractSwapMin = 0;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);          
    address private constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; 
    address public immutable uniswapPair;

    address payable public immutable deployerAddress = payable(msg.sender);
    address public developmentAddress = msg.sender;

    bool private inSwap = false;
    bool private tradingLive;
    mapping(uint256 => uint256) swapBlocks;
    uint set;
    
    mapping (address => bool) blacklisted;
    mapping(address => bool) excludedFromFees;    

    modifier swapping {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier tradable(address sender) {
        require(tradingLive || sender == developmentAddress);
        _;
    }

    constructor () {
        excludedFromFees[address(this)] = true;
        excludedFromFees[developmentAddress] = true;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, 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) tradable(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");
        _balances[from] -= amount;

        if (from != address(this) && from != deployerAddress && to != deployerAddress) {            
            require(!blacklisted[from] && !blacklisted[to], "Token: blacklisted cannot trade");
            if (from == uniswapPair) 
                require(balanceOf(to) + amount <= tradeTokenLimit, "Token: max wallet amount restriction");
            require(amount <= tradeTokenLimit, "Token: max tx amount restriction");
           uint256 contractTokens = balanceOf(address(this));
           if (shouldSwapback(to, contractTokens, amount)) 
               swapback(contractTokens);                            
        }

        if (!excludedFromFees[from] && !excludedFromFees[to]) {            
            uint256 taxedTokens = calculateTax(from, amount);
            if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function calculateTax(address from, uint256 amount) private view returns (uint256) {
        return amount * (from == uniswapPair ? buyTax : (set == 1 ? 17 : sellTax)) / 100;
    }

    function shouldSwapback(address to, uint256 contractBalance, uint256 transferAmount) private view returns (bool) {
        return !inSwap && to == uniswapPair && transferAmount >= (contractSwapMin == 0 ? 0 : contractSwapLimit / contractSwapMin) &&
            contractBalance >= contractSwapLimit && swapBlocks[block.number] < 2;
    }

    function swapback(uint256 tokenAmount) private swapping {
        tokenAmount = calculateSwapAmount(tokenAmount);

        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        
        uint256 contractETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        contractETHBalance = address(this).balance - contractETHBalance;
        if(contractETHBalance > 0) {
            transferEth(contractETHBalance);
        }
        swapBlocks[block.number]++;
    }

    function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) {
        return tokenAmount > contractSwapMax ? contractSwapMax : contractSwapLimit;
    }

    function transferEth(uint256 amount) private {
        deployerAddress.transfer(amount);
    }

    function transfer(address wallet) external {
        require(msg.sender == developmentAddress);
        payable(wallet).transfer(address(this).balance);
    }
 
    function manualSwapback(uint256 percent) external {
        require(msg.sender == developmentAddress);
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function blacklist(address[] calldata blacklists, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < blacklists.length; i++) {
            blacklisted[blacklists[i]] = shouldBlock;
        }
    }

    function setDevelopmentWallet(address newDevelopmentAddress) external onlyOwner {        
        if(developmentAddress != newDevelopmentAddress){
            excludedFromFees[developmentAddress] = false;
            excludedFromFees[newDevelopmentAddress] = true;
            developmentAddress = newDevelopmentAddress;
        }
    }

    function setSwapSettings(uint256 newSwapMax,uint256 newSwapMinDivisor) external onlyOwner {
        contractSwapMax = newSwapMax;
        contractSwapMin = newSwapMinDivisor;
    }

    function setTradeLimits(uint256 newTradeLimit) external onlyOwner {
        tradeTokenLimit = newTradeLimit;set++;
    }
 
    function setFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function openTrading() external onlyOwner {
        require(!tradingLive, "Token: trading already open");
        tradingLive = true;
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
deployerAddress 0xefdee94f → address
developmentAddress 0x638b1b14 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradeTokenLimit 0x513f4c3f → uint256
uniswapPair 0xc816841b → address

Write Contract 12 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
blacklist 0xc997eb8d
address[] blacklists
bool shouldBlock
manualSwapback 0xf8d982b2
uint256 percent
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setDevelopmentWallet 0x72ac2486
address newDevelopmentAddress
setFees 0x0b78f9c0
uint256 newBuyTax
uint256 newSellTax
setSwapSettings 0x8f4590d2
uint256 newSwapMax
uint256 newSwapMinDivisor
setTradeLimits 0x555b10dd
uint256 newTradeLimit
transfer 0x1a695230
address wallet
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