ETH Price: $2,293.50 (-5.45%)

Transaction Decoder

Block:
20359211 at Jul-22-2024 02:52:47 AM +UTC
Transaction Fee:
0.012853719680926266 ETH $29.48
Gas Used:
1,820,538 Gas / 7.060396257 Gwei

Account State Difference:

  Address   Before After State Difference Code
(Titan Builder)
13.456591072241297546 Eth13.459234011706583822 Eth0.002642939465286276
0x6f2B7246...a304d726d
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 101130386313080770359264593646922550618387197081467957964671496233502295254973102052149517294767102377740873609111340211803045154787568710789326838516800212538491294236207259159720311083983984161674331393702936883922295447922752641153935555881076515084822882244577081544321385425950731398979852716857486711193191554442437845652452164693021201399203986242872002137746601899997787058465350885449874537598381142801888454260726300328503994142602924023629266281928019801985932091218835499606490840468560203013102678454413075336368756423704690211109927596555294337254370910324718408573302014280265624673472987537455289284174680273446231130018205242716322331958327641342791208105400406143159711180784504066004593319685891160761835019437344107006007283044634221512628924321834134214707061487674362799748467617316945777407534097262514934312072462966246746615621877939375666677649808360521869607402841122619548656868913650811710515415523409816340796674045562648504244434943344938560337692990290864162006296835586817857119678651910989230371114789841001261262480345858209291367869776633374360652911017843158686670658867133693136387581778224131831045011629425063632180305682532865465027350572731803505334770234653694643002529989505856728088484457521935490393306739640714238990861920088541634505466800706509770524468245061248896121733942810627421283515704136444721214173037839050838033261432866101165450655140479906031450709288460134431710337438971900453458721943042279590034862762871491951723077683500884775230565903027113950488104886259322726676583153547380696087132201392042246502092988647449325049222991612667266702598449894438574258413278614592799008340633203460203580249727803939975647346108586852950110386682300613400351921677419196548254710902953643537809584264593784103285707531269043569860834362929102826259588409911279434136545235942183940743195366548888361652243033427543114610687339037671521967460004975370241186614636694085567525985195163288322745001024138964936661523029877729207427826115707189865353271961721098039953601117550967821938741157043682348278833578710613581379104807834976433699575620217309024909087671563150004849593809664429269155594118392657018500289103245961833949208813972029783165573714320525988169723647570939329039385666285998432321569366671380416895248423940819032419260869018864438626985426184244071308413033246852247644548539306906214507232480497847937894576202127131820707824238592845329423377478111171817310168003467983375587847757382342150837469689275511292025513917364228678101731170298262520392620596772737088429963005239043481559002552428237741218334271979878335065222884241535378108539348768580791382515092450394524241799944589849062178412016167942999771841993548175183165992162821229153800570938501263591294893954528763838640342609261723858792105503424289307983926583637237706019791219106818691439802232729420387996687700791070680007014603792287532261616220297617981045698874167690504769778246252367797624874720001152296930971552659973903894549606092985151790418927268385719978551691347394903930839398004253014878095798072321409995469277961339095890713991304723670715543809200244737001264685750579025890808777461267451640928988190055766708078777639633747229943786516617486463834836387093880414594460874112698838988253895883301113324331876587921061793487712268543550283483415566887753688768774370295393362070472857454475010440780626220383153025066200398012696217609981372598857912460656744640433420862922940920646787595721598306689521969386803249538732700746848550768473006495905184706304079338616229549970081602609847887474994238133711833224124950435870334339878490623974914519239675168524083327290787195814797653182844340815103036385981550589321630556685621642340117908662860578849490246274067872509296199592563843343293555119223975887800398670034803926095310180967918929051018053319476192752169927948048138673901844393511582434129590888702925150350557868767873159250946628735066889999828788292161387894225390712281044982713886407522211492035985150838460916733067835997089353771556386204060200338221334374692189071293872457912002872982561375519172526392726748586658185241290564621410080550199412790814713462675126490050424535267548089965141193605645493235338075687011836546993870200071567827487152366276585961683040768103790786244370403694284106150211654152288909576873288434192857646210929935138045239231487931895834493125718524106790968864246824519918935468232957422277001274065730369533079285050038073134778024953627145858329958374220644695915147196422628094423916434969206675078305042325620276130058185002724534958100645005760869818916593849788132126375731426955712880128548358599591468074445324352142134672679712810776438200866542969649390852609380906085262061261967041695730183954216513638024594972279043612233904681436470328196427267404207395253184403691956965474766611534048020991000830732944994625397256626590138100836081727511172954514408294330694409346683434860217512534591469609503197719341308899636709950994635407626172899709683316993846987342581726390034605444321756889344392673794729889521118278402783144326940661556963588666385510781198671554113996202569550989591418372164557206341342230298933615205453603478984795294068502574382782504316102379707723220581897618433992329407350052565812079493527236801055775885037229055530575234300992590707034765541438052263192355669238949354271005998988068450537756838693131946479730152136002650773739544093321172067329792680432804770417945132057914241008462691434514065165636133499728557695448689856972225408424946851347859077316025422028848800132406167147320382701697730076772622752599209559178288354337651427475245334875695528254331387084822168689599939606853742026716195920714319786876218606995456147179249700216912377386769590768053233981273167856272516513570384639101617359751058165590828039904385361508673710178352858340697950463657811332498832059222524218188007190798018399972708863331094506709106445857662426058689238491708414840754403018071980925311904071612783011853022878488581841529776101128506624718318760391726107288956768905963967942428319275852363698317724000845470463805611074079995726077725002027398317552182608363278644926586859783850632927508438444979786889300601449797983781541273338665009427029244960372883925252446481792950505503979029122005545533952375383728307840015635612259950289864025347735770189798442410678349988276026692114017272450824695646858042948952625597202111571671462317403094963680015262601181123725747229545729184392000685990309916586929911302806354674744039533467472703619551015041824981971360962265052211563643242010266070422574982982839962040611479719356151601978181416104530784550982420224236066487914569368962691073393104862888221249803696646461342290949432102933337861660183449250218446693148298929199595598931457968553747609733222993377431014851985677040224237089307618172962252338691203434038148970103804761330301976561996111235453658815826639061481284155047211614949386949104219474112288711253477293634595419317333893632038854240887141370362786643221125081641870840099560546304929369082790205382655998337915664493175040349965384666390085366081326963472024253488403139884135779679523257092065884605127101263987402759820052922050720517675787577770072411817590397600559481000369242991666623781170869085353512980106993279634713627164595973454528879616111614554166700872274673783063174659405438116020421986036307121791979864553770751508087033216966053450699193508250979218151586163527196568761031173762546418200320709412295883415415962584923836087181953347739037926566483412082193432389666580912200165825757929548657602440374298220275449078939062177640670710572845634550972998593332849809483638168631263212501823137159320800809584805598297661237466135421586331367200323739816501366240831997282948611019130080255015654865031414502545490585103262878433173406100198655989237955492457881346497987823334521990693128489432520656885959879148127049901180258767708716086453817307342423324232830592603578095156906732629049463654129474303797122279115574372877865798956200467106303927407841460099845739913504913511395248057962246023732868051896675558248861362197407814914408942862635794772899392276579593559702669663287858781626259343044895546736156624957319269156186575246134957651329164172405145276727965449244892394580006958684719262047832843505064591699031732697546562583158033625857460559097775342157991809825691890000636425799685268967742401590849278352607335581374343151027480838020510963560449787335791848541859144107827390385353960112080432371789296693638960879018715462566346368264850048638238483729868025226588396214200370787330598410602666988403705995419986368453139531008810232444950655722694871543043550263285200841578667987327301752148157522099623231145650737064079487606261661870390292313740962142237512669776726556411875749185125951229435372241310909326799052345356650856781956047754606480750210626142368335883129368942446726265055700231526810642201951255373855078534026493339494805409162878491068644092466165103848501729207292446473638227026728891758174419507527033874383933572157534962152040466415928026485328932319913415614761626377782522990097832142195422965958274962133954331051304556695457237349717223287832483340408368459567884308389691594925975571953363031475622711742037181008745246807733892823787385087996493161675079895040873089937892898927397264948843734251631112929735788375815200210874456570250615922847127045978157179125775738082501487703878680710737528464043413300453465190599106774807875967167632299600225606442693562554577642159142948109650561709793928734639962114676920966708944795357781170696549658556164098011025647414971219341188373430549167221987079311580628711242312747983204348152753368237969209125671271714605757784191257181894324418497838759473630703983758695096000171707373277443628877171008619439750473670663164725956319055646458231965064327213086986966976582126490868245218593681416276729579685689051213754140783686490726237323396884180205549494046240609121528910195382302244947094408726536339333354974855565201502052999433105552004393471892031496860912389318947421686921323278299446286096833493413635328029147247262218791922882848612698056067727629695416320352267547423423738677777172939230444010147976848121323761781469400158429331567922480343309876189376560225873087547974687881637352840783203498539291693823548604730840446505870508181092310153762474292757510918562346266602276764085640858702093483846418941331128980752631791163978984754213562461841291850280506584382591134121755180025080571083329296775207811445585852497326469816169284205916619528079976706656717174849819866182479981417976181385443269164174366678034222132090097657495261011328299307423279759845613532389031720981249763107292514951284180852637496295083555879021486993153439183022149663829556821699870273421493576437131566079938597062744390357875430923896031867417781160170754481529910444185031836198171741994664620156868901079669473839797403893334280907883504903342543698804692938563582246660348306603434724320882977137258277386271608233691487562214283286987281315126125508684918312000589246916213673552642903003879621999193220207546057972908596384590472715664250356457977064846770447227995149781854121658741366365753797106653603095837986685636392423554961499188694033859615113123629883888142911915638177160650376260203436503841486590422683170258148402879592945400478682692696830683971728230363738279332470451425729015492095298641208851486523429518170835486915038581084195073869908982373130098008972597400771765762895498801597840219574903745846502090963361212141921960799023376429664620555906596796511137908564378194845555628729811847968422206829135439821516361135347544422765098217173122610659872996880276502044765207396651515734216056510891487253664519160249940588349477887980726205963511122217269537242360624670739648696242524574826764662679398285120997349647149797565543089344894718508176590604785378623218689721743004614251792669618004394598347644300573993001285841156624067635698518676252618411676270242473699191956519872044042693160083970267520256661559859430580708592307889022066705268030237474962416302823624115315063863652716167154708844691049978293648792225089503805826197520403096317035028787498107909825940960188201521530455703902878927311818310910566216937655604357960100660349634688840641952562066480386246812727723705638888304723561979288571090406160867680063193071060308961387107792433503656110136841574247873790681778034286246516974340511754654003043913215895513955422075273509732560261823985400149967769474559264876533782413635673228824776063709570976628614183973074948865209974415749138341097334418999046610736380197059674717982115844202956586611262218142878438445491985334938094456919986152538065340468051290528661829686150280392533672630797988675876462330042687222724372289928988413749139928640860081869971748538695842183472509316105092143345583437588328744000911456632067864370245129969465808244048734903998506629748553465427527381660275783490301491203602383819163668401918443270751667034876799996165504879360808585154637086876638607312744606678142095191859127777100646874165568478031846823330486274347727241716608579798390141692926426246413527370742950380662470386807935401257045593271945753334568856361386685739588195406693887060166798739889663222715276696210920097291529072051835012756873222434317001906620003667494764088025510576002940874007694984127931489030884023530236291079681474590616246476363605708804446841692802330108654338921123639364958215034317260378721816898025873518733331244390747800710097259858185375507164540973368691467266316111558297985472151686433580923898187546242079642687705213573288965005797836565358297681608753014599777901269644777131688588715045437469837103802602779428661500818745133755636844317757223826691037293417745485158613785069585827303883116358153225903004699208500846677394682974014495839199523541072217323725008210979902050045279262083828904781638361148660228354795255429443174815191537736279823509843054462213128959583070487129545072148346386744051582764936137950432986405524973682655291732714506038299051321474612631456012103236004762935899943567000314574324127335128776896387281113008919274213807700537907772047764435291248043511584938063433376453424778756642755686049733624170675434684951123320730535353225881037995660075230301037890518025733930615303478237344091601181274314799646117442379123502660564121301853432141421380657035066073794603710147285740984097861950321599950697405980454284806327566149827241359026477401546027982990728941951600254003985730695702025814785506879785185943802780425121300829443617715126265271568568794772672621448505576312834360383106450118010214331087042314343214315155526869823546406482734541860633399262690856284098081576734812018001543422832202535897445298528868584169720137664188113165502974160973070387
0x9eAFC994...713ce5cd4
0.2987 Eth
Nonce: 0
0.285846280319073734 Eth
Nonce: 1
0.012853719680926266

