Zeth - Zerocash on Ethereum
0.8
Reference implementation of the Zeth protocol by Clearmatics
zeth_tool
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
"
6
#include "
zeth_tool/dump_proof_cmd.hpp
"
7
#include "
zeth_tool/joinsplit_circuit_cmd.hpp
"
8
#include "
zeth_tool/prove_cmd.hpp
"
9
#include "
zeth_tool/split_keypair_cmd.hpp
"
10
#include "
zeth_tool/tool_common.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
:
18
void
initialize_global_options
(
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
27
void
parse_global_options
(
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
Generated on Mon Nov 28 2022 10:29:03 for Zeth - Zerocash on Ethereum by
1.8.17