@tribecahq/registry
Version:
Registry of Tribeca DAOs.
50 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const solana_contrib_1 = require("@saberhq/solana-contrib");
const fs = tslib_1.__importStar(require("fs/promises"));
const toml = tslib_1.__importStar(require("toml"));
const parse_1 = require("../parser/parse");
const validate_1 = require("../parser/validate");
const serialize_1 = require("../utils/serialize");
function notEmpty(value) {
return value !== null && value !== undefined;
}
const buildGovernorMetasForNetwork = async (network) => {
const networkFmt = (0, solana_contrib_1.formatNetwork)(network);
const daoDir = `${__dirname}/../../config/${networkFmt}`;
const daos = await fs.readdir(daoDir);
const outDir = `${__dirname}/../../data/registry/${networkFmt}`;
await fs.mkdir(outDir, { recursive: true });
const governors = await Promise.all(daos.map(async (dao) => {
const daoStat = await fs.stat(`${daoDir}/${dao}`);
if (!daoStat.isDirectory()) {
return null;
}
const config = await fs.readFile(`${daoDir}/${dao}/Tribeca.toml`);
const rawConfig = toml.parse(config.toString());
try {
const parsedConfig = await (0, parse_1.parseGovernorConfig)(rawConfig, network);
const config = (0, validate_1.validateConfig)(parsedConfig);
await fs.writeFile(`${outDir}/${dao}.json`, (0, serialize_1.stableStringify)(config));
return config;
}
catch (e) {
console.error(`Error parsing config ${networkFmt}/${dao}`, e);
throw e;
}
}));
const foundDAOs = governors.filter(notEmpty);
await fs.writeFile(`${__dirname}/../../data/registry/governor-metas.${networkFmt}.json`, (0, serialize_1.stableStringify)(foundDAOs));
};
const buildGovernorMetas = async () => {
await buildGovernorMetasForNetwork("mainnet-beta");
await buildGovernorMetasForNetwork("devnet");
};
buildGovernorMetas()
.then()
.catch((err) => {
console.error(err);
process.exit(1);
});
//# sourceMappingURL=generateGovernorMetas.js.map