Execution Trace

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

/*
    ██████  ██ ████████ ██   ██  █████  ███████ ██   ██      █████  ██ 
    ██   ██ ██    ██    ██   ██ ██   ██ ██      ██   ██     ██   ██ ██ 
    ██████  ██    ██    ███████ ███████ ███████ ███████     ███████ ██ 
    ██   ██ ██    ██    ██   ██ ██   ██      ██ ██   ██     ██   ██ ██ 
    ██████  ██    ██    ██   ██ ██   ██ ███████ ██   ██     ██   ██ ██ 
    BitHash AI - The future of Cloud Solutions  
  
  
       <-------------------------------------------------->
        |  X-Twitter : https://x.com/BitHash_AI          |
        |  TELEGRAM    : https://t.me/BitHashAI          |
        |  WEBSITE     : http://www.bithash.ai/          |
        |  WHITEPAPER  : https://docs.bithash.ai/        |
       <-------------------------------------------------->

       Visit our Dapp ==> https://dapp.bithash.ai/ 
*/
                                                                  
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);
}

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 BitHashAI is Context , IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address private constant deadAddress = address(0xdead);

    uint256 private _startingBuyTax=25;
    uint256 private _startingSellTax=27;
    uint256 private _endingBuyTax=10;
    uint256 private _endingSellTax=25;
    uint256 private _reduceBuyTaxThreshold=30;
    uint256 private _reduceSellTaxThreshold=45;
    uint256 private _swapPreventionThreshold=40;
    uint256 private _buyTransactionCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    string private constant _name = unicode"BitHash AI";
    string private constant _symbol = unicode"BITHASH";
    uint256 public _maxTxAmount = 100000 * 10**_decimals;
    uint256 public _maxWalletSize = 100000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private limitEffect = true;
    bool private inSwap = false;
    bool private swapEnabled = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address payable taxWalletAddress) {
        _taxWallet = taxWalletAddress;
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[deadAddress]= 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()] - amount);
        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()) { 
            if (!tradingOpen) {
                require(
                    _isExcludedFromFee[from] || _isExcludedFromFee[to],
                    "Trading is not open yet"
                );
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                if (limitEffect) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                } 
                _buyTransactionCount++;
            }
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount * 
                    ((_buyTransactionCount > _reduceSellTaxThreshold)
                        ? _endingSellTax : _startingSellTax) / 100;
            } else if (from == uniswapV2Pair && to != address(this)) {
                taxAmount = amount * 
                    ((_buyTransactionCount > _reduceBuyTaxThreshold)
                        ? _endingBuyTax : _startingBuyTax) / 100;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _buyTransactionCount > _swapPreventionThreshold
            ){
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        if (taxAmount > 0) {
            _balances[address(this)] += taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] -= amount;
        _balances[to] += (amount - taxAmount);
        emit Transfer(from, to, amount - taxAmount);
    }

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


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

    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 createPair() external onlyOwner() {
        require(!tradingOpen,"Liquidity is already added");
        uint256 tokenAmount = balanceOf(address(this)) - (_tTotal * _startingBuyTax / 100);
        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),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
    }

    function removeLimits () external onlyOwner returns (bool){
        limitEffect = false;
        return true;
    }
    
    function setBuyTax(uint256 _newBuyTax) external onlyOwner returns (bool) {
        _endingBuyTax = _newBuyTax;
        require(_newBuyTax <= 5, "Buy tax cannot exceed 5");
        return true;
    }

    function setSellTax(uint256 _newSellTax) external onlyOwner returns (bool) {
        _endingSellTax = _newSellTax;
        require(_newSellTax <= 5, "Sell tax cannot exceed 5");
        return true;
    }

    function openTrading() external onlyOwner returns (bool) {
        require(!tradingOpen,"Trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        return true;
    }

    function clearStuckETH() external onlyOwner returns (bool) {
        require(tradingOpen, "Trading is not open yet");
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            _taxWallet.transfer(ethBalance);
        }
        return true;
    }
    receive() external payable {}
}