mirror of
https://github.com/logos-storage/circom-witnessgen.git
synced 2026-01-02 13:03:09 +00:00
90 lines
1.2 KiB
Protocol Buffer
90 lines
1.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package circom_witnesscalc.proto;
|
|
|
|
enum DuoOp {
|
|
Mul = 0;
|
|
Div = 1;
|
|
Add = 2;
|
|
Sub = 3;
|
|
Pow = 4;
|
|
Idiv = 5;
|
|
Mod = 6;
|
|
Eq = 7;
|
|
Neq = 8;
|
|
Lt = 9;
|
|
Gt = 10;
|
|
Leq = 11;
|
|
Geq = 12;
|
|
Land = 13;
|
|
Lor = 14;
|
|
Shl = 15;
|
|
Shr = 16;
|
|
Bor = 17;
|
|
Band = 18;
|
|
Bxor = 19;
|
|
}
|
|
|
|
enum UnoOp {
|
|
Neg = 0;
|
|
Id = 1;
|
|
Lnot = 2;
|
|
Bnot = 3;
|
|
}
|
|
|
|
enum TresOp {
|
|
TernCond = 0;
|
|
}
|
|
|
|
message BigUInt {
|
|
bytes valueLE = 1;
|
|
}
|
|
|
|
message InputNode {
|
|
uint32 idx = 1;
|
|
}
|
|
|
|
message ConstantNode {
|
|
BigUInt value = 1;
|
|
}
|
|
|
|
message UnoOpNode {
|
|
UnoOp op = 1;
|
|
uint32 aIdx = 2;
|
|
}
|
|
|
|
message DuoOpNode {
|
|
DuoOp op = 1;
|
|
uint32 aIdx = 2;
|
|
uint32 bIdx = 3;
|
|
}
|
|
|
|
message TresOpNode {
|
|
TresOp op = 1;
|
|
uint32 aIdx = 2;
|
|
uint32 bIdx = 3;
|
|
uint32 cIdx = 4;
|
|
}
|
|
|
|
message Node {
|
|
oneof node {
|
|
InputNode input = 1;
|
|
ConstantNode constant = 2;
|
|
UnoOpNode unoOp = 3;
|
|
DuoOpNode duoOp = 4;
|
|
TresOpNode tresOp = 5;
|
|
}
|
|
}
|
|
|
|
message SignalDescription {
|
|
uint32 offset = 1;
|
|
uint32 len = 2;
|
|
}
|
|
|
|
message GraphMetadata {
|
|
repeated uint32 witnessSignals = 1;
|
|
map<string, SignalDescription> inputs = 2;
|
|
BigUInt prime = 3;
|
|
string prime_str = 4;
|
|
}
|