difftreelog
fix use balancers as unique endpoints in .env generator
in: master
1 file changed
tests/src/generateEnv.tsdiffbeforeafterboth1import {ApiPromise, WsProvider} from '@polkadot/api';2import {readFile} from 'fs/promises';3import {join} from 'path';45async function fetchVersion(chain: string): Promise<string> {6 const api = await ApiPromise.create({provider: new WsProvider(chain)});7 const last = (await api.query.system.lastRuntimeUpgrade()).toJSON();8 await api.disconnect();9 return (last as any).specVersion.toString();10}1112function setVar(env: string, key: string, value: string): string {13 return env.replace(new RegExp(`${key}=.+?\n`), `${key}=${value}\n`);14}15// Fetch and format version string16async function ff(url: string, regex: RegExp, rep: string): Promise<string> {17 const ver = await fetchVersion(url);18 if (ver.match(regex) === null)19 throw new Error(`bad regex for ${url}`);20 return ver.replace(regex, rep);21}2223(async () => {24 let env = (await readFile(join(__dirname, '../../.env'))).toString();25 await Promise.all([26 ff('wss://rpc.polkadot.io/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'POLKADOT_MAINNET_BRANCH', v)),27 ff('wss://statemint-rpc.polkadot.io/', /^(....)$/, 'release-parachains-v$1').then(v => env = setVar(env, 'STATEMINT_BUILD_BRANCH', v)),28 ff('wss://acala-rpc-0.aca-api.network/', /^(.)(..)(.)$/, '$1.$2.$3').then(v => env = setVar(env, 'ACALA_BUILD_BRANCH', v)),29 ff('wss://wss.api.moonbeam.network/', /^(....)$/, 'runtime-$1').then(v => env = setVar(env, 'MOONBEAM_BUILD_BRANCH', v)),30 ff('wss://eu-ws.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'UNIQUE_MAINNET_BRANCH', v)),3132 ff('wss://kusama-rpc.polkadot.io/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'KUSAMA_MAINNET_BRANCH', v)),33 ff('wss://statemine-rpc.polkadot.io/', /^(....)$/, 'release-parachains-v$1').then(v => env = setVar(env, 'STATEMINE_BUILD_BRANCH', v)),34 ff('wss://karura-rpc-0.aca-api.network/', /^(.)(..)(.)$/, 'release-karura-$1.$2.$3').then(v => env = setVar(env, 'KARURA_BUILD_BRANCH', v)),35 ff('wss://wss.api.moonriver.moonbeam.network/', /^(....)$/, 'runtime-$1').then(v => env = setVar(env, 'MOONRIVER_BUILD_BRANCH', v)),36 ff('wss://eu-ws-quartz.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'QUARTZ_MAINNET_BRANCH', v)),3738 ff('wss://westend-rpc.polkadot.io/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'UNIQUEWEST_MAINNET_BRANCH', v)),39 ff('wss://westmint-rpc.polkadot.io/', /^(....)$/, 'parachains-v$1').then(v => env = setVar(env, 'WESTMINT_BUILD_BRANCH', v)),40 ff('wss://eu-ws-opal.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'OPAL_MAINNET_BRANCH', v)),4142 ff('wss://ws-eastend.unique.network/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'UNIQUEEAST_MAINNET_BRANCH', v)),43 ff('wss://eu-ws-sapphire.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'SAPPHIRE_MAINNET_BRANCH', v)),44 ]);45 console.log(env);46 process.exit(0);47})().catch(e => {48 console.error(e.stack);49 process.exit(1);50});