Address Contract Partially Verified
Address
0x18e922F0095a1e592afDC73Cf83D2c175DF92b92
Balance
0.000000000 ETH
Nonce
1
Code Size
17495 bytes
Creator
0xd245595c...8329 at tx 0xd64ebbe5...0ab212
Indexed Transactions
0
Contract Bytecode
17495 bytes
0x6080604052600436106102cc575f3560e01c80636d351d1a1161017457806395d89b41116100db578063dd62ed3e11610094578063f47bd5311161006e578063f47bd53114610ac7578063f887ea4014610add578063fed0d2a114610b07578063ffb54a9914610b31576102d3565b8063dd62ed3e14610a39578063e96fada214610a75578063f2fde38b14610a9f576102d3565b806395d89b411461092f578063a4b45c0014610959578063a8aa1b3114610981578063a9059cbb146109ab578063bc5302c9146109e7578063dab84ee714610a0f576102d3565b80637a43e23f1161012d5780637a43e23f1461082557806383da8357146108615780638a8c523c1461088b5780638da5cb5b146108a15780639291e00a146108cb57806393028afd146108f3576102d3565b80636d351d1a146107415780636ddd17131461076b57806370a0823114610795578063715018a6146107d1578063753d02a1146107e7578063796431d0146107fd576102d3565b80633121c7c0116102335780634d709adf116101ec578063658d4b7f116101c6578063658d4b7f1461069d5780636827e764146106c55780636b67c4df146106ef5780636ce46bc314610719576102d3565b80634d709adf1461060d578063571ac8b0146106375780635921652f14610673576102d3565b80633121c7c014610501578063313ce5671461052b57806333f3d62814610555578063364333f4146105915780633eaaf86b146105a75780633f4218e0146105d1576102d3565b806318160ddd1161028557806318160ddd146103e15780631df4ccfc1461040b57806323b872dd146104355780632b112e49146104715780632c4e722e1461049b5780632f54bf6e146104c5576102d3565b8063014cd4a8146102d75780630445b667146102ff57806306fdde0314610329578063095ea7b3146103535780630a92570f1461038f5780630b78f9c0146103b9576102d3565b366102d357005b5f80fd5b3480156102e2575f80fd5b506102fd60048036038101906102f8919061328c565b610b5b565b005b34801561030a575f80fd5b50610313610bd4565b60405161032091906132c6565b60405180910390f35b348015610334575f80fd5b5061033d610bda565b60405161034a9190613369565b60405180910390f35b34801561035e575f80fd5b50610379600480360381019061037491906133e3565b610c13565b604051610386919061343b565b60405180910390f35b34801561039a575f80fd5b506103a3610d00565b6040516103b091906132c6565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da9190613454565b610d06565b005b3480156103ec575f80fd5b506103f5610db7565b60405161040291906132c6565b60405180910390f35b348015610416575f80fd5b5061041f610dc0565b60405161042c91906132c6565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190613492565b610dc6565b604051610468919061343b565b60405180910390f35b34801561047c575f80fd5b50610485610fb9565b60405161049291906132c6565b60405180910390f35b3480156104a6575f80fd5b506104af6110b6565b6040516104bc91906132c6565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e691906134e2565b6110bc565b6040516104f8919061343b565b60405180910390f35b34801561050c575f80fd5b50610515611113565b60405161052291906132c6565b60405180910390f35b348015610536575f80fd5b5061053f611119565b60405161054c9190613528565b60405180910390f35b348015610560575f80fd5b5061057b600480360381019061057691906133e3565b61111e565b604051610588919061343b565b60405180910390f35b34801561059c575f80fd5b506105a561128d565b005b3480156105b2575f80fd5b506105bb611398565b6040516105c891906132c6565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f291906134e2565b61139e565b604051610604919061343b565b60405180910390f35b348015610618575f80fd5b506106216113bb565b60405161062e919061359c565b60405180910390f35b348015610642575f80fd5b5061065d600480360381019061065891906134e2565b6113df565b60405161066a919061343b565b60405180910390f35b34801561067e575f80fd5b50610687611411565b60405161069491906132c6565b60405180910390f35b3480156106a8575f80fd5b506106c360048036038101906106be91906135df565b611417565b005b3480156106d0575f80fd5b506106d96114b7565b6040516106e691906132c6565b60405180910390f35b3480156106fa575f80fd5b506107036114bd565b60405161071091906132c6565b60405180910390f35b348015610724575f80fd5b5061073f600480360381019061073a919061361d565b6114c3565b005b34801561074c575f80fd5b506107556115f7565b60405161076291906132c6565b60405180910390f35b348015610776575f80fd5b5061077f611614565b60405161078c919061343b565b60405180910390f35b3480156107a0575f80fd5b506107bb60048036038101906107b691906134e2565b611627565b6040516107c891906132c6565b60405180910390f35b3480156107dc575f80fd5b506107e5611681565b005b3480156107f2575f80fd5b506107fb611760565b005b348015610808575f80fd5b50610823600480360381019061081e919061328c565b6117dd565b005b348015610830575f80fd5b5061084b600480360381019061084691906136a0565b61182f565b60405161085891906132c6565b60405180910390f35b34801561086c575f80fd5b50610875611b31565b60405161088291906136ed565b60405180910390f35b348015610896575f80fd5b5061089f611b56565b005b3480156108ac575f80fd5b506108b5611bbb565b6040516108c291906136ed565b60405180910390f35b3480156108d6575f80fd5b506108f160048036038101906108ec9190613706565b611bde565b005b3480156108fe575f80fd5b5061091960048036038101906109149190613731565b611c43565b60405161092691906132c6565b60405180910390f35b34801561093a575f80fd5b50610943611d8f565b6040516109509190613369565b60405180910390f35b348015610964575f80fd5b5061097f600480360381019061097a919061376f565b611dc8565b005b34801561098c575f80fd5b50610995611e94565b6040516109a291906136ed565b60405180910390f35b3480156109b6575f80fd5b506109d160048036038101906109cc91906133e3565b611eb8565b6040516109de919061343b565b60405180910390f35b3480156109f2575f80fd5b50610a0d6004803603810190610a0891906134e2565b611ecc565b005b348015610a1a575f80fd5b50610a23611f57565b604051610a3091906136ed565b60405180910390f35b348015610a44575f80fd5b50610a5f6004803603810190610a5a919061376f565b611f7c565b604051610a6c91906132c6565b60405180910390f35b348015610a80575f80fd5b50610a89611ffe565b604051610a9691906136ed565b60405180910390f35b348015610aaa575f80fd5b50610ac56004803603810190610ac091906137e8565b612023565b005b348015610ad2575f80fd5b50610adb6120e4565b005b348015610ae8575f80fd5b50610af1612396565b604051610afe9190613833565b60405180910390f35b348015610b12575f80fd5b50610b1b6123ba565b604051610b2891906132c6565b60405180910390f35b348015610b3c575f80fd5b50610b456123c0565b604051610b52919061343b565b60405180910390f35b610b64336110bc565b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90613896565b60405180910390fd5b600e546103e882600f54610bb791906138e1565b610bc1919061394f565b610bcb91906138e1565b60108190555050565b60105481565b6040518060400160405280601281526020017f466c69702074686520436869687561687561000000000000000000000000000081525081565b5f8160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cee91906132c6565b60405180910390a36001905092915050565b600d5481565b610d0f336110bc565b610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590613896565b60405180910390fd5b81600481905550806005819055508082610d68919061397f565b600681905550600a60065414610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906139fc565b60405180910390fd5b5050565b5f600f54905090565b60065481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610fa557610f28826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d39092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610fb0848484612435565b90509392505050565b5f6110b1600e546110a360015f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461109560015f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620186a06004600a6110569190613b49565b633b9aca0061106591906138e1565b5f196110719190613b93565b5f1961107d9190613bc3565b611087919061394f565b61281290919063ffffffff16565b61281290919063ffffffff16565b61285b90919063ffffffff16565b905090565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60085481565b600481565b5f611128336110bc565b611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90613896565b60405180910390fd5b5f82036111e9578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111a791906136ed565b602060405180830381865afa1580156111c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e69190613c0a565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611245929190613c35565b6020604051808303815f875af1158015611261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112859190613c70565b905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112ed57506112ec336110bc565b5b61132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613d0b565b60405180910390fd5b5f479050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611394573d5f803e3d5ffd5b5050565b600f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b7f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904781565b5f61140a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c13565b9050919050565b60095481565b611420336110bc565b61145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690613896565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60055481565b60045481565b6114cc336110bc565b61150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290613896565b60405180910390fd5b82600881905550816007819055508060098190555060c86008541115611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90613d73565b60405180910390fd5b60c860075411156115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390613ddb565b60405180910390fd5b60c860095411156115f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e990613e69565b60405180910390fd5b505050565b5f61160f600e5460105461285b90919063ffffffff16565b905090565b600b60159054906101000a900460ff1681565b5f61167a600e5460015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461285b90919063ffffffff16565b9050919050565b61168a336110bc565b6116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c090613896565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161175691906136ed565b60405180910390a1565b7f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156117c5575f80fd5b505af11580156117d7573d5f803e3d5ffd5b50505050565b6117e6336110bc565b611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90613896565b60405180910390fd5b8060108190555050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611890575061188f336110bc565b5b6118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690613d0b565b60405180910390fd5b600d5f8154809291906118e190613e87565b91905055505f83036118f357600d5492505b600b60169054906101000a900460ff1615611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613f18565b60405180910390fd5b5f820361198e57827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f5460405161197c91906132c6565b60405180910390a2600f549050611b2b565b5f8212156119bf576119b4826119a390613f36565b600f5461281290919063ffffffff16565b600f819055506119db565b6119d482600f546128a490919063ffffffff16565b600f819055505b5f196fffffffffffffffffffffffffffffffff16600f541115611a13575f196fffffffffffffffffffffffffffffffff16600f819055505b611a6a600f54620186a06004600a611a2b9190613b49565b633b9aca00611a3a91906138e1565b5f19611a469190613b93565b5f19611a529190613bc3565b611a5c919061394f565b61285b90919063ffffffff16565b600e819055507f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611ad5575f80fd5b505af1158015611ae7573d5f803e3d5ffd5b50505050827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f54604051611b1d91906132c6565b60405180910390a2600f5490505b92915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b5f336110bc565b611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9590613896565b60405180910390fd5b6001600b60146101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be7336110bc565b611c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1d90613896565b60405180910390fd5b80600b60156101000a81548160ff02191690831515021790555050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ca45750611ca3336110bc565b5b611ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cda90613d0b565b60405180910390fd5b8115611d5457611d4d5f611d487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611d3a87611d2c612710600f5461285b90919063ffffffff16565b61290190919063ffffffff16565b61297890919063ffffffff16565b61182f565b9050611d89565b611d865f611d8185611d73612710600f5461285b90919063ffffffff16565b61290190919063ffffffff16565b61182f565b90505b92915050565b6040518060400160405280600481526020017f466c69700000000000000000000000000000000000000000000000000000000081525081565b611dd1336110bc565b611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790613896565b60405180910390fd5b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b7f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904781565b5f611ec4338484612435565b905092915050565b611ed5336110bc565b611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b90613896565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61202c336110bc565b61206b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206290613896565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120d99190613f9c565b60405180910390a150565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121445750612143336110bc565b5b612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a90613d0b565b60405180910390fd5b600d5f81548092919061219590613e87565b91905055505f600d549050600b60169054906101000a900460ff16156121f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e790614025565b60405180910390fd5b6004600a6121fe9190613b49565b633b9aca0061220d91906138e1565b600f819055506122846004600a6122249190613b49565b633b9aca0061223391906138e1565b620186a06004600a6122459190613b49565b633b9aca0061225491906138e1565b5f196122609190613b93565b5f1961226c9190613bc3565b612276919061394f565b61285b90919063ffffffff16565b600e819055505f73ffffffffffffffffffffffffffffffffffffffff167f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff1614612359577f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612342575f80fd5b505af1158015612354573d5f803e3d5ffd5b505050505b807f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f5460405161238b91906132c6565b60405180910390a250565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60075481565b600b60149054906101000a900460ff1681565b5f83831115829061241a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124119190613369565b60405180910390fd5b505f83856124289190613bc3565b9050809150509392505050565b5f600b60169054906101000a900460ff161561245d576124568484846129dc565b905061280b565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156124fb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561255057600b60149054906101000a900460ff1661254f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125469061408d565b60405180910390fd5b5b5f612566600e548461290190919063ffffffff16565b9050612570612bd3565b1561257e5761257d612ca5565b5b612605816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d39092919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126e2575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126f6576126f1868387612fc9565b6126f8565b815b905061274a8160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128a490919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6127ef600e548561285b90919063ffffffff16565b6040516127fc91906132c6565b60405180910390a36001925050505b9392505050565b5f61285383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123d3565b905092915050565b5f61289c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131f4565b905092915050565b5f8082846128b2919061397f565b9050838110156128f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ee906140f5565b60405180910390fd5b8091505092915050565b5f808303612911575f9050612972565b5f828461291e91906138e1565b905082848261292d919061394f565b1461296d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296490614183565b60405180910390fd5b809150505b92915050565b5f80828461298691906141a1565b905060ff6001901b811415806129aa575060ff6001901b831660ff6001901b851614155b6129b2575f80fd5b5f8314806129ca57508383826129c89190614217565b145b6129d2575f80fd5b8091505092915050565b5f806129f3600e548461290190919063ffffffff16565b9050612a7c816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d39092919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b0d8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128a490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612bb2600e548561285b90919063ffffffff16565b604051612bbf91906132c6565b60405180910390a360019150509392505050565b5f7f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c3d5750600b60169054906101000a900460ff16155b8015612c555750600b60159054906101000a900460ff165b8015612ca0575060105460015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600b60166101000a81548160ff0219169083151502179055505f612cd8600e5460105461285b90919063ffffffff16565b90505f600267ffffffffffffffff811115612cf657612cf561427f565b5b604051908082528060200260200182016040528015612d245781602001602082028036833780820191505090505b50905030815f81518110612d3b57612d3a6142ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612daa57612da96142ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f4790507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612e499594939291906143c9565b5f604051808303815f87803b158015612e60575f80fd5b505af1158015612e72573d5f803e3d5ffd5b505050505f8147612e839190613bc3565b90505f612eaf600654612ea16004548561290190919063ffffffff16565b61285b90919063ffffffff16565b90505f612edb600654612ecd6005548661290190919063ffffffff16565b61285b90919063ffffffff16565b9050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612f41573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612fa6573d5f803e3d5ffd5b505050505050505f600b60166101000a81548160ff021916908315150217905550565b5f8060095490507f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361302d576007549050613087565b7f00000000000000000000000068eb9ed8fe1d63c71c50ee9ede824db426c6904773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036130865760085490505b5b5f84148061309457505f81145b156130a257839150506131ed565b5f81600654612710876130b5919061394f565b6130bf91906138e1565b6130c991906138e1565b905061311b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128a490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6131c0600e548561285b90919063ffffffff16565b6040516131cd91906132c6565b60405180910390a36131e8818661281290919063ffffffff16565b925050505b9392505050565b5f808311829061323a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132319190613369565b60405180910390fd5b505f8385613248919061394f565b9050809150509392505050565b5f80fd5b5f819050919050565b61326b81613259565b8114613275575f80fd5b50565b5f8135905061328681613262565b92915050565b5f602082840312156132a1576132a0613255565b5b5f6132ae84828501613278565b91505092915050565b6132c081613259565b82525050565b5f6020820190506132d95f8301846132b7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133165780820151818401526020810190506132fb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61333b826132df565b61334581856132e9565b93506133558185602086016132f9565b61335e81613321565b840191505092915050565b5f6020820190508181035f8301526133818184613331565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133b282613389565b9050919050565b6133c2816133a8565b81146133cc575f80fd5b50565b5f813590506133dd816133b9565b92915050565b5f80604083850312156133f9576133f8613255565b5b5f613406858286016133cf565b925050602061341785828601613278565b9150509250929050565b5f8115159050919050565b61343581613421565b82525050565b5f60208201905061344e5f83018461342c565b92915050565b5f806040838503121561346a57613469613255565b5b5f61347785828601613278565b925050602061348885828601613278565b9150509250929050565b5f805f606084860312156134a9576134a8613255565b5b5f6134b6868287016133cf565b93505060206134c7868287016133cf565b92505060406134d886828701613278565b9150509250925092565b5f602082840312156134f7576134f6613255565b5b5f613504848285016133cf565b91505092915050565b5f60ff82169050919050565b6135228161350d565b82525050565b5f60208201905061353b5f830184613519565b92915050565b5f819050919050565b5f61356461355f61355a84613389565b613541565b613389565b9050919050565b5f6135758261354a565b9050919050565b5f6135868261356b565b9050919050565b6135968161357c565b82525050565b5f6020820190506135af5f83018461358d565b92915050565b6135be81613421565b81146135c8575f80fd5b50565b5f813590506135d9816135b5565b92915050565b5f80604083850312156135f5576135f4613255565b5b5f613602858286016133cf565b9250506020613613858286016135cb565b9150509250929050565b5f805f6060848603121561363457613633613255565b5b5f61364186828701613278565b935050602061365286828701613278565b925050604061366386828701613278565b9150509250925092565b5f819050919050565b61367f8161366d565b8114613689575f80fd5b50565b5f8135905061369a81613676565b92915050565b5f80604083850312156136b6576136b5613255565b5b5f6136c385828601613278565b92505060206136d48582860161368c565b9150509250929050565b6136e7816133a8565b82525050565b5f6020820190506137005f8301846136de565b92915050565b5f6020828403121561371b5761371a613255565b5b5f613728848285016135cb565b91505092915050565b5f806040838503121561374757613746613255565b5b5f61375485828601613278565b9250506020613765858286016135cb565b9150509250929050565b5f806040838503121561378557613784613255565b5b5f613792858286016133cf565b92505060206137a3858286016133cf565b9150509250929050565b5f6137b782613389565b9050919050565b6137c7816137ad565b81146137d1575f80fd5b50565b5f813590506137e2816137be565b92915050565b5f602082840312156137fd576137fc613255565b5b5f61380a848285016137d4565b91505092915050565b5f61381d8261356b565b9050919050565b61382d81613813565b82525050565b5f6020820190506138465f830184613824565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f6138806006836132e9565b915061388b8261384c565b602082019050919050565b5f6020820190508181035f8301526138ad81613874565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138eb82613259565b91506138f683613259565b925082820261390481613259565b9150828204841483151761391b5761391a6138b4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61395982613259565b915061396483613259565b92508261397457613973613922565b5b828204905092915050565b5f61398982613259565b915061399483613259565b92508282019050808211156139ac576139ab6138b4565b5b92915050565b7f73706c6974206e6565647320746f20746f74616c20746f2031300000000000005f82015250565b5f6139e6601a836132e9565b91506139f1826139b2565b602082019050919050565b5f6020820190508181035f830152613a13816139da565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613a6f57808604811115613a4b57613a4a6138b4565b5b6001851615613a5a5780820291505b8081029050613a6885613a1a565b9450613a2f565b94509492505050565b5f82613a875760019050613b42565b81613a94575f9050613b42565b8160018114613aaa5760028114613ab457613ae3565b6001915050613b42565b60ff841115613ac657613ac56138b4565b5b8360020a915084821115613add57613adc6138b4565b5b50613b42565b5060208310610133831016604e8410600b8410161715613b185782820a905083811115613b1357613b126138b4565b5b613b42565b613b258484846001613a26565b92509050818404811115613b3c57613b3b6138b4565b5b81810290505b9392505050565b5f613b5382613259565b9150613b5e8361350d565b9250613b8b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a78565b905092915050565b5f613b9d82613259565b9150613ba883613259565b925082613bb857613bb7613922565b5b828206905092915050565b5f613bcd82613259565b9150613bd883613259565b9250828203905081811115613bf057613bef6138b4565b5b92915050565b5f81519050613c0481613262565b92915050565b5f60208284031215613c1f57613c1e613255565b5b5f613c2c84828501613bf6565b91505092915050565b5f604082019050613c485f8301856136de565b613c5560208301846132b7565b9392505050565b5f81519050613c6a816135b5565b92915050565b5f60208284031215613c8557613c84613255565b5b5f613c9284828501613c5c565b91505092915050565b7f43616c6c6572206973206e6f74207468652072656261736520636f6e74726f6c5f8201527f6c6572206f72206f776e65720000000000000000000000000000000000000000602082015250565b5f613cf5602c836132e9565b9150613d0082613c9b565b604082019050919050565b5f6020820190508181035f830152613d2281613ce9565b9050919050565b7f427579207461782063616e6e6f74206265206d6f7265207468616e20323025005f82015250565b5f613d5d601f836132e9565b9150613d6882613d29565b602082019050919050565b5f6020820190508181035f830152613d8a81613d51565b9050919050565b7f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230255f82015250565b5f613dc56020836132e9565b9150613dd082613d91565b602082019050919050565b5f6020820190508181035f830152613df281613db9565b9050919050565b7f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e5f8201527f2032302500000000000000000000000000000000000000000000000000000000602082015250565b5f613e536024836132e9565b9150613e5e82613df9565b604082019050919050565b5f6020820190508181035f830152613e8081613e47565b9050919050565b5f613e9182613259565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ec357613ec26138b4565b5b600182019050919050565b7f54727920616761696e00000000000000000000000000000000000000000000005f82015250565b5f613f026009836132e9565b9150613f0d82613ece565b602082019050919050565b5f6020820190508181035f830152613f2f81613ef6565b9050919050565b5f613f408261366d565b91507f80000000000000000000000000000000000000000000000000000000000000008203613f7257613f716138b4565b5b815f039050919050565b5f613f868261356b565b9050919050565b613f9681613f7c565b82525050565b5f602082019050613faf5f830184613f8d565b92915050565b7f524542415345544f4b454e3a2043616e6e6f74207265736574207265626173655f8201527f207768696c652061207377617020697320696e2070726f67726573732e000000602082015250565b5f61400f603d836132e9565b915061401a82613fb5565b604082019050919050565b5f6020820190508181035f83015261403c81614003565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6140776014836132e9565b915061408282614043565b602082019050919050565b5f6020820190508181035f8301526140a48161406b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6140df601b836132e9565b91506140ea826140ab565b602082019050919050565b5f6020820190508181035f83015261410c816140d3565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61416d6021836132e9565b915061417882614113565b604082019050919050565b5f6020820190508181035f83015261419a81614161565b9050919050565b5f6141ab8261366d565b91506141b68361366d565b92508282026141c48161366d565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156141fb576141fa6138b4565b5b82820584148315176142105761420f6138b4565b5b5092915050565b5f6142218261366d565b915061422c8361366d565b92508261423c5761423b613922565b5b60015f0383147f800000000000000000000000000000000000000000000000000000000000000083141615614274576142736138b4565b5b828205905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6142fc6142f76142f2846142d9565b613541565b613259565b9050919050565b61430c816142e2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614344816133a8565b82525050565b5f614355838361433b565b60208301905092915050565b5f602082019050919050565b5f61437782614312565b614381818561431c565b935061438c8361432c565b805f5b838110156143bc5781516143a3888261434a565b97506143ae83614361565b92505060018101905061438f565b5085935050505092915050565b5f60a0820190506143dc5f8301886132b7565b6143e96020830187614303565b81810360408301526143fb818661436d565b905061440a60608301856136de565b61441760808301846132b7565b969550505050505056fea26469706673582212202ea34a9b72c67945ac6055f8b334e7df8591acea9dcc12622a6cdde1a930830b64736f6c63430008180033
Verified Source Code Partial Match
Compiler: v0.8.24+commit.e11b9ed9
EVM: shanghai
Optimization: No
FlipTheChihuahua.sol 470 lines
// SPDX-License-Identifier: MIT
/**
*
*
* X: https://x.com/FlipOnETH
* Web: https://flipp.world
* TG: https://t.me/FlipOnETH
*
*
*/
pragma solidity 0.8.24;
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;
}
}
library SafeMathInt {
int256 private constant MIN_INT256 = int256(1) << 255;
function mul(int256 a, int256 b) internal pure returns (int256) {
int256 c = a * b;
require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
require((b == 0) || (c / b == a));
return c;
}
function div(int256 a, int256 b) internal pure returns (int256) {
require(b != -1 || a != MIN_INT256);
return a / b;
}
function sub(int256 a, int256 b) internal pure returns (int256) {
int256 c = a - b;
require((b >= 0 && c <= a) || (b < 0 && c > a));
return c;
}
function add(int256 a, int256 b) internal pure returns (int256) {
int256 c = a + b;
require((b >= 0 && c >= a) || (b < 0 && c < a));
return c;
}
function abs(int256 a) internal pure returns (int256) {
require(a != MIN_INT256);
return a < 0 ? -a : a;
}
}
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);
}
abstract contract Auth {
address public 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 transferOwnership(address payable _address) public onlyOwner {
owner = _address;
emit OwnershipTransferred(_address);
}
function renounceOwnership() external onlyOwner {
owner = address(0);
emit OwnershipTransferred(owner);
}
event OwnershipTransferred(address owner);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface InterfaceLP {
function sync() external;
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract FlipTheChihuahua is IERC20, Auth {
using SafeMath for uint256;
using SafeMathInt for int256;
address immutable WETH;
address constant DEAD = 0x000000000000000000000000000000000000dEaD;
address constant ZERO = address(0);
string public constant name = "Flip the Chihuahua";
string public constant symbol = "Flip";
uint8 public constant decimals = 4;
mapping (address => uint256) _rBalance;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) public isFeeExempt;
uint256 public marketingFee = 7;
uint256 public devFee = 3;
uint256 public totalFee = marketingFee + devFee;
uint256 public sellMultiplier = 200;
uint256 public buyMultiplier = 200;
uint256 public transferMultiplier = 0;
address public marketingFeeReceiver;
address public devFeeReceiver;
IDEXRouter public immutable router;
address public immutable pair;
InterfaceLP public immutable pairContract;
bool public tradingOpen = false;
bool public swapEnabled = false;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
address public rebaseController;
modifier onlyRebaseController() {
require(msg.sender == rebaseController || isOwner(msg.sender), "Caller is not the rebase controller or owner");
_;
}
receive() external payable { }
uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 1_000_000_000 * 10**decimals;
uint256 public rebase_count = 0;
uint256 public rate;
uint256 public _totalSupply;
uint256 private constant MAX_UINT256 = ~uint256(0);
uint256 private constant MAX_SUPPLY = ~uint128(0);
uint256 private constant rSupply = (MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY))/100000;
uint256 public swapThreshold;
constructor () Auth(msg.sender) {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //uniswap v2
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
pairContract = InterfaceLP(pair);
_totalSupply = INITIAL_FRAGMENTS_SUPPLY;
rate = rSupply.div(_totalSupply);
swapThreshold = INITIAL_FRAGMENTS_SUPPLY * rate / 500;
isFeeExempt[msg.sender] = true;
marketingFeeReceiver = 0x543F39Aeb86c6c4cA00889347288C5ca31632902;
devFeeReceiver = 0xCDBa7bee028DaC4E8Dd15e8C7b05D677b456DA2b;
_rBalance[msg.sender] = rSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
function rebase_percentage(uint256 _percentage_base10000, bool reduce) public onlyRebaseController returns (uint256 newSupply){
if(reduce){
newSupply = rebase(0,int(_totalSupply.div(10000).mul(_percentage_base10000)).mul(-1));
} else{
newSupply = rebase(0,int(_totalSupply.div(10000).mul(_percentage_base10000)));
}
}
function rebase_reset() external onlyRebaseController {
rebase_count++;
uint256 currentEpoch = rebase_count;
require(!inSwap, "REBASETOKEN: Cannot reset rebase while a swap is in progress.");
_totalSupply = INITIAL_FRAGMENTS_SUPPLY;
rate = rSupply.div(INITIAL_FRAGMENTS_SUPPLY);
if (address(pairContract) != address(0)) {
pairContract.sync();
}
emit LogRebase(currentEpoch, _totalSupply);
}
// Sauce
function rebase(uint256 epoch, int256 supplyDelta) public onlyRebaseController returns (uint256) {
rebase_count++;
if(epoch == 0){
epoch = rebase_count;
}
require(!inSwap, "Try again");
if (supplyDelta == 0) {
emit LogRebase(epoch, _totalSupply);
return _totalSupply;
}
if (supplyDelta < 0) {
_totalSupply = _totalSupply.sub(uint256(-supplyDelta));
} else {
_totalSupply = _totalSupply.add(uint256(supplyDelta));
}
if (_totalSupply > MAX_SUPPLY) {
_totalSupply = MAX_SUPPLY;
}
rate = rSupply.div(_totalSupply);
pairContract.sync();
emit LogRebase(epoch, _totalSupply);
return _totalSupply;
}
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function balanceOf(address account) public view override returns (uint256) {
return _rBalance[account].div(rate);
}
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 _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
uint256 rAmount = amount.mul(rate);
_rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");
_rBalance[recipient] = _rBalance[recipient].add(rAmount);
emit Transfer(sender, recipient, rAmount.div(rate));
return true;
}
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) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
require(tradingOpen,"Trading not open yet");
}
uint256 rAmount = amount.mul(rate);
if(shouldSwapBack()){ swapBack(); }
//Exchange tokens
_rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");
uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? rAmount : takeFee(sender, rAmount, recipient);
_rBalance[recipient] = _rBalance[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived.div(rate));
return true;
}
function takeFee(address sender, uint256 rAmount, address recipient) internal returns (uint256) {
uint256 multiplier = transferMultiplier;
if(recipient == pair) {
multiplier = sellMultiplier;
} else if(sender == pair) {
multiplier = buyMultiplier;
}
if(rAmount == 0 || multiplier == 0){
return rAmount;
}
uint256 feeAmount = (rAmount/10000) * totalFee * multiplier;
_rBalance[address(this)] = _rBalance[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount.div(rate));
return rAmount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != pair
&& !inSwap
&& swapEnabled
&& _rBalance[address(this)] >= swapThreshold;
}
function clearStuckBalance() external onlyRebaseController {
uint256 amountETH = address(this).balance;
payable(devFeeReceiver).transfer(amountETH);
}
function enableTrading() external onlyOwner {
tradingOpen = true;
}
function swapBack() internal swapping {
uint256 amountToSwap = swapThreshold.div(rate);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
uint256 balanceBeforeSwap = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance - balanceBeforeSwap;
uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee);
uint256 amountETHDev = amountETH.mul(devFee).div(totalFee);
payable(marketingFeeReceiver).transfer(amountETHMarketing);
payable(devFeeReceiver).transfer(amountETHDev);
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setFees(uint256 _marketingFee, uint256 _devFee) external onlyOwner {
marketingFee = _marketingFee;
devFee = _devFee;
totalFee = _marketingFee + _devFee;
require(totalFee == 10, "split needs to total to 10");
}
function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
buyMultiplier = _buy;
sellMultiplier = _sell;
transferMultiplier = _trans;
require(buyMultiplier <= 200, "Buy tax cannot be more than 20%");
require(sellMultiplier <= 200, "Sell tax cannot be more than 20%");
require(transferMultiplier <= 200, "Transfer Tax cannot be more than 20%");
}
function setFeeReceivers(address _marketingFeeReceiver, address _devFeeReceiver ) external onlyOwner {
marketingFeeReceiver = _marketingFeeReceiver;
devFeeReceiver = _devFeeReceiver;
}
function enableSwapback(bool _enabled) external onlyOwner {
swapEnabled = _enabled;
}
function setSwapBackSettings(uint256 _rAmount) external onlyOwner {
swapThreshold = _rAmount;
}
function setSwapBackSettings_base1000(uint256 pct_base1000) external onlyOwner {
swapThreshold = (_totalSupply * pct_base1000 / 1000) * rate;
}
function manualSync() external {
InterfaceLP(pair).sync();
}
function setRebaseController(address _address) external onlyOwner {
rebaseController = _address;
}
function checkSwapThreshold() external view returns (uint256) {
return swapThreshold.div(rate);
}
function rescueToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
if(tokens == 0){
tokens = IERC20(tokenAddress).balanceOf(address(this));
}
return IERC20(tokenAddress).transfer(devFeeReceiver, tokens);
}
function getCirculatingSupply() public view returns (uint256) {
return (rSupply.sub(_rBalance[DEAD]).sub(_rBalance[ZERO])).div(rate);
}
event LogRebase(uint256 indexed epoch, uint256 totalSupply);
}
Read Contract
_totalSupply 0x3eaaf86b → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyMultiplier 0x3121c7c0 → uint256
checkSwapThreshold 0x6d351d1a → uint256
decimals 0x313ce567 → uint8
devFee 0x6827e764 → uint256
devFeeReceiver 0xdab84ee7 → address
getCirculatingSupply 0x2b112e49 → uint256
isFeeExempt 0x3f4218e0 → bool
isOwner 0x2f54bf6e → bool
marketingFee 0x6b67c4df → uint256
marketingFeeReceiver 0xe96fada2 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
pairContract 0x4d709adf → address
rate 0x2c4e722e → uint256
rebaseController 0x83da8357 → address
rebase_count 0x0a92570f → uint256
router 0xf887ea40 → address
sellMultiplier 0xfed0d2a1 → uint256
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalFee 0x1df4ccfc → uint256
totalSupply 0x18160ddd → uint256
tradingOpen 0xffb54a99 → bool
transferMultiplier 0x5921652f → uint256
Write Contract 21 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
clearStuckBalance 0x364333f4
No parameters
enableSwapback 0x9291e00a
bool _enabled
enableTrading 0x8a8c523c
No parameters
manualSync 0x753d02a1
No parameters
rebase 0x7a43e23f
uint256 epoch
int256 supplyDelta
returns: uint256
rebase_percentage 0x93028afd
uint256 _percentage_base10000
bool reduce
returns: uint256
rebase_reset 0xf47bd531
No parameters
renounceOwnership 0x715018a6
No parameters
rescueToken 0x33f3d628
address tokenAddress
uint256 tokens
returns: bool
setFeeReceivers 0xa4b45c00
address _marketingFeeReceiver
address _devFeeReceiver
setFees 0x0b78f9c0
uint256 _marketingFee
uint256 _devFee
setIsFeeExempt 0x658d4b7f
address holder
bool exempt
setMultipliers 0x6ce46bc3
uint256 _buy
uint256 _sell
uint256 _trans
setRebaseController 0xbc5302c9
address _address
setSwapBackSettings 0x796431d0
uint256 _rAmount
setSwapBackSettings_base1000 0x014cd4a8
uint256 pct_base1000
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address _address
Recent Transactions
No transactions found for this address