Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
cli.cpp
Go to the documentation of this file.
5
7#include <iostream>
8#include <string>
9
10namespace bb::cdb {
11
12namespace {
13
14struct CdbApi {
17 SERIALIZATION_FIELDS(commands, responses);
18};
19
20std::string get_cdb_schema_as_json()
21{
22 return msgpack_schema_to_string(CdbApi{});
23}
24
25} // namespace
26
27int parse_and_run_cdb(int argc, char* argv[])
28{
29 CLI::App app{ "aztec-cdb: Contract database schema provider" };
30 app.require_subcommand(1);
31
32 // -----------------------------------------------------------------------
33 // Subcommand: msgpack
34 // -----------------------------------------------------------------------
35 CLI::App* msgpack_command = app.add_subcommand("msgpack", "Msgpack API interface.");
36
37 // msgpack schema
38 CLI::App* msgpack_schema_command =
39 msgpack_command->add_subcommand("schema", "Output a msgpack schema encoded as JSON to stdout.");
40
41 // Parse CLI
42 try {
43 app.parse(argc, argv);
44 } catch (const CLI::ParseError& e) {
45 return app.exit(e);
46 }
47
48 try {
49 if (msgpack_schema_command->parsed()) {
50 std::cout << get_cdb_schema_as_json() << std::endl;
51 return 0;
52 }
53 } catch (const std::exception& e) {
54 std::cerr << "Error: " << e.what() << '\n';
55 return 1;
56 }
57
58 return 0;
59}
60
61} // namespace bb::cdb
AvmCommandResponse responses
Definition cli.cpp:18
AvmCommand commands
Definition cli.cpp:17
CdbCommand NamedUnion, CdbRequest context, and dispatch function.
#define SERIALIZATION_FIELDS(...)
Definition msgpack.hpp:121
ContractDBInterface adapter over the generated CDB IPC client.
int parse_and_run_cdb(int argc, char *argv[])
Definition cli.cpp:27
NamedUnion< CdbErrorResponse, CdbGetContractInstance::Response, CdbGetContractClass::Response, CdbGetBytecodeCommitment::Response, CdbGetDebugFunctionName::Response, CdbAddContracts::Response, CdbCreateCheckpoint::Response, CdbCommitCheckpoint::Response, CdbRevertCheckpoint::Response, CdbAddContractClass::Response, CdbAddContractInstance::Response, CdbRegisterFunctionSignatures::Response, CdbGetContractClassIds::Response, CdbShutdown::Response > CdbCommandResponse
Union of all cdb response types.
NamedUnion< CdbGetContractInstance, CdbGetContractClass, CdbGetBytecodeCommitment, CdbGetDebugFunctionName, CdbAddContracts, CdbCreateCheckpoint, CdbCommitCheckpoint, CdbRevertCheckpoint, CdbAddContractClass, CdbAddContractInstance, CdbRegisterFunctionSignatures, CdbGetContractClassIds, CdbShutdown > CdbCommand
Union of all cdb commands (request types).
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
std::string msgpack_schema_to_string(const auto &obj)
Print's an object's derived msgpack schema as a string.