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 | 1x 1x 17x 17x 32x 29x 29x 2x 29x 16x 29x 5x 29x 17x 17x | import { ContractSchema } from "../contractSchema";
import { Generator, ind } from "../generator";
export class MetadataStructGen implements Generator {
gen(schema: ContractSchema): string {
const structDef = `struct ${schema.getMetadataStructName()} {`;
const structFields = schema.storage.fields
.filter((field: any) => field.arrayLength !== 0 && field.totalBits !== 0)
.map((field: any) => {
let fieldType = field.type;
if (fieldType == "literef") {
fieldType = "uint64";
}
if (fieldType == "char8" || fieldType == "char16" || fieldType == "char32" || fieldType == "char64") {
fieldType = "string";
}
if (field.arrayLength > 1) {
fieldType += `[${field.arrayLength}]`;
}
return ` ${fieldType} ${field.key};`;
})
.join("\n");
const structEnd = "}";
return ind(4,
`${structDef}\n` +
`${structFields}\n` +
`${structEnd}\n`);
}
} |