5efc9a6688
* Removed duplicate licence, updated links do Contributing and Licence in sub-readme. * Renamed bridge-monitor to monitor. * Removed package-lock.json. * Added monitor workspace with linting. * Consistent eslint version. * Added readme for merging.
50 lines
1.9 KiB
JavaScript
50 lines
1.9 KiB
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
const Web3 = require('web3')
|
|
const logger = require('./logger')('checkWorker')
|
|
const { decodeBridgeMode } = require('./utils/bridgeMode')
|
|
const getBalances = require('./getBalances')
|
|
const getShortEventStats = require('./getShortEventStats')
|
|
const validators = require('./validators')
|
|
|
|
const { HOME_BRIDGE_ADDRESS, HOME_RPC_URL } = process.env
|
|
const homeProvider = new Web3.providers.HttpProvider(HOME_RPC_URL)
|
|
const web3Home = new Web3(homeProvider)
|
|
|
|
const HOME_ERC_TO_ERC_ABI = require('./abis/HomeBridgeErcToErc.abi')
|
|
|
|
async function checkWorker() {
|
|
try {
|
|
const homeBridge = new web3Home.eth.Contract(HOME_ERC_TO_ERC_ABI, HOME_BRIDGE_ADDRESS)
|
|
const bridgeModeHash = await homeBridge.methods.getBridgeMode().call()
|
|
const bridgeMode = decodeBridgeMode(bridgeModeHash)
|
|
logger.debug('Bridge mode:', bridgeMode)
|
|
logger.debug('calling getBalances()')
|
|
const balances = await getBalances(bridgeMode)
|
|
logger.debug('calling getShortEventStats()')
|
|
const events = await getShortEventStats(bridgeMode)
|
|
const home = Object.assign({}, balances.home, events.home)
|
|
const foreign = Object.assign({}, balances.foreign, events.foreign)
|
|
const status = Object.assign({}, balances, events, { home }, { foreign })
|
|
if (!status) throw new Error('status is empty: ' + JSON.stringify(status))
|
|
fs.writeFileSync(
|
|
path.join(__dirname, '/responses/getBalances.json'),
|
|
JSON.stringify(status, null, 4)
|
|
)
|
|
|
|
logger.debug('calling validators()')
|
|
const vBalances = await validators(bridgeMode)
|
|
if (!vBalances) throw new Error('vBalances is empty: ' + JSON.stringify(vBalances))
|
|
fs.writeFileSync(
|
|
path.join(__dirname, '/responses/validators.json'),
|
|
JSON.stringify(vBalances, null, 4)
|
|
)
|
|
logger.debug('Done')
|
|
return status
|
|
} catch (e) {
|
|
logger.error(e)
|
|
throw e
|
|
}
|
|
}
|
|
checkWorker()
|