jamesbachini / DEX-Arbitrage

Example arbitrage trading bot
GNU General Public License v3.0
615 stars 350 forks source link

error: HeadersTimeoutError: Headers Timeout Error #10

Closed ingeniumyazilim closed 2 years ago

ingeniumyazilim commented 2 years ago

Hello,

I ran the script first time yesterday with success(2 successful trades) but today I am constantly getting the below log. Script continues to run but there are no trades and this comes up every 10 - 15 minutes. Is this normal or something is wrong?

Thanks in Advance James !

Error: missing revert data in call exception; Transaction reverted without a reason string [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (error={"name":"HeadersTimeoutError","code":"UND_ERR_HEADERS_TIMEOUT","message":"Headers Timeout Error"}, data="0x", code=CALL_EXCEPTION, version=providers/5.6.4) at Logger.makeError (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/src.ts/index.ts:261:28) at Logger.throwError (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/src.ts/index.ts:273:20) at checkError (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:60:16) at EthersProviderWrapper.<anonymous> (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:590:20) at step (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23) at Object.throw (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53) at rejected (/root/proje/DEX-Arbitrage/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65) { reason: 'missing revert data in call exception; Transaction reverted without a reason string', code: 'CALL_EXCEPTION', error: HeadersTimeoutError: Headers Timeout Error at Timeout.onParserTimeout [as _onTimeout] (/root/proje/DEX-Arbitrage/node_modules/hardhat/node_modules/undici/lib/client.js:1005:28) at listOnTimeout (node:internal/timers:566:11) at processTimers (node:internal/timers:507:7) { code: 'UND_ERR_HEADERS_TIMEOUT' }, data: '0x' }

ingeniumyazilim commented 2 years ago

I found out that the part catching the error is:

try { let tradeSize = balances[targetRoute.token1].balance; const amtBack = await arb.estimateDualDexTrade(targetRoute.router1, targetRoute.router2, targetRoute.token1, targetRoute.token2, tradeSize); const multiplier = ethers.BigNumber.from(config.minBasisPointsPerTrade+10000); const sizeMultiplied = tradeSize.mul(multiplier); const divider = ethers.BigNumber.from(10000); const profitTarget = sizeMultiplied.div(divider); if (!config.routes.length > 0) { fs.appendFile(./data/${network}RouteLog.txt,["${targetRoute.router1}","${targetRoute.router2}","${targetRoute.token1}","${targetRoute.token2}"],+"\n", function (err) {}); } if (amtBack.gt(profitTarget)) { await dualTrade(targetRoute.router1,targetRoute.router2,targetRoute.token1,targetRoute.token2,tradeSize); } else { await lookForDualTrade(); } } catch (e) { **console.log("here") console.log(e); console.log("here") await lookForDualTrade();** } }

jamesbachini commented 2 years ago

Maybe check all the balances in the contract and make sure there is some funds to pay gas fees in the wallet in .env

If it worked for a while I'd assume it's something along those lines