-
Notifications
You must be signed in to change notification settings - Fork 261
Expand file tree
/
Copy pathbuildNetworkConfig.ts
More file actions
70 lines (59 loc) · 2.28 KB
/
buildNetworkConfig.ts
File metadata and controls
70 lines (59 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import fs from "fs";
import { join } from 'path';
import metadata from "@superfluid-finance/metadata";
interface SubgraphConfig {
readonly network: string;
readonly hostStartBlock: number;
readonly hostAddress: string;
readonly cfaAddress: string;
readonly idaAddress: string;
readonly gdaAddress: string;
readonly superTokenFactoryAddress: string;
readonly resolverV1Address: string;
readonly nativeAssetSuperTokenAddress: string;
readonly indexerHints_prune: string;
}
const ADDRESS_ZERO = "0x0000000000000000000000000000000000000000";
const vendorCliNameExceptions: Record<string, Record<string, string>> = {
"goldsky": {
"xdai-mainnet": "xdai",
"avalanche-fuji": "avalanche-testnet"
},
"superfluid": {
"avalanche-fuji": "avalanche-fuji"
}
}
const vendorHistoryPruning: Record<string, string> = {
"goldsky": "auto"
};
// script usage: npx ts-node ./scripts/buildNetworkConfig.ts <NETWORK_NAME> <VENDOR_NAME?>
function main() {
const networkName = process.argv[2];
const vendorName = process.argv[3];
const networkMetadata = metadata.getNetworkByName(networkName);
if (!networkMetadata) {
throw new Error("No metadata found");
}
const subgraphConfig: SubgraphConfig = {
network: vendorCliNameExceptions[vendorName]?.[networkMetadata.name] || networkMetadata.subgraphV1.cliName || networkMetadata.shortName,
hostStartBlock: networkMetadata.startBlockV1,
hostAddress: networkMetadata.contractsV1.host,
cfaAddress: networkMetadata.contractsV1.cfaV1,
idaAddress: networkMetadata.contractsV1.idaV1,
gdaAddress: networkMetadata.contractsV1.gdaV1 || ADDRESS_ZERO,
superTokenFactoryAddress: networkMetadata.contractsV1.superTokenFactory,
resolverV1Address: networkMetadata.contractsV1.resolver,
nativeAssetSuperTokenAddress: networkMetadata.nativeTokenWrapper,
indexerHints_prune: vendorHistoryPruning[vendorName] || "never",
};
const writeToDir = join(__dirname, '..', `config/${networkName}.json`);
fs.writeFile(writeToDir, JSON.stringify(subgraphConfig), (err) => {
if (err) {
console.log(err);
process.exit(1);
} else {
process.exit(0);
}
});
}
main();