diff --git a/.env.example b/.env.example index 4e12783..db8d53d 100644 --- a/.env.example +++ b/.env.example @@ -16,6 +16,7 @@ NONCE_WATCHER_INTERVAL=30 # how long a tx can be in pending pool (in seconds) ALLOWABLE_PENDING_TX_TIMEOUT=180 # in GWEI -MAX_GAS_PRICE=100 +MAX_GAS_PRICE=200 # how much to increase the gas price for a stuck tx GAS_PRICE_BUMP_PERCENTAGE=20 + diff --git a/config.js b/config.js index 3f93125..50e00b4 100644 --- a/config.js +++ b/config.js @@ -1,7 +1,7 @@ require('dotenv').config() module.exports = { - version: 2.5, + version: 2.6, netId: Number(process.env.NET_ID) || 42, redisUrl: process.env.REDIS_URL, rpcUrl: process.env.RPC_URL || 'https://kovan.infura.io/', @@ -148,8 +148,8 @@ module.exports = { gasOracleUrls: ['https://ethgasstation.info/json/ethgasAPI.json', 'https://gas-oracle.zoltu.io/'], port: process.env.APP_PORT, relayerServiceFee: Number(process.env.RELAYER_FEE), - maxGasPrice: process.env.MAX_GAS_PRICE, - watherInterval: Number(process.env.NONCE_WATCHER_INTERVAL) * 1000, - pendingTxTimeout: Number(process.env.ALLOWABLE_PENDING_TX_TIMEOUT) * 1000, - gasBumpPercentage: process.env.GAS_PRICE_BUMP_PERCENTAGE + maxGasPrice: process.env.MAX_GAS_PRICE || 200, + watherInterval: Number(process.env.NONCE_WATCHER_INTERVAL || 30) * 1000, + pendingTxTimeout: Number(process.env.ALLOWABLE_PENDING_TX_TIMEOUT || 180) * 1000, + gasBumpPercentage: process.env.GAS_PRICE_BUMP_PERCENTAGE || 20 } diff --git a/src/index.js b/src/index.js index 2e67b15..0588094 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,14 @@ const express = require('express') -const { netId, port, relayerServiceFee, version } = require('../config') +const { + netId, + port, + relayerServiceFee, + version, + gasBumpPercentage, + pendingTxTimeout, + watherInterval, + maxGasPrice +} = require('../config') const relayController = require('./relayController') const { fetcher, web3 } = require('./instances') const { getMixers } = require('./utils') @@ -31,7 +40,7 @@ app.get('/', function (req, res) { app.get('/status', async function (req, res) { let nonce = await redisClient.get('nonce') const { ethPrices, gasPrices } = fetcher - res.json({ + res.json({ relayerAddress: web3.eth.defaultAccount, mixers, gasPrices, @@ -58,4 +67,20 @@ console.log(`mixers: ${JSON.stringify(mixers)}`) console.log(`gasPrices: ${JSON.stringify(fetcher.gasPrices)}`) console.log(`netId: ${netId}`) console.log(`ethPrices: ${JSON.stringify(fetcher.ethPrices)}`) -console.log(`Service fee: ${relayerServiceFee}%`) \ No newline at end of file + +const { GAS_PRICE_BUMP_PERCENTAGE, ALLOWABLE_PENDING_TX_TIMEOUT, NONCE_WATCHER_INTERVAL, MAX_GAS_PRICE } = process.env +if(!NONCE_WATCHER_INTERVAL) { + console.log(`NONCE_WATCHER_INTERVAL is not set. Using default value ${watherInterval / 1000} sec`) +} + +if(!GAS_PRICE_BUMP_PERCENTAGE) { + console.log(`GAS_PRICE_BUMP_PERCENTAGE is not set. Using default value ${gasBumpPercentage}%`) +} + +if(!ALLOWABLE_PENDING_TX_TIMEOUT) { + console.log(`ALLOWABLE_PENDING_TX_TIMEOUT is not set. Using default value ${pendingTxTimeout / 1000} sec`) +} + +if(!MAX_GAS_PRICE) { + console.log(`ALLOWABLE_PENDING_TX_TIMEOUT is not set. Using default value ${maxGasPrice} Gwei`) +}