ETH Price: $2,645.99 (+5.43%)

Transaction Decoder

Block:
19522517 at Mar-27-2024 01:44:35 AM +UTC
Transaction Fee:
0.069597947898908742 ETH $184.16
Gas Used:
3,019,862 Gas / 23.046731241 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x16a1a870...574b03F19
(Super Grok: Deployer)
1.965884752778123696 Eth
Nonce: 2
1.896286804879214954 Eth
Nonce: 3
0.069597947898908742
(beaverbuild)
18.054505230731099384 Eth18.054648764771959384 Eth0.00014353404086
0xEbcD1Cc5...0998034C7
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 783634105499056096556413626251877211940586883253664568719531671240488359571490097029185045492701276899653120903209920783266617003617912888618949804160110392471884926703359036143378107005849704528195101904842381491850368885038379206060863196493162831505143557342155923794282626246336396794255389673396243652727922727914755525526580050636612857890040649223079733350960210731941789317223112501224267274831753801978681475158898024298038966764828436265129600280706428644425787136211280057345322105988237786303938332954223365014181780596648957938703943363100503927650109806160664702321417900795583497692939004359458494477071896043835956213413584122125985032562833977070422852537115933492154693812905078649443008948921421708838865486144816037721790510076135553678663522099389035393218138380080215413792010800201015858664805912997583384481735550290195470248521771818473469567721403907472782546350944971176315612592905522401841835576572397334072151199336922186367968985089703397083215983751539547867692982123586750929689266969415276795782340158603901584003072674556090746889762115236031753715605555105053834448393186196929850791349001833688387896987497144151950588345574170825954111408476865002306918667842825892480659518363149329428246424274977149375570510503220884167883154043443909345983585394567671202362506786717501650139374270707098986388524922283346225464743456601711386498550322248481664537429206117569213520760980948091302526538326988250858164995147718827458240282848096648181469949234356279640205552954916492110843217173887237004310730688622011765827308160454025534560759270936033841135764100335090462456315874305698993420627968014870651918005460351172546357748857258735056533443905069917027446634268556593955967820435191897007031984608545650600507574336778477926005220888250912509416533720953907375463922503083120584558600979378680407790400717673644668796327340255845051977353758830541676415444679344862753025714172931720778210723871704664774539459683105241199921405637414445229161740528013378475882925801729822652738495798832925483875109998520895064605324096214551346523628620175550664376843759438046263177376606734144452655634088082723557882406562869392847292023636568499161067186028813268412336061374344149109298426051337861441288239425112062759534974965567273672129666363348268205746707743513596138987198006650254403840573537489474488577048844696648961942965000578243525723558395453666337700829875717186951037345792378269434722191383023686158627196992426637068629245526457658103892073747954877563879391533305190455785521296952190529681522188679023384480668593576934967950912169508314666835090928288392925996155444756869174137533806353243623495328245539949415176985302868164039561940339619002989587848342333960309000095398191769779467427617502896104145570608015678178634863287827400412028839858809293168654538587023178081607431658891635234412109206415835542546581936970302778515122181286676853440222660682322516312745105905332263718879510066946376624557640886115668807507615239596630102459032859011337918979706248812636485404765196199302787739949983788478285546334786478833533045585432128778661583944321245515254504697659620544323027730873382231817898852337538527716119162065128397616298895929932525422527175781813236381298810161831641702435838992799940742729697222869452128308969129239472863628728914399239067911834665409815506306626901597565949216190726190549161544346908200033939664788028649545185047870354106342802712192172934668874673619599002400257409982096096977855119286084486846490607844262904011208316257373959475616808798198591981657164610192619966516446309067410431154986282754104767559744368524995001679585639681828842015509618868810366313516555312805553858544174178732210434760040096411340433784120578165684045800822692636944803155333555162535954979606066931023047473645698644715749128884661615856628855719385629445527062346117525919881684272286093813733663796763562429993999554983069961464081366858116795058211490416040803164885736797117949381108714969572926529297239364343653782370187188258295389486466833089174569036825121711515620803100080534412565760919676148661502683039242906421280434875634723213346336919168797181569529506587218186522634740537089468498108747744244372692599159922186770195219481968075801883243680386429001379422657485080207747714748603959659886946081371529235012285338949340445160159124802298589026138126570564312479760770066499647872640771796922407912871884670752730004895478029833506109927295080789059460176877860785599093127630258232231112203854193395910767133102504059951344745368512074155955670921685693096015987651756998933109194211924207236732322447242245948705325984769213075311905708163567810391718760707754332952373665042582554999800774411732406010647439130339521659849094571839700577893849594274378113802666179023040888784334908341039269404946635339142220678404804367971098900270624506591023769405143623698153433945858835173510411227387225689873822105331812528532094461193506193742298029216346079646549314101620342004685413979518711202093840893068622754707372493030964966693188677317770608209309110120555245906939492886696588038480877290214761281040535583838965335367877504747424903297720661954579108780965053948052121291926936821013829612636547630565302693770173885147925761686629078085703873995223514550666828620056653343736460620421094324871537789447735423822396548921703632252202178525316655062337285475159030356735055993570909291210588604024401127995853368381793471865214368569445538773568479460195298869026952942236839418356058592876192389487090033157416804409588778903347335475265883294921044619501108729389972787820104939809247919731642103610391646153532808709119709519475105533569268171535842919350157159676007002143587955987435075468808208930638400893729459191919804240092319609927165219793228347023885796387393432954981599437483087889976476557402264245506974601797856147567976249427493268025811902013771078417651684267764146376793042768767260891528158406413820407394592302145298525991397450806112462137282057722025343077048828088105281142623086307177688427973989559397266809328329106878249287988279948718632142673421323488083866722743898589160464458599943768011084730117275080782348263006661305622926912387490563961550915220589126159144922237355614025941296201183577303840780368756651780525090071792725262337311546856814601417396502158023209974060359643583700975657399218920269596750535017888776254624383951678732040129678428230517682354291455673318892027406595794309981929659096825549841130181996370553013762005691135915924990694745445953383698066041466408976233089673105127795320012341508829989084479184996115624626290908048912061139161920605778528813522677135952507902153970813596278423616950586478625379848734752013687680389560167900330352538719581673690008154781768402651120506406706368262785811287546576350501442469501443859609805461310526657433272137769974182603127216157745738238511065908885191128913967025656281761819726425892340589430792819823601728209538148122861010105004785613559570264479226060012996588930547500992554130771875569228192313872635550295592157242168627779718375823514220878419945121961242715490249249606163518775538437066871682649601576325478706368463582534509151354627277656616818999449189951122249770902346844333263282288709959529263122052547355534432088579039793663280933697905442631192260734916665164831459610486893354332425408451812686848554622721404887095438839845235388763702526670333741152278560151508950995988158233100131393803515789208169093031744812643171962571250951650441074071526464905566506950610198079725954487466134920668518889273920772572344028280454958178834333440306471772263919985446503091680789663613400995291069374142561852789809067311672889836822294641844319105098904291131523107750329058240540982402972185865888967399416599202890515899519103175737226650554414889130469154921779441512266122931762378511274812733445800660640949706884331274722448627032107019518827148472898675414613951417236238144740128445446045319658244249358614068111048684037738399902821477286657353229426627502827784300951454594689979884944300217432089469985686481158467403242006291188830362059453246705097163933722870746330944586613337404025465923845149793008031335806295613581752438770567197234765750892239794941691552730233171949371716977052814550284623188724010152109423268841553770050281187948941599713708318344042661402193741203272642849312473811082676585209169403921090627586799099209672925113345444254718886440983028744348064042471921196984858196100101441167181583919122330427187782569925785183300688027084333616409283609877510474582666317857814395296008832058076606231816834065290219458622106084132314720394667113781406007821477054281236792636137077429162833876632597771783984599944978097748203421040074729244394002909381929606679879115066775092591698398501313676066204601068116400589184064827783384601231793635412876872534236681108899991400586419597612417596498342510538824768407261009146646911796841444771926596898051983607388343774808834362927771084934572324598424797654181591173689661652573130127392103891543627244013348306506875929239752348720589411397875541758149285114916398677148294883893810430695623986152488337352122814132060191776580429526159669953257768685888116372765257914032248412561972407231540903730121955190890336291868062596754497294405503548220402105116773302537245785435236832552683652336882261290636024618767040906216669721968775604750575319890415247079170737076512134645870492836138498332728284076631925672880509711722106777111083017645754011831568769227709573052885476729761687281066355736906636500902578268514344368513865465824682250387900199145705531537000366382979068429251391734421442068929801237093476003696120693108045605044100286402934704713719637746193710044386244361677628960816347661622973073433108222159518886910341590235737426177594150864153521606192496516109707479766042526919103509286039002487017645414206960239007955705043222384651089876341053267729754515367353432547588030085551348596396877234037801341640503744200243810207772891755212939945971693631621868763685673399946670744697395673481104102669524093198694726827658460145201491031347877056597969443161477891194163138704792492514039313479447461752351674968915678820611425072559773367834848688170509250870043153313273678657974544731431767962393213184857553393958017677751914699256308111284294812928077583342539924735693619396470075228974978047885379181120685212674400294032164371033148192701156228385608380487989822636124556665031240313059851899555688667496241570205642720677748874607354249968944967535866364206354184848869060646761921173118815415440745838542555890848291645334275804673861420689226522268165732984686189542666097455728463289810941969915888389635962575861549800341242006827578525933099117775103126729616394593806455096003788711727367978254772412289308531777362793888160909843683385671054236051216951713666657129977134431679932631062123322450724498743092236761475653693493901454049142611691111811128720768045440837124843565010098826386972494724538618460474819878098128114083027497134555576183175031271523609390323069381699994148484227544721653261932303635374032345390468162553206117702827034160356366454218141039290151924624002334483427003755276071817017307399711501900059699793930121440543059001846917673566048009230392934336524699489564779004266117851631462288285175092081209813117016068788289116035200675333457167645144950294504642565649464440750296076899513675414451823668205860423720556469495696324262011228904884583673622888442354818397103237684432026054133588204007612155244210764133460259142632929623253131221265929721955729489880809613895659184226431343309193085323043615204036432158458699572591347155847150373300873214169171161248795690296806245723868517495135951120574572066013580559686954433960436788575250363363038479109784296007126367784648421811632044139625772775734282617569504447166377196645999370470600174075458394923519434336696062355945880095239657565514845384918287691409610432740027796198251970296674768656205546766561525207246439457511355289644324863904479513885938215113593787144100659004106365667175064858994925158973276453177954335629339247153392383002790504841566645779405127013020694281778390494385349916574307623322783284580529686096085148571424400240764004250751690025250129603105433078861645077295693389797553711551868075860609897239786472322308501489912685755755197242806947894627362596252102747608688113362108650373570407182532559100846254391773481313561826115770871139696435711256783953456988127032928269915417356123935455774995452040737873081860426761979322656892270341498949119383563207787755610761024142346653854274382028707733061652355776756103941255087646908764744074748393741661171775031103278932411764765554331540835858922590636439172824845202880545967942213480993902482994974267798475599206290545041305852874861466034745198175388975156057607313973517149262387944604342443697952053577962094282286749716854704746305305037310687105651968370453638755283771154345670544927321572756495194130903176102431745583081929807462858947368220106882155317156855109083516610982434135391849021651859869905782174296446413319779396403146835154090571055694141714639077833118219570061155126637517577109473006191813969550311867809380659925944413552860810737470912624639156737071434510376766883399533944296032237138942778231630137162479526314139476445751869667191381553468517423998998881030865116667185767975127047061566384373343087672928452976063359081253748763647290938639142142893325459912496103648568602162858272544985568148117032039620106130780618808912045756667005279258725341295091481930635756912214553176977213298977256301516364699551515344112063825670648936689179913313269805532720079555962420820215455081909316700524322935593903110971052475509959860376870403895568714545140348333383811972592930857594487569025082926039868128121078063485449273693746822350568345082305810933346325110619650815974405282373970041287564872713343288423570136791961511663086628152535723933770611885000982619451505762193209004133567496501273308600096499470827812975299898192705775778977496661174555376199222978406442194946599874331637093811785184941291680986736740900369403588983072189397971623113495361929356681226607476588556963264516196791969951881905396519030195125150775601208610164766864035295127123953197863710070497178844511452699097262555978888904175434244635719717948772628524091091408677069405623665099220255148230092889004387305923726278917030709044734053278336259139593119825569699122808006467727691519179204078712192013640513218011092205076791709678083276484153665179779986869227834509447843445526364686423734636418038055953955330715015022760118012921959734988949941889853792779889740171716210850669902576802778130350928567165498456129400803123596687063074533183417991766064996524053732997788601883210304749525365019137354034366542184713738837887482512923152718290802420615536941860367367329640795754717587385911288538598786004647703262952082398138200745859942646124699654171031024709672390777958253042372961410421619008239620308245784778550347809366453255816466736582312850336480346383591514211075249405666955421139784470810700665030833428643898831332477145754415762829647301546337401237045932545433532506947709083695585370382525772529839993736833853741277680588652089272969227574021545852793881631939712048467398004801334516085730203026967003840537457488817442967883915217365429058882608431385870027947572310460324506881142508125338450586107636126626111246906207523036178822974054487893513358552727204202711193317597522740083852858788009598882615055352901115053822620237439401609398219811522726163689747010185610033453947234469003286107972834600508893811768241595568662412802444242535892798474932832142854034365503069987027507223582287807175618540724640132557284891397807570309477559347081834857925968821689544361290101721058681493885545332201372884700603561641319886050855091722936481595540597890311511025959517386934453824985640814552438918342533754777095907281405517126503122755264643742160703694171349018541002654312078865972317431708263782014589260010394076027763394159578098401915066720015388591677858696457895412202785688596306007307935003166909317397177846766132491873509754990150124623696872139941189321803148177998787618539536180298036528481050728318164728876868008991722801351056436244662699856919114301145428777050607539098546892679600440207069357874669262920995977110932310654920712471901911068901315664420858336235782451367884424104120174089220076547561567932659465626806740379206152224949141830045821858811525739609883508920725899276638688023223784049637287782792977793890719532087040249183766877246817478026060684921588998451309708959376219590482387322473838332704619391510538054736129858914631165545117162849327279921936196691923184691195303340141443288788672579888403028117566757056394763946057391747795433743635293597797265447519358423084748773907812335061520183424501728121547531996806566843103146163722394729247913898532491008815397591850926802565804152859676270555795467835800589097318697565880942069348545103451825404618589604007603831665500388252408858668269504959407400351010513510260277673353029803130945510906276927424437371049811280976588198755109055860851206837869924270754730378477630397097612048347381768558545675566179835056427934433265490827348252263972508852209181367726891032686084009755358653447336205188662368291850961391180725501213088991637200010238338851571558178628312567765857333617384566998333859598388348409236946850773664625556599789179585999540353691325233773913977736559531609560346911367678016736791896784900709903586951668233638843201904138841435060096863736937418775633899904973412508063054653695589013831101196063317456546494868664145199897542697297443343999949009860734211883400933305895527777104416496332843219258130054006998984590989684974219280902533160903725154571637362073270793124309868063417346929290336063844879313296784595036313859642886764167736393900883628447836075562323130699135448713341938486232686131008220909275381127938624674927261307661609524708621039253661443808483123856040258935932008352307669054027720774859125254300916627391832269883498893037555387892476384618864227321663507473135677463660199028343523613234738505595179720098723124538477873333782786639282770547915986308506162112233619407495086000743968274949596403591196386666559267351238309376175187972679363134552553181305588433590991416532362526315510454168119755828272873129560660597166414105009851565278120942490056129215654222725579791335428619620406989672747614181281975398534563723647750578742500420632287172385471065503911780891836043727017589123430372423728061661146903154907745606591179748818976952345635583392128717622250110564144229575787045616905385802749786866436530323755725442451973530970989558139304309594996531722964715457008394969612223396709782744169220910033175153754581285689059731476413609227451168593412005796219378286175032516237922003750344625638300876901229190141193178546990913290652986271786810839902388982878521614554841118669438013810210748043103138305588047722130200225660455026790224350689815940991968663033443885896877126224318085825406339584685723340467286351517203201333394946242773060946510821786652666280715343415684636018508793255240695384637110320072056615309436337492763510731638667417957933667392973362823799655785440298061438945137472784792819637422218181438930807276139947198779272681571955335751463141847693399760051481830807411901307811446482758521496916953587833673972984102597597207766497620902241109678308050078514844619924674140926431281843828244177172939706542095154650921905111329990062870589971674001141755491709054445281541114385611025446942230782164133012987989473637868455671739899664936873281187771552586515064341789655278752742808905923431899165336157085632821238688800861905998536544523610704386792436729610477801610286415990289020654051371004351882008143966922152462324584859283398757730743835441088960521036005553566234212787020595269163473811526874852082224461454696494229848398414373560454670620943469464792039145015230256973093003912476147721737222011253936316901899443209118106518572581016072135267957558656298101151674804434284406456481599334042065300763546587380224704201792245707599314030645313312368613268822026459268474286486428670792978578241266765125617393920677133565594368900630437904802934420058035387969945072318832549254567686779495420795921562470772883479017804608410192368369657797005187006435732514444542714026965780426585565874202552553857726514074545457653518821905682045545297995675516657631179969926223574360012225599800717184848072926973635737104570945099666839148499673667931306942887173818233828710718579043290753442491436902210011034308942647413651108390374678198668503451670699690383348517673871182772294056583768256973834653280791752002039535215641666483391874498290708794868261571092718564250981302629659350679315687691133392981207376448682436962515758149600278388622356587221662101413991432574751699400173786698487012602416182991331419051890647834902403251502507333787338868549073520364322955871104925164355942896439783061125906287001976894171361027875917740386527376714154694093985672311692954543911971174463333294318954973496549614828002311576926336832777731398731292850360764399753413968609278604700957008880565015594688861091832707437904962696890562265050800829658782521580583008369426511301291222696978830173226522727419378184091190249584415741024235117163183362016791333955013709568429692685960178996726333934059074886300501943975515765440551287028728767703726379117307588158971150504102886580648976570916570051269372457291161727047663814957745424585782490267064606457790083410482830470441462757965217198602917427550684291466574287151770490545464649941208505604461822252139561761291684044258418954428529418258855940983947162694943339058421682808228712994057744862352829067660149687022656010550122046027209776687261288217531273746635147866452597100462924853789142351613404812258901384959318136565078614321236992949349134200876492125067650101349627613729071616143893153301297606100003684686705058843067061326625906110590704639046626391710497438556832145797752844033843712110265525030997423072601593310427661361450706806472150859040480317731030159178205861391703481138885137192362168683560638368325323996014177073857931661896912654835893112575262173793918085176105810740567119828102716778196248601592676495806191680559585512429837158183948357355497977038810630921899080363919483310233474695642718977046961603134593370187870820597077569177975052102527440025072334036894534477930558298376816895748751604072883113607767383063312747143809425301350463779523827556594059566842046901773813623122017119272686765278372212668886734146709567753421595988913263536990730759039945850891714663171113693659377320656797092241637780160219916604820734574547756073612898767915140120698400335096124710314416350522253930437264996435994372166608453990807386916632059490851247084392896297228548372492139422675220784690051452882659659487556825829741867693814744733064339231071441293093676498005229127877416728469824377737084624436125041328874713525480817916634008593967619694091640539314856010523650632235936136996637307152844818231941244664104688936513711947117481793567492556091314288645367779587909376615364657939832023739479548038444674335482930736605367036985033821255114785911126488034723464412044742761518110776382049806328316629614432211246858211417125167214458030751905684357985543228612613697766432119001837685901172204492381739507454914999941625904589388985377042633429627908734120594135573038789384825810751819297490564542903816039885007562039577258028810237029429817663081676557593106481416320861830596057543869606323626138058593452627412241334023356763358262893295589437090779672110296434266273927146501954446522403419967116095611518680089914211700375122932105287021833409242114436271829272027295099993082745569959586026849965070502673334251959656772717934336069827176053942332497913615823017763266512402844290618503880381077150443825891333057814421933336318700417815497994730482191607618014314729803608363577254536297220716589363134624037286511985146581579650529109298903122180300442065841820344852887407020662923947493580318547748420053076670576091300560636469736954912447050573494205078326678361092411285336659725827993423299935183512160821545712183069106730594452700222053628289603852685332004137810127401761731336665326214633441310791529118245995795418139674478043970304091700004977424124570514475456938825263316533349554887122825099501509779217629670478121426574257734977555702535890214760615560863592078030315458143627324821147454050008942793915966957485006075244327980277533796145096892498867582220119931362509124761146030038877681742114554784985136996139671900752318507554600119965537613627667287430749502502267563772858555235226619256357595970661205197052185934039506416511426172161292277753951084219726118870148735404727975352437600159157890101957339946716801409213999725211036807074832598807898352972527962112997834547074044910976264081270353146901407582528036539021348549854334294669366332697189257688861822671163667823418963563507103900250490441979367042078574350679143142722367565994770907663581286508376747971988436664868857148833119435322050386144291174162900134335748649017837213486572388414689834759527496551974747201467990981544527647218690852788504579986023888487454049182962132509628581571010296042398236001312569672657791210342454594807020949852329232635557679011323633585651250940362234159339731407947689847232602814124598991213070997437441876691806669352071808680238335349784259408062357192769034251304812688424953582391714043787479682067355590094562066245007758453790273499670084673576628369599505950131142379111292008277941520895337285993740816518514694416630496758647924239804646301242039578932386567071561984011109871002738424988518065483422270505568999591518824458512477406830525817830745068758502446271424953314379184988620838791628286852127553969156149081487870331116510380855948845444671697812417291209033135263777263399486935763149653266019476520733725655107058639677340555297757060870949139738648726747082624917535829413639795171446835727473474219436751219458316044080086639462948690620921581310405515697430620980827711681570522408382252278771135214509396991941582686235013412467304551103020060385676822495912309198877998259899835712061543600702518657497960848889237145401576801055429997860788581993811635618780537288653512061695140339868387063446017196144296583928822055329917471232210478419883663884289846621527670524432431099140554194171522748336735672205514161188242115997633038138426139543049110466352781870623375459042809593952742801341958375865603557559100683798192723914889178916241392049318092001879386425881830793260832494706854047543642835566106310012882990560438873280505836321839084031836627490566314864374553445695444479035408250705450746724704676745969498131189452615776803771062886684653684917443202197154619348543742471923923573954628465244268162923297241858300798738461527703076947438813976519948702033343713703722207342561087089635033619621153626541829454293040965040337745037448536297792893504938755549788158475942339382481211503989545737104906535627283409659055932783854626737919086352630366260836548467407097434225437831734457137361505958661680316631796635189470059410678336540212861444131477526030394092802913846063280483607162805891357026680891916806960471584764649103058672278806804492040365751444281740860857789762771426653241333818221595467921719315079319622335210139841581027175021601645830966738446762202924536817594095490425366807180756152768154770202059587750532561301300402689268656557361352404045694729884505563469115118790960299578072181118691090748090625398530501483728851869185892085818789209142842289115420087248099673596105056967554013097795487139352887413361974701655416658744964756250596505221919338321687456283525187316432491041016948421058659175333722717871387031779062092528479841079346556313579580769286306775861764643674983884092139727600858936240877322447806620517540083694208649327911132225959156549970743304925927989494432400256341724765969779208285496560160336335844274018570476657956602399828385246293306082368457276349164674219724282662611888682184869629867495594581833391050878693100841291979721366812575701092791891662601160626316083726711771854297855754637743478173417557114658977077859463946049713422736032977549143323259348716341505347159113390362778264654869375913108752158730752185083503025609110100868645395757439321727541229215427307574000951348514768440113175553054416051505156907589149539215415586305034478729860826908869260842774854622318075721441837550604078127491636850565127936899694726998590906176040399823533357147656047583445378354833332704572936344828123825698469513888527014173784034510494637231553800363030005848517817247073296579323425652445564929541253421810608413451945358972415446513234312203569179207336879737442417273981237472092341446916257631101371033932519660736384444282288996700345107622205996043553703009022353779967028585594937599992367295057725133878757412204370753805666935379223613279648182622001185049300285148094618337928024533941517178731974565395375415484380543145700905377618173672916247535448609508634057497288136204707016265336884911984329188084558153004107502077771801036498194211266885431614443813305652368102129466577658520884887099277363

Execution Trace

SuperGrok.60806040( )
// SPDX-License-Identifier: MIT
/*

https://x.com/cb_doge/status/1772745126952976434?s=20
https://x.com/cb_doge/status/1772756999823831229?s=20
https://x.com/elonmusk/status/1772724958801649711?s=20

It's official, the long-awaited Grok update that's going live at the end of this week will be called SUPER GROK

https://t.me/supergrokETH
https://twitter.com/SuperGrokETH
https://supergroketh.com/

*/
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 SuperGrok 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=35;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000000000000  * 10**_decimals;
    string private constant _name = unicode"Super Grok";
    string private constant _symbol = unicode"sGROK";
    uint256 public _maxTxAmount = 220000000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 220000000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 30000000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 170000000000000 * 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 () {
        _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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            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 && 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 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;
        transferDelayEnabled=false;
        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;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}