git.delta.rocks / unique-network / refs/commits / 0744c08ebf22

difftreelog

source

js-packages/scripts/fetchMetadata.ts1.3 KiBsourcehistory
1import {writeFile} from 'fs/promises';2import {join} from 'path';3import {exit} from 'process';4import {fileURLToPath} from 'url';56// TODO: Extract metadata statically with chainql.7const url = process.env.RELAY_OPAL_HTTP_URL || process.env.RELAY_QUARTZ_HTTP_URL || process.env.RELAY_UNIQUE_HTTP_URL || process.env.RELAY_SAPPHIRE_HTTP_URL || 'http://127.0.0.1:9944';89const srcDir = fileURLToPath(new URL('.', import.meta.url));1011for(let i = 0; i < 10; i++) {12  try {13    console.log(`Trying to fetch metadata, retry ${i + 1}/${10}`);14    const response = await fetch(url, {15      method: 'POST',16      headers: {17        'Content-Type': 'application/json',18      },19      redirect: 'follow',20      body: JSON.stringify({21        jsonrpc: '2.0',22        id: '1',23        method: 'state_getMetadata',24        params: [],25      }),26    });27    const json = await response.json();28    const output = join(srcDir, 'metadata.json');29    console.log(`Received response, saving to ${output}`);30    await writeFile(output, JSON.stringify(json));31    exit(0);32  } catch (e) {33    console.error('Failed to request metadata:');34    console.error(e);35    console.error('Waiting 1 minute');36    await new Promise(res => setTimeout(res, 60 * 1000));37  }38}39console.error('Out of retries');40exit(1);