Address Contract Partially Verified
Address
0x574364A7e443e8B41f895aB09dFF7F37e2911b03
Balance
0.000723449 ETH
Nonce
1
Code Size
8962 bytes
Creator
0xF0bc6277...13b5 at tx 0x176be028...288838
Indexed Transactions
0
Contract Bytecode
8962 bytes
0x60806040526004361061021f5760003560e01c80637d1db4a511610124578063aba1193d116100a6578063aba1193d1461061d578063b2bdfa7b1461063d578063d51ed1c81461065d578063d78e139d1461067d578063dd62ed3e1461069d578063f08bf67b146106e3578063f0a9e36514610712578063f2fde38b14610732578063f429389014610752578063f887ea4014610767578063fc3843ef1461078757600080fd5b80637d1db4a5146104b65780637fa4a5bb146104cc5780637fd1938e146104ec5780637fea8a1b1461050d578063893d20e81461052d5780638da5cb5b1461055457806395d89b4114610572578063992c58e41461059d578063a8aa1b31146105bd578063a9059cbb146105dd578063ab5a1887146105fd57600080fd5b8063201e7991116101ad578063201e79911461038057806323b872dd146103a057806327a14fc2146103c05780632ad75672146103e05780632b112e4914610400578063313ce56714610415578063571ac8b0146104315780636ddd17131461045157806370a082311461046b578063715018a61461048b57806378109e54146104a057600080fd5b806299d3861461022b5780630445b6671461024257806306fdde031461026b57806308fd3d05146102a4578063095ea7b3146102d55780631161ae39146102f5578063148f07ca1461031557806315d75b591461033557806318160ddd146103555780631df4ccfc1461036a57600080fd5b3661022657005b600080fd5b34801561023757600080fd5b5061024061079c565b005b34801561024e57600080fd5b5061025860225481565b6040519081526020015b60405180910390f35b34801561027757600080fd5b50604080518082019091526007815266111bd9d9509bdd60ca1b60208201525b6040516102629190611db7565b3480156102b057600080fd5b50601f546102c590600160a01b900460ff1681565b6040519015158152602001610262565b3480156102e157600080fd5b506102c56102f0366004611e21565b6107f6565b34801561030157600080fd5b506102c5610310366004611e4b565b610863565b34801561032157600080fd5b50610240610330366004611e7b565b610877565b34801561034157600080fd5b50610240610350366004611f01565b610916565b34801561036157600080fd5b50600554610258565b34801561037657600080fd5b5061025860115481565b34801561038c57600080fd5b5061024061039b366004611e4b565b610951565b3480156103ac57600080fd5b506102c56103bb366004611f2d565b610986565b3480156103cc57600080fd5b506102406103db366004611f69565b610a48565b3480156103ec57600080fd5b506102406103fb366004611f82565b610ab1565b34801561040c57600080fd5b50610258610b3a565b34801561042157600080fd5b5060405160098152602001610262565b34801561043d57600080fd5b506102c561044c366004611fe7565b610b83565b34801561045d57600080fd5b506021546102c59060ff1681565b34801561047757600080fd5b50610258610486366004611fe7565b610b91565b34801561049757600080fd5b50610240610bac565b3480156104ac57600080fd5b5061025860075481565b3480156104c257600080fd5b5061025860065481565b3480156104d857600080fd5b506102406104e7366004612002565b610c20565b3480156104f857600080fd5b50601f546102c590600160a81b900460ff1681565b34801561051957600080fd5b50610240610528366004612039565b610c88565b34801561053957600080fd5b506000546001600160a01b03165b6040516102629190612056565b34801561056057600080fd5b506000546001600160a01b0316610547565b34801561057e57600080fd5b50604080518082019091526002815261222160f11b6020820152610297565b3480156105a957600080fd5b506102406105b836600461206a565b610cd0565b3480156105c957600080fd5b50601f54610547906001600160a01b031681565b3480156105e957600080fd5b506102c56105f8366004611e21565b610d96565b34801561060957600080fd5b50610240610618366004611f69565b610da3565b34801561062957600080fd5b506102406106383660046120ad565b610e0c565b34801561064957600080fd5b50600054610547906001600160a01b031681565b34801561066957600080fd5b50610258610678366004611f69565b610e4d565b34801561068957600080fd5b50610240610698366004611f69565b610e8d565b3480156106a957600080fd5b506102586106b83660046120cb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106ef57600080fd5b506102c56106fe366004611fe7565b602080526000908152604090205460ff1681565b34801561071e57600080fd5b506102c561072d366004611e21565b610ee1565b34801561073e57600080fd5b5061024061074d366004611fe7565b610fd2565b34801561075e57600080fd5b506102406110bc565b34801561077357600080fd5b50601d54610547906001600160a01b031681565b34801561079357600080fd5b506102406110f8565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c6906120fe565b60405180910390fd5b601f805460ff60a01b1916600160a01b1790556102586014556104b060135561076c601555565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108519086815260200190565b60405180910390a35060015b92915050565b60008261086f83610e4d565b119392505050565b6000546001600160a01b031633146108a15760405162461bcd60e51b81526004016107c6906120fe565b60005b828110156109105781602060008686858181106108c3576108c3612133565b90506020020160208101906108d89190611fe7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109098161215f565b90506108a4565b50505050565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016107c6906120fe565b601391909155601491909155601555565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016107c6906120fe565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a33576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a0e9184906111ed565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a3e848484611227565b90505b9392505050565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016107c6906120fe565b6103e8600554610a829190612178565b6007541015610a9057600080fd5b6103e881600554610aa1919061219a565b610aab9190612178565b60075550565b6000546001600160a01b03163314610adb5760405162461bcd60e51b81526004016107c6906120fe565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610b7e90610b56906001600160a01b0316610b91565b600354610b7890610b6f906001600160a01b0316610b91565b600554906115e6565b906115e6565b905090565b600061085d826000196107f6565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610bd65760405162461bcd60e51b81526004016107c6906120fe565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b81526004016107c6906120fe565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610cb25760405162461bcd60e51b81526004016107c6906120fe565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016107c6906120fe565b600c869055600f859055600d849055600e8390556010829055610d2b82610d25858188818c8c611628565b90611628565b6011556012819055610d3e600582612178565b60115410610d8e5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107c6565b505050505050565b6000610a41338484611227565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016107c6906120fe565b6103e8600554610ddd9190612178565b6006541015610deb57600080fd5b6103e881600554610dfc919061219a565b610e069190612178565b60065550565b6000546001600160a01b03163314610e365760405162461bcd60e51b81526004016107c6906120fe565b6021805460ff191692151592909217909155602255565b600061085d610e5a610b3a565b601f54610e8790610e8090600290610e7a906001600160a01b0316610b91565b9061112c565b859061112c565b906111ae565b60195447906001600160a01b03166108fc6064610eaa858561219a565b610eb49190612178565b6040518115909202916000818181858888f19350505050158015610edc573d6000803e3d6000fd5b505050565b600081600003610f5b576040516370a0823160e01b81526001600160a01b038416906370a0823190610f17903090600401612056565b602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5891906121b1565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906121ca565b6000546001600160a01b03163314610ffc5760405162461bcd60e51b81526004016107c6906120fe565b6001600160a01b0381166110615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110f5573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111225760405162461bcd60e51b81526004016107c6906120fe565b61112a611685565b565b60008260000361113e5750600061085d565b600061114a838561219a565b9050826111578583612178565b14610a415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b6000610a4183836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611a6c565b600081848411156112115760405162461bcd60e51b81526004016107c69190611db7565b50600061121e84866121e7565b95945050505050565b60235460009060ff161561124757611240848484611a9a565b9050610a41565b6001600160a01b03841660009081526001602052604090205460ff1615801561128957506001600160a01b03831660009081526001602052604090205460ff16155b1561134257601f54600160a01b900460ff166112de5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c6565b601f54600160a81b900460ff1615611342576001600160a01b038316600090815260208052604090205460ff166113425760405162461bcd60e51b8152602060048201526008602482015267139bdd081858995960c21b60448201526064016107c6565b6001600160a01b03841660009081526001602052604090205460ff1615801561137457506001600160a01b0383163014155b801561138e57506003546001600160a01b03848116911614155b80156113a85750601f546001600160a01b03848116911614155b80156113c25750601a546001600160a01b03848116911614155b80156113dc57506017546001600160a01b03848116911614155b801561140157506001600160a01b0383166000908152600b602052604090205460ff16155b1561149757600061141184610b91565b60075490915061142184836121fa565b11156114955760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107c6565b505b6114a18483611b6e565b6114a9611bdb565b156114b6576114b6611685565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546115089184906111ed565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061155557506001600160a01b0384166000908152600a602052604090205460ff165b61156957611564858486611c2a565b61156b565b825b6001600160a01b0385166000908152600860205260409020549091506115919082611628565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206122ad833981519152906115d39085815260200190565b60405180910390a3506001949350505050565b6000610a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ed565b60008061163583856121fa565b905083811015610a415760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107c6565b6023805460ff19166001179055601b54601c546000916116a491610863565b6116b057600c546116b3565b60005b905060006116d76002610e87601154610e878660225461112c90919063ffffffff16565b905060006116f0826022546115e690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061172a5761172a612133565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061175b5761175b612133565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906117a590869060009087903090429060040161220d565b600060405180830381600087803b1580156117bf57600080fd5b505af11580156117d3573d6000803e3d6000fd5b5050505060006117ec82476115e690919063ffffffff16565b905060006118076117fe8860026111ae565b601154906115e6565b9050600061181c6002610e878481878d61112c565b9050600061183983610e87600d548761112c90919063ffffffff16565b9050600061185684610e87600f548861112c90919063ffffffff16565b9050600061187385610e87600e548961112c90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146118c5576040519150601f19603f3d011682016040523d82523d6000602084013e6118ca565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461196f576040519150601f19603f3d011682016040523d82523d6000602084013e611974565b606091505b5060009250508b159050611a5457601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119f2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a17919061227e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611a8d5760405162461bcd60e51b81526004016107c69190611db7565b50600061121e8486612178565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611aeb9184906111ed565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b1a9083611628565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206122ad83398151915290611b5c9086815260200190565b60405180910390a35060019392505050565b60065481111580611b9757506001600160a01b0382166000908152600b602052604090205460ff165b611bd75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b5050565b601f546000906001600160a01b03163314801590611bfc575060235460ff16155b8015611c0a575060215460ff165b8015610b7e57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c505750601354611c6b565b601f546001600160a01b0390811690861603611c6b57506014545b6000611c986012546064611c7f919061219a565b610e8784610e7a6011548a61112c90919063ffffffff16565b90506000611cb7601154610e876010548561112c90919063ffffffff16565b90506000611cc583836115e6565b30600090815260086020526040902054909150611ce29082611628565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d109083611628565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206122ad833981519152910160405180910390a38115611da157600554611d6a90836115e6565b6005556004546040518381526001600160a01b03918216918a16906000805160206122ad8339815191529060200160405180910390a35b611dab87846115e6565b98975050505050505050565b600060208083528351808285015260005b81811015611de457858101830151858201604001528201611dc8565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1c57600080fd5b919050565b60008060408385031215611e3457600080fd5b611e3d83611e05565b946020939093013593505050565b60008060408385031215611e5e57600080fd5b50508035926020909101359150565b80151581146110f557600080fd5b600080600060408486031215611e9057600080fd5b833567ffffffffffffffff80821115611ea857600080fd5b818601915086601f830112611ebc57600080fd5b813581811115611ecb57600080fd5b8760208260051b8501011115611ee057600080fd5b60209283019550935050840135611ef681611e6d565b809150509250925092565b600080600060608486031215611f1657600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f4257600080fd5b611f4b84611e05565b9250611f5960208501611e05565b9150604084013590509250925092565b600060208284031215611f7b57600080fd5b5035919050565b600080600080600060a08688031215611f9a57600080fd5b611fa386611e05565b9450611fb160208701611e05565b9350611fbf60408701611e05565b9250611fcd60608701611e05565b9150611fdb60808701611e05565b90509295509295909350565b600060208284031215611ff957600080fd5b610a4182611e05565b6000806040838503121561201557600080fd5b61201e83611e05565b9150602083013561202e81611e6d565b809150509250929050565b60006020828403121561204b57600080fd5b8135610a4181611e6d565b6001600160a01b0391909116815260200190565b60008060008060008060c0878903121561208357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120c057600080fd5b8235611e3d81611e6d565b600080604083850312156120de57600080fd5b6120e783611e05565b91506120f560208401611e05565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161217157612171612149565b5060010190565b60008261219557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761085d5761085d612149565b6000602082840312156121c357600080fd5b5051919050565b6000602082840312156121dc57600080fd5b8151610a4181611e6d565b8181038181111561085d5761085d612149565b8082018082111561085d5761085d612149565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561225d5784516001600160a01b031683529383019391830191600101612238565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561229357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f252b6994337cd2850f8c52c5f3ce260be9cac075d4134cf82c502394de3e81764736f6c63430008110033
Verified Source Code Partial Match
Compiler: v0.8.17+commit.8df45f5f
EVM: london
Optimization: Yes (50 runs)
DogeBot.sol 555 lines
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⣀⠀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⣠⡄⣶⡖⣿⣟⠀⢸⣿⣾⣿⢹⡟⢻⡷⣾⠿⣿⣴⣶⣄⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠶⣿⡟⢹⣷⢽⠷⠹⠗⠂⠀⢃⣉⣈⣀⣙⣋⣁⠙⠒⠋⠼⠛⡿⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢰⡿⢿⡆⠀⠘⠓⠀⣁⣠⣤⣶⣦⡘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⡄⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡾⣿⡉⠻⠞⢃⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣦⡙⢿⣿⣿⣿⠇⠰⣦⠘⣿⣿⣿⠇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⠙⣃⣴⡾⣫⣭⡻⣿⣿⣿⡿⣟⣛⢿⣿⣿⣿⣆⠻⣿⣿⣇⣈⣁⣼⣿⣿⡟⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣿⡿⢋⣠⣾⣿⣿⡇⡏⠈⢻⣜⣛⣫⡾⠋⢹⡏⣿⣿⣿⣿⣧⡘⣿⣿⣿⣿⢏⣾⡟⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣌⠻⣿⣿⣿⣿⡿⢋⣴⣿⣿⣿⡿⣫⡵⠇⠀⠀⠉⠉⠉⠀⠀⢸⡇⣿⣿⣿⣿⣿⣷⡘⣿⣿⣷⣿⡟⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣷⣌⠻⣿⠟⣰⣿⣿⣿⣿⡟⣼⠃⢠⡄⠀⠀⠀⠀⠀⠀⠀⠘⣷⢻⣿⣿⣿⣿⣿⣷⠘⣿⣿⠟⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠷⢠⠸⣿⣿⣿⣿⣿⢸⠇⠀⣈⠀⠀⠐⠽⠃⠀⠀⠀⠀⠸⡇⣿⣿⣿⣿⣿⣿⣧⠹⠋⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢿⣧⠹⣿⣿⣿⣿⢿⠀⠈⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠒⠢⠍⠊⢿⣧⢻⣿⣿⣿⡼⣇⠀⠓⠒⠐⠂⠀⠀⠀⠀⠀⠀⣸⢇⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⣿⣿⠿⠶⠦⠄⠀⢻⣧⠹⣿⣿⣷⡝⣦⡀⠀⠀⠀⠀⠀⠀⠀⢀⣴⢫⣾⢟⣽⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣭⣤⣀⣀⠀⠀⠀⠀⠀⠹⣷⡙⣿⣿⣿⣮⣝⡷⢦⣤⣤⣤⡴⢾⣫⡵⢟⣵⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣼⣿⡿⠿⢿⣿⣿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠘⢿⣎⠻⣿⣿⣿⣿⣿⣶⣶⣶⣿⠿⣫⣴⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠸⠋⠀⢀⣴⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠹⣷⣝⢿⣿⣿⣿⣿⣿⣿⣷⠿⠛⣡⣴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⠋⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⢸⡆⠈⠻⣷⣝⠿⣿⠷⠟⣋⣥⣶⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⡏⢀⣠⣴⣾⣿⣿⣿⣿⣿⠀⠀⠀⣼⡇⠀⢠⠀⠉⣡⠀⣶⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢀⣼⣿⡇⢠⠸⠀⠀⢹⣇⢹⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⢸⣿⣿⣴⣿⣿⡟⠀⡞⠀⠀⠀⠀⢻⣦⠻⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⣿⣿⣿⣿⣿⠟⢀⠞⠀⠀⠀⠀⠀⠀⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀⢀⣼⣿⣿⡿⠟⠁⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠐⠺⠿⠿⠿⠿⠟⠛⠋⠁⠀⠀⠀⠀⠐⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Telegram: http://t.me/DogeBot_ERC20
Twitter: https://twitter.com/DOGEBOT_ERC20
Medium: https://medium.com/@doge.bot
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.17;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
interface ERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this;
return msg.data;
}
}
contract Ownable is Context {
address public _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
authorizations[_owner] = true;
emit OwnershipTransferred(address(0), msgSender);
}
mapping (address => bool) internal authorizations;
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface InterfaceLP {
function sync() external;
}
contract DogeBot is Ownable, ERC20 {
using SafeMath for uint256;
address WETH;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "DogeBot";
string constant _symbol = "DB";
uint8 constant _decimals = 9;
uint256 _totalSupply = 1 * 10**12 * 10**_decimals;
uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) isFeeexempt;
mapping (address => bool) isTxLimitexempt;
uint256 private liquidityFee = 1;
uint256 private marketingFee = 2;
uint256 private devFee = 1;
uint256 private teamFee = 1;
uint256 private burnFee = 0;
uint256 public totalFee = teamFee + marketingFee + liquidityFee + devFee + burnFee;
uint256 private feeDenominator = 100;
uint256 sellMultiplier = 100;
uint256 buyMultiplier = 100;
uint256 transferMultiplier = 100;
address private autoLiquidityReceiver;
address private marketingFeeReceiver;
address private devFeeReceiver;
address private teamFeeReceiver;
address private burnFeeReceiver;
uint256 targetLiquidity = 30;
uint256 targetLiquidityDenominator = 100;
IDEXRouter public router;
InterfaceLP private pairContract;
address public pair;
bool public TradingOpen = false;
bool public abMode = false;
mapping (address => bool) public isabed;
bool public swapEnabled = true;
uint256 public swapThreshold = _totalSupply * 18 / 1000;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
pairContract = InterfaceLP(pair);
_allowances[address(this)][address(router)] = type(uint256).max;
isFeeexempt[msg.sender] = true;
isFeeexempt[devFeeReceiver] = true;
isTxLimitexempt[msg.sender] = true;
isTxLimitexempt[pair] = true;
isTxLimitexempt[devFeeReceiver] = true;
isTxLimitexempt[marketingFeeReceiver] = true;
isTxLimitexempt[address(this)] = true;
autoLiquidityReceiver = msg.sender;
marketingFeeReceiver = 0xF0115D29E80ccB05084BCC9AA49c91B6E3C9EDa4;
devFeeReceiver = 0x5f2CE2638a187E14dD0d7566241ddeb04C270494;
teamFeeReceiver = msg.sender;
burnFeeReceiver = DEAD;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) {return owner();}
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function setMaxWalletAmount(uint256 maxWallPercent) external onlyOwner {
require(_maxWalletToken >= _totalSupply / 1000);
_maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
}
function setMaxTransaction(uint256 maxTXPercent) external onlyOwner {
require(_maxTxAmount >= _totalSupply / 1000);
_maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if(!authorizations[sender] && !authorizations[recipient]){
require(TradingOpen,"Trading not open yet");
if(abMode){
require(isabed[recipient],"Not abed");
}
}
if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){
uint256 heldTokens = balanceOf(recipient);
require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
// Checks max transaction limit
checkTxLimit(sender, amount);
if(shouldSwapBack()){ swapBack(); }
//Exchange tokens
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 amountReceived = (isFeeexempt[sender] || isFeeexempt[recipient]) ? amount : takeFee(sender, amount, recipient);
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function checkTxLimit(address sender, uint256 amount) internal view {
require(amount <= _maxTxAmount || isTxLimitexempt[sender], "TX Limit Exceeded");
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeexempt[sender];
}
function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
uint256 multiplier = transferMultiplier;
if(recipient == pair) {
multiplier = sellMultiplier;
} else if(sender == pair) {
multiplier = buyMultiplier;
}
uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
uint256 contractTokens = feeAmount.sub(burnTokens);
_balances[address(this)] = _balances[address(this)].add(contractTokens);
_balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
emit Transfer(sender, address(this), contractTokens);
if(burnTokens > 0){
_totalSupply = _totalSupply.sub(burnTokens);
emit Transfer(sender, ZERO, burnTokens);
}
return amount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != pair
&& !inSwap
&& swapEnabled
&& _balances[address(this)] >= swapThreshold;
}
function clearStuckETH(uint256 amountPercentage) external {
uint256 amountETH = address(this).balance;
payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
}
function manualswapback() external onlyOwner {
swapBack();
}
function manualSend() external {
payable(autoLiquidityReceiver).transfer(address(this).balance);
}
function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
if(tokens == 0){
tokens = ERC20(tokenAddress).balanceOf(address(this));
}
return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
}
function setAllocation(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
sellMultiplier = _sell;
buyMultiplier = _buy;
transferMultiplier = _trans;
}
function enableLaunchMode(bool _status) public onlyOwner {
abMode = _status;
}
function setisLaunched(address[] calldata addresses, bool status) public onlyOwner {
for (uint256 i; i < addresses.length; ++i) {
isabed[addresses[i]] = status;
}
}
function enableTrade() public onlyOwner {
TradingOpen = true;
buyMultiplier = 600;
sellMultiplier = 1200;
transferMultiplier = 1900;
}
function swapBack() internal swapping {
uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
uint256 amountToSwap = swapThreshold.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance.sub(balanceBefore);
uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);
(bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
(tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
(tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
tmpSuccess = false;
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountETHLiquidity, amountToLiquify);
}
}
function setInternalAddress(address holder, bool exempt) external onlyOwner {
isFeeexempt[holder] = exempt;
isTxLimitexempt[holder] = exempt;
}
function updateFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
liquidityFee = _liquidityFee;
teamFee = _teamFee;
marketingFee = _marketingFee;
devFee = _devFee;
burnFee = _burnFee;
totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
feeDenominator = _feeDenominator;
require(totalFee < feeDenominator / 5, "Fees can not be more than 20%");
}
function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
autoLiquidityReceiver = _autoLiquidityReceiver;
marketingFeeReceiver = _marketingFeeReceiver;
devFeeReceiver = _devFeeReceiver;
burnFeeReceiver = _burnFeeReceiver;
teamFeeReceiver = _teamFeeReceiver;
}
function setSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
swapEnabled = _enabled;
swapThreshold = _amount;
}
function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
targetLiquidity = _target;
targetLiquidityDenominator = _denominator;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
}
function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
}
function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
return getLiquidityBacking(accuracy) > target;
}
event AutoLiquify(uint256 amountETH, uint256 amountTokens);
}
Read Contract
TradingOpen 0x08fd3d05 → bool
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletToken 0x78109e54 → uint256
_owner 0xb2bdfa7b → address
abMode 0x7fd1938e → bool
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getCirculatingSupply 0x2b112e49 → uint256
getLiquidityBacking 0xd51ed1c8 → uint256
getOwner 0x893d20e8 → address
isOverLiquified 0x1161ae39 → bool
isabed 0xf08bf67b → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalFee 0x1df4ccfc → uint256
totalSupply 0x18160ddd → uint256
Write Contract 21 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
clearForeignToken 0xf0a9e365
address tokenAddress
uint256 tokens
returns: bool
clearStuckETH 0xd78e139d
uint256 amountPercentage
enableLaunchMode 0x7fea8a1b
bool _status
enableTrade 0x0099d386
No parameters
manualSend 0xf4293890
No parameters
manualswapback 0xfc3843ef
No parameters
renounceOwnership 0x715018a6
No parameters
setAllocation 0x15d75b59
uint256 _buy
uint256 _sell
uint256 _trans
setInternalAddress 0x7fa4a5bb
address holder
bool exempt
setMaxTransaction 0xab5a1887
uint256 maxTXPercent
setMaxWalletAmount 0x27a14fc2
uint256 maxWallPercent
setSwapbackSettings 0xaba1193d
bool _enabled
uint256 _amount
setTargetLiquidity 0x201e7991
uint256 _target
uint256 _denominator
setisLaunched 0x148f07ca
address[] addresses
bool status
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateFeeReceivers 0x2ad75672
address _autoLiquidityReceiver
address _marketingFeeReceiver
address _devFeeReceiver
address _burnFeeReceiver
address _teamFeeReceiver
updateFees 0x992c58e4
uint256 _liquidityFee
uint256 _teamFee
uint256 _marketingFee
uint256 _devFee
uint256 _burnFee
uint256 _feeDenominator
Recent Transactions
No transactions found for this address