Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x2a0e7d6bd98e6D7c996AFB672cEE017a2799170d
Balance 0.000000000 ETH
Nonce 1
Code Size 17217 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

17217 bytes
0x60806040526004361061023f5760003560e01c806370a082311161012e578063d9f7e4df116100ab578063ec6d9b2d1161006f578063ec6d9b2d1461081a578063f2fde38b14610845578063f42938901461086e578063fc588c0414610885578063fd01bd4c146108ae57610246565b8063d9f7e4df14610747578063dc903ba114610772578063dd62ed3e1461079d578063de7d40ac146107da578063e632313c146107f157610246565b806395d89b41116100f257806395d89b411461065e578063a55d702214610689578063a9059cbb146106b4578063af465a27146106f1578063d89135cd1461071c57610246565b806370a0823114610589578063715018a6146105c65780638da5cb5b146105dd5780638ea78153146106085780639226fa961461063357610246565b806323b872dd116101bc57806336cf7c871161018057806336cf7c87146104da57806349bd5a5e1461050557806351bc3c85146105305780635dbc2fe1146105475780636c0a24eb1461055e57610246565b806323b872dd146103f357806323bbf9e71461043057806327a14fc21461045b5780632e8fa82114610484578063313ce567146104af57610246565b80631694505e116102035780631694505e1461031e57806318160ddd146103495780631cabcc4f146103745780631f53ac021461039f578063233296f0146103c857610246565b806306fdde031461024b578063072c8c1214610276578063080219e21461029f578063095ea7b3146102b65780630cdf2187146102f357610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606108d9565b60405161026d9190613397565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906133f4565b610916565b005b3480156102ab57600080fd5b506102b4610981565b005b3480156102c257600080fd5b506102dd60048036038101906102d8919061347f565b610a24565b6040516102ea91906134da565b60405180910390f35b3480156102ff57600080fd5b50610308610a42565b6040516103159190613504565b60405180910390f35b34801561032a57600080fd5b50610333610a48565b604051610340919061357e565b60405180910390f35b34801561035557600080fd5b5061035e610a6e565b60405161036b9190613504565b60405180910390f35b34801561038057600080fd5b50610389610a78565b6040516103969190613504565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906135d7565b610a7e565b005b3480156103d457600080fd5b506103dd610b57565b6040516103ea9190613504565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613604565b610b5d565b60405161042791906134da565b60405180910390f35b34801561043c57600080fd5b50610445610c36565b6040516104529190613504565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906133f4565b610c3c565b005b34801561049057600080fd5b50610499610cfe565b6040516104a69190613504565b60405180910390f35b3480156104bb57600080fd5b506104c4610d04565b6040516104d19190613673565b60405180910390f35b3480156104e657600080fd5b506104ef610d0d565b6040516104fc919061369d565b60405180910390f35b34801561051157600080fd5b5061051a610d33565b60405161052791906136c7565b60405180910390f35b34801561053c57600080fd5b50610545610d59565b005b34801561055357600080fd5b5061055c610ddd565b005b34801561056a57600080fd5b50610573610e8f565b6040516105809190613504565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab91906136e2565b610e95565b6040516105bd9190613504565b60405180910390f35b3480156105d257600080fd5b506105db610ede565b005b3480156105e957600080fd5b506105f2611031565b6040516105ff91906136c7565b60405180910390f35b34801561061457600080fd5b5061061d61105a565b60405161062a91906134da565b60405180910390f35b34801561063f57600080fd5b5061064861106d565b6040516106559190613504565b60405180910390f35b34801561066a57600080fd5b50610673611073565b6040516106809190613397565b60405180910390f35b34801561069557600080fd5b5061069e6110b0565b6040516106ab9190613504565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061347f565b6110b6565b6040516106e891906134da565b60405180910390f35b3480156106fd57600080fd5b506107066110d4565b6040516107139190613504565b60405180910390f35b34801561072857600080fd5b506107316110da565b60405161073e9190613504565b60405180910390f35b34801561075357600080fd5b5061075c6110e4565b6040516107699190613504565b60405180910390f35b34801561077e57600080fd5b506107876110ea565b6040516107949190613504565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf919061370f565b6110f0565b6040516107d19190613504565b60405180910390f35b3480156107e657600080fd5b506107ef611177565b005b3480156107fd57600080fd5b50610818600480360381019061081391906133f4565b6111fa565b005b34801561082657600080fd5b5061082f611265565b60405161083c9190613504565b60405180910390f35b34801561085157600080fd5b5061086c600480360381019061086791906136e2565b61126b565b005b34801561087a57600080fd5b5061088361137b565b005b34801561089157600080fd5b506108ac60048036038101906108a791906133f4565b6113f7565b005b3480156108ba57600080fd5b506108c36114aa565b6040516108d09190613504565b60405180910390f35b60606040518060400160405280600d81526020017f4861756e74656420536869626100000000000000000000000000000000000000815250905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109576114fa565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b8060098190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c26114fa565b73ffffffffffffffffffffffffffffffffffffffff16146109e257600080fd5b6002600a819055506002600b819055506001600c819055506005600d819055506002600e819055506002600f8190555060016010819055506005601181905550565b6000610a38610a316114fa565b8484611502565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b610a866114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a9061379b565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6000610b6a8484846116cb565b610c2b84610b766114fa565b610c26856040518060600160405280602881526020016142e460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdc6114fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120619092919063ffffffff16565b611502565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6114fa565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b610cb360c86005546114b090919063ffffffff16565b8111610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb9061382d565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9a6114fa565b73ffffffffffffffffffffffffffffffffffffffff1614610dba57600080fd5b6000610dc530610e95565b90506000811115610dda57610dd9816120c5565b5b50565b610de56114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e699061379b565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee66114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a9061379b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60105481565b60606040518060400160405280600481526020017f4849424100000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b60006110ca6110c36114fa565b84846116cb565b6001905092915050565b60055481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86114fa565b73ffffffffffffffffffffffffffffffffffffffff16146111d857600080fd5b60016011819055506002600e819055506002600a819055506001600d81905550565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123b6114fa565b73ffffffffffffffffffffffffffffffffffffffff161461125b57600080fd5b8060088190555050565b600d5481565b6112736114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f79061379b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611366906138bf565b60405180910390fd5b6113788161233e565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bc6114fa565b73ffffffffffffffffffffffffffffffffffffffff16146113dc57600080fd5b600047905060008111156113f4576113f381612402565b5b50565b6402540be40081101561143f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114369061392b565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114806114fa565b73ffffffffffffffffffffffffffffffffffffffff16146114a057600080fd5b8060078190555050565b601a5481565b60006114f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124fd565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611568906139bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d790613a4f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116be9190613504565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613ae1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090613b73565b60405180910390fd5b600081116117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390613c05565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118905750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61189957600080fd5b6000600190506118a7611031565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561191557506118e5611031565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a355750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611adf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611b8a57600654611b0383611af586610e95565b61256090919063ffffffff16565b1115611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613c97565b60405180910390fd5b600754821115611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613d29565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c355750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8b5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ce15750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0b57600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611db65750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0c5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e625750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8c57600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611ef75750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f9b576000611f0730610e95565b9050600854811115611f1d57611f1c816125be565b5b6000479050602160159054906101000a900460ff16158015611f3f5750600081115b15611f5257611f4d47612402565b611f98565b602160159054906101000a900460ff168015611f6f575060095481115b15611f97576000611f8a6002836114b090919063ffffffff16565b9050611f95816126e7565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061203d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561204757600090505b612053848484846126fd565b61205b612cc7565b50505050565b60008383111582906120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a09190613397565b60405180910390fd5b50600083856120b89190613d78565b9050809150509392505050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120fd576120fc613dac565b5b60405190808252806020026020018201604052801561212b5781602001602082028036833780820191505090505b509050308160008151811061214357612142613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220e9190613e1f565b8160018151811061222257612221613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061228930602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611502565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122ed959493929190613f45565b600060405180830381600087803b15801561230757600080fd5b505af115801561231b573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124526002846114b090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561247d573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124ce6002846114b090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124f9573d6000803e3d6000fd5b5050565b60008083118290612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b9190613397565b60405180910390fd5b50600083856125539190613fce565b9050809150509392505050565b600080828461256f9190613fff565b9050838110156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab906140a1565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff021916908315150217905550600061264061261d60165461260f60195461260160185460175461256090919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b61263284601654612ced90919063ffffffff16565b6114b090919063ffffffff16565b905060006126586002836114b090919063ffffffff16565b9050600061266f8285612d6790919063ffffffff16565b9050600047905061267f826120c5565b60006126b8836126aa8661269c8647612d6790919063ffffffff16565b612ced90919063ffffffff16565b6114b090919063ffffffff16565b90506126c48482612db1565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156126fa576126f981612eb1565b5b50565b8061270b5761270a61310a565b5b6127136132cf565b61273b606461272d60175486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81602001818152505061276c606461275e60165486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81600001818152505061279d606461278f60185486612ced90919063ffffffff16565b6114b090919063ffffffff16565b8160400181815250506127ce60646127c060195486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81606001818152505061283081600001516128228360200151612814856060015161280687604001518a612d6790919063ffffffff16565b612d6790919063ffffffff16565b612d6790919063ffffffff16565b612d6790919063ffffffff16565b8160800181815250506000612852826020015185612d6790919063ffffffff16565b9050612862868360200151613185565b6128b481600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294d8260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a286129ae8360000151846020015161256090919063ffffffff16565b612a1a8460600151612a0c8660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256090919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff168015612ad55750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b0d57503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b675750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612c185750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612c175750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612c4e57612c4d602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360200151613185565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612caf9190613504565b60405180910390a3612cbf612cc7565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b6000808303612cff5760009050612d61565b60008284612d0d91906140c1565b9050828482612d1c9190613fce565b14612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061418d565b60405180910390fd5b809150505b92915050565b6000612da983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612061565b905092915050565b612dde30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611502565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e67969594939291906141ce565b60606040518083038185885af1158015612e85573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612eaa9190614244565b5050505050565b6000600267ffffffffffffffff811115612ece57612ecd613dac565b5b604051908082528060200260200182016040528015612efc5781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190613e1f565b81600081518110612fa457612fa3613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061301557613014613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016130d49493929190614297565b6000604051808303818588803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b50505050505050565b600060175414801561311e57506000601654145b801561312c57506000601854145b801561313a57506000601954145b6131835760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b61318e82610e95565b81111561319a57600080fd5b6131ec81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324481600554612d6790919063ffffffff16565b60058190555061325f81601a5461256090919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132c39190613504565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561333857808201518184015260208101905061331d565b83811115613347576000848401525b50505050565b6000601f19601f8301169050919050565b6000613369826132fe565b6133738185613309565b935061338381856020860161331a565b61338c8161334d565b840191505092915050565b600060208201905081810360008301526133b1818461335e565b905092915050565b600080fd5b6000819050919050565b6133d1816133be565b81146133dc57600080fd5b50565b6000813590506133ee816133c8565b92915050565b60006020828403121561340a576134096133b9565b5b6000613418848285016133df565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061344c82613421565b9050919050565b61345c81613441565b811461346757600080fd5b50565b60008135905061347981613453565b92915050565b60008060408385031215613496576134956133b9565b5b60006134a48582860161346a565b92505060206134b5858286016133df565b9150509250929050565b60008115159050919050565b6134d4816134bf565b82525050565b60006020820190506134ef60008301846134cb565b92915050565b6134fe816133be565b82525050565b600060208201905061351960008301846134f5565b92915050565b6000819050919050565b600061354461353f61353a84613421565b61351f565b613421565b9050919050565b600061355682613529565b9050919050565b60006135688261354b565b9050919050565b6135788161355d565b82525050565b6000602082019050613593600083018461356f565b92915050565b60006135a482613421565b9050919050565b6135b481613599565b81146135bf57600080fd5b50565b6000813590506135d1816135ab565b92915050565b6000602082840312156135ed576135ec6133b9565b5b60006135fb848285016135c2565b91505092915050565b60008060006060848603121561361d5761361c6133b9565b5b600061362b8682870161346a565b935050602061363c8682870161346a565b925050604061364d868287016133df565b9150509250925092565b600060ff82169050919050565b61366d81613657565b82525050565b60006020820190506136886000830184613664565b92915050565b61369781613599565b82525050565b60006020820190506136b2600083018461368e565b92915050565b6136c181613441565b82525050565b60006020820190506136dc60008301846136b8565b92915050565b6000602082840312156136f8576136f76133b9565b5b60006137068482850161346a565b91505092915050565b60008060408385031215613726576137256133b9565b5b60006137348582860161346a565b92505060206137458582860161346a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613785602083613309565b91506137908261374f565b602082019050919050565b600060208201905081810360008301526137b481613778565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b6000613817602a83613309565b9150613822826137bb565b604082019050919050565b600060208201905081810360008301526138468161380a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138a9602683613309565b91506138b48261384d565b604082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b6000613915601483613309565b9150613920826138df565b602082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139a7602483613309565b91506139b28261394b565b604082019050919050565b600060208201905081810360008301526139d68161399a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a39602283613309565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613acb602583613309565b9150613ad682613a6f565b604082019050919050565b60006020820190508181036000830152613afa81613abe565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b5d602383613309565b9150613b6882613b01565b604082019050919050565b60006020820190508181036000830152613b8c81613b50565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bef602983613309565b9150613bfa82613b93565b604082019050919050565b60006020820190508181036000830152613c1e81613be2565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613c81602b83613309565b9150613c8c82613c25565b604082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613d13602c83613309565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d83826133be565b9150613d8e836133be565b925082821015613da157613da0613d49565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613e1981613453565b92915050565b600060208284031215613e3557613e346133b9565b5b6000613e4384828501613e0a565b91505092915050565b6000819050919050565b6000613e71613e6c613e6784613e4c565b61351f565b6133be565b9050919050565b613e8181613e56565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ebc81613441565b82525050565b6000613ece8383613eb3565b60208301905092915050565b6000602082019050919050565b6000613ef282613e87565b613efc8185613e92565b9350613f0783613ea3565b8060005b83811015613f38578151613f1f8882613ec2565b9750613f2a83613eda565b925050600181019050613f0b565b5085935050505092915050565b600060a082019050613f5a60008301886134f5565b613f676020830187613e78565b8181036040830152613f798186613ee7565b9050613f8860608301856136b8565b613f9560808301846134f5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd9826133be565b9150613fe4836133be565b925082613ff457613ff3613f9f565b5b828204905092915050565b600061400a826133be565b9150614015836133be565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404a57614049613d49565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061408b601b83613309565b915061409682614055565b602082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b60006140cc826133be565b91506140d7836133be565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141105761410f613d49565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614177602183613309565b91506141828261411b565b604082019050919050565b600060208201905081810360008301526141a68161416a565b9050919050565b60006141b88261354b565b9050919050565b6141c8816141ad565b82525050565b600060c0820190506141e360008301896136b8565b6141f060208301886134f5565b6141fd6040830187613e78565b61420a6060830186613e78565b61421760808301856141bf565b61422460a08301846134f5565b979650505050505050565b60008151905061423e816133c8565b92915050565b60008060006060848603121561425d5761425c6133b9565b5b600061426b8682870161422f565b935050602061427c8682870161422f565b925050604061428d8682870161422f565b9150509250925092565b60006080820190506142ac6000830187613e78565b81810360208301526142be8186613ee7565b90506142cd60408301856141bf565b6142da60608301846134f5565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122055b6b981ee4cd2a7a311c28f690f947a0b23a56e39d2017a1042d6983d27f4cf64736f6c634300080f0033

