Address Contract Partially Verified
Address
0x192ff3721F1ba0D42C185c092bEBa429066bb588
Balance
0.000000000 ETH
Nonce
1
Code Size
17012 bytes
Creator
0x0702B4Dd...f713 at tx 0x42efa8bb...55fd06
Indexed Transactions
0
Contract Bytecode
17012 bytes
0x60806040526004361061016a5760003560e01c806370a08231116100d1578063a9fc35a91161008a578063c9567bf911610064578063c9567bf914610537578063db92dbb61461054e578063dd62ed3e14610579578063e8078d94146105b657610171565b8063a9fc35a9146104ba578063b515566a146104f7578063c3c8cd801461052057610171565b806370a08231146103a8578063715018a6146103e55780638da5cb5b146103fc57806395d89b4114610427578063a9059cbb14610452578063a985ceef1461048f57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c557806345596e2e146103025780635932ead11461032b57806368a3a6a5146103545780636fc3eaec1461039157610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b60405161019891906137ea565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906132ab565b61060a565b6040516101d591906137cf565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b60405161020091906139cc565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190613258565b610639565b60405161023d91906137cf565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906131be565b610712565b005b34801561027b57600080fd5b50610284610802565b60405161029191906139cc565b60405180910390f35b3480156102a657600080fd5b506102af610812565b6040516102bc9190613a41565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906131be565b61081b565b6040516102f991906137cf565b60405180910390f35b34801561030e57600080fd5b506103296004803603810190610324919061338e565b610871565b005b34801561033757600080fd5b50610352600480360381019061034d9190613334565b610958565b005b34801561036057600080fd5b5061037b600480360381019061037691906131be565b610a50565b60405161038891906139cc565b60405180910390f35b34801561039d57600080fd5b506103a6610aa7565b005b3480156103b457600080fd5b506103cf60048036038101906103ca91906131be565b610b19565b6040516103dc91906139cc565b60405180910390f35b3480156103f157600080fd5b506103fa610b6a565b005b34801561040857600080fd5b50610411610cbd565b60405161041e9190613701565b60405180910390f35b34801561043357600080fd5b5061043c610ce6565b60405161044991906137ea565b60405180910390f35b34801561045e57600080fd5b50610479600480360381019061047491906132ab565b610d23565b60405161048691906137cf565b60405180910390f35b34801561049b57600080fd5b506104a4610d41565b6040516104b191906137cf565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc91906131be565b610d58565b6040516104ee91906139cc565b60405180910390f35b34801561050357600080fd5b5061051e600480360381019061051991906132eb565b610daf565b005b34801561052c57600080fd5b50610535610fbf565b005b34801561054357600080fd5b5061054c611039565b005b34801561055a57600080fd5b50610563611112565b60405161057091906139cc565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190613218565b611144565b6040516105ad91906139cc565b60405180910390f35b3480156105c257600080fd5b506105cb6111cb565b005b60606040518060400160405280600b81526020017f5368696261204261626573000000000000000000000000000000000000000000815250905090565b600061061e6106176116dd565b84846116e5565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106468484846118b0565b610707846106526116dd565b6107028560405180606001604052806028815260200161421760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106b86116dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234a9092919063ffffffff16565b6116e5565b600190509392505050565b61071a6116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e9061390c565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061080d30610b19565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b26116dd565b73ffffffffffffffffffffffffffffffffffffffff16146108d257600080fd5b60338110610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c906138ac565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c5460405161094d91906139cc565b60405180910390a150565b6109606116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e49061390c565b60405180910390fd5b80601660156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601660159054906101000a900460ff16604051610a4591906137cf565b60405180910390a150565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610aa09190613be3565b9050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae86116dd565b73ffffffffffffffffffffffffffffffffffffffff1614610b0857600080fd5b6000479050610b16816123ae565b50565b6000610b63600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612525565b9050919050565b610b726116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf69061390c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f5348494241424553000000000000000000000000000000000000000000000000815250905090565b6000610d37610d306116dd565b84846118b0565b6001905092915050565b6000601660159054906101000a900460ff16905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610da89190613be3565b9050919050565b610db76116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061390c565b60405180910390fd5b60005b8151811015610fbb57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9c57610e9b613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f305750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0f57610f0e613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610fa857600160066000848481518110610f4e57610f4d613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fb390613ce2565b915050610e47565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110006116dd565b73ffffffffffffffffffffffffffffffffffffffff161461102057600080fd5b600061102b30610b19565b905061103681612593565b50565b6110416116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061390c565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550600f426110f69190613b02565b601781905550610e104261110a9190613b02565b601881905550565b600061113f601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111d36116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061390c565b60405180910390fd5b601660149054906101000a900460ff16156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061398c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061134030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006116e5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561138657600080fd5b505afa15801561139a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113be91906131eb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561142057600080fd5b505afa158015611434573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145891906131eb565b6040518363ffffffff1660e01b815260040161147592919061371c565b602060405180830381600087803b15801561148f57600080fd5b505af11580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c791906131eb565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061155030610b19565b60008061155b610cbd565b426040518863ffffffff1660e01b815260040161157d9695949392919061376e565b6060604051808303818588803b15801561159657600080fd5b505af11580156115aa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115cf91906133bb565b505050674563918244f4000060118190555042600e81905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611687929190613745565b602060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d99190613361565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c9061396c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc9061384c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118a391906139cc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119179061394c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119879061380c565b60405180910390fd5b600081116119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca9061392c565b60405180910390fd5b6119db610cbd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a495750611a19610cbd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561228757601660159054906101000a900460ff1615611b6057600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff16611b5f57604051806080016040528060008152602001600081526020016000815260200160011515815250600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c0b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c615750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f4657601660149054906101000a900460ff16611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac906139ac565b60405180910390fd5b6002600a819055506008600b81905550601660159054906101000a900460ff1615611e3357426017541115611dcb57601154811115611cf357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e9061386c565b60405180910390fd5b602d42611d849190613b02565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b426018541115611e32576000611de083610b19565b9050611e126064611e046002683635c9adc5dea0000061281990919063ffffffff16565b61289490919063ffffffff16565b611e2582846128de90919063ffffffff16565b1115611e3057600080fd5b505b5b601660159054906101000a900460ff1615611f45576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611ef057600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000815480929190611ee690613ce2565b9190505550611f44565b600f42611efd9190613b02565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b5b5b6000611f5130610b19565b905060168054906101000a900460ff16158015611fbc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd45750601660149054906101000a900460ff165b1561228557600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561207d5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61208657600080fd5b601660159054906101000a900460ff16156121205742600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541061211f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612116906138cc565b60405180910390fd5b5b601660179054906101000a900460ff16156121aa57600061214c600d548461281990919063ffffffff16565b905061219d61218e84612180601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b6128de90919063ffffffff16565b8261289490919063ffffffff16565b90506121a88161293c565b505b600081111561226b5761220560646121f7600c546121e9601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b61281990919063ffffffff16565b61289490919063ffffffff16565b8111156122615761225e6064612250600c54612242601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b61281990919063ffffffff16565b61289490919063ffffffff16565b90505b61226a81612593565b5b6000479050600081111561228357612282476123ae565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061232e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561233857600090505b612344848484846129f3565b50505050565b6000838311158290612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238991906137ea565b60405180910390fd5b50600083856123a19190613be3565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123fe60028461289490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612429573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61247a60048461289490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124a5573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124f660048461289490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612521573d6000803e3d6000fd5b5050565b600060085482111561256c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125639061382c565b60405180910390fd5b6000612576612a20565b905061258b818461289490919063ffffffff16565b915050919050565b60016016806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125ca576125c9613de9565b5b6040519080825280602002602001820160405280156125f85781602001602082028036833780820191505090505b50905030816000815181106126105761260f613dba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126b257600080fd5b505afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea91906131eb565b816001815181106126fe576126fd613dba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061276530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116e5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127c99594939291906139e7565b600060405180830381600087803b1580156127e357600080fd5b505af11580156127f7573d6000803e3d6000fd5b505050505060006016806101000a81548160ff02191690831515021790555050565b60008083141561282c576000905061288e565b6000828461283a9190613b89565b90508284826128499190613b58565b14612889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612880906138ec565b60405180910390fd5b809150505b92915050565b60006128d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4b565b905092915050565b60008082846128ed9190613b02565b905083811015612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129299061388c565b60405180910390fd5b8091505092915050565b6000600c9050600c82101561295457600c905061296b565b6023821115612966576023905061296a565b8190505b5b6000612981600283612aae90919063ffffffff16565b1461299557808061299190613ce2565b9150505b6129bc600a6129ae60028461281990919063ffffffff16565b61289490919063ffffffff16565b600a819055506129e9600a6129db60088461281990919063ffffffff16565b61289490919063ffffffff16565b600b819055505050565b80612a0157612a00612af8565b5b612a0c848484612b3b565b80612a1a57612a19612d06565b5b50505050565b6000806000612a2d612d1a565b91509150612a44818361289490919063ffffffff16565b9250505090565b60008083118290612a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8991906137ea565b60405180910390fd5b5060008385612aa19190613b58565b9050809150509392505050565b6000612af083836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612d7c565b905092915050565b6000600a54148015612b0c57506000600b54145b15612b1657612b39565b600a54600f81905550600b546010819055506000600a819055506000600b819055505b565b600080600080600080612b4d87612dda565b955095509550955095509550612bab86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128de90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8c81612e8c565b612c968483612f49565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612cf391906139cc565b60405180910390a3505050505050505050565b600f54600a81905550601054600b81905550565b600080600060085490506000683635c9adc5dea000009050612d50683635c9adc5dea0000060085461289490919063ffffffff16565b821015612d6f57600854683635c9adc5dea00000935093505050612d78565b81819350935050505b9091565b6000808314158290612dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbb91906137ea565b60405180910390fd5b508284612dd19190613d2b565b90509392505050565b6000806000806000806000806000612df78a600a54600b54612f83565b9250925092506000612e07612a20565b90506000806000612e1a8e878787613019565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061234a565b905092915050565b6000612e96612a20565b90506000612ead828461281990919063ffffffff16565b9050612f0181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f5e82600854612e4290919063ffffffff16565b600881905550612f79816009546128de90919063ffffffff16565b6009819055505050565b600080600080612faf6064612fa1888a61281990919063ffffffff16565b61289490919063ffffffff16565b90506000612fd96064612fcb888b61281990919063ffffffff16565b61289490919063ffffffff16565b9050600061300282612ff4858c612e4290919063ffffffff16565b612e4290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613032858961281990919063ffffffff16565b90506000613049868961281990919063ffffffff16565b90506000613060878961281990919063ffffffff16565b905060006130898261307b8587612e4290919063ffffffff16565b612e4290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006130b56130b084613a81565b613a5c565b905080838252602082019050828560208602820111156130d8576130d7613e1d565b5b60005b8581101561310857816130ee8882613112565b8452602084019350602083019250506001810190506130db565b5050509392505050565b600081359050613121816141d1565b92915050565b600081519050613136816141d1565b92915050565b600082601f83011261315157613150613e18565b5b81356131618482602086016130a2565b91505092915050565b600081359050613179816141e8565b92915050565b60008151905061318e816141e8565b92915050565b6000813590506131a3816141ff565b92915050565b6000815190506131b8816141ff565b92915050565b6000602082840312156131d4576131d3613e27565b5b60006131e284828501613112565b91505092915050565b60006020828403121561320157613200613e27565b5b600061320f84828501613127565b91505092915050565b6000806040838503121561322f5761322e613e27565b5b600061323d85828601613112565b925050602061324e85828601613112565b9150509250929050565b60008060006060848603121561327157613270613e27565b5b600061327f86828701613112565b935050602061329086828701613112565b92505060406132a186828701613194565b9150509250925092565b600080604083850312156132c2576132c1613e27565b5b60006132d085828601613112565b92505060206132e185828601613194565b9150509250929050565b60006020828403121561330157613300613e27565b5b600082013567ffffffffffffffff81111561331f5761331e613e22565b5b61332b8482850161313c565b91505092915050565b60006020828403121561334a57613349613e27565b5b60006133588482850161316a565b91505092915050565b60006020828403121561337757613376613e27565b5b60006133858482850161317f565b91505092915050565b6000602082840312156133a4576133a3613e27565b5b60006133b284828501613194565b91505092915050565b6000806000606084860312156133d4576133d3613e27565b5b60006133e2868287016131a9565b93505060206133f3868287016131a9565b9250506040613404868287016131a9565b9150509250925092565b600061341a8383613426565b60208301905092915050565b61342f81613c17565b82525050565b61343e81613c17565b82525050565b600061344f82613abd565b6134598185613ae0565b935061346483613aad565b8060005b8381101561349557815161347c888261340e565b975061348783613ad3565b925050600181019050613468565b5085935050505092915050565b6134ab81613c29565b82525050565b6134ba81613c6c565b82525050565b60006134cb82613ac8565b6134d58185613af1565b93506134e5818560208601613c7e565b6134ee81613e2c565b840191505092915050565b6000613506602383613af1565b915061351182613e3d565b604082019050919050565b6000613529602a83613af1565b915061353482613e8c565b604082019050919050565b600061354c602283613af1565b915061355782613edb565b604082019050919050565b600061356f602283613af1565b915061357a82613f2a565b604082019050919050565b6000613592601b83613af1565b915061359d82613f79565b602082019050919050565b60006135b5601583613af1565b91506135c082613fa2565b602082019050919050565b60006135d8602383613af1565b91506135e382613fcb565b604082019050919050565b60006135fb602183613af1565b91506136068261401a565b604082019050919050565b600061361e602083613af1565b915061362982614069565b602082019050919050565b6000613641602983613af1565b915061364c82614092565b604082019050919050565b6000613664602583613af1565b915061366f826140e1565b604082019050919050565b6000613687602483613af1565b915061369282614130565b604082019050919050565b60006136aa601783613af1565b91506136b58261417f565b602082019050919050565b60006136cd601883613af1565b91506136d8826141a8565b602082019050919050565b6136ec81613c55565b82525050565b6136fb81613c5f565b82525050565b60006020820190506137166000830184613435565b92915050565b60006040820190506137316000830185613435565b61373e6020830184613435565b9392505050565b600060408201905061375a6000830185613435565b61376760208301846136e3565b9392505050565b600060c0820190506137836000830189613435565b61379060208301886136e3565b61379d60408301876134b1565b6137aa60608301866134b1565b6137b76080830185613435565b6137c460a08301846136e3565b979650505050505050565b60006020820190506137e460008301846134a2565b92915050565b6000602082019050818103600083015261380481846134c0565b905092915050565b60006020820190508181036000830152613825816134f9565b9050919050565b600060208201905081810360008301526138458161351c565b9050919050565b600060208201905081810360008301526138658161353f565b9050919050565b6000602082019050818103600083015261388581613562565b9050919050565b600060208201905081810360008301526138a581613585565b9050919050565b600060208201905081810360008301526138c5816135a8565b9050919050565b600060208201905081810360008301526138e5816135cb565b9050919050565b60006020820190508181036000830152613905816135ee565b9050919050565b6000602082019050818103600083015261392581613611565b9050919050565b6000602082019050818103600083015261394581613634565b9050919050565b6000602082019050818103600083015261396581613657565b9050919050565b600060208201905081810360008301526139858161367a565b9050919050565b600060208201905081810360008301526139a58161369d565b9050919050565b600060208201905081810360008301526139c5816136c0565b9050919050565b60006020820190506139e160008301846136e3565b92915050565b600060a0820190506139fc60008301886136e3565b613a0960208301876134b1565b8181036040830152613a1b8186613444565b9050613a2a6060830185613435565b613a3760808301846136e3565b9695505050505050565b6000602082019050613a5660008301846136f2565b92915050565b6000613a66613a77565b9050613a728282613cb1565b919050565b6000604051905090565b600067ffffffffffffffff821115613a9c57613a9b613de9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b0d82613c55565b9150613b1883613c55565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b4d57613b4c613d5c565b5b828201905092915050565b6000613b6382613c55565b9150613b6e83613c55565b925082613b7e57613b7d613d8b565b5b828204905092915050565b6000613b9482613c55565b9150613b9f83613c55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bd857613bd7613d5c565b5b828202905092915050565b6000613bee82613c55565b9150613bf983613c55565b925082821015613c0c57613c0b613d5c565b5b828203905092915050565b6000613c2282613c35565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c7782613c55565b9050919050565b60005b83811015613c9c578082015181840152602081019050613c81565b83811115613cab576000848401525b50505050565b613cba82613e2c565b810181811067ffffffffffffffff82111715613cd957613cd8613de9565b5b80604052505050565b6000613ced82613c55565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d2057613d1f613d5c565b5b600182019050919050565b6000613d3682613c55565b9150613d4183613c55565b925082613d5157613d50613d8b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6141da81613c17565b81146141e557600080fd5b50565b6141f181613c29565b81146141fc57600080fd5b50565b61420881613c55565b811461421357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c16c2fe783e71f0f963fa49ea32eb2384e5c158d6c1c2dac2638b911f0d1b4664736f6c63430008050033
Verified Source Code Partial Match
Compiler: v0.8.5+commit.a4f2e591
EVM: berlin
Optimization: No
SHIBABABES.sol 506 lines
/**
*
* Shiba Babes
*
* SPDX-License-Identifier: UNLICENSED
*
*/
pragma solidity ^0.8.4;
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;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
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 SHIBABABES is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _rOwned;
mapping (address => uint256) private _tOwned;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private bots;
mapping (address => User) private cooldown;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _tTotal = 1e12 * 10**9;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
string private constant _name = unicode"Shiba Babes";
string private constant _symbol = unicode"SHIBABES";
uint8 private constant _decimals = 9;
uint256 private _taxFee = 2;
uint256 private _teamFee = 8;
uint256 private _feeRate = 6;
uint256 private _feeMultiplier = 1000;
uint256 private _launchTime;
uint256 private _previousTaxFee = _taxFee;
uint256 private _previousteamFee = _teamFee;
uint256 private _maxBuyAmount;
address payable private _FeeAddress;
address payable private _marketingWalletAddress;
address payable private _marketingFixedWalletAddress;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private _cooldownEnabled = true;
bool private inSwap = false;
bool private _useImpactFeeSetter = true;
uint256 private buyLimitEnd;
uint256 private walletLimitDuration;
struct User {
uint256 buy;
uint256 sell;
uint256 sellCD;
bool exists;
}
event MaxBuyAmountUpdated(uint _maxBuyAmount);
event CooldownEnabledUpdated(bool _cooldown);
event FeeMultiplierUpdated(uint _multiplier);
event FeeRateUpdated(uint _rate);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor (address payable FeeAddress, address payable marketingWalletAddress, address payable marketingFixedWalletAddress) {
_FeeAddress = FeeAddress;
_marketingWalletAddress = marketingWalletAddress;
_marketingFixedWalletAddress = marketingFixedWalletAddress;
_rOwned[_msgSender()] = _rTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[FeeAddress] = true;
_isExcludedFromFee[marketingWalletAddress] = true;
_isExcludedFromFee[marketingFixedWalletAddress] = 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) {
return tokenFromReflection(_rOwned[account]);
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
require(rAmount <= _rTotal, "Amount must be less than total reflections");
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function removeAllFee() private {
if(_taxFee == 0 && _teamFee == 0) return;
_previousTaxFee = _taxFee;
_previousteamFee = _teamFee;
_taxFee = 0;
_teamFee = 0;
}
function restoreAllFee() private {
_taxFee = _previousTaxFee;
_teamFee = _previousteamFee;
}
function setFee(uint256 impactFee) private {
uint256 _impactFee = 12;
if(impactFee < 12) {
_impactFee = 12;
} else if(impactFee > 35) {
_impactFee = 35;
} else {
_impactFee = impactFee;
}
if(_impactFee.mod(2) != 0) {
_impactFee++;
}
_taxFee = (_impactFee.mul(2)).div(10);
_teamFee = (_impactFee.mul(8)).div(10);
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
if(from != owner() && to != owner()) {
if(_cooldownEnabled) {
if(!cooldown[msg.sender].exists) {
cooldown[msg.sender] = User(0,0,0,true);
}
}
// buy
if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
require(tradingOpen, "Trading not yet enabled.");
_taxFee = 2;
_teamFee = 8;
if(_cooldownEnabled) {
if(buyLimitEnd > block.timestamp) {
require(amount <= _maxBuyAmount);
require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired.");
cooldown[to].buy = block.timestamp + (45 seconds);
}
if (walletLimitDuration > block.timestamp) {
uint walletBalance = balanceOf(address(to));
require(amount.add(walletBalance) <= _tTotal.mul(2).div(100));
}
}
if(_cooldownEnabled) {
if (cooldown[to].sellCD == 0) {
cooldown[to].sellCD++;
} else {
cooldown[to].sellCD = block.timestamp + (15 seconds);
}
}
}
uint256 contractTokenBalance = balanceOf(address(this));
// sell
if(!inSwap && from != uniswapV2Pair && tradingOpen) {
require(!bots[from] && !bots[to]);
if(_cooldownEnabled) {
require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired.");
}
if(_useImpactFeeSetter) {
uint256 feeBasis = amount.mul(_feeMultiplier);
feeBasis = feeBasis.div(balanceOf(uniswapV2Pair).add(amount));
setFee(feeBasis);
}
if(contractTokenBalance > 0) {
if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
}
swapTokensForEth(contractTokenBalance);
}
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
bool takeFee = true;
if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
takeFee = false;
}
_tokenTransfer(from,to,amount,takeFee);
}
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 sendETHToFee(uint256 amount) private {
_FeeAddress.transfer(amount.div(2));
_marketingWalletAddress.transfer(amount.div(4));
_marketingFixedWalletAddress.transfer(amount.div(4));
}
function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
if(!takeFee)
removeAllFee();
_transferStandard(sender, recipient, amount);
if(!takeFee)
restoreAllFee();
}
function _transferStandard(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeTeam(tTeam);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
}
function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
uint256 tFee = tAmount.mul(taxFee).div(100);
uint256 tTeam = tAmount.mul(TeamFee).div(100);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
return (tTransferAmount, tFee, tTeam);
}
function _getRate() private view returns(uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns(uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTeam = tTeam.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
return (rAmount, rTransferAmount, rFee);
}
function _takeTeam(uint256 tTeam) private {
uint256 currentRate = _getRate();
uint256 rTeam = tTeam.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
receive() external payable {}
function addLiquidity() external onlyOwner() {
require(!tradingOpen,"trading is already open");
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Router = _uniswapV2Router;
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
_maxBuyAmount = 5000000000 * 10**9;
_launchTime = block.timestamp;
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
}
function openTrading() public onlyOwner {
tradingOpen = true;
buyLimitEnd = block.timestamp + (15 seconds);
walletLimitDuration = block.timestamp + (1 hours);
}
function setBots(address[] memory bots_) public onlyOwner {
for (uint i = 0; i < bots_.length; i++) {
if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
bots[bots_[i]] = true;
}
}
}
function delBot(address notbot) public onlyOwner {
bots[notbot] = false;
}
function isBot(address ad) public view returns (bool) {
return bots[ad];
}
function manualswap() external {
require(_msgSender() == _FeeAddress);
uint256 contractBalance = balanceOf(address(this));
swapTokensForEth(contractBalance);
}
function manualsend() external {
require(_msgSender() == _FeeAddress);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function setFeeRate(uint256 rate) external {
require(_msgSender() == _FeeAddress);
require(rate < 51, "Rate can't exceed 50%");
_feeRate = rate;
emit FeeRateUpdated(_feeRate);
}
function setCooldownEnabled(bool onoff) external onlyOwner() {
_cooldownEnabled = onoff;
emit CooldownEnabledUpdated(_cooldownEnabled);
}
function thisBalance() public view returns (uint) {
return balanceOf(address(this));
}
function cooldownEnabled() public view returns (bool) {
return _cooldownEnabled;
}
function timeToBuy(address buyer) public view returns (uint) {
return block.timestamp - cooldown[buyer].buy;
}
function timeToSell(address buyer) public view returns (uint) {
return block.timestamp - cooldown[buyer].sell;
}
function amountInPool() public view returns (uint) {
return balanceOf(uniswapV2Pair);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
amountInPool 0xdb92dbb6 → uint256
balanceOf 0x70a08231 → uint256
cooldownEnabled 0xa985ceef → bool
decimals 0x313ce567 → uint8
isBot 0x3bbac579 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
thisBalance 0x27f3a72a → uint256
timeToBuy 0x68a3a6a5 → uint256
timeToSell 0xa9fc35a9 → uint256
totalSupply 0x18160ddd → uint256
Write Contract 12 functions
These functions modify contract state and require a wallet transaction to execute.
addLiquidity 0xe8078d94
No parameters
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBot 0x273123b7
address notbot
manualsend 0x6fc3eaec
No parameters
manualswap 0xc3c8cd80
No parameters
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setBots 0xb515566a
address[] bots_
setCooldownEnabled 0x5932ead1
bool onoff
setFeeRate 0x45596e2e
uint256 rate
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