Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x0Ec72CD6690db40B16be166858299F19D4f8E5B0
Balance 0 ETH
Nonce 1
Code Size 21308 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

21308 bytes
0x6080604052600436106101dc5760003560e01c8063715018a611610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063afa4f3b2116100d1578063afa4f3b214610529578063b406049314610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b8063715018a61461047f5780638da5cb5b1461049657806395d89b41146104c1578063a9059cbb146104ec576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780636fc3eaec1461042b57806370a0823114610442576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a919061465d565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613f71565b610730565b6040516102479190614642565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b60405161027291906148ff565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614069565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613f22565b610867565b6040516102d89190614642565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614069565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e94565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190614040565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e94565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a791906149ab565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e94565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613fee565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e94565b610fc0565b005b34801561043757600080fd5b506104406111fd565b005b34801561044e57600080fd5b5061046960048036038101906104649190613e94565b6112a3565b60405161047691906148ff565b60405180910390f35b34801561048b57600080fd5b506104946112ec565b005b3480156104a257600080fd5b506104ab61143f565b6040516104b89190614513565b60405180910390f35b3480156104cd57600080fd5b506104d6611468565b6040516104e3919061465d565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e9190613f71565b6114a5565b6040516105209190614642565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190614040565b6114c3565b005b34801561055e57600080fd5b5061057960048036038101906105749190613e94565b6115f4565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613fad565b611831565b005b3480156105b057600080fd5b506105b9611981565b005b3480156105c757600080fd5b506105d0611a2f565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613ee6565b611fbb565b60405161060691906148ff565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613fee565b612042565b005b34801561064457600080fd5b5061065f600480360381019061065a9190614040565b6120f4565b005b34801561066d57600080fd5b5061068860048036038101906106839190614040565b612193565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e94565b612232565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190614040565b612322565b005b3480156106e857600080fd5b506106f16123c1565b005b60606040518060400160405280600e81526020017f54656820476f6c64656e204f6e65000000000000000000000000000000000000815250905090565b600061074461073d612517565b848461251f565b6001905092915050565b6000678ac7230489e80000905090565b610766612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061479f565b60405180910390fd5b603c8183856108029190614a77565b61080c9190614a77565b111561084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610844906147bf565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126ea565b61093584610880612517565b610930856040518060600160405280602881526020016152df60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e6612517565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8a9092919063ffffffff16565b61251f565b600190509392505050565b610948612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061479f565b60405180910390fd5b601e8183856109e49190614a77565b6109ee9190614a77565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061477f565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a51612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad59061479f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b41612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061479f565b60405180910390fd5b80601f8190555050565b610be0612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c649061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd4906147ff565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e26612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061479f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f16612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a9061479f565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc8612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c9061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061487f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611205612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061479f565b60405180910390fd5b60004790506112a081612fee565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f4612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113789061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f476f6c6420310000000000000000000000000000000000000000000000000000815250905090565b60006114b96114b2612517565b84846126ea565b6001905092915050565b6114cb612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f9061479f565b60405180910390fd5b64e8d4a510008110156115a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611597906146df565b60405180910390fd5b6611c37937e080008111156115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e1906146ff565b60405180910390fd5b8060208190555050565b6115fc612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f0906148bf565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611839612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd9061479f565b60405180910390fd5b60005b815181101561197d57600160056000848481518110611911577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061197590614c8d565b9150506118c9565b5050565b611989612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061479f565b60405180910390fd5b6000611a21306112a3565b9050611a2c8161305a565b50565b611a37612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061479f565b60405180910390fd5b601a60149054906101000a900460ff1615611b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0b9061485f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ba330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e8000061251f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611be957600080fd5b505afa158015611bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c219190613ebd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8357600080fd5b505afa158015611c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbb9190613ebd565b6040518363ffffffff1660e01b8152600401611cd892919061452e565b602060405180830381600087803b158015611cf257600080fd5b505af1158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a9190613ebd565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611db3306112a3565b600080611dbe61143f565b426040518863ffffffff1660e01b8152600401611de0969594939291906145e1565b6060604051808303818588803b158015611df957600080fd5b505af1158015611e0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e3291906140b8565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066b1a2bc2ec50000601d8190555066b1a2bc2ec50000601e8190555067016345785d8a0000601f819055506611c37937e080006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f65929190614557565b602060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190614017565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61204a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ce9061479f565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120fc612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121809061479f565b60405180910390fd5b80601c8190555050565b61219b612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f9061479f565b60405180910390fd5b80601e8190555050565b61223a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be9061479f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61232a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae9061479f565b60405180910390fd5b80601d8190555050565b6123c9612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244d9061479f565b60405180910390fd5b601a60149054906101000a900460ff16156124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d906148df565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124cc906144fe565b60006040518083038185875af1925050503d8060008114612509576040519150601f19603f3d011682016040523d82523d6000602084013e61250e565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125869061483f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f69061469f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126dd91906148ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561275a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127519061481f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c19061467f565b60405180910390fd5b6000811161280d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612804906147df565b60405180910390fd5b60008061281861143f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612886575061285661143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128bf5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128f9575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156129125750601a60159054906101000a900460ff16155b15612d8857600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129bb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6129c457600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a735750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612ac95750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ae15750601a60189054906101000a900460ff165b15612c1f57601d54831115612b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b229061473f565b60405180910390fd5b601f5483612b38866112a3565b612b429190614a77565b1115612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a9061471f565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612bce57600080fd5b601e42612bdb9190614a77565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612cca5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612d205750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d385750601a60189054906101000a900460ff165b15612d8757601e54831115612d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d799061489f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e295750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e3357600091505b6000612e3e306112a3565b9050600060205482118015612e505750825b9050808015612e6b5750601a60179054906101000a900460ff165b8015612e845750601a60159054906101000a900460ff16155b8015612eda5750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f305750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f74576001601a60156101000a81548160ff021916908315150217905550612f58613354565b6000601a60156101000a81548160ff0219169083151502179055505b612f81878787878761363b565b50505050505050565b6000838311158290612fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc9919061465d565b60405180910390fd5b5060008385612fe19190614b58565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613056573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156130b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156130e65781602001602082028036833780820191505090505b5090503081600081518110613124577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156131c657600080fd5b505afa1580156131da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fe9190613ebd565b81600181518110613238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061329f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461251f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161330395949392919061491a565b600060405180830381600087803b15801561331d57600080fd5b505af1158015613331573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b600061335f306112a3565b905060006014546013546015546133769190614a77565b6133809190614a77565b90506000808314806133925750600082145b1561339f57505050613639565b600a6020546133ae9190614afe565b8311156133c757600a6020546133c49190614afe565b92505b6000600283601554866133da9190614afe565b6133e49190614acd565b6133ee9190614acd565b90506000613405828661367b90919063ffffffff16565b905060004790506134158261305a565b600061342a824761367b90919063ffffffff16565b9050600061345587613447601354856136c590919063ffffffff16565b61374090919063ffffffff16565b9050600061348088613472601454866136c590919063ffffffff16565b61374090919063ffffffff16565b905060008183856134919190614b58565b61349b9190614b58565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134fb906144fe565b60006040518083038185875af1925050503d8060008114613538576040519150601f19603f3d011682016040523d82523d6000602084013e61353d565b606091505b5050809850506000871180156135535750600081115b156135a057613562878261378a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260155460405161359793929190614974565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135e6906144fe565b60006040518083038185875af1925050503d8060008114613623576040519150601f19603f3d011682016040523d82523d6000602084013e613628565b606091505b505080985050505050505050505050505b565b8161364d57613648613899565b61365b565b613658858483613958565b92505b613666858585613aa2565b8161367457613673613c36565b5b5050505050565b60006136bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f8a565b905092915050565b6000808314156136d8576000905061373a565b600082846136e69190614afe565b90508284826136f59190614acd565b14613735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372c9061475f565b60405180910390fd5b809150505b92915050565b600061378283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c6e565b905092915050565b6137b730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461251f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161384096959493929190614580565b6060604051808303818588803b15801561385957600080fd5b505af115801561386d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061389291906140b8565b5050505050565b60006007541480156138ad57506000600954145b80156138bb57506000600b54145b80156138c957506000600d54145b80156138d757506000600f54145b80156138e557506000601154145b156138ef57613956565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546139719190614a77565b106139835760639350605c91506139b9565b61398c86613cd1565b935085156139a857600d549250600f54915060115490506139b8565b60075492506009549150600b5490505b5b60006139e160646139d3878b6136c590919063ffffffff16565b61374090919063ffffffff16565b90508482826139f09190614afe565b6139fa9190614acd565b60136000828254613a0b9190614a77565b92505081905550848482613a1f9190614afe565b613a299190614acd565b60146000828254613a3a9190614a77565b92505081905550848382613a4e9190614afe565b613a589190614acd565b60156000828254613a699190614a77565b925050819055506000811115613a8557613a84893083613aa2565b5b8088613a919190614b58565b975087955050505050509392505050565b613af481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461367b90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b8981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d2290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c2991906148ff565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cac919061465d565b60405180910390fd5b5060008385613cc49190614acd565b9050809150509392505050565b60008115613cfd57601154600f54600d54613cec9190614a77565b613cf69190614a77565b9050613d1d565b600b54600954600754613d109190614a77565b613d1a9190614a77565b90505b919050565b6000808284613d319190614a77565b905083811015613d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6d906146bf565b60405180910390fd5b8091505092915050565b6000613d93613d8e846149eb565b6149c6565b90508083825260208201905082856020860282011115613db257600080fd5b60005b85811015613de25781613dc88882613dec565b845260208401935060208301925050600181019050613db5565b5050509392505050565b600081359050613dfb81615299565b92915050565b600081519050613e1081615299565b92915050565b600082601f830112613e2757600080fd5b8135613e37848260208601613d80565b91505092915050565b600081359050613e4f816152b0565b92915050565b600081519050613e64816152b0565b92915050565b600081359050613e79816152c7565b92915050565b600081519050613e8e816152c7565b92915050565b600060208284031215613ea657600080fd5b6000613eb484828501613dec565b91505092915050565b600060208284031215613ecf57600080fd5b6000613edd84828501613e01565b91505092915050565b60008060408385031215613ef957600080fd5b6000613f0785828601613dec565b9250506020613f1885828601613dec565b9150509250929050565b600080600060608486031215613f3757600080fd5b6000613f4586828701613dec565b9350506020613f5686828701613dec565b9250506040613f6786828701613e6a565b9150509250925092565b60008060408385031215613f8457600080fd5b6000613f9285828601613dec565b9250506020613fa385828601613e6a565b9150509250929050565b600060208284031215613fbf57600080fd5b600082013567ffffffffffffffff811115613fd957600080fd5b613fe584828501613e16565b91505092915050565b60006020828403121561400057600080fd5b600061400e84828501613e40565b91505092915050565b60006020828403121561402957600080fd5b600061403784828501613e55565b91505092915050565b60006020828403121561405257600080fd5b600061406084828501613e6a565b91505092915050565b60008060006060848603121561407e57600080fd5b600061408c86828701613e6a565b935050602061409d86828701613e6a565b92505060406140ae86828701613e6a565b9150509250925092565b6000806000606084860312156140cd57600080fd5b60006140db86828701613e7f565b93505060206140ec86828701613e7f565b92505060406140fd86828701613e7f565b9150509250925092565b6000614113838361412e565b60208301905092915050565b61412881614be1565b82525050565b61413781614b8c565b82525050565b61414681614b8c565b82525050565b600061415782614a27565b6141618185614a4a565b935061416c83614a17565b8060005b8381101561419d5781516141848882614107565b975061418f83614a3d565b925050600181019050614170565b5085935050505092915050565b6141b381614b9e565b82525050565b6141c281614bf3565b82525050565b60006141d382614a32565b6141dd8185614a66565b93506141ed818560208601614c29565b6141f681614d63565b840191505092915050565b600061420e602383614a66565b915061421982614d74565b604082019050919050565b6000614231602283614a66565b915061423c82614dc3565b604082019050919050565b6000614254601b83614a66565b915061425f82614e12565b602082019050919050565b6000614277603583614a66565b915061428282614e3b565b604082019050919050565b600061429a603483614a66565b91506142a582614e8a565b604082019050919050565b60006142bd602483614a66565b91506142c882614ed9565b604082019050919050565b60006142e0602983614a66565b91506142eb82614f28565b604082019050919050565b6000614303602183614a66565b915061430e82614f77565b604082019050919050565b6000614326601d83614a66565b915061433182614fc6565b602082019050919050565b6000614349602083614a66565b915061435482614fef565b602082019050919050565b600061436c601e83614a66565b915061437782615018565b602082019050919050565b600061438f602983614a66565b915061439a82615041565b604082019050919050565b60006143b2602383614a66565b91506143bd82615090565b604082019050919050565b60006143d5602583614a66565b91506143e0826150df565b604082019050919050565b60006143f8600083614a5b565b91506144038261512e565b600082019050919050565b600061441b602483614a66565b915061442682615131565b604082019050919050565b600061443e601783614a66565b915061444982615180565b602082019050919050565b6000614461602083614a66565b915061446c826151a9565b602082019050919050565b6000614484602a83614a66565b915061448f826151d2565b604082019050919050565b60006144a7601e83614a66565b91506144b282615221565b602082019050919050565b60006144ca602b83614a66565b91506144d58261524a565b604082019050919050565b6144e981614bca565b82525050565b6144f881614bd4565b82525050565b6000614509826143eb565b9150819050919050565b6000602082019050614528600083018461413d565b92915050565b6000604082019050614543600083018561413d565b614550602083018461413d565b9392505050565b600060408201905061456c600083018561413d565b61457960208301846144e0565b9392505050565b600060c082019050614595600083018961413d565b6145a260208301886144e0565b6145af60408301876141b9565b6145bc60608301866141b9565b6145c9608083018561411f565b6145d660a08301846144e0565b979650505050505050565b600060c0820190506145f6600083018961413d565b61460360208301886144e0565b61461060408301876141b9565b61461d60608301866141b9565b61462a608083018561413d565b61463760a08301846144e0565b979650505050505050565b600060208201905061465760008301846141aa565b92915050565b6000602082019050818103600083015261467781846141c8565b905092915050565b6000602082019050818103600083015261469881614201565b9050919050565b600060208201905081810360008301526146b881614224565b9050919050565b600060208201905081810360008301526146d881614247565b9050919050565b600060208201905081810360008301526146f88161426a565b9050919050565b600060208201905081810360008301526147188161428d565b9050919050565b60006020820190508181036000830152614738816142b0565b9050919050565b60006020820190508181036000830152614758816142d3565b9050919050565b60006020820190508181036000830152614778816142f6565b9050919050565b6000602082019050818103600083015261479881614319565b9050919050565b600060208201905081810360008301526147b88161433c565b9050919050565b600060208201905081810360008301526147d88161435f565b9050919050565b600060208201905081810360008301526147f881614382565b9050919050565b60006020820190508181036000830152614818816143a5565b9050919050565b60006020820190508181036000830152614838816143c8565b9050919050565b600060208201905081810360008301526148588161440e565b9050919050565b6000602082019050818103600083015261487881614431565b9050919050565b6000602082019050818103600083015261489881614454565b9050919050565b600060208201905081810360008301526148b881614477565b9050919050565b600060208201905081810360008301526148d88161449a565b9050919050565b600060208201905081810360008301526148f8816144bd565b9050919050565b600060208201905061491460008301846144e0565b92915050565b600060a08201905061492f60008301886144e0565b61493c60208301876141b9565b818103604083015261494e818661414c565b905061495d606083018561413d565b61496a60808301846144e0565b9695505050505050565b600060608201905061498960008301866144e0565b61499660208301856144e0565b6149a360408301846144e0565b949350505050565b60006020820190506149c060008301846144ef565b92915050565b60006149d06149e1565b90506149dc8282614c5c565b919050565b6000604051905090565b600067ffffffffffffffff821115614a0657614a05614d34565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a8282614bca565b9150614a8d83614bca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ac257614ac1614cd6565b5b828201905092915050565b6000614ad882614bca565b9150614ae383614bca565b925082614af357614af2614d05565b5b828204905092915050565b6000614b0982614bca565b9150614b1483614bca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b4d57614b4c614cd6565b5b828202905092915050565b6000614b6382614bca565b9150614b6e83614bca565b925082821015614b8157614b80614cd6565b5b828203905092915050565b6000614b9782614baa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614bec82614c05565b9050919050565b6000614bfe82614bca565b9050919050565b6000614c1082614c17565b9050919050565b6000614c2282614baa565b9050919050565b60005b83811015614c47578082015181840152602081019050614c2c565b83811115614c56576000848401525b50505050565b614c6582614d63565b810181811067ffffffffffffffff82111715614c8457614c83614d34565b5b80604052505050565b6000614c9882614bca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ccb57614cca614cd6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f466f757257616c6c657420616464726573732063616e6e6f7420626520300000600082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152a281614b8c565b81146152ad57600080fd5b50565b6152b981614b9e565b81146152c457600080fd5b50565b6152d081614bca565b81146152db57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdeb50fd5962544e08b94540c151b48586c7f233455e4793564664889ce3461d64736f6c63430008040033

