difftreelog
test rewrite metadata fetch to js
in: master
2 files changed
tests/package.jsondiffbeforeafterboth117 "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",tests/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);