ETH Price: $2,423.64 (-0.03%)

Transaction Decoder

Block:
18429131 at Oct-25-2023 06:47:59 PM +UTC
Transaction Fee:
0.108867592168721456 ETH $263.86
Gas Used:
3,018,512 Gas / 36.066642163 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x2C3702e3...6596764cd
1.417421321041326279 Eth
Nonce: 2
1.308553728872604823 Eth
Nonce: 3
0.108867592168721456
0x5e4F85c5...6Efab1B51
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 2906187043173387376681117446941598103513908140576621563126000554869740284585297399740567016337906734601668881676003432153760970683858365342503411768436969917440218736615788467352691325757014071758156158335062944031081909084309417422641602002006273628897350886547961381701002061442753261714917010245309653423437812398133125883855281826326946067505815714657240347965065561188883258926151831431198458789862530284543306025078710347466323116208254668960743237766440269060462025869502253525961560214639082140986875532937075994831792610349939767578906390372004426952941131313166513263170387270089368112320241967506713097979316505003389900454837960168172356319672383318586830298033666988000374933064389550320972431676789385813019670192304788116628967027608999345034531751478461824417677803801211462122615622561730900987367699878963854204514977269048819169908535259390621746263128229333921085595013223705224550993814215685869208119542848289864711206847766845338129197910035894662488830416711271967738606602553255689134220130514140918732176626450168579521836703304269271776292756251166912367466785991536359770596861016513077952186304080718167331093593767516338551354253114929327008695948707801780230421662992586162872331835357567861648997601567673419190026422812127887999137990956454252307998592326357775034989514771816927345548136356038098080338242052298396273532061215441481019644782184112187747486751657305275087917277889977662645400170593807010280927423527984123453002379588118764349424590637985906900413624051154739993710197916778560722364136828096969144354237886410764465435650026797900723010132829906995694855693297401450013228054076702085797354378871124694748550922990620611541916793194832685530620521068148859817775284281114584741232718344636973572011860458763365970906027182546812903146140581078375462336191548238293607948321475018067325329898450160040079818659887477892469356204185328745093021719143019968269942196585742012206223201878172380384294087393659739791782628982356442203863446705240092288348530993330870125705241794097334929288067184265528491793204005534657465785275777101446953404724765803899906911792044630008450702199732839405640903022796108458503422665145559844634905300828183590026549694840662276946472409007505052077162499310629992731933263946502505301629303600827791810544652544012936476343917391368259679175469631898366744112224293358403014131841740928904849108345643145031043549556402256616660936010333324255608336493900011472572668070634255691780144583902923892463304715149322494454911813803663235860056845399496447214349327686556036086321244788005080088745523392712415649391192047420472470219726636295200008660511556496363252763565864506910502632842071235550932717832138537981380858469403588522011394439121797158264631103068657338914308509430611355067317205503692898691044149505443146456906416127008142852211773140512092922435651963100607461214554949771195606004435897053978543115899184981866227032996756334886502081442057865653530182888090270559370230185249278649248081368929489214345140594468684854036931456300396457712532680769516668862368912623091933625799587209132796513785067748622027440935239279859971211290530213695507964211026218974731208820320389894462176825054803633917488811494074323197452686797466706148609887888374439519595740909644557546522635925045020231744919152370363611027462579196372206037146398819187033192165397496684737162414271305597695390675918753669848364322490923440609982062693568610737172487587017590639141468706077725761804074331978480145969564662291317244368017011435426301765875182476647625224598775473911547364434713353412464818557554429295079601441826712456608568486898933024275878272595660322043588659152075256878845011259216687919076089892543552978523739722523466214150145222713684002725120029250990846059636639114600641664886768159817176855250956588256537506822688537940806718678453450408978379485982357764538555189991897635471199765686439333173650615177586170361209847504682240767055904983875776887324589529193528230168881567977934366600938229496682015229234526621507214983732505711834382551642915117627007761004523212740171894590751640344633433680143307617702168340875410474459487611785363249273457686813993641306724599561660628868424136965971796531382777312274943820963218887395545531274218354148856271731597300111174398922247332911303975616948026257190338373853848418185878546167075900686691226615526284702586536608992311730884573014689189841741131473479872502473688957648244194016933285185650888021609643247864345626520421186780481818305020329133527956091561408172392501117273805151359425814789539128598091057877363168264625448834593770774913981551867981797253051928691618912560168577011941128553214521172255529766109362618662422211357083734663087796182339867128247143958518034691495537443682612853257517651065235830569856816823455102204728646448075541123859546391990181643129089638932756174523802962722668714870774199596529192888271566580959276014382307541157388310075141703412781767423486315587929481397593347117913774635459954130408839304881435335606917318164939986247814041506381743046780594114692979739557954742932691644944806756678792045956702855706603552738983036610759799839898137931422800276251088860309334225504004818478803367551343529543441187808015134764569646330550109917611311210785295521898125093469427423772179847276918801945207094972570557238962365392746102664497196318691339131715439092711436456590973286332951815184558138574674843445074001564858422681895480377936011240052902285201899871033272140151331650645968151579318503674215297637140838723366201292962285396936674497839173737823587858086352340795426969396904613684391479771330569447638721939589761699074766548337763943664477648239823718310031345380830619109542533562708180889825930103654935338075996768772151341538192672019969276934228701816787912335149530694345265940891332052822881517831342620102472646659241969730720386403855505904813398469791164673112080114782213487338361219006940484313046368089700497419821260412250742967240724390443984710420042425803891524039909370384963442409151795127124998732031201004857979456931418233260566521801901004029932164426306283724567448261069452469696421957096867955595788926443617969923990801375306877777958232288719587290768754110048464707895350604778947377086352705703050696003668368514461940913067727107681536387915816517219703142290615445188223041915728351819749504886835991640371301852297971131011521362325261438675233891983144446716975329408727144772031388985464063867589597156912025489238514726982653182042787404537580292123847901778779740916364046780533436193308301064090049155516969204757368068889871285733720793504277167936079240778912672687498038414447682938083741068670373099629941981299996464757211502356384586079422076492404664203204603114441883319658203015983720655982634430044316979040269715696098509882575683005487274846066690764392667365696932997535260185112004374058646089495366213756374616032815977323502688371111261213446178294465551508579109850583275691723756941511345872463383683472502256824103643103032874913150651401319706118651486072653317470716634696084109297872780092389654713720561438919069604134939265223324139623370463672540559449999296668476402321169293660729806739511320010039770834585071668247082062427959671070044997196367452354699606305650389467591269287601288199348449934870127839225570742382531706205638463702357748761165616123493983211306052349578282000859405650081299245743016091789740303142857135202183168127218565752818884466273934227562365946484318217029572707805818694618010202757875384608234318007905516536641220273159730093435039117764375119007185058962608698887825527122693386878454886892715458537968618649353374483661778880839659897751539931625774571096873194404713972867007862776139984270044346590371960143507534224231171890888011795879494532436334690726094695538458233351712683579790875438947836808248131589945051923161720904809172853441165835872735874415370742049488146404592109047563703908289091589529990502230592596057545654378456122963348424789317320587174750905649805046403995705241822947394219882002727095174886262061130560663744672839810005398624770112456173256371408747422564987275677993392991019539297769887274939095610583687529481696045824875051713554952581221671012650374577066003582673525211032816413197264322013137479743446780656664262054389949142282054364710303512351940383545403749282304566482170607931562849943502380035461610171269535511695810558342757043674363586509678146102707151194076268702280509382768678292688132459279046361849023156806714208217933788070378692728189522178315689448144795394595619884666291909522276979912742003712932084374189293157006891067762334701195991283700961673667603398096574489364211222034894511542017890953772578332952325474547486893509676079340751158481362043192989455607496833587852674695870854953448292017754768933543456628011762284610235834080221744876914559190738909404126450215239259361927959843226397978729507509801032257756000127881337786666014172464263488498645752461956376836300849174284365557381319986232256176216467580000538039192199203528933982341618252116240191987732348653106469150188954130680280799704731920168011004709806743092738984668377629557850467659587550379534592468103560993041354236520290488848245849801021298275793681217664992428215874399856786299978549129607635545752164205276059854768898471954008076419427423510689057244183389633996199034345776027503624048867719101763272107695166636201545987808358866117707732500575912606380720087676451283433863530003995711510017821512283645222744828938423925087348495242187677075570407863534976516988044291318011524892542110751963975493613325146168135266355612338566008975497697958027339112311637862938599945727608051276673149386927884375908792252180172029896958787919587044195770656514844722057340331356020775240801132034482707793455083194983759131620304974622316599847212183966769660054645161993726187792376380970598162830150888036138500725239743511561573257394165574042971901616593713048406328207220805207885329189541314147646552291066643000647013649668232994044898990271285550007610069896839900698777646947651199817680152894253508867549671299651823393804884839073820385966894880222976810660073584874715346932204981335929498800347492674755009612504186013383746005806247489031353421190922315947181202912945076427595102541722087813721883157408007694463242637272629064318430707992996743632612683046752256204367054937384800721880211890177115016623816959984233013958557912623970579149456619022053282126516377439972181751954927325483570231301624387774894375945003742705796878032836867243972398118481512681394718151813644292059557622003088220550873260521340079487009468361402443396858160119864091912317089393064730980555556806805292909180873123593989702667857539417397430083791440980178439273754068657657229815925740041729239245757486867068194088827202356463007809036717306867863343421772237167143924572167479286055043687275105156522216791032696185974094671647621534662244719525138149190530588312117324321437359621029096309941376602612704784791674446582204882777033384202611140701475099866687098777331952199523280993003165094499640391780901808854395688039075888175843369814373377680290474482075537213980913404862120968135179698218480423929679760491210117022997047526643771844475424744409697286774683151828607282309111125830260092663434142891893171932973484927155132875109613061759713189513119137879153236415098386473906753881587291639541079121589258844367369054070667548333726195900062010159307901976157461570487738589014984401326222677808748474802038118504884372582411848146906585752410263516484082435393122797780409331147112798898196056383116751923301005924857423821889612474777272361148708045275733057935252380079827384793060272604840690203827608566841067737491497959136276928509635720814120268260982996182676878323557872448808881913511934263798833676677562400214226942567496274081511666538953449692131075370719252503018398076141601092940993667120233192225225046034413437720136269051240370012350489979451574502811259021065783724222411723211112908352228146826928497085892190847560631194051353930538175101941249609530434589537037165550257733204392549626190258136332348923866474240408945992911611502806855360447958630973802942437042362104688949607450848740436071188589137575035199285946971883043814689080435588022950466969271777782211441930186037224782859065337830983560131775827620862844406955283689695251422588827962887934836309836649671036475840261053837613503685655334321714773679514152286022999960301320766387972988342755209149358969849862516646461006631119938234766812209473574153520072926966792898571046657446076733558062341629326795303314571627324909571131004394767139694168781671732785801605368253085041782441022770268849530132986426827220089532309089033729976643064747350480791841086310833853418213021927419616837918502553342781651175863623990132396428601844282617388376164003355781293482520852763692136318749374055456793320375857987782080102462012247955609631692343884622768942936165077396096429296044362008404801163476032711929743693361187187580189348528882896879554060361200215829254195680151456469421682978780893685887292051344934106652343047040800490246335996670584133695796029285281614444067625678324813270425544666218390212846219911559369422736178714046086359661765800218872736338428349590427855691170642272562557557417110596076253313053842171129537047715702485397829214210413602115304874131177456796863721229447768472548052230271246104705839356969691682403863292181186875204348225613035534820254703224289538874133697770842843820603705733311452773948300643224121535381634165550767669794506838158631635283457055886316585965611947244452210733837589321975125929451979847040453248640778764738737596208960197571722652815981032368708367331567655933926826665659420075695384103472880699280079826305418393110316810575511460990264281185217018838859084275840457273732774911453658028595586643418759274498447991684635131594772446635400954975211966620742167703490315743710537512719128298307786412619444217236477637592730714417337739982570200167606025134798898867750251165677200304746934960579798457137004158647464616890307465080492752785155244917284496857843631030057519951382397479143485240497314115822423225724526161358834007032464235426825784517118742414152267043976315436953882830000413453669848175372570364689044915252872970738131299548028946409538491791254358659492667457291663420585764305241827525480441662615349448067397553393004903669009097256620184454657208892627099845326021147168129253990112182038040204119064959202559830894570078919272073424274479087302893722123713483075595059856557310572038729735263749332060581225191482799117617395837383924005225413423115233604031524406866853912301535943659302331126547146041074451764196644207597264222988800172960598916568415762508307891197386240127419551439040070558641713495122530566780009379919241289796098104266878217800799746423437844430001597252135295030003131487098393746030246837678985103080992668039347879840112493384721063449262832157609950506998012457287177854518423752028949295613398042203116533893093627894537099903288238760970675269221235380733907195750783752499541310072633208187392963043209441388104932083334380956300278222643479034024974449272443211162832286107275047402682639098765282260959401021723118620220511095405366011948016691467908970619530781132002112486512893060911370478182456054166553520729743341374861540851223388427745763427904235914067601927242769824456385208093707256103439416535669286035535298658308224481092240359488984381279967052014535603474351788171982130197181291481991383267128863699640026750422597750637962793294130485881373723904148018521117482155391563744762120704224804376155935955756463332422752817176459657166940405355450322402231673086777875521292956171400642708335682887126699941523990598691857838114437501461291834121811796713293114068848365562748650335554014128105608641460841944780276232368497105610520628405330469773173114115728616056134427612339349781997584535831899082447368865570842385557703162706982902914255718114144182689186126469995171892416322944081237171931406610152214940079575844854843917310275424519037761218237485341601271183940854350270658511455150342051872585698130937629852219314930611606699237510595685710364423368135625868778975948843409823655751967765430108862582995721033050066044109983615768760238862443628283534540931800133819863197584187688473891441112268495889020009021439482614967344128293882692418338585322080626308820569182405033228524343313274368182267019632602198887766004688575114874406843420615738756938112045081362417745216339576457456626612482171348391654254881062257973709696968143328591340918430534544573798822429169805182217633507071465094450506312530685061750623674755407225596433498758941434312438472949873359443682514124456966135114258011936556024566140714549369914267916502859839318941147117575583948242264373272846442665568409259880291472130302607266772814420440822200849405877862400759075889191262155910371131162355913962116671616089230424074852670681160539781841347821216627576120951067391512514821410475331876126790885281218028923632507006996295381038495404425419357025356210246133475536221266147916516591400061808620926383712896122067840274835313724576748163483610584386419559729441015612263389272455487920161926981212580406689408928464003830322942056928886101760065154288415426080171247387088224049250655686242905026400035023320052353035152753511234135982545123324766408737830347352321167901479279816722400575607649806600169389899984234411633571436940785066429722383383753403896068289930465615134252366494948286045534088651515313253696970742695905621122840871598169603633508967747766990794163532004856889500052843943262075204568433655131216301874356368495589126661373805985550662360077307327754536744044477910953583047427723385341655111308197414813690071440901678251894020900719648962586283972170684579773351355844560256497458185979846318068232556552680595169614794570053190724414459350462814508442599133278771297815019857573166339895545711205957054562033906751596456806991475135933730531675980750361594831588527682963495482345757676303683157765229353560021717885986786623800416782198990051817489729808852900324327026340713653277850115634851018332163955664627740916156815808817166007756725139557612934289392497594302369067851835715823614121611029881678910975320358239288869062757120589444123969449750293893913684833090444764842401334289416069160082332403779287157753762763576270900307209123015124548688187122948086870181351559686558684676794155613947259889504790085052140158018490839641410964017680826729636437792556223008223080506416716865514080560869580668566383249435125057245677334977385863378777123419459178404509051042554154249916784892880377706603070279894818039127244802506207654829745059565168088060799740259605911093258594568832777723506770229965574907473079114874599036080918601020398474229520537449328787951035966067437999900684496161436423998762966744924264168539934593601802170354104752471538479622290175540564262316678732849103645434812826071280577270794472634025463496035348076877310153127952088185605920826725258828844106506794716793956833960586217204262188724421994821605054868658720495292012585455808919881813770242793013923669996023970729242248008185744497570988722704662477388291121376805453636133408217813838135219405048288094216126514837083017200235726984366206311997795508899105589718284342130024698960622667592343268325636166684228277041081963900254719861965046960461621307686502243518329564553124403466590233118668539649203784107074757585663067986488578697227597193910801553105993736426455750445613729052406851332191946029264082651478678709296494252550412067598066652838689814569601970429812620724958360657107974394312489221479930705255599347486075750502424020105186972599304119372317461153381171761573449541402384747919553487528016416367898934780609413412166773517419156176915564772557068423307513502550572664415828480345046818635865818232075034965710304253761796225915343740171439364266653117806782071852585217308972905421780346722835072271970366460721316204278066664885447402789205022470453079943758612762935075597102595345139371003277794010505041261814870204808005896131450839759402524611162944576387153919576184758125051143882006606831232963507074083621220858752754325365457797942667515199851691370540029911267692677776778334380688240199073415285594544926596875784843889075952996675211715294365324449467159819157715102910207741547151465172362540956204311347941326980942489021941754371665410415832801511993078909972989003920024111994103624153582228882074667140259561466871171422055040831805015263178024887450727194318744322812202215306403502197558548643400814427271579463885347646749825272992529374650996545353039356970904609968344194721091543093918324561904906876460373962369285059181094270742614397076160226106527202071847429645558596736581119204174683998755806642759492183654889418412910867457098879156434763588170191092206537308910177753255499669808861548661776108275014073372857936215086086110068363867952420034706445559566101557337911295630433223277706353652757432350067012618970682476465955765252486146672078764723540729213935351633700767857202170286930174653844546560959212478612718472743528764628415505010856657603913599816052537608718342402189631327856877031155866281844296418188273851471333701051069581271790879491700676745602355347888413526533970176876733678271350827204397848621745342345496976490935919158932170887178012449164279209144570744888279035371772724196897066085164537146230231392004669029556479817817900192152708627674512458531934503874545029445519964382914305604122860389223416114014651616791574364649022818756212815456462701691247864011229860817576031548569292485251017681400603479571022381419618186965466647360959141262488321419966966524409874607471101223432802749629049599510658729808886517875103313818427233260390298583568104852367755467704414058709070867161487453329701398520698118391675272841886840888195534510410736435438449064602638006465465820122655629415229922226078417141029774805071490153525561121909683228303506850772810985622188507111734244480498684751706231182456702996446487463876360364726543851649407576251438603675910729843146858310603179447660585476299912109025299579538703928134653076830105414785138300796699946111052450250865956333076946649235965159216098840798569938857675674690357750890586517931084977210812965908980218224842720742625042482311028061306772206341488295652225714497952136427131124515773307571829659902866300026452552608483649405683556611740002206850362922937958516117114524289595853906557520079142165049200225436077906771377424922150878887072065915851025739933468947474987072599721180852174199670737228763758120450811510963963183194703130828981820946137885692478478476411434974543666422953090065344948684672121085597277367027705211778700913866289651961809785351097934240121150341354578100939054175609359554526847516918168693571375206799689649537274065902242105813942369765541413603111261152207154350326074106843419412370214456596177504602798265853232333195345824807163328450906973604435438098327730895972427778066619079619553402029095912328712541891724214235796020315712684462352910888272443497209154977557977010664398187709614590092547693157221040079221334877824168714616774410112913571748108234272876051699228988668547970821744711222963315700556406873096711634460975718450663126746264767791824305156601969283506234567975435670191030564119605447819814146814009740277875124070175080192988769811721426549258517044506635520658801584756044780383092647069814323871432941089645846787027422735735037874751484800157825657018995160710505403007007107379766372105420420856107948222669123849054750938884803838338668930568481134487481797918291694599242272833187213668487313560487193513860092172415034908795384902622724384248926740795577262958517477451243618534164705371814777983770107124312823091011145010733587625274951301922098380651074618528426328727559919723106594746574035821494334003768603694484119891367531799582141132357713561118339475391158379088601428615485277778553018854299529779887531284130865844340804856758334118559323989030988075521285418581428621882512496663993901592657505995585353237148572253347436840991104975825446312093251548796229851381474217767123422965023988401124135096804555466823978366764689347836367634639156321103162139657721073373409203225465108185188572549258225508397600221308994361517811974103041595141948248710184902521300117443746452487382077117870013432979004094904753258840655753957405515839494737097874997356942430977773591379332824769563056269634845923973982650379898851128499792784528738769349191013321949344251530259437355948691759263793554381997958748667302169118083281686530069335494212154566567733121341688911101141699318699508403603859570976431705573000730730267673421336435628893157232994816142631095774757394544669179074560608473186688365447884455020079043967864780409698984241251789231867583136812074468518414730241332749573603362248405775823002120322644263242665583562959937798236056307805285503451930136480639675774492522056799335294258483138886105271808903117810090926545956723113757944940645983828111180751983456349985916524201925158560939609945099407221349056338184152148982810559669900139861871933894447036125264836111247164678930065181212775842737933211076498938602636237110134724237510713936709805983588246565628273853505898873979366496990600930943923888395926589958942259021009773607718812412638158022077962598350932987897046742390000987572764885020879081610673703438039163733217188896215728249463222034868807324389753770426486028502495983684545060174088844837146539857675475708235426809027012638663084102337815607452230903709528901073880957659949259336839191986513997799378080656875254658105777982902180785731504788934054865852868379399104487735658897535604281987975459217652291901156356063195038093785675604052419808970154881447662684035716380724358073628110351556055650971855329897240952715520716901604541104843147370130944279576183502620410753451749831718643964907049554595613851840685444591715760195648343667334884997167075358760468415233741848175308318746019783398386600700851347099480765100722267348162927941346648057036498660597039550270610494754194998035745579082188317691335045891693366366909847420651613774694637119574287352390027796668658705828389398828583967740741760972498443920881479918963470457661082411504123642951787371053356275885761138460081612406905859407131027064847180530427192747194783151244028024708819385184612289396837371115502664350295256059215917177075592158705022084515316338560103575203532514606625862992610400499533467869268891056724270938502675683711474460583926384874283648427025104538976738491771298328562997605334909657482470511454895287298874033170394435449708268858722167220568355508104067166623968083913388795943596868016759942749275272130689608355617349243717383981122647482408227638413516738869142814423949075959569057958765812685971353685851727485289789066264903702351825017376631100413770300282171356744551757241259976658805067463237684745124070031834157938613403368611998058577754806631291646761777046025085684679383859453736079472511120594240047570930658685553824786395851368672997283800472866559702102132799808886759765146251613156912587780396333193598562819946171824369737055264802136308732500274900223578572899634294922144654282914891646512581105398625470122437045651220998636915432720344088406597983993906277470231850243553951834987433893580225870813053372910178190733396091856752520598627696291093418267179203769158803780079312763299853249815196119765026505764626703069038950564374682038433636112451631863804382054879777281783413689376594911069851955094021452118844398876788229507682181814614945819919895735243502954824682338013224759983324759480754363358229412695368432505189258335471706918328953409573189215546705975284346272524923461799523819070956280649761301127015608738378009159166678633130201575105111956855968669480908968216142274383610390257336000471015876981463878566720873890355254987534851041142915264699059152771711785548989369914266256196249364384201701717322789751782294485272312539356998034607717585026935426622905927808971695682643339422416782289794174915980482235912283823849480696357972084927827481417211717210926145563478744518321943076984569704584128395235313997918055974483163355109808492845246696891943886262707588883240691832196076146762455305702474962704916275127453144945403297250759003456903759299072907088744516049796597074104172958160702088187857358273568191161105117234610253327022364825575607364797364942803764784111834157616876247473997496457838999716487829391532750694138236743013630003
(Flashbots: Builder)
9.111143111177967712 Eth9.112706807566236272 Eth0.00156369638826856

Execution Trace

CyberMilady2077.60806040( )
/*
The year is 2077 and CyberMiladys now rule the dystopian high-tech
cryptospace. Transactions are now gasless on human-turned-cyborg
Vitalik Buterin's Ethereum network after implementation of the 
Quantum77 protocol, with the native token price comfortably sitting at $158K. 
t.me/cybermilady2077
www.cybermilady2077.xyz
www.twitter.com/cybermilady2077
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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);
}
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;
    }
}
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);
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}
contract CyberMilady2077 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;
    uint256 firstBlock;
   // address payable public _owner;
   address payable public contractOwner;
  
    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=24;
    uint256 private _reduceSellTaxAt=24;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"CyberMilady 2077";
    string private constant _symbol = unicode"$CM77";
    uint256 public _maxTxAmount = 20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2077 * 10**_decimals;
   uint256 public _maxTaxSwap = 16577 * 10**_decimals;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        contractOwner = payable(msg.sender);
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _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 pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
             
                _buyCount++;
            }
            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }
     
    receive() external payable {}
}