tornado-relayer/src.bak/index.js

99 lines
2.6 KiB
JavaScript
Raw Normal View History

2019-11-23 09:18:54 +01:00
const express = require('express')
2020-05-12 22:23:18 +02:00
const {
netId,
port,
relayerServiceFee,
gasBumpPercentage,
pendingTxTimeout,
watherInterval,
maxGasPrice
} = require('../config')
2019-11-23 09:18:54 +01:00
const relayController = require('./relayController')
2020-07-16 15:33:35 +02:00
const { fetcher, web3, gasPriceOracle } = require('./instances')
2019-12-02 13:49:24 +01:00
const { getMixers } = require('./utils')
const mixers = getMixers()
2019-12-12 11:58:58 +01:00
const { redisClient } = require('./redis')
2020-08-12 13:15:28 +02:00
const { version } = require('../package.json')
2019-11-23 09:18:54 +01:00
const app = express()
app.use(express.json())
app.use((err, req, res, next) => {
if (err) {
console.log('Invalid Request data')
res.send('Invalid Request data')
} else {
next()
}
})
2020-07-16 15:33:35 +02:00
app.use(function (req, res, next) {
2019-11-23 09:18:54 +01:00
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
next()
})
app.get('/', function (req, res) {
// just for testing purposes
2020-08-04 09:39:56 +02:00
res.send(
'This is <a href=https://tornado.cash>tornado.cash</a> Relayer service. Check the <a href=/status>/status</a> for settings'
)
2019-11-23 09:18:54 +01:00
})
2019-12-12 11:58:58 +01:00
app.get('/status', async function (req, res) {
let nonce = await redisClient.get('nonce')
2020-07-17 03:45:40 +02:00
let latestBlock = null
try {
latestBlock = await web3.eth.getBlockNumber()
2020-08-04 09:39:56 +02:00
} catch (e) {
2020-07-17 03:45:40 +02:00
console.error('Problem with RPC', e)
}
2020-07-16 15:33:35 +02:00
const { ethPrices } = fetcher
2020-05-12 22:23:18 +02:00
res.json({
2019-12-18 20:35:25 +01:00
relayerAddress: web3.eth.defaultAccount,
mixers,
2020-07-16 15:33:35 +02:00
gasPrices: await gasPriceOracle.gasPrices(),
2019-12-18 20:35:25 +01:00
netId,
ethPrices,
relayerServiceFee,
nonce,
2020-07-17 03:45:40 +02:00
version,
latestBlock
2019-12-18 20:35:25 +01:00
})
2019-11-23 09:18:54 +01:00
})
app.post('/relay', relayController)
2020-08-12 13:15:28 +02:00
console.log('Version:', version)
let server = app.listen(port || 8000)
server.setTimeout(600000)
console.log('Gas price oracle started.')
fetcher.fetchPrices()
2019-12-03 14:26:16 +01:00
fetcher.fetchNonce()
2019-11-23 09:18:54 +01:00
console.log('Relayer started on port', port || 8000)
console.log(`relayerAddress: ${web3.eth.defaultAccount}`)
console.log(`mixers: ${JSON.stringify(mixers)}`)
console.log(`netId: ${netId}`)
2019-11-26 16:01:37 +01:00
console.log(`ethPrices: ${JSON.stringify(fetcher.ethPrices)}`)
2020-05-12 22:23:18 +02:00
2020-08-04 09:39:56 +02:00
const {
GAS_PRICE_BUMP_PERCENTAGE,
ALLOWABLE_PENDING_TX_TIMEOUT,
NONCE_WATCHER_INTERVAL,
MAX_GAS_PRICE
} = process.env
2020-07-16 15:33:35 +02:00
if (!NONCE_WATCHER_INTERVAL) {
2020-05-12 22:23:18 +02:00
console.log(`NONCE_WATCHER_INTERVAL is not set. Using default value ${watherInterval / 1000} sec`)
}
2020-07-16 15:33:35 +02:00
if (!GAS_PRICE_BUMP_PERCENTAGE) {
2020-05-12 22:23:18 +02:00
console.log(`GAS_PRICE_BUMP_PERCENTAGE is not set. Using default value ${gasBumpPercentage}%`)
}
2020-07-16 15:33:35 +02:00
if (!ALLOWABLE_PENDING_TX_TIMEOUT) {
2020-05-12 22:23:18 +02:00
console.log(`ALLOWABLE_PENDING_TX_TIMEOUT is not set. Using default value ${pendingTxTimeout / 1000} sec`)
}
2020-07-16 15:33:35 +02:00
if (!MAX_GAS_PRICE) {
2020-05-12 22:23:18 +02:00
console.log(`ALLOWABLE_PENDING_TX_TIMEOUT is not set. Using default value ${maxGasPrice} Gwei`)
}