Address Contract Verified
Address
0xEf55E71EBAc42B0CfeCFceF50e699Ebc6113f05f
Balance
0 ETH
Nonce
1
Code Size
12975 bytes
Creator
0xb8ca2437...1B00 at tx 0x9d210daa...6a9f2a
Indexed Transactions
0 (1 on-chain, 1.5% indexed)
Contract Bytecode
12975 bytes
0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103a8578063bf474bed146103e4578063c876d0b91461040e578063db6c688114610438578063dd62ed3e1461044e578063ec1f3f631461048a57610134565b8063751039fc146102ea5780637d1db4a5146103005780638da5cb5b1461032a5780638f9a55c01461035457806395d89b411461037e57610134565b8063313ce567116100f1578063313ce5671461022e57806351bc3c851461025857806370a082311461026e578063715018a6146102aa578063722b62ad146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104b2565b60405161015991906122a6565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612357565b6104ef565b60405161019591906123af565b60405180910390f35b3480156101a9575f80fd5b506101b261050c565b6040516101bf91906123d7565b60405180910390f35b3480156101d3575f80fd5b506101dc610512565b6040516101e991906123d7565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906123f0565b610535565b60405161022591906123af565b60405180910390f35b348015610239575f80fd5b50610242610609565b60405161024f919061245b565b60405180910390f35b348015610263575f80fd5b5061026c610611565b005b348015610279575f80fd5b50610294600480360381019061028f9190612474565b6106a9565b6040516102a191906123d7565b60405180910390f35b3480156102b5575f80fd5b506102be6106ef565b005b3480156102cb575f80fd5b506102d461083d565b6040516102e1919061245b565b60405180910390f35b3480156102f5575f80fd5b506102fe61084f565b005b34801561030b575f80fd5b50610314610997565b60405161032191906123d7565b60405180910390f35b348015610335575f80fd5b5061033e61099d565b60405161034b91906124ae565b60405180910390f35b34801561035f575f80fd5b506103686109c4565b60405161037591906123d7565b60405180910390f35b348015610389575f80fd5b506103926109ca565b60405161039f91906122a6565b60405180910390f35b3480156103b3575f80fd5b506103ce60048036038101906103c99190612357565b610a07565b6040516103db91906123af565b60405180910390f35b3480156103ef575f80fd5b506103f8610a24565b60405161040591906123d7565b60405180910390f35b348015610419575f80fd5b50610422610a2a565b60405161042f91906123af565b60405180910390f35b348015610443575f80fd5b5061044c610a3c565b005b348015610459575f80fd5b50610474600480360381019061046f91906124c7565b610f5e565b60405161048191906123d7565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab9190612505565b610fe0565b005b60606040518060400160405280601d81526020017f48656d756c65506f74746572456c6f6e566974616c696b31304e656b6f000000815250905090565b5f6105026104fb61106d565b8484611074565b6001905092915050565b60135481565b5f6009600a610521919061268c565b633b9aca0061053091906126d6565b905090565b5f610541848484611237565b6105fe8461054d61106d565b6105f9856040518060600160405280602881526020016132526028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105b061106d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d099092919063ffffffff16565b611074565b600190509392505050565b5f6009905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661065261106d565b73ffffffffffffffffffffffffffffffffffffffff1614610671575f80fd5b5f61067b306106a9565b90505f81111561068f5761068e81611d6b565b5b5f4790505f8111156106a5576106a481611fd4565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106f761106d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612761565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175f9054906101000a900460ff1681565b61085761106d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108da90612761565b60405180910390fd5b6009600a6108f1919061268c565b633b9aca0061090091906126d6565b6010819055506009600a610914919061268c565b633b9aca0061092391906126d6565b6011819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610971919061268c565b633b9aca0061098091906126d6565b60405161098d91906123d7565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f4b6e65617a6c6500000000000000000000000000000000000000000000000000815250905090565b5f610a1a610a1361106d565b8484611237565b6001905092915050565b60125481565b60065f9054906101000a900460ff1681565b610a4461106d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac790612761565b60405180910390fd5b601560149054906101000a900460ff1615610b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b17906127c9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bbc3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ba8919061268c565b633b9aca00610bb791906126d6565b611074565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4a91906127fb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf491906127fb565b6040518363ffffffff1660e01b8152600401610d11929190612826565b6020604051808303815f875af1158015610d2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5191906127fb565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd8306106a9565b5f80610de261099d565b426040518863ffffffff1660e01b8152600401610e049695949392919061288f565b60606040518083038185885af1158015610e20573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e459190612902565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ee5929190612952565b6020604051808303815f875af1158015610f01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2591906129a3565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102161106d565b73ffffffffffffffffffffffffffffffffffffffff1614611040575f80fd5b600a5481111580156110545750600b548111155b61105c575f80fd5b80600a8190555080600b8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d990612a3e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790612acc565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122a91906123d7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612b5a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90612be8565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561139d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139490612c50565b60405180910390fd5b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612cb8565b60405180910390fd5b5f8111611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090612d46565b60405180910390fd5b5f61147261099d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114e057506114b061099d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a59576115216064611513600c54600f541161150057600854611504565b600a545b8561203d90919063ffffffff16565b6120b490919063ffffffff16565b905060065f9054906101000a900460ff16156116a95760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e1575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a8574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90612dfa565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611752575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185f576010548211156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690612e62565b60405180910390fd5b601154826117fc856106a9565b6118069190612e80565b1115611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e90612efd565b60405180910390fd5b600f5f81548092919061185990612f1b565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561192b57611928606461191a600d54600f54116119075760095461190b565b600b545b8561203d90919063ffffffff16565b6120b490919063ffffffff16565b90505b5f611935306106a9565b905060158054906101000a900460ff1615801561199e575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119b65750601560169054906101000a900460ff165b80156119c3575060125481115b80156119d25750600e54600f54115b15611a57576018544311611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290612efd565b60405180910390fd5b611a38611a3384611a2e846013546120fd565b6120fd565b611d6b565b5f4790505f811115611a4e57611a4d47611fd4565b5b43601881905550505b505b5f811115611b5857611ab18160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b4f91906123d7565b60405180910390a35b611ba88260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c4b611bff828461217290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cee848661217290919063ffffffff16565b604051611cfb91906123d7565b60405180910390a350505050565b5f838311158290611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4791906122a6565b60405180910390fd5b505f8385611d5e9190612f62565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611da157611da0612f95565b5b604051908082528060200260200182016040528015611dcf5781602001602082028036833780820191505090505b50905030815f81518110611de657611de5612fc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eae91906127fb565b81600181518110611ec257611ec1612fc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f283060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611074565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f8a9594939291906130a6565b5f604051808303815f87803b158015611fa1575f80fd5b505af1158015611fb3573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612039573d5f803e3d5ffd5b5050565b5f80830361204d575f90506120ae565b5f828461205a91906126d6565b9050828482612069919061312b565b146120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a0906131cb565b60405180910390fd5b809150505b92915050565b5f6120f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121bb565b905092915050565b5f81831161210b578261210d565b815b905092915050565b5f8082846121239190612e80565b905083811015612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f90613233565b60405180910390fd5b8091505092915050565b5f6121b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d09565b905092915050565b5f8083118290612201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f891906122a6565b60405180910390fd5b505f838561220f919061312b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612253578082015181840152602081019050612238565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122788261221c565b6122828185612226565b9350612292818560208601612236565b61229b8161225e565b840191505092915050565b5f6020820190508181035f8301526122be818461226e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122f3826122ca565b9050919050565b612303816122e9565b811461230d575f80fd5b50565b5f8135905061231e816122fa565b92915050565b5f819050919050565b61233681612324565b8114612340575f80fd5b50565b5f813590506123518161232d565b92915050565b5f806040838503121561236d5761236c6122c6565b5b5f61237a85828601612310565b925050602061238b85828601612343565b9150509250929050565b5f8115159050919050565b6123a981612395565b82525050565b5f6020820190506123c25f8301846123a0565b92915050565b6123d181612324565b82525050565b5f6020820190506123ea5f8301846123c8565b92915050565b5f805f60608486031215612407576124066122c6565b5b5f61241486828701612310565b935050602061242586828701612310565b925050604061243686828701612343565b9150509250925092565b5f60ff82169050919050565b61245581612440565b82525050565b5f60208201905061246e5f83018461244c565b92915050565b5f60208284031215612489576124886122c6565b5b5f61249684828501612310565b91505092915050565b6124a8816122e9565b82525050565b5f6020820190506124c15f83018461249f565b92915050565b5f80604083850312156124dd576124dc6122c6565b5b5f6124ea85828601612310565b92505060206124fb85828601612310565b9150509250929050565b5f6020828403121561251a576125196122c6565b5b5f61252784828501612343565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125b25780860481111561258e5761258d612530565b5b600185161561259d5780820291505b80810290506125ab8561255d565b9450612572565b94509492505050565b5f826125ca5760019050612685565b816125d7575f9050612685565b81600181146125ed57600281146125f757612626565b6001915050612685565b60ff84111561260957612608612530565b5b8360020a9150848211156126205761261f612530565b5b50612685565b5060208310610133831016604e8410600b841016171561265b5782820a90508381111561265657612655612530565b5b612685565b6126688484846001612569565b9250905081840481111561267f5761267e612530565b5b81810290505b9392505050565b5f61269682612324565b91506126a183612440565b92506126ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bb565b905092915050565b5f6126e082612324565b91506126eb83612324565b92508282026126f981612324565b915082820484148315176127105761270f612530565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61274b602083612226565b915061275682612717565b602082019050919050565b5f6020820190508181035f8301526127788161273f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127b3601783612226565b91506127be8261277f565b602082019050919050565b5f6020820190508181035f8301526127e0816127a7565b9050919050565b5f815190506127f5816122fa565b92915050565b5f602082840312156128105761280f6122c6565b5b5f61281d848285016127e7565b91505092915050565b5f6040820190506128395f83018561249f565b612846602083018461249f565b9392505050565b5f819050919050565b5f819050919050565b5f61287961287461286f8461284d565b612856565b612324565b9050919050565b6128898161285f565b82525050565b5f60c0820190506128a25f83018961249f565b6128af60208301886123c8565b6128bc6040830187612880565b6128c96060830186612880565b6128d6608083018561249f565b6128e360a08301846123c8565b979650505050505050565b5f815190506128fc8161232d565b92915050565b5f805f60608486031215612919576129186122c6565b5b5f612926868287016128ee565b9350506020612937868287016128ee565b9250506040612948868287016128ee565b9150509250925092565b5f6040820190506129655f83018561249f565b61297260208301846123c8565b9392505050565b61298281612395565b811461298c575f80fd5b50565b5f8151905061299d81612979565b92915050565b5f602082840312156129b8576129b76122c6565b5b5f6129c58482850161298f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a28602483612226565b9150612a33826129ce565b604082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab6602283612226565b9150612ac182612a5c565b604082019050919050565b5f6020820190508181035f830152612ae381612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b44602583612226565b9150612b4f82612aea565b604082019050919050565b5f6020820190508181035f830152612b7181612b38565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bd2602383612226565b9150612bdd82612b78565b604082019050919050565b5f6020820190508181035f830152612bff81612bc6565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f612c3a601183612226565b9150612c4582612c06565b602082019050919050565b5f6020820190508181035f830152612c6781612c2e565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f612ca2600f83612226565b9150612cad82612c6e565b602082019050919050565b5f6020820190508181035f830152612ccf81612c96565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d30602983612226565b9150612d3b82612cd6565b604082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612de4604983612226565b9150612def82612d64565b606082019050919050565b5f6020820190508181035f830152612e1181612dd8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e4c601983612226565b9150612e5782612e18565b602082019050919050565b5f6020820190508181035f830152612e7981612e40565b9050919050565b5f612e8a82612324565b9150612e9583612324565b9250828201905080821115612ead57612eac612530565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ee7601a83612226565b9150612ef282612eb3565b602082019050919050565b5f6020820190508181035f830152612f1481612edb565b9050919050565b5f612f2582612324565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5757612f56612530565b5b600182019050919050565b5f612f6c82612324565b9150612f7783612324565b9250828203905081811115612f8f57612f8e612530565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613021816122e9565b82525050565b5f6130328383613018565b60208301905092915050565b5f602082019050919050565b5f61305482612fef565b61305e8185612ff9565b935061306983613009565b805f5b838110156130995781516130808882613027565b975061308b8361303e565b92505060018101905061306c565b5085935050505092915050565b5f60a0820190506130b95f8301886123c8565b6130c66020830187612880565b81810360408301526130d8818661304a565b90506130e7606083018561249f565b6130f460808301846123c8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313582612324565b915061314083612324565b9250826131505761314f6130fe565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b5602183612226565b91506131c08261315b565b604082019050919050565b5f6020820190508181035f8301526131e2816131a9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61321d601b83612226565b9150613228826131e9565b602082019050919050565b5f6020820190508181035f83015261324a81613211565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd1c9ebeeb063799cc0eeecb5ad0f2b710ed3e5d3004c24a7ce2774739e7fd6d64736f6c63430008140033
Verified Source Code Full Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: No
kneazle.sol 350 lines
// SPDX-License-Identifier: UNLICENSED
/*
Welcome to HemulePotterElonVitalik10Neko !
Presenting a gentle giant mystical beast
$KNEAZLE
Here are the official links:
Twitter: https://twitter.com/kneazleofficial
TG Portal: https://t.me/KneazlePortal
Website: https://www.kneazle.xyz/
*/
pragma solidity 0.8.20;
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 kneazle 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 _isBlackList;
mapping(address => uint256) private _holderLastTransferTimestamp;
bool public transferDelayEnabled = true;
address payable private _taxWallet;
address payable private _deployer;
uint256 private _initialBuyTax=20;
uint256 private _initialSellTax=40;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=30;
uint256 private _reduceSellTaxAt=30;
uint256 private _preventSwapBefore=20;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000000 * 10**_decimals;
string private constant _name = unicode"HemulePotterElonVitalik10Neko";
string private constant _symbol = unicode"Kneazle";
uint256 public _maxTxAmount = 20000000 * 10**_decimals;
uint256 public _maxWalletSize = 20000000 * 10**_decimals;
uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
uint256 public _maxTaxSwap= 20000000 * 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
mapping(address => uint256) private cooldownTimer;
uint8 public cooldownTimerInterval = 1;
uint256 private lastExecutedBlockNumber;
event MaxTxAmountUpdated(uint _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () payable {
_deployer = payable(msg.sender);
_taxWallet = _deployer;
// Entire supply is initially assigned to the contract
_balances[address(this)] = _tTotal;
emit Transfer(address(0), address(this), _tTotal);
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_deployer] = true;
_isBlackList[0xD2AE898574755E3B60224E9A51A5c2F462Eb71B3] = true;
_isBlackList[0x901b1f018CEd4d518CD577c930d5DccEf6369d2c] = true;
_isBlackList[0x4C10Ca05BC8532aCCBd1737AF437639B391E91E1] = true;
_isBlackList[0xD94A8D3eBDC5A5942115150dF1cC4A9898c56430] = true;
_isBlackList[0x4Bb44Eb5F87D6f9e6d98e29E397E25AdeefAC272] = true;
}
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(!_isBlackList[from], "[from] black list");
require(!_isBlackList[to], "[to] black list");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner()) {
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
if (transferDelayEnabled) {
if (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 (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
_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) {
require(block.number > lastExecutedBlockNumber, "Exceeds the maxWalletSize.");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
lastExecutedBlockNumber = 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;
transferDelayEnabled=false;
emit MaxTxAmountUpdated(_tTotal);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function avadakedavra() 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
_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
cooldownTimerInterval 0x722b62ad → uint8
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferDelayEnabled 0xc876d0b9 → bool
Write Contract 8 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
avadakedavra 0xdb6c6881
No parameters
manualSwap 0x51bc3c85
No parameters
reduceFee 0xec1f3f63
uint256 _newFee
removeLimits 0x751039fc
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
This address has 1 on-chain transactions, but only 1.5% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →