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 | 1x 1x 17x 32x 17x | import { ContractSchema, ContractStorageField } from "../contractSchema";
import { Generator, ind } from "../generator";
export class SchemaFuncGen implements Generator {
gen(schema: ContractSchema): string {
const fieldEntries = schema.storage.fields.map((entry: ContractStorageField, index: number) => {
return `entries[${index}] = MetadataSchemaEntry(${entry.id}, ${entry.permissionId?entry.permissionId:0}, FieldType.${entry.fieldTypeSolidityEnum}, ${entry.arrayLength}, FieldVisibility.${entry.visibility.toUpperCase()}, ${entry.slot}, ${entry.offset}, "${entry.key}");`;
});
return ind(4, `` +
`function schema() pure external override returns (MetadataSchema memory) {\n` +
` MetadataSchemaEntry[] memory entries = new MetadataSchemaEntry[](${schema.storage.fields.length});\n` +
` ${fieldEntries.join("\n ")}\n` +
` return MetadataSchema(1, entries);\n` +
`}\n`);
}
} |