syntax = "proto3"; package circom_witnesscalc.proto.vm; import "protos/messages.proto"; // Virtual Machine metadata message VmMd { uint32 main_template_id = 1; uint32 templates_num = 2; uint32 functions_num = 3; uint32 signals_num = 4; uint32 constants_num = 5; map inputs = 9; repeated uint32 witness_signals = 7; map io_map = 8; } message ComponentTmpl { string symbol = 1; uint64 sub_cmp_idx = 2; uint64 number_of_cmp = 3; string name_subcomponent = 4; uint64 signal_offset = 5; uint64 signal_offset_jump = 6; uint64 template_id = 7; bool has_inputs = 8; } message Template { string name = 1; bytes code = 2; repeated uint64 line_numbers = 3; repeated ComponentTmpl components = 4; uint64 var_stack_depth = 5; uint64 number_of_inputs = 6; } message Function { string name = 1; string symbol = 2; bytes code = 3; repeated uint64 line_numbers = 4; } message IoDef { uint32 code = 1; uint32 offset = 2; repeated uint32 lengths = 3; } message IoDefs { repeated IoDef io_defs = 1; }