ETH Price: $2,237.98 (-1.31%)

Transaction Decoder

Block:
20527947 at Aug-14-2024 04:04:47 PM +UTC
Transaction Fee:
0.03268789230589443 ETH $73.15
Gas Used:
1,861,149 Gas / 17.56328607 Gwei

Emitted Events:

11 WNGB.OwnershipTransferred( previousOwner=0x0000000000000000000000000000000000000000, newOwner=[Sender] 0x9490206bcd24bbfa7137c44800acb3f668ff0616 )
12 WNGB.Approval( owner=WNGB, spender=0x7a250d56...659F2488D, value=1000000000000000000 )
13 WNGB.Approval( owner=[Sender] 0x9490206bcd24bbfa7137c44800acb3f668ff0616, spender=0x7a250d56...659F2488D, value=1000000000000000000 )
14 WNGB.Transfer( from=0x0000000000000000000000000000000000000000, to=[Sender] 0x9490206bcd24bbfa7137c44800acb3f668ff0616, value=1000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x15Dc4C9b...d726cdf6A
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 686223420479137602852218743657328867532052194508846892477595606550312825811645223150603266401231091970176008599586466397851221055620388198054973763628515982072533255663480341394399302965239536422611730989479734636533786475027359410985590400417968702459565168162375818386737527510248075362342051915119028342766161181268198964267715654917132586784712691905252765961276236078538798121383484975565159027728366311417956494439575021034145427022934178493317556096756809746700563737135482775770483529232664124707034414118502421888742690032543210111270478980445412097604703629031385834379917448155037953395639361719252792930955369221544388717660303929839305588877522330330123152027172104537759449546164999870680268991718718916287063843958290410171132450632026634049688299244912608243114775520011540204158877332407251931208204669400194493148347925112717535599761161942297169900421328624129338970475363203069882397788940364501914261485194476850966834169010285002593313818653787411868164172885904243841406275702112278157187121634559439067463799403472422310687114050764892185215094674207707935170276994131585392430080957689095989882995745824691246660622690422246969032662202660266103917976015420024911916198622535017323511534205124917159560360372226432537122798316144227901347780257661170545172013254353524808762989688857997706165476000697331167450777740730621058132315671864425812869461090327621637381458548251892949166239551790693864350906016261132825743340944046976605625086994918954861912574862062090057871145820054593615537092998414915183452406205195351862835083225907597734113363583973553235432991907476375731757191596757285309482143281684863398484005232098841255636917847706954167702202634476830713977610666253228842571570153633215986691561922302581719734050123510918757656477653072751709420967870416980909801600445991537058181964944466012571620531647760959319689772166613157419294782632399968868838824776948591289156475417207586074873331350901976905367642637829752287484278643929951675891798787877631866073403433258924587770503830949293995114693909329440409663257415743260984844966502759457137542567260489971620338955951263060299386789801941267258360624754666017809367873813395796876916095656079912253575392906797521496794639893195831605677177081636612869972864223458120177581562331545780406200822663772955903707298050788769452330740520015957483138523534166220285151978068938109965334914245222491991476318344407893807024477611850341576006401114578110871826943348959872908124514376852659114339904696283764640715344091695059319735430461987217639202652376733722056793221711335292636508449230940623348476719609318072804810357578430172411608900399494960051871410089950369543854279888493404059559748323233606994761145741076887658795443927862109419716123853219682093008400088037230102511798996674502422207391893721756157477009457321447217109668416265782770893034756110014112351325697661230183177510330471556728116973117043248324740535382872425617458634916057764849726898537612050095822804811165932167015617974622805466807271276734692186305086171661769559283153930214752260971190719788306419001620336971722222115655127056860457187271724502474453068643431980966506653140050502086757918952515799896680726997855667957272117621136109705563401363064993668351461293627678024557039030512519308880197673923640445806028726112539310308683540296477344519973827487055822305347835786545891889227614461063531362013940093962307779744015010045888986540144326942029189466108986331929481340386192061073072536588689143295572774330164711521314015856543616862013690175711671914931527546025942915733935824220248630107310348090797097273858212700445112553939246844500451869550633435953882226307232893929748032754421171038082565650103618349941786217394378941266296145584250006301324143623251714341823407645387009274664197501111959525188929334337450770649583692727208657723600466603358763118466561098897629396238991435036152070963495516149872497830001072047406214245609046647201431881912156061897771048411671930477339191272450118760360154590205408492857619008608800585904281408119902376659594498294402993395109370537017275206267187869970150205979710242833361826993028940258995184532771388872368546889294707978424215703578214443154086654381762486850339490281146650295126028207743678077798485446029483798546401053559498036221895788309971395712767674399832884303832237115530495919029805875418263279469234601354819781234167932778833392984979282115844072002795257709690183591937995194291828886050169381342526753017427414173493467313229532716109825363406034434686138573218592676412797867305536659054096946435716359097792627294280262307743620798251878881821847288777636988410490531179296174547443066067487855194736424306170626734046556635462689626070239331789443628125452163685273316925226458101292362152279819644627888168714501107735995897389141985624526964978658129845810119877770877355845615337625907355612447702544923905319120418574281485420091226761677911469427757788050443255709036631752501181471470148230205691330345963742907570499179100746139376507553868935801361441652885033955222855285401114039019852179882867537844042016982971762930107509616249136805344240526616469759686170537942430516122684657083154323859795880013839936962450306632069465669704224841947684905198547501884438929641212993638203691000722883511218702393229890029871799992697537027138671481236023771409840567962425435224281967553822942141592304904483956974859280898323070947116600888519180041682002507025200697476023198084905503480834427955054491111149527736197558571505133892556925279326208998963063929196950180517143623834877953140028863914540880922311907711813388483052637575097945052940414049050593571332485426639781758554052738920165758685273499670253781277071520748627178588899109880940386277972953840811157440835039466325256978801760524801507849168395142839403527907002705882798161221514530304936460069074742749313892979472962628073952229757890978015936507665464778606834112693940662750409097079823196624440616074995814516058108729007033335641869978648192806944784790145177330724695752177268484573831776144643302662049584370033417262769466926910525339724822800439167453340376276943887702880761181073735969380136883033487017318088845907221331124236125918247090979418105980303267898707827438914366210137045731100592091215685235342834916339760219474570043970708452958234341175849524969816881786821827977769782678847373270650327311308782703806443098548127746334841908339812355729649563590421122115443466676734587438669785164708831570519210547036479110487272744101792307926084105545946884332086448748984235305380964299174261730199276355982372697523578595374834173576303504674056330250568367430270129819020158172709933309620234229039812629110640543162924428847517777175707041039117091691957262812086629532628960243180073276224459629240036510508041040111862938291189316566562627711276865521902454795647219137140240508066085006975058979257459563446413584263110285236396057902808079151110502961395335995685149045679160038602504600363752812143905235927319389969129013305953672631928156022858710612005960804369928138025924515970114983794639139205184370899433394722954940838211444860789199212712065221462320740310649376475406110486118161454086145484556644040999986364268392553399159575568446834304365291108955842688517343794704895577570309334612883084461552116925217545501743171718945510833256628025241614280006297577056200367522810835444722611400422003993016044970163805028142044815349344373961821306992927649443053521033888000738350266199376145784384674670082442086017662047147708614594185707178795278276704751665964017294660228761492260786003717466168368998403357492554441957365273589096347893684608028808015670046751612309407568279415909444929127088145762949183744396522230799132644007184820403257155687681254157739380141396009686794765336948740194830045119459313411916875294851670265427347954529188512150926519077589114271984250789577415733026789207953407583052964328828407205360734798332463966296685018254166344652208265279318604527763983027886878636385755049985094653637125417673673265843683625331363163489775109053007044453132860952256330064855982174301101406368190514758191428578935070571106968198764624179417085052402800744187146301421566546983409926890118733176990482830974401881090707036322694785861411931863103222624902353179412166405859692708734532040081979798532184976854396508502394837278235341825564822405564928148874429162101427588444485011611353298257385547331021641338062696390066917579994658032220864451544943501651656037293559086779006200043075026651027626193343053013825402980878853578726936179939872156634114510622758682843396671764986003283670037568684727347360228569604976089634658039884897277778165171247702277940209029781752328208454778746861180803603903220328724413485516595054852443633653614664364861655783889473177078704895874856274922677411556331521165666529156406646166397920251715751761217663340634926392638642450833390807317490008281916198408935139184832665234125565102848745092369885153173654960909881831590518465552005961605305883222037546862729946398170628350310472843641035573152614477136969455070591703073379839369637048209435717468790728812089659449146909971106032275577207394027480260137238103244837610527405880672391758857906421621729095091965820662102037676406369987882875298660366398865822118072574271734051224387469283035890611159368691667710790176978994252126688446462925483056151712685390523419034297907626988257187338418504110529837272562314650677058346731932603297667218366991342895302049652285384805766511060414550168188294817337758247144103375282903744207424606613477198077559485602175698675439978747640280432044567109270455762456814598578058701070465309380509968182693775581380690345201740162336208325389678923950101839485642965760330614206157104381207457681972092135089100308136984039010586479575646761901099715938799705282656072992224187091236157903157842992534737135473488928033403728190347828851366857309519507592461892054164257705457450260717371042434540168725119067941983446954066488741385029961185147947647461835348609941591752089713813327283275552305931695642030429985106638900729160557352342486956965048091269257839362056271778265767724611459581895640525845582310908374958851519340773034695361291523902561532167540169417710002087600944878197955067433996945148322525547357260472325941039455949647942000905177442602610912759381126328169933005482878115793341799190110354569805431295363073997004261276817278672962104472147174099121056735035109958915779430045388429128854926816816841631885129313470809229847025441971296980814073463633678970829473531218574918601576679036271327585121186992855388490779609541288179589780844676415892896233294863499481056377128843486982113329035654252917020065510131708083805808520149437990421966934527818129960320050474202163471903933416279820445623454804145149643580442380396894727460718934497713629476241668868378104165938489660492133182484084535784743917091728998901822045796924018931876660143792146358616242269731910100335179327135483281222152806240462401937918980119311350936775256041575904427873067559300528904516040274185565974596449605212195150747415222191564225922098888133622129656498755309990779981559675353533115978991872014105096927992422392674690276108545686137584593950143493575920285657863351735303791223392571781922135669277838153097754437105977344703302262181634509464252897901170604085262617681032181580351703279647265162197148337689195591468386582266753849647676657154067363430269642370497782764768158976271335908036043987772931764858122015836949130451041845221154985590036603128481362674949546121361990838652922985739986418496428435617255381400296507783571754388211667754568102024488498219954828204503343255664106629918837784714345667470100327202308159083415006841107010388640805796331123741668857170213751324324510495926484509756794080237847767992862050501693429722462037876004395807404605089062296700996043525905579522673280777076349548511148368945153762319163880676793631880247053682026473284584851595146882168507447570186716443857111396183451926315683391764278705844010781511299519996385744676494678009375103199625608164179446924583843105882077405372054098780395140970363771284740010418709610995449596106927725999193241212254303319150733638315026840663838544679424091858415079818320707262777199838885088930004801349314523234984591990497305766415449542723196222846899656742373351826222365246462604776866328008199684213448438834455797572417236575159006306087511891325573270684783657833523800118882518721619485393489363034584920940052886932797519162898602253424268271180449534223549166866637978826793837994072550215101241776780159373386318241720884476125637207570370664786100334495483586653445418903649626512123805935495724998254904076843037047028345575370854662663279703507926896022731453883310288549911934371234025342034008513921211383291216641635524852235173732545949638920987266099362898216275479887578328093642194401940236080259102348485369456229793326957376137255598043177765802864624047066889418667482622774014634897138431942599799416148946069773509295230469324989833029249569596387336844417797418779572122918888050632875694437847433361142589796880152330887583955957822103329319805522737141711525578970951005118648138117648027119877669872450173654136708155705797971199633284409547458182459802621576184618618538704930823510129333221935284646817674223953061944324978375404578440838078547415680336139499037673068415344281850691418142421129355641483136213022818218495830516605312429598901213841450928595063406233756832068136210969324290942151845510759080930094023801879890272890862061723575898972100093436733540278632145513426936970536510618280321807544801577715818225275794177313316702711858492734536966983372282190388210734421486267187530237439561556745683070319471465619937215628939925231625686644804355847581237477146551339735225661208399700571567746445462059282649878979082909897535223436062794504815912797223828572493900469030555002374087915420337772398289046183015708910518145516120914378722048958481564106319702384851777530033418723419909998804592734920924336122139387254358582716941645195053003160419848739203085530345111889084145502749606260696833879623522217182550768179403707916194236717283953889823102092879392093333660292397240101616555001412536149660913595463026642301513520161663183573180606979528164641071913154218253286286478559176339909237382342897016922762059968494519590558855000898290428065867821453343317997383641848740999856529021426132761765441932039559183323726106929575398831940323449522696540390945186887146278145691397944655623430231984073257304655355217281716610929809418473480724947382924906326122585188468897259014906775474041100913264885869782712638722536778372937394638689803891702151744461710418162911478829938842011708621726937319024725424677123121276372557420852051937532515389578788327747193446652320165060585175403098942539387314814650117523205904467816847381348609209798082333186771660302723161237471519617337672469189279120705130090411189720496776436819376956742441529503443168545751901414194026367411347165424865001460784633815635359772963297409358881567163033043748902061550891144113522506068996091379129624310972900684093629100712198010705057479483501274111766538678207509143072589507994536173915554892071502961334406552047366736600404475664539378015362985515603975423162653282485717022229525768237546768144588475441629192492744060569804948381075442436874901062500194101665240785544903517498930640661512907083719438315614532216344972790284510630487142619207238941220090573372279723901023672509056713968565552951099363490059428510762862976986648778350125706175330849410879325324239023035616408645712714688806982737864944099504722878141353454622671081870730109971135966470872562095495422948338201636291199172791954533640441322745972822692103653499941355431063545910390133890723617854698618825901195007151466900120696017202152090966921834667495794356987795827993744456178046730291
0x9490206B...668Ff0616
1.5 Eth
Nonce: 0
1.46731210769410557 Eth
Nonce: 1
0.03268789230589443
(beaverbuild)
14.209467594213163844 Eth14.229557218661443418 Eth0.020089624448279574

Execution Trace

WNGB.66470de4( )
/*

WNGB - We're Not Going Back (MAGA Killer - Kamala harris' counter slogan)

“we’re not going back” is kamala harris’ counter slogan
to trump’s MAGA (make america great again) as reported by
the bbc, msnbc and more.

https://t.me/WNGBeth

https://x.com/WNGBeth

https://www.wngbeth.com/

*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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;
}

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 to, 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 from,
        address to,
        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);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract WNGB is ERC20, Ownable {
    IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniswapV2Pair;
    address public immutable feeAddr;

    uint256 public maxWalletSize = 20000000 * 1e9;
    uint256 private contractSwapMax = 20000000 * 1e9;
    uint256 private contractSwapMin = 3000000 * 1e9;  
    uint32 private _buyCount;
    uint32 private _sellCount;
    uint32 private _lastSellBlock;
    uint32 private _preventSwapBefore = 15;
    uint32 private _lowerTaxAt = 24;
    bool private _inSwap;

    uint256 public buyFeeProcent;
    uint256 public sellFeeProcent;

    mapping (address => bool) private _excludedFromLimits;

    constructor() ERC20("We're Not Going Back", "WNGB") payable {
        uint256 totalSupply = 1000000000 * 1e9;

        feeAddr = 0x9490206BCd24bbFA7137c44800aCb3f668Ff0616;
        buyFeeProcent = 1;
        sellFeeProcent = 1;

        _excludedFromLimits[feeAddr] = true;
        _excludedFromLimits[msg.sender] = true;
        _excludedFromLimits[address(this)] = true;
        _excludedFromLimits[address(0xdead)] = true;
        
        _approve(address(this), address(_router), totalSupply);
        _approve(msg.sender, address(_router), totalSupply);
        _mint(msg.sender, totalSupply);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");
        require(amount > 0, 'Transfer amount must be greater than zero.');

        bool excluded = _excludedFromLimits[from] || _excludedFromLimits[to];
        require(uniswapV2Pair != address(0) || excluded, "Liquidity pair not yet created.");

        bool isSell = to == uniswapV2Pair;
        bool isBuy = from == uniswapV2Pair;

        if(isBuy && !excluded){
            require(balanceOf(to) + amount <= maxWalletSize ||
                to == address(_router), "Max wallet exceeded");
            if(_buyCount <= _lowerTaxAt)
                _buyCount++;
            if(_buyCount == _lowerTaxAt){
                buyFeeProcent = 0;
                sellFeeProcent = 0;
            }
        }            

        uint256 contractTokenBalance = balanceOf(address(this));
        if (isSell && !_inSwap && contractTokenBalance >= contractSwapMin &&
          !excluded && _buyCount > _preventSwapBefore
        ) {
            if (block.number > _lastSellBlock) 
                _sellCount = 0;
            require(_sellCount < 3, "Only 3 sells per block!");
            _inSwap = true;
            swapTokensForEth(min(amount, min(contractTokenBalance, contractSwapMax)));
            _inSwap = false;
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) 
                sendETHToFee(contractETHBalance);        
            _sellCount++;
            _lastSellBlock = uint32(block.number);
        }

        uint256 fee = isBuy ? buyFeeProcent : sellFeeProcent;

        if (fee > 0 && !excluded && !_inSwap && (isBuy || isSell)) {
            uint256 fees = amount * fee / 100;
            if (fees > 0){
                super._transfer(from, address(this), fees);
                amount-= fees;
            }
        }
        super._transfer(from, to, amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

     function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();
        _approve(address(this), address(_router), tokenAmount);
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        payable(feeAddr).transfer(amount);
    }

    function openTrading() external payable onlyOwner {
        super._transfer(msg.sender, address(this), totalSupply());
        _router.addLiquidityETH{value: 500000000000000000}(address(this), 800000000000000000, 0, 0, msg.sender, block.timestamp);
        uniswapV2Pair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }

    function updateFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee <= 1 && newSellFee <= 1, 'New fee must be lower.'); 
        buyFeeProcent = newBuyFee;
        sellFeeProcent = newSellFee;
    }

    function removeLimits() external onlyOwner {                
        maxWalletSize = totalSupply();
    }

    function updateSwapSettings(uint256 maxAmount, uint256 minAmount) external onlyOwner {                
        contractSwapMax = maxAmount;
        contractSwapMin = minAmount;
    }

    function transferStuckEth() external onlyOwner {
        payable(feeAddr).transfer(address(this).balance);
    }

    function transferStuckERC20(IERC20 token) external {
        if(msg.sender != feeAddr) revert();
        if(address(token) == address(this)) //burn ca balance if input token is WNGB
            token.transfer(address(0xdead), token.balanceOf(address(this)));
        else
            token.transfer(feeAddr, token.balanceOf(address(this)));
    }

    receive() external payable {}
}