ETH Price: $2,597.83 (+1.89%)
Gas: 3.79 Gwei

Transaction Decoder

Block:
17685459 at Jul-13-2023 03:27:23 PM +UTC
Transaction Fee:
0.042610609849210543 ETH $110.70
Gas Used:
1,759,661 Gas / 24.215237963 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x4A40F7a3...Bceb48777
1.3 Eth
Nonce: 0
1.257389390150789457 Eth
Nonce: 1
0.042610609849210543
(builder0x69)
1.983005466185860815 Eth1.983533364485860815 Eth0.0005278983
0xf7417e02...f4e5cc57B
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 2479709857133455983764948789242489605748082922440748766602820890424657041728513088406903135872104989542580565511354721486128867572594267104649340725159868769862096959754058760187661647827834982658007558775610656970037596517705888576638672509706854419075881872081857282193859116564484580033118607648760544161247736548747546574491528334265320524664221400008165471664798058376697984464199798067330633212223215009656132641987801390819055476071066130825067787050796829434109727249759785034366681058022163927751471263877280961705724759536307591098388008028116882898633361329553576680278023466611206998623404501858094976762069097161971737697434803571403602397148057798780306234138944042174584805651079939638334749037330626981599427295512123738928573660111700681573883465824546775135597909725526211976437060579170755108708009982481115874916832983338056075865007858679144576389532522506234016412320487158671748148844086289897470405967415499395976777021855060167570012989625650255848141992032345817747918047990795415406666158427982098252904603122671997521925627040931846833852849990120188827744634996346210049603818798360849080254007826045067756291321998063036913080794269504431766825389369163710655013120820066594389173875809411742863412612491373677615354507171376089431837923328513867106626410833095681032253333829564303415482688941545971882538382155006631977063767171192221918346777124822931134972929039207897280340920629302688738258582268057418626218589972717028597938536281358954393532138550939374735115748025395966994579719065612751318676312793600640944282496959775175823777934862796440411221744013572253355181659912514758210173841089784951691066929904306791462089717304199110865762902701322439841550391873825723058597191025675768872826431582127572001443821231564231593480474048654516070725282509098859149627954196231886465112026275722549651977871894792090205893273742197769602674937004615285742814265368413721845289836518608551982595742255826240631913514144267547610723415438956268027813953689757409340101403460359342673499631986668187433459306660998623984014770205845967765368613319321359020661453551997646457818406394382467153361850484380245465055564312015722651443554601328664419253800926460589313639019919917903122423813892068026328964584075733797066286710294466111638056769723882970203449142152013001514949802580110420810712340294745924540236157549226671669819831243739552875345567636151044290940180864256331705767864228311990512280214393200272577270508343541550166327718348117004613672907974724812406831147954406162507321567904156902518044957374537064346583181130271516145025992448695909734204909477280501650492053793994807899846629165715907589303098857364143492263163152883427134924554945704419455908907452305251520708753008171054657985455265760402736442912754981379263135052761702208706040612818533782336868063860534553620457606275807948140324830175547532526175651482708903483073264293728499736481828588905954767963057761692613587136833444796698963846735280555287739003777140931254538259940987008767305049535409568269205142427926671495964325062423704312108730289878629004515621189778615099802462557142210203228212182934333012741356913117127308790948132044010209713398312099341300174233504576661011973977777883367364272064501099994289742631958318136175752738272883913483299237570340414562434715935013653070991667083289940251185095319095124316736012222066459169341504903543469208671105659230382168290706724487375353493248068943800835391803847346641046611413137910215725613030929258135842484091489347365468948647706803136586998251565905900300368176301963574327100954189416091756624727568301080483800759600648014915753168266098073536357715539977976156842506605260553171931961977489906377797410878585578299837364243894195948168689495308495497941025085607677092599787607551823318341985478734256492394363707188762563242410221338139159900153300339367177879834920095038497960918736117032098224580218516238224035109325923686430314262071945105151284139224127222626460087916741997154359312726031663932167590959214959429270660541563687068890921026165212105590021823464501975081972805914353371595356955610542634979238843757895131679876382017189558097045519186821489861090689695074483982748453135124741890122095404234842818433439427500008935835021231056317144038973948513508448646462804959886482270362368306774989480689668276210556697603909820639847342911957068960652379808522075951563941028370482660455038041920420659578077873371504965918673320901322874256728347798991704596563054316658600423057413273952394388148699813696027679736693507302588562792848208058612304721792404923562154259304680836349774167477703203894801721413232617977571423580934610023798096411443799241914438748320835123962797607866324911265031570196804225261315152102327227666127124599099060075141010337673548946710883117742135002819995444244004522512268142830227117262098705873292868650158563116698147785874568034943265530245749737679245794366551337994793783688350898747139199625560020722055600100661682425015547549594292640034228981148408352623563188204771151309716436057510079556963319115358126552429970697177116272426117986548689903093326431362860018322421112532934620435857937275549048587628842983238077407027790909427505892646841137295418700978569272770301818429907193036993742881422726909619553692192605881590150275420212699045379584521361703447213338400070637930100285635833509387673505364351669553845597036375970941672013290020534949084349044143054531720626736169133127694299656917635893931629907186129443428619179842066320690643095491062173276261730627589748626915066681080469955551781220175595991893928499971134080845934226349239687941611237023844145590616526904533699829162712944784145990703472431724603661418017551017462001450475634003349949558652478540187840522614737009929529978678048526889921523629303688928085471579473417006832273428657653642684168534720926560535667755165671016404110851702934845266266048199892624160119433469416404782432109894433988314196909536774724188465594459398819558146956552037058517690564596750677130452089792000184242375138413708653573875430248656958491875034080354185580849933725847595266160064643395741743556350675514184893866810674269576685845178516860368526899972850945555575766610127356739882114748250794690775488432115834927330458967408014478169369829748324976840541692067495560912231671290164352865147253650888103431522994254845268563657925927655784462407893850618230892429454701845390224520907829619057346404688903597247871509339096770666980001006758021403724764953728477301578126797144870265119080985599377477121308100552263577734431413806585717905766426486507181645728394921851420242474978926654093317167205509967070788658733557752203019658795729188783979988200777280757781943802730939991904146000766101045338299970122861062821560226965484867201116464914056333985272810014734980539829440119878664789327223586305659583828173869491590143312706512110566309178978177867793644571089501631121696337910760615914258381356902870589108139929719760435912047563630927588980441148441083824434811906905928600574512285269286135470808045459145046370122887296568482694112616897470030899205529213620611112243555939094637868823200133537402443325293183748862344629557388746651428866906479121670400291536082406882876215151927422827667572322523829193996291705832180167392415293039570418433087415816384399541167111914157832450484016259240615467436491996612750535225865745838201363212882521618537895767812937457761029440970880672938867735881424436053282220214489957875266551365051281479726078651085607372525981037323007350594547223261754669862168668795683182658481963016058132767874093797318535868657667986240179192240713519101492519628574180258867105173343974241388766063639488890902921380749591731618894102740889439099764049131566588690451139466724842886234968739385627484027726141240265630826545640888243711018507041542337375598712518557096069095542163588328254892858111937110843937065674633943110845385180673966585448435094059910141832311403891262137957975307651204977110958537190358658972596016747818186481622986420311451840992036273227592733010690232515456404143749305287319260200546443206885481952555457415796002545987569660536653918307719872791231057388942816479355542541557504040822911391826825318948111460791370954219667642792481058987812573504911607123368131146602413114120464421083022055963435093079053673426041772242870661580417623485117130768179948465335029943467489928234675134345904678332049516296548342698951366860057588069254934296950475448068131582838571870998891906853994294099476586152281775988469228267376612149793809893211954414456553392938882906754322995782989282443883801050625923451523966571316188620724681783409701608311708293192634942493405712608298285178392487478699331773660525831535944182851609320434753626127272300677649602872829461603138764217442031596053266071008991039055913919144125041796961620419775636018488611153901244227256039197327430752420615149689045077295788236617448329584058758206079343855457140786468240951601392499127671913731839070803076666469472630207062746713651138840014544791227082195895027652201778947020808593086626862994653656124298045470423968379054206830143230682879786421834525538298332475975052475881482718134008070905984513426774267900012269588059676508678992690117609781026176329697242202070696938313477869379302044640631053910517353008109121539335289988356017557195890794213575163717429907861292897595419613012603554801036523216555618234322070077859406218105964572137491686363844598956234392005077685348769862203370434724899006664108534847038010492548949820693826919120673057889353242555381680733192664617526052438163549921420952017298010822286112734941763232981484278866950859552422737487695365449406684878955251644951944473746309244827348519357649787993472498976668835135829974736409424339167539544524387111899802429073276269507861996136697934566472784566242362215736561453640052697246959093820981195207225027800836180694225552051695886127600529165933909191516297564474146790599772418526822856860129907948094744205844516292297085146679090094109277641673187412862220136437682943077445655610473453684817246393266121431597607462058602920393158082443842725546283611476158241690149326980802917749234453315245663065928886482341178003421383839615048672545356827717478121931138622835905225902284197595331522971548428309406007853362809919692067081554767681108361701396137023408814429147757373476868404239204788470185229103728540889011104340388942030257344813697518298049361180514472260112194867119577444285975425675063324756775865124259357357751275530931161546582739872664158070043780986480892792263330407323133533245801564886146581225113061871446688522428822475061078053919128802738590092442036368864447753070348669911546766584075315286113002221887409043410515982992690171170656678128856648735397215330567177097439106726806848962223662321968387575364210476198370262788655135386603323674998485147106009032972775659270350427359298503017612969979432065258675130170976156820544319100326883632504861541413650603554638179818171900901358594711162083094012747847288939705539953277030257526019501696374142788650957976575541500578955758203938203296932291754685027672230674998925575507648011608192156244657259857294443362127484896505255784225250872329465227346851388014769476444816550256891830999866191441714446936949357968692399040458213385313387136997638952850215553196325633683416107881846460050199278221097760460283251169403086565769392823169725973963247508293365455193718858751242653841789623602207889142587858780472618908234756806935396652675224098887010862421038894344751009049066567289388991344994649877852554703718720995196763234983532144262531245748931685865865629909715247516057041138197424946411675626543662293325406586238694295294673339387920225203181358870525053861222856038911313995643949901064630009180239616624808670313065713662123344434014342827721222433572730245281518273402914907582995699039789389654773989301078881331615913999311071559094810144956435117840585621608425226121367336229370374214974498682562602174678075057456069961172451445874044530115701534122218806573568647143502497212208224079043780458269977046145562729962487736854463123091633981626127155207686414192054761401791358104105601022538787283434064971635079233905324576491585824954606724323471669491791710578421916341035272143114290218166102718937346019774821716277090424818386240514245085984570454660854050307200836951122662054002535321374503295630959236875664095428710512797588874765722672664048288926935250702775743179376243814114903492647463963329920225447491836760817729506601974144678790681612745010317093480230643656991782572497340362623390238139870715868118912330926994275461048631339590753797532907502005444163377503621117394359525256186878941758544140153802432419830873360423862577227255962827349909027071433581312962028948446344668273926893453946465344412991767224823402560047097276133040238831876230280067580827503471345753586568768651153391129654063988358289577265968706030631259268356856485920100771359333218014525938737326897265516526402941745962250212149968495907538503810751416219990724818927689778596502174349598642379805375614030490839359796286150429645286865209372608080739044046659748674782848054411002134937209666012629263260429324710806034953099119741069313856791500863783822688440982092193287299692128144347676526339382345968376401642432017825174385806986005617212094477778959135533453777948998674916143363147402974753325486232148875797876295464854133599371323771960247181097618873936831717226281069404422256751707045460163237121232762950024845112215854727339104018955436176751021586707870979723795603373183167504347644908967641698425526097332391820522606603327850675162014196059836625307442634274037496819817786548742151064857622153995584476452867454613029057720402122398618245063198443707144248379077628923225045813018535219247267572999181328190943296040171432667913223876412225797471540346721159992113439152074435956881658212386415269849514463291971888357038461427864239098226514770100983882238258075207884757187218914389446676033377825025139400584363428751460210204477111321945146897913344050201205432068959009744852233640082446140310879815219859554951286248320111308434635366553436897382136532333980005958124842565063866292782774089175566636692121570221742288147900016233394976466969262924006943067850623463189226680091190268152267458551650886707947317773512830620219647936824218879506820073323175107186107053349593289247307244986222539651388707866945960043563861965813472613864544620574491812369298011981286644448239693582458425053173413691146129596907232791775358479483353247299080734432298492025866914001799261150859337842228758189342225406912708616009135109187561211582619576375756395394789478759169307903567236461414951842516625317000398522987348574870154292118501505158691761158339405257425904725216501030649382182471347155256327218494963763

Execution Trace

PepeBank.60806040( )
// SPDX-License-Identifier: MIT

/**
TG: https://t.me/PEPEBANKPortal
Web: https://pepebank.org
Twitter: https://twitter.com/PepeBank_
**/

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 PepeBank 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=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Pepe Bank";
    string private constant _symbol = unicode"PEBANK";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 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 > 50000000000000000) {
                    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);
        }
    }
}