Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 2x 2x 3x 3x 3x 3x 6x 6x 4x 2x 6x 3x 3x 3x 3x | import { parseJson } from '../codegen/contractSchemaJsonParser';
import { ContractConfig, ContractRelation, Feature, ProjectConfig, ScopeConfig } from "../types";
export class JSONProjectConfigLoader {
constructor() { }
load(jsonString: string): ProjectConfig {
let projectConfig = JSON.parse(jsonString);
let contractRelations: Record<string, ContractRelation> = {};
let contracts: Record<string, string | ContractConfig> = {};
Object.entries(projectConfig.contracts).forEach(([key, value]) => {
const v = value as any;
if (v.config && typeof v.config === 'string') {
contracts[key] = v.config;
} else {
contracts[key] = parseJson(v.config);
}
if (v.fragments && Array.isArray(v.fragments)) {
contractRelations[key] = { fragments: v.fragments };
}
});
return {
name: projectConfig.name,
scopes: Object.entries(projectConfig.scopes).map(([key, value]) => {
return this.loadScopeConfig(key, value);
}),
contracts: contracts,
contractRelations: contractRelations
};
}
loadScopeConfig(name: string, scopeConfig: any): ScopeConfig {
return {
name: name,
owner: scopeConfig.owner,
whitelist: scopeConfig.whitelist,
userAssign: scopeConfig.userAssign,
userPatch: scopeConfig.userPatch,
bankers: scopeConfig.bankers,
operators: scopeConfig.operators,
mintConfigs: scopeConfig.mintConfigs || {},
patchFees: scopeConfig.patchFees || {},
assignFees: scopeConfig.assignFees || {}
};
}
} |