Verified Source Code Partial Match

Compiler: v0.8.4+commit.c7e474f2 EVM: istanbul Optimization: No
TehGoldenOne.sol 552 lines
/*
“Following the footprints you end up places you never thought you would go. You discover the magic and beauty that was hidden in plain sight.”
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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 TehGoldenOne is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e10 * 10**9;
    
    uint256 private _buyFourFee = 2;
    uint256 private _previousBuyFourFee = _buyFourFee;
    uint256 private _buyLiquidityFee = 1;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyRewardFee = 1;
    uint256 private _previousBuyRewardFee = _buyRewardFee;
    
    uint256 private _sellFourFee = 2;
    uint256 private _previousSellFourFee = _sellFourFee;
    uint256 private _sellLiquidityFee = 1;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellRewardFee = 1;
    uint256 private _previousSellRewardFee = _sellRewardFee;

    uint256 private tokensForReward;
    uint256 private tokensForFour;
    uint256 private tokensForLiquidity;

    address payable private _rewardWallet;
    address payable private _FourWallet;
    address payable private _liquidityWallet;
    
    string private constant _name = "Teh Golden One";
    string private constant _symbol = "Gold 1";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private tradingActiveBlock = 0; // 0 means trading is not active
    uint256 private blocksToBlacklist = 10;
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private swapTokensAtAmount = 0;
    
    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event MaxSellAmountUpdated(uint _maxSellAmount);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _FourWallet = payable(0xa3998ffeA36240f51496C3dAbF159F428d37d953);
        _liquidityWallet = payable(address(0xdead));
        _rewardWallet = payable(0xa3998ffeA36240f51496C3dAbF159F428d37d953);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_FourWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        _isExcludedFromFee[_rewardWallet] = true;
        emit Transfer(address(0x3188e04C9743691576175eE935Bbf07cB4dd829d), _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 _rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

    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");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from] && cooldownEnabled) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

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

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        _tokenTransfer(from,to,amount,takeFee, shouldSwap);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForReward + tokensForFour;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForReward = ethBalance.mul(tokensForReward).div(totalTokensToSwap);
        uint256 ethForFour = ethBalance.mul(tokensForFour).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForReward - ethForFour;
        
        
        tokensForLiquidity = 0;
        tokensForReward = 0;
        tokensForFour = 0;
        
        (success,) = address(_rewardWallet).call{value: ethForReward}("");
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_FourWallet).call{value: address(this).balance}("");
    }

    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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _liquidityWallet,
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FourWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e7 * 10**9;
        _maxSellAmount = 5e7 * 10**9;
        _maxWalletAmount = 1e8 * 10**9;
        swapTokensAtAmount = 5e6 * 10**9;
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e3 * 10**9, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= 5e6 * 10**9, "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setFourWallet(address FourWallet) public onlyOwner() {
        require(FourWallet != address(0), "FourWallet address cannot be 0");
        _isExcludedFromFee[_FourWallet] = false;
        _FourWallet = payable(FourWallet);
        _isExcludedFromFee[_FourWallet] = true;
    }

    function setRewardWallet(address rewardWallet) public onlyOwner() {
        require(rewardWallet != address(0), "rewardWallet address cannot be 0");
        _isExcludedFromFee[_rewardWallet] = false;
        _rewardWallet = payable(rewardWallet);
        _isExcludedFromFee[_rewardWallet] = true;
    }

    function setLiquidityWallet(address liquidityWallet) public onlyOwner() {
        require(liquidityWallet != address(0), "liquidityWallet address cannot be 0");
        _isExcludedFromFee[_liquidityWallet] = false;
        _liquidityWallet = payable(liquidityWallet);
        _isExcludedFromFee[_liquidityWallet] = true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setBuyFee(uint256 buyFourFee, uint256 buyLiquidityFee, uint256 buyRewardFee) external onlyOwner {
        require(buyFourFee + buyLiquidityFee + buyRewardFee <= 30, "Must keep buy taxes below 30%");
        _buyFourFee = buyFourFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyRewardFee = buyRewardFee;
    }

    function setSellFee(uint256 sellFourFee, uint256 sellLiquidityFee, uint256 sellRewardFee) external onlyOwner {
        require(sellFourFee + sellLiquidityFee + sellRewardFee <= 60, "Must keep sell taxes below 60%");
        _sellFourFee = sellFourFee;
        _sellLiquidityFee = sellLiquidityFee;
        _sellRewardFee = sellRewardFee;
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyFourFee == 0 && _buyLiquidityFee == 0 && _buyRewardFee == 0 && _sellFourFee == 0 && _sellLiquidityFee == 0 && _sellRewardFee == 0) return;
        
        _previousBuyFourFee = _buyFourFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyRewardFee = _buyRewardFee;
        _previousSellFourFee = _sellFourFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellRewardFee = _sellRewardFee;
        
        _buyFourFee = 0;
        _buyLiquidityFee = 0;
        _buyRewardFee = 0;
        _sellFourFee = 0;
        _sellLiquidityFee = 0;
        _sellRewardFee = 0;
    }
    
    function restoreAllFee() private {
        _buyFourFee = _previousBuyFourFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyRewardFee = _previousBuyRewardFee;
        _sellFourFee = _previousSellFourFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
        _sellRewardFee = _previousSellRewardFee;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 FourFee;
        uint256 liqFee;
        uint256 rwrdFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            liqFee = 92;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                FourFee = _sellFourFee;
                liqFee = _sellLiquidityFee;
                rwrdFee = _sellRewardFee;
            } else {
                FourFee = _buyFourFee;
                liqFee = _buyLiquidityFee;
                rwrdFee = _buyRewardFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForReward += fees * rwrdFee / _totalFees;
        tokensForFour += fees * FourFee / _totalFees;
        tokensForLiquidity += fees * liqFee / _totalFees;
            
        if(fees > 0) {
            _transferStandard(sender, address(this), fees);
        }
            
        return amount -= fees;
    }

    receive() external payable {}
    
    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() public onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        require(!tradingOpen, "Can only withdraw if trading hasn't started");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellFourFee + _sellLiquidityFee + _sellRewardFee;
        }
        return _buyFourFee + _buyLiquidityFee + _buyRewardFee;
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 24 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBot 0x273123b7
address notbot
excludeFromFee 0x437823ec
address account
includeInFee 0xea2f0b37
address account
manualsend 0x6fc3eaec
No parameters
manualswap 0xc3c8cd80
No parameters
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setBlocksToBlacklist 0xe6f7ef4d
uint256 blocks
setBots 0xb515566a
address[] bots_
setBuyFee 0x25519cf2
uint256 buyFourFee
uint256 buyLiquidityFee
uint256 buyRewardFee
setCooldownEnabled 0x5932ead1
bool onoff
setFourWallet 0xb4060493
address FourWallet
setLiquidityWallet 0x296f0a0c
address liquidityWallet
setMaxBuyAmount 0xf34eb0b8
uint256 maxBuy
setMaxSellAmount 0xe99c9d09
uint256 maxSell
setMaxWalletAmount 0x27a14fc2
uint256 maxToken
setRewardWallet 0x5958621e
address rewardWallet
setSellFee 0x1d865c30
uint256 sellFourFee
uint256 sellLiquidityFee
uint256 sellRewardFee
setSwapEnabled 0xe01af92c
bool onoff
setSwapTokensAtAmount 0xafa4f3b2
uint256 newAmount
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
withdrawStuckETH 0xf5648a4f
No parameters

Recent Transactions

No transactions found for this address