Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x9532CA064278CE3BA4fcc66CEBec6d9F04F58f70
Balance 0 ETH
Nonce 1
Code Size 16458 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

16458 bytes
0x6080604052600436106101f0575f3560e01c80637d1db4a51161010c578063a9059cbb1161009f578063c3c8cd801161006e578063c3c8cd80146106d7578063c492f046146106ed578063dd62ed3e14610715578063ea1644d514610751578063f2fde38b14610779576101f7565b8063a9059cbb146105fb578063b5a6522314610637578063bdd795ef1461065f578063bfd792841461069b576101f7565b80638f9a55c0116100db5780638f9a55c01461055757806395d89b411461058157806398a5c315146105ab578063a2a957bb146105d3576101f7565b80637d1db4a51461049f5780637f2feddc146104c95780638da5cb5b146105055780638f70ccf71461052f576101f7565b806349bd5a5e116101845780636fc3eaec116101535780636fc3eaec1461040f57806370a0823114610425578063715018a61461046157806374010ece14610477576101f7565b806349bd5a5e1461036d57806367aadb7e146103975780636b999053146103bf5780636d8aa8f8146103e7576101f7565b806318160ddd116101c057806318160ddd146102b357806323b872dd146102dd5780632fd689e314610319578063313ce56714610343576101f7565b8062b8cf2a146101fb57806306fdde0314610223578063095ea7b31461024d5780631694505e14610289576101f7565b366101f757005b5f80fd5b348015610206575f80fd5b50610221600480360381019061021c9190613053565b6107a1565b005b34801561022e575f80fd5b506102376108c6565b6040516102449190613114565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190613167565b610903565b60405161028091906131bf565b60405180910390f35b348015610294575f80fd5b5061029d610920565b6040516102aa9190613233565b60405180910390f35b3480156102be575f80fd5b506102c7610945565b6040516102d4919061325b565b60405180910390f35b3480156102e8575f80fd5b5061030360048036038101906102fe9190613274565b610954565b60405161031091906131bf565b60405180910390f35b348015610324575f80fd5b5061032d610a28565b60405161033a919061325b565b60405180910390f35b34801561034e575f80fd5b50610357610a2e565b60405161036491906132df565b60405180910390f35b348015610378575f80fd5b50610381610a36565b60405161038e9190613307565b60405180910390f35b3480156103a2575f80fd5b506103bd60048036038101906103b89190613379565b610a5b565b005b3480156103ca575f80fd5b506103e560048036038101906103e091906133c4565b610b87565b005b3480156103f2575f80fd5b5061040d60048036038101906104089190613419565b610c72565b005b34801561041a575f80fd5b50610423610d22565b005b348015610430575f80fd5b5061044b600480360381019061044691906133c4565b610def565b604051610458919061325b565b60405180910390f35b34801561046c575f80fd5b50610475610e3d565b005b348015610482575f80fd5b5061049d60048036038101906104989190613444565b610f8b565b005b3480156104aa575f80fd5b506104b3611029565b6040516104c0919061325b565b60405180910390f35b3480156104d4575f80fd5b506104ef60048036038101906104ea91906133c4565b61102f565b6040516104fc919061325b565b60405180910390f35b348015610510575f80fd5b50610519611044565b6040516105269190613307565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190613419565b61106b565b005b348015610562575f80fd5b5061056b61111c565b604051610578919061325b565b60405180910390f35b34801561058c575f80fd5b50610595611122565b6040516105a29190613114565b60405180910390f35b3480156105b6575f80fd5b506105d160048036038101906105cc9190613444565b61115f565b005b3480156105de575f80fd5b506105f960048036038101906105f4919061346f565b6111fd565b005b348015610606575f80fd5b50610621600480360381019061061c9190613167565b6112b3565b60405161062e91906131bf565b60405180910390f35b348015610642575f80fd5b5061065d60048036038101906106589190613379565b6112d0565b005b34801561066a575f80fd5b50610685600480360381019061068091906133c4565b611405565b60405161069291906131bf565b60405180910390f35b3480156106a6575f80fd5b506106c160048036038101906106bc91906133c4565b611422565b6040516106ce91906131bf565b60405180910390f35b3480156106e2575f80fd5b506106eb61143f565b005b3480156106f8575f80fd5b50610713600480360381019061070e91906134d3565b611514565b005b348015610720575f80fd5b5061073b60048036038101906107369190613530565b611649565b604051610748919061325b565b60405180910390f35b34801561075c575f80fd5b5061077760048036038101906107729190613444565b6116cb565b005b348015610784575f80fd5b5061079f600480360381019061079a91906133c4565b611769565b005b6107a9611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906135b8565b60405180910390fd5b5f5b81518110156108c257600160105f848481518110610858576108576135d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806108ba90613630565b915050610837565b5050565b60606040518060400160405280600c81526020017f426f7420436f6d70696c65720000000000000000000000000000000000000000815250905090565b5f61091661090f611926565b848461192d565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610960848484611af0565b610a1d8461096c611926565b610a1885604051806060016040528060288152602001613fed6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109cf611926565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461240a9092919063ffffffff16565b61192d565b600190509392505050565b60195481565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a63611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae6906135b8565b60405180910390fd5b5f5b82829050811015610b825760125f848484818110610b1257610b116135d6565b5b9050602002016020810190610b2791906133c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690558080610b7a90613630565b915050610af1565b505050565b610b8f611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c12906135b8565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610c7a611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd906135b8565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d62611926565b73ffffffffffffffffffffffffffffffffffffffff161480610dd7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dbf611926565b73ffffffffffffffffffffffffffffffffffffffff16145b610ddf575f80fd5b5f479050610dec8161246c565b50565b5f610e3660025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d4565b9050919050565b610e45611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec8906135b8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f93611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611016906135b8565b60405180910390fd5b8060178190555050565b60175481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611073611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f6906135b8565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f424f544300000000000000000000000000000000000000000000000000000000815250905090565b611167611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906135b8565b60405180910390fd5b8060198190555050565b611205611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611288906135b8565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6112c66112bf611926565b8484611af0565b6001905092915050565b6112d8611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b906135b8565b60405180910390fd5b5f5b8282905081101561140057600160125f858585818110611389576113886135d6565b5b905060200201602081019061139e91906133c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806113f890613630565b915050611366565b505050565b6012602052805f5260405f205f915054906101000a900460ff1681565b6010602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661147f611926565b73ffffffffffffffffffffffffffffffffffffffff1614806114f4575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114dc611926565b73ffffffffffffffffffffffffffffffffffffffff16145b6114fc575f80fd5b5f61150630610def565b905061151181612540565b50565b61151c611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f906135b8565b60405180910390fd5b5f5b83839050811015611643578160055f8686858181106115cc576115cb6135d6565b5b90506020020160208101906115e191906133c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061163b90613630565b9150506115aa565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116d3611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611756906135b8565b60405180910390fd5b8060188190555050565b611771611926565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f4906135b8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906136e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199290613775565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613803565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ae3919061325b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5590613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc39061391f565b60405180910390fd5b5f8111611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c05906139ad565b60405180910390fd5b611c16611044565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c845750611c54611044565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd7575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d2a575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561211757601660149054906101000a900460ff16611dcd5760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390613a3b565b60405180910390fd5b5b601754811115611e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0990613aa3565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eb0575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee690613b31565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f9b5760185481611f5084610def565b611f5a9190613b4f565b10611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9190613bf2565b60405180910390fd5b5b5f611fa530610def565b90505f60195482101590506017548210611fbf5760175491505b808015611fd95750601660159054906101000a900460ff16155b8015612032575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612048575060168054906101000a900460ff165b801561209b575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120ee575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612114576120fc82612540565b5f4790505f811115612112576121114761246c565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806121b7575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612268575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612267575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612275575f90506123f8565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561231e575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561233657600854600c81905550600954600d819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123df575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123f757600a54600c81905550600b54600d819055505b5b612404848484846127ab565b50505050565b5f838311158290612451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124489190613114565b60405180910390fd5b505f838561245f9190613c10565b9050809150509392505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124d0573d5f803e3d5ffd5b5050565b5f60065482111561251a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251190613cb3565b60405180910390fd5b5f6125236127d8565b9050612538818461280190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561257757612576612ebd565b5b6040519080825280602002602001820160405280156125a55781602001602082028036833780820191505090505b50905030815f815181106125bc576125bb6135d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612660573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126849190613ce5565b81600181518110612698576126976135d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126fe3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461192d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612760959493929190613e00565b5f604051808303815f87803b158015612777575f80fd5b505af1158015612789573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b806127b9576127b861284a565b5b6127c4848484612883565b806127d2576127d1612a43565b5b50505050565b5f805f6127e3612a57565b915091506127fa818361280190919063ffffffff16565b9250505090565b5f61284283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ab3565b905092915050565b5f600c5414801561285c57505f600d54145b61288157600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061289287612b14565b9550955095509550955095506128ee8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b7490919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061297f8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612bbd90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506129c981612c1a565b6129d38483612cd1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a30919061325b565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f670de0b6b3a76400009050612a88670de0b6b3a764000060065461280190919063ffffffff16565b821015612aa657600654670de0b6b3a7640000935093505050612aaf565b81819350935050505b9091565b5f8083118290612af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af09190613114565b60405180910390fd5b505f8385612b079190613e85565b9050809150509392505050565b5f805f805f805f805f612b2c8a600c54600d54612d0b565b9250925092505f612b3b6127d8565b90505f805f612b4c8e878787612d9d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612bb583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061240a565b905092915050565b5f808284612bcb9190613b4f565b905083811015612c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0790613eff565b60405180910390fd5b8091505092915050565b5f612c236127d8565b90505f612c398284612e2190919063ffffffff16565b9050612c8b8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612bbd90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ce682600654612b7490919063ffffffff16565b600681905550612d0181600754612bbd90919063ffffffff16565b6007819055505050565b5f805f80612d356064612d27888a612e2190919063ffffffff16565b61280190919063ffffffff16565b90505f612d5e6064612d50888b612e2190919063ffffffff16565b61280190919063ffffffff16565b90505f612d8682612d78858c612b7490919063ffffffff16565b612b7490919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612db48589612e2190919063ffffffff16565b90505f612dca8689612e2190919063ffffffff16565b90505f612de08789612e2190919063ffffffff16565b90505f612e0882612dfa8587612b7490919063ffffffff16565b612b7490919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612e31575f9050612e92565b5f8284612e3e9190613f1d565b9050828482612e4d9190613e85565b14612e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8490613fce565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ef382612ead565b810181811067ffffffffffffffff82111715612f1257612f11612ebd565b5b80604052505050565b5f612f24612e98565b9050612f308282612eea565b919050565b5f67ffffffffffffffff821115612f4f57612f4e612ebd565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f8d82612f64565b9050919050565b612f9d81612f83565b8114612fa7575f80fd5b50565b5f81359050612fb881612f94565b92915050565b5f612fd0612fcb84612f35565b612f1b565b90508083825260208201905060208402830185811115612ff357612ff2612f60565b5b835b8181101561301c57806130088882612faa565b845260208401935050602081019050612ff5565b5050509392505050565b5f82601f83011261303a57613039612ea9565b5b813561304a848260208601612fbe565b91505092915050565b5f6020828403121561306857613067612ea1565b5b5f82013567ffffffffffffffff81111561308557613084612ea5565b5b61309184828501613026565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130d15780820151818401526020810190506130b6565b5f8484015250505050565b5f6130e68261309a565b6130f081856130a4565b93506131008185602086016130b4565b61310981612ead565b840191505092915050565b5f6020820190508181035f83015261312c81846130dc565b905092915050565b5f819050919050565b61314681613134565b8114613150575f80fd5b50565b5f813590506131618161313d565b92915050565b5f806040838503121561317d5761317c612ea1565b5b5f61318a85828601612faa565b925050602061319b85828601613153565b9150509250929050565b5f8115159050919050565b6131b9816131a5565b82525050565b5f6020820190506131d25f8301846131b0565b92915050565b5f819050919050565b5f6131fb6131f66131f184612f64565b6131d8565b612f64565b9050919050565b5f61320c826131e1565b9050919050565b5f61321d82613202565b9050919050565b61322d81613213565b82525050565b5f6020820190506132465f830184613224565b92915050565b61325581613134565b82525050565b5f60208201905061326e5f83018461324c565b92915050565b5f805f6060848603121561328b5761328a612ea1565b5b5f61329886828701612faa565b93505060206132a986828701612faa565b92505060406132ba86828701613153565b9150509250925092565b5f60ff82169050919050565b6132d9816132c4565b82525050565b5f6020820190506132f25f8301846132d0565b92915050565b61330181612f83565b82525050565b5f60208201905061331a5f8301846132f8565b92915050565b5f80fd5b5f8083601f84011261333957613338612ea9565b5b8235905067ffffffffffffffff81111561335657613355613320565b5b60208301915083602082028301111561337257613371612f60565b5b9250929050565b5f806020838503121561338f5761338e612ea1565b5b5f83013567ffffffffffffffff8111156133ac576133ab612ea5565b5b6133b885828601613324565b92509250509250929050565b5f602082840312156133d9576133d8612ea1565b5b5f6133e684828501612faa565b91505092915050565b6133f8816131a5565b8114613402575f80fd5b50565b5f81359050613413816133ef565b92915050565b5f6020828403121561342e5761342d612ea1565b5b5f61343b84828501613405565b91505092915050565b5f6020828403121561345957613458612ea1565b5b5f61346684828501613153565b91505092915050565b5f805f806080858703121561348757613486612ea1565b5b5f61349487828801613153565b94505060206134a587828801613153565b93505060406134b687828801613153565b92505060606134c787828801613153565b91505092959194509250565b5f805f604084860312156134ea576134e9612ea1565b5b5f84013567ffffffffffffffff81111561350757613506612ea5565b5b61351386828701613324565b9350935050602061352686828701613405565b9150509250925092565b5f806040838503121561354657613545612ea1565b5b5f61355385828601612faa565b925050602061356485828601612faa565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6135a26020836130a4565b91506135ad8261356e565b602082019050919050565b5f6020820190508181035f8301526135cf81613596565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61363a82613134565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361366c5761366b613603565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136d16026836130a4565b91506136dc82613677565b604082019050919050565b5f6020820190508181035f8301526136fe816136c5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61375f6024836130a4565b915061376a82613705565b604082019050919050565b5f6020820190508181035f83015261378c81613753565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137ed6022836130a4565b91506137f882613793565b604082019050919050565b5f6020820190508181035f83015261381a816137e1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61387b6025836130a4565b915061388682613821565b604082019050919050565b5f6020820190508181035f8301526138a88161386f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6139096023836130a4565b9150613914826138af565b604082019050919050565b5f6020820190508181035f830152613936816138fd565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6139976029836130a4565b91506139a28261393d565b604082019050919050565b5f6020820190508181035f8301526139c48161398b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613a25603f836130a4565b9150613a30826139cb565b604082019050919050565b5f6020820190508181035f830152613a5281613a19565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613a8d601c836130a4565b9150613a9882613a59565b602082019050919050565b5f6020820190508181035f830152613aba81613a81565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613b1b6023836130a4565b9150613b2682613ac1565b604082019050919050565b5f6020820190508181035f830152613b4881613b0f565b9050919050565b5f613b5982613134565b9150613b6483613134565b9250828201905080821115613b7c57613b7b613603565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613bdc6023836130a4565b9150613be782613b82565b604082019050919050565b5f6020820190508181035f830152613c0981613bd0565b9050919050565b5f613c1a82613134565b9150613c2583613134565b9250828203905081811115613c3d57613c3c613603565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613c9d602a836130a4565b9150613ca882613c43565b604082019050919050565b5f6020820190508181035f830152613cca81613c91565b9050919050565b5f81519050613cdf81612f94565b92915050565b5f60208284031215613cfa57613cf9612ea1565b5b5f613d0784828501613cd1565b91505092915050565b5f819050919050565b5f613d33613d2e613d2984613d10565b6131d8565b613134565b9050919050565b613d4381613d19565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d7b81612f83565b82525050565b5f613d8c8383613d72565b60208301905092915050565b5f602082019050919050565b5f613dae82613d49565b613db88185613d53565b9350613dc383613d63565b805f5b83811015613df3578151613dda8882613d81565b9750613de583613d98565b925050600181019050613dc6565b5085935050505092915050565b5f60a082019050613e135f83018861324c565b613e206020830187613d3a565b8181036040830152613e328186613da4565b9050613e4160608301856132f8565b613e4e608083018461324c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e8f82613134565b9150613e9a83613134565b925082613eaa57613ea9613e58565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ee9601b836130a4565b9150613ef482613eb5565b602082019050919050565b5f6020820190508181035f830152613f1681613edd565b9050919050565b5f613f2782613134565b9150613f3283613134565b9250828202613f4081613134565b91508282048414831517613f5757613f56613603565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fb86021836130a4565b9150613fc382613f5e565b604082019050919050565b5f6020820190508181035f830152613fe581613fac565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008f12453dd44fc39e4de8f855a76bc4f4633e96250bc34915331c05213b45cf064736f6c63430008150033

