Address Contract Partially Verified
Address
0xDb48c0636596DF989007ca9d60bB04DfC2526E48
Balance
0 ETH
Nonce
1
Code Size
9398 bytes
Creator
0x65E5330F...8Ba8 at tx 0x8b8caab5...c0a4d7
Indexed Transactions
0
Contract Bytecode
9398 bytes
0x60806040526004361061026b5760003560e01c80635450e093116101445780638ea5220f116100b6578063a9059cbb1161007a578063a9059cbb14610755578063cc1776d314610775578063d3f6a1571461078b578063dd62ed3e146107ab578063ea2f0b37146107f1578063f2fde38b1461081157600080fd5b80638ea5220f146106ba5780638f3fa860146106da578063950fdad7146106f057806395d89b4114610706578063a457c2d71461073557600080fd5b8063667f652611610108578063667f6526146105f157806370a0823114610611578063715018a61461064757806375f0a8741461065c5780637df6ccf51461067c5780638da5cb5b1461069c57600080fd5b80635450e0931461055b578063546417a914610571578063583e0568146105915780636303516c146105b15780636476b069146105d157600080fd5b806339509351116101dd57806349bd5a5e116101a157806349bd5a5e1461049f5780634a73a280146104bf5780634f7041a5146104df5780634fb639f3146104f5578063522ac058146105155780635342acb41461052b57600080fd5b806339509351146104085780633ccfd60b14610428578063437823ec1461043f57806343f07b581461045f578063468c7ee21461047f57600080fd5b806311f9262f1161022f57806311f9262f1461036a5780631783e0521461038057806318160ddd14610396578063220f6696146103ab57806323b872dd146103cc578063313ce567146103ec57600080fd5b8063062287491461027757806306fdde03146102aa578063095ea7b3146102e65780630fe0eb0f146103165780630ff974e71461033a57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102b657600080fd5b5060408051808201909152600a81526943726f7764447269766560b01b60208201525b6040516102a19190611e91565b3480156102f257600080fd5b50610306610301366004611ef4565b610831565b60405190151581526020016102a1565b34801561032257600080fd5b5061032c600c5481565b6040519081526020016102a1565b34801561034657600080fd5b50610306610355366004611f20565b60046020526000908152604090205460ff1681565b34801561037657600080fd5b5061032c600f5481565b34801561038c57600080fd5b5061032c60095481565b3480156103a257600080fd5b5060085461032c565b3480156103b757600080fd5b5060135461030690600160a01b900460ff1681565b3480156103d857600080fd5b506103066103e7366004611f44565b610848565b3480156103f857600080fd5b50604051600981526020016102a1565b34801561041457600080fd5b50610306610423366004611ef4565b61089a565b34801561043457600080fd5b5061043d6108d1565b005b34801561044b57600080fd5b5061043d61045a366004611f20565b610a1b565b34801561046b57600080fd5b5061043d61047a366004611f20565b610aa7565b34801561048b57600080fd5b5061043d61049a366004611f20565b610b28565b3480156104ab57600080fd5b5060135461028d906001600160a01b031681565b3480156104cb57600080fd5b5061043d6104da36600461205b565b610c1d565b3480156104eb57600080fd5b5061032c600a5481565b34801561050157600080fd5b5061043d61051036600461211d565b610dce565b34801561052157600080fd5b5061032c60105481565b34801561053757600080fd5b50610306610546366004611f20565b60036020526000908152604090205460ff1681565b34801561056757600080fd5b5061032c600d5481565b34801561057d57600080fd5b5061043d61058c366004611f20565b610e67565b34801561059d57600080fd5b5060125461028d906001600160a01b031681565b3480156105bd57600080fd5b5060075461028d906001600160a01b031681565b3480156105dd57600080fd5b506103066105ec366004611ef4565b610eec565b3480156105fd57600080fd5b5061043d61060c366004612136565b6110b7565b34801561061d57600080fd5b5061032c61062c366004611f20565b6001600160a01b031660009081526001602052604090205490565b34801561065357600080fd5b5061043d6111dc565b34801561066857600080fd5b5060055461028d906001600160a01b031681565b34801561068857600080fd5b5061043d610697366004612158565b611212565b3480156106a857600080fd5b506000546001600160a01b031661028d565b3480156106c657600080fd5b5060065461028d906001600160a01b031681565b3480156106e657600080fd5b5061032c60115481565b3480156106fc57600080fd5b5061032c600e5481565b34801561071257600080fd5b5060408051808201909152600681526543445249564560d01b60208201526102d9565b34801561074157600080fd5b50610306610750366004611ef4565b611305565b34801561076157600080fd5b50610306610770366004611ef4565b61133c565b34801561078157600080fd5b5061032c600b5481565b34801561079757600080fd5b5061043d6107a6366004612184565b611349565b3480156107b757600080fd5b5061032c6107c6366004612184565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156107fd57600080fd5b5061043d61080c366004611f20565b611493565b34801561081d57600080fd5b5061043d61082c366004611f20565b611514565b600061083e3384846115ac565b5060015b92915050565b6000610855848484611669565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461089091869161088b9086906121d3565b6115ac565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161083e91859061088b9086906121e6565b6000546001600160a01b031633146109045760405162461bcd60e51b81526004016108fb906121f9565b60405180910390fd5b47806109605760405162461bcd60e51b815260206004820152602560248201527f43726f776444726976653a3a436f6e74726163742062616c616e636520697320604482015264656d70747960d81b60648201526084016108fb565b600080546040516001600160a01b039091169083908381818185875af1925050503d80600081146109ad576040519150601f19603f3d011682016040523d82523d6000602084013e6109b2565b606091505b5050905080610a175760405162461bcd60e51b815260206004820152602b60248201527f43726f776444726976653a3a4661696c656420746f2073656e6420636f6e747260448201526a6163742062616c616e636560a81b60648201526084016108fb565b5050565b6000546001600160a01b03163314610a455760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b038116600081815260036020908152604091829020805460ff191660019081179091558251938452908301527ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f434791015b60405180910390a150565b6000546001600160a01b03163314610ad15760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b0381166000818152600460209081526040808320805460ff191690558051938452908301919091527f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4119101610a9c565b6000546001600160a01b03163314610b525760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b038116610bbd5760405162461bcd60e51b815260206004820152602c60248201527f43726f776444726976653a3a4c702077616c6c65742063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084016108fb565b600780546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f9b605aae8f83676cfb10dbe7d27053ddf283489a08a395c9b1b33166857ed16d91015b60405180910390a15050565b6000546001600160a01b03163314610c475760405162461bcd60e51b81526004016108fb906121f9565b8051825114610c915760405162461bcd60e51b8152602060048201526016602482015275082e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b60448201526064016108fb565b6000805b8251811015610cd757828181518110610cb057610cb061222e565b602002602001015182610cc391906121e6565b915080610ccf81612244565b915050610c95565b50610ce46009600a612341565b610cee9082612350565b336000908152600160205260409020541015610d435760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016108fb565b60005b8251811015610dc8576000848281518110610d6357610d6361222e565b602002602001015190506000610d77600990565b610d8290600a612341565b858481518110610d9457610d9461222e565b6020026020010151610da69190612350565b9050610db3338383611669565b50508080610dc090612244565b915050610d46565b50505050565b6000546001600160a01b03163314610df85760405162461bcd60e51b81526004016108fb906121f9565b610e046009600a612341565b610e0e9082612350565b60095560085460095410610e645760405162461bcd60e51b815260206004820181905260248201527f4d696e20746f6b656e7320666f72207377617020697320746f6f20686967682e60448201526064016108fb565b50565b6000546001600160a01b03163314610e915760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b038116600081815260046020908152604091829020805460ff191660019081179091558251938452908301527f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4119101610a9c565b6000306001600160a01b03841603610f465760405162461bcd60e51b815260206004820152601c60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e2e0000000060448201526064016108fb565b6064821115610fad5760405162461bcd60e51b815260206004820152602d60248201527f50657263656e74616765206d757374206265206c657373207468616e206f722060448201526c32b8bab0b6103a37901898181760991b60648201526084016108fb565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ff4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110189190612367565b90506000601054848361102b9190612350565b6110359190612380565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae91906123a2565b95945050505050565b6000546001600160a01b031633146110e15760405162461bcd60e51b81526004016108fb906121f9565b600c5482111561113e5760405162461bcd60e51b815260206004820152602260248201527f427579207461782063616e6e6f742065786365656420746865206d6178696d75604482015261369760f11b60648201526084016108fb565b600c5481111561119c5760405162461bcd60e51b815260206004820152602360248201527f53656c6c207461782063616e6e6f742065786365656420746865206d6178696d6044820152623ab69760e91b60648201526084016108fb565b600a829055600b81905560408051838152602081018390527fee384adbada91a649af3c708314e31b6fe6974f02a951d6be3674ad17c956efe9101610c11565b6000546001600160a01b031633146112065760405162461bcd60e51b81526004016108fb906121f9565b6112106000611813565b565b6000546001600160a01b0316331461123c5760405162461bcd60e51b81526004016108fb906121f9565b6010548161124a84866121e6565b61125491906121e6565b146112b05760405162461bcd60e51b815260206004820152602660248201527f5468652073756d206f662070657263656e7461676573206d757374206571756160448201526536101898181760d11b60648201526084016108fb565b600d839055600e829055600f81905560408051848152602081018490529081018290527f12cef84d4d9918df500462be0ba79e5a447be771e44a010c8624661a6a108cbc9060600160405180910390a1505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161083e91859061088b9086906121d3565b600061083e338484611669565b6000546001600160a01b031633146113735760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b0382161580159061139357506001600160a01b03811615155b6113df5760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642077616c6c6574206164647265737365732e0000000000000060448201526064016108fb565b600580546001600160a01b039081166000908152600360209081526040808320805460ff19908116909155600680548616855282852080548316905586548987166001600160a01b03199182168117909855815496891696168617905585845281842080548216600190811790915585855293829020805490911690931790925581519384528301919091527f1e28ff4341fc5e5dbba78e864f67855d4b87ecce752be336375b358c90b529ec9101610c11565b6000546001600160a01b031633146114bd5760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b0381166000818152600360209081526040808320805460ff191690558051938452908301919091527ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f43479101610a9c565b6000546001600160a01b0316331461153e5760405162461bcd60e51b81526004016108fb906121f9565b6001600160a01b0381166115a35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108fb565b610e6481611813565b6001600160a01b038316158015906115cc57506001600160a01b03821615155b6116085760405162461bcd60e51b815260206004820152600d60248201526c2d32b9379030b2323932b9b99760991b60448201526064016108fb565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526004602052604090205460ff166116f4576001600160a01b0382166000908152600160205260409020546011546116af83836121e6565b11156116f25760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b60448201526064016108fb565b505b6001600160a01b0383161580159061171457506001600160a01b03821615155b6117535760405162461bcd60e51b815260206004820152601060248201526f5573696e67203020616464726573732160801b60448201526064016108fb565b600081116117b15760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016108fb565b60095430600090815260016020526040902054101580156117dc5750601354600160a01b900460ff16155b80156117f657506013546001600160a01b03848116911614155b1561180357611803611863565b61180e838383611a85565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6013805460ff60a01b1916600160a01b1790553060009081526001602052604081205490506000601054600d548361189b9190612350565b6118a59190612380565b90506000601054600e54846118ba9190612350565b6118c49190612380565b9050600060105460026118d79190612350565b600f546118e49086612350565b6118ee9190612380565b90504761190e836118ff86856121e6565b61190991906121e6565b611c4d565b600061191a82476121d3565b90506000600e54600d54600f5461193191906121e6565b61193b91906121e6565b601054600d5461194b9190612350565b6119559190612380565b9050600060105482846119689190612350565b6119729190612380565b90506000600e54600d54600f5461198991906121e6565b61199391906121e6565b601054600e546119a39190612350565b6119ad9190612380565b9050600060105482866119c09190612350565b6119ca9190612380565b90506119ea87826119db86896121d3565b6119e591906121d3565b611da7565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618782611a1786896121d3565b611a2191906121d3565b604080519283526020830191909152810189905260600160405180910390a1600554611a56906001600160a01b031684611e5b565b600654611a6c906001600160a01b031647611e5b565b50506013805460ff60a01b191690555050505050505050565b6013546001600160a01b0390811684821681149184161460008280611aa75750815b90506000818015611af457506001600160a01b03871660009081526003602052604090205460ff1680611af257506001600160a01b03861660009081526003602052604090205460ff165b155b905060008115611b325784611b2257601054600b54611b139088612350565b611b1d9190612380565b611b35565b601054600a54611b139088612350565b60005b90506000611b4382886121d3565b6001600160a01b038a16600090815260016020526040902054909150611b6a9088906121d3565b6001600160a01b03808b1660009081526001602052604080822093909355908a1681522054611b9a9082906121e6565b6001600160a01b038916600090815260016020526040808220929092553081522054611bc79083906121e6565b3060009081526001602090815260409182902092909255518281526001600160a01b038a811692908c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b03891601611c425780600854611c3e91906121d3565b6008555b505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c8257611c8261222e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cff91906123c4565b81600181518110611d1257611d1261222e565b6001600160a01b039283166020918202929092010152601254611d3891309116846115ac565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d719085906000908690309042906004016123e1565b600060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050505050565b601254611dbf9030906001600160a01b0316846115ac565b60125460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e549190612452565b5050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561180e573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611ebe57858101830151858201604001528201611ea2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e6457600080fd5b60008060408385031215611f0757600080fd5b8235611f1281611edf565b946020939093013593505050565b600060208284031215611f3257600080fd5b8135611f3d81611edf565b9392505050565b600080600060608486031215611f5957600080fd5b8335611f6481611edf565b92506020840135611f7481611edf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611fc457611fc4611f85565b604052919050565b600067ffffffffffffffff821115611fe657611fe6611f85565b5060051b60200190565b600082601f83011261200157600080fd5b8135602061201661201183611fcc565b611f9b565b82815260059290921b8401810191818101908684111561203557600080fd5b8286015b848110156120505780358352918301918301612039565b509695505050505050565b6000806040838503121561206e57600080fd5b823567ffffffffffffffff8082111561208657600080fd5b818501915085601f83011261209a57600080fd5b813560206120aa61201183611fcc565b82815260059290921b840181019181810190898411156120c957600080fd5b948201945b838610156120f05785356120e181611edf565b825294820194908201906120ce565b9650508601359250508082111561210657600080fd5b5061211385828601611ff0565b9150509250929050565b60006020828403121561212f57600080fd5b5035919050565b6000806040838503121561214957600080fd5b50508035926020909101359150565b60008060006060848603121561216d57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561219757600080fd5b82356121a281611edf565b915060208301356121b281611edf565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610842576108426121bd565b80820180821115610842576108426121bd565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201612256576122566121bd565b5060010190565b600181815b8085111561229857816000190482111561227e5761227e6121bd565b8085161561228b57918102915b93841c9390800290612262565b509250929050565b6000826122af57506001610842565b816122bc57506000610842565b81600181146122d257600281146122dc576122f8565b6001915050610842565b60ff8411156122ed576122ed6121bd565b50506001821b610842565b5060208310610133831016604e8410600b841016171561231b575081810a610842565b612325838361225d565b8060001904821115612339576123396121bd565b029392505050565b6000611f3d60ff8416836122a0565b8082028115828204841417610842576108426121bd565b60006020828403121561237957600080fd5b5051919050565b60008261239d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156123b457600080fd5b81518015158114611f3d57600080fd5b6000602082840312156123d657600080fd5b8151611f3d81611edf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124315784516001600160a01b03168352938301939183019160010161240c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561246757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b56ca8317ed5d0c705d0fc78973519b31bda722430256739a4709670150f0e1964736f6c63430008130033
Verified Source Code Partial Match
Compiler: v0.8.19+commit.7dd6d404
EVM: paris
Optimization: Yes (200 runs)
CrowdDrive.sol 533 lines
/**
CrowdDrive - Utility Incubations | Treasury Investments | Revenue Sharing | Community Decisions
Website: https://cdrive.cx
Twitter: https://twitter.com/cdrive_eth
Telegram: https://t.me/cdriveportal
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_setOwner(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
contract CrowdDrive is IERC20Metadata, Ownable {
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public isExcludedFromFee;
mapping(address => bool) public isExcludedFromMaxWalletToken;
address payable public marketingWallet;
address payable public devWallet;
address payable public constant burnWallet = payable(0x000000000000000000000000000000000000dEaD);
address payable public lpWallet;
uint8 private constant _decimals = 9;
uint256 private _tTotal = 1100000 * 10**_decimals;
string private constant _name = "CrowdDrive";
string private constant _symbol = "CDRIVE";
uint256 public swapMinTokens = 10**3 * 10**_decimals;
uint256 public buyTax = 40;
uint256 public sellTax = 40;
uint256 public maxTransactionTax = 35;
uint256 public marketingPct = 40;
uint256 public devPct = 40;
uint256 public lpPct = 20;
uint256 public maxPct = 100;
uint256 public maxWalletSize = (_tTotal * 2) / maxPct;
IUniswapV2Router02 public _uniswapV2Router;
address public uniswapV2Pair;
bool public inSwapAndLiquify;
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event UpdateLpWallet(address newLp_, address oldLpWallet);
event UpdatedBuySellTaxes(uint256 buyTax, uint256 sellTax);
event UpdatedPercentTaxes(uint256 marketing, uint256 dev, uint256 lp);
event UpdatedIsExcludedFromFee(address account, bool flag);
event UpdatedIsExcludedFromMaxWallet(address account, bool flag);
event UpdatedMarketingAndDevWallet(address marketing, address dev);
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor(address uniswapRouterAddress, address marketing, address dev, address lpWalletAddress) {
_tOwned[owner()] = _tTotal;
_uniswapV2Router = IUniswapV2Router02(uniswapRouterAddress);
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
marketingWallet = payable(marketing);
devWallet = payable(dev);
lpWallet = payable(lpWalletAddress);
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
isExcludedFromFee[marketingWallet] = true;
isExcludedFromFee[devWallet] = true;
isExcludedFromFee[burnWallet] = true;
isExcludedFromFee[lpWallet] = true;
isExcludedFromFee[uniswapRouterAddress] = true;
isExcludedFromMaxWalletToken[uniswapRouterAddress] = true;
isExcludedFromMaxWalletToken[owner()] = true;
isExcludedFromMaxWalletToken[address(this)] = true;
isExcludedFromMaxWalletToken[marketingWallet] = true;
isExcludedFromMaxWalletToken[devWallet] = true;
isExcludedFromMaxWalletToken[burnWallet] = true;
isExcludedFromMaxWalletToken[lpWallet] = true;
isExcludedFromMaxWalletToken[uniswapV2Pair] = true;
emit Transfer(address(0), owner(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _tOwned[account];
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address theOwner, address theSpender)
public
view
override
returns (uint256)
{
return _allowances[theOwner][theSpender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()] - amount
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] - subtractedValue
);
return true;
}
receive() external payable {}
function _approve(
address theOwner,
address theSpender,
uint256 amount
) private {
require(
theOwner != address(0) && theSpender != address(0),
"Zero address."
);
_allowances[theOwner][theSpender] = amount;
emit Approval(theOwner, theSpender, amount);
}
function setLpWallet(address newLp_) external onlyOwner {
require(newLp_ != address(0), "CrowdDrive::Lp wallet cannot be zero address");
address oldLpWallet = lpWallet;
lpWallet = payable(newLp_);
emit UpdateLpWallet(newLp_, oldLpWallet);
}
function setTax(
uint256 buy,
uint256 sell
) public onlyOwner {
require(buy <= maxTransactionTax, "Buy tax cannot exceed the maximum.");
require(sell <= maxTransactionTax, "Sell tax cannot exceed the maximum.");
buyTax = buy;
sellTax = sell;
emit UpdatedBuySellTaxes(buy, sell);
}
function setPercentTax(
uint256 marketing,
uint256 dev,
uint256 lp
) public onlyOwner {
require(marketing + dev + lp == maxPct, "The sum of percentages must equal 100.");
marketingPct = marketing;
devPct = dev;
lpPct = lp;
emit UpdatedPercentTaxes(marketing, dev,lp);
}
function excludeFromFee(address account) external onlyOwner {
isExcludedFromFee[account] = true;
emit UpdatedIsExcludedFromFee(account, true);
}
function includeInFee(address account) external onlyOwner {
isExcludedFromFee[account] = false;
emit UpdatedIsExcludedFromFee(account, false);
}
function excludeMaxWallet(address account) external onlyOwner {
isExcludedFromMaxWalletToken[account] = true;
emit UpdatedIsExcludedFromMaxWallet(account, true);
}
function includeMaxWallet(address account) external onlyOwner {
isExcludedFromMaxWalletToken[account] = false;
emit UpdatedIsExcludedFromMaxWallet(account, false);
}
function setWallets(
address marketing,
address dev
) public onlyOwner {
require(marketing != address(0) && dev != address(0), "Invalid wallet addresses.");
isExcludedFromFee[marketingWallet] = false;
isExcludedFromFee[devWallet] = false;
marketingWallet = payable(marketing);
devWallet = payable(dev);
isExcludedFromFee[marketing] = true;
isExcludedFromFee[dev] = true;
emit UpdatedMarketingAndDevWallet(marketing, dev);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
if (!isExcludedFromMaxWalletToken[to]) {
uint256 heldTokens = balanceOf(to);
require(
(heldTokens + amount) <= maxWalletSize,
"Over wallet limit."
);
}
require(
from != address(0) && to != address(0),
"Using 0 address!"
);
require(amount > 0, "Token value must be higher than zero.");
if (
balanceOf(address(this)) >= swapMinTokens &&
!inSwapAndLiquify &&
from != uniswapV2Pair
) {
swapAndDistributeTaxes();
}
_tokenTransfer(from, to, amount);
}
function multipleAirdrop(
address[] memory _address,
uint256[] memory _amount
) external onlyOwner {
require(_address.length == _amount.length, "Arrays length mismatch");
uint256 totalAmount = 0;
for (uint256 i = 0; i < _amount.length; i++) {
totalAmount += _amount[i];
}
require(balanceOf(msg.sender) >= totalAmount * 10**decimals(), "Insufficient balance");
for (uint256 i = 0; i < _amount.length; i++) {
address adr = _address[i];
uint256 amnt = _amount[i] * 10**decimals();
_transfer(msg.sender, adr, amnt);
}
}
function _sendToWallet(address payable wallet, uint256 amount) private {
wallet.transfer(amount);
}
function setSwapMinTokens(uint256 minTokens) external onlyOwner {
swapMinTokens = minTokens * 10**decimals();
require(swapMinTokens < totalSupply(), "Min tokens for swap is too high.");
}
function swapAndDistributeTaxes() private lockTheSwap {
uint256 contractTokenBalance = balanceOf(address(this));
uint256 marketingTokensShare = (contractTokenBalance * marketingPct) / maxPct;
uint256 devTokensShare = (contractTokenBalance * devPct) / maxPct;
uint256 lpTokensHalfShare = (contractTokenBalance * lpPct) / (2 * maxPct);
uint256 bnbBalanceBeforeSwap = address(this).balance;
swapTokensForBNB(lpTokensHalfShare + marketingTokensShare + devTokensShare);
uint256 bnbReceived = address(this).balance - bnbBalanceBeforeSwap;
uint256 marketingSplit = (marketingPct * maxPct) / (lpPct + marketingPct + devPct);
uint256 bnbToMarketing = (bnbReceived * marketingSplit) / maxPct;
uint256 devSplit = (devPct * maxPct) / (lpPct + marketingPct + devPct);
uint256 bnbToDev = (bnbReceived * devSplit) / maxPct;
addLiquidity(lpTokensHalfShare, (bnbReceived - bnbToMarketing - bnbToDev));
emit SwapAndLiquify(
lpTokensHalfShare,
(bnbReceived - bnbToMarketing - bnbToDev),
lpTokensHalfShare
);
_sendToWallet(marketingWallet, bnbToMarketing);
_sendToWallet(devWallet, address(this).balance);
}
function swapTokensForBNB(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = _uniswapV2Router.WETH();
_approve(address(this), address(_uniswapV2Router), tokenAmount);
_uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
_approve(address(this), address(_uniswapV2Router), tokenAmount);
_uniswapV2Router.addLiquidityETH{value: BNBAmount}(
address(this),
tokenAmount,
0,
0,
lpWallet, // Add liquidity to lp wallet
block.timestamp
);
}
function withdraw() external onlyOwner {
uint256 contractBalance = address(this).balance;
require(contractBalance > 0, "CrowdDrive::Contract balance is empty");
(bool status, ) = payable(owner()).call{value: contractBalance}("");
require(status, "CrowdDrive::Failed to send contract balance");
}
function removeStuckTokens (
address tokenAddress,
uint256 pctOfTokens
) public returns (bool _sent) {
require(
tokenAddress != address(this),
"Can not remove native token."
);
require(pctOfTokens <= 100, "Percentage must be less than or equal to 100.");
uint256 totalRandom = IERC20(tokenAddress).balanceOf(address(this));
uint256 removeRandom = (totalRandom * pctOfTokens) / maxPct;
_sent = IERC20(tokenAddress).transfer(devWallet, removeRandom);
}
function _tokenTransfer(
address from,
address to,
uint256 tAmount
) private {
bool isBuy = (from == uniswapV2Pair);
bool isSell = (to == uniswapV2Pair);
bool isBuyOrSell = isBuy || isSell;
bool takeFee = isBuyOrSell && !(isExcludedFromFee[from] || isExcludedFromFee[to]);
uint256 fee = !takeFee
? 0
: isBuy
? (tAmount * buyTax) / maxPct
: (tAmount * sellTax) / maxPct;
uint256 tTransferAmount = tAmount - fee;
_tOwned[from] = _tOwned[from] - tAmount;
_tOwned[to] = _tOwned[to] + tTransferAmount;
_tOwned[address(this)] = _tOwned[address(this)] + fee;
emit Transfer(from, to, tTransferAmount);
if (to == burnWallet) _tTotal = _tTotal - tTransferAmount;
}
}
Read Contract
_uniswapV2Router 0x583e0568 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
burnWallet 0x06228749 → address
buyTax 0x4f7041a5 → uint256
decimals 0x313ce567 → uint8
devPct 0x950fdad7 → uint256
devWallet 0x8ea5220f → address
inSwapAndLiquify 0x220f6696 → bool
isExcludedFromFee 0x5342acb4 → bool
isExcludedFromMaxWalletToken 0x0ff974e7 → bool
lpPct 0x11f9262f → uint256
lpWallet 0x6303516c → address
marketingPct 0x5450e093 → uint256
marketingWallet 0x75f0a874 → address
maxPct 0x522ac058 → uint256
maxTransactionTax 0x0fe0eb0f → uint256
maxWalletSize 0x8f3fa860 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellTax 0xcc1776d3 → uint256
swapMinTokens 0x1783e052 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
uniswapV2Pair 0x49bd5a5e → address
Write Contract 19 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
excludeFromFee 0x437823ec
address account
excludeMaxWallet 0x546417a9
address account
includeInFee 0xea2f0b37
address account
includeMaxWallet 0x43f07b58
address account
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
multipleAirdrop 0x4a73a280
address[] _address
uint256[] _amount
removeStuckTokens 0x6476b069
address tokenAddress
uint256 pctOfTokens
returns: bool
renounceOwnership 0x715018a6
No parameters
setLpWallet 0x468c7ee2
address newLp_
setPercentTax 0x7df6ccf5
uint256 marketing
uint256 dev
uint256 lp
setSwapMinTokens 0x4fb639f3
uint256 minTokens
setTax 0x667f6526
uint256 buy
uint256 sell
setWallets 0xd3f6a157
address marketing
address dev
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
withdraw 0x3ccfd60b
No parameters
Recent Transactions
No transactions found for this address