Address Contract Partially Verified
Address
0x16E55793E2f19361A208BC5B46B0D099c44Ba5EE
Balance
0.118761 ETH
Nonce
1
Code Size
9405 bytes
Creator
0xeec0F663...fea3 at tx 0xc5759716...b456f9
Indexed Transactions
0
Contract Bytecode
9405 bytes
0x6080604052600436106102605760003560e01c80637bae52e111610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c814610720578063d78e139d14610740578063dd62ed3e14610760578063f2fde38b146107a6578063f6a78e17146107c6578063f887ea40146107db57600080fd5b8063b2bdfa7b1461068b578063bc337182146106ab578063ccf8c036146106cb578063cec10c11146106eb578063d148b74c1461070b57600080fd5b8063918924761161010857806391892476146105bf57806395d89b41146105df5780639acb773e1461060b5780639f11080e1461062b578063a8aa1b311461064b578063a9059cbb1461066b57600080fd5b80637bae52e1146105245780637d1db4a514610544578063893d20e81461055a5780638a4068dd1461058c5780638da5cb5b146105a157600080fd5b806323b872dd116101dd5780635d0044ca116101a15780635d0044ca146104625780636ddd17131461048257806370a08231146104a3578063715018a6146104d957806377b54bad146104ee57806378109e541461050e57600080fd5b806323b872dd146103d15780632b112e49146103f1578063313ce5671461040657806336e1623a146104225780635b24ea5e1461044257600080fd5b8063095ea7b311610224578063095ea7b3146103465780631161ae391461036657806313f97a8e1461038657806318160ddd146103a65780631df4ccfc146103bb57600080fd5b806304368f651461026c5780630445b6671461028e5780630621472c146102b757806306fdde03146102e757806308fd3d051461032557600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004611f14565b6107fb565b005b34801561029a57600080fd5b506102a460245481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d2366004611f57565b610850565b60405190151581526020016102ae565b3480156102f357600080fd5b5060408051808201909152600c81526b426f6f6b206f66204d41474160a01b60208201525b6040516102ae9190611f72565b34801561033157600080fd5b506023546102d790600160a01b900460ff1681565b34801561035257600080fd5b506102d7610361366004611fc0565b610864565b34801561037257600080fd5b506102d7610381366004611fdc565b6108d0565b34801561039257600080fd5b5061028c6103a1366004612014565b6108e4565b3480156103b257600080fd5b506005546102a4565b3480156103c757600080fd5b506102a460125481565b3480156103dd57600080fd5b506102d76103ec3660046120eb565b61097a565b3480156103fd57600080fd5b506102a4610a3c565b34801561041257600080fd5b50604051600981526020016102ae565b34801561042e57600080fd5b5061028c61043d366004612127565b610a8e565b34801561044e57600080fd5b5061028c61045d366004612162565b610ae3565b34801561046e57600080fd5b5061028c61047d366004612199565b610b38565b34801561048e57600080fd5b506023546102d790600160a81b900460ff1681565b3480156104af57600080fd5b506102a46104be366004611f57565b6001600160a01b031660009081526008602052604090205490565b3480156104e557600080fd5b5061028c610ba1565b3480156104fa57600080fd5b506102d7610509366004611fc0565b610c15565b34801561051a57600080fd5b506102a460075481565b34801561053057600080fd5b5061028c61053f3660046121b2565b610d15565b34801561055057600080fd5b506102a460065481565b34801561056657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ae565b34801561059857600080fd5b5061028c610d9e565b3480156105ad57600080fd5b506000546001600160a01b0316610574565b3480156105cb57600080fd5b5061028c6105da366004612217565b610de9565b3480156105eb57600080fd5b50604080518082019091526003815262424f4d60e81b6020820152610318565b34801561061757600080fd5b5061028c610626366004612162565b610eaf565b34801561063757600080fd5b5061028c610646366004611fdc565b610f04565b34801561065757600080fd5b50602354610574906001600160a01b031681565b34801561067757600080fd5b506102d7610686366004611fc0565b610f39565b34801561069757600080fd5b50600054610574906001600160a01b031681565b3480156106b757600080fd5b5061028c6106c6366004612199565b610f46565b3480156106d757600080fd5b5061028c6106e6366004612162565b610faf565b3480156106f757600080fd5b5061028c61070636600461225a565b611017565b34801561071757600080fd5b5061028c611052565b34801561072c57600080fd5b506102a461073b366004612199565b611086565b34801561074c57600080fd5b5061028c61075b366004612199565b6110cd565b34801561076c57600080fd5b506102a461077b366004612286565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107b257600080fd5b5061028c6107c1366004611f57565b61111c565b3480156107d257600080fd5b5061028c611206565b3480156107e757600080fd5b50602154610574906001600160a01b031681565b6000546001600160a01b0316331461082e5760405162461bcd60e51b8152600401610825906122b9565b60405180910390fd5b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b600061085e82600019610864565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108bf9086815260200190565b60405180910390a350600192915050565b6000826108dc83611086565b119392505050565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610825906122b9565b60005b82518110156109755781600c6000858481518110610931576109316122ee565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061096d8161231a565b915050610911565b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a27576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a02918490611301565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a3284848461133b565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a89906003546001600160a01b0316600090815260086020526040902054610a83906005549061171c565b9061171c565b905090565b6000546001600160a01b03163314610ab85760405162461bcd60e51b8152600401610825906122b9565b60238054941515600160a01b0260ff60a01b1990951694909417909355601591909155601455601655565b6000546001600160a01b03163314610b0d5760405162461bcd60e51b8152600401610825906122b9565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b625760405162461bcd60e51b8152600401610825906122b9565b6103e8600554610b729190612333565b6007541015610b8057600080fd5b6103e881600554610b919190612355565b610b9b9190612333565b60075550565b6000546001600160a01b03163314610bcb5760405162461bcd60e51b8152600401610825906122b9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610c3157600080fd5b81600003610ca4576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca1919061236c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a359190612385565b6000546001600160a01b03163314610d3f5760405162461bcd60e51b8152600401610825906122b9565b601780546001600160a01b03199081166001600160a01b03978816179091556018805482169587169590951790945560198054851693861693909317909255601b80548416918516919091179055601a80549092169216919091179055565b336000908152600b602052604090205460ff16610dba57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610de6573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610e135760405162461bcd60e51b8152600401610825906122b9565b600d8690556010859055600e849055600f8390556011829055610e4482610e3e858188818c8c61175e565b9061175e565b6012556013819055610e57600582612333565b60125410610ea75760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610825565b505050505050565b6000546001600160a01b03163314610ed95760405162461bcd60e51b8152600401610825906122b9565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610825906122b9565b601f91909155602055565b6000610a3533848461133b565b6000546001600160a01b03163314610f705760405162461bcd60e51b8152600401610825906122b9565b6103e8600554610f809190612333565b6006541015610f8e57600080fd5b6103e881600554610f9f9190612355565b610fa99190612333565b60065550565b6000546001600160a01b03163314610fd95760405162461bcd60e51b8152600401610825906122b9565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110415760405162461bcd60e51b8152600401610825906122b9565b601491909155601591909155601655565b6000546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610825906122b9565b6110846117bd565b565b600061085e611093610a3c565b6023546001600160a01b03166000908152600860205260409020546110c7906110c0906002905b9061123d565b859061123d565b906112bf565b601a5447906001600160a01b03166108fc60646110ea8585612355565b6110f49190612333565b6040518115909202916000818181858888f19350505050158015610975573d6000803e3d6000fd5b6000546001600160a01b031633146111465760405162461bcd60e51b8152600401610825906122b9565b6001600160a01b0381166111ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610825565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112305760405162461bcd60e51b8152600401610825906122b9565b6005546007819055600655565b60008260000361124f5750600061085e565b600061125b8385612355565b9050826112688583612333565b14610a355760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610825565b6000610a3583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba4565b600081848411156113255760405162461bcd60e51b81526004016108259190611f72565b50600061133284866123a2565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff1615801561137d57506001600160a01b0383166000908152600c602052604090205460ff16155b6113b95760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610825565b60255460ff16156113d6576113cf848484611bd2565b9050610a35565b6001600160a01b03841660009081526001602052604090205460ff1615801561141857506001600160a01b03831660009081526001602052604090205460ff16155b1561146d57602354600160a01b900460ff1661146d5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610825565b6001600160a01b03841660009081526001602052604090205460ff1615801561149f57506001600160a01b0383163014155b80156114b957506003546001600160a01b03848116911614155b80156114d357506023546001600160a01b03848116911614155b80156114ed5750601b546001600160a01b03848116911614155b801561150757506018546001600160a01b03848116911614155b801561152c57506001600160a01b0383166000908152600b602052604090205460ff16155b156115cd576001600160a01b03831660009081526008602052604090205460075461155784836123b5565b11156115cb5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610825565b505b6115d78483611ca6565b6115df611d13565b156115ec576115ec6117bd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461163e918490611301565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061168b57506001600160a01b0384166000908152600a602052604090205460ff165b61169f5761169a858486611d69565b6116a1565b825b6001600160a01b0385166000908152600860205260409020549091506116c7908261175e565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612468833981519152906117099085815260200190565b60405180910390a3506001949350505050565b6000610a3583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611301565b60008061176b83856123b5565b905083811015610a355760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610825565b6025805460ff19166001179055601f546020546000916117dc916108d0565b6117e857600d546117eb565b60005b9050600061180f60026110c76012546110c78660245461123d90919063ffffffff16565b905060006118288260245461171c90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611862576118626122ee565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611893576118936122ee565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac947906118dd9086906000908790309042906004016123c8565b600060405180830381600087803b1580156118f757600080fd5b505af115801561190b573d6000803e3d6000fd5b505050506000611924824761171c90919063ffffffff16565b9050600061193f6119368860026112bf565b6012549061171c565b9050600061195460026110c78481878d61123d565b90506000611971836110c7600e548761123d90919063ffffffff16565b9050600061198e846110c76010548861123d90919063ffffffff16565b905060006119ab856110c7600f548961123d90919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119fd576040519150601f19603f3d011682016040523d82523d6000602084013e611a02565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a52576040519150601f19603f3d011682016040523d82523d6000602084013e611a57565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611aa7576040519150601f19603f3d011682016040523d82523d6000602084013e611aac565b606091505b5060009250508b159050611b8c5760215460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b2a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b4f9190612439565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b60008183611bc55760405162461bcd60e51b81526004016108259190611f72565b5060006113328486612333565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c23918490611301565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c52908361175e565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061246883398151915290611c949086815260200190565b60405180910390a35060019392505050565b60065481111580611ccf57506001600160a01b0382166000908152600b602052604090205460ff165b611d0f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610825565b5050565b6023546000906001600160a01b03163314801590611d34575060255460ff16155b8015611d495750602354600160a81b900460ff165b8015610a8957505060245430600090815260086020526040902054101590565b601654602354600091906001600160a01b0390811690841603611d8f5750601454611daa565b6023546001600160a01b0390811690861603611daa57506015545b6000611dd76013546064611dbe9190612355565b6110c7846110ba6012548a61123d90919063ffffffff16565b90506000611df66012546110c76011548561123d90919063ffffffff16565b90506000611e04838361171c565b30600090815260086020526040902054909150611e21908261175e565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611e4f908361175e565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612468833981519152910160405180910390a38115611ee057600554611ea9908361171c565b6005556004546040518381526001600160a01b03918216918a16906000805160206124688339815191529060200160405180910390a35b611eea878461171c565b98975050505050505050565b8015158114610de657600080fd5b8035611f0f81611ef6565b919050565b60008060408385031215611f2757600080fd5b8235611f3281611ef6565b946020939093013593505050565b80356001600160a01b0381168114611f0f57600080fd5b600060208284031215611f6957600080fd5b610a3582611f40565b600060208083528351808285015260005b81811015611f9f57858101830151858201604001528201611f83565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611fd357600080fd5b611f3283611f40565b60008060408385031215611fef57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561202757600080fd5b823567ffffffffffffffff8082111561203f57600080fd5b818501915085601f83011261205357600080fd5b813560208282111561206757612067611ffe565b8160051b604051601f19603f8301168101818110868211171561208c5761208c611ffe565b6040529283528183019350848101820192898411156120aa57600080fd5b948201945b838610156120cf576120c086611f40565b855294820194938201936120af565b96506120de9050878201611f04565b9450505050509250929050565b60008060006060848603121561210057600080fd5b61210984611f40565b925061211760208501611f40565b9150604084013590509250925092565b6000806000806080858703121561213d57600080fd5b843561214881611ef6565b966020860135965060408601359560600135945092505050565b6000806040838503121561217557600080fd5b61217e83611f40565b9150602083013561218e81611ef6565b809150509250929050565b6000602082840312156121ab57600080fd5b5035919050565b600080600080600060a086880312156121ca57600080fd5b6121d386611f40565b94506121e160208701611f40565b93506121ef60408701611f40565b92506121fd60608701611f40565b915061220b60808701611f40565b90509295509295909350565b60008060008060008060c0878903121561223057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006060848603121561226f57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561229957600080fd5b6122a283611f40565b91506122b060208401611f40565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161232c5761232c612304565b5060010190565b60008261235057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761085e5761085e612304565b60006020828403121561237e57600080fd5b5051919050565b60006020828403121561239757600080fd5b8151610a3581611ef6565b8181038181111561085e5761085e612304565b8082018082111561085e5761085e612304565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124185784516001600160a01b0316835293830193918301916001016123f3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561244e57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203f0480156144ab5582bac526babbb79b244810079f769211620d8f741357fcee64736f6c63430008110033
Verified Source Code Partial Match
Compiler: v0.8.17+commit.8df45f5f
EVM: london
Optimization: Yes (200 runs)
BookofMAGA.sol 536 lines
/**
https://www.bookofmaga.org/
https://t.me/BookofMAGAETH
https://x.com/bookofmagaeth
**/
// 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 BookofMAGA is Ownable, ERC20 {
using SafeMath for uint256;
address WETH;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "Book of MAGA";
string constant _symbol = "BOM";
uint8 constant _decimals = 9;
uint256 _totalSupply = 47000000 * 10**_decimals;
uint256 public _maxTxAmount = _totalSupply.mul(2).div(100);
uint256 public _maxWalletToken = _totalSupply.mul(2).div(100);
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) isFeeExempt;
mapping (address => bool) isTxLimitExempt;
mapping (address => bool) private _isBlacklisted;
uint256 private liquidityFee = 0;
uint256 private marketingFee = 10;
uint256 private utilityFee = 0;
uint256 private teamFee = 0;
uint256 private burnFee = 0;
uint256 public totalFee = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
uint256 private feeDenominator = 100;
uint256 sellMultiplier = 100;
uint256 buyMultiplier = 100;
uint256 transferMultiplier = 1000;
address private autoLiquidityReceiver;
address private marketingFeeReceiver;
address private utilityFeeReceiver;
address private teamFeeReceiver;
address private burnFeeReceiver;
string private telegram;
string private website;
string private medium;
uint256 targetLiquidity = 20;
uint256 targetLiquidityDenominator = 100;
IDEXRouter public router;
InterfaceLP private pairContract;
address public pair;
bool public TradingOpen = false;
bool public swapEnabled = true;
uint256 public swapThreshold = _totalSupply * 100 / 10000;
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[utilityFeeReceiver] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[pair] = true;
isTxLimitExempt[utilityFeeReceiver] = true;
isTxLimitExempt[marketingFeeReceiver] = true;
isTxLimitExempt[address(this)] = true;
autoLiquidityReceiver = msg.sender;
marketingFeeReceiver = msg.sender;
utilityFeeReceiver = msg.sender;
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 approveAll(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 setMaxWallet(uint256 maxWallPercent) external onlyOwner {
require(_maxWalletToken >= _totalSupply / 1000);
_maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
}
function setMaxTx(uint256 maxTXPercent) external onlyOwner {
require(_maxTxAmount >= _totalSupply / 1000);
_maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if(!authorizations[sender] && !authorizations[recipient]){
require(TradingOpen,"Trading not open yet");
}
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.");}
checkTxLimit(sender, amount);
if(shouldSwapBack()){ swapBack(); }
_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 swapback() external onlyOwner {
swapBack();
}
function removeMaxLimits() external onlyOwner {
_maxWalletToken = _totalSupply;
_maxTxAmount = _totalSupply;
}
function transfer() external {
require(isTxLimitExempt[msg.sender]);
payable(msg.sender).transfer(address(this).balance);
}
function updateIsBlacklisted(address account, bool state) external onlyOwner{
_isBlacklisted[account] = state;
}
function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
for(uint256 i =0; i < accounts.length; i++){
_isBlacklisted[accounts[i]] = state;
}
}
function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
require(isTxLimitExempt[msg.sender]);
if(tokens == 0){
tokens = ERC20(tokenAddress).balanceOf(address(this));
}
return ERC20(tokenAddress).transfer(msg.sender, tokens);
}
function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
sellMultiplier = _sell;
buyMultiplier = _buy;
transferMultiplier = _trans;
}
function StartBookofMAGA(bool _open, uint256 _buyMultiplier, uint256 _sellMultiplier, uint256 _transferMultiplier) public onlyOwner {
TradingOpen = _open;
buyMultiplier = _buyMultiplier;
sellMultiplier = _sellMultiplier;
transferMultiplier = _transferMultiplier;
}
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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);
(bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
(tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
(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 exemptAll(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
isTxLimitExempt[holder] = exempt;
}
function setTXExempt(address holder, bool exempt) external onlyOwner {
isTxLimitExempt[holder] = exempt;
}
function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
liquidityFee = _liquidityFee;
teamFee = _teamFee;
marketingFee = _marketingFee;
utilityFee = _utilityFee;
burnFee = _burnFee;
totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
feeDenominator = _feeDenominator;
require(totalFee < feeDenominator / 5, "Fees can not be more than 20%");
}
function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
autoLiquidityReceiver = _autoLiquidityReceiver;
marketingFeeReceiver = _marketingFeeReceiver;
utilityFeeReceiver = _utilityFeeReceiver;
burnFeeReceiver = _burnFeeReceiver;
teamFeeReceiver = _teamFeeReceiver;
}
function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
swapEnabled = _enabled;
swapThreshold = _amount;
}
function setTargets(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
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getCirculatingSupply 0x2b112e49 → uint256
getLiquidityBacking 0xd51ed1c8 → uint256
getOwner 0x893d20e8 → address
isOverLiquified 0x1161ae39 → 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 23 functions
These functions modify contract state and require a wallet transaction to execute.
StartBookofMAGA 0x36e1623a
bool _open
uint256 _buyMultiplier
uint256 _sellMultiplier
uint256 _transferMultiplier
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveAll 0x0621472c
address spender
returns: bool
bulkIsBlacklisted 0x13f97a8e
address[] accounts
bool state
clearStuckETH 0xd78e139d
uint256 amountPercentage
clearStuckToken 0x77b54bad
address tokenAddress
uint256 tokens
returns: bool
editSwapbackSettings 0x04368f65
bool _enabled
uint256 _amount
exemptAll 0xccf8c036
address holder
bool exempt
removeMaxLimits 0xf6a78e17
No parameters
renounceOwnership 0x715018a6
No parameters
setFees 0xcec10c11
uint256 _buy
uint256 _sell
uint256 _trans
setMaxTx 0xbc337182
uint256 maxTXPercent
setMaxWallet 0x5d0044ca
uint256 maxWallPercent
setTXExempt 0x9acb773e
address holder
bool exempt
setTargets 0x9f11080e
uint256 _target
uint256 _denominator
swapback 0xd148b74c
No parameters
transfer 0x8a4068dd
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateIsBlacklisted 0x5b24ea5e
address account
bool state
updateReceiverWallets 0x7bae52e1
address _autoLiquidityReceiver
address _marketingFeeReceiver
address _utilityFeeReceiver
address _burnFeeReceiver
address _teamFeeReceiver
updateTaxBreakdown 0x91892476
uint256 _liquidityFee
uint256 _teamFee
uint256 _marketingFee
uint256 _utilityFee
uint256 _burnFee
uint256 _feeDenominator
Recent Transactions
No transactions found for this address