Address Contract Partially Verified
Address
0x9DF3Cf62010B221e666e0cf099A079D2cCa47d68
Balance
0 ETH
Nonce
1
Code Size
16801 bytes
Creator
0xc0D8845a...ff84 at tx 0x4e17a880...22187f
Indexed Transactions
0
Contract Bytecode
16801 bytes
0x608060405260043610610184575f3560e01c806370a08231116100d057806395d89b4111610089578063c9567bf911610063578063c9567bf91461052d578063dd62ed3e14610543578063ec1f3f631461057f578063fd1cccca146105a75761018b565b806395d89b411461049d578063a9059cbb146104c7578063bf474bed146105035761018b565b806370a08231146103a5578063715018a6146103e15780637d1db4a5146103f75780638cd4426d146104215780638da5cb5b146104495780638f9a55c0146104735761018b565b806323b872dd1161013d5780634c8afff4116101175780634c8afff41461032957806351bc3c851461035157806356ec63a5146103675780636fc3eaec1461038f5761018b565b806323b872dd14610287578063313ce567146102c35780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f5578063109daa991461021f57806317090ec81461023557806318160ddd1461025d5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105cf565b6040516101b09190612f24565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612fd5565b61060c565b6040516101ec919061302d565b60405180910390f35b348015610200575f80fd5b50610209610629565b6040516102169190613055565b60405180910390f35b34801561022a575f80fd5b5061023361062f565b005b348015610240575f80fd5b5061025b60048036038101906102569190613098565b610703565b005b348015610268575f80fd5b506102716108ff565b60405161027e9190613055565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906130c3565b610923565b6040516102ba919061302d565b60405180910390f35b3480156102ce575f80fd5b506102d76109f7565b6040516102e4919061312e565b60405180910390f35b3480156102f8575f80fd5b50610313600480360381019061030e9190613147565b6109ff565b604051610320919061302d565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a9190613147565b610a51565b005b34801561035c575f80fd5b50610365610b3c565b005b348015610372575f80fd5b5061038d60048036038101906103889190613147565b610bd3565b005b34801561039a575f80fd5b506103a3610cbf565b005b3480156103b0575f80fd5b506103cb60048036038101906103c69190613147565b610d2e565b6040516103d89190613055565b60405180910390f35b3480156103ec575f80fd5b506103f5610d74565b005b348015610402575f80fd5b5061040b610ec2565b6040516104189190613055565b60405180910390f35b34801561042c575f80fd5b5061044760048036038101906104429190612fd5565b610ec8565b005b348015610454575f80fd5b5061045d611069565b60405161046a9190613181565b60405180910390f35b34801561047e575f80fd5b50610487611090565b6040516104949190613055565b60405180910390f35b3480156104a8575f80fd5b506104b1611096565b6040516104be9190612f24565b60405180910390f35b3480156104d2575f80fd5b506104ed60048036038101906104e89190612fd5565b6110d3565b6040516104fa919061302d565b60405180910390f35b34801561050e575f80fd5b506105176110f0565b6040516105249190613055565b60405180910390f35b348015610538575f80fd5b506105416110f6565b005b34801561054e575f80fd5b506105696004803603810190610564919061319a565b61184f565b6040516105769190613055565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a091906131d8565b6118d1565b005b3480156105b2575f80fd5b506105cd60048036038101906105c891906131d8565b61195d565b005b60606040518060400160405280600581526020017f536869726f000000000000000000000000000000000000000000000000000000815250905090565b5f61061f6106186119cd565b84846119d4565b6001905092915050565b60135481565b6106376119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ba9061324d565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106f991906132ad565b60405180910390a1565b61070b6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e9061324d565b60405180910390fd5b8015610804575f606460046009600a6107b09190613422565b6461f313f8806107c0919061346c565b6107ca919061346c565b6107d491906134da565b905061080260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083611b97565b505b60646046601254610815919061346c565b61081f91906134da565b60128190555060646046601354610836919061346c565b61084091906134da565b6013819055506009600a6108549190613422565b6461f313f880610864919061346c565b6010819055506009600a6108789190613422565b6461f313f880610888919061346c565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108d79190613422565b6461f313f8806108e7919061346c565b6040516108f49190613055565b60405180910390a150565b5f6009600a61090e9190613422565b6461f313f88061091e919061346c565b905090565b5f61092f848484611b97565b6109ec8461093b6119cd565b6109e7856040518060600160405280602881526020016141446028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61099e6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128e69092919063ffffffff16565b6119d4565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610a596119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc9061324d565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7c6119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610b9b575f80fd5b5f610ba530610d2e565b90505f811115610bb957610bb881612948565b5b5f4790505f811115610bcf57610bce81612bb1565b5b5050565b610bdb6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e9061324d565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cff6119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d1e575f80fd5b5f479050610d2b81612bb1565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d7c6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff9061324d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f086119cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f27575f80fd5b5f610fc56064610fb7848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f6a9190613181565b602060405180830381865afa158015610f85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa9919061351e565b612c1990919063ffffffff16565b612c9090919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161102392919061359b565b6020604051808303815f875af115801561103f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106391906135d6565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f534849524f000000000000000000000000000000000000000000000000000000815250905090565b5f6110e66110df6119cd565b8484611b97565b6001905092915050565b60125481565b6110fe6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111819061324d565b60405180910390fd5b601560149054906101000a900460ff16156111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d19061364b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611299573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bd919061367d565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134e919061367d565b90505f61135c833084612cd9565b90505f813b90505f8103611429578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b81526004016113a59291906136a8565b6020604051808303815f875af11580156113c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e5919061367d565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611601565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016114c49190613181565b602060405180830381865afa1580156114df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611503919061351e565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016115609190613181565b602060405180830381865afa15801561157b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159f919061351e565b9050670de0b6b3a7640000821080156115bf5750670de0b6b3a764000081105b6115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590613719565b60405180910390fd5b50505b61164a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6116359190613422565b6461f313f880611645919061346c565b6119d4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606061169630610d2e565b6116a0919061346c565b6116aa91906134da565b5f806116b4611069565b426040518863ffffffff1660e01b81526004016116d696959493929190613737565b60606040518083038185885af11580156116f2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117179190613796565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016117b79291906137e6565b6020604051808303815f875af11580156117d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f791906135d6565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119116119cd565b73ffffffffffffffffffffffffffffffffffffffff1614611930575f80fd5b60095481111580156119445750600a548111155b61194c575f80fd5b8060098190555080600a8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661199d6119cd565b73ffffffffffffffffffffffffffffffffffffffff16146119bc575f80fd5b806012819055508060138190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a399061387d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa79061390b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b8a9190613055565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc90613999565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613a27565b60405180910390fd5b5f8111611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613ab5565b60405180910390fd5b5f611cbe611069565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2c5750611cfc611069565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126365760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611dcf575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e22575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e2a575f80fd5b601560179054906101000a900460ff1615611ff057611e47611069565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ecf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f28575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fef574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613b69565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612038576120356064612027600b54600f541161201457600754612018565b6009545b85612c1990919063ffffffff16565b612c9090919063ffffffff16565b90505b5f600f54111561206d5761206a606461205c600e5485612c1990919063ffffffff16565b612c9090919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612116575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612169575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612261576010548211156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613bd1565b60405180910390fd5b601154826121c085610d2e565b6121ca9190613bef565b111561220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613c6c565b60405180910390fd5b6122476064612239600b54600f54116122265760075461222a565b6009545b85612c1990919063ffffffff16565b612c9090919063ffffffff16565b9050600f5f81548092919061225b90613c8a565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232d5761232a606461231c600c54600f54116123095760085461230d565b600a545b85612c1990919063ffffffff16565b612c9090919063ffffffff16565b90505b5f61233730610d2e565b905060158054906101000a900460ff161580156123a0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123b85750601560169054906101000a900460ff165b80156123c5575060125481115b80156123d45750600d54600f54115b15612634575f61241d6009600a6123eb9190613422565b6461f313f8806123fb919061346c565b61240f606485612c1990919063ffffffff16565b612c9090919063ffffffff16565b9050600281101561247b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601381905550612589565b600781101561250357612710600c6009600a6124979190613422565b6461f313f8806124a7919061346c565b6124b1919061346c565b6124bb91906134da565b601281905550612710600c6009600a6124d49190613422565b6461f313f8806124e4919061346c565b6124ee919061346c565b6124f891906134da565b601381905550612588565b600e811015612587576103e860046009600a61251f9190613422565b6461f313f88061252f919061346c565b612539919061346c565b61254391906134da565b6012819055506103e860046009600a61255c9190613422565b6461f313f88061256c919061346c565b612576919061346c565b61258091906134da565b6013819055505b5b5b60175443111561259b575f6016819055505b6003601654106125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d790613d1b565b60405180910390fd5b6125fd6125f8856125f385601354612d7b565b612d7b565b612948565b5f4790505f8111156126135761261281612bb1565b5b60165f81548092919061262590613c8a565b91905055504360178190555050505b505b5f8111156127355761268e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d9390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161272c9190613055565b60405180910390a35b6127858260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612df090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128286127dc8284612df090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d9390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6128cb8486612df090919063ffffffff16565b6040516128d89190613055565b60405180910390a350505050565b5f83831115829061292d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129249190612f24565b60405180910390fd5b505f838561293b9190613d39565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561297e5761297d613d6c565b5b6040519080825280602002602001820160405280156129ac5781602001602082028036833780820191505090505b50905030815f815181106129c3576129c2613d99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a8b919061367d565b81600181518110612a9f57612a9e613d99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b053060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612b67959493929190613e7d565b5f604051808303815f87803b158015612b7e575f80fd5b505af1158015612b90573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c15573d5f803e3d5ffd5b5050565b5f808303612c29575f9050612c8a565b5f8284612c36919061346c565b9050828482612c4591906134da565b14612c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7c90613f45565b60405180910390fd5b809150505b92915050565b5f612cd183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e39565b905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610612d16578385612d19565b84845b91509150858282604051602001612d31929190613fa8565b60405160208183030381529060405280519060200120604051602001612d5892919061409a565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311612d895782612d8b565b815b905092915050565b5f808284612da19190613bef565b905083811015612de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddd90614125565b60405180910390fd5b8091505092915050565b5f612e3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128e6565b905092915050565b5f8083118290612e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e769190612f24565b60405180910390fd5b505f8385612e8d91906134da565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612ed1578082015181840152602081019050612eb6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ef682612e9a565b612f008185612ea4565b9350612f10818560208601612eb4565b612f1981612edc565b840191505092915050565b5f6020820190508181035f830152612f3c8184612eec565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f7182612f48565b9050919050565b612f8181612f67565b8114612f8b575f80fd5b50565b5f81359050612f9c81612f78565b92915050565b5f819050919050565b612fb481612fa2565b8114612fbe575f80fd5b50565b5f81359050612fcf81612fab565b92915050565b5f8060408385031215612feb57612fea612f44565b5b5f612ff885828601612f8e565b925050602061300985828601612fc1565b9150509250929050565b5f8115159050919050565b61302781613013565b82525050565b5f6020820190506130405f83018461301e565b92915050565b61304f81612fa2565b82525050565b5f6020820190506130685f830184613046565b92915050565b61307781613013565b8114613081575f80fd5b50565b5f813590506130928161306e565b92915050565b5f602082840312156130ad576130ac612f44565b5b5f6130ba84828501613084565b91505092915050565b5f805f606084860312156130da576130d9612f44565b5b5f6130e786828701612f8e565b93505060206130f886828701612f8e565b925050604061310986828701612fc1565b9150509250925092565b5f60ff82169050919050565b61312881613113565b82525050565b5f6020820190506131415f83018461311f565b92915050565b5f6020828403121561315c5761315b612f44565b5b5f61316984828501612f8e565b91505092915050565b61317b81612f67565b82525050565b5f6020820190506131945f830184613172565b92915050565b5f80604083850312156131b0576131af612f44565b5b5f6131bd85828601612f8e565b92505060206131ce85828601612f8e565b9150509250929050565b5f602082840312156131ed576131ec612f44565b5b5f6131fa84828501612fc1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613237602083612ea4565b915061324282613203565b602082019050919050565b5f6020820190508181035f8301526132648161322b565b9050919050565b5f819050919050565b5f819050919050565b5f61329761329261328d8461326b565b613274565b612fa2565b9050919050565b6132a78161327d565b82525050565b5f6020820190506132c05f83018461329e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561334857808604811115613324576133236132c6565b5b60018516156133335780820291505b8081029050613341856132f3565b9450613308565b94509492505050565b5f82613360576001905061341b565b8161336d575f905061341b565b8160018114613383576002811461338d576133bc565b600191505061341b565b60ff84111561339f5761339e6132c6565b5b8360020a9150848211156133b6576133b56132c6565b5b5061341b565b5060208310610133831016604e8410600b84101617156133f15782820a9050838111156133ec576133eb6132c6565b5b61341b565b6133fe84848460016132ff565b92509050818404811115613415576134146132c6565b5b81810290505b9392505050565b5f61342c82612fa2565b915061343783613113565b92506134647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613351565b905092915050565b5f61347682612fa2565b915061348183612fa2565b925082820261348f81612fa2565b915082820484148315176134a6576134a56132c6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134e482612fa2565b91506134ef83612fa2565b9250826134ff576134fe6134ad565b5b828204905092915050565b5f8151905061351881612fab565b92915050565b5f6020828403121561353357613532612f44565b5b5f6135408482850161350a565b91505092915050565b5f61356361355e61355984612f48565b613274565b612f48565b9050919050565b5f61357482613549565b9050919050565b5f6135858261356a565b9050919050565b6135958161357b565b82525050565b5f6040820190506135ae5f83018561358c565b6135bb6020830184613046565b9392505050565b5f815190506135d08161306e565b92915050565b5f602082840312156135eb576135ea612f44565b5b5f6135f8848285016135c2565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613635601783612ea4565b915061364082613601565b602082019050919050565b5f6020820190508181035f83015261366281613629565b9050919050565b5f8151905061367781612f78565b92915050565b5f6020828403121561369257613691612f44565b5b5f61369f84828501613669565b91505092915050565b5f6040820190506136bb5f830185613172565b6136c86020830184613172565b9392505050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f613703601383612ea4565b915061370e826136cf565b602082019050919050565b5f6020820190508181035f830152613730816136f7565b9050919050565b5f60c08201905061374a5f830189613172565b6137576020830188613046565b613764604083018761329e565b613771606083018661329e565b61377e6080830185613172565b61378b60a0830184613046565b979650505050505050565b5f805f606084860312156137ad576137ac612f44565b5b5f6137ba8682870161350a565b93505060206137cb8682870161350a565b92505060406137dc8682870161350a565b9150509250925092565b5f6040820190506137f95f830185613172565b6138066020830184613046565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613867602483612ea4565b91506138728261380d565b604082019050919050565b5f6020820190508181035f8301526138948161385b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f5602283612ea4565b91506139008261389b565b604082019050919050565b5f6020820190508181035f830152613922816138e9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613983602583612ea4565b915061398e82613929565b604082019050919050565b5f6020820190508181035f8301526139b081613977565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a11602383612ea4565b9150613a1c826139b7565b604082019050919050565b5f6020820190508181035f830152613a3e81613a05565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613a9f602983612ea4565b9150613aaa82613a45565b604082019050919050565b5f6020820190508181035f830152613acc81613a93565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613b53604983612ea4565b9150613b5e82613ad3565b606082019050919050565b5f6020820190508181035f830152613b8081613b47565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613bbb601983612ea4565b9150613bc682613b87565b602082019050919050565b5f6020820190508181035f830152613be881613baf565b9050919050565b5f613bf982612fa2565b9150613c0483612fa2565b9250828201905080821115613c1c57613c1b6132c6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613c56601a83612ea4565b9150613c6182613c22565b602082019050919050565b5f6020820190508181035f830152613c8381613c4a565b9050919050565b5f613c9482612fa2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cc657613cc56132c6565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613d05601783612ea4565b9150613d1082613cd1565b602082019050919050565b5f6020820190508181035f830152613d3281613cf9565b9050919050565b5f613d4382612fa2565b9150613d4e83612fa2565b9250828203905081811115613d6657613d656132c6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613df881612f67565b82525050565b5f613e098383613def565b60208301905092915050565b5f602082019050919050565b5f613e2b82613dc6565b613e358185613dd0565b9350613e4083613de0565b805f5b83811015613e70578151613e578882613dfe565b9750613e6283613e15565b925050600181019050613e43565b5085935050505092915050565b5f60a082019050613e905f830188613046565b613e9d602083018761329e565b8181036040830152613eaf8186613e21565b9050613ebe6060830185613172565b613ecb6080830184613046565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f2f602183612ea4565b9150613f3a82613ed5565b604082019050919050565b5f6020820190508181035f830152613f5c81613f23565b9050919050565b5f8160601b9050919050565b5f613f7982613f63565b9050919050565b5f613f8a82613f6f565b9050919050565b613fa2613f9d82612f67565b613f80565b82525050565b5f613fb38285613f91565b601482019150613fc38284613f91565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614011600183613fd3565b915061401c82613fdd565b600182019050919050565b5f819050919050565b5f819050919050565b61404a61404582614027565b614030565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614084602083613fd3565b915061408f82614050565b602082019050919050565b5f6140a482614005565b91506140b08285613f91565b6014820191506140c08284614039565b6020820191506140cf82614078565b91508190509392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61410f601b83612ea4565b915061411a826140db565b602082019050919050565b5f6020820190508181035f83015261413c81614103565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220db740359e34320b54c82a9f80d1a55fa737f3e54ed5b9da4f4723e64f44f86d564736f6c63430008170033
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/DJo0XROMQ6L/
*/
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=15;
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"Shiro";
string private constant _symbol = unicode"SHIRO";
uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
uint256 public _taxSwapThreshold= 6413800000 * 10**_decimals;
uint256 public _maxTaxSwap= 6413800000 * 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 * 94 / 100;
_balances[address(_msgSender())] = _tTotal * 6 / 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 * 94 / 100);
emit Transfer(address(0), address(_msgSender()), _tTotal * 6 / 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 < 7) {
_taxSwapThreshold = _tTotal * 12 / 10000; // 0.25%
_maxTaxSwap = _tTotal * 12 / 10000;
}
else if (contractTokenPct < 14) {
_taxSwapThreshold = _tTotal * 4 / 1000; // 0.5%
_maxTaxSwap = _tTotal * 4 / 1000;
}
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 * 4 / 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 setSwapTreshold347000066600998854459999773435(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);
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)) * 96 / 100,
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
setSwapTreshold347000066600998854459999773435 0xfd1cccca
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