git.delta.rocks / unique-network / refs/commits / 21a0683de3c9

difftreelog

test rewrite metadata fetch to js

Yaroslav Bolyukin2023-09-01parent: #9acbee5.patch.diff
in: master

2 files changed

modifiedtests/package.jsondiffbeforeafterboth
117 "benchMintingFee": "ts-node src/benchmarks/mintFee/benchmark.ts",117 "benchMintingFee": "ts-node src/benchmarks/mintFee/benchmark.ts",
118 "load": "yarn _test './**/*.load.ts'",118 "load": "yarn _test './**/*.load.ts'",
119 "loadTransfer": "ts-node src/transfer.nload.ts",119 "loadTransfer": "ts-node src/transfer.nload.ts",
120 "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",120 "polkadot-types-fetch-metadata": "yarn ts-node --esm src/fetchMetadata.ts",
121 "polkadot-types-from-defs": "ts-node --esm ./node_modules/.bin/polkadot-types-from-defs --endpoint src/interfaces/metadata.json --input src/interfaces/ --package .",121 "polkadot-types-from-defs": "ts-node --esm ./node_modules/.bin/polkadot-types-from-defs --endpoint src/interfaces/metadata.json --input src/interfaces/ --package .",
122 "polkadot-types-from-chain": "ts-node --esm ./node_modules/.bin/polkadot-types-from-chain --endpoint src/interfaces/metadata.json --output src/interfaces/ --package .",122 "polkadot-types-from-chain": "ts-node --esm ./node_modules/.bin/polkadot-types-from-chain --endpoint src/interfaces/metadata.json --output src/interfaces/ --package .",
123 "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",123 "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",
addedtests/src/fetchMetadata.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/fetchMetadata.ts
@@ -0,0 +1,40 @@
+import { writeFile } from "fs/promises";
+import { join } from "path";
+import { exit } from "process";
+import { fileURLToPath } from "url";
+
+const url = process.env.RPC_URL;
+if (!url) throw new Error('RPC_URL is not set');
+
+const srcDir = fileURLToPath(new URL('.', import.meta.url));
+
+for (let i = 0; i < 10; i++) {
+  try {
+    console.log(`Trying to fetch metadata, retry ${i + 1}/${10}`)
+    const response = await fetch(url, {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      redirect: 'follow',
+      body: JSON.stringify({
+        jsonrpc: '2.0',
+        id: '1',
+        method: 'state_getMetadata',
+        params: [],
+      }),
+    });
+    const json = await response.json();
+    const output = join(srcDir, 'interfaces/metadata.json');
+    console.log(`Received response, saving to ${output}`);
+    await writeFile(output, JSON.stringify(json));
+    exit(0);
+  } catch (e) {
+    console.error('Failed to request metadata:');
+    console.error(e);
+    console.error('Waiting 1 minute');
+    await new Promise(res => setTimeout(res, 60 * 1000));
+  }
+}
+console.error('Out of retries');
+exit(1);