Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x0c6A9CEcFf52948Db37aFC79e889270164c6fEbF
Balance 0.058338 ETH
Nonce 1
Code Size 17572 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

17572 bytes
0x60806040526004361061036e575f3560e01c80637bce5a04116101c5578063c8c8ebe4116100f6578063f083d52511610094578063f5648a4f1161006e578063f5648a4f14610c55578063f637434214610c6b578063f8b45b0514610c95578063fe72b27a14610cbf57610375565b8063f083d52514610bdb578063f11a24d314610c03578063f2fde38b14610c2d57610375565b8063d4698016116100d0578063d469801614610b21578063d85ba06314610b4b578063dd62ed3e14610b75578063e2f4560514610bb157610375565b8063c8c8ebe414610aa5578063c9567bf914610acf578063d257b34f14610ae557610375565b8063a457c2d711610163578063b8c8788d1161013d578063b8c8788d14610a01578063bbc0c74214610a2b578063c024666814610a55578063c17b5b8c14610a7d57610375565b8063a457c2d71461095f578063a4c82a001461099b578063a9059cbb146109c557610375565b8063921369131161019f57806392136913146108b957806395d89b41146108e3578063961883991461090d5780639ec22c0e1461093557610375565b80637bce5a041461083d5780638095d564146108675780638da5cb5b1461088f57610375565b806349bd5a5e1161029f5780636a486a8e1161023d578063715018a611610217578063715018a6146107ad578063730c1888146107c35780637571336a146107eb57806375f0a8741461081357610375565b80636a486a8e1461071d5780636ddd17131461074757806370a082311461077157610375565b80634fbee193116102795780634fbee193146106775780635a3a96f3146106b35780635d60c7be146106dd578063672729991461070757610375565b806349bd5a5e146105f95780634a62bb65146106235780634ad9b1d31461064d57610375565b806327c8f8351161030c578063313ce567116102e6578063313ce56714610541578063325b3b181461056b578063395093511461059557806342966c68146105d157610375565b806327c8f835146104c35780632c3e486c146104ed5780632e82f1a01461051757610375565b806318160ddd1161034857806318160ddd14610409578063184c16c514610433578063226cf6601461045d57806323b872dd1461048757610375565b806306fdde0314610379578063095ea7b3146103a35780631694505e146103df57610375565b3661037557005b5f80fd5b348015610384575f80fd5b5061038d610cfb565b60405161039a91906135c9565b60405180910390f35b3480156103ae575f80fd5b506103c960048036038101906103c4919061367a565b610d8b565b6040516103d691906136d2565b60405180910390f35b3480156103ea575f80fd5b506103f3610dad565b6040516104009190613746565b60405180910390f35b348015610414575f80fd5b5061041d610dd1565b60405161042a919061376e565b60405180910390f35b34801561043e575f80fd5b50610447610dda565b604051610454919061376e565b60405180910390f35b348015610468575f80fd5b50610471610de0565b60405161047e919061376e565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a89190613787565b610de6565b6040516104ba91906136d2565b60405180910390f35b3480156104ce575f80fd5b506104d7610e14565b6040516104e491906137e6565b60405180910390f35b3480156104f8575f80fd5b50610501610e1a565b60405161050e919061376e565b60405180910390f35b348015610522575f80fd5b5061052b610e20565b60405161053891906136d2565b60405180910390f35b34801561054c575f80fd5b50610555610e32565b604051610562919061381a565b60405180910390f35b348015610576575f80fd5b5061057f610e3a565b60405161058c919061376e565b60405180910390f35b3480156105a0575f80fd5b506105bb60048036038101906105b6919061367a565b610e40565b6040516105c891906136d2565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f29190613833565b610e76565b005b348015610604575f80fd5b5061060d610e83565b60405161061a91906137e6565b60405180910390f35b34801561062e575f80fd5b50610637610ea8565b60405161064491906136d2565b60405180910390f35b348015610658575f80fd5b50610661610eba565b60405161066e919061376e565b60405180910390f35b348015610682575f80fd5b5061069d6004803603810190610698919061385e565b610ec0565b6040516106aa91906136d2565b60405180910390f35b3480156106be575f80fd5b506106c7610f12565b6040516106d4919061376e565b60405180910390f35b3480156106e8575f80fd5b506106f1610f18565b6040516106fe91906137e6565b60405180910390f35b348015610712575f80fd5b5061071b610f3d565b005b348015610728575f80fd5b506107316110d6565b60405161073e919061376e565b60405180910390f35b348015610752575f80fd5b5061075b6110dc565b60405161076891906136d2565b60405180910390f35b34801561077c575f80fd5b506107976004803603810190610792919061385e565b6110ef565b6040516107a4919061376e565b60405180910390f35b3480156107b8575f80fd5b506107c1611134565b005b3480156107ce575f80fd5b506107e960048036038101906107e491906138b3565b611147565b005b3480156107f6575f80fd5b50610811600480360381019061080c9190613903565b611211565b005b34801561081e575f80fd5b50610827611271565b60405161083491906137e6565b60405180910390f35b348015610848575f80fd5b50610851611296565b60405161085e919061376e565b60405180910390f35b348015610872575f80fd5b5061088d60048036038101906108889190613941565b61129c565b005b34801561089a575f80fd5b506108a36112f0565b6040516108b091906137e6565b60405180910390f35b3480156108c4575f80fd5b506108cd611318565b6040516108da919061376e565b60405180910390f35b3480156108ee575f80fd5b506108f761131e565b60405161090491906135c9565b60405180910390f35b348015610918575f80fd5b50610933600480360381019061092e9190613991565b6113ae565b005b348015610940575f80fd5b50610949611420565b604051610956919061376e565b60405180910390f35b34801561096a575f80fd5b506109856004803603810190610980919061367a565b611426565b60405161099291906136d2565b60405180910390f35b3480156109a6575f80fd5b506109af61149b565b6040516109bc919061376e565b60405180910390f35b3480156109d0575f80fd5b506109eb60048036038101906109e6919061367a565b6114a1565b6040516109f891906136d2565b60405180910390f35b348015610a0c575f80fd5b50610a156114c3565b604051610a22919061376e565b60405180910390f35b348015610a36575f80fd5b50610a3f6114c9565b604051610a4c91906136d2565b60405180910390f35b348015610a60575f80fd5b50610a7b6004803603810190610a769190613903565b6114dc565b005b348015610a88575f80fd5b50610aa36004803603810190610a9e9190613941565b61153c565b005b348015610ab0575f80fd5b50610ab9611599565b604051610ac6919061376e565b60405180910390f35b348015610ada575f80fd5b50610ae361159f565b005b348015610af0575f80fd5b50610b0b6004803603810190610b069190613833565b611a09565b604051610b1891906136d2565b60405180910390f35b348015610b2c575f80fd5b50610b35611a7b565b604051610b4291906137e6565b60405180910390f35b348015610b56575f80fd5b50610b5f611aa0565b604051610b6c919061376e565b60405180910390f35b348015610b80575f80fd5b50610b9b6004803603810190610b9691906139cf565b611aa6565b604051610ba8919061376e565b60405180910390f35b348015610bbc575f80fd5b50610bc5611b28565b604051610bd2919061376e565b60405180910390f35b348015610be6575f80fd5b50610c016004803603810190610bfc9190613833565b611b2e565b005b348015610c0e575f80fd5b50610c17611b5c565b604051610c24919061376e565b60405180910390f35b348015610c38575f80fd5b50610c536004803603810190610c4e919061385e565b611b62565b005b348015610c60575f80fd5b50610c69611be4565b005b348015610c76575f80fd5b50610c7f611cfb565b604051610c8c919061376e565b60405180910390f35b348015610ca0575f80fd5b50610ca9611d01565b604051610cb6919061376e565b60405180910390f35b348015610cca575f80fd5b50610ce56004803603810190610ce09190613833565b611d07565b604051610cf291906136d2565b60405180910390f35b606060038054610d0a90613a3a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3690613a3a565b8015610d815780601f10610d5857610100808354040283529160200191610d81565b820191905f5260205f20905b815481529060010190602001808311610d6457829003601f168201915b5050505050905090565b5f80610d95611f53565b9050610da2818585611f5a565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b60115481565b60145481565b5f80610df0611f53565b9050610dfd858285612041565b610e08858585612095565b60019150509392505050565b61dead81565b600f5481565b600e5f9054906101000a900460ff1681565b5f6012905090565b60135481565b5f80610e4a611f53565b9050610e6b818585610e5c8589611aa6565b610e669190613a97565b611f5a565b600191505092915050565b610e803382612a73565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900460ff1681565b601d5481565b5f60225f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600d5481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290613b14565b60405180910390fd5b5f610fb5336110ef565b90505f8111610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090613b7c565b60405180910390fd5b5f611002610dd1565b90505f8183476110129190613b9a565b61101c9190613c08565b90506110283384612a73565b5f3373ffffffffffffffffffffffffffffffffffffffff168260405161104d90613c65565b5f6040518083038185875af1925050503d805f8114611087576040519150601f19603f3d011682016040523d82523d5f602084013e61108c565b606091505b50509050806110d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c790613cc3565b60405180910390fd5b50505050565b601a5481565b601560029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61113c612b3d565b6111455f612bbb565b565b61114f612b3d565b610258831015611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90613d51565b60405180910390fd5b6103e882111580156111a657505f8210155b6111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90613ddf565b60405180910390fd5b82600f8190555081600d8190555080600e5f6101000a81548160ff021916908315150217905550505050565b611219612b3d565b8060235f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6112a4612b3d565b8260178190555081601881905550806019819055506018546019546017546112cc9190613a97565b6112d69190613a97565b601681905550601960165411156112eb575f80fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601b5481565b60606004805461132d90613a3a565b80601f016020809104026020016040519081016040528092919081815260200182805461135990613a3a565b80156113a45780601f1061137b576101008083540402835291602001916113a4565b820191905f5260205f20905b81548152906001019060200180831161138757829003601f168201915b5050505050905090565b6113b6612b3d565b6103e860056113c3610dd1565b6113cd9190613b9a565b6113d79190613c08565b8210156113e2575f80fd5b6103e860056113ef610dd1565b6113f99190613b9a565b6114039190613c08565b81101561140e575f80fd5b80600c8190555081600a819055505050565b60125481565b5f80611430611f53565b90505f61143d8286611aa6565b905083811015611482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147990613e6d565b60405180910390fd5b61148f8286868403611f5a565b60019250505092915050565b60105481565b5f806114ab611f53565b90506114b8818585612095565b600191505092915050565b60195481565b601560019054906101000a900460ff1681565b6114e4612b3d565b8060225f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611544612b3d565b82601b8190555081601c8190555080601d81905550601c54601d54601b5461156c9190613a97565b6115769190613a97565b601a81905550601a546021819055506019601a541115611594575f80fd5b505050565b600a5481565b6115a7612b3d565b601560019054906101000a900460ff16156115c0575f80fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611629573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164d9190613e9f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f69190613e9f565b6040518363ffffffff1660e01b8152600401611713929190613eca565b6020604051808303815f875af115801561172f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117539190613e9f565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117de3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611f5a565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161187a929190613ef1565b6020604051808303815f875af1158015611896573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ba9190613f2c565b506118e760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612c7e565b61191360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611211565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719473061195a306110ef565b5f8030426040518863ffffffff1660e01b815260040161197f96959493929190613f90565b60606040518083038185885af115801561199b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906119c09190614003565b5050506001601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff0219169083151502179055504260108190555042601381905550565b5f611a12612b3d565b620186a06001611a20610dd1565b611a2a9190613b9a565b611a349190613c08565b821015611a3f575f80fd5b6103e86005611a4c610dd1565b611a569190613b9a565b611a609190613c08565b821115611a6b575f80fd5b81600b8190555060019050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b611b36612b3d565b5f8111611b41575f80fd5b8060145f828254611b529190613a97565b9250508190555050565b60185481565b611b6a612b3d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf906140c3565b60405180910390fd5b611be181612bbb565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3c575f80fd5b601454601354611c4c9190613a97565b421015611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c859061412b565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611cb390613c65565b5f6040518083038185875af1925050503d805f8114611ced576040519150601f19603f3d011682016040523d82523d5f602084013e611cf2565b606091505b50508091505050565b601c5481565b600c5481565b5f611d10612b3d565b601154601254611d209190613a97565b4211611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890614193565b60405180910390fd5b6103e8821115611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90614221565b60405180910390fd5b426012819055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611e0891906137e6565b602060405180830381865afa158015611e23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e47919061423f565b90505f6127108483611e599190613b9a565b611e639190613c08565b90505f811115611e9c57611e9b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83612cd6565b5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611f06575f80fd5b505af1158015611f18573d5f803e3d5ffd5b505050507e22c74b3a86ea8dfa255116234c1bcddd89a3f4379935fa263daefeb087008e60405160405180910390a160019350505050919050565b5f33905090565b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612034919061376e565b60405180910390a3505050565b5f61204c8484611aa6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461208f5781811015612081575f80fd5b61208e8484848403611f5a565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120cc575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612103575f80fd5b5f810361211a5761211583835f612cd6565b612a6e565b6121226112f0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561219057506121606112f0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121c857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612202575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561221b5750600660149054906101000a900460ff16155b156124d657601560019054906101000a900460ff166122d85760225f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122cf575060225f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6122d7575f80fd5b5b60245f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612375575060235f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156123ae57600a54811115612388575f80fd5b600c54612394836110ef565b8261239f9190613a97565b11156123a9575f80fd5b6124d5565b60245f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561244b575060235f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561246357600a5481111561245e575f80fd5b6124d4565b60235f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166124d357600c546124bd836110ef565b826124c89190613a97565b11156124d2575f80fd5b5b5b5b5b5f6124e0306110ef565b90505f600b5482101590508080156125045750601560029054906101000a900460ff165b801561251d5750600660149054906101000a900460ff16155b8015612570575060245f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125c3575060225f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612616575060225f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612659576001600660146101000a81548160ff02191690831515021790555061263e612e87565b5f600660146101000a81548160ff0219169083151502179055505b600660149054906101000a900460ff161580156126bc575060245f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156126d35750600e5f9054906101000a900460ff165b80156126ee5750600f546010546126ea9190613a97565b4210155b8015612741575060225f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127505761274e613065565b505b5f600660149054906101000a900460ff1615905060225f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806127ff575060225f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612808575f90505b5f8115612a555760245f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561286657505f601a54115b15612922576064601a548661287b9190613b9a565b6128859190613c08565b9050601a54601d54826128989190613b9a565b6128a29190613c08565b60205f8282546128b29190613a97565b92505081905550601a54601c54826128ca9190613b9a565b6128d49190613c08565b601f5f8282546128e49190613a97565b92505081905550601a54601b54826128fc9190613b9a565b6129069190613c08565b601e5f8282546129169190613a97565b92505081905550612a32565b60245f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561297957505f601654115b15612a315760646016548661298e9190613b9a565b6129989190613c08565b9050601654601954826129ab9190613b9a565b6129b59190613c08565b60205f8282546129c59190613a97565b92505081905550601654601854826129dd9190613b9a565b6129e79190613c08565b601f5f8282546129f79190613a97565b9250508190555060165460175482612a0f9190613b9a565b612a199190613c08565b601e5f828254612a299190613a97565b925050819055505b5b5f811115612a4657612a45873083612cd6565b5b8085612a52919061426a565b94505b612a60878787612cd6565b602154601a81905550505050505b505050565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612abe919061426a565b925050819055508060025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b31919061376e565b60405180910390a35050565b612b45611f53565b73ffffffffffffffffffffffffffffffffffffffff16612b636112f0565b73ffffffffffffffffffffffffffffffffffffffff1614612bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb0906142e7565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060245f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d0d575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d44575f80fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612d90575f80fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e79919061376e565b60405180910390a350505050565b5f612e91306110ef565b90505f602054601e54601f54612ea79190613a97565b612eb19190613a97565b90505f80831480612ec157505f82145b15612ece57505050613063565b6014600b54612edd9190613b9a565b831115612ef6576014600b54612ef39190613b9a565b92505b5f600283601f5486612f089190613b9a565b612f129190613c08565b612f1c9190613c08565b90505f8185612f2b919061426a565b90505f479050612f3a82613214565b5f8147612f47919061426a565b90505f86601e5483612f599190613b9a565b612f639190613c08565b90505f8760205484612f759190613b9a565b612f7f9190613c08565b90505f8183612f8e9190613a97565b84612f99919061426a565b90505f601f819055505f601e819055505f6020819055505f87118015612fbe57505f81115b15612fce57612fcd8782613447565b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161301390613c65565b5f6040518083038185875af1925050503d805f811461304d576040519150601f19603f3d011682016040523d82523d5f602084013e613052565b606091505b505080985050505050505050505050505b565b5f426010819055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016130c891906137e6565b602060405180830381865afa1580156130e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613107919061423f565b90505f612710600d548361311b9190613b9a565b6131259190613c08565b90505f81111561315e5761315d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83612cd6565b5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156131c8575f80fd5b505af11580156131da573d5f803e3d5ffd5b505050507f3b8003ff934e6fbafe481f0ae193446286cc42f0a2b46361542b58076803df2560405160405180910390a16001935050505090565b5f600267ffffffffffffffff8111156132305761322f614305565b5b60405190808252806020026020018201604052801561325e5781602001602082028036833780820191505090505b50905030815f8151811061327557613274614332565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613318573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061333c9190613e9f565b816001815181106133505761334f614332565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133b5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611f5a565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613416959493929190614416565b5f604051808303815f87803b15801561342d575f80fd5b505af115801561343f573d5f803e3d5ffd5b505050505050565b613472307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611f5a565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016134f796959493929190613f90565b60606040518083038185885af1158015613513573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906135389190614003565b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561357657808201518184015260208101905061355b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61359b8261353f565b6135a58185613549565b93506135b5818560208601613559565b6135be81613581565b840191505092915050565b5f6020820190508181035f8301526135e18184613591565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613616826135ed565b9050919050565b6136268161360c565b8114613630575f80fd5b50565b5f813590506136418161361d565b92915050565b5f819050919050565b61365981613647565b8114613663575f80fd5b50565b5f8135905061367481613650565b92915050565b5f80604083850312156136905761368f6135e9565b5b5f61369d85828601613633565b92505060206136ae85828601613666565b9150509250929050565b5f8115159050919050565b6136cc816136b8565b82525050565b5f6020820190506136e55f8301846136c3565b92915050565b5f819050919050565b5f61370e613709613704846135ed565b6136eb565b6135ed565b9050919050565b5f61371f826136f4565b9050919050565b5f61373082613715565b9050919050565b61374081613726565b82525050565b5f6020820190506137595f830184613737565b92915050565b61376881613647565b82525050565b5f6020820190506137815f83018461375f565b92915050565b5f805f6060848603121561379e5761379d6135e9565b5b5f6137ab86828701613633565b93505060206137bc86828701613633565b92505060406137cd86828701613666565b9150509250925092565b6137e08161360c565b82525050565b5f6020820190506137f95f8301846137d7565b92915050565b5f60ff82169050919050565b613814816137ff565b82525050565b5f60208201905061382d5f83018461380b565b92915050565b5f60208284031215613848576138476135e9565b5b5f61385584828501613666565b91505092915050565b5f60208284031215613873576138726135e9565b5b5f61388084828501613633565b91505092915050565b613892816136b8565b811461389c575f80fd5b50565b5f813590506138ad81613889565b92915050565b5f805f606084860312156138ca576138c96135e9565b5b5f6138d786828701613666565b93505060206138e886828701613666565b92505060406138f98682870161389f565b9150509250925092565b5f8060408385031215613919576139186135e9565b5b5f61392685828601613633565b92505060206139378582860161389f565b9150509250929050565b5f805f60608486031215613958576139576135e9565b5b5f61396586828701613666565b935050602061397686828701613666565b925050604061398786828701613666565b9150509250925092565b5f80604083850312156139a7576139a66135e9565b5b5f6139b485828601613666565b92505060206139c585828601613666565b9150509250929050565b5f80604083850312156139e5576139e46135e9565b5b5f6139f285828601613633565b9250506020613a0385828601613633565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a5157607f821691505b602082108103613a6457613a63613a0d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aa182613647565b9150613aac83613647565b9250828201905080821115613ac457613ac3613a6a565b5b92915050565b7f21636100000000000000000000000000000000000000000000000000000000005f82015250565b5f613afe600383613549565b9150613b0982613aca565b602082019050919050565b5f6020820190508181035f830152613b2b81613af2565b9050919050565b7f4e6f20746f6b656e732068656c640000000000000000000000000000000000005f82015250565b5f613b66600e83613549565b9150613b7182613b32565b602082019050919050565b5f6020820190508181035f830152613b9381613b5a565b9050919050565b5f613ba482613647565b9150613baf83613647565b9250828202613bbd81613647565b91508282048414831517613bd457613bd3613a6a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613c1282613647565b9150613c1d83613647565b925082613c2d57613c2c613bdb565b5b828204905092915050565b5f81905092915050565b50565b5f613c505f83613c38565b9150613c5b82613c42565b5f82019050919050565b5f613c6f82613c45565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f613cad601383613549565b9150613cb882613c79565b602082019050919050565b5f6020820190508181035f830152613cda81613ca1565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e2074685f8201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b5f613d3b603383613549565b9150613d4682613ce1565b604082019050919050565b5f6020820190508181035f830152613d6881613d2f565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e742062655f8201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b5f613dc9603083613549565b9150613dd482613d6f565b604082019050919050565b5f6020820190508181035f830152613df681613dbd565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613e57602583613549565b9150613e6282613dfd565b604082019050919050565b5f6020820190508181035f830152613e8481613e4b565b9050919050565b5f81519050613e998161361d565b92915050565b5f60208284031215613eb457613eb36135e9565b5b5f613ec184828501613e8b565b91505092915050565b5f604082019050613edd5f8301856137d7565b613eea60208301846137d7565b9392505050565b5f604082019050613f045f8301856137d7565b613f11602083018461375f565b9392505050565b5f81519050613f2681613889565b92915050565b5f60208284031215613f4157613f406135e9565b5b5f613f4e84828501613f18565b91505092915050565b5f819050919050565b5f613f7a613f75613f7084613f57565b6136eb565b613647565b9050919050565b613f8a81613f60565b82525050565b5f60c082019050613fa35f8301896137d7565b613fb0602083018861375f565b613fbd6040830187613f81565b613fca6060830186613f81565b613fd760808301856137d7565b613fe460a083018461375f565b979650505050505050565b5f81519050613ffd81613650565b92915050565b5f805f6060848603121561401a576140196135e9565b5b5f61402786828701613fef565b935050602061403886828701613fef565b925050604061404986828701613fef565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6140ad602683613549565b91506140b882614053565b604082019050919050565b5f6020820190508181035f8301526140da816140a1565b9050919050565b7f746f6f20736f6f6e0000000000000000000000000000000000000000000000005f82015250565b5f614115600883613549565b9150614120826140e1565b602082019050919050565b5f6020820190508181035f83015261414281614109565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973685f82015250565b5f61417d602083613549565b915061418882614149565b602082019050919050565b5f6020820190508181035f8301526141aa81614171565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f5f8201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b5f61420b602a83613549565b9150614216826141b1565b604082019050919050565b5f6020820190508181035f830152614238816141ff565b9050919050565b5f60208284031215614254576142536135e9565b5b5f61426184828501613fef565b91505092915050565b5f61427482613647565b915061427f83613647565b925082820390508181111561429757614296613a6a565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6142d1602083613549565b91506142dc8261429d565b602082019050919050565b5f6020820190508181035f8301526142fe816142c5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143918161360c565b82525050565b5f6143a28383614388565b60208301905092915050565b5f602082019050919050565b5f6143c48261435f565b6143ce8185614369565b93506143d983614379565b805f5b838110156144095781516143f08882614397565b97506143fb836143ae565b9250506001810190506143dc565b5085935050505092915050565b5f60a0820190506144295f83018861375f565b6144366020830187613f81565b818103604083015261444881866143ba565b905061445760608301856137d7565b614464608083018461375f565b969550505050505056fea26469706673582212202747e54d68bc6ed862196e81c85f6975e20d664421865f4c8fbf01fdcffa68ea64736f6c63430008160033

