8b010f887d
* Add console.table * First steps in validate script * env rename * Added parameter names * Descriptions * Print and configuration * Added more parameters * Rename gas oracle to gas supplier * More changes * Removed env examples for now * RPC rename * Bridge address rename * More changes * jobs * Renames * Typo * jobs * Changes * jobs * Changes * Monitor changes * jovs * Typo * Changes * REACT_APP_ env prefix * Typo * Rollback changes * Oracle deployment * Defaults * Monitor * Naming * Typo * Typo * Envs * ui deployment * ALl jobs * Vars in ultimate * Lint * Lint * Lint * Another way to add REACT_APP prefixing * Unnecessary mapping * No output timeout * No output timeout * Got rid of ERC20_TOKEN_ADDRESS * Configuration readme * Configuration * Prefixes * timeout * Docs * Docs * docs * docs * docs * Roll back ERC20_TOKEN_ADDRESS for erc-to-erc * Typo * lint * Rollback * ROllback validator * Rollback yarn.lock * dai and wetc update * Rollback ERC20_TOKEN_ADDRESS * erc to native * examples * all jobs * roll back * roll back ERC20_TOKEN_ADDRESS: "0xdbeE25CbE97e4A5CC6c499875774dc7067E9426B" * ui env example * typo * Allow rpc for ultimate * Test * ERC20_TOKEN_ADDRESS rollback * Specify port * React port * All jobs * cosmetics * Values * Restore erc20 token * Rearrange example for easier comparision * Rearrange ultimate for easier comparision * Rearrange for easier comparision * Refactor * Conditional app styles * Loading environment variables in react app * Add missing vars for UI in wetc and dai * Bring back test parameters readme * Readme for monitor vars * Reading environment variables in e2e-commons (#207)
53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
require('../env')
|
|
const Web3 = require('web3')
|
|
|
|
const { BRIDGE_VALIDATORS_ABI } = require('../../commons')
|
|
const rpcUrlsManager = require('../src/services/getRpcUrlsManager')
|
|
const { bridgeConfig } = require('../config/base.config')
|
|
|
|
const homeABI = bridgeConfig.homeBridgeAbi
|
|
const foreignABI = bridgeConfig.foreignBridgeAbi
|
|
|
|
async function getStartBlock(rpcUrl, bridgeAddress, bridgeAbi) {
|
|
try {
|
|
const web3Provider = new Web3.providers.HttpProvider(rpcUrl)
|
|
const web3Instance = new Web3(web3Provider)
|
|
const bridgeContract = new web3Instance.eth.Contract(bridgeAbi, bridgeAddress)
|
|
|
|
const deployedAtBlock = await bridgeContract.methods.deployedAtBlock().call()
|
|
|
|
const validatorContractAddress = await bridgeContract.methods.validatorContract().call()
|
|
const validatorContract = new web3Instance.eth.Contract(BRIDGE_VALIDATORS_ABI, validatorContractAddress)
|
|
|
|
const validatorDeployedAtBlock = await validatorContract.methods.deployedAtBlock().call()
|
|
|
|
const validatorAddedEvents = await validatorContract.getPastEvents('ValidatorAdded', {
|
|
fromBlock: validatorDeployedAtBlock,
|
|
filter: { validator: process.env.ORACLE_VALIDATOR_ADDRESS }
|
|
})
|
|
|
|
return validatorAddedEvents.length ? validatorAddedEvents[0].blockNumber : deployedAtBlock
|
|
} catch (e) {
|
|
return 0
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
const { COMMON_HOME_BRIDGE_ADDRESS, COMMON_FOREIGN_BRIDGE_ADDRESS } = process.env
|
|
|
|
const homeRpcUrl = rpcUrlsManager.homeUrls[0]
|
|
const foreignRpcUrl = rpcUrlsManager.foreignUrls[0]
|
|
const homeStartBlock = await getStartBlock(homeRpcUrl, COMMON_HOME_BRIDGE_ADDRESS, homeABI)
|
|
const foreignStartBlock = await getStartBlock(foreignRpcUrl, COMMON_FOREIGN_BRIDGE_ADDRESS, foreignABI)
|
|
const result = {
|
|
homeStartBlock,
|
|
foreignStartBlock
|
|
}
|
|
console.log(JSON.stringify(result))
|
|
return result
|
|
}
|
|
|
|
main()
|
|
|
|
module.exports = main
|