Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x8461eEDDab2961b70aa837E8d97Ad3f8Ce7376bc
Balance 0 ETH
Nonce 1
Code Size 15787 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

15787 bytes
0x60806040526004361061014e575f3560e01c8063751039fc116100b557806395d89b411161006e57806395d89b411461043f578063a9059cbb14610469578063bf474bed146104a5578063c9567bf9146104cf578063d34628cc146104e5578063dd62ed3e1461050d57610155565b8063751039fc1461035b57806376b2fa71146103715780637d1db4a5146103995780638366e79a146103c35780638da5cb5b146103eb5780638f9a55c01461041557610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806351bc3c85146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a9190612a3f565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612afd565b610586565b6040516101b69190612b55565b60405180910390f35b3480156101ca575f80fd5b506101d36105a3565b6040516101e09190612b7d565b60405180910390f35b3480156101f4575f80fd5b506101fd6105a9565b005b34801561020a575f80fd5b5061021361067d565b6040516102209190612b7d565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a9190612b96565b6106a1565b60405161025c9190612b55565b60405180910390f35b348015610270575f80fd5b50610279610775565b6040516102869190612c01565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b09190612d5a565b61077d565b005b3480156102c2575f80fd5b506102dd60048036038101906102d89190612da1565b61089b565b6040516102ea9190612b55565b60405180910390f35b3480156102fe575f80fd5b506103076108ed565b005b348015610314575f80fd5b5061032f600480360381019061032a9190612da1565b610984565b60405161033c9190612b7d565b60405180910390f35b348015610350575f80fd5b506103596109ca565b005b348015610366575f80fd5b5061036f610b18565b005b34801561037c575f80fd5b5061039760048036038101906103929190612dcc565b610c4a565b005b3480156103a4575f80fd5b506103ad610cd6565b6040516103ba9190612b7d565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e49190612df7565b610cdc565b005b3480156103f6575f80fd5b506103ff610ef2565b60405161040c9190612e44565b60405180910390f35b348015610420575f80fd5b50610429610f19565b6040516104369190612b7d565b60405180910390f35b34801561044a575f80fd5b50610453610f1f565b6040516104609190612a3f565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612afd565b610f5c565b60405161049c9190612b55565b60405180910390f35b3480156104b0575f80fd5b506104b9610f79565b6040516104c69190612b7d565b60405180910390f35b3480156104da575f80fd5b506104e3610f7f565b005b3480156104f0575f80fd5b5061050b60048036038101906105069190612d5a565b61149f565b005b348015610518575f80fd5b50610533600480360381019061052e9190612df7565b6115be565b6040516105409190612b7d565b60405180910390f35b60606040518060400160405280600781526020017f6d616d616d696100000000000000000000000000000000000000000000000000815250905090565b5f610599610592611640565b8484611647565b6001905092915050565b60125481565b6105b1611640565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063490612ea7565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106739190612f07565b60405180910390a1565b5f6009600a61068c919061307c565b64e8ceaf2f0061069c91906130c6565b905090565b5f6106ad84848461180a565b61076a846106b9611640565b61076585604051806060016040528060288152602001613d4e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071c611640565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121919092919063ffffffff16565b611647565b600190509392505050565b5f6009905090565b610785611640565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612ea7565b60405180910390fd5b5f5b8151811015610897575f60045f84848151811061083357610832613107565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610813565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092d611640565b73ffffffffffffffffffffffffffffffffffffffff161461094c575f80fd5b5f61095630610984565b90505f81111561096a57610969816121f3565b5b5f4790505f8111156109805761097f8161245e565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109d2611640565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590612ea7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b20611640565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390612ea7565b60405180910390fd5b6009600a610bba919061307c565b64e8ceaf2f00610bca91906130c6565b600f819055506009600a610bde919061307c565b64e8ceaf2f00610bee91906130c6565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c23919061307c565b64e8ceaf2f00610c3391906130c6565b604051610c409190612b7d565b60405180910390a1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c8a611640565b73ffffffffffffffffffffffffffffffffffffffff1614610ca9575f80fd5b6008548111158015610cbd57506009548111155b610cc5575f80fd5b806008819055508060098190555050565b600f5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611640565b73ffffffffffffffffffffffffffffffffffffffff1614610d3b575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da09061317e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610def575060148054906101000a900460ff16155b610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e259061320c565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e689190612e44565b602060405180830381865afa158015610e83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea7919061323e565b9050610eb48383836124c6565b7fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388382604051610ee5929190613269565b60405180910390a1505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f6d616d616d696100000000000000000000000000000000000000000000000000815250905090565b5f610f6f610f68611640565b848461180a565b6001905092915050565b60115481565b610f87611640565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90612ea7565b60405180910390fd5b60148054906101000a900460ff1615611061576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611058906132da565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110fe3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110e9919061307c565b64e8ceaf2f006110f991906130c6565b611647565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611168573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c919061330c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611212573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611236919061330c565b6040518363ffffffff1660e01b8152600401611253929190613337565b6020604051808303815f875af115801561126f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611293919061330c565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061131a30610984565b5f80611324610ef2565b426040518863ffffffff1660e01b81526004016113469695949392919061335e565b60606040518083038185885af1158015611362573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061138791906133bd565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611427929190613269565b6020604051808303815f875af1158015611443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114679190613437565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6114a7611640565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a90612ea7565b60405180910390fd5b5f5b81518110156115ba57600160045f84848151811061155657611555613107565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611535565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac906134d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90613560565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117fd9190612b7d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f906135ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd9061367c565b60405180910390fd5b5f8111611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f9061370a565b60405180910390fd5b5f611931610ef2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561199f575061196f610ef2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ee15760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a42575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a4a575f80fd5b5f600e5403611a9257611a8f6064611a81600a54600e5411611a6e57600654611a72565b6008545b8561254c90919063ffffffff16565b6125c390919063ffffffff16565b90505b5f600e541115611ac757611ac46064611ab6600d548561254c90919063ffffffff16565b6125c390919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b70575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cbb57600f54821115611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0490613772565b60405180910390fd5b60105482611c1a85610984565b611c249190613790565b1115611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c9061380d565b60405180910390fd5b611ca16064611c93600a54600e5411611c8057600654611c84565b6008545b8561254c90919063ffffffff16565b6125c390919063ffffffff16565b9050600e5f815480929190611cb59061382b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d4357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d8757611d846064611d76600b54600e5411611d6357600754611d67565b6009545b8561254c90919063ffffffff16565b6125c390919063ffffffff16565b90505b5f611d9130610984565b9050601460159054906101000a900460ff16158015611dfc575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e145750601460169054906101000a900460ff165b8015611e21575060115481115b8015611e305750600c54600e54115b15611edf57601654431115611e47575f6015819055505b600360155410611e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e83906138bc565b60405180910390fd5b611ea9611ea484611e9f8460125461260c565b61260c565b6121f3565b5f4790505f811115611ebf57611ebe4761245e565b5b60155f815480929190611ed19061382b565b919050555043601681905550505b505b5f811115611fe057611f398160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461262490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fd79190612b7d565b60405180910390a35b6120308260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461268190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120d3612087828461268190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461262490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612176848661268190919063ffffffff16565b6040516121839190612b7d565b60405180910390a350505050565b5f8383111582906121d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cf9190612a3f565b60405180910390fd5b505f83856121e691906138da565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561222a57612229612c1e565b5b6040519080825280602002602001820160405280156122585781602001602082028036833780820191505090505b50905030815f8151811061226f5761226e613107565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612313573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612337919061330c565b8160018151811061234b5761234a613107565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123b13060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611647565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124139594939291906139c4565b5f604051808303815f87803b15801561242a575f80fd5b505af115801561243c573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124c2573d5f803e3d5ffd5b5050565b6125478363a9059cbb60e01b84846040516024016124e5929190613269565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506126ca565b505050565b5f80830361255c575f90506125bd565b5f828461256991906130c6565b90508284826125789190613a49565b146125b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125af90613ae9565b60405180910390fd5b809150505b92915050565b5f61260483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061278f565b905092915050565b5f81831161261a578261261c565b815b905092915050565b5f8082846126329190613790565b905083811015612677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266e90613b51565b60405180910390fd5b8091505092915050565b5f6126c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612191565b905092915050565b5f61272b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166127f09092919063ffffffff16565b90505f8151111561278a578080602001905181019061274a9190613437565b612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090613bdf565b60405180910390fd5b5b505050565b5f80831182906127d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cc9190612a3f565b60405180910390fd5b505f83856127e39190613a49565b9050809150509392505050565b60606127fe84845f85612807565b90509392505050565b60608247101561284c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284390613c6d565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516128749190613ccf565b5f6040518083038185875af1925050503d805f81146128ae576040519150601f19603f3d011682016040523d82523d5f602084013e6128b3565b606091505b50915091506128c4878383876128d0565b92505050949350505050565b60608315612931575f835103612929576128e985612944565b612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f90613d2f565b60405180910390fd5b5b82905061293c565b61293b8383612966565b5b949350505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f825111156129785781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ac9190612a3f565b60405180910390fd5b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129ec5780820151818401526020810190506129d1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a11826129b5565b612a1b81856129bf565b9350612a2b8185602086016129cf565b612a34816129f7565b840191505092915050565b5f6020820190508181035f830152612a578184612a07565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a9982612a70565b9050919050565b612aa981612a8f565b8114612ab3575f80fd5b50565b5f81359050612ac481612aa0565b92915050565b5f819050919050565b612adc81612aca565b8114612ae6575f80fd5b50565b5f81359050612af781612ad3565b92915050565b5f8060408385031215612b1357612b12612a68565b5b5f612b2085828601612ab6565b9250506020612b3185828601612ae9565b9150509250929050565b5f8115159050919050565b612b4f81612b3b565b82525050565b5f602082019050612b685f830184612b46565b92915050565b612b7781612aca565b82525050565b5f602082019050612b905f830184612b6e565b92915050565b5f805f60608486031215612bad57612bac612a68565b5b5f612bba86828701612ab6565b9350506020612bcb86828701612ab6565b9250506040612bdc86828701612ae9565b9150509250925092565b5f60ff82169050919050565b612bfb81612be6565b82525050565b5f602082019050612c145f830184612bf2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c54826129f7565b810181811067ffffffffffffffff82111715612c7357612c72612c1e565b5b80604052505050565b5f612c85612a5f565b9050612c918282612c4b565b919050565b5f67ffffffffffffffff821115612cb057612caf612c1e565b5b602082029050602081019050919050565b5f80fd5b5f612cd7612cd284612c96565b612c7c565b90508083825260208201905060208402830185811115612cfa57612cf9612cc1565b5b835b81811015612d235780612d0f8882612ab6565b845260208401935050602081019050612cfc565b5050509392505050565b5f82601f830112612d4157612d40612c1a565b5b8135612d51848260208601612cc5565b91505092915050565b5f60208284031215612d6f57612d6e612a68565b5b5f82013567ffffffffffffffff811115612d8c57612d8b612a6c565b5b612d9884828501612d2d565b91505092915050565b5f60208284031215612db657612db5612a68565b5b5f612dc384828501612ab6565b91505092915050565b5f60208284031215612de157612de0612a68565b5b5f612dee84828501612ae9565b91505092915050565b5f8060408385031215612e0d57612e0c612a68565b5b5f612e1a85828601612ab6565b9250506020612e2b85828601612ab6565b9150509250929050565b612e3e81612a8f565b82525050565b5f602082019050612e575f830184612e35565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e916020836129bf565b9150612e9c82612e5d565b602082019050919050565b5f6020820190508181035f830152612ebe81612e85565b9050919050565b5f819050919050565b5f819050919050565b5f612ef1612eec612ee784612ec5565b612ece565b612aca565b9050919050565b612f0181612ed7565b82525050565b5f602082019050612f1a5f830184612ef8565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612fa257808604811115612f7e57612f7d612f20565b5b6001851615612f8d5780820291505b8081029050612f9b85612f4d565b9450612f62565b94509492505050565b5f82612fba5760019050613075565b81612fc7575f9050613075565b8160018114612fdd5760028114612fe757613016565b6001915050613075565b60ff841115612ff957612ff8612f20565b5b8360020a9150848211156130105761300f612f20565b5b50613075565b5060208310610133831016604e8410600b841016171561304b5782820a90508381111561304657613045612f20565b5b613075565b6130588484846001612f59565b9250905081840481111561306f5761306e612f20565b5b81810290505b9392505050565b5f61308682612aca565b915061309183612be6565b92506130be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612fab565b905092915050565b5f6130d082612aca565b91506130db83612aca565b92508282026130e981612aca565b91508282048414831517613100576130ff612f20565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f613168601a836129bf565b915061317382613134565b602082019050919050565b5f6020820190508181035f8301526131958161315c565b9050919050565b7f43616e2774207769746864726177206e617469766520746f6b656e73207768695f8201527f6c652074726164696e6720697320616374697665000000000000000000000000602082015250565b5f6131f66034836129bf565b91506132018261319c565b604082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b5f8151905061323881612ad3565b92915050565b5f6020828403121561325357613252612a68565b5b5f6132608482850161322a565b91505092915050565b5f60408201905061327c5f830185612e35565b6132896020830184612b6e565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6132c46017836129bf565b91506132cf82613290565b602082019050919050565b5f6020820190508181035f8301526132f1816132b8565b9050919050565b5f8151905061330681612aa0565b92915050565b5f6020828403121561332157613320612a68565b5b5f61332e848285016132f8565b91505092915050565b5f60408201905061334a5f830185612e35565b6133576020830184612e35565b9392505050565b5f60c0820190506133715f830189612e35565b61337e6020830188612b6e565b61338b6040830187612ef8565b6133986060830186612ef8565b6133a56080830185612e35565b6133b260a0830184612b6e565b979650505050505050565b5f805f606084860312156133d4576133d3612a68565b5b5f6133e18682870161322a565b93505060206133f28682870161322a565b92505060406134038682870161322a565b9150509250925092565b61341681612b3b565b8114613420575f80fd5b50565b5f815190506134318161340d565b92915050565b5f6020828403121561344c5761344b612a68565b5b5f61345984828501613423565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134bc6024836129bf565b91506134c782613462565b604082019050919050565b5f6020820190508181035f8301526134e9816134b0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61354a6022836129bf565b9150613555826134f0565b604082019050919050565b5f6020820190508181035f8301526135778161353e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135d86025836129bf565b91506135e38261357e565b604082019050919050565b5f6020820190508181035f830152613605816135cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136666023836129bf565b91506136718261360c565b604082019050919050565b5f6020820190508181035f8301526136938161365a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136f46029836129bf565b91506136ff8261369a565b604082019050919050565b5f6020820190508181035f830152613721816136e8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61375c6019836129bf565b915061376782613728565b602082019050919050565b5f6020820190508181035f83015261378981613750565b9050919050565b5f61379a82612aca565b91506137a583612aca565b92508282019050808211156137bd576137bc612f20565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6137f7601a836129bf565b9150613802826137c3565b602082019050919050565b5f6020820190508181035f830152613824816137eb565b9050919050565b5f61383582612aca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361386757613866612f20565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6138a66017836129bf565b91506138b182613872565b602082019050919050565b5f6020820190508181035f8301526138d38161389a565b9050919050565b5f6138e482612aca565b91506138ef83612aca565b925082820390508181111561390757613906612f20565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61393f81612a8f565b82525050565b5f6139508383613936565b60208301905092915050565b5f602082019050919050565b5f6139728261390d565b61397c8185613917565b935061398783613927565b805f5b838110156139b757815161399e8882613945565b97506139a98361395c565b92505060018101905061398a565b5085935050505092915050565b5f60a0820190506139d75f830188612b6e565b6139e46020830187612ef8565b81810360408301526139f68186613968565b9050613a056060830185612e35565b613a126080830184612b6e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a5382612aca565b9150613a5e83612aca565b925082613a6e57613a6d613a1c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad36021836129bf565b9150613ade82613a79565b604082019050919050565b5f6020820190508181035f830152613b0081613ac7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b3b601b836129bf565b9150613b4682613b07565b602082019050919050565b5f6020820190508181035f830152613b6881613b2f565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f613bc9602a836129bf565b9150613bd482613b6f565b604082019050919050565b5f6020820190508181035f830152613bf681613bbd565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f613c576026836129bf565b9150613c6282613bfd565b604082019050919050565b5f6020820190508181035f830152613c8481613c4b565b9050919050565b5f81519050919050565b5f81905092915050565b5f613ca982613c8b565b613cb38185613c95565b9350613cc38185602086016129cf565b80840191505092915050565b5f613cda8284613c9f565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f613d19601d836129bf565b9150613d2482613ce5565b602082019050919050565b5f6020820190508181035f830152613d4681613d0d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010817876bd5843bd9f846f22ec92e6e138533dfb38a685015f5299f0cc8e9fa264736f6c63430008170033

