Address Contract Verified
Address
0x55EE5E71b46D9B0Bf4010C97d57526C01aA7d5CE
Balance
0.028351 ETH ($56.23)
Nonce
1
Code Size
12545 bytes
Creator
0x6231DDB7...fb05 at tx 0x31dea872...e4b385
Indexed Transactions
0 (1 on-chain, 0% indexed)
Contract Bytecode
12545 bytes
0x6080604052600436106101c65760003560e01c806370a08231116100f7578063a8aa1b3111610095578063e01bb68811610064578063e01bb6881461064f578063e96fada214610678578063f1d5f517146106a3578063f887ea40146106cc576101cd565b8063a8aa1b3114610581578063a9059cbb146105ac578063d05b5a00146105e9578063dd62ed3e14610612576101cd565b8063893d20e8116100d1578063893d20e8146104eb57806395d89b4114610516578063960bfe0414610541578063a890d2e81461056a576101cd565b806370a082311461046e578063715018a6146104ab5780637e26d19f146104c2576101cd565b80632f54bf6e116101645780633bbac5791161013e5780633bbac5791461039e578063571ac8b0146103db5780636c0a24eb146104185780636ddd171314610443576101cd565b80632f54bf6e1461031f578063313ce5671461035c578063364333f414610387576101cd565b80630b78f9c0116101a05780630b78f9c014610265578063144eef071461028e57806318160ddd146102b757806323b872dd146102e2576101cd565b80630445b667146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f7565b6040516101f491906122a5565b60405180910390f35b34801561020957600080fd5b506102126106fd565b60405161021f9190612359565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612419565b61073a565b60405161025c9190612474565b60405180910390f35b34801561027157600080fd5b5061028c6004803603810190610287919061248f565b61082c565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612643565b6108e2565b005b3480156102c357600080fd5b506102cc6109bf565b6040516102d991906122a5565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061269f565b6109c9565b6040516103169190612474565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906126f2565b610bc9565b6040516103539190612474565b60405180910390f35b34801561036857600080fd5b50610371610c22565b60405161037e919061273b565b60405180910390f35b34801561039357600080fd5b5061039c610c2b565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906126f2565b610c96565b6040516103d29190612474565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd91906126f2565b610cb6565b60405161040f9190612474565b60405180910390f35b34801561042457600080fd5b5061042d610ce9565b60405161043a91906122a5565b60405180910390f35b34801561044f57600080fd5b50610458610cef565b6040516104659190612474565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906126f2565b610d02565b6040516104a291906122a5565b60405180910390f35b3480156104b757600080fd5b506104c0610d4b565b005b3480156104ce57600080fd5b506104e960048036038101906104e49190612756565b610e0e565b005b3480156104f757600080fd5b50610500610e73565b60405161050d9190612792565b60405180910390f35b34801561052257600080fd5b5061052b610e9c565b6040516105389190612359565b60405180910390f35b34801561054d57600080fd5b50610568600480360381019061056391906127ad565b610ed9565b005b34801561057657600080fd5b5061057f610f2b565b005b34801561058d57600080fd5b50610596610f68565b6040516105a39190612792565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190612419565b610f8e565b6040516105e09190612474565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b91906127da565b610fa3565b005b34801561061e57600080fd5b506106396004803603810190610634919061281a565b611046565b60405161064691906122a5565b60405180910390f35b34801561065b57600080fd5b50610676600480360381019061067191906126f2565b6110cd565b005b34801561068457600080fd5b5061068d611159565b60405161069a9190612792565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c591906127ad565b61117f565b005b3480156106d857600080fd5b506106e16111ea565b6040516106ee91906128b9565b60405180910390f35b60115481565b60606040518060400160405280600681526020017f5368696241490000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161081a91906122a5565b60405180910390a36001905092915050565b61083533610bc9565b610874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086b90612920565b60405180910390fd5b81600b8190555080600a81905550600b54600a54610892919061296f565b600c81905550601e600c5411156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590612a11565b60405180910390fd5b5050565b6108eb33610bc9565b61092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612920565b60405180910390fd5b60005b82518110156109ba57816009600085848151811061094e5761094d612a31565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109b290612a60565b91505061092d565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bb557610b34826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bc0848484611274565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c93573d6000803e3d6000fd5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610ce2827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61073a565b9050919050565b60045481565b601060149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5433610bc9565b610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90612920565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610e049190612792565b60405180910390a1565b610e1733610bc9565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90612920565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b610ee233610bc9565b610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890612920565b60405180910390fd5b8060118190555050565b674563918244f40000471015610f4057600080fd5b6000600b819055506000600a81905550600b54600a54610f60919061296f565b600c81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f9b338484611274565b905092915050565b610fac33610bc9565b610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290612920565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110d633610bc9565b611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612920565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61118833610bc9565b6111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612920565b60405180910390fd5b6064816003546111d79190612aa8565b6111e19190612b31565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f9190612359565b60405180910390fd5b50600083856112679190612b62565b9050809150509392505050565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90612be2565b60405180910390fd5b601260009054906101000a900460ff161561132a576113238484846116ca565b90506116c3565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113d65750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114bf57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061147f575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147c919061296f565b11155b6114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612c74565b60405180910390fd5b5b6114c761189d565b156114d5576114d4611974565b5b61155e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006115ac85611f22565b6115b657826115c1565b6115c08584611f79565b5b905061161581600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b591906122a5565b60405180910390a360019150505b9392505050565b6000611755826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ea82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188a91906122a5565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190a5750601260009054906101000a900460ff16155b80156119225750601060149054906101000a900460ff165b801561196f5750601154600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026011546119e29190612aa8565b81106119fa5760026011546119f79190612aa8565b90505b6000611a386002611a2a600c54611a1c600a548761211b90919063ffffffff16565b61219590919063ffffffff16565b61219590919063ffffffff16565b90506000611a4f82846121df90919063ffffffff16565b90506000600267ffffffffffffffff811115611a6e57611a6d6124d4565b5b604051908082528060200260200182016040528015611a9c5781602001602082028036833780820191505090505b5090503081600081518110611ab457611ab3612a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f9190612ca9565b81600181518110611b9357611b92612a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c36959493929190612dcf565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506000611c7d82476121df90919063ffffffff16565b90506000611cab611c9a6002600a5461219590919063ffffffff16565b600c546121df90919063ffffffff16565b90506000611ce96002611cdb84611ccd600a548861211b90919063ffffffff16565b61219590919063ffffffff16565b61219590919063ffffffff16565b90506000611d1483611d06600b548761211b90919063ffffffff16565b61219590919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611d6290612e5a565b600060405180830381858888f193505050503d8060008114611da0576040519150601f19603f3d011682016040523d82523d6000602084013e611da5565b606091505b5050905080611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de090612ebb565b60405180910390fd5b6000891115611efb57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611e7b96959493929190612edb565b60606040518083038185885af1158015611e99573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ebe9190612f51565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611ef2929190612fa4565b60405180910390a15b505050505050505050506000601260006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611fa5600d54611f97600c548661211b90919063ffffffff16565b61219590919063ffffffff16565b9050611ff981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209991906122a5565b60405180910390a36120b481846121df90919063ffffffff16565b91505092915050565b60008082846120cc919061296f565b905083811015612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210890613019565b60405180910390fd5b8091505092915050565b600080830361212d576000905061218f565b6000828461213b9190612aa8565b905082848261214a9190612b31565b1461218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612181906130ab565b60405180910390fd5b809150505b92915050565b60006121d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612229565b905092915050565b600061222183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611210565b905092915050565b60008083118290612270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122679190612359565b60405180910390fd5b506000838561227f9190612b31565b9050809150509392505050565b6000819050919050565b61229f8161228c565b82525050565b60006020820190506122ba6000830184612296565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122fa5780820151818401526020810190506122df565b83811115612309576000848401525b50505050565b6000601f19601f8301169050919050565b600061232b826122c0565b61233581856122cb565b93506123458185602086016122dc565b61234e8161230f565b840191505092915050565b600060208201905081810360008301526123738184612320565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123ba8261238f565b9050919050565b6123ca816123af565b81146123d557600080fd5b50565b6000813590506123e7816123c1565b92915050565b6123f68161228c565b811461240157600080fd5b50565b600081359050612413816123ed565b92915050565b600080604083850312156124305761242f612385565b5b600061243e858286016123d8565b925050602061244f85828601612404565b9150509250929050565b60008115159050919050565b61246e81612459565b82525050565b60006020820190506124896000830184612465565b92915050565b600080604083850312156124a6576124a5612385565b5b60006124b485828601612404565b92505060206124c585828601612404565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61250c8261230f565b810181811067ffffffffffffffff8211171561252b5761252a6124d4565b5b80604052505050565b600061253e61237b565b905061254a8282612503565b919050565b600067ffffffffffffffff82111561256a576125696124d4565b5b602082029050602081019050919050565b600080fd5b600061259361258e8461254f565b612534565b905080838252602082019050602084028301858111156125b6576125b561257b565b5b835b818110156125df57806125cb88826123d8565b8452602084019350506020810190506125b8565b5050509392505050565b600082601f8301126125fe576125fd6124cf565b5b813561260e848260208601612580565b91505092915050565b61262081612459565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000806040838503121561265a57612659612385565b5b600083013567ffffffffffffffff8111156126785761267761238a565b5b612684858286016125e9565b92505060206126958582860161262e565b9150509250929050565b6000806000606084860312156126b8576126b7612385565b5b60006126c6868287016123d8565b93505060206126d7868287016123d8565b92505060406126e886828701612404565b9150509250925092565b60006020828403121561270857612707612385565b5b6000612716848285016123d8565b91505092915050565b600060ff82169050919050565b6127358161271f565b82525050565b6000602082019050612750600083018461272c565b92915050565b60006020828403121561276c5761276b612385565b5b600061277a8482850161262e565b91505092915050565b61278c816123af565b82525050565b60006020820190506127a76000830184612783565b92915050565b6000602082840312156127c3576127c2612385565b5b60006127d184828501612404565b91505092915050565b600080604083850312156127f1576127f0612385565b5b60006127ff858286016123d8565b92505060206128108582860161262e565b9150509250929050565b6000806040838503121561283157612830612385565b5b600061283f858286016123d8565b9250506020612850858286016123d8565b9150509250929050565b6000819050919050565b600061287f61287a6128758461238f565b61285a565b61238f565b9050919050565b600061289182612864565b9050919050565b60006128a382612886565b9050919050565b6128b381612898565b82525050565b60006020820190506128ce60008301846128aa565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061290a6006836122cb565b9150612915826128d4565b602082019050919050565b60006020820190508181036000830152612939816128fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061297a8261228c565b91506129858361228c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129ba576129b9612940565b5b828201905092915050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b60006129fb601d836122cb565b9150612a06826129c5565b602082019050919050565b60006020820190508181036000830152612a2a816129ee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a6b8261228c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a9d57612a9c612940565b5b600182019050919050565b6000612ab38261228c565b9150612abe8361228c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af757612af6612940565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b3c8261228c565b9150612b478361228c565b925082612b5757612b56612b02565b5b828204905092915050565b6000612b6d8261228c565b9150612b788361228c565b925082821015612b8b57612b8a612940565b5b828203905092915050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612bcc600b836122cb565b9150612bd782612b96565b602082019050919050565b60006020820190508181036000830152612bfb81612bbf565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612c5e6025836122cb565b9150612c6982612c02565b604082019050919050565b60006020820190508181036000830152612c8d81612c51565b9050919050565b600081519050612ca3816123c1565b92915050565b600060208284031215612cbf57612cbe612385565b5b6000612ccd84828501612c94565b91505092915050565b6000819050919050565b6000612cfb612cf6612cf184612cd6565b61285a565b61228c565b9050919050565b612d0b81612ce0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d46816123af565b82525050565b6000612d588383612d3d565b60208301905092915050565b6000602082019050919050565b6000612d7c82612d11565b612d868185612d1c565b9350612d9183612d2d565b8060005b83811015612dc2578151612da98882612d4c565b9750612db483612d64565b925050600181019050612d95565b5085935050505092915050565b600060a082019050612de46000830188612296565b612df16020830187612d02565b8181036040830152612e038186612d71565b9050612e126060830185612783565b612e1f6080830184612296565b9695505050505050565b600081905092915050565b50565b6000612e44600083612e29565b9150612e4f82612e34565b600082019050919050565b6000612e6582612e37565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612ea5601e836122cb565b9150612eb082612e6f565b602082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b600060c082019050612ef06000830189612783565b612efd6020830188612296565b612f0a6040830187612d02565b612f176060830186612d02565b612f246080830185612783565b612f3160a0830184612296565b979650505050505050565b600081519050612f4b816123ed565b92915050565b600080600060608486031215612f6a57612f69612385565b5b6000612f7886828701612f3c565b9350506020612f8986828701612f3c565b9250506040612f9a86828701612f3c565b9150509250925092565b6000604082019050612fb96000830185612296565b612fc66020830184612296565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613003601b836122cb565b915061300e82612fcd565b602082019050919050565b6000602082019050818103600083015261303281612ff6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130956021836122cb565b91506130a082613039565b604082019050919050565b600060208201905081810360008301526130c481613088565b905091905056fea2646970667358221220fc6af539cfc3cc2d3a6b5071f49ecad081ac49ef4bfa68f1dd35d90d9be29c7a64736f6c634300080f0033
Verified Source Code Full Match
Compiler: v0.8.15+commit.e14f2714
EVM: london
Optimization: No
ShibAI.sol 348 lines
/**
https://twitter.com/ShibAI_ERC
https://t.me/ShibAI_Safe
Website: saierc.tech
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
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;
}
}
interface ERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
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);
}
abstract contract Ownable {
address internal owner;
constructor(address _owner) {
owner = _owner;
}
modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER"); _;
}
function isOwner(address account) public view returns (bool) {
return account == owner;
}
function renounceOwnership() public onlyOwner {
owner = address(0);
emit OwnershipTransferred(address(0));
}
event OwnershipTransferred(address owner);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract ShibAI is ERC20, Ownable {
using SafeMath for uint256;
address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address DEAD = 0x000000000000000000000000000000000000dEaD;
string constant _name = "ShibAI";
string constant _symbol = unicode"SAI";
uint8 constant _decimals = 9;
uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
uint256 public _maxWalletAmount = _totalSupply;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) isFeeExempt;
mapping (address => bool) isTxLimitExempt;
mapping(address => bool) public isBot;
uint256 liquidityFee = 1;
uint256 marketingFee = 4;
uint256 totalFee = liquidityFee + marketingFee;
uint256 feeDenominator = 100;
address public marketingFeeReceiver = 0xC12B70cEcB2CF21fFae83DD1e5D1887bCBfbc336;
IDEXRouter public router;
address public pair;
bool public swapEnabled = true;
uint256 public swapThreshold = _totalSupply / 1000 * 5;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () Ownable(msg.sender) {
router = IDEXRouter(routerAdress);
pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
address _owner = owner;
isFeeExempt[_owner] = true;
isTxLimitExempt[_owner] = true;
isTxLimitExempt[DEAD] = true;
_balances[_owner] = _totalSupply;
emit Transfer(address(0), _owner, _totalSupply);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) { return owner; }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(!isBot[sender], "Bot Address");
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if (recipient != pair && recipient != DEAD) {
require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
}
if(shouldSwapBack()){ swapBack(); }
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}
function takeFee(address sender, uint256 amount) internal returns (uint256) {
uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != pair
&& !inSwap
&& swapEnabled
&& _balances[address(this)] >= swapThreshold;
}
function swapBack() internal swapping {
uint256 contractTokenBalance = _balances[address(this)];
if (contractTokenBalance >= swapThreshold*2)
contractTokenBalance = swapThreshold*2;
uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance.sub(balanceBefore);
uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
(bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
require(MarketingSuccess, "receiver rejected ETH transfer");
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
marketingFeeReceiver,
block.timestamp
);
emit AutoLiquify(amountETHLiquidity, amountToLiquify);
}
}
function buyTokens(uint256 amount, address to) internal swapping {
address[] memory path = new address[](2);
path[0] = router.WETH();
path[1] = address(this);
router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
0,
path,
to,
block.timestamp
);
}
function clearStuckBalance() external {
payable(marketingFeeReceiver).transfer(address(this).balance);
}
function setWalletLimit(uint256 amountPercent) external onlyOwner {
_maxWalletAmount = (_totalSupply * amountPercent ) / 100;
}
function swapStatus (bool status) external onlyOwner {
swapEnabled = status;
}
function isBots(address botAddress, bool status) external onlyOwner {
isBot[botAddress] = status;
}
function areBots(address[] memory bots_, bool status) public onlyOwner {
for (uint256 i = 0; i < bots_.length; i++) {
isBot[bots_[i]] = status;
}
}
function setFees(uint256 _MarketingFee, uint256 _liquidityFee) external onlyOwner {
marketingFee = _MarketingFee;
liquidityFee = _liquidityFee;
totalFee = liquidityFee + marketingFee;
require(totalFee <= 30, "Must keep fees at 10% or less");
}
function setThreshold(uint256 _treshold) external onlyOwner {
swapThreshold = _treshold;
}
function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
marketingFeeReceiver = _marketingFeeReceiver;
}
function Lifttax() external {
require (address(this).balance >= 5000000000000000000);
marketingFee = 0;
liquidityFee = 0;
totalFee = liquidityFee + marketingFee;
}
event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}
Read Contract
_maxWalletAmount 0x6c0a24eb → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getOwner 0x893d20e8 → address
isBot 0x3bbac579 → bool
isOwner 0x2f54bf6e → bool
marketingFeeReceiver 0xe96fada2 → address
name 0x06fdde03 → string
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 14 functions
These functions modify contract state and require a wallet transaction to execute.
Lifttax 0xa890d2e8
No parameters
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
areBots 0x144eef07
address[] bots_
bool status
clearStuckBalance 0x364333f4
No parameters
isBots 0xd05b5a00
address botAddress
bool status
renounceOwnership 0x715018a6
No parameters
setFeeReceivers 0xe01bb688
address _marketingFeeReceiver
setFees 0x0b78f9c0
uint256 _MarketingFee
uint256 _liquidityFee
setThreshold 0x960bfe04
uint256 _treshold
setWalletLimit 0xf1d5f517
uint256 amountPercent
swapStatus 0x7e26d19f
bool status
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 0% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →