Address Contract Verified
Address
0x9Cf0ED013e67DB12cA3AF8e7506fE401aA14dAd6
Balance
0.740024 ETH
Nonce
1
Code Size
4846 bytes
Creator
0x0c23Df21...e9F9 at tx 0xc5a82651...febbbc
Indexed Transactions
0
Contract Bytecode
4846 bytes
0x60806040526004361061012e5760003560e01c80638c0b5e22116100ab578063c9567bf91161006f578063c9567bf91461035e578063cc1776d314610373578063db05e5cb14610389578063dba9d4201461039e578063dd62ed3e146103be578063f2fde38b1461040457600080fd5b80638c0b5e22146102b05780638da5cb5b146102c65780639036ed4d146102ee57806395d89b411461030e578063a9059cbb1461033e57600080fd5b8063313ce567116100f2578063313ce567146102195780634a62bb65146102355780634f7041a51461024f57806370a0823114610265578063715018a61461029b57600080fd5b806306fdde031461013a578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101d757806327ea6f2b146101f757600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600a8152695350454354524520414960b01b60208201525b6040516101769190611027565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611091565b610424565b6040519015158152602001610176565b3480156101bb57600080fd5b506a084595161401484a0000005b604051908152602001610176565b3480156101e357600080fd5b5061019f6101f23660046110bb565b61043b565b34801561020357600080fd5b506102176102123660046110f7565b61048d565b005b34801561022557600080fd5b5060405160128152602001610176565b34801561024157600080fd5b5060085461019f9060ff1681565b34801561025b57600080fd5b506101c960035481565b34801561027157600080fd5b506101c9610280366004611110565b6001600160a01b031660009081526009602052604090205490565b3480156102a757600080fd5b506102176104c5565b3480156102bc57600080fd5b506101c960075481565b3480156102d257600080fd5b506000546040516001600160a01b039091168152602001610176565b3480156102fa57600080fd5b50610217610309366004611132565b610539565b34801561031a57600080fd5b506040805180820190915260078152665350454354524560c81b6020820152610169565b34801561034a57600080fd5b5061019f610359366004611091565b61056e565b34801561036a57600080fd5b5061021761057b565b34801561037f57600080fd5b506101c960045481565b34801561039557600080fd5b506102176105c8565b3480156103aa57600080fd5b506102176103b9366004611110565b61060d565b3480156103ca57600080fd5b506101c96103d9366004611154565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561041057600080fd5b5061021761041f366004611110565b61065b565b6000610431338484610691565b5060015b92915050565b60006104488484846107b5565b6001600160a01b0384166000908152600a602090815260408083203380855292529091205461048391869161047e90869061119d565b610691565b5060019392505050565b6000546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b7906111b0565b60405180910390fd5b600755565b6000546001600160a01b031633146104ef5760405162461bcd60e51b81526004016104b7906111b0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105635760405162461bcd60e51b81526004016104b7906111b0565b600391909155600455565b60006104313384846107b5565b6000546001600160a01b031633146105a55760405162461bcd60e51b81526004016104b7906111b0565b60058054600160ff19918216811790925560088054909116909117905543600655565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104b7906111b0565b6008805460ff191690556a084595161401484a000000600755565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016104b7906111b0565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146106855760405162461bcd60e51b81526004016104b7906111b0565b61068e81610f67565b50565b6001600160a01b0383166106f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b7565b6001600160a01b0382166107545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b7565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b7565b6000811161085f5760405162461bcd60e51b8152602060048201526013602482015272135a5b881d1c985b9cd9995c88185b5bdd5b9d606a1b60448201526064016104b7565b6001600160a01b0383166000908152600b602052604081205460ff168061089e57506001600160a01b0383166000908152600b602052604090205460ff165b156108ab57506000610df6565b60055460ff16158015906108c157506007548211155b6109175760405162461bcd60e51b815260206004820152602160248201527f4c61756e63682c206d617820747820616d6f756e7420617420657863656564656044820152601960fa1b60648201526084016104b7565b60085460ff1615610afc577f0000000000000000000000008a6d9525a0f07dcdc17fff15644342c314025a806001600160a01b0316846001600160a01b031603610a6b576001600160a01b0383166000908152600260205260409020544290610982906078906111e5565b11156109d05760405162461bcd60e51b815260206004820152601e60248201527f50726f74656374696f6e3a20313230207365632f747820616c6c6f776564000060448201526064016104b7565b6001600160a01b03831660009081526002602090815260408083204290556009909152902054693f870857a3e0e380000090610a0c90846111e5565b1115610a665760405162461bcd60e51b815260206004820152602360248201527f45524332303a206d617857616c6c6574416d6f756e742069732065786365656460448201526265642160e81b60648201526084016104b7565b610afc565b6001600160a01b0384166000908152600260205260409020544290610a92906078906111e5565b1115610ae05760405162461bcd60e51b815260206004820152601e60248201527f50726f74656374696f6e3a20313230207365632f747820616c6c6f776564000060448201526064016104b7565b6001600160a01b03841660009081526002602052604090204290555b600554610100900460ff16600103610bbd576001600160a01b03841660009081526009602052604081208054849290610b3690849061119d565b90915550506001600160a01b03831660009081526009602052604081208054849290610b639084906111e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610baf91815260200190565b60405180910390a350505050565b7f0000000000000000000000008a6d9525a0f07dcdc17fff15644342c314025a806001600160a01b0316846001600160a01b031603610bff5750600354610df6565b7f0000000000000000000000008a6d9525a0f07dcdc17fff15644342c314025a806001600160a01b0316836001600160a01b031603610df25730600090815260096020526040902054686c6b935b8bbd40000081118015610c685750600554610100900460ff16155b15610de85769152d02c7e14af6800000811115610c8c575069152d02c7e14af68000005b6005805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610cd057610cd06111f8565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610d2457610d246111f8565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790610da990859060009086907f00000000000000000000000001c972546e1a24ab0f9614d9add4f935c227263f90429060040161120e565b600060405180830381600087803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b50506005805461ff00191690555050505b5050600454610df6565b5060005b8015610f395760006064610e0a838561127f565b610e149190611296565b90506000610e22828561119d565b6001600160a01b038716600090815260096020526040812080549293508692909190610e4f90849061119d565b90915550506001600160a01b03851660009081526009602052604081208054839290610e7c9084906111e5565b90915550503060009081526009602052604081208054849290610ea09084906111e5565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f2a91815260200190565b60405180910390a35050610f61565b6001600160a01b03841660009081526009602052604081208054849290610b3690849061119d565b50505050565b6001600160a01b038116610fcc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208083528351808285015260005b8181101561105457858101830151858201604001528201611038565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461108c57600080fd5b919050565b600080604083850312156110a457600080fd5b6110ad83611075565b946020939093013593505050565b6000806000606084860312156110d057600080fd5b6110d984611075565b92506110e760208501611075565b9150604084013590509250925092565b60006020828403121561110957600080fd5b5035919050565b60006020828403121561112257600080fd5b61112b82611075565b9392505050565b6000806040838503121561114557600080fd5b50508035926020909101359150565b6000806040838503121561116757600080fd5b61117083611075565b915061117e60208401611075565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561043557610435611187565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561043557610435611187565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561125e5784516001600160a01b031683529383019391830191600101611239565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761043557610435611187565b6000826112b357634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122053b528e7a11694edd0e4350e4eba488672269356dfffcac4d5870a74b3d6301664736f6c63430008120033
Verified Source Code Full Match
Compiler: v0.8.18+commit.87f61d96
EVM: paris
Optimization: Yes (200 runs)
SepctreAI.sol 347 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
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
);
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
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 transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
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(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
}
contract SpectreAI is Context, IERC20, Ownable {
uint256 private constant _totalSupply = 10_000_000e18;
uint256 private constant onePercent = 100_000e18;
uint256 private constant minSwap = 2000e18;
uint256 private constant maxWalletAmount = 300_000e18;
uint256 private constant _delayBetweenTx = 120;
mapping(address => uint256) private _previousTx;
uint8 private constant _decimals = 18;
IUniswapV2Router02 immutable uniswapV2Router;
address immutable uniswapV2Pair;
address immutable WETH;
address payable immutable marketingWallet;
uint256 public buyTax;
uint256 public sellTax;
uint8 private launch;
uint8 private inSwapAndLiquify;
uint256 private launchBlock;
uint256 public maxTxAmount = 30_000e18;
string private constant _name = "SPECTRE AI";
string private constant _symbol = "SPECTRE";
bool public limitsInEffect;
mapping(address => uint256) private _balance;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFeeWallet;
constructor() {
uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
WETH = uniswapV2Router.WETH();
buyTax = 5;
sellTax = 5;
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
address(this),
WETH
);
marketingWallet = payable(0x01c972546e1a24AB0f9614D9aDD4f935c227263F);
_balance[msg.sender] = _totalSupply;
_isExcludedFromFeeWallet[marketingWallet] = true;
_isExcludedFromFeeWallet[msg.sender] = true;
_isExcludedFromFeeWallet[address(this)] = true;
_allowances[address(this)][address(uniswapV2Router)] = type(uint256).max;
_allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
_allowances[marketingWallet][address(uniswapV2Router)] = type(uint256).max;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
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 _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);
_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 addExcludedWallet(address wallet) external onlyOwner {
_isExcludedFromFeeWallet[wallet] = true;
}
function openTrading() external onlyOwner {
launch = 1;
limitsInEffect = true;
launchBlock = block.number;
}
function setLimit(uint256 amountLimit) external onlyOwner {
maxTxAmount = amountLimit;
}
// do it after token is stable
function removeAllLimits() external onlyOwner {
limitsInEffect = false;
maxTxAmount = _totalSupply;
}
function changeTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
buyTax = newBuyTax;
sellTax = newSellTax;
}
function _transfer(
address from,
address to,
uint256 amount
) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(amount > 0, "Min transfer amount");
uint256 _tax;
if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
_tax = 0;
} else {
require(
launch != 0 && amount <= maxTxAmount,
"Launch, max tx amount at exceeded"
);
if(limitsInEffect) {
// only when buy
if (from == uniswapV2Pair) {
require(_previousTx[to] + _delayBetweenTx <= block.timestamp, "Protection: 120 sec/tx allowed");
_previousTx[to] = block.timestamp;
require(amount + _balance[to] <= maxWalletAmount, "ERC20: maxWalletAmount is exceeded!");
}
// sell, tr
else {
require(_previousTx[from] + _delayBetweenTx <= block.timestamp, "Protection: 120 sec/tx allowed");
_previousTx[from] = block.timestamp;
}
}
if (inSwapAndLiquify == 1) {
//No tax transfer
_balance[from] -= amount;
_balance[to] += amount;
emit Transfer(from, to, amount);
return;
}
if (from == uniswapV2Pair) {
_tax = buyTax;
} else if (to == uniswapV2Pair) {
uint256 tokensToSwap = _balance[address(this)];
if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
if (tokensToSwap > onePercent) {
tokensToSwap = onePercent;
}
inSwapAndLiquify = 1;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
uniswapV2Router
.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokensToSwap,
0,
path,
marketingWallet,
block.timestamp
);
inSwapAndLiquify = 0;
}
_tax = sellTax;
} else {
_tax = 0;
}
}
if (_tax != 0) {
//Tax
uint256 taxTokens = (amount * _tax) / 100;
uint256 transferAmount = amount - taxTokens;
_balance[from] -= amount;
_balance[to] += transferAmount;
_balance[address(this)] += taxTokens;
emit Transfer(from, address(this), taxTokens);
emit Transfer(from, to, transferAmount);
} else {
//No tax
_balance[from] -= amount;
_balance[to] += amount;
emit Transfer(from, to, amount);
}
}
receive() external payable {}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyTax 0x4f7041a5 → uint256
decimals 0x313ce567 → uint8
limitsInEffect 0x4a62bb65 → bool
maxTxAmount 0x8c0b5e22 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellTax 0xcc1776d3 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 10 functions
These functions modify contract state and require a wallet transaction to execute.
addExcludedWallet 0xdba9d420
address wallet
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
changeTax 0x9036ed4d
uint256 newBuyTax
uint256 newSellTax
openTrading 0xc9567bf9
No parameters
removeAllLimits 0xdb05e5cb
No parameters
renounceOwnership 0x715018a6
No parameters
setLimit 0x27ea6f2b
uint256 amountLimit
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address