Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
zethtool::commands::joinsplit_circuit_cmd Class Reference
Inheritance diagram for zethtool::commands::joinsplit_circuit_cmd:
Inheritance graph
[legend]
Collaboration diagram for zethtool::commands::joinsplit_circuit_cmd:
Collaboration graph
[legend]

Public Types

using base_class = generic_subcommand< joinsplit_circuit_cmd >
 

Public Member Functions

 joinsplit_circuit_cmd (const std::string &subcommand_name, const std::string &description)
 
template<typename ppT , typename snarkT >
int execute_generic (const global_options &)
 
- Public Member Functions inherited from zethtool::generic_subcommand< joinsplit_circuit_cmd >
 generic_subcommand (const std::string &subcommand_name, const std::string &description)
 
- Public Member Functions inherited from libtool::subcommand< GlobalOptionsT >
 subcommand (const std::string &subcommand_name, const std::string &description)
 
virtual ~subcommand ()
 
const std::string & description () const
 
int execute (const char *argv0, const std::vector< std::string > command_args, const GlobalOptionsT &global)
 Common code to parse options and invoke the virtual execute entrypoint. More...
 

Protected Member Functions

void initialize_suboptions (boost::program_options::options_description &options, boost::program_options::options_description &all_options, boost::program_options::positional_options_description &pos) override
 Instantiation can now set up the boost program_options structures. More...
 
void parse_suboptions (const boost::program_options::variables_map &vm) override
 
void subcommand_usage (const char *argv0) override
 Any command-specific output for usage. More...
 
- Protected Member Functions inherited from zethtool::generic_subcommand< joinsplit_circuit_cmd >
void initialize_suboptions (boost::program_options::options_description &options, boost::program_options::options_description &, boost::program_options::positional_options_description &) override
 Instantiation can now set up the boost program_options structures. More...
 
void parse_suboptions (const boost::program_options::variables_map &vm) override
 
int execute_subcommand (const global_options &options) override
 
- Protected Member Functions inherited from libtool::subcommand< GlobalOptionsT >
void usage (const char *argv0, const boost::program_options::options_description &options)
 
virtual int execute_subcommand (const GlobalOptionsT &global)=0
 Execute the command using global options defined by the caller. More...
 

Protected Attributes

std::string r1cs_file
 
- Protected Attributes inherited from zethtool::generic_subcommand< joinsplit_circuit_cmd >
std::string curve
 
std::string snark
 
- Protected Attributes inherited from libtool::subcommand< GlobalOptionsT >
std::string subcommand_name
 
std::string subcommand_description
 

Detailed Description

Definition at line 18 of file joinsplit_circuit_cmd.cpp.

Member Typedef Documentation

◆ base_class

Definition at line 21 of file joinsplit_circuit_cmd.cpp.

Constructor & Destructor Documentation

◆ joinsplit_circuit_cmd()

zethtool::commands::joinsplit_circuit_cmd::joinsplit_circuit_cmd ( const std::string &  subcommand_name,
const std::string &  description 
)
inline

Definition at line 23 of file joinsplit_circuit_cmd.cpp.

26  {
27  }

Member Function Documentation

◆ execute_generic()

template<typename ppT , typename snarkT >
int zethtool::commands::joinsplit_circuit_cmd::execute_generic ( const global_options )
inline

Definition at line 30 of file joinsplit_circuit_cmd.cpp.

31  {
32  using Field = libff::Fr<ppT>;
34 
35  ppT::init_public_params();
36  libff::inhibit_profiling_info = true;
37  libff::inhibit_profiling_counters = true;
38 
39  circuit_wrapper circuit;
40  const libsnark::r1cs_constraint_system<Field> &r1cs =
41  circuit.get_constraint_system();
42 
43  std::cout << "r1cs: num_variables: " << r1cs.num_variables()
44  << ", num_constraints: " << r1cs.num_constraints() << "\n";
45 
46  if (!r1cs_file.empty()) {
47  std::cout << "writing r1cs to '" << r1cs_file << "'";
48  std::ofstream out_s = libtool::open_binary_output_file(r1cs_file);
49  libzeth::r1cs_write_bytes(r1cs, out_s);
50  std::cout << "\n";
51  }
52 
53  return 0;
54  };
Here is the call graph for this function:

◆ initialize_suboptions()

void zethtool::commands::joinsplit_circuit_cmd::initialize_suboptions ( boost::program_options::options_description &  options,
boost::program_options::options_description &  all_options,
boost::program_options::positional_options_description &  pos 
)
inlineoverrideprotectedvirtual

Instantiation can now set up the boost program_options structures.

Implements libtool::subcommand< GlobalOptionsT >.

Definition at line 57 of file joinsplit_circuit_cmd.cpp.

61  {
62  base_class::initialize_suboptions(options, all_options, pos);
63  options.add_options()(
64  "r1cs_file", po::value<std::string>(), "R1CS output file");
65  all_options.add(options);
66  }
Here is the call graph for this function:

◆ parse_suboptions()

void zethtool::commands::joinsplit_circuit_cmd::parse_suboptions ( const boost::program_options::variables_map &  vm)
inlineoverrideprotectedvirtual

Instantiation can record any command-specific information from the parsed variables_map.

Implements libtool::subcommand< GlobalOptionsT >.

Definition at line 68 of file joinsplit_circuit_cmd.cpp.

70  {
72  if (vm.count("r1cs_file")) {
73  r1cs_file = vm["r1cs_file"].as<std::string>();
74  }
75  }
Here is the call graph for this function:

◆ subcommand_usage()

void zethtool::commands::joinsplit_circuit_cmd::subcommand_usage ( const char *  argv0)
inlineoverrideprotectedvirtual

Any command-specific output for usage.

Implements libtool::subcommand< GlobalOptionsT >.

Definition at line 77 of file joinsplit_circuit_cmd.cpp.

78  {
79  std::cout << "Usage:\n " << argv0 << "\n";
80  }

Member Data Documentation

◆ r1cs_file

std::string zethtool::commands::joinsplit_circuit_cmd::r1cs_file
protected

Definition at line 82 of file joinsplit_circuit_cmd.cpp.


The documentation for this class was generated from the following file:
zethtool::commands::joinsplit_circuit_cmd::base_class
generic_subcommand< joinsplit_circuit_cmd > base_class
Definition: joinsplit_circuit_cmd.cpp:21
libzeth::circuit_wrapper
Definition: circuit_wrapper.hpp:27
zethtool::generic_subcommand< joinsplit_circuit_cmd >::parse_suboptions
void parse_suboptions(const boost::program_options::variables_map &vm) override
Definition: tool_common.hpp:111
libtool::subcommand::description
const std::string & description() const
libzeth::r1cs_write_bytes
void r1cs_write_bytes(const libsnark::r1cs_constraint_system< FieldT > &r1cs, std::ostream &out_s)
zethtool::generic_subcommand< joinsplit_circuit_cmd >::initialize_suboptions
void initialize_suboptions(boost::program_options::options_description &options, boost::program_options::options_description &, boost::program_options::positional_options_description &) override
Definition: tool_common.hpp:97
libzeth::circuit_wrapper::get_constraint_system
const libsnark::r1cs_constraint_system< Field > & get_constraint_system() const
Field
libzeth::defaults::Field Field
Definition: mpc_subcommand.hpp:11
libtool::open_binary_output_file
std::ofstream open_binary_output_file(const std::string &filename)
Utility function to open a binary file for writing, with appropriate flags.
Definition: tool_util.cpp:19
libtool::subcommand::subcommand_name
std::string subcommand_name
Definition: subcommand.hpp:54
zethtool::commands::joinsplit_circuit_cmd::r1cs_file
std::string r1cs_file
Definition: joinsplit_circuit_cmd.cpp:82