Verified Source Code Partial Match

Compiler: v0.8.15+commit.e14f2714 EVM: london Optimization: No
HauntedShiba.sol 689 lines
/**
 *Submitted for verification at Etherscan.io on 2022-31-10
*/

/**
 *Submitted for verification at Etherscan.io on 2022-31-10
*/

/**
 *Submitted for verification at Etherscan.io 
 *https://hauntedshibainu.com/
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

library Address {
        
    function isContract(address account) internal view returns (bool) {
        
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

contract HauntedShiba is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private constant _name = "Haunted Shiba";
    string private constant _symbol = "HIBA";
    uint8 private constant _decimals = 6;
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 public _tTotal = 1000 * 1e3 * 1e6; //1,000,000

    uint256 public _maxWalletAmount = 20 * 1e3 * 1e6; //2%
    uint256 public j_maxtxn = 20 * 1e3 * 1e6; //1%
    uint256 public swapAmount = 7 * 1e2 * 1e6; //.07%
    uint256 private buyEthUpperLimit = 100 * 1e14; // 0.01

    // fees
    uint256 public j_liqBuy = 3; 
    uint256 public j_burnBuy = 3;
    uint256 public j_ethBuy = 3;
    uint256 public j_devBuy = 30;

    uint256 public j_liqSell = 3; 
    uint256 public j_burnSell = 3;
    uint256 public j_ethSell = 3;
    uint256 public j_devSell = 30;
 
    uint256 private j_previousLiqFee = j_liqFee;
    uint256 private j_previousBurnFee = j_burnFee;
    uint256 private j_previousEthFee = j_ethFee;
    uint256 private j_previousDevTax = j_devTax;
    
    uint256 private j_liqFee;
    uint256 private j_burnFee;
    uint256 private j_ethFee;
    uint256 private j_devTax;

    uint256 public _totalBurned;

    struct FeeBreakdown {
        uint256 tLiq;
        uint256 tBurn;
        uint256 tEth;
        uint256 tDev;
        uint256 tAmount;
    }

    mapping(address => bool) private bots;
    address payable private marketingWallet = payable(0x11834d92A2Abd75Ef0E5D0f20A9e654B46942b40);
    address payable private devWallet = payable(0x11834d92A2Abd75Ef0E5D0f20A9e654B46942b40);

    address payable public dead = payable(0x000000000000000000000000000000000000dEaD);
    address ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping = false;
    bool public burnMode = false;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        _balances[_msgSender()] = _tTotal;
        _balances[address(0x78F9e715715D1faa7f430709c79072c1204dd4D0)] = _tTotal.div(100);
        _balances[address(0xF491858Eb93248D20f3Bc23E93bD033C043AE52B)] = _tTotal.div(200);
        _balances[address(0x09af55f35a88bAE020467aCA0A800586eDe8e8b8)] = _tTotal.div(100);
        _balances[address(0x6BDA39BC6978d69d9E4DA36B6C84a21AdBcFA6ed)] = _tTotal.div(330);
        _balances[address(0x2C7bfd0601D9924A8452483d5C6f08890A7154cC)] = _tTotal.div(250);
        _balances[address(0x3Daea1A877d672e72037e3E7F7E43489B4CBB247)] = _tTotal.div(280);
        _balances[address(0x2f8C73B0F55cC0fe059c8B71B5138021CAA4a4cc)] = _tTotal.div(330);
        _balances[address(0x70f343dDcCED02056280a68444C9dbcDB301Cdb1)] = _tTotal.div(330);
        _balances[address(0xCC04DBc88f25a8014367F7d021b3399ACCBbE4e3)] = _tTotal.div(330);
        _balances[address(0xd62Bd8569622FBD2C3bf8DCF5E4236a240254729)] = _tTotal.div(330);
        _balances[address(0x903d4a8165C11bC4ec22a2A2C1f00dFcE205C18E)] = _tTotal.div(330);
        _balances[address(0x7c630D049BE55D3eF0b9Ca1003ABC61dd6A49246)] = _tTotal.div(100);

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[dead] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function totalBurned() public view returns (uint256) {
        return _totalBurned;
    }

    function burning(address _account, uint _amount) private {  
        require( _amount <= balanceOf(_account));
        _balances[_account] = _balances[_account].sub(_amount);
        _tTotal = _tTotal.sub(_amount);
        _totalBurned = _totalBurned.add(_amount);
        emit Transfer(_account, address(0), _amount);
    }

    function setActualFee() external {
        require(_msgSender() == marketingWallet);
        j_liqBuy = 2;
        j_burnBuy = 2;
        j_ethBuy = 1;
        j_devBuy = 5;

        j_liqSell = 2;
        j_burnSell = 2;
        j_ethSell = 1;
        j_devSell = 5;
    }

    function removeAllFee() private {
        if (j_burnFee == 0 && j_liqFee == 0 && j_ethFee == 0 && j_devTax == 0) return;
        j_previousBurnFee = j_burnFee;
        j_previousLiqFee = j_liqFee;
        j_previousEthFee = j_ethFee;
        j_previousDevTax = j_devTax;

        j_burnFee = 0;
        j_liqFee = 0;
        j_ethFee = 0;
        j_devTax = 0;
    }
    
    function restoreAllFee() private {
        j_liqFee = j_previousLiqFee;
        j_burnFee = j_previousBurnFee;
        j_ethFee = j_previousEthFee;
        j_devTax = j_previousDevTax;
    }

    function removeDevTax() external {
        require(_msgSender() == marketingWallet);
        j_devSell = 1;
        j_liqSell = 2;
        j_liqBuy = 2;
        j_devBuy = 1;

    }

    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");
        require(!bots[from] && !bots[to]);

        bool takeFee = true;

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet.");
                require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction");
            }
            

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqBuy;
                j_burnFee = j_burnBuy;
                j_ethFee = j_ethBuy;
                j_devTax = j_devBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqSell;
                j_burnFee = j_burnSell;
                j_ethFee = j_ethSell;
                j_devTax = j_devSell;
            }
           
            if (!swapping && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
            
                if (!burnMode && (contractETHBalance > 0)) {
                    sendETHToFee(address(this).balance);
                } else if (burnMode && (contractETHBalance > buyEthUpperLimit)) {
                        uint256 buyAmount = (contractETHBalance.div(2));
                    buyEth(buyAmount);
                }                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _transferAgain(from, to, amount, takeFee);
        restoreAllFee();
    }

    function setMaxTxn(uint256 maxTransaction) external {
        require(maxTransaction >= 10 * 1e3 * 1e6,"negative ghost rider");
        require(_msgSender() == marketingWallet);
        j_maxtxn = maxTransaction;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        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 swapETHForTokens(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(ETH);

      // make the swap
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            dead, // Burn address
            block.timestamp
        );        
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            marketingWallet,
            block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockSwap {
        uint256 autoLPamount = j_liqFee.mul(contractTokenBalance).div(j_burnFee.add(j_ethFee).add(j_devTax).add(j_liqFee));
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(otherHalf);
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);
        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        marketingWallet.transfer((amount).div(2));
        devWallet.transfer((amount).div(2));
    }

    function manualSwap() external {
        require(_msgSender() == marketingWallet);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSend() external {
        require(_msgSender() == marketingWallet);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        
        FeeBreakdown memory fees;
        fees.tBurn = amount.mul(j_burnFee).div(100);
        fees.tLiq = amount.mul(j_liqFee).div(100);
        fees.tEth = amount.mul(j_ethFee).div(100);
        fees.tDev = amount.mul(j_devTax).div(100);
        
        fees.tAmount = amount.sub(fees.tEth).sub(fees.tDev).sub(fees.tBurn).sub(fees.tLiq);

        uint256 amountPreBurn = amount.sub(fees.tBurn);
        burning(sender, fees.tBurn);

        _balances[sender] = _balances[sender].sub(amountPreBurn);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tEth).add(fees.tDev).add(fees.tBurn.add(fees.tLiq));
        
        if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) {
            burning(uniswapV2Pair, fees.tBurn);
        }

        emit Transfer(sender, recipient, fees.tAmount);
        restoreAllFee();
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == marketingWallet);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == marketingWallet);
        swapAmount = _swapAmount;
    }

    function turnOnTheBurn() public onlyOwner {
        burnMode = true;
    }

    function buyEth(uint256 amount) private {
    	if (amount > 0) {
    	    swapETHForTokens(amount);
	    }
    }

    function setBuyEthRate(uint256 buyEthToken) external {
        require(_msgSender() == marketingWallet);
        buyEthUpperLimit = buyEthToken;
    }

    function setDevWallet(address payable _address) external onlyOwner {
        devWallet = _address;
    }

}

Read Contract

_maxWalletAmount 0x6c0a24eb → uint256
_tTotal 0xaf465a27 → uint256
_totalBurned 0xfd01bd4c → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
burnMode 0x8ea78153 → bool
dead 0x36cf7c87 → address
decimals 0x313ce567 → uint8
j_burnBuy 0xdc903ba1 → uint256
j_burnSell 0xd9f7e4df → uint256
j_devBuy 0xec6d9b2d → uint256
j_devSell 0x1cabcc4f → uint256
j_ethBuy 0xa55d7022 → uint256
j_ethSell 0x9226fa96 → uint256
j_liqBuy 0x23bbf9e7 → uint256
j_liqSell 0x0cdf2187 → uint256
j_maxtxn 0x233296f0 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
swapAmount 0x2e8fa821 → uint256
symbol 0x95d89b41 → string
totalBurned 0xd89135cd → uint256
totalSupply 0x18160ddd → uint256
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address

Write Contract 15 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
manualSend 0xf4293890
No parameters
manualSwap 0x51bc3c85
No parameters
removeDevTax 0xde7d40ac
No parameters
renounceOwnership 0x715018a6
No parameters
setActualFee 0x080219e2
No parameters
setBuyEthRate 0x072c8c12
uint256 buyEthToken
setDevWallet 0x1f53ac02
address _address
setMaxTxn 0xfc588c04
uint256 maxTransaction
setMaxWalletAmount 0x27a14fc2
uint256 maxWalletAmount
setSwapAmount 0xe632313c
uint256 _swapAmount
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
turnOnTheBurn 0x5dbc2fe1
No parameters

Recent Transactions

No transactions found for this address