UNPKG

@reality.eth/contracts

Version:

Collection of smart contracts for the Realitio fact verification platform

101 lines (85 loc) 3.23 kB
/* Add new lines to the abi file for more meaningful version control */ const fs = require('fs'); const project_base = __dirname + '/../'; const chains_file = 'chains/chainid.network.json'; const chains_local_file = 'chains/chainid.network.local.json'; const supported_file = 'chains/supported.json'; const generated_file = 'generated/chains.json'; const chain_id_list = require(project_base + chains_file); const chain_id_list_local = require(project_base + chains_local_file); const supported_data = require(project_base + supported_file); for(var cl = 0; cl<chain_id_list_local.length; cl++) { chain_id_list.push(chain_id_list_local[cl]); } let out = {}; for (var ci = 0; ci< chain_id_list.length; ci++) { let chainparams = {}; const chain_info = chain_id_list[ci]; const chainId = chain_info.chainId; const our_data = supported_data[chainId+""]; if (!our_data) { // Not a supported chain, skip it continue; } chainparams = {}; chainparams['chainId'] = "0x"+Number(chainId).toString(16), chainparams['chainName'] = chain_info.name; chainparams['nativeCurrency'] = chain_info.nativeCurrency; chainparams['network_name'] = chain_info.network; let rpc = []; if (chain_info.rpc) { for (var r in chain_info.rpc) { var thisr = chain_info.rpc[r]; if (thisr.indexOf('INFURA_API_KEY') !== -1) { continue; } if (thisr.indexOf('ALCHEMY_API_KEY') !== -1) { continue; } rpc.push(thisr); } } chainparams['rpcUrls'] = rpc; if (!our_data['hostedRPC'] && rpc.length > 0) { our_data['hostedRPC'] = rpc[0]; } if (our_data['hostedRPC']) { chainparams['hostedRPC'] = our_data['hostedRPC']; } if (our_data['iconURL']) { chainparams['iconUrls'] = [our_data['iconURL']]; } if (our_data['atprotoBot']) { chainparams['atprotoBot'] = our_data['atprotoBot']; } if (our_data['graphURL']) { chainparams['graphURL'] = our_data['graphURL']; } else if (our_data['graphURLStudio']) { chainparams['graphURL'] = our_data['graphURLStudio']; } else if (our_data['graphURLHosted']) { chainparams['graphURL'] = our_data['graphURLHosted']; } // Sometimes this is "mainnet" and we have to override it, there's "shortname" but that doesn't seem quite right either if (our_data['network_name']) { chainparams['network_name'] = our_data['network_name']; } if (our_data['deprecated']) { chainparams['deprecated'] = true; } chainparams['blockExplorerUrls'] = []; if ('explorers' in chain_info) { for(var exi in chain_info['explorers']) { var ex = chain_info['explorers'][exi]; chainparams['blockExplorerUrls'].push(ex['url']); } } if (our_data['explorerURL']) { if (chainparams['blockExplorerUrls'].indexOf(our_data['explorerURL']) === -1) { chainparams['blockExplorerUrls'].push(our_data['explorerURL']); } } out[chainId.toString()] = chainparams; } fs.writeFileSync(project_base + generated_file, JSON.stringify(out, null, 4));