/ scripts / convert_trusted_setup.py
convert_trusted_setup.py
 1  #!/usr/bin/python3
 2  
 3  import argparse
 4  import json
 5  from typing import TextIO
 6  
 7  
 8  def convert(ts_json: TextIO, ts_text: TextIO) -> None:
 9      """Convert trusted setup to text format."""
10      trusted_setup = json.load(ts_json)
11      g1_values = trusted_setup["g1_lagrange"]
12      g2_values = trusted_setup["g2_monomial"]
13  
14      print(len(g1_values), file=ts_text)
15      print(len(g2_values), file=ts_text)
16      for g1 in g1_values:
17          print(g1.replace("0x", ""), file=ts_text)
18      for g2 in g2_values:
19          print(g2.replace("0x", ""), file=ts_text)
20  
21  
22  if __name__ == "__main__":
23      parser = argparse.ArgumentParser(
24          description="Convert trusted setup from JSON to text format.",
25      )
26      parser.add_argument(
27          "--input",
28          required=True,
29          type=argparse.FileType("r"),
30          help="the trusted setup in JSON format",
31      )
32      parser.add_argument(
33          "--output",
34          required=True,
35          type=argparse.FileType("w"),
36          help="the trusted setup in text format",
37      )
38      args = parser.parse_args()
39  
40      try:
41          convert(args.input, args.output)
42      finally:
43          args.input.close()
44          args.output.close()