difftreelog
test rewrite metadata fetch to js
in: master
2 files changed
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -117,7 +117,7 @@
"benchMintingFee": "ts-node src/benchmarks/mintFee/benchmark.ts",
"load": "yarn _test './**/*.load.ts'",
"loadTransfer": "ts-node src/transfer.nload.ts",
- "polkadot-types-fetch-metadata": "curl -L -H 'Content-Type: application/json' -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' $RPC_URL > src/interfaces/metadata.json",
+ "polkadot-types-fetch-metadata": "yarn ts-node --esm src/fetchMetadata.ts",
"polkadot-types-from-defs": "ts-node --esm ./node_modules/.bin/polkadot-types-from-defs --endpoint src/interfaces/metadata.json --input src/interfaces/ --package .",
"polkadot-types-from-chain": "ts-node --esm ./node_modules/.bin/polkadot-types-from-chain --endpoint src/interfaces/metadata.json --output src/interfaces/ --package .",
"polkadot-types": "echo \"export default {}\" > src/interfaces/lookup.ts && yarn polkadot-types-fetch-metadata && yarn polkadot-types-from-defs && yarn polkadot-types-from-defs && yarn polkadot-types-from-chain",
tests/src/fetchMetadata.tsdiffbeforeafterboth1import { writeFile } from "fs/promises";2import { join } from "path";3import { exit } from "process";4import { fileURLToPath } from "url";56const url = process.env.RPC_URL;7if (!url) throw new Error('RPC_URL is not set');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, 'interfaces/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);