Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
main.cpp
Go to the documentation of this file.
1 // Copyright (c) 2015-2022 Clearmatics Technologies Ltd
2 //
3 // SPDX-License-Identifier: LGPL-3.0+
4 
5 #include "libtool/run.hpp"
11 #include "zeth_tool/verify_cmd.hpp"
12 
13 using namespace zethtool;
14 
15 class zeth_command : public libtool::command<global_options>
16 {
17 public:
19  boost::program_options::options_description &global,
20  boost::program_options::options_description &all_options) override
21  {
22  global.add_options()("verbose,v", "Verbose output");
23  all_options.add(global);
24  }
25 
28  global_options &out_options,
29  const boost::program_options::variables_map &vm) override
30  {
31  out_options = (bool)vm.count("verbose");
32  }
33 };
34 
35 int main(int argc, char **argv)
36 {
37  // Create command structures
38  std::map<std::string, zeth_subcommand *> commands{
39  {"verify", verify_cmd},
40  {"prove", prove_cmd},
41  {"dump-proof", dump_proof_cmd},
42  {"joinsplit-circuit", joinsplit_circuit_cmd},
43  {"split-keypair", split_keypair_cmd},
44  };
45 
46  zeth_command cmd;
47  bool verbose = false;
48 
49  // Execute tool_main
50  return libtool::run_command(cmd, verbose, commands, argc, argv);
51 }
commands
Definition: __init__.py:1
main
int main(int argc, char **argv)
Definition: main.cpp:35
split_keypair_cmd.hpp
zeth_command
Definition: main.cpp:15
zethtool::verify_cmd
zeth_subcommand * verify_cmd
Definition: verify_cmd.cpp:118
global_options
Definition: mpc_subcommand.hpp:15
verify_cmd.hpp
zethtool::dump_proof_cmd
zeth_subcommand * dump_proof_cmd
Definition: dump_proof_cmd.cpp:80
tool_common.hpp
libtool::command
Represents a top-level command, implementing parsing of global options.
Definition: command.hpp:14
run.hpp
joinsplit_circuit_cmd.hpp
zeth_command::parse_global_options
void parse_global_options(global_options &out_options, const boost::program_options::variables_map &vm) override
Parse the variables map to update the GlobalOptionsT object.
Definition: main.cpp:27
zethtool::joinsplit_circuit_cmd
zeth_subcommand * joinsplit_circuit_cmd
Definition: joinsplit_circuit_cmd.cpp:87
zeth_command::initialize_global_options
void initialize_global_options(boost::program_options::options_description &global, boost::program_options::options_description &all_options) override
Set up global options which are valid for all subcommands.
Definition: main.cpp:18
zethtool::prove_cmd
zeth_subcommand * prove_cmd
Definition: prove_cmd.cpp:134
zethtool::split_keypair_cmd
zeth_subcommand * split_keypair_cmd
Definition: split_keypair_cmd.cpp:105
dump_proof_cmd.hpp
zethtool
Definition: dump_proof_cmd.cpp:11
libtool::run_command
int run_command(command< GlobalOptionsT > &command, GlobalOptionsT &options, const std::map< std::string, subcommand< GlobalOptionsT > * > &subcommands, int argc, char **argv)
prove_cmd.hpp