tornado-root-updater/src/singletons.js

41 lines
1.0 KiB
JavaScript
Raw Normal View History

2020-12-15 16:09:41 +01:00
require('dotenv').config()
2021-02-18 18:46:48 +01:00
const ethers = require('ethers')
2020-12-15 16:09:41 +01:00
const { TxManager } = require('tx-manager')
const tornadoTreesAbi = require('../abi/tornadoTrees.json')
const Redis = require('ioredis')
const redis = new Redis(process.env.REDIS_URL)
const config = require('torn-token')
let tornadoTrees
2021-02-18 18:46:48 +01:00
let provider
2020-12-15 16:09:41 +01:00
const txManager = new TxManager({
privateKey: process.env.PRIVATE_KEY,
rpcUrl: process.env.RPC_URL,
2021-02-18 18:46:48 +01:00
broadcastNodes: process.env.BROADCAST_NODES ? process.env.BROADCAST_NODES.split(',') : undefined,
2020-12-15 16:09:41 +01:00
config: {
CONFIRMATIONS: process.env.CONFIRMATION_BLOCKS,
MAX_GAS_PRICE: process.env.GAS_PRICE,
2020-12-15 16:09:41 +01:00
},
})
2021-02-18 18:46:48 +01:00
function getProvider() {
if (!provider) {
provider = new ethers.providers.JsonRpcProvider(process.env.RPC_URL)
}
return provider
}
function getTornadoTrees() {
2020-12-15 16:09:41 +01:00
if (!tornadoTrees) {
2021-02-18 18:46:48 +01:00
tornadoTrees = new ethers.Contract(process.env.TORNADO_TREES || config.tornadoTrees.address, tornadoTreesAbi, getProvider())
2020-12-15 16:09:41 +01:00
}
return tornadoTrees
}
module.exports = {
redis,
getTornadoTrees,
2021-02-18 18:46:48 +01:00
getProvider,
2020-12-15 16:09:41 +01:00
txManager,
}