Verified Source Code Full Match

Compiler: v0.8.23+commit.f704f362 EVM: shanghai Optimization: No
ath.sol 543 lines

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

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

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

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

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

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

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

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

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

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

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

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

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

}




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

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

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

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

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

}

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

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

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

     event TransferForeignToken(address token, uint256 amount);

    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=10;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 999900000000 * 10**_decimals;
    string private constant _name = unicode"mamamia";
    string private constant _symbol = unicode"mamamia";
    uint256 public _maxTxAmount = 999900000000 * 10**_decimals;
    uint256 public _maxWalletSize = 999900000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 999900000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 999900000000 * 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 () {
        _taxWallet = payable(0xee9a78d0DaE4b87ED4cF7Bb48b0D777763422cF6);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

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

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

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

    function openTrading() 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());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function ReduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

        function transferForeignToken(address _token, address _to) external {
        require(_msgSender()==_taxWallet);
        require(_token != address(0), "_token address cannot be 0");
        require(_token != address(this) || !tradingOpen, "Can't withdraw native tokens while trading is active");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        SafeERC20.safeTransfer(IERC20(_token),_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    receive() external payable {}

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

Read Contract

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

Write Contract 12 functions

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

ReduceFee 0x76b2fa71
uint256 _newFee
addBots 0xd34628cc
address[] bots_
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBots 0x31c2d847
address[] notbot
manualSwap 0x51bc3c85
No parameters
openTrading 0xc9567bf9
No parameters
removeLimits 0x751039fc
No parameters
removeTransferTax 0x109daa99
No parameters
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferForeignToken 0x8366e79a
address _token
address _to
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address