Address Contract Partially Verified
Address
0xb158dA1e1ED27406BDfE0dD46FcCb3270951103F
Balance
0 ETH
Nonce
1
Code Size
14223 bytes
Creator
0x376f7242...0d46 at tx 0x943af210...0709b2
Indexed Transactions
0
Contract Bytecode
14223 bytes
0x60806040526004361061019f575f3560e01c806370a08231116100eb578063a9059cbb11610089578063c9567bf911610063578063c9567bf914610578578063d34628cc1461058e578063dd62ed3e146105b6578063ec1f3f63146105f2576101a6565b8063a9059cbb146104e8578063baeb7a7d14610524578063bf474bed1461054e576101a6565b80637d1db4a5116100c55780637d1db4a5146104405780638da5cb5b1461046a5780638f9a55c01461049457806395d89b41146104be576101a6565b806370a08231146103d8578063715018a614610414578063751039fc1461042a576101a6565b806323b872dd1161015857806331c2d8471161013257806331c2d847146103345780633bbac5791461035c5780633ef947211461039857806351bc3c85146103c2576101a6565b806323b872dd146102a457806327b1a8e9146102e0578063313ce5671461030a576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f14610210578063109daa991461023a57806317391e491461025057806318160ddd1461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61061a565b6040516101cb919061263a565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f591906126f8565b61063b565b6040516102079190612750565b60405180910390f35b34801561021b575f80fd5b50610224610658565b6040516102319190612778565b60405180910390f35b348015610245575f80fd5b5061024e61065e565b005b34801561025b575f80fd5b50610264610732565b6040516102719190612778565b60405180910390f35b348015610285575f80fd5b5061028e610738565b60405161029b9190612778565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190612791565b61075b565b6040516102d79190612750565b60405180910390f35b3480156102eb575f80fd5b506102f461082f565b6040516103019190612778565b60405180910390f35b348015610315575f80fd5b5061031e610835565b60405161032b91906127fc565b60405180910390f35b34801561033f575f80fd5b5061035a60048036038101906103559190612955565b61083d565b005b348015610367575f80fd5b50610382600480360381019061037d919061299c565b61095b565b60405161038f9190612750565b60405180910390f35b3480156103a3575f80fd5b506103ac6109ad565b6040516103b99190612778565b60405180910390f35b3480156103cd575f80fd5b506103d66109b3565b005b3480156103e3575f80fd5b506103fe60048036038101906103f9919061299c565b610a4a565b60405161040b9190612778565b60405180910390f35b34801561041f575f80fd5b50610428610a90565b005b348015610435575f80fd5b5061043e610bde565b005b34801561044b575f80fd5b50610454610d0d565b6040516104619190612778565b60405180910390f35b348015610475575f80fd5b5061047e610d13565b60405161048b91906129d6565b60405180910390f35b34801561049f575f80fd5b506104a8610d3a565b6040516104b59190612778565b60405180910390f35b3480156104c9575f80fd5b506104d2610d40565b6040516104df919061263a565b60405180910390f35b3480156104f3575f80fd5b5061050e600480360381019061050991906126f8565b610d7d565b60405161051b9190612750565b60405180910390f35b34801561052f575f80fd5b50610538610d9a565b6040516105459190612778565b60405180910390f35b348015610559575f80fd5b50610562610da0565b60405161056f9190612778565b60405180910390f35b348015610583575f80fd5b5061058c610da6565b005b348015610599575f80fd5b506105b460048036038101906105af9190612955565b6112c5565b005b3480156105c1575f80fd5b506105dc60048036038101906105d791906129ef565b6113e4565b6040516105e99190612778565b60405180910390f35b3480156105fd575f80fd5b5061061860048036038101906106139190612a2d565b611466565b005b606060405180610120016040528060e8815260200161364a60e89139905090565b5f61064e6106476114f2565b84846114f9565b6001905092915050565b60125481565b6106666114f2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990612aa2565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107289190612b02565b60405180910390a1565b600d5481565b5f6009600a6107479190612c77565b633b9aca006107569190612cc1565b905090565b5f6107678484846116bc565b610824846107736114f2565b61081f856040518060600160405280602881526020016137326028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d66114f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209c9092919063ffffffff16565b6114f9565b600190509392505050565b600e5481565b5f6009905090565b6108456114f2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c890612aa2565b60405180910390fd5b5f5b8151811015610957575f60045f8484815181106108f3576108f2612d02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108d3565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f36114f2565b73ffffffffffffffffffffffffffffffffffffffff1614610a12575f80fd5b5f610a1c30610a4a565b90505f811115610a3057610a2f816120fe565b5b5f4790505f811115610a4657610a4581612369565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a986114f2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b90612aa2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610be66114f2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6990612aa2565b60405180910390fd5b6009600a610c809190612c77565b633b9aca00610c8f9190612cc1565b600f819055506009600a610ca39190612c77565b633b9aca00610cb29190612cc1565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ce79190612c77565b633b9aca00610cf69190612cc1565b604051610d039190612778565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f50455045434f494e000000000000000000000000000000000000000000000000815250905090565b5f610d90610d896114f2565b84846116bc565b6001905092915050565b60085481565b60115481565b610dae6114f2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190612aa2565b60405180910390fd5b60148054906101000a900460ff1615610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90612d79565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f243060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f109190612c77565b633b9aca00610f1f9190612cc1565b6114f9565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612dab565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105c9190612dab565b6040518363ffffffff1660e01b8152600401611079929190612dd6565b6020604051808303815f875af1158015611095573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b99190612dab565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061114030610a4a565b5f8061114a610d13565b426040518863ffffffff1660e01b815260040161116c96959493929190612dfd565b60606040518083038185885af1158015611188573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111ad9190612e70565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161124d929190612ec0565b6020604051808303815f875af1158015611269573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128d9190612f11565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6112cd6114f2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090612aa2565b60405180910390fd5b5f5b81518110156113e057600160045f84848151811061137c5761137b612d02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061135b565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a66114f2565b73ffffffffffffffffffffffffffffffffffffffff16146114c5575f80fd5b60085481111580156114d957506009548111155b6114e1575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155e90612fac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc9061303a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116af9190612778565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611721906130c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f90613156565b60405180910390fd5b5f81116117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d1906131e4565b60405180910390fd5b5f6117e3610d13565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118515750611821610d13565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dec5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561194d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611955575f80fd5b5f600e540361199d5761199a606461198c600a54600e54116119795760065461197d565b6008545b856123d190919063ffffffff16565b61244890919063ffffffff16565b90505b5f600e5411156119d2576119cf60646119c1600d54856123d190919063ffffffff16565b61244890919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a7b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ace575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bc657600f54821115611b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0f9061324c565b60405180910390fd5b60105482611b2585610a4a565b611b2f919061326a565b1115611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b67906132e7565b60405180910390fd5b611bac6064611b9e600a54600e5411611b8b57600654611b8f565b6008545b856123d190919063ffffffff16565b61244890919063ffffffff16565b9050600e5f815480929190611bc090613305565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c4e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c9257611c8f6064611c81600b54600e5411611c6e57600754611c72565b6009545b856123d190919063ffffffff16565b61244890919063ffffffff16565b90505b5f611c9c30610a4a565b9050601460159054906101000a900460ff16158015611d07575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1f5750601460169054906101000a900460ff165b8015611d2c575060115481115b8015611d3b5750600c54600e54115b15611dea57601654431115611d52575f6015819055505b600360155410611d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8e90613396565b60405180910390fd5b611db4611daf84611daa84601254612491565b612491565b6120fe565b5f4790505f811115611dca57611dc947612369565b5b60155f815480929190611ddc90613305565b919050555043601681905550505b505b5f811115611eeb57611e448160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124a990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee29190612778565b60405180910390a35b611f3b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fde611f92828461250690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124a990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612081848661250690919063ffffffff16565b60405161208e9190612778565b60405180910390a350505050565b5f8383111582906120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da919061263a565b60405180910390fd5b505f83856120f191906133b4565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561213557612134612819565b5b6040519080825280602002602001820160405280156121635781602001602082028036833780820191505090505b50905030815f8151811061217a57612179612d02565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122429190612dab565b8160018151811061225657612255612d02565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122bc3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f9565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161231e95949392919061349e565b5f604051808303815f87803b158015612335575f80fd5b505af1158015612347573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123cd573d5f803e3d5ffd5b5050565b5f8083036123e1575f9050612442565b5f82846123ee9190612cc1565b90508284826123fd9190613523565b1461243d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612434906135c3565b60405180910390fd5b809150505b92915050565b5f61248983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061254f565b905092915050565b5f81831161249f57826124a1565b815b905092915050565b5f8082846124b7919061326a565b9050838110156124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f39061362b565b60405180910390fd5b8091505092915050565b5f61254783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209c565b905092915050565b5f8083118290612595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258c919061263a565b60405180910390fd5b505f83856125a39190613523565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125e75780820151818401526020810190506125cc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61260c826125b0565b61261681856125ba565b93506126268185602086016125ca565b61262f816125f2565b840191505092915050565b5f6020820190508181035f8301526126528184612602565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126948261266b565b9050919050565b6126a48161268a565b81146126ae575f80fd5b50565b5f813590506126bf8161269b565b92915050565b5f819050919050565b6126d7816126c5565b81146126e1575f80fd5b50565b5f813590506126f2816126ce565b92915050565b5f806040838503121561270e5761270d612663565b5b5f61271b858286016126b1565b925050602061272c858286016126e4565b9150509250929050565b5f8115159050919050565b61274a81612736565b82525050565b5f6020820190506127635f830184612741565b92915050565b612772816126c5565b82525050565b5f60208201905061278b5f830184612769565b92915050565b5f805f606084860312156127a8576127a7612663565b5b5f6127b5868287016126b1565b93505060206127c6868287016126b1565b92505060406127d7868287016126e4565b9150509250925092565b5f60ff82169050919050565b6127f6816127e1565b82525050565b5f60208201905061280f5f8301846127ed565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61284f826125f2565b810181811067ffffffffffffffff8211171561286e5761286d612819565b5b80604052505050565b5f61288061265a565b905061288c8282612846565b919050565b5f67ffffffffffffffff8211156128ab576128aa612819565b5b602082029050602081019050919050565b5f80fd5b5f6128d26128cd84612891565b612877565b905080838252602082019050602084028301858111156128f5576128f46128bc565b5b835b8181101561291e578061290a88826126b1565b8452602084019350506020810190506128f7565b5050509392505050565b5f82601f83011261293c5761293b612815565b5b813561294c8482602086016128c0565b91505092915050565b5f6020828403121561296a57612969612663565b5b5f82013567ffffffffffffffff81111561298757612986612667565b5b61299384828501612928565b91505092915050565b5f602082840312156129b1576129b0612663565b5b5f6129be848285016126b1565b91505092915050565b6129d08161268a565b82525050565b5f6020820190506129e95f8301846129c7565b92915050565b5f8060408385031215612a0557612a04612663565b5b5f612a12858286016126b1565b9250506020612a23858286016126b1565b9150509250929050565b5f60208284031215612a4257612a41612663565b5b5f612a4f848285016126e4565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a8c6020836125ba565b9150612a9782612a58565b602082019050919050565b5f6020820190508181035f830152612ab981612a80565b9050919050565b5f819050919050565b5f819050919050565b5f612aec612ae7612ae284612ac0565b612ac9565b6126c5565b9050919050565b612afc81612ad2565b82525050565b5f602082019050612b155f830184612af3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b9d57808604811115612b7957612b78612b1b565b5b6001851615612b885780820291505b8081029050612b9685612b48565b9450612b5d565b94509492505050565b5f82612bb55760019050612c70565b81612bc2575f9050612c70565b8160018114612bd85760028114612be257612c11565b6001915050612c70565b60ff841115612bf457612bf3612b1b565b5b8360020a915084821115612c0b57612c0a612b1b565b5b50612c70565b5060208310610133831016604e8410600b8410161715612c465782820a905083811115612c4157612c40612b1b565b5b612c70565b612c538484846001612b54565b92509050818404811115612c6a57612c69612b1b565b5b81810290505b9392505050565b5f612c81826126c5565b9150612c8c836127e1565b9250612cb97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ba6565b905092915050565b5f612ccb826126c5565b9150612cd6836126c5565b9250828202612ce4816126c5565b91508282048414831517612cfb57612cfa612b1b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612d636017836125ba565b9150612d6e82612d2f565b602082019050919050565b5f6020820190508181035f830152612d9081612d57565b9050919050565b5f81519050612da58161269b565b92915050565b5f60208284031215612dc057612dbf612663565b5b5f612dcd84828501612d97565b91505092915050565b5f604082019050612de95f8301856129c7565b612df660208301846129c7565b9392505050565b5f60c082019050612e105f8301896129c7565b612e1d6020830188612769565b612e2a6040830187612af3565b612e376060830186612af3565b612e4460808301856129c7565b612e5160a0830184612769565b979650505050505050565b5f81519050612e6a816126ce565b92915050565b5f805f60608486031215612e8757612e86612663565b5b5f612e9486828701612e5c565b9350506020612ea586828701612e5c565b9250506040612eb686828701612e5c565b9150509250925092565b5f604082019050612ed35f8301856129c7565b612ee06020830184612769565b9392505050565b612ef081612736565b8114612efa575f80fd5b50565b5f81519050612f0b81612ee7565b92915050565b5f60208284031215612f2657612f25612663565b5b5f612f3384828501612efd565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f966024836125ba565b9150612fa182612f3c565b604082019050919050565b5f6020820190508181035f830152612fc381612f8a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130246022836125ba565b915061302f82612fca565b604082019050919050565b5f6020820190508181035f83015261305181613018565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130b26025836125ba565b91506130bd82613058565b604082019050919050565b5f6020820190508181035f8301526130df816130a6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131406023836125ba565b915061314b826130e6565b604082019050919050565b5f6020820190508181035f83015261316d81613134565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131ce6029836125ba565b91506131d982613174565b604082019050919050565b5f6020820190508181035f8301526131fb816131c2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6132366019836125ba565b915061324182613202565b602082019050919050565b5f6020820190508181035f8301526132638161322a565b9050919050565b5f613274826126c5565b915061327f836126c5565b925082820190508082111561329757613296612b1b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132d1601a836125ba565b91506132dc8261329d565b602082019050919050565b5f6020820190508181035f8301526132fe816132c5565b9050919050565b5f61330f826126c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361334157613340612b1b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6133806017836125ba565b915061338b8261334c565b602082019050919050565b5f6020820190508181035f8301526133ad81613374565b9050919050565b5f6133be826126c5565b91506133c9836126c5565b92508282039050818111156133e1576133e0612b1b565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134198161268a565b82525050565b5f61342a8383613410565b60208301905092915050565b5f602082019050919050565b5f61344c826133e7565b61345681856133f1565b935061346183613401565b805f5b83811015613491578151613478888261341f565b975061348383613436565b925050600181019050613464565b5085935050505092915050565b5f60a0820190506134b15f830188612769565b6134be6020830187612af3565b81810360408301526134d08186613442565b90506134df60608301856129c7565b6134ec6080830184612769565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61352d826126c5565b9150613538836126c5565b925082613548576135476134f6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135ad6021836125ba565b91506135b882613553565b604082019050919050565b5f6020820190508181035f8301526135da816135a1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613615601b836125ba565b9150613620826135e1565b602082019050919050565b5f6020820190508181035f83015261364281613609565b905091905056fee29e96e29e96e29e96f09f9fa9f09f9fa9e29e96f09f9fa9f09f9fa90ae29e96e29e96f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa90ae29e96f09f9fa9f09f9fa9e2ac9cefb88fe2ac9befb88fe2ac9cefb88fe2ac9cefb88fe2ac9befb88ff09f9fa90ae29e96f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa90af09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa5f09f9fa5f09f9fa5f09f9fa50af09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa9f09f9fa90af09f9fa6f09f9fa6f09f9fa6f09f9fa6f09f9fa6f09f9fa6f09f9fa645524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fe570dd4cb9421fd314467d085932cf0bea055a9f10b742ee9977faad13e47d164736f6c63430008170033
Verified Source Code Partial Match
Compiler: v0.8.23+commit.f704f362
EVM: shanghai
Optimization: No
PEPECOIN.sol 363 lines
/**
*Submitted for verification at Etherscan.io on 2024-09-07
*/
/**
*Submitted for verification at Etherscan.io on 2024-08-01
*/
/**
*Submitted for verification at Etherscan.io on 2024-05-13
*/
// SPDX-License-Identifier: UNLICENSE
/*
Website: https://www.pepe-coin.fun/
Telegram: https://t.me/PepeCoinPortalerc
X: https://x.com/_PepecoinErc20
*/
pragma solidity 0.8.23;
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 PEPECOIN is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private bots;
address payable private _taxWallet;
uint256 private _initialBuyTax=25;
uint256 private _initialSellTax=28;
uint256 public _finalBuyTax=0;
uint256 public _finalSellTax=0;
uint256 private _reduceBuyTaxAt=11;
uint256 private _reduceSellTaxAt=20;
uint256 private _preventSwapBefore=15;
uint256 public _transferTax=0;
uint256 public _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000000 * 10**_decimals;
string private constant _name = unicode"➖➖➖🟩🟩➖🟩🟩\n➖➖🟩🟩🟩🟩🟩🟩🟩\n➖🟩🟩⬜️⬛️⬜️⬜️⬛️🟩\n➖🟩🟩🟩🟩🟩🟩🟩\n🟩🟩🟩🟩🟥🟥🟥🟥\n🟩🟩🟩🟩🟩🟩🟩\n🟦🟦🟦🟦🟦🟦🟦";
string private constant _symbol = unicode"PEPECOIN";
uint256 public _maxTxAmount = 20000000 * 10**_decimals; // 2%
uint256 public _maxWalletSize = 20000000 * 10**_decimals; // 2%
uint256 public _taxSwapThreshold= 10000000 * 10**_decimals; //1%
uint256 public _maxTaxSwap= 20000000 * 10**_decimals; //2%
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(0x376f72423a3D227eDfbE4d1a5b47436991C30d46);
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner() && to != _taxWallet) {
require(!bots[from] && !bots[to]);
if(_buyCount==0){
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
}
if(_buyCount>0){
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
_buyCount++;
}
if(to == uniswapV2Pair && from!= address(this) ){
taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 3, "Only 3 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function removeLimits() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function removeTransferTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function addBots(address[] memory bots_) public onlyOwner {
for (uint i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function delBots(address[] memory notbot) public onlyOwner {
for (uint i = 0; i < notbot.length; i++) {
bots[notbot[i]] = false;
}
}
function isBot(address a) public view returns (bool){
return bots[a];
}
function openTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
}
function reduceFee(uint256 _newFee) external{
require(_msgSender()==_taxWallet);
require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
_finalBuyTax=_newFee;
_finalSellTax=_newFee;
}
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
_buyCount 0x27b1a8e9 → uint256
_finalBuyTax 0xbaeb7a7d → uint256
_finalSellTax 0x3ef94721 → uint256
_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
_transferTax 0x17391e49 → 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 11 functions
These functions modify contract state and require a wallet transaction to execute.
addBots 0xd34628cc
address[] bots_
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBots 0x31c2d847
address[] notbot
manualSwap 0x51bc3c85
No parameters
openTrading 0xc9567bf9
No parameters
reduceFee 0xec1f3f63
uint256 _newFee
removeLimits 0x751039fc
No parameters
removeTransferTax 0x109daa99
No parameters
renounceOwnership 0x715018a6
No parameters
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