Address Contract Partially Verified
Address
0xa13167CDF11bd1783dc1cb8BA7CdB6991dC0583A
Balance
0 ETH
Nonce
1
Code Size
20430 bytes
Creator
0x2bc846E6...7b75 at tx 0xfcd3771b...40961e
Indexed Transactions
0
Contract Bytecode
20430 bytes
0x6080604052600436106103035760003560e01c80638a8c523c11610190578063c867d60b116100dc578063e9fd339411610095578063f708a64f1161006f578063f708a64f14610b8b578063f872858a14610bb4578063f887ea4014610bdf578063ffc0a03114610c0a5761030a565b8063e9fd339414610b0e578063ee828db314610b39578063f2fde38b14610b625761030a565b8063c867d60b14610a00578063cc1776d314610a3d578063cea9d26f14610a68578063dd62ed3e14610a91578063df8408fe14610ace578063e6b2603b14610af75761030a565b8063a8aa1b3111610149578063b94b0aef11610123578063b94b0aef14610958578063bf56b37114610981578063bfe10928146109ac578063c0b4d199146109d75761030a565b8063a8aa1b31146108c7578063a9059cbb146108f2578063ae85ade61461092f5761030a565b80638a8c523c146107b75780638b42507f146107ce5780638da5cb5b1461080b57806395d89b4114610836578063a457c2d714610861578063a6d3472a1461089e5761030a565b80634974d88f1161024f5780636ddd171311610208578063728d41c9116101e2578063728d41c914610721578063751039fc1461074a5780637d1db4a514610761578063807c2d9c1461078c5761030a565b80636ddd1713146106a257806370a08231146106cd578063715018a61461070a5761030a565b80634974d88f146105945780634f7041a5146105bd5780635342acb4146105e85780635c85974f146106255780635e42358c1461064e578063651a8987146106795761030a565b80631d865c30116102bc578063313ce56711610296578063313ce567146104b257806339509351146104dd5780633ecad2711461051a5780634355855a146105575761030a565b80631d865c301461042357806323b872dd1461044c57806325519cf2146104895761030a565b80630445b6671461030f57806306fdde031461033a578063095ea7b314610365578063111a4651146103a25780631693e8d4146103cd57806318160ddd146103f85761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c33565b6040516103319190613ec7565b60405180910390f35b34801561034657600080fd5b5061034f610c39565b60405161035c9190613f7b565b60405180910390f35b34801561037157600080fd5b5061038c6004803603810190610387919061402c565b610ccb565b6040516103999190614087565b60405180910390f35b3480156103ae57600080fd5b506103b7610ce9565b6040516103c49190614087565b60405180910390f35b3480156103d957600080fd5b506103e2610cfc565b6040516103ef9190614087565b60405180910390f35b34801561040457600080fd5b5061040d610d0f565b60405161041a9190613ec7565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906140a2565b610d19565b005b34801561045857600080fd5b50610473600480360381019061046e91906140f5565b610de0565b6040516104809190614087565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906140a2565b610ed7565b005b3480156104be57600080fd5b506104c7610f9e565b6040516104d49190614164565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff919061402c565b610fb5565b6040516105119190614087565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c919061417f565b611068565b60405161054e9190614087565b60405180910390f35b34801561056357600080fd5b5061057e6004803603810190610579919061417f565b611088565b60405161058b9190614087565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906141d8565b6110a8565b005b3480156105c957600080fd5b506105d2611141565b6040516105df9190613ec7565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a919061417f565b611147565b60405161061c9190614087565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190614205565b611167565b005b34801561065a57600080fd5b506106636111ed565b6040516106709190614087565b60405180910390f35b34801561068557600080fd5b506106a0600480360381019061069b9190614232565b611200565b005b3480156106ae57600080fd5b506106b76112d7565b6040516106c49190614087565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef919061417f565b6112ea565b6040516107019190613ec7565b60405180910390f35b34801561071657600080fd5b5061071f611333565b005b34801561072d57600080fd5b5061074860048036038101906107439190614205565b6113bb565b005b34801561075657600080fd5b5061075f611441565b005b34801561076d57600080fd5b506107766114f5565b6040516107839190613ec7565b60405180910390f35b34801561079857600080fd5b506107a16114fb565b6040516107ae9190613ec7565b60405180910390f35b3480156107c357600080fd5b506107cc611501565b005b3480156107da57600080fd5b506107f560048036038101906107f0919061417f565b6115f9565b6040516108029190614087565b60405180910390f35b34801561081757600080fd5b50610820611619565b60405161082d9190614281565b60405180910390f35b34801561084257600080fd5b5061084b611642565b6040516108589190613f7b565b60405180910390f35b34801561086d57600080fd5b506108886004803603810190610883919061402c565b6116d4565b6040516108959190614087565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c0919061417f565b6117a1565b005b3480156108d357600080fd5b506108dc611861565b6040516108e99190614281565b60405180910390f35b3480156108fe57600080fd5b506109196004803603810190610914919061402c565b611887565b6040516109269190614087565b60405180910390f35b34801561093b57600080fd5b5061095660048036038101906109519190614232565b6118a6565b005b34801561096457600080fd5b5061097f600480360381019061097a919061429c565b61197d565b005b34801561098d57600080fd5b50610996611a4d565b6040516109a39190613ec7565b60405180910390f35b3480156109b857600080fd5b506109c1611a53565b6040516109ce919061434e565b60405180910390f35b3480156109e357600080fd5b506109fe60048036038101906109f9919061417f565b611a79565b005b348015610a0c57600080fd5b50610a276004803603810190610a22919061417f565b611b39565b604051610a349190614087565b60405180910390f35b348015610a4957600080fd5b50610a52611b59565b604051610a5f9190613ec7565b60405180910390f35b348015610a7457600080fd5b50610a8f6004803603810190610a8a91906140f5565b611b5f565b005b348015610a9d57600080fd5b50610ab86004803603810190610ab39190614369565b611d31565b604051610ac59190613ec7565b60405180910390f35b348015610ada57600080fd5b50610af56004803603810190610af09190614232565b611db8565b005b348015610b0357600080fd5b50610b0c611e8f565b005b348015610b1a57600080fd5b50610b23611fce565b604051610b309190614087565b60405180910390f35b348015610b4557600080fd5b50610b606004803603810190610b5b91906141d8565b611fe1565b005b348015610b6e57600080fd5b50610b896004803603810190610b84919061417f565b61207a565b005b348015610b9757600080fd5b50610bb26004803603810190610bad9190614232565b612171565b005b348015610bc057600080fd5b50610bc961240a565b604051610bd69190614087565b60405180910390f35b348015610beb57600080fd5b50610bf461241d565b604051610c0191906143ca565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c919061417f565b612443565b005b60195481565b606060138054610c4890614414565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7490614414565b8015610cc15780601f10610c9657610100808354040283529160200191610cc1565b820191906000526020600020905b815481529060010190602001808311610ca457829003601f168201915b5050505050905090565b6000610cdf610cd86125c7565b84846125cf565b6001905092915050565b601f60009054906101000a900460ff1681565b601c60149054906101000a900460ff1681565b6000601654905090565b610d216125c7565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611619565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90614491565b60405180910390fd5b826004819055508160058190555080600681905550610dd5600654610dc760055460045461279890919063ffffffff16565b61279890919063ffffffff16565b600881905550505050565b6000610ded8484846127f6565b50610ecc84610dfa6125c7565b610ec7856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e7d6125c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b6125cf565b600190509392505050565b610edf6125c7565b73ffffffffffffffffffffffffffffffffffffffff16610efd611619565b73ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90614491565b60405180910390fd5b826001819055508160028190555080600381905550610f93600354610f8560025460015461279890919063ffffffff16565b61279890919063ffffffff16565b600781905550505050565b6000601560009054906101000a900460ff16905090565b600061105e610fc26125c7565b8461105985600d6000610fd36125c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b6125cf565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b6110b06125c7565b73ffffffffffffffffffffffffffffffffffffffff166110ce611619565b73ffffffffffffffffffffffffffffffffffffffff1614611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90614491565b60405180910390fd5b80601a60036101000a81548160ff02191690831515021790555050565b60075481565b600e6020528060005260406000206000915054906101000a900460ff1681565b61116f6125c7565b73ffffffffffffffffffffffffffffffffffffffff1661118d611619565b73ffffffffffffffffffffffffffffffffffffffff16146111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90614491565b60405180910390fd5b8060178190555050565b601a60029054906101000a900460ff1681565b6112086125c7565b73ffffffffffffffffffffffffffffffffffffffff16611226611619565b73ffffffffffffffffffffffffffffffffffffffff161461127c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127390614491565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61133b6125c7565b73ffffffffffffffffffffffffffffffffffffffff16611359611619565b73ffffffffffffffffffffffffffffffffffffffff16146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690614491565b60405180910390fd5b6113b9600061314d565b565b6113c36125c7565b73ffffffffffffffffffffffffffffffffffffffff166113e1611619565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90614491565b60405180910390fd5b8060188190555050565b6114496125c7565b73ffffffffffffffffffffffffffffffffffffffff16611467611619565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490614491565b60405180910390fd5b6000601a60026101000a81548160ff0219169083151502179055506000601a60036101000a81548160ff021916908315150217905550565b60175481565b60185481565b6115096125c7565b73ffffffffffffffffffffffffffffffffffffffff16611527611619565b73ffffffffffffffffffffffffffffffffffffffff161461157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490614491565b60405180910390fd5b601c60149054906101000a900460ff16156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c4906144fd565b60405180910390fd5b6001601c60146101000a81548160ff02191690831515021790555042601d8190555060b4601e81905550565b60116020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606014805461165190614414565b80601f016020809104026020016040519081016040528092919081815260200182805461167d90614414565b80156116ca5780601f1061169f576101008083540402835291602001916116ca565b820191906000526020600020905b8154815290600101906020018083116116ad57829003601f168201915b5050505050905090565b60006117976116e16125c7565b8461179285604051806060016040528060258152602001614f7460259139600d600061170b6125c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b6125cf565b6001905092915050565b6117a96125c7565b73ffffffffffffffffffffffffffffffffffffffff166117c7611619565b73ffffffffffffffffffffffffffffffffffffffff161461181d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181490614491565b60405180910390fd5b80601a60046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061189b6118946125c7565b84846127f6565b506001905092915050565b6118ae6125c7565b73ffffffffffffffffffffffffffffffffffffffff166118cc611619565b73ffffffffffffffffffffffffffffffffffffffff1614611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191990614491565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0490614569565b60405180910390fd5b81601a60006101000a81548160ff02191690831515021790555080601a60016101000a81548160ff02191690831515021790555082601981905550505050565b601d5481565b601a60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a816125c7565b73ffffffffffffffffffffffffffffffffffffffff16611a9f611619565b73ffffffffffffffffffffffffffffffffffffffff1614611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90614491565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b60085481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be690614569565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611c1b929190614589565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ca591906145f9565b6000604051808303816000865af19150503d8060008114611ce2576040519150601f19603f3d011682016040523d82523d6000602084013e611ce7565b606091505b5050905080611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d229061465c565b60405180910390fd5b50505050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611dc06125c7565b73ffffffffffffffffffffffffffffffffffffffff16611dde611619565b73ffffffffffffffffffffffffffffffffffffffff1614611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b90614491565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1690614569565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611f45906146a2565b60006040518083038185875af1925050503d8060008114611f82576040519150601f19603f3d011682016040523d82523d6000602084013e611f87565b606091505b5050905080611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290614703565b60405180910390fd5b50565b601a60019054906101000a900460ff1681565b611fe96125c7565b73ffffffffffffffffffffffffffffffffffffffff16612007611619565b73ffffffffffffffffffffffffffffffffffffffff161461205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490614491565b60405180910390fd5b80601a60026101000a81548160ff02191690831515021790555050565b6120826125c7565b73ffffffffffffffffffffffffffffffffffffffff166120a0611619565b73ffffffffffffffffffffffffffffffffffffffff16146120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed90614491565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215c90614795565b60405180910390fd5b61216e8161314d565b50565b6121796125c7565b73ffffffffffffffffffffffffffffffffffffffff16612197611619565b73ffffffffffffffffffffffffffffffffffffffff16146121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e490614491565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122735750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61227c57600080fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561236e57601a60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016123379291906147f0565b600060405180830381600087803b15801561235157600080fd5b505af1158015612365573d6000803e3d6000fd5b50505050612406565b601a60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96836123b6856112ea565b6040518363ffffffff1660e01b81526004016123d3929190614589565b600060405180830381600087803b1580156123ed57600080fd5b505af1158015612401573d6000803e3d6000fd5b505050505b5050565b601a60039054906101000a900460ff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61244b6125c7565b73ffffffffffffffffffffffffffffffffffffffff16612469611619565b73ffffffffffffffffffffffffffffffffffffffff16146124bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b690614491565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083036125155760009050612577565b600082846125239190614848565b905082848261253291906148d1565b14612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256990614974565b60405180910390fd5b809150505b92915050565b60006125bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613211565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361263e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263590614a06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490614a98565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161278b9190613ec7565b60405180910390a3505050565b60008082846127a79190614ab8565b9050838110156127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e390614b5a565b60405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361283057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361286957600080fd5b6000821161287657600080fd5b601f60019054906101000a900460ff161561289d57612896848484613274565b90506130e2565b601c60149054906101000a900460ff1661299257600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129525750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298890614bc6565b60405180910390fd5b5b601c60149054906101000a900460ff1680156129bc5750601e54601d546129b99190614ab8565b42115b80156129d55750601f60009054906101000a900460ff16155b156129fe576129e2613447565b6001601f60006101000a81548160ff0219169083151502179055505b6000612a09306112ea565b905060006019548210159050808015612a2f5750601f60019054906101000a900460ff16155b8015612a855750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a9d5750601a60009054906101000a900460ff165b8015612af35750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b495750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b5857612b5782613488565b5b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612bfc5750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c145750601a60029054906101000a900460ff165b15612c5f57601754841115612c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5590614c32565b60405180910390fd5b5b612ce8846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612d378787613791565b612d4b57612d468787876138fc565b612d4d565b845b9050601a60039054906101000a900460ff168015612db55750601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e1a57601854612dd882612dca896112ea565b61279890919063ffffffff16565b1115612e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1090614c9e565b60405180910390fd5b5b612e6c81600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612f9257601a60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688612f488a6112ea565b6040518363ffffffff1660e01b8152600401612f65929190614589565b600060405180830381600087803b158015612f7f57600080fd5b505af1925050508015612f90575060015b505b601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661307557601a60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968761302b896112ea565b6040518363ffffffff1660e01b8152600401613048929190614589565b600060405180830381600087803b15801561306257600080fd5b505af1925050508015613073575060015b505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130d29190613ec7565b60405180910390a3600193505050505b9392505050565b6000838311158290613131576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131289190613f7b565b60405180910390fd5b50600083856131409190614cbe565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290613258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324f9190613f7b565b60405180910390fd5b506000838561326791906148d1565b9050809150509392505050565b60006132ff826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061339482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134349190613ec7565b60405180910390a3600190509392505050565b600180819055506001600281905550600160038190555060036007819055506001600481905550600260058190555060026006819055506005600881905550565b6001601f60016101000a81548160ff021916908315150217905550601a60019054906101000a900460ff16156134be5760195490505b60006134d760085460075461279890919063ffffffff16565b9050600081036134e75750613773565b600061350060045460015461279890919063ffffffff16565b9050600061351b60055460025461279890919063ffffffff16565b9050600061355760026135498661353b878a61250390919063ffffffff16565b61257d90919063ffffffff16565b61257d90919063ffffffff16565b9050600061356e8287613b2190919063ffffffff16565b9050600047905061357e82613b6b565b60006135938247613b2190919063ffffffff16565b905060006135bd6135ae60028961257d90919063ffffffff16565b89613b2190919063ffffffff16565b905060006135f960026135eb846135dd8c8861250390919063ffffffff16565b61257d90919063ffffffff16565b61257d90919063ffffffff16565b90506000613622836136148a8761250390919063ffffffff16565b61257d90919063ffffffff16565b9050600061364b8361363d8488613b2190919063ffffffff16565b613b2190919063ffffffff16565b905060008211156136c057600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156136be573d6000803e3d6000fd5b505b600081111561374757601a60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561373357600080fd5b505af193505050508015613745575060015b505b6000831180156137575750600088115b15613767576137668884613dae565b5b50505050505050505050505b6000601f60016101000a81548160ff02191690831515021790555050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138345750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561384257600190506138f6565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138e35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138f157600090506138f6565b600090505b92915050565b600080600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156139815761397a60095461396c6007548661250390919063ffffffff16565b61257d90919063ffffffff16565b9050613a00565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156139ff576139fc6009546139ee6008548661250390919063ffffffff16565b61257d90919063ffffffff16565b90505b5b6000811115613b0457613a5b81600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613ec7565b60405180910390a35b613b178184613b2190919063ffffffff16565b9150509392505050565b6000613b6383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e9565b905092915050565b6000600267ffffffffffffffff811115613b8857613b87614cf2565b5b604051908082528060200260200182016040528015613bb65781602001602082028036833780820191505090505b5090503081600081518110613bce57613bcd614d21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c999190614d65565b81600181518110613cad57613cac614d21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d1430601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125cf565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d78959493929190614e50565b600060405180830381600087803b158015613d9257600080fd5b505af1158015613da6573d6000803e3d6000fd5b505050505050565b613ddb30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125cf565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e6496959493929190614eaa565b60606040518083038185885af1158015613e82573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ea79190614f20565b5050505050565b6000819050919050565b613ec181613eae565b82525050565b6000602082019050613edc6000830184613eb8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f1c578082015181840152602081019050613f01565b83811115613f2b576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f4d82613ee2565b613f578185613eed565b9350613f67818560208601613efe565b613f7081613f31565b840191505092915050565b60006020820190508181036000830152613f958184613f42565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fcd82613fa2565b9050919050565b613fdd81613fc2565b8114613fe857600080fd5b50565b600081359050613ffa81613fd4565b92915050565b61400981613eae565b811461401457600080fd5b50565b60008135905061402681614000565b92915050565b6000806040838503121561404357614042613f9d565b5b600061405185828601613feb565b925050602061406285828601614017565b9150509250929050565b60008115159050919050565b6140818161406c565b82525050565b600060208201905061409c6000830184614078565b92915050565b6000806000606084860312156140bb576140ba613f9d565b5b60006140c986828701614017565b93505060206140da86828701614017565b92505060406140eb86828701614017565b9150509250925092565b60008060006060848603121561410e5761410d613f9d565b5b600061411c86828701613feb565b935050602061412d86828701613feb565b925050604061413e86828701614017565b9150509250925092565b600060ff82169050919050565b61415e81614148565b82525050565b60006020820190506141796000830184614155565b92915050565b60006020828403121561419557614194613f9d565b5b60006141a384828501613feb565b91505092915050565b6141b58161406c565b81146141c057600080fd5b50565b6000813590506141d2816141ac565b92915050565b6000602082840312156141ee576141ed613f9d565b5b60006141fc848285016141c3565b91505092915050565b60006020828403121561421b5761421a613f9d565b5b600061422984828501614017565b91505092915050565b6000806040838503121561424957614248613f9d565b5b600061425785828601613feb565b9250506020614268858286016141c3565b9150509250929050565b61427b81613fc2565b82525050565b60006020820190506142966000830184614272565b92915050565b6000806000606084860312156142b5576142b4613f9d565b5b60006142c386828701614017565b93505060206142d4868287016141c3565b92505060406142e5868287016141c3565b9150509250925092565b6000819050919050565b600061431461430f61430a84613fa2565b6142ef565b613fa2565b9050919050565b6000614326826142f9565b9050919050565b60006143388261431b565b9050919050565b6143488161432d565b82525050565b6000602082019050614363600083018461433f565b92915050565b600080604083850312156143805761437f613f9d565b5b600061438e85828601613feb565b925050602061439f85828601613feb565b9150509250929050565b60006143b48261431b565b9050919050565b6143c4816143a9565b82525050565b60006020820190506143df60008301846143bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061442c57607f821691505b60208210810361443f5761443e6143e5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061447b602083613eed565b915061448682614445565b602082019050919050565b600060208201905081810360008301526144aa8161446e565b9050919050565b7f547261646520456e61626c656421000000000000000000000000000000000000600082015250565b60006144e7600e83613eed565b91506144f2826144b1565b602082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b7f556e617574686f72697a65642100000000000000000000000000000000000000600082015250565b6000614553600d83613eed565b915061455e8261451d565b602082019050919050565b6000602082019050818103600083015261458281614546565b9050919050565b600060408201905061459e6000830185614272565b6145ab6020830184613eb8565b9392505050565b600081519050919050565b600081905092915050565b60006145d3826145b2565b6145dd81856145bd565b93506145ed818560208601613efe565b80840191505092915050565b600061460582846145c8565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000614646601483613eed565b915061465182614610565b602082019050919050565b6000602082019050818103600083015261467581614639565b9050919050565b50565b600061468c6000836145bd565b91506146978261467c565b600082019050919050565b60006146ad8261467f565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b60006146ed601483613eed565b91506146f8826146b7565b602082019050919050565b6000602082019050818103600083015261471c816146e0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061477f602683613eed565b915061478a82614723565b604082019050919050565b600060208201905081810360008301526147ae81614772565b9050919050565b6000819050919050565b60006147da6147d56147d0846147b5565b6142ef565b613eae565b9050919050565b6147ea816147bf565b82525050565b60006040820190506148056000830185614272565b61481260208301846147e1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061485382613eae565b915061485e83613eae565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561489757614896614819565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006148dc82613eae565b91506148e783613eae565b9250826148f7576148f66148a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061495e602183613eed565b915061496982614902565b604082019050919050565b6000602082019050818103600083015261498d81614951565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149f0602483613eed565b91506149fb82614994565b604082019050919050565b60006020820190508181036000830152614a1f816149e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a82602283613eed565b9150614a8d82614a26565b604082019050919050565b60006020820190508181036000830152614ab181614a75565b9050919050565b6000614ac382613eae565b9150614ace83613eae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614b0357614b02614819565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614b44601b83613eed565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f54726164696e6720506175736564000000000000000000000000000000000000600082015250565b6000614bb0600e83613eed565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b6000614c1c601383613eed565b9150614c2782614be6565b602082019050919050565b60006020820190508181036000830152614c4b81614c0f565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000614c88600e83613eed565b9150614c9382614c52565b602082019050919050565b60006020820190508181036000830152614cb781614c7b565b9050919050565b6000614cc982613eae565b9150614cd483613eae565b925082821015614ce757614ce6614819565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614d5f81613fd4565b92915050565b600060208284031215614d7b57614d7a613f9d565b5b6000614d8984828501614d50565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dc781613fc2565b82525050565b6000614dd98383614dbe565b60208301905092915050565b6000602082019050919050565b6000614dfd82614d92565b614e078185614d9d565b9350614e1283614dae565b8060005b83811015614e43578151614e2a8882614dcd565b9750614e3583614de5565b925050600181019050614e16565b5085935050505092915050565b600060a082019050614e656000830188613eb8565b614e7260208301876147e1565b8181036040830152614e848186614df2565b9050614e936060830185614272565b614ea06080830184613eb8565b9695505050505050565b600060c082019050614ebf6000830189614272565b614ecc6020830188613eb8565b614ed960408301876147e1565b614ee660608301866147e1565b614ef36080830185614272565b614f0060a0830184613eb8565b979650505050505050565b600081519050614f1a81614000565b92915050565b600080600060608486031215614f3957614f38613f9d565b5b6000614f4786828701614f0b565b9350506020614f5886828701614f0b565b9250506040614f6986828701614f0b565b915050925092509256fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122039c0f03f9b07f99e799592288ba8b3e51cd7d9bf805b98bcddc0154da2ced9f864736f6c634300080f0033
Verified Source Code Partial Match
Compiler: v0.8.15+commit.e14f2714
EVM: london
Optimization: No
DORK.sol 676 lines
/*
🌎 Website: https://dorkplay.online
✅ Telegram: Portal: https://t.me/dorkplayportal
✔️ Twitter: https://twitter.com/DorkPlayETH
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
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 Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_setOwner(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any _account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
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;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
interface IDexSwapFactory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDexSwapPair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IDexSwapRouter {
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);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
}
interface IDividendDistributor {
function setShare(address shareholder, uint256 amount) external;
function deposit() external payable;
}
contract DORK is Context, IERC20, Ownable {
using SafeMath for uint256;
uint256 private buyLiquidityFee = 0;
uint256 private buyMarketingFee = 15;
uint256 private buyRewardsFee = 0;
uint256 private sellLiquidityFee = 0;
uint256 private sellMarketingFee = 35;
uint256 private sellRewardsFee = 0;
uint256 public buyTax = 15;
uint256 public sellTax = 35;
uint256 private feeDenominator = 100;
address private liquidityWallet;
address private _marketingWallet = address(0x2bc846E6FCe00f096E2C9F66879f74C319f77b75);
address private constant deadWallet = 0x000000000000000000000000000000000000dEaD;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public isExcludedFromFee;
mapping (address => bool) public isMarketPair;
mapping (address => bool) public isWalletLimitExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public isDividendExempt;
string private _name = "Dorkplay";
string private _symbol = "DORK";
uint8 private _decimals = 18;
uint256 private _totalSupply = 4_000_000 * 10**_decimals;
uint256 public _maxTxAmount = _totalSupply.mul(4).div(100); // 4%
uint256 public _walletMax = _totalSupply.mul(4).div(100); // 4%
uint256 public swapThreshold = _totalSupply.mul(1).div(100);
bool public swapEnabled = true;
bool public swapbylimit = true;
bool public EnableTxLimit = true;
bool public checkWalletLimit = true;
IDividendDistributor public distributor;
address public pair;
IDexSwapRouter public router;
bool public tradingEnable;
uint256 public launchedAt;
uint256 private launchCooldown;
bool public normalizeTrade;
bool inSwap = false;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
constructor() {
liquidityWallet = msg.sender;
router = IDexSwapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
pair = IDexSwapFactory(router.factory()).createPair(
router.WETH(),
address(this)
);
_allowances[address(this)][address(router)] = ~uint256(0);
isDividendExempt[msg.sender] = true;
isDividendExempt[pair] = true;
isDividendExempt[address(this)] = true;
isDividendExempt[deadWallet] = true;
isWalletLimitExempt[msg.sender] = true;
isWalletLimitExempt[pair] = true;
isWalletLimitExempt[address(this)] = true;
isWalletLimitExempt[deadWallet] = true;
isExcludedFromFee[msg.sender] = true;
isExcludedFromFee[address(this)] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[deadWallet] = true;
isTxLimitExempt[address(this)] = true;
isMarketPair[pair] = true;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0x0), msg.sender, _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
//to recieve ETH from Router when swaping
receive() external payable {}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: Exceeds allowance"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
require(sender != address(0));
require(recipient != address(0));
require(amount > 0);
if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}
else {
if(!tradingEnable) {
require(isExcludedFromFee[sender] || isExcludedFromFee[recipient], "Trading Paused");
}
if (tradingEnable && block.timestamp > launchedAt + launchCooldown && !normalizeTrade) {
normalizeTax();
normalizeTrade = true;
}
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;
if (
overMinimumTokenBalance &&
!inSwap &&
!isMarketPair[sender] &&
swapEnabled &&
!isExcludedFromFee[sender] &&
!isExcludedFromFee[recipient]
) {
swapBack(contractTokenBalance);
}
if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
}
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);
if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
}
_balances[recipient] = _balances[recipient].add(finalAmount);
if(!isDividendExempt[sender]){ try distributor.setShare(sender, balanceOf(sender)) {} catch {} }
if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, balanceOf(recipient)) {} catch {} }
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
return true;
}
else if (isMarketPair[sender] || isMarketPair[recipient]) {
return false;
}
else {
return false;
}
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint feeAmount;
unchecked {
if(isMarketPair[sender]) {
feeAmount = amount.mul(buyTax).div(feeDenominator);
}
else if(isMarketPair[recipient]) {
feeAmount = amount.mul(sellTax).div(feeDenominator);
}
if(feeAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
}
function swapBack(uint contractBalance) internal swapping {
if(swapbylimit) contractBalance = swapThreshold;
uint256 totalShares = buyTax.add(sellTax);
if(totalShares == 0) return;
uint256 _liquidityShare = buyLiquidityFee.add(sellLiquidityFee);
uint256 _MarketingShare = buyMarketingFee.add(sellMarketingFee);
// uint256 _RewardShare = buyRewardsFee.add(sellRewardsFee);
uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
uint256 tokensForSwap = contractBalance.sub(tokensForLP);
uint256 initialBalance = address(this).balance;
swapTokensForEth(tokensForSwap);
uint256 amountReceived = address(this).balance.sub(initialBalance);
uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));
uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
uint256 amountETHMarketing = amountReceived.mul(_MarketingShare).div(totalETHFee);
uint256 amountETHReward = amountReceived.sub(amountETHMarketing).sub(amountETHLiquidity);
if(amountETHMarketing > 0)
payable(_marketingWallet).transfer(amountETHMarketing);
if(amountETHReward > 0)
try distributor.deposit { value: amountETHReward } () {} catch {}
if(amountETHLiquidity > 0 && tokensForLP > 0)
addLiquidity(tokensForLP, amountETHLiquidity);
}
function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
require(holder != address(this) && !isMarketPair[holder]);
isDividendExempt[holder] = exempt;
if (exempt) {
distributor.setShare(holder, 0);
} else {
distributor.setShare(holder, balanceOf(holder));
}
}
function rescueFunds() external {
require(msg.sender == liquidityWallet,"Unauthorized!");
(bool os,) = payable(msg.sender).call{value: address(this).balance}("");
require(os,"Transaction Failed!!");
}
function rescueTokens(address _token,address recipient,uint _amount) external {
require(msg.sender == liquidityWallet,"Unauthorized!");
(bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)', recipient, _amount));
require(success, 'Token payment failed');
}
function setBuyFee(uint _lp, uint _marketing, uint _reward) external onlyOwner {
buyLiquidityFee = _lp;
buyMarketingFee = _marketing;
buyRewardsFee = _reward;
buyTax = buyLiquidityFee.add(buyMarketingFee).add(buyRewardsFee);
}
function setSellFee(uint _lp, uint _marketing, uint _reward) external onlyOwner {
sellLiquidityFee = _lp;
sellMarketingFee = _marketing;
sellRewardsFee = _reward;
sellTax = sellLiquidityFee.add(sellMarketingFee).add(sellRewardsFee);
}
function normalizeTax() internal {
buyLiquidityFee = 1;
buyMarketingFee = 1;
buyRewardsFee = 1;
buyTax = 3;
sellLiquidityFee = 1;
sellMarketingFee = 2;
sellRewardsFee = 2;
sellTax = 5;
}
function setRewardDividend(address _dividend) external onlyOwner {
distributor = IDividendDistributor(_dividend);
}
function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
external
{
require(msg.sender == liquidityWallet,"Unauthorized!");
swapEnabled = _enabled;
swapbylimit = _limited;
swapThreshold = _threshold;
}
function enableTrading() external onlyOwner {
require(!tradingEnable, "Trade Enabled!");
tradingEnable = true;
launchedAt = block.timestamp;
launchCooldown = 3 minutes;
}
function removeLimits() external onlyOwner {
EnableTxLimit = false;
checkWalletLimit = false;
}
function enableTxLimit(bool _status) external onlyOwner {
EnableTxLimit = _status;
}
function enableWalletLimit(bool _status) external onlyOwner {
checkWalletLimit = _status;
}
function excludeFromFee(address _adr,bool _status) external onlyOwner {
isExcludedFromFee[_adr] = _status;
}
function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
isWalletLimitExempt[_adr] = _status;
}
function excludeTxLimit(address _adr,bool _status) external onlyOwner {
isTxLimitExempt[_adr] = _status;
}
function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
_walletMax = newLimit;
}
function setTxLimit(uint256 newLimit) external onlyOwner() {
_maxTxAmount = newLimit;
}
function setLiquidityWallets(address _newWallet) external onlyOwner {
liquidityWallet = _newWallet;
}
function setMarketingWallets(address _newWallet) external onlyOwner {
_marketingWallet = _newWallet;
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(router), tokenAmount);
// add the liquidity
router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
liquidityWallet,
block.timestamp
);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tokenAmount);
// make the swap
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
}
Read Contract
EnableTxLimit 0x5e42358c → bool
_maxTxAmount 0x7d1db4a5 → uint256
_walletMax 0x807c2d9c → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyTax 0x4f7041a5 → uint256
checkWalletLimit 0xf872858a → bool
decimals 0x313ce567 → uint8
distributor 0xbfe10928 → address
isDividendExempt 0x4355855a → bool
isExcludedFromFee 0x5342acb4 → bool
isMarketPair 0x3ecad271 → bool
isTxLimitExempt 0x8b42507f → bool
isWalletLimitExempt 0xc867d60b → bool
launchedAt 0xbf56b371 → uint256
name 0x06fdde03 → string
normalizeTrade 0x111a4651 → bool
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
sellTax 0xcc1776d3 → uint256
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
swapbylimit 0xe9fd3394 → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingEnable 0x1693e8d4 → bool
Write Contract 25 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableTrading 0x8a8c523c
No parameters
enableTxLimit 0xee828db3
bool _status
enableWalletLimit 0x4974d88f
bool _status
excludeFromFee 0xdf8408fe
address _adr
bool _status
excludeTxLimit 0xae85ade6
address _adr
bool _status
excludeWalletLimit 0x651a8987
address _adr
bool _status
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
rescueFunds 0xe6b2603b
No parameters
rescueTokens 0xcea9d26f
address _token
address recipient
uint256 _amount
setBuyFee 0x25519cf2
uint256 _lp
uint256 _marketing
uint256 _reward
setIsDividendExempt 0xf708a64f
address holder
bool exempt
setLiquidityWallets 0xffc0a031
address _newWallet
setMarketingWallets 0xc0b4d199
address _newWallet
setMaxWalletLimit 0x728d41c9
uint256 newLimit
setRewardDividend 0xa6d3472a
address _dividend
setSellFee 0x1d865c30
uint256 _lp
uint256 _marketing
uint256 _reward
setSwapBackSettings 0xb94b0aef
uint256 _threshold
bool _enabled
bool _limited
setTxLimit 0x5c85974f
uint256 newLimit
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address