Verified Source Code Partial Match

Compiler: v0.8.22+commit.4fc1097e EVM: shanghai Optimization: No
ENRON.sol 1122 lines
// SPDX-License-Identifier: MIT
/**
 *
 * https://enron.app
 * https://t.me/EnronPonziPortal
 * https://x.com/enronponzi
 *
 */
pragma solidity ^0.8.9;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

// pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
    external
    view
    returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

// pragma solidity ^0.8.0;

// import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account)
    public
    view
    virtual
    override
    returns (uint256)
    {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
    public
    view
    virtual
    override
    returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
    public
    virtual
    returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
    public
    virtual
    returns (bool)
    {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0));
        require(to != address(0));

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount);
        unchecked {
            _balances[from] = fromBalance - amount;
        // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
        // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    function _mint(address to, uint256 amount) internal virtual {
        _totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            _balances[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        _balances[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            _totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount);
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
}

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 addLiquidityETH(address token,uint256 amountTokenDesired,uint256 amountTokenMin,uint256 amountETHMin,address to,uint256 deadline) external payable returns (uint256 amountToken,uint256 amountETH,uint256 liquidity);
    function removeLiquidityETH(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external returns (uint amountToken, uint amountETH);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

contract ENRON is ERC20, Ownable {
    event AutoBurnLP();
    event ManualBurnLP();

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address public marketingWallet;
    address public liquidityWallet;
    address public deployerWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    uint256 public basisPointsForLPBurn = 25; // 25 = .25%
    bool public lpBurnEnabled = true;
    uint256 public lpBurnFrequency = 3600 seconds;
    uint256 public lastLpBurnTime;

    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;
    uint256 public openTradingTime;
    uint256 public stuckEthDelay = 7 days;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyContractFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellContractFee;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;
    uint256 private tokensForContract;
    uint256 private previousFee;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    constructor() payable ERC20("Enron Creditors Recovery Corp", "ENRON") {

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        uint256 totalSupply = 1_000_000_000_000_000 * 10 ** 18;

        maxTransactionAmount = (totalSupply * 7) / 1000;
        maxWallet = (totalSupply * 7) / 1000;
        swapTokensAtAmount = (totalSupply * 1) / 1000;

        buyMarketingFee = 10;
        buyLiquidityFee = 5;
        buyContractFee = 10;
        buyTotalFees =
            buyMarketingFee +
            buyLiquidityFee +
            buyContractFee;

        sellMarketingFee = 10;
        sellLiquidityFee = 5;
        sellContractFee = 10;
        sellTotalFees =
            sellMarketingFee +
            sellLiquidityFee +
            sellContractFee;

        previousFee = sellTotalFees;

        marketingWallet = _msgSender();
        liquidityWallet = _msgSender();
        deployerWallet = _msgSender();


        excludeFromFees(_msgSender(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(deadAddress, true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(liquidityWallet, true);

        excludeFromMaxTransaction(_msgSender(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(deadAddress, true);
        excludeFromMaxTransaction(address(uniswapV2Router), true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(liquidityWallet, true);

        _mint(address(this), (totalSupply * 100) / 100);
    }

    receive() external payable {}

    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    function openTrading() external onlyOwner {
        require(!tradingActive);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        _approve(address(this), address(uniswapV2Pair), type(uint256).max);
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            address(this),
            block.timestamp
        );

        tradingActive = true;
        swapEnabled = true;
        lastLpBurnTime = block.timestamp;
        openTradingTime = block.timestamp;
    }

    function updateSwapTokensAtAmount(uint256 newAmount)
    external
    onlyOwner
    returns (bool)
    {
        require(newAmount >= (totalSupply() * 1) / 100000);
        require(newAmount <= (totalSupply() * 5) / 1000);
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxWalletAndTxnAmount(
        uint256 newTxnNum,
        uint256 newMaxWalletNum
    ) external onlyOwner {
        require(newTxnNum >= ((totalSupply() * 5) / 1000));
        require(newMaxWalletNum >= ((totalSupply() * 5) / 1000));
        maxWallet = newMaxWalletNum;
        maxTransactionAmount = newTxnNum;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateBuyFees(
        uint256 _marketingFee,
        uint256 _liquidityFee,
        uint256 _contractFee
    ) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyContractFee = _contractFee;
        buyTotalFees = buyMarketingFee + buyContractFee + buyLiquidityFee;
        require(buyTotalFees <= 25);
    }

    function updateSellFees(
        uint256 _marketingFee,
        uint256 _liquidityFee,
        uint256 _contractFee
    ) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellContractFee = _contractFee;
        sellTotalFees = sellMarketingFee + sellContractFee + sellLiquidityFee;
        previousFee = sellTotalFees;
        require(sellTotalFees <= 25);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function withdrawStuckETH() public {
        require(msg.sender == deployerWallet);
        require(block.timestamp >= openTradingTime + stuckEthDelay, "too soon");
        bool success;
        (success, ) = address(msg.sender).call{value: address(this).balance}("");
    }

    function delayStuckEthWithdrawal(uint256 additionalDelay) external onlyOwner {
        require(additionalDelay > 0);
        stuckEthDelay += additionalDelay;
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0));
        require(to != address(0));

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (
            from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != deadAddress &&
            !swapping
        ) {
            if (!tradingActive) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to]);
            }

            //when buy
            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount);
                require(amount + balanceOf(to) <= maxWallet);
            }
                //when sell
            else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(amount <= maxTransactionAmount);
            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet);
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        // log the conditions below
        if (
            !swapping &&
            automatedMarketMakerPairs[to] &&
            lpBurnEnabled &&
            block.timestamp >= lastLpBurnTime + lpBurnFrequency &&
            !_isExcludedFromFees[from]
        ) {
            autoBurnLiquidityPairTokens();
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount * sellTotalFees / 100;
                tokensForContract += (fees * sellContractFee) / sellTotalFees;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            }
                // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount * buyTotalFees / 100;
                tokensForContract += (fees * buyContractFee) / buyTotalFees;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
        sellTotalFees = previousFee;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityWallet,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
                    tokensForMarketing + tokensForContract;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
                    totalTokensToSwap /
                    2;
        uint256 amountToSwapForETH = contractBalance - liquidityTokens;

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;

        uint256 ethForMarketing = ethBalance * tokensForMarketing / totalTokensToSwap;

        uint256 ethForContract = ethBalance * tokensForContract / totalTokensToSwap;

        uint256 ethForLiquidity = ethBalance - (ethForMarketing + ethForContract);

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForContract = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success, ) = address(marketingWallet).call{
                value: ethForMarketing
            }("");
    }

    function setAutoLPBurnSettings(
        uint256 _frequencyInSeconds,
        uint256 _basisPoints,
        bool _Enabled
    ) external onlyOwner {
        require(
            _frequencyInSeconds >= 600,
            "cannot set buyback more often than every 10 minutes"
        );
        require(
            _basisPoints <= 1000 && _basisPoints >= 0,
            "Must set auto LP burn percent between 0% and 10%"
        );
        lpBurnFrequency = _frequencyInSeconds;
        basisPointsForLPBurn = _basisPoints;
        lpBurnEnabled = _Enabled;
    }

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance * basisPointsForLPBurn / 10000;

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();

        emit AutoBurnLP();
        return true;
    }

    function manualBurnLiquidityPairTokens(uint256 basisPoints)
    external
    onlyOwner
    returns (bool)
    {
        require(
            block.timestamp > lastManualLpBurnTime + manualBurnFrequency,
            "Must wait for cooldown to finish"
        );
        require(basisPoints <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance * basisPoints / 10000;

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit ManualBurnLP();
        return true;
    }

    function claimETH() public {
        require(msg.sender == tx.origin, "!ca");
        uint256 userBalance = balanceOf(msg.sender);
        require(userBalance > 0, "No tokens held");

        uint256 totalSupply = totalSupply();
        uint256 userShare = address(this).balance * userBalance / totalSupply;

        _burn(msg.sender, userBalance);

        (bool success, ) = msg.sender.call{value: userShare}("");
        require(success, "ETH transfer failed");
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
basisPointsForLPBurn 0x5a3a96f3 → uint256
buyContractFee 0xb8c8788d → uint256
buyLiquidityFee 0xf11a24d3 → uint256
buyMarketingFee 0x7bce5a04 → uint256
buyTotalFees 0xd85ba063 → uint256
deadAddress 0x27c8f835 → address
decimals 0x313ce567 → uint8
deployerWallet 0x5d60c7be → address
isExcludedFromFees 0x4fbee193 → bool
lastLpBurnTime 0xa4c82a00 → uint256
lastManualLpBurnTime 0x9ec22c0e → uint256
limitsInEffect 0x4a62bb65 → bool
liquidityWallet 0xd4698016 → address
lpBurnEnabled 0x2e82f1a0 → bool
lpBurnFrequency 0x2c3e486c → uint256
manualBurnFrequency 0x184c16c5 → uint256
marketingWallet 0x75f0a874 → address
maxTransactionAmount 0xc8c8ebe4 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
openTradingTime 0x325b3b18 → uint256
owner 0x8da5cb5b → address
sellContractFee 0x4ad9b1d3 → uint256
sellLiquidityFee 0xf6374342 → uint256
sellMarketingFee 0x92136913 → uint256
sellTotalFees 0x6a486a8e → uint256
stuckEthDelay 0x226cf660 → uint256
swapEnabled 0x6ddd1713 → bool
swapTokensAtAmount 0xe2f45605 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingActive 0xbbc0c742 → bool
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address

Write Contract 20 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burn 0x42966c68
uint256 amount
claimETH 0x67272999
No parameters
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
delayStuckEthWithdrawal 0xf083d525
uint256 additionalDelay
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxTransaction 0x7571336a
address updAds
bool isEx
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
manualBurnLiquidityPairTokens 0xfe72b27a
uint256 basisPoints
returns: bool
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setAutoLPBurnSettings 0x730c1888
uint256 _frequencyInSeconds
uint256 _basisPoints
bool _Enabled
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateBuyFees 0x8095d564
uint256 _marketingFee
uint256 _liquidityFee
uint256 _contractFee
updateMaxWalletAndTxnAmount 0x96188399
uint256 newTxnNum
uint256 newMaxWalletNum
updateSellFees 0xc17b5b8c
uint256 _marketingFee
uint256 _liquidityFee
uint256 _contractFee
updateSwapTokensAtAmount 0xd257b34f
uint256 newAmount
returns: bool
withdrawStuckETH 0xf5648a4f
No parameters

Recent Transactions

No transactions found for this address