@patchworkdev/common
Version:
Patchwork Development Kit
19 lines (18 loc) • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SchemaFuncGen = void 0;
const generator_1 = require("../generator");
class SchemaFuncGen {
gen(schema) {
const fieldEntries = schema.storage.fields.map((entry, index) => {
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 (0, generator_1.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`);
}
}
exports.SchemaFuncGen = SchemaFuncGen;