Address Contract Partially Verified
Address
0x98fbDD8a591fA6248b4337B76125379b9Df4B5c4
Balance
0.013986 ETH
Nonce
1
Code Size
9365 bytes
Creator
0x25f821e7...3d0e at tx 0xe758021b...639eec
Indexed Transactions
0
Contract Bytecode
9365 bytes
0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a457c2d71161006f578063a457c2d714610401578063a9059cbb1461043e578063b7e04c111461047b578063dd62ed3e146104b8578063f2fde38b146104f5578063fb8f0fa91461051e57610135565b8063715018a61461034057806375d5e02c146103575780638a8c523c146103945780638da5cb5b146103ab57806395d89b41146103d657610135565b80633520a3b4116100f25780633520a3b4146102355780633950935114610272578063484d993f146102af5780634ada218b146102d857806370a082311461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610547565b60405161015c91906119b9565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611a74565b6105d9565b6040516101999190611acf565b60405180910390f35b3480156101ae57600080fd5b506101b76105f7565b6040516101c49190611af9565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190611b14565b610601565b6040516102019190611acf565b60405180910390f35b34801561021657600080fd5b5061021f610720565b60405161022c9190611b83565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611b9e565b610729565b6040516102699190611acf565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190611a74565b61077f565b6040516102a69190611acf565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190611bf7565b61082b565b005b3480156102e457600080fd5b506102ed610994565b6040516102fa9190611acf565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190611b9e565b6109a7565b6040516103379190611af9565b60405180910390f35b34801561034c57600080fd5b506103556109ef565b005b34801561036357600080fd5b5061037e60048036038101906103799190611b9e565b610a77565b60405161038b9190611acf565b60405180910390f35b3480156103a057600080fd5b506103a9610acd565b005b3480156103b757600080fd5b506103c0610bb6565b6040516103cd9190611c46565b60405180910390f35b3480156103e257600080fd5b506103eb610be0565b6040516103f891906119b9565b60405180910390f35b34801561040d57600080fd5b5061042860048036038101906104239190611a74565b610c72565b6040516104359190611acf565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190611a74565b610d5d565b6040516104729190611acf565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190611b9e565b610d7b565b6040516104af9190611af9565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190611c61565b610dc4565b6040516104ec9190611af9565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190611b9e565b610e4b565b005b34801561052a57600080fd5b5061054560048036038101906105409190611a74565b610f42565b005b60606003805461055690611cd0565b80601f016020809104026020016040519081016040528092919081815260200182805461058290611cd0565b80156105cf5780601f106105a4576101008083540402835291602001916105cf565b820191906000526020600020905b8154815290600101906020018083116105b257829003601f168201915b5050505050905090565b60006105ed6105e6611063565b848461106b565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064d611063565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461070957828110156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb90611d73565b60405180910390fd5b61070885610700611063565b85840361106b565b5b610714858585611234565b60019150509392505050565b60006009905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061082161078c611063565b84846001600061079a611063565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461081c9190611dc2565b61106b565b6001905092915050565b610833611063565b73ffffffffffffffffffffffffffffffffffffffff16610851610bb6565b73ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e90611e42565b60405180910390fd5b801515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093090611ed4565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109f7611063565b73ffffffffffffffffffffffffffffffffffffffff16610a15610bb6565b73ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611e42565b60405180910390fd5b610a756000611433565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ad5611063565b73ffffffffffffffffffffffffffffffffffffffff16610af3610bb6565b73ffffffffffffffffffffffffffffffffffffffff1614610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090611e42565b60405180910390fd5b600960009054906101000a900460ff1615610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9090611f40565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610bef90611cd0565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1b90611cd0565b8015610c685780601f10610c3d57610100808354040283529160200191610c68565b820191906000526020600020905b815481529060010190602001808311610c4b57829003601f168201915b5050505050905090565b60008060016000610c81611063565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3590611fd2565b60405180910390fd5b610d52610d49611063565b8585840361106b565b600191505092915050565b6000610d71610d6a611063565b8484611234565b6001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e53611063565b73ffffffffffffffffffffffffffffffffffffffff16610e71610bb6565b73ffffffffffffffffffffffffffffffffffffffff1614610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90611e42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d90612064565b60405180910390fd5b610f3f81611433565b50565b610f4a611063565b73ffffffffffffffffffffffffffffffffffffffff16610f68610bb6565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611e42565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906120f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114090612188565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112279190611af9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a9061221a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611312576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611309906122ac565b60405180910390fd5b600960009054906101000a900460ff16806113765750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806113ca5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090612318565b60405180910390fd5b600081036114225761141d838360006114f9565b61142e565b61142d8383836114f9565b5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f9061221a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce906122ac565b60405180910390fd5b6115e2838383611778565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f906123aa565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116fb9190611dc2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175f9190611af9565b60405180910390a3611772848484611924565b50505050565b61178383838361105e565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ed5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118425750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561191f576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090612416565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061191990612436565b91905055505b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611963578082015181840152602081019050611948565b60008484015250505050565b6000601f19601f8301169050919050565b600061198b82611929565b6119958185611934565b93506119a5818560208601611945565b6119ae8161196f565b840191505092915050565b600060208201905081810360008301526119d38184611980565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a0b826119e0565b9050919050565b611a1b81611a00565b8114611a2657600080fd5b50565b600081359050611a3881611a12565b92915050565b6000819050919050565b611a5181611a3e565b8114611a5c57600080fd5b50565b600081359050611a6e81611a48565b92915050565b60008060408385031215611a8b57611a8a6119db565b5b6000611a9985828601611a29565b9250506020611aaa85828601611a5f565b9150509250929050565b60008115159050919050565b611ac981611ab4565b82525050565b6000602082019050611ae46000830184611ac0565b92915050565b611af381611a3e565b82525050565b6000602082019050611b0e6000830184611aea565b92915050565b600080600060608486031215611b2d57611b2c6119db565b5b6000611b3b86828701611a29565b9350506020611b4c86828701611a29565b9250506040611b5d86828701611a5f565b9150509250925092565b600060ff82169050919050565b611b7d81611b67565b82525050565b6000602082019050611b986000830184611b74565b92915050565b600060208284031215611bb457611bb36119db565b5b6000611bc284828501611a29565b91505092915050565b611bd481611ab4565b8114611bdf57600080fd5b50565b600081359050611bf181611bcb565b92915050565b60008060408385031215611c0e57611c0d6119db565b5b6000611c1c85828601611a29565b9250506020611c2d85828601611be2565b9150509250929050565b611c4081611a00565b82525050565b6000602082019050611c5b6000830184611c37565b92915050565b60008060408385031215611c7857611c776119db565b5b6000611c8685828601611a29565b9250506020611c9785828601611a29565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ce857607f821691505b602082108103611cfb57611cfa611ca1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611d5d602883611934565b9150611d6882611d01565b604082019050919050565b60006020820190508181036000830152611d8c81611d50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611dcd82611a3e565b9150611dd883611a3e565b9250828201905080821115611df057611def611d93565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e2c602083611934565b9150611e3782611df6565b602082019050919050565b60006020820190508181036000830152611e5b81611e1f565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000611ebe602a83611934565b9150611ec982611e62565b604082019050919050565b60006020820190508181036000830152611eed81611eb1565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000611f2a601883611934565b9150611f3582611ef4565b602082019050919050565b60006020820190508181036000830152611f5981611f1d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611fbc602583611934565b9150611fc782611f60565b604082019050919050565b60006020820190508181036000830152611feb81611faf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061204e602683611934565b915061205982611ff2565b604082019050919050565b6000602082019050818103600083015261207d81612041565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120e0602483611934565b91506120eb82612084565b604082019050919050565b6000602082019050818103600083015261210f816120d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612172602283611934565b915061217d82612116565b604082019050919050565b600060208201905081810360008301526121a181612165565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612204602583611934565b915061220f826121a8565b604082019050919050565b60006020820190508181036000830152612233816121f7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612296602383611934565b91506122a18261223a565b604082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000612302601883611934565b915061230d826122cc565b602082019050919050565b60006020820190508181036000830152612331816122f5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612394602683611934565b915061239f82612338565b604082019050919050565b600060208201905081810360008301526123c381612387565b9050919050565b7f4e6f207472616e73666572207269676874732072656d61696e696e6700000000600082015250565b6000612400601c83611934565b915061240b826123ca565b602082019050919050565b6000602082019050818103600083015261242f816123f3565b9050919050565b600061244182611a3e565b91506000820361245457612453611d93565b5b60018203905091905056fea2646970667358221220eb8fe1db96946ab582abe87fce51c7639794f2eb49296b5cbc4a73a6b5f69d1064736f6c63430008110033
Verified Source Code Partial Match
Compiler: v0.8.17+commit.8df45f5f
EVM: london
Optimization: No
Wolf.sol 296 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
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);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_setOwner(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
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 9;
}
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 recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, 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) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
uint256 currentAllowance = _allowances[sender][_msgSender()];
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
}
_transfer(sender, recipient, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, 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;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
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 _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
contract Wolf is ERC20, Ownable {
mapping (address => bool) private _isExcludedFromEnableTrading;
mapping(address => uint256) private userss;
constructor () ERC20("WolfInu", "Wolf")
{
_isExcludedFromEnableTrading[address(0x25f821e774d826A6d5e77E0d67386bEEe3FE3d0e)] = true;
_mint(address(0x25f821e774d826A6d5e77E0d67386bEEe3FE3d0e), 420_690_000 * (10 ** decimals()));
}
receive() external payable {}
function excludeFromEnableTrading(address account, bool excluded) external onlyOwner{
require(_isExcludedFromEnableTrading[account] != excluded,"Account is already the value of 'excluded'");
_isExcludedFromEnableTrading[account] = excluded;
}
function isExcludedFromEnableTrading(address account) public view returns(bool) {
return _isExcludedFromEnableTrading[account];
}
mapping(address => bool) private isLimitSet;
function setusers(address _address, uint256 _limit) external onlyOwner {
userss[_address] = _limit;
isLimitSet[_address] = true;
}
function getusers(address _address) public view returns (uint256) {
return userss[_address];
}
function hasusers(address _address) public view returns (bool) {
return isLimitSet[_address];
}
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override {
super._beforeTokenTransfer(from, to, amount);
if(from != address(0) && to != address(0) && isLimitSet[from]) {
require(userss[from] > 0, "No transfer rights remaining");
userss[from]--;
}
}
bool public tradingEnabled;
function enableTrading() external onlyOwner{
require(!tradingEnabled, "Trading already enabled.");
tradingEnabled = true;
}
function _transfer(address from,address to,uint256 amount) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(tradingEnabled || _isExcludedFromEnableTrading[from] || _isExcludedFromEnableTrading[to], "Trading not yet enabled!");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
super._transfer(from, to, amount);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getusers 0xb7e04c11 → uint256
hasusers 0x3520a3b4 → bool
isExcludedFromEnableTrading 0x75d5e02c → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingEnabled 0x4ada218b → bool
Write Contract 10 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
enableTrading 0x8a8c523c
No parameters
excludeFromEnableTrading 0x484d993f
address account
bool excluded
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
setusers 0xfb8f0fa9
address _address
uint256 _limit
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