Verified Source Code Full Match

Compiler: v0.8.21+commit.d9974bed EVM: shanghai Optimization: No
BotCompiler.sol 599 lines
/**

//X: https://twitter.com/BotCompiler
//TG: https://t.me/BOTCPortal
//Medium: https://medium.com/@botcompiler/a-new-dawn-a3c7e80904ce
//Website: https://botcompiler.com/

*/


// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.14;
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
    );
}

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract BotCompiler is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Bot Compiler";
    string private constant _symbol = "BOTC";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000* 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 15;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0xf52b0eA4B0DaEe23dD5975762Ca295eA350d4646);
    address payable private _marketingAddress = payable(0xf52b0eA4B0DaEe23dD5975762Ca295eA350d4646);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 40000000 * 10**9;
    uint256 public _maxWalletSize = 40000000 * 10**9;
    uint256 public _swapTokensAtAmount = 5000000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 tokenFromReflection(_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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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");

        	if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

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

    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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 preTrader[accounts[i]] = true;
        }
    }

    function removePreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 delete preTrader[accounts[i]];
        }
    }
}

Read Contract

_buyMap 0x7f2feddc → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_swapTokensAtAmount 0x2fd689e3 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
bots 0xbfd79284 → bool
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
preTrader 0xbdd795ef → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address

Write Contract 18 functions

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

allowPreTrading 0xb5a65223
address[] accounts
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
blockBots 0x00b8cf2a
address[] bots_
excludeMultipleAccountsFromFees 0xc492f046
address[] accounts
bool excluded
manualsend 0x6fc3eaec
No parameters
manualswap 0xc3c8cd80
No parameters
removePreTrading 0x67aadb7e
address[] accounts
renounceOwnership 0x715018a6
No parameters
setFee 0xa2a957bb
uint256 redisFeeOnBuy
uint256 redisFeeOnSell
uint256 taxFeeOnBuy
uint256 taxFeeOnSell
setMaxTxnAmount 0x74010ece
uint256 maxTxAmount
setMaxWalletSize 0xea1644d5
uint256 maxWalletSize
setMinSwapTokensThreshold 0x98a5c315
uint256 swapTokensAtAmount
setTrading 0x8f70ccf7
bool _tradingOpen
toggleSwap 0x6d8aa8f8
bool _swapEnabled
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
unblockBot 0x6b999053
address notbot

Recent Transactions

No transactions found for this address