Address Contract Partially Verified
Address
0xE2188e5f335A786a487E468D07d388A9301c14d6
Balance
0.201616 ETH
Nonce
1
Code Size
21832 bytes
Creator
0xDccb2382...4702 at tx 0x994d9057...e708c6
Indexed Transactions
0
Contract Bytecode
21832 bytes
0x6080604052600436106101ba5760003560e01c80638a6655d6116100ec578063d0040d701161008a578063dd62ed3e11610064578063dd62ed3e146105f1578063e8078d941461062e578063f2fde38b14610645578063f64bfaba1461066e576101c1565b8063d0040d7014610585578063da44d275146105ae578063da98c40b146105da576101c1565b806395d89b41116100c657806395d89b41146104c75780639b057610146104f2578063a9059cbb1461051d578063b7d0628b1461055a576101c1565b80638a6655d6146104365780638da5cb5b1461045f5780638df08bd41461048a576101c1565b806323b872dd116101595780635c6ee14a116101335780635c6ee14a1461037e5780635f56f8c2146103a757806370a08231146103d057806385b12c7c1461040d576101c1565b806323b872dd146102ed578063313ce5671461032a5780633cbc58d514610355576101c1565b80630dc96015116101955780630dc96015146102575780630f34b97d1461028257806317b95885146102ab57806318160ddd146102c2576101c1565b806289716a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e8919061413d565b61069a565b005b3480156101fb57600080fd5b50610204610739565b6040516102119190614203565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190614283565b6107cb565b60405161024e91906142de565b60405180910390f35b34801561026357600080fd5b5061026c6107e9565b604051610279919061440c565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a49190614576565b610883565b005b3480156102b757600080fd5b506102c0610ab7565b005b3480156102ce57600080fd5b506102d7610bb7565b6040516102e49190614643565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061465e565b610bc9565b60405161032191906142de565b60405180910390f35b34801561033657600080fd5b5061033f610ca2565b60405161034c91906146cd565b60405180910390f35b34801561036157600080fd5b5061037c6004803603810190610377919061413d565b610cb9565b005b34801561038a57600080fd5b506103a560048036038101906103a091906146e8565b610eca565b005b3480156103b357600080fd5b506103ce60048036038101906103c9919061413d565b610fba565b005b3480156103dc57600080fd5b506103f760048036038101906103f291906146e8565b611075565b6040516104049190614643565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f919061413d565b6110be565b005b34801561044257600080fd5b5061045d60048036038101906104589190614715565b611282565b005b34801561046b57600080fd5b5061047461160b565b6040516104819190614777565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac91906146e8565b611634565b6040516104be9190614643565b60405180910390f35b3480156104d357600080fd5b506104dc61167d565b6040516104e99190614203565b60405180910390f35b3480156104fe57600080fd5b5061050761170f565b6040516105149190614643565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f9190614283565b611719565b60405161055191906142de565b60405180910390f35b34801561056657600080fd5b5061056f611737565b60405161057c91906147e7565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a791906146e8565b61176d565b005b3480156105ba57600080fd5b506105c361185d565b6040516105d192919061496f565b60405180910390f35b3480156105e657600080fd5b506105ef611946565b005b3480156105fd57600080fd5b50610618600480360381019061061391906149a6565b611a2e565b6040516106259190614643565b60405180910390f35b34801561063a57600080fd5b50610643611ab5565b005b34801561065157600080fd5b5061066c600480360381019061066791906146e8565b611f82565b005b34801561067a57600080fd5b506106836120d4565b604051610691929190614ae6565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d9612365565b73ffffffffffffffffffffffffffffffffffffffff161461072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072690614b69565b60405180910390fd5b80601c8190555050565b60606001805461074890614bb8565b80601f016020809104026020016040519081016040528092919081815260200182805461077490614bb8565b80156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b5050505050905090565b60006107df6107d8612365565b848461236d565b6001905092915050565b606060256000601f548152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561087a578382906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505081526020019060010190610820565b50505050905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108dd57600080fd5b60006108e830611075565b90506108f381612538565b6108fe88888461277b565b610909868686612df8565b6001601d600082825461091c9190614c19565b925050819055504260178190555060246000601d5481526020019081526020016000206040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055505050601f548314610aa657602560008481526020019081526020016000206040518060800160405280600081526020016000815260200160008152602001600081525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550505b82601f819055505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af6612365565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390614b69565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bb4573d6000803e3d6000fd5b50565b6000690e9c7f5bd65501200000905090565b6000610bd6848484612e30565b610c9784610be2612365565b610c92856040518060600160405280602881526020016154eb60289139601260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c48612365565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314e9092919063ffffffff16565b61236d565b600190509392505050565b6000600360009054906101000a900460ff16905090565b601e54610cc533611075565b1015610cd057600080fd5b600060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610e375760256000601f5481526020019081526020016000206040518060800160405280600081526020016000815260200160008152602001838152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050600160256000601f54815260200190815260200160002080549050610ddc9190614c6f565b60116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ec7565b8060256000601f54815260200190815260200160002060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610eb157610eb0614ca3565b5b9060005260206000209060040201600301819055505b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f09612365565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690614b69565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff9612365565b73ffffffffffffffffffffffffffffffffffffffff161461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690614b69565b60405180910390fd5b61106c81690e9c7f5bd655012000006122bd90919063ffffffff16565b60088190555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110fd612365565b73ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90614b69565b60405180910390fd5b611166814261230790919063ffffffff16565b6015819055506001602160006101000a81548160ff0219169083151502179055506001601d8190555060155460178190555060246000601d5481526020019081526020016000206040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550505050565b601e5461128e33611075565b101561129957600080fd5b6103e88310156112a857600080fd5b611b588311156112b757600080fd5b60008210156112c557600080fd5b611b588211156112d457600080fd5b6103848110156112e357600080fd5b620151808111156112f357600080fd5b600060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156114585760256000601f548152602001908152602001600020604051806080016040528083815260200185815260200184815260200160008152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050600160256000601f548152602001908152602001600020805490506113fd9190614c6f565b60116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611606565b8260256000601f54815260200190815260200160002060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106114d2576114d1614ca3565b5b9060005260206000209060040201600101819055508160256000601f54815260200190815260200160002060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061156157611560614ca3565b5b9060005260206000209060040201600201819055508060256000601f54815260200190815260200160002060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106115f0576115ef614ca3565b5b9060005260206000209060040201600001819055505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606002805461168c90614bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546116b890614bb8565b80156117055780601f106116da57610100808354040283529160200191611705565b820191906000526020600020905b8154815290600101906020018083116116e857829003601f168201915b5050505050905090565b6000602054905090565b600061172d611726612365565b8484612e30565b6001905092915050565b61173f6140cb565b6040518060800160405280601d54815260200160185481526020016019548152602001601a54815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117ac612365565b73ffffffffffffffffffffffffffffffffffffffff1614611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f990614b69565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60608060226023818054806020026020016040519081016040528092919081815260200182805480156118e557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161189b575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561193757602002820191906000526020600020905b815481526020019060010190808311611923575b50505050509050915091509091565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611985612365565b73ffffffffffffffffffffffffffffffffffffffff16146119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290614b69565b60405180910390fd5b602160009054906101000a900460ff1615611a10576000602160006101000a81548160ff021916908315150217905550611a2c565b6001602160006101000a81548160ff0219169083151502179055505b565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af4612365565b73ffffffffffffffffffffffffffffffffffffffff1614611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190614b69565b60405180910390fd5b600960009054906101000a900460ff1615611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9190614d1e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c2b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16690e9c7f5bd6550120000061236d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9a9190614d53565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d259190614d53565b6040518363ffffffff1660e01b8152600401611d42929190614d80565b6020604051808303816000875af1158015611d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d859190614d53565b600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611e0e30611075565b600080611e1961160b565b426040518863ffffffff1660e01b8152600401611e3b96959493929190614dee565b60606040518083038185885af1158015611e59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e7e9190614e64565b505050600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f20929190614eb7565b6020604051808303816000875af1158015611f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f639190614f0c565b506001600960006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fc1612365565b73ffffffffffffffffffffffffffffffffffffffff1614612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90614b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606080602460006001601d546120ea9190614c6f565b815260200190815260200160002060246000601d54815260200190815260200160002081805480602002602001604051908101604052809291908181526020016000905b828210156121db57838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820160009054906101000a900460ff1615151515815250508152602001906001019061212e565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156122af57838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820160009054906101000a900460ff16151515158152505081526020019060010190612202565b505050509050915091509091565b60006122ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b2565b905092915050565b60008082846123169190614c19565b90508381101561235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235290614f85565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d490615017565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561244d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612444906150a9565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161252b9190614643565b60405180910390a3505050565b6000600267ffffffffffffffff81111561255557612554614433565b5b6040519080825280602002602001820160405280156125835781602001602082028036833780820191505090505b509050308160008151811061259b5761259a614ca3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126669190614d53565b8160018151811061267a57612679614ca3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126e130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461236d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127459594939291906150c9565b600060405180830381600087803b15801561275f57600080fd5b505af1158015612773573d6000803e3d6000fd5b505050505050565b60004790506000821415612d76576000612793613215565b905060006127be826127b0601c548661324490919063ffffffff16565b6122bd90919063ffffffff16565b905060006127fc87516127ee856127e06019548961324490919063ffffffff16565b6122bd90919063ffffffff16565b6122bd90919063ffffffff16565b9050600061283a885161282c8661281e601a548a61324490919063ffffffff16565b6122bd90919063ffffffff16565b6122bd90919063ffffffff16565b905060008311156128c457600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156128ad573d6000803e3d6000fd5b506128c183866132bf90919063ffffffff16565b94505b84602060008282546128d69190614c19565b925050819055506000821115612b575760005b8851811015612b5557478311156128fe574792505b60246000601d54815260200190815260200160002060106000601d54815260200190815260200160002060008b848151811061293d5761293c614ca3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061299157612990614ca3565b5b906000526020600020906003020160020160009054906101000a900460ff1615612b2d5760228982815181106129ca576129c9614ca3565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602383908060018154018082558091505060019003906000526020600020016000909190919091505582601460008b8481518110612a7357612a72614ca3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ac49190614c19565b92505081905550888181518110612ade57612add614ca3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612b2b573d6000803e3d6000fd5b505b612b4083876132bf90919063ffffffff16565b95508080612b4d90615123565b9150506128e9565b505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015612b945750600081115b15612d6d5747811115612ba5574790505b60246000601d54815260200190815260200160002060106000601d54815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110612c1e57612c1d614ca3565b5b906000526020600020906003020160020160009054906101000a900460ff1615612d6c576022879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602385908060018154018082558091505060019003906000526020600020016000909190919091505584601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d1d9190614c19565b925050819055508673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f19350505050158015612d6a573d6000803e3d6000fd5b505b5b50505050612df2565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612dc584846122bd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612df0573d6000803e3d6000fd5b505b50505050565b8260195414612e0957826019819055505b81601a5414612e1a5781601a819055505b8060185414612e2b57806018819055505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e97906151de565b60405180910390fd5b60008111612ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eda90615270565b60405180910390fd5b602160009054906101000a900460ff168015612f055750612f048383613309565b5b156130a257600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639051f0248484600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518563ffffffff1660e01b8152600401612f8d9493929190615290565b6020604051808303816000875af1158015612fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd09190614f0c565b15613010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300790615347565b60405180910390fd5b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b815260040161306f93929190615367565b600060405180830381600087803b15801561308957600080fd5b505af115801561309d573d6000803e3d6000fd5b505050505b6130ab826133bc565b156130c7576008546130bc83611075565b106130c657600080fd5b5b60006130d38484613471565b1561313c576131066130f76130e6613215565b6016546122bd90919063ffffffff16565b836122bd90919063ffffffff16565b905060155442101561311757600080fd5b613121848461351d565b1561313b5761312e613628565b82111561313a57600080fd5b5b5b6131488484848461367e565b50505050565b6000838311158290613196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318d9190614203565b60405180910390fd5b50600083856131a59190614c6f565b9050809150509392505050565b600080831182906131f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f09190614203565b60405180910390fd5b506000838561320891906153cd565b9050809150509392505050565b600080601c549050601a548161322b9190614c19565b90506019548161323b9190614c19565b90508091505090565b60008083141561325757600090506132b9565b6000828461326591906153fe565b905082848261327491906153cd565b146132b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ab906154ca565b60405180910390fd5b809150505b92915050565b600061330183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061314e565b905092915050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806133b45750600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561346a5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806135145750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156135ca5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156136205750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600061364161038460155461230790919063ffffffff16565b421161366d57613666610190690e9c7f5bd655012000006122bd90919063ffffffff16565b905061367b565b690e9c7f5bd6550120000090505b90565b600061369382846132bf90919063ffffffff16565b905061369f8584613918565b6136f183600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132bf90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378681600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061381b82600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613867856139eb565b1561387b576138768482613a45565b6138ac565b61388484613caa565b156138975761389285613d04565b6138ab565b6138a085613d04565b6138aa8482613a45565b5b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139099190614643565b60405180910390a35050505050565b600061392383611075565b9050600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156139af57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156139e657601e548111156139e557601e546139d483836132bf90919063ffffffff16565b10156139e4576139e383613f6b565b5b5b5b505050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600060106000601d54815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613b45578060246000601d54815260200190815260200160002060106000601d54815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110613b1957613b18614ca3565b5b90600052602060002090600302016001016000828254613b399190614c19565b92505081905550613ca6565b60246000601d54815260200190815260200160002060405180606001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200160011515815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055505050600160246000601d54815260200190815260200160002080549050613c4f9190614c6f565b60106000601d54815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600060106000601d54815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613e0657600060246000601d54815260200190815260200160002060106000601d54815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110613dd957613dd8614ca3565b5b906000526020600020906003020160020160006101000a81548160ff021916908315150217905550613f68565b60246000601d54815260200190815260200160002060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055505050600160246000601d54815260200190815260200160002080549050613f119190614c6f565b60106000601d54815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146140c85760256000601f54815260200190815260200160002060116000601f54815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061403e5761403d614ca3565b5b90600052602060002090600402016000808201600090556001820160009055600282016000905560038201600090555050600060116000601f54815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61411a81614107565b811461412557600080fd5b50565b60008135905061413781614111565b92915050565b600060208284031215614153576141526140fd565b5b600061416184828501614128565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156141a4578082015181840152602081019050614189565b838111156141b3576000848401525b50505050565b6000601f19601f8301169050919050565b60006141d58261416a565b6141df8185614175565b93506141ef818560208601614186565b6141f8816141b9565b840191505092915050565b6000602082019050818103600083015261421d81846141ca565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061425082614225565b9050919050565b61426081614245565b811461426b57600080fd5b50565b60008135905061427d81614257565b92915050565b6000806040838503121561429a576142996140fd565b5b60006142a88582860161426e565b92505060206142b985828601614128565b9150509250929050565b60008115159050919050565b6142d8816142c3565b82525050565b60006020820190506142f360008301846142cf565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61432e81614107565b82525050565b60808201600082015161434a6000850182614325565b50602082015161435d6020850182614325565b5060408201516143706040850182614325565b5060608201516143836060850182614325565b50505050565b60006143958383614334565b60808301905092915050565b6000602082019050919050565b60006143b9826142f9565b6143c38185614304565b93506143ce83614315565b8060005b838110156143ff5781516143e68882614389565b97506143f1836143a1565b9250506001810190506143d2565b5085935050505092915050565b6000602082019050818103600083015261442681846143ae565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61446b826141b9565b810181811067ffffffffffffffff8211171561448a57614489614433565b5b80604052505050565b600061449d6140f3565b90506144a98282614462565b919050565b600067ffffffffffffffff8211156144c9576144c8614433565b5b602082029050602081019050919050565b600080fd5b60006144f26144ed846144ae565b614493565b90508083825260208201905060208402830185811115614515576145146144da565b5b835b8181101561453e578061452a888261426e565b845260208401935050602081019050614517565b5050509392505050565b600082601f83011261455d5761455c61442e565b5b813561456d8482602086016144df565b91505092915050565b600080600080600080600060e0888a031215614595576145946140fd565b5b600088013567ffffffffffffffff8111156145b3576145b2614102565b5b6145bf8a828b01614548565b97505060206145d08a828b0161426e565b96505060406145e18a828b01614128565b95505060606145f28a828b01614128565b94505060806146038a828b01614128565b93505060a06146148a828b01614128565b92505060c06146258a828b01614128565b91505092959891949750929550565b61463d81614107565b82525050565b60006020820190506146586000830184614634565b92915050565b600080600060608486031215614677576146766140fd565b5b60006146858682870161426e565b93505060206146968682870161426e565b92505060406146a786828701614128565b9150509250925092565b600060ff82169050919050565b6146c7816146b1565b82525050565b60006020820190506146e260008301846146be565b92915050565b6000602082840312156146fe576146fd6140fd565b5b600061470c8482850161426e565b91505092915050565b60008060006060848603121561472e5761472d6140fd565b5b600061473c86828701614128565b935050602061474d86828701614128565b925050604061475e86828701614128565b9150509250925092565b61477181614245565b82525050565b600060208201905061478c6000830184614768565b92915050565b6080820160008201516147a86000850182614325565b5060208201516147bb6020850182614325565b5060408201516147ce6040850182614325565b5060608201516147e16060850182614325565b50505050565b60006080820190506147fc6000830184614792565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61483781614245565b82525050565b6000614849838361482e565b60208301905092915050565b6000602082019050919050565b600061486d82614802565b614877818561480d565b93506148828361481e565b8060005b838110156148b357815161489a888261483d565b97506148a583614855565b925050600181019050614886565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006148f88383614325565b60208301905092915050565b6000602082019050919050565b600061491c826148c0565b61492681856148cb565b9350614931836148dc565b8060005b8381101561496257815161494988826148ec565b975061495483614904565b925050600181019050614935565b5085935050505092915050565b600060408201905081810360008301526149898185614862565b9050818103602083015261499d8184614911565b90509392505050565b600080604083850312156149bd576149bc6140fd565b5b60006149cb8582860161426e565b92505060206149dc8582860161426e565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a1b816142c3565b82525050565b606082016000820151614a37600085018261482e565b506020820151614a4a6020850182614325565b506040820151614a5d6040850182614a12565b50505050565b6000614a6f8383614a21565b60608301905092915050565b6000602082019050919050565b6000614a93826149e6565b614a9d81856149f1565b9350614aa883614a02565b8060005b83811015614ad9578151614ac08882614a63565b9750614acb83614a7b565b925050600181019050614aac565b5085935050505092915050565b60006040820190508181036000830152614b008185614a88565b90508181036020830152614b148184614a88565b90509392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b53602083614175565b9150614b5e82614b1d565b602082019050919050565b60006020820190508181036000830152614b8281614b46565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bd057607f821691505b60208210811415614be457614be3614b89565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c2482614107565b9150614c2f83614107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614c6457614c63614bea565b5b828201905092915050565b6000614c7a82614107565b9150614c8583614107565b925082821015614c9857614c97614bea565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b6000614d08601883614175565b9150614d1382614cd2565b602082019050919050565b60006020820190508181036000830152614d3781614cfb565b9050919050565b600081519050614d4d81614257565b92915050565b600060208284031215614d6957614d686140fd565b5b6000614d7784828501614d3e565b91505092915050565b6000604082019050614d956000830185614768565b614da26020830184614768565b9392505050565b6000819050919050565b6000819050919050565b6000614dd8614dd3614dce84614da9565b614db3565b614107565b9050919050565b614de881614dbd565b82525050565b600060c082019050614e036000830189614768565b614e106020830188614634565b614e1d6040830187614ddf565b614e2a6060830186614ddf565b614e376080830185614768565b614e4460a0830184614634565b979650505050505050565b600081519050614e5e81614111565b92915050565b600080600060608486031215614e7d57614e7c6140fd565b5b6000614e8b86828701614e4f565b9350506020614e9c86828701614e4f565b9250506040614ead86828701614e4f565b9150509250925092565b6000604082019050614ecc6000830185614768565b614ed96020830184614634565b9392505050565b614ee9816142c3565b8114614ef457600080fd5b50565b600081519050614f0681614ee0565b92915050565b600060208284031215614f2257614f216140fd565b5b6000614f3084828501614ef7565b91505092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f6f601b83614175565b9150614f7a82614f39565b602082019050919050565b60006020820190508181036000830152614f9e81614f62565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615001602483614175565b915061500c82614fa5565b604082019050919050565b6000602082019050818103600083015261503081614ff4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000615093602283614175565b915061509e82615037565b604082019050919050565b600060208201905081810360008301526150c281615086565b9050919050565b600060a0820190506150de6000830188614634565b6150eb6020830187614ddf565b81810360408301526150fd8186614862565b905061510c6060830185614768565b6151196080830184614634565b9695505050505050565b600061512e82614107565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561516157615160614bea565b5b600182019050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006151c8602583614175565b91506151d38261516c565b604082019050919050565b600060208201905081810360008301526151f7816151bb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061525a602983614175565b9150615265826151fe565b604082019050919050565b600060208201905081810360008301526152898161524d565b9050919050565b60006080820190506152a56000830187614768565b6152b26020830186614768565b6152bf6040830185614768565b6152cc6060830184614768565b95945050505050565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b6000615331602683614175565b915061533c826152d5565b604082019050919050565b6000602082019050818103600083015261536081615324565b9050919050565b600060608201905061537c6000830186614768565b6153896020830185614768565b6153966040830184614768565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006153d882614107565b91506153e383614107565b9250826153f3576153f261539e565b5b828204905092915050565b600061540982614107565b915061541483614107565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561544d5761544c614bea565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006154b4602183614175565b91506154bf82615458565b604082019050919050565b600060208201905081810360008301526154e3816154a7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064b7fe463d15043a76755fec2008608bb49db036f7b584d7dd521acc3f90f4b164736f6c634300080b0033
Verified Source Code Partial Match
Compiler: v0.8.11+commit.d7f03943
EVM: london
Optimization: No
PASSTHELOOT.sol 488 lines
/*
*Telegram: https://t.me/passtheloot_official
*Website: https://Ethloot.io
*Custom Contract and dApps created by FairTokenProject. Visit app.fairtokenproject.com to hire FTP for your next project.
* Using FTPAntiBot
- FTPAntiBot is a contract as a service (CaaS). Ward off harmful bots automatically.
- Learn more at https://fairtokenproject.com
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private m_Owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
m_Owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return m_Owner;
}
function transferOwnership(address _newOwner) public virtual onlyOwner {
emit OwnershipTransferred(m_Owner, _newOwner);
m_Owner = _newOwner;
}
modifier onlyOwner() {
require(_msgSender() == m_Owner, "Ownable: caller is not the owner");
_;
}
}
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);
}
interface IWETH {
function deposit() external payable;
}
interface FTPAntiBot {
function scanAddress(address _sender, address _recipient, address _safeAddress, address _origin) external returns (bool);
function registerBlock(address _recipient, address _sender, address _origin) external;
}
contract PASSTHELOOT is IERC20, Ownable {
using SafeMath for uint256;
uint256 private constant TOTAL_SUPPLY = 69000 * 10**18;
string private m_Name = "Pass the Loot";
string private m_Symbol = "LOOT";
uint8 private m_Decimals = 18;
address private m_UniswapV2Pair;
address private m_Controller;
address payable private m_MarketingWallet;
IUniswapV2Router02 private m_UniswapV2Router;
uint256 private m_TxLimit = TOTAL_SUPPLY.div(400);
uint256 private m_WalletLimit = TOTAL_SUPPLY.div(80);
bool private m_Liquidity = false;
FTPAntiBot private AntiBot;
address private m_AntibotSvcAddress = 0x2d2230185B24aF94FeEba779CA11Ff6f96d17e6D; //Double check address
mapping (address => bool) private m_ExcludedAddresses;
mapping (address => uint256) private m_Balances;
mapping (uint256 => uint256) private m_RaffleTaxAmountVotes;
mapping (uint256 => uint256) private m_LargestTaxAmountVotes;
mapping (uint256 => uint256) private m_IntervalVote;
mapping (uint256 => mapping (address => uint256)) private m_BuyerId;
mapping (uint256 => mapping (address => uint256)) private m_VoterIdx;
mapping (address => mapping (address => uint256)) private m_Allowances;
mapping (uint256 => mapping (uint256 => uint256)) private m_GenericVote;
mapping (address => uint256) m_Earnings;
uint256 private m_Launched;
uint256 private pMax = 100000;
uint256 private m_RoundStart;
uint256 private m_Interval = 900;
uint256 private m_RaffleTax = 3000;
uint256 private m_LargestBuyerTax = 2000;
uint256 private m_GenericIdx = 0;
uint256 private m_MarketingTax = 3000;
uint256 private m_Round;
uint256 private m_DAOmin = TOTAL_SUPPLY.div(1000);
uint256 private m_VoteCycle = 1;
uint256 private m_TotalWinnings;
bool private m_AntiBot = false;
address[] private m_Winners;
uint256[] private m_Winnings;
struct Buyer {
address addr;
uint256 amount;
bool eligible;
}
struct Vote {
uint256 interval;
uint256 raffleTax;
uint256 biggestTax;
uint256 generic;
}
struct GameState {
uint256 round; // default 1
uint256 gameInterval; // default 15min
uint256 raffleTax; // default 3%
uint256 biggestBuyerTax; // default 2%
}
mapping (uint256 => Buyer[]) private m_Raffle;
mapping (uint256 => Vote[]) private m_Voters;
receive() external payable {}
constructor () {
m_Launched = block.timestamp.add(69 days);
AntiBot = FTPAntiBot(m_AntibotSvcAddress);
m_Controller = msg.sender;
m_MarketingWallet = payable(msg.sender);
m_Winners.push(address(0));
m_Winnings.push(0);
m_Raffle[0].push(Buyer(address(0),0,false));
m_Voters[m_VoteCycle].push(Vote(0,0,0,0));
m_Balances[address(this)] = TOTAL_SUPPLY;
m_ExcludedAddresses[owner()] = true;
m_ExcludedAddresses[address(this)] = true;
emit Transfer(address(0), address(this), TOTAL_SUPPLY);
}
function name() public view returns (string memory) {
return m_Name;
}
function symbol() public view returns (string memory) {
return m_Symbol;
}
function decimals() public view returns (uint8) {
return m_Decimals;
}
function totalSupply() public pure override returns (uint256) {
return TOTAL_SUPPLY;
}
function balanceOf(address _account) public view override returns (uint256) {
return m_Balances[_account];
}
function transfer(address _recipient, uint256 _amount) public override returns (bool) {
_transfer(_msgSender(), _recipient, _amount);
return true;
}
function allowance(address _owner, address _spender) public view override returns (uint256) {
return m_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(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _isBuy(address _sender) private view returns (bool) {
return _sender == m_UniswapV2Pair;
}
function _isSell(address _recipient) private view returns (bool) {
return _recipient == m_UniswapV2Pair;
}
function _trader(address _sender, address _recipient) private view returns (bool) {
return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]);
}
function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) {
return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair;
}
function _txRestricted(address _sender, address _recipient) private view returns (bool) {
return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient];
}
function _walletCapped(address _recipient) private view returns (bool) {
return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router);
}
function _checkTX() private view returns (uint256){
if(block.timestamp <= m_Launched.add(15 minutes))
return TOTAL_SUPPLY.div(400);
else
return TOTAL_SUPPLY;
}
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");
m_Allowances[_owner][_spender] = _amount;
emit Approval(_owner, _spender, _amount);
}
function _transfer(address _sender, address _recipient, uint256 _amount) private {
require(_sender != address(0), "ERC20: transfer from the zero address");
require(_amount > 0, "Transfer amount must be greater than zero");
if(m_AntiBot && _isExchangeTransfer(_sender, _recipient)) {
require(!AntiBot.scanAddress(_sender, _recipient, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop");
AntiBot.registerBlock(_sender, _recipient, tx.origin);
}
if(_walletCapped(_recipient))
require(balanceOf(_recipient) < m_WalletLimit);
uint256 _taxes = 0;
if (_trader(_sender, _recipient)) {
_taxes = _amount.div(pMax.div(_getTaxDenominator()));
require(block.timestamp >= m_Launched);
if (_txRestricted(_sender, _recipient))
require(_amount <= _checkTX());
}
_updateBalances(_sender, _recipient, _amount, _taxes);
}
function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private {
uint256 _netAmount = _amount.sub(_taxes);
_updateDAO(_sender, _amount);
m_Balances[_sender] = m_Balances[_sender].sub(_amount);
m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount);
m_Balances[address(this)] = m_Balances[address(this)].add(_taxes);
if(_isBuy(_sender))
_trackBuy(_recipient, _netAmount);
else if(_isSell(_recipient))
_trackSell(_sender);
else{
_trackSell(_sender);
_trackBuy(_recipient, _netAmount);
}
emit Transfer(_sender, _recipient, _netAmount);
}
function addLiquidity() external onlyOwner() {
require(!m_Liquidity,"Liquidity already added.");
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
m_UniswapV2Router = _uniswapV2Router;
_approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY);
m_UniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
m_UniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(m_UniswapV2Pair).approve(address(m_UniswapV2Router), type(uint).max);
m_Liquidity = true;
}
function launch(uint256 _timer) external onlyOwner() {
m_Launched = block.timestamp.add(_timer);
m_AntiBot = true;
m_Round = 1;
m_RoundStart = m_Launched;
m_Raffle[m_Round].push(Buyer(address(0),0,false));
}
function _updateDAO(address _sender, uint256 _amount) private {
uint256 _senderBal = balanceOf(_sender);
if(_sender != m_UniswapV2Pair && _sender != address(this)){
if(_senderBal > m_DAOmin){
if(_senderBal.sub(_amount) < m_DAOmin){
_cleanVotes(_sender);
}
}
}
}
function _cleanVotes(address _sender) private {
if(m_VoterIdx[m_VoteCycle][msg.sender] != 0){
delete m_Voters[m_VoteCycle][m_VoterIdx[m_VoteCycle][_sender]];
m_VoterIdx[m_VoteCycle][msg.sender] = 0;
}
}
function _trackBuy(address _recipient,uint256 _amount) private {
if(m_BuyerId[m_Round][_recipient] != 0){
m_Raffle[m_Round][m_BuyerId[m_Round][_recipient]].amount += _amount;
}
else{
m_Raffle[m_Round].push(Buyer(_recipient, _amount, true));
m_BuyerId[m_Round][_recipient] = m_Raffle[m_Round].length - 1;
}
}
function _trackSell(address _sender) private {
if(m_BuyerId[m_Round][_sender] != 0)
m_Raffle[m_Round][m_BuyerId[m_Round][_sender]].eligible = false;
else{
m_Raffle[m_Round].push(Buyer(_sender, 0, false));
m_BuyerId[m_Round][_sender] = m_Raffle[m_Round].length - 1;
}
}
function _swapTokensForETH(uint256 _amount) private {
address[] memory _path = new address[](2);
_path[0] = address(this);
_path[1] = m_UniswapV2Router.WETH();
_approve(address(this), address(m_UniswapV2Router), _amount);
m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
_amount,
0,
_path,
address(this),
block.timestamp
);
}
function _disperseETH(address[] memory _winners, address _specialWinner, uint256 _invalid) private {
uint256 _bal = address(this).balance;
if(_invalid == 0){
uint256 _denom = _getTaxDenominator();
uint256 _marketingShare = _bal.mul(m_MarketingTax).div(_denom);
uint256 _share = _bal.mul(m_RaffleTax).div(_denom).div(_winners.length);
uint256 _largestShare = _bal.mul(m_LargestBuyerTax).div(_denom).div(_winners.length);
if (_marketingShare > 0) {
m_MarketingWallet.transfer(_marketingShare);
_bal = _bal.sub(_marketingShare);
}
m_TotalWinnings += _bal;
if(_share > 0){
for(uint256 i=0; i<_winners.length; i++){
if(_share > address(this).balance)
_share = address(this).balance;
if(m_Raffle[m_Round][m_BuyerId[m_Round][_winners[i]]].eligible){
m_Winners.push(_winners[i]);
m_Winnings.push(_share);
m_Earnings[_winners[i]] += _share;
payable(_winners[i]).transfer(_share);
}
_bal = _bal.sub(_share);
}
}
if(_specialWinner != address(0) && _largestShare > 0){
if(_largestShare > address(this).balance)
_largestShare = address(this).balance;
if(m_Raffle[m_Round][m_BuyerId[m_Round][_specialWinner]].eligible){
m_Winners.push(_specialWinner);
m_Winnings.push(_bal);
m_Earnings[_specialWinner] += _bal;
payable(_specialWinner).transfer(_bal);
}
}
}
else
m_MarketingWallet.transfer(_bal.div(_invalid));
}
function _getTaxDenominator() private view returns (uint256) {
uint256 _ret = m_MarketingTax;
_ret += m_LargestBuyerTax;
_ret += m_RaffleTax;
return _ret;
}
function _applyRoundSettings(uint256 _raffleTax, uint256 _biggestTax, uint256 _interval) private {
if(m_RaffleTax != _raffleTax)
m_RaffleTax = _raffleTax;
if(m_LargestBuyerTax != _biggestTax)
m_LargestBuyerTax = _biggestTax;
if(m_Interval != _interval)
m_Interval = _interval;
}
function updateMarketingTax(uint256 _value) external onlyOwner() {
m_MarketingTax = _value;
}
function viewWinners() external view returns (address[] memory, uint256[] memory) {
return (m_Winners, m_Winnings);
}
function earningsOf(address _address) external view returns (uint256) {
return m_Earnings[_address];
}
function vote(uint256 _raffle, uint256 _biggest, uint256 _interval) external {
require(balanceOf(msg.sender) >= m_DAOmin);
require(_raffle >= 1000);
require(_raffle <= 7000);
require(_biggest >= 0);
require(_biggest <= 7000);
require(_interval >= 900);
require(_interval <= 86400);
if(m_VoterIdx[m_VoteCycle][msg.sender] == 0){
m_Voters[m_VoteCycle].push(Vote(_interval, _raffle, _biggest, 0));
m_VoterIdx[m_VoteCycle][msg.sender] = m_Voters[m_VoteCycle].length - 1;
}
else{
m_Voters[m_VoteCycle][m_VoterIdx[m_VoteCycle][msg.sender]].raffleTax = _raffle;
m_Voters[m_VoteCycle][m_VoterIdx[m_VoteCycle][msg.sender]].biggestTax = _biggest;
m_Voters[m_VoteCycle][m_VoterIdx[m_VoteCycle][msg.sender]].interval = _interval;
}
}
function voteForGeneric(uint256 _value) external {
require(balanceOf(msg.sender) >= m_DAOmin);
if(m_VoterIdx[m_VoteCycle][msg.sender] == 0){
m_Voters[m_VoteCycle].push(Vote(0, 0, 0, _value));
m_VoterIdx[m_VoteCycle][msg.sender] = m_Voters[m_VoteCycle].length - 1;
}
else
m_Voters[m_VoteCycle][m_VoterIdx[m_VoteCycle][msg.sender]].generic = _value;
}
function getVotes() external view returns (Vote[] memory) {
return m_Voters[m_VoteCycle];
}
function getBuyers() external view returns (Buyer[] memory, Buyer[] memory) {
return (m_Raffle[m_Round-1], m_Raffle[m_Round]);
}
function getGameState() external view returns (GameState memory) {
return GameState(m_Round,m_Interval,m_RaffleTax,m_LargestBuyerTax);
}
function resetGame(address[] memory _winners, address _specialWinner, uint256 _raffleTax, uint256 _biggestTax, uint256 _interval, uint256 _cycle, uint256 _invalid) external {
require(msg.sender == m_Controller);
uint256 _bal = balanceOf(address(this));
_swapTokensForETH(_bal);
_disperseETH(_winners, _specialWinner, _invalid);
_applyRoundSettings(_raffleTax, _biggestTax, _interval);
m_Round += 1;
m_RoundStart = block.timestamp;
m_Raffle[m_Round].push(Buyer(address(0), 0, false));
if (_cycle != m_VoteCycle)
m_Voters[_cycle].push(Vote(0,0,0,0));
m_VoteCycle = _cycle;
}
function getTotalWinnings() external view returns (uint256){
return m_TotalWinnings;
}
function emergencyReclaim() external onlyOwner() {
m_MarketingWallet.transfer(address(this).balance);
}
function toggleAntibot() external onlyOwner() {
if(m_AntiBot){
m_AntiBot = false;
return;
}
m_AntiBot = true;
}
function addTaxWhitelist(address _address) external onlyOwner() {
m_ExcludedAddresses[_address] = true;
}
function remTaxWhitelist(address _address) external onlyOwner() {
m_ExcludedAddresses[_address] = false;
}
function adjustWalletCap(uint256 _factor) external onlyOwner(){
m_WalletLimit = TOTAL_SUPPLY.div(_factor);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
earningsOf 0x8df08bd4 → uint256
getBuyers 0xf64bfaba → tuple[], tuple[]
getGameState 0xb7d0628b → tuple
getTotalWinnings 0x9b057610 → uint256
getVotes 0x0dc96015 → tuple[]
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
viewWinners 0xda44d275 → address[], uint256[]
Write Contract 15 functions
These functions modify contract state and require a wallet transaction to execute.
addLiquidity 0xe8078d94
No parameters
addTaxWhitelist 0xd0040d70
address _address
adjustWalletCap 0x5f56f8c2
uint256 _factor
approve 0x095ea7b3
address _spender
uint256 _amount
returns: bool
emergencyReclaim 0x17b95885
No parameters
launch 0x85b12c7c
uint256 _timer
remTaxWhitelist 0x5c6ee14a
address _address
resetGame 0x0f34b97d
address[] _winners
address _specialWinner
uint256 _raffleTax
uint256 _biggestTax
uint256 _interval
uint256 _cycle
uint256 _invalid
toggleAntibot 0xda98c40b
No parameters
transfer 0xa9059cbb
address _recipient
uint256 _amount
returns: bool
transferFrom 0x23b872dd
address _sender
address _recipient
uint256 _amount
returns: bool
transferOwnership 0xf2fde38b
address _newOwner
updateMarketingTax 0x0089716a
uint256 _value
vote 0x8a6655d6
uint256 _raffle
uint256 _biggest
uint256 _interval
voteForGeneric 0x3cbc58d5
uint256 _value
Recent Transactions
No transactions found for this address