Address Contract Partially Verified
Address
0x9978618360A54Fa29CB2A6353bBaB62413c7d251
Balance
0 ETH
Nonce
1
Code Size
11282 bytes
Creator
0x8217Fa71...FD23 at tx 0x560cffa2...2cd75a
Indexed Transactions
0
Contract Bytecode
11282 bytes
0x6080604052600436106102975760003560e01c80636edabb171161015a578063b0bc85de116100c1578063dd62ed3e1161007a578063dd62ed3e1461078f578063e4202954146107d5578063e5f2758f146107eb578063f2fde38b1461080b578063f887ea401461082b578063fb4aa5851461084b57600080fd5b8063b0bc85de146106e1578063bc7a2898146106f6578063c041b93014610719578063caac793414610739578063d9d9666c14610759578063dd03bf861461077957600080fd5b806390107afe1161011357806390107afe1461063757806395d89b41146106575780639e78fb4f1461066c578063a457c2d714610681578063a8aa1b31146106a1578063a9059cbb146106c157600080fd5b80636edabb171461057757806370a0823114610598578063715018a6146105ce578063751fd179146105e357806378109e54146106035780638da5cb5b1461061957600080fd5b8063313ce567116101fe578063571ac8b0116101b7578063571ac8b0146104b65780635b64c5a9146104d65780635d0044ca146104f657806360959b5614610516578063622f9cd6146105365780636af659291461055757600080fd5b8063313ce567146104195780633268cc5614610435578063364333f414610455578063395093511461046a5780633eaaf86b1461048a57806343e67270146104a057600080fd5b806318160ddd1161025057806318160ddd1461038e5780631f1b845b146103a357806323b872dd146103b9578063252d723a146103d9578063276ef2d5146103ee5780632d2fe7171461040357600080fd5b8063010cf559146102a357806304d4c990146102cc57806306fdde03146102ee578063095ea7b3146103105780630af88b24146103405780630e5a92311461037857600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b9600f5481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102ec6102e736600461250d565b610861565b005b3480156102fa57600080fd5b50610303610a80565b6040516102c39190612596565b34801561031c57600080fd5b5061033061032b3660046125be565b610b12565b60405190151581526020016102c3565b34801561034c57600080fd5b50601c54610360906001600160a01b031681565b6040516001600160a01b0390911681526020016102c3565b34801561038457600080fd5b506102b9600a5481565b34801561039a57600080fd5b506008546102b9565b3480156103af57600080fd5b506102b9600d5481565b3480156103c557600080fd5b506103306103d43660046125ea565b610b7f565b3480156103e557600080fd5b506102b9610c8f565b3480156103fa57600080fd5b506102b9610cc0565b34801561040f57600080fd5b506102b9600b5481565b34801561042557600080fd5b50604051600981526020016102c3565b34801561044157600080fd5b50601754610360906001600160a01b031681565b34801561046157600080fd5b506102ec610cd2565b34801561047657600080fd5b506103306104853660046125be565b610d55565b34801561049657600080fd5b506102b960085481565b3480156104ac57600080fd5b506102b960115481565b3480156104c257600080fd5b506103306104d136600461262b565b610d99565b3480156104e257600080fd5b50601b54610360906001600160a01b031681565b34801561050257600080fd5b506102ec610511366004612648565b610da7565b34801561052257600080fd5b506102ec610531366004612704565b610e88565b34801561054257600080fd5b50601d5461033090600160a81b900460ff1681565b34801561056357600080fd5b50601854610360906001600160a01b031681565b34801561058357600080fd5b50601d5461033090600160b01b900460ff1681565b3480156105a457600080fd5b506102b96105b336600461262b565b6001600160a01b031660009081526012602052604090205490565b3480156105da57600080fd5b506102ec610ed0565b3480156105ef57600080fd5b506102ec6105fe366004612768565b610f44565b34801561060f57600080fd5b506102b960095481565b34801561062557600080fd5b506005546001600160a01b0316610360565b34801561064357600080fd5b506102ec6106523660046127a6565b610f99565b34801561066357600080fd5b506103036110f0565b34801561067857600080fd5b506102ec6110ff565b34801561068d57600080fd5b5061033061069c3660046125be565b6112de565b3480156106ad57600080fd5b50601654610360906001600160a01b031681565b3480156106cd57600080fd5b506103306106dc3660046125be565b61132d565b3480156106ed57600080fd5b506102b961136d565b34801561070257600080fd5b5061070b611385565b6040516102c39291906127d4565b34801561072557600080fd5b506102ec610734366004612768565b6114ac565b34801561074557600080fd5b50601954610360906001600160a01b031681565b34801561076557600080fd5b50601a54610360906001600160a01b031681565b34801561078557600080fd5b506102b9600e5481565b34801561079b57600080fd5b506102b96107aa3660046127a6565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b3480156107e157600080fd5b506102b960105481565b3480156107f757600080fd5b506102ec610806366004612648565b611501565b34801561081757600080fd5b506102ec61082636600461262b565b611652565b34801561083757600080fd5b50601d54610360906001600160a01b031681565b34801561085757600080fd5b506102b9600c5481565b6005546001600160a01b031633146108945760405162461bcd60e51b815260040161088b906127f9565b60405180910390fd5b601d54600160a01b900460ff16156108be5760405162461bcd60e51b815260040161088b9061282e565b601d54600160a81b900460ff166108e75760405162461bcd60e51b815260040161088b90612865565b30600090815260126020526040902054600b5460140361091557801561090f5761090f61173d565b6004600b555b600c8790556010839055600e859055600d8690556011829055600f849055601d54600160b01b900460ff1661094c576101f461094f565b60645b61ffff1661095b610c8f565b11156109d1576040805162461bcd60e51b81526020600482015260248101919091527f427579207461782063616e27742062652067726561746572207468616e20313060448201527f2520696620626f72726f776564206c7020616e6420353025206966206e6f742e606482015260840161088b565b601d54600160b01b900460ff166109ea576101f46109ed565b60645b61ffff166109f961136d565b1115610a775760405162461bcd60e51b815260206004820152604160248201527f53656c6c207461782063616e27742062652067726561746572207468616e203160448201527f302520696620626f72726f776564206c7020616e6420353025206966206e6f746064820152601760f91b608482015260a40161088b565b50505050505050565b606060038054610a8f9061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb9061289c565b8015610b085780601f10610add57610100808354040283529160200191610b08565b820191906000526020600020905b815481529060010190602001808311610aeb57829003601f168201915b5050505050905090565b3360008181526013602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b6d9086815260200190565b60405180910390a35060015b92915050565b60006001600160a01b038416610ba75760405162461bcd60e51b815260040161088b906128d6565b6001600160a01b038316610bcd5760405162461bcd60e51b815260040161088b9061291b565b6008546001600160a01b038516600090815260136020908152604080832033845290915290205414610c7a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152601382528381203382529091529190912054610c55918490611c0b565b6001600160a01b03851660009081526013602090815260408083203384529091529020555b610c85848484611c45565b90505b9392505050565b6000600b54600c54600e54601054610ca79190612974565b610cb19190612974565b610cbb9190612974565b905090565b6000610cca610c8f565b610cb161136d565b6005546001600160a01b03163314610cfc5760405162461bcd60e51b815260040161088b906127f9565b601d54600160a01b900460ff1615610d265760405162461bcd60e51b815260040161088b9061282e565b60405133904780156108fc02916000818181858888f19350505050158015610d52573d6000803e3d6000fd5b50565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610d90918590610d8b9086611e25565b611e84565b50600192915050565b6000610b7982600854610b12565b6005546001600160a01b03163314610dd15760405162461bcd60e51b815260040161088b906127f9565b601d54600160a01b900460ff1615610dfb5760405162461bcd60e51b815260040161088b9061282e565b6103e881600854610e0c9190612987565b610e16919061299e565b600955600854610e29906101f49061299e565b6009541015610d525760405162461bcd60e51b815260206004820152602560248201527f4d61782057616c6c6574206d7573742062652067726561746572207468616e20604482015264181719129760d91b606482015260840161088b565b6005546001600160a01b03163314610eb25760405162461bcd60e51b815260040161088b906127f9565b6006610ebe8382612a10565b506007610ecb8282612a10565b505050565b6005546001600160a01b03163314610efa5760405162461bcd60e51b815260040161088b906127f9565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610f6e5760405162461bcd60e51b815260040161088b906127f9565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610fc35760405162461bcd60e51b815260040161088b906127f9565b601d54600160a01b900460ff1615610fed5760405162461bcd60e51b815260040161088b9061282e565b601d54600160a81b900460ff166110165760405162461bcd60e51b815260040161088b90612865565b6001600160a01b0382161561104157601980546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0381161561106c57601880546001600160a01b0319166001600160a01b0383161790555b6018546001600160a01b03161580159061109057506019546001600160a01b031615155b6110ec5760405162461bcd60e51b815260206004820152602760248201527f52656369657665722077616c6c6574732063616e2774206265205a65726f206160448201526632323932b9b99760c91b606482015260840161088b565b5050565b606060048054610a8f9061289c565b6016546001600160a01b0316156111505760405162461bcd60e51b81526020600482015260156024820152742830b4b91030b63932b0b23c9031b932b0ba32b21760591b604482015260640161088b565b601d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c79190612ad0565b6001600160a01b031663c9c65396601d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190612ad0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015611298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bc9190612ad0565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d903384610d8b85604051806060016040528060258152602001612bb8602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611c0b565b6000336113426005546001600160a01b031690565b6001600160a01b0316036113625761135b338484611fa8565b9050610b79565b61135b338484611c45565b6000600b54600d54600f54601154610ca79190612974565b606080600660078180546113989061289c565b80601f01602080910402602001604051908101604052809291908181526020018280546113c49061289c565b80156114115780601f106113e657610100808354040283529160200191611411565b820191906000526020600020905b8154815290600101906020018083116113f457829003601f168201915b505050505091508080546114249061289c565b80601f01602080910402602001604051908101604052809291908181526020018280546114509061289c565b801561149d5780601f106114725761010080835404028352916020019161149d565b820191906000526020600020905b81548152906001019060200180831161148057829003601f168201915b50505050509050915091509091565b6005546001600160a01b031633146114d65760405162461bcd60e51b815260040161088b906127f9565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461152b5760405162461bcd60e51b815260040161088b906127f9565b601d54600160a01b900460ff16156115555760405162461bcd60e51b815260040161088b9061282e565b601d54600160a81b900460ff1661157e5760405162461bcd60e51b815260040161088b90612865565b6103e88160085461158f9190612987565b611599919061299e565b600a556008546115ab9060149061299e565b600a54111580156115cd57506101f46008546115c7919061299e565b600a5410155b610d525760405162461bcd60e51b815260206004820152604a60248201527f53776170205468726573686f6c64206d757374206265206c657373207468616e60448201527f203525206f6620746f74616c20737570706c792c206f722067726561746572206064820152693a3430b710181719129760b11b608482015260a40161088b565b6005546001600160a01b0316331461167c5760405162461bcd60e51b815260040161088b906127f9565b6001600160a01b0381166116e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088b565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b601d805460ff60a01b1916600160a01b17905530600090815260126020526040812054601154601054919291829161177491612974565b116117805760006117b0565b6117b060026117aa611790610cc0565b6117aa6011546010546117a39190612974565b879061208e565b90612110565b905060006117be8383612152565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117f8576117f8612aed565b6001600160a01b039283166020918202929092010152601c5482519116908290600190811061182957611829612aed565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611873908690600090879030904290600401612b03565b600060405180830381600087803b15801561188d57600080fd5b505af11580156118a1573d6000803e3d6000fd5b505050506000806118bb834761215290919063ffffffff16565b90506000806011546010546118d09190612974565b116118e2576118dd610cc0565b611908565b6119086118fa60026011546010546117aa9190612974565b611902610cc0565b90612152565b9050600061192f60026117aa846117aa6011546010546119289190612974565b889061208e565b90506000600f54600e546119439190612974565b11156119c4576000611962836117aa600f54600e546117a39190612974565b6018546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d80600081146119b6576040519150601f19603f3d011682016040523d82523d6000602084013e6119bb565b606091505b50600096505050505b6000600d54600c546119d69190612974565b1115611a575760006119f5836117aa600d54600c546117a39190612974565b6019546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611a49576040519150601f19603f3d011682016040523d82523d6000602084013e611a4e565b606091505b50600096505050505b8715611b6257601d54600090600160b01b900460ff16611a82576019546001600160a01b0316611a8f565b601b546001600160a01b03165b601d5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0380841660848301524260a483015292935091169063f305d71990849060c40160606040518083038185885af1158015611aff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b249190612b76565b505060408051848152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1505b6000611b81836117aa6117a36002600b5461208e90919063ffffffff16565b90506000601a60009054906101000a90046001600160a01b03169050806001600160a01b031663289fe2d5836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050601d805460ff60a01b191690555050505050505050505050505050565b60008184841115611c2f5760405162461bcd60e51b815260040161088b9190612596565b506000611c3c8486612ba4565b95945050505050565b60006001600160a01b038416611c6d5760405162461bcd60e51b815260040161088b906128d6565b6001600160a01b038316611c935760405162461bcd60e51b815260040161088b9061291b565b601d54600160a01b900460ff1615611cb757611cb0848484611fa8565b9050610c88565b611cc2848484612194565b611ccb836122ff565b15611cd857611cd861173d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260129091529190912054611d2a918490611c0b565b6001600160a01b038516600090815260126020526040812091909155601d54600160a81b900460ff168015611d8357506016546001600160a01b0385811691161480611d8357506016546001600160a01b038681169116145b611d8d5782611d98565b611d98858585612360565b6001600160a01b038516600090815260126020526040902054909150611dbe9082611e25565b6001600160a01b0380861660008181526012602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e129085815260200190565b60405180910390a3506001949350505050565b600080611e328385612974565b905083811015610c885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161088b565b6001600160a01b038316611ee65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161088b565b6001600160a01b038216611f475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161088b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601290915291822054611ff9918490611c0b565b6001600160a01b0380861660009081526012602052604080822093909355908516815220546120289083611e25565b6001600160a01b0380851660008181526012602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061207c9086815260200190565b60405180910390a35060019392505050565b6000826000036120a057506000610b79565b60006120ac8385612987565b9050826120b9858361299e565b14610c885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161088b565b6000610c8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124df565b6000610c8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c0b565b6001600160a01b03821660009081526015602052604090205460ff161580156121c657506001600160a01b0382163014155b80156121db57506001600160a01b0383163014155b80156121f2575061dead6001600160a01b03831614155b801561220c57506016546001600160a01b03838116911614155b801561222657506019546001600160a01b03838116911614155b801561224057506018546001600160a01b03838116911614155b801561225a5750601b546001600160a01b03838116911614155b15610ecb576001600160a01b0382166000908152601260205260409020546009546122858383612974565b11156122f95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161088b565b50505050565b6016546000906001600160a01b0383811691161480156123285750601d54600160a81b900460ff165b801561233e5750601d54600160a01b900460ff16155b8015610b795750600a5430600090815260126020526040902054101592915050565b6001600160a01b03831660009081526014602052604081205460ff168061239f57506001600160a01b03831660009081526014602052604090205460ff165b156123ab575080610c88565b306001600160a01b038516036123c2575080610c88565b6017546001600160a01b03858116911614806123eb57506017546001600160a01b038481169116145b156123f7575080610c88565b601b546001600160a01b0390811690841603612414575080610c88565b6016546000906001600160a01b0385811691161461243957612434610c8f565b612441565b61244161136d565b905060006124556103e86117aa868561208e565b306000908152601260205260409020549091506124729082611e25565b30600081815260126020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124c39085815260200190565b60405180910390a36124d58482612152565b9695505050505050565b600081836125005760405162461bcd60e51b815260040161088b9190612596565b506000611c3c848661299e565b60008060008060008060c0878903121561252657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000815180845260005b818110156125765760208185018101518683018201520161255a565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610c886020830184612550565b6001600160a01b0381168114610d5257600080fd5b600080604083850312156125d157600080fd5b82356125dc816125a9565b946020939093013593505050565b6000806000606084860312156125ff57600080fd5b833561260a816125a9565b9250602084013561261a816125a9565b929592945050506040919091013590565b60006020828403121561263d57600080fd5b8135610c88816125a9565b60006020828403121561265a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261268857600080fd5b813567ffffffffffffffff808211156126a3576126a3612661565b604051601f8301601f19908116603f011681019082821181831017156126cb576126cb612661565b816040528381528660208588010111156126e457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561271757600080fd5b823567ffffffffffffffff8082111561272f57600080fd5b61273b86838701612677565b9350602085013591508082111561275157600080fd5b5061275e85828601612677565b9150509250929050565b6000806040838503121561277b57600080fd5b8235612786816125a9565b91506020830135801515811461279b57600080fd5b809150509250929050565b600080604083850312156127b957600080fd5b82356127c4816125a9565b9150602083013561279b816125a9565b6040815260006127e76040830185612550565b8281036020840152611c3c8185612550565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526018908201527f43616e6e6f742063616c6c207768656e20696e20737761700000000000000000604082015260600190565b60208082526018908201527f5468697320746f6b656e20686173206e6f2074617865732e0000000000000000604082015260600190565b600181811c908216806128b057607f821691505b6020821081036128d057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b7957610b7961295e565b8082028115828204841417610b7957610b7961295e565b6000826129bb57634e487b7160e01b600052601260045260246000fd5b500490565b601f821115610ecb576000816000526020600020601f850160051c810160208610156129e95750805b601f850160051c820191505b81811015612a08578281556001016129f5565b505050505050565b815167ffffffffffffffff811115612a2a57612a2a612661565b612a3e81612a38845461289c565b846129c0565b602080601f831160018114612a735760008415612a5b5750858301515b600019600386901b1c1916600185901b178555612a08565b600085815260208120601f198616915b82811015612aa257888601518255948401946001909101908401612a83565b5085821015612ac05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215612ae257600080fd5b8151610c88816125a9565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015612b555784516001600160a01b031683529383019391830191600101612b30565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b8b57600080fd5b8351925060208401519150604084015190509250925092565b81810381811115610b7957610b7961295e56fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f228482c05a9017c08223a9aa20b44390b17d49514fae0e746f8fb441949c42864736f6c63430008180033
Verified Source Code Partial Match
Compiler: v0.8.24+commit.e11b9ed9
EVM: istanbul
Optimization: Yes (200 runs)
ERC20.sol 141 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "IERC20.sol";
import "Context.sol";
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
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;
}
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;
}
}
abstract contract ERC20 is Context, IERC20, IERC20Metadata {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {return _name;}
function symbol() public view virtual override returns (string memory) {return _symbol;}
function decimals() public view virtual override returns (uint8) {return 9;}
function totalSupply() public view virtual override returns (uint256) {return _totalSupply;}
function balanceOf(address account) public view virtual override returns (uint256) {return _balances[account];}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function setNameAndSymbol(string memory nameInput, string memory symbolInput) internal {
_name = nameInput;
_symbol = symbolInput;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
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 _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
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);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
IERC20.sol 17 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
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);
}
Context.sol 14 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this;
return msg.data;
}
}
Ownable.sol 27 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "Context.sol";
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
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;
}
}
IDEXRouter.sol 92 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(
uint256 amountIn,
address[] calldata path
) external view returns (uint256[] memory amounts);
function getAmountsIn(
uint256 amountOut,
address[] calldata path
) external view returns (uint256[] memory amounts);
}
OperaToken.sol 497 lines
pragma solidity ^0.8.17;
//SPDX-License-Identifier: MIT
import "ERC20.sol";
import "IDEXRouter.sol";
import "IDEXFactory.sol";
import "Ownable.sol";
import "OperaRevenue.sol";
//This Token was deployed using the Opera Protocol
//The Opera Protocol is a token deployer with the ability to deploy using borrowed initial liquidity
//This token can be configured at construction to have NO taxes or to HAVE taxes
//If the taxable variable (this cannot be updated after deployment) is true then this token is taxed
//If the borrowedLP variable (this cannot be updated after deployment) is true then the max tax is 10% buy / sell, otherwise the max can be 50% buy / sell
//Swap Threshold must be between 0.2% and 5% of supply, only if the token is taxable
//The Opera Dao will control the LP tokens for tokens that borrow Liquidity
contract OperaToken is ERC20, Ownable {
using SafeMath for uint256;
string _telegram;
string _website;
uint8 constant _decimals = 9;
uint256 public _totalSupply;
uint256 public _maxWalletToken;
uint256 public _swapThreshold;
uint256 public _operaTax;
uint256 public _marketingBuyTax;
uint256 public _marketingSellTax;
uint256 public _devBuyTax;
uint256 public _devSellTax;
uint256 public _liquidityBuyTax;
uint256 public _liquiditySellTax;
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) _allowances;
mapping(address => bool) isFeeExempt;
mapping(address => bool) isMaxExempt;
address public pair;
address public routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address public _devAddress;
address public _marketingAddress;
address public OperaRevenueAddress;
address public OperaFactoryAddress;
address public WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
IDEXRouter public router;
bool inSwap;
bool public taxable;
bool public borrowedLP;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
event AutoLiquify(uint256 amountETH, uint256 amountCoin);
constructor(
string[] memory _stringData,
address[] memory _addressData,
uint256[] memory _intData,
address rewardsAddress
) ERC20("","") {
require(_stringData.length == 4, "String List needs 4 string inputs");
require(
_addressData.length == 2,
"Address List needs 2 address inputs"
);
require(_intData.length == 11, "Int List needs 11 int inputs");
if (_intData[9] == 1) {
taxable = true;
}
if (_intData[10] == 1 && _intData[9] == 1) {
borrowedLP = true;
}
OperaRevenueAddress = rewardsAddress;
OperaFactoryAddress = msg.sender;
router = IDEXRouter(routerAddress);
setNameAndSymbol(_stringData[0],_stringData[1]);
_telegram = _stringData[2];
_website = _stringData[3];
require(_intData[0] > 0 && _intData[0] < 999999999999999999);
_totalSupply = _intData[0] * 10 ** _decimals;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
_maxWalletToken = (_totalSupply * _intData[1]) / 1000;
isFeeExempt[msg.sender] = true;
if (taxable) {
_devAddress = _addressData[0];
_marketingAddress = _addressData[1];
_swapThreshold = (_totalSupply * _intData[2]) / 1000;
_marketingBuyTax = _intData[3];
_marketingSellTax = _intData[4];
_devBuyTax = _intData[5];
_devSellTax = _intData[6];
_liquidityBuyTax = _intData[7];
_liquiditySellTax = _intData[8];
if (borrowedLP) {
if (getTotalTax() > 192) {
_operaTax = 20;
} else {
_operaTax = 4;
}
} else {
_operaTax = 2;
}
require(
_swapThreshold <= (_totalSupply / 20) &&
_swapThreshold >= (_totalSupply / 500),
"Swap Threshold must be less than 5% of total supply, or greater than 0.2%."
);
require(getSellTax() <= 500, "Sell tax can't be greater than 50%.");
require(getBuyTax() <= 500, "Buy tax can't be greater than 50%.");
require(
_devAddress != address(0) && _marketingAddress != address(0),
"Reciever wallets can't be Zero address."
);
}
_allowances[address(this)][address(router)] = _totalSupply;
require(
_maxWalletToken >= (_totalSupply / 500),
"Max Wallet must be greater than 0.2%."
);
}
receive() external payable {}
function createPair() public {
require(pair == address(0),"Pair already created.");
pair = IDEXFactory(router.factory()).createPair(
router.WETH(),
address(this)
);
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(
address holder,
address spender
) public 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, _totalSupply);
}
function transfer(
address recipient,
uint256 amount
) public override returns (bool) {
if (owner() == msg.sender) {
return _basicTransfer(msg.sender, recipient, amount);
} else {
return _transferFrom(msg.sender, recipient, amount);
}
}
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 transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
if (_allowances[sender][msg.sender] != _totalSupply) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender]
.sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}
checkLimits(sender, recipient, amount);
if (shouldTokenSwap(recipient)) {
tokenSwap();
}
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
uint256 amountReceived = (taxable &&
(recipient == pair || sender == pair))
? takeFee(sender, recipient, amount)
: amount;
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function takeFee(
address sender,
address recipient,
uint256 amount
) internal returns (uint256) {
if (isFeeExempt[sender] || isFeeExempt[recipient]) {
return amount;
}
if (sender == address(this)) {
return amount;
}
if (sender == routerAddress || recipient == routerAddress) {
return amount;
}
if (recipient == OperaFactoryAddress) {
return amount;
}
uint256 _totalFee;
_totalFee = (recipient == pair) ? getSellTax() : getBuyTax();
uint256 feeAmount = amount.mul(_totalFee).div(1000);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
function getBuyTax() public view returns (uint) {
return _liquidityBuyTax + _devBuyTax + _marketingBuyTax + _operaTax;
}
function getSellTax() public view returns (uint) {
return _liquiditySellTax + _devSellTax + _marketingSellTax + _operaTax;
}
function getTotalTax() public view returns (uint) {
return getSellTax() + getBuyTax();
}
function setTaxes(
uint256 _marketingBuyPercent,
uint256 _marketingSellPercent,
uint256 _devBuyPercent,
uint256 _devSellPercent,
uint256 _liquidityBuyPercent,
uint256 _liquiditySellPercent
) external onlyOwner {
require(inSwap == false, "Cannot call when in swap");
require(taxable, "This token has no taxes.");
uint256 amount = _balances[address(this)];
if (_operaTax == 20) {
if (amount > 0) {
tokenSwap();
}
_operaTax = 4;
}
_marketingBuyTax = _marketingBuyPercent;
_liquidityBuyTax = _liquidityBuyPercent;
_devBuyTax = _devBuyPercent;
_marketingSellTax = _marketingSellPercent;
_liquiditySellTax = _liquiditySellPercent;
_devSellTax = _devSellPercent;
require(
getBuyTax() <= (borrowedLP ? 100 : 500),
"Buy tax can't be greater than 10% if borrowed lp and 50% if not."
);
require(
getSellTax() <= (borrowedLP ? 100 : 500),
"Sell tax can't be greater than 10% if borrowed lp and 50% if not."
);
}
function tokenSwap() internal swapping {
uint256 amount = _balances[address(this)];
uint256 amountToLiquify = (_liquidityBuyTax + _liquiditySellTax > 0)
? amount
.mul(_liquidityBuyTax + _liquiditySellTax)
.div(getTotalTax())
.div(2)
: 0;
uint256 amountToSwap = amount.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETHAddress;
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
bool tmpSuccess;
uint256 amountETH = address(this).balance.sub(balanceBefore);
uint256 totalETHFee = (_liquidityBuyTax + _liquiditySellTax > 0)
? getTotalTax().sub((_liquidityBuyTax + _liquiditySellTax).div(2))
: getTotalTax();
uint256 amountETHLiquidity = amountETH
.mul(_liquidityBuyTax + _liquiditySellTax)
.div(totalETHFee)
.div(2);
if (_devBuyTax + _devSellTax > 0) {
uint256 amountETHDev = amountETH.mul(_devBuyTax + _devSellTax).div(
totalETHFee
);
(tmpSuccess, ) = payable(_devAddress).call{
value: amountETHDev,
gas: 100000
}("");
tmpSuccess = false;
}
if (_marketingBuyTax + _marketingSellTax > 0) {
uint256 amountETHMarketing = amountETH
.mul(_marketingBuyTax + _marketingSellTax)
.div(totalETHFee);
(tmpSuccess, ) = payable(_marketingAddress).call{
value: amountETHMarketing,
gas: 100000
}("");
tmpSuccess = false;
}
if (amountToLiquify > 0) {
address liqAddress = borrowedLP
? OperaFactoryAddress
: _marketingAddress;
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
liqAddress,
block.timestamp
);
emit AutoLiquify(amountETHLiquidity, amountToLiquify);
}
uint256 operaFee = amountETH.mul(_operaTax.mul(2)).div(totalETHFee);
OperaRevenue rewardContract = OperaRevenue(
payable(OperaRevenueAddress)
);
rewardContract.recieveRewards{value: operaFee}();
}
function shouldTokenSwap(address recipient) internal view returns (bool) {
return ((recipient == pair) &&
taxable &&
!inSwap &&
_balances[address(this)] >= _swapThreshold);
}
function checkLimits(
address sender,
address recipient,
uint256 amount
) internal view {
if (
!isMaxExempt[recipient] &&
recipient != address(this) &&
sender != address(this) &&
recipient != 0x000000000000000000000000000000000000dEaD &&
recipient != pair &&
recipient != _marketingAddress &&
recipient != _devAddress &&
recipient != OperaFactoryAddress
) {
uint256 heldTokens = balanceOf(recipient);
require(
(heldTokens + amount) <= _maxWalletToken,
"Total Holding is currently limited, you can not buy that much."
);
}
}
function setMaxWallet(uint256 percent) external onlyOwner {
require(inSwap == false, "Cannot call when in swap");
_maxWalletToken = (_totalSupply * percent) / 1000;
require(
_maxWalletToken >= (_totalSupply / 500),
"Max Wallet must be greater than 0.2%."
);
}
function setTokenSwapSettings(uint256 percent) external onlyOwner {
require(inSwap == false, "Cannot call when in swap");
require(taxable, "This token has no taxes.");
_swapThreshold = (_totalSupply * percent) / 1000;
require(
_swapThreshold <= (_totalSupply / 20) &&
_swapThreshold >= (_totalSupply / 500),
"Swap Threshold must be less than 5% of total supply, or greater than 0.2%."
);
}
function aboutMe() external view returns (string memory, string memory) {
return (_telegram, _website);
}
function updateAboutMe(
string memory telegram,
string memory website
) external onlyOwner {
_telegram = telegram;
_website = website;
}
function setAddresses(
address marketingAddress,
address devAddress
) external onlyOwner {
require(inSwap == false, "Cannot call when in swap");
require(taxable, "This token has no taxes.");
if (marketingAddress != address(0)) {
_marketingAddress = marketingAddress;
}
if (devAddress != address(0)) {
_devAddress = devAddress;
}
require(
_devAddress != address(0) && _marketingAddress != address(0),
"Reciever wallets can't be Zero address."
);
}
function setFeeExemption(address user, bool status) external onlyOwner {
isFeeExempt[user] = status;
}
function setMaxExemption(address user, bool status) external onlyOwner {
isMaxExempt[user] = status;
}
function clearStuckBalance() external onlyOwner {
require(inSwap == false, "Cannot call when in swap");
payable(msg.sender).transfer(address(this).balance);
}
}
IDEXFactory.sol 9 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
interface IDEXFactory {
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
}
OperaRevenue.sol 36 lines
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract OperaRevenue {
address public owner;
event revenueReceived(
address account,
uint256 amount,
uint256 blocktime
);
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(owner == msg.sender, "only owner");
_;
}
function withdraw() external onlyOwner {
payable(owner).transfer(address(this).balance);
}
function getAddressBalance(address _address) public view returns (uint256) {
return _address.balance;
}
receive() external payable {}
function recieveRewards() external payable {
emit revenueReceived(msg.sender, msg.value, block.timestamp);
}
}
Read Contract
OperaFactoryAddress 0x5b64c5a9 → address
OperaRevenueAddress 0xd9d9666c → address
WETHAddress 0x0af88b24 → address
_devAddress 0x6af65929 → address
_devBuyTax 0xdd03bf86 → uint256
_devSellTax 0x010cf559 → uint256
_liquidityBuyTax 0xe4202954 → uint256
_liquiditySellTax 0x43e67270 → uint256
_marketingAddress 0xcaac7934 → address
_marketingBuyTax 0xfb4aa585 → uint256
_marketingSellTax 0x1f1b845b → uint256
_maxWalletToken 0x78109e54 → uint256
_operaTax 0x2d2fe717 → uint256
_swapThreshold 0x0e5a9231 → uint256
_totalSupply 0x3eaaf86b → uint256
aboutMe 0xbc7a2898 → string, string
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
borrowedLP 0x6edabb17 → bool
decimals 0x313ce567 → uint8
getBuyTax 0x252d723a → uint256
getSellTax 0xb0bc85de → uint256
getTotalTax 0x276ef2d5 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
routerAddress 0x3268cc56 → address
symbol 0x95d89b41 → string
taxable 0x622f9cd6 → bool
totalSupply 0x18160ddd → uint256
Write Contract 17 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
clearStuckBalance 0x364333f4
No parameters
createPair 0x9e78fb4f
No parameters
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
setAddresses 0x90107afe
address marketingAddress
address devAddress
setFeeExemption 0x751fd179
address user
bool status
setMaxExemption 0xc041b930
address user
bool status
setMaxWallet 0x5d0044ca
uint256 percent
setTaxes 0x04d4c990
uint256 _marketingBuyPercent
uint256 _marketingSellPercent
uint256 _devBuyPercent
uint256 _devSellPercent
uint256 _liquidityBuyPercent
uint256 _liquiditySellPercent
setTokenSwapSettings 0xe5f2758f
uint256 percent
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateAboutMe 0x60959b56
string telegram
string website
Recent Transactions
No transactions found for this address