68int main(
int argc,
char** argv)
70 std::vector<std::string> args(argv, argv + argc);
72 if (args.size() < 5) {
73 info(
"usage: ", args[0],
"[honk flavor] [circuit type] [srs path] [public inputs]");
77 const std::string flavor = args[1];
78 const std::string circuit_type = args[2];
79 const std::string srs_path = args[3];
80 const std::string string_input = args[4];
85 uint256_t inputs[] = { 0, 0, 0, 0, 0, 0 };
88 std::stringstream s_stream(string_input);
89 while (s_stream.good()) {
91 getline(s_stream, sub,
',');
92 if (sub.substr(0, 2) ==
"0x") {
95 std::string padded =
pad_left(sub, 64);
100 if (flavor ==
"honk") {
101 if (circuit_type ==
"blake") {
102 generate_proof<BlakeCircuit, UltraKeccakFlavor>(inputs);
103 }
else if (circuit_type ==
"add2") {
104 generate_proof<Add2Circuit, UltraKeccakFlavor>(inputs);
105 }
else if (circuit_type ==
"ecdsa") {
106 generate_proof<EcdsaCircuit, UltraKeccakFlavor>(inputs);
107 }
else if (circuit_type ==
"recursive") {
108 generate_proof<RecursiveCircuit, UltraKeccakFlavor>(inputs);
110 info(
"Invalid circuit type: " + circuit_type);
114 }
else if (flavor ==
"honk_zk") {
115 if (circuit_type ==
"blake") {
116 generate_proof<BlakeCircuit, UltraKeccakZKFlavor>(inputs);
117 }
else if (circuit_type ==
"add2") {
118 generate_proof<Add2Circuit, UltraKeccakZKFlavor>(inputs);
119 }
else if (circuit_type ==
"ecdsa") {
120 generate_proof<EcdsaCircuit, UltraKeccakZKFlavor>(inputs);
121 }
else if (circuit_type ==
"recursive") {
122 generate_proof<RecursiveCircuit, UltraKeccakZKFlavor>(inputs);
124 info(
"Invalid circuit type: " + circuit_type);
128 info(
"Only honk flavor allowed");