Address Contract Partially Verified
Address
0xD09FaBf5B50Bf3FaC318F7ABf9F5a064E361749A
Balance
0 ETH
Nonce
1
Code Size
10531 bytes
Creator
0xf7227f0A...498E at tx 0x56754633...6ae602
Indexed Transactions
0
Contract Bytecode
10531 bytes
0x60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c650812b1161006f578063c650812b146103ff578063c9567bf914610428578063cc1776d31461043f578063dd62ed3e1461046a578063f2fde38b146104a7578063fd4378ec146104d057610135565b80638da5cb5b1461031a5780639036ed4d1461034557806395d89b411461036e578063a9059cbb14610399578063af612709146103d657610135565b80634f7041a5116100f25780634f7041a5146102355780636bfdd2481461026057806370a0823114610289578063715018a6146102c6578063762235f7146102dd57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104f9565b60405161015c9190611d57565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611e17565b610536565b6040516101999190611e72565b60405180910390f35b3480156101ae57600080fd5b506101b7610554565b6040516101c49190611e9c565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190611eb7565b610568565b6040516102019190611e72565b60405180910390f35b34801561021657600080fd5b5061021f610620565b60405161022c9190611f26565b60405180910390f35b34801561024157600080fd5b5061024a610629565b6040516102579190611e9c565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190611fa6565b61062f565b005b34801561029557600080fd5b506102b060048036038101906102ab9190611ff3565b610769565b6040516102bd9190611e9c565b60405180910390f35b3480156102d257600080fd5b506102db6107b2565b005b3480156102e957600080fd5b5061030460048036038101906102ff919061204c565b610905565b6040516103119190611e9c565b60405180910390f35b34801561032657600080fd5b5061032f61095c565b60405161033c9190612088565b60405180910390f35b34801561035157600080fd5b5061036c600480360381019061036791906120a3565b610985565b005b34801561037a57600080fd5b50610383610a2c565b6040516103909190611d57565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb9190611e17565b610a69565b6040516103cd9190611e72565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190611ff3565b610a87565b005b34801561040b57600080fd5b5061042660048036038101906104219190611ff3565b610c98565b005b34801561043457600080fd5b5061043d610d88565b005b34801561044b57600080fd5b50610454610e42565b6040516104619190611e9c565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c91906120e3565b610e48565b60405161049e9190611e9c565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190611ff3565b610ecf565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190611ff3565b610f70565b005b60606040518060400160405280600881526020017f4920616d204a6f65000000000000000000000000000000000000000000000000815250905090565b600061054a610543611060565b8484611068565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b6000610575848484611231565b61061584610581611060565b84600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cb611060565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106109190612152565b611068565b600190509392505050565b60006012905090565b60025481565b610637611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bb906121d2565b60405180910390fd5b60005b82829050811015610764576001600860008585858181106106eb576106ea6121f2565b5b90506020020160208101906107009190611ff3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061075c90612221565b9150506106c7565b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107ba611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e906121d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600081156109345743600a60055461091d9190612269565b1161092a5760025461092d565b605a5b9050610957565b43600a6005546109449190612269565b1161095157600354610954565b605a5b90505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61098d611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a11906121d2565b60405180910390fd5b81600281905550806003819055505050565b60606040518060400160405280600381526020017f4a4f450000000000000000000000000000000000000000000000000000000000815250905090565b6000610a7d610a76611060565b8484611231565b6001905092915050565b610a8f611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b13906121d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b9c573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610b96573d6000803e3d6000fd5b50610c95565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bf29190612088565b602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3391906122b2565b6040518363ffffffff1660e01b8152600401610c509291906122df565b6020604051808303816000875af1158015610c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c93919061231d565b505b50565b610ca0611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906121d2565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d90611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e14906121d2565b60405180910390fd5b6001600460006101000a81548160ff021916908360ff16021790555043600581905550565b60035481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ed7611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b906121d2565b60405180910390fd5b610f6d81611b9b565b50565b610f78611060565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc906121d2565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce906123bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d9061244e565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112249190611e9c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611297906124e0565b60405180910390fd5b633b9aca0081116112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd9061254c565b60405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113895750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611397576000905061187b565b6000600460009054906101000a900460ff1660ff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e3906125b8565b60405180910390fd5b6001600460019054906101000a900460ff1660ff160361151d5781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114559190612152565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ab9190612269565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150f9190611e9c565b60405180910390a350611b96565b7f000000000000000000000000cfe6b753a73600227fa33f1fe1eb602ca0dd663a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115815761157a6001610905565b905061187a565b7f000000000000000000000000cfe6b753a73600227fa33f1fe1eb602ca0dd663a73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611874576000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905069152d02c7e14af68000008111801561164357506000600460019054906101000a900460ff1660ff16145b156118625769d3c21bcecceda10000008111156116685769d3c21bcecceda100000090505b6001600460016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff8111156116a1576116a06125d8565b5b6040519080825280602002602001820160405280156116cf5781602001602082028036833780820191505090505b50905030816000815181106116e7576116e66121f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611756576117556121f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f000000000000000000000000f7227f0a2fccb3f2981b08ae6a7efab9d182498e426040518663ffffffff1660e01b815260040161181295949392919061275f565b600060405180830381600087803b15801561182c57600080fd5b505af1158015611840573d6000803e3d6000fd5b505050506000600460016101000a81548160ff021916908360ff160217905550505b61186c6000610905565b915050611879565b600090505b5b5b60008114611a825760006064828461189391906127b9565b61189d919061282a565b9050600081846118ad9190612152565b905083600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118fe9190612152565b9250508190555080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119549190612269565b9250508190555081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119aa9190612269565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a0e9190611e9c565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a739190611e9c565b60405180910390a35050611b94565b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ad19190612152565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b279190612269565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8b9190611e9c565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c01906128cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d01578082015181840152602081019050611ce6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d2982611cc7565b611d338185611cd2565b9350611d43818560208601611ce3565b611d4c81611d0d565b840191505092915050565b60006020820190508181036000830152611d718184611d1e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dae82611d83565b9050919050565b611dbe81611da3565b8114611dc957600080fd5b50565b600081359050611ddb81611db5565b92915050565b6000819050919050565b611df481611de1565b8114611dff57600080fd5b50565b600081359050611e1181611deb565b92915050565b60008060408385031215611e2e57611e2d611d79565b5b6000611e3c85828601611dcc565b9250506020611e4d85828601611e02565b9150509250929050565b60008115159050919050565b611e6c81611e57565b82525050565b6000602082019050611e876000830184611e63565b92915050565b611e9681611de1565b82525050565b6000602082019050611eb16000830184611e8d565b92915050565b600080600060608486031215611ed057611ecf611d79565b5b6000611ede86828701611dcc565b9350506020611eef86828701611dcc565b9250506040611f0086828701611e02565b9150509250925092565b600060ff82169050919050565b611f2081611f0a565b82525050565b6000602082019050611f3b6000830184611f17565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611f6657611f65611f41565b5b8235905067ffffffffffffffff811115611f8357611f82611f46565b5b602083019150836020820283011115611f9f57611f9e611f4b565b5b9250929050565b60008060208385031215611fbd57611fbc611d79565b5b600083013567ffffffffffffffff811115611fdb57611fda611d7e565b5b611fe785828601611f50565b92509250509250929050565b60006020828403121561200957612008611d79565b5b600061201784828501611dcc565b91505092915050565b61202981611e57565b811461203457600080fd5b50565b60008135905061204681612020565b92915050565b60006020828403121561206257612061611d79565b5b600061207084828501612037565b91505092915050565b61208281611da3565b82525050565b600060208201905061209d6000830184612079565b92915050565b600080604083850312156120ba576120b9611d79565b5b60006120c885828601611e02565b92505060206120d985828601611e02565b9150509250929050565b600080604083850312156120fa576120f9611d79565b5b600061210885828601611dcc565b925050602061211985828601611dcc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061215d82611de1565b915061216883611de1565b92508282039050818111156121805761217f612123565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121bc602083611cd2565b91506121c782612186565b602082019050919050565b600060208201905081810360008301526121eb816121af565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061222c82611de1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361225e5761225d612123565b5b600182019050919050565b600061227482611de1565b915061227f83611de1565b925082820190508082111561229757612296612123565b5b92915050565b6000815190506122ac81611deb565b92915050565b6000602082840312156122c8576122c7611d79565b5b60006122d68482850161229d565b91505092915050565b60006040820190506122f46000830185612079565b6123016020830184611e8d565b9392505050565b60008151905061231781612020565b92915050565b60006020828403121561233357612332611d79565b5b600061234184828501612308565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006123a6602483611cd2565b91506123b18261234a565b604082019050919050565b600060208201905081810360008301526123d581612399565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612438602283611cd2565b9150612443826123dc565b604082019050919050565b600060208201905081810360008301526124678161242b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006124ca602583611cd2565b91506124d58261246e565b604082019050919050565b600060208201905081810360008301526124f9816124bd565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b6000612536601083611cd2565b915061254182612500565b602082019050919050565b6000602082019050818103600083015261256581612529565b9050919050565b7f4c61756e63680000000000000000000000000000000000000000000000000000600082015250565b60006125a2600683611cd2565b91506125ad8261256c565b602082019050919050565b600060208201905081810360008301526125d181612595565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b600061263661263161262c84612607565b612611565b611de1565b9050919050565b6126468161261b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61268181611da3565b82525050565b60006126938383612678565b60208301905092915050565b6000602082019050919050565b60006126b78261264c565b6126c18185612657565b93506126cc83612668565b8060005b838110156126fd5781516126e48882612687565b97506126ef8361269f565b9250506001810190506126d0565b5085935050505092915050565b600061272561272061271b84611d83565b612611565b611d83565b9050919050565b60006127378261270a565b9050919050565b60006127498261272c565b9050919050565b6127598161273e565b82525050565b600060a0820190506127746000830188611e8d565b612781602083018761263d565b818103604083015261279381866126ac565b90506127a26060830185612750565b6127af6080830184611e8d565b9695505050505050565b60006127c482611de1565b91506127cf83611de1565b92508282026127dd81611de1565b915082820484148315176127f4576127f3612123565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061283582611de1565b915061284083611de1565b9250826128505761284f6127fb565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128b7602683611cd2565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b905091905056fea26469706673582212206953cdb1eb59ffb5d0eef73ee0d9e32b871d803c2f60081295adfaf74dc45e5e64736f6c63430008120033
Verified Source Code Partial Match
Compiler: v0.8.18+commit.87f61d96
EVM: paris
Optimization: No
IamJoeToken.sol 356 lines
/**
We are all Joes.
Website: https://boonamai.com
Twitter: https://twitter.com/Boonamai_web3
Telegram: https://t.me/boonamai
Discord: https://discord.com/invite/Dw4aFdjsHg
**/
// SPDX-License-Identifier: Unlicensed
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 IamJoeToken is Context, IERC20, Ownable {
uint256 private constant _totalSupply = 1_000_000_000e18;
uint256 private constant minSwap = 100_000e18;
uint256 private constant oneMilly = 1_000_000e18;
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;
string private constant _name = "I am Joe";
string private constant _symbol = "JOE";
mapping(address => uint256) private _balance;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _ogJoes;
constructor() {
uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
WETH = uniswapV2Router.WETH();
buyTax = 0;
sellTax = 10;
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
address(this),
WETH
);
marketingWallet = payable(0xf7227f0A2fccB3f2981B08Ae6A7efAb9d182498E);
_balance[msg.sender] = _totalSupply;
_ogJoes[marketingWallet] = true;
_ogJoes[msg.sender] = true;
_ogJoes[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 openTrading() external onlyOwner {
launch = 1;
launchBlock = block.number;
}
function addJoe(address wallet) external onlyOwner {
_ogJoes[wallet] = true;
}
function removeJoe(address wallet) external onlyOwner {
_ogJoes[wallet] = false;
}
function addJoes(address[] calldata wallets) external onlyOwner {
for(uint i = 0; i < wallets.length; i++) {
_ogJoes[wallets[i]] = true;
}
}
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 > 1e9, "Min transfer amt");
uint256 _tax;
if (_ogJoes[from] || _ogJoes[to]) {
_tax = 0;
} else {
require(
launch != 0,
"Launch"
);
if (inSwapAndLiquify == 1) {
//No tax transfer
_balance[from] -= amount;
_balance[to] += amount;
emit Transfer(from, to, amount);
return;
}
if (from == uniswapV2Pair) {
_tax = getTax(true);
} else if (to == uniswapV2Pair) {
uint256 tokensToSwap = _balance[address(this)];
if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
if (tokensToSwap > oneMilly) {
tokensToSwap = oneMilly;
}
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 = getTax(false);
} else {
_tax = 0;
}
}
//Is there tax for sender|receiver?
if (_tax != 0) {
//Tax transfer
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 transfer
_balance[from] -= amount;
_balance[to] += amount;
emit Transfer(from, to, amount);
}
}
receive() external payable {}
function recoverJoes(address token) external onlyOwner {
if (token == address(0))
payable(msg.sender).transfer(address(this).balance);
else
IERC20(token).transfer(
msg.sender,
IERC20(token).balanceOf(address(this))
);
}
function getTax(bool isBuy) public view returns (uint256) {
if(isBuy) {
return launchBlock + 10 > block.number ? 90 : buyTax;
}
return launchBlock + 10 > block.number ? 90 : sellTax;
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyTax 0x4f7041a5 → uint256
decimals 0x313ce567 → uint8
getTax 0x762235f7 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellTax 0xcc1776d3 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 11 functions
These functions modify contract state and require a wallet transaction to execute.
addJoe 0xc650812b
address wallet
addJoes 0x6bfdd248
address[] wallets
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
changeTax 0x9036ed4d
uint256 newBuyTax
uint256 newSellTax
openTrading 0xc9567bf9
No parameters
recoverJoes 0xaf612709
address token
removeJoe 0xfd4378ec
address wallet
renounceOwnership 0x715018a6
No parameters
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