Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bbapi_ultra_honk.hpp
Go to the documentation of this file.
1#pragma once
14#include <cstdint>
15#include <map>
16#include <vector>
17
18namespace bb::bbapi {
19
21 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitComputeVk";
22
23 struct Response {
24 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitComputeVkResponse";
25
26 std::vector<uint8_t> bytes; // Serialized verification key
27 std::vector<uint256_t> fields; // VK as field elements (unless keccak, then just uint256_t's)
28 std::vector<uint8_t> hash; // The VK hash
30 bool operator==(const Response&) const = default;
31 };
32
36 Response execute(const BBApiRequest& request = {}) &&;
37 bool operator==(const CircuitComputeVk&) const = default;
38};
39
48 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitProve";
49
64
66 std::vector<uint8_t> witness;
69 Response execute(const BBApiRequest& request = {}) &&;
70 bool operator==(const CircuitProve&) const = default;
71};
72
79 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitStats";
80
81 struct Response {
82 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitInfoResponse";
83
84 uint32_t num_gates{};
85 uint32_t num_gates_dyadic{};
86 uint32_t num_acir_opcodes{};
87 std::vector<size_t> gates_per_opcode;
89 bool operator==(const Response&) const = default;
90 };
91
96 Response execute(const BBApiRequest& request = {}) &&;
97 bool operator==(const CircuitStats&) const = default;
98};
99
105 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitVerify";
106
107 struct Response {
108 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitVerifyResponse";
109
112 bool operator==(const Response&) const = default;
113 };
114
115 std::vector<uint8_t> verification_key;
120 Response execute(const BBApiRequest& request = {}) &&;
121 bool operator==(const CircuitVerify&) const = default;
122};
123
132 static constexpr const char MSGPACK_SCHEMA_NAME[] = "VkAsFields";
133
134 struct Response {
135 static constexpr const char MSGPACK_SCHEMA_NAME[] = "VkAsFieldsResponse";
136
137 std::vector<bb::fr> fields;
139 bool operator==(const Response&) const = default;
140 };
141
142 std::vector<uint8_t> verification_key;
144 Response execute(const BBApiRequest& request = {}) &&;
145 bool operator==(const VkAsFields&) const = default;
146};
147
154 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaVkAsFields";
155
156 struct Response {
157 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaVkAsFieldsResponse";
158
159 std::vector<bb::fr> fields;
161 bool operator==(const Response&) const = default;
162 };
163
164 std::vector<uint8_t> verification_key;
166 Response execute(const BBApiRequest& request = {}) &&;
167 bool operator==(const MegaVkAsFields&) const = default;
168};
169
174 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitWriteSolidityVerifier";
175
176 struct Response {
177 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitWriteSolidityVerifierResponse";
178
179 std::string solidity_code;
181 bool operator==(const Response&) const = default;
182 };
183
184 std::vector<uint8_t> verification_key;
187 Response execute(const BBApiRequest& request = {}) &&;
188 bool operator==(const CircuitWriteSolidityVerifier&) const = default;
189};
190
191} // namespace bb::bbapi
Shared type definitions for the Barretenberg RPC API.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
Response execute(const BBApiRequest &request={}) &&
MSGPACK_FIELDS(circuit, settings)
bool operator==(const CircuitComputeVk &) const =default
A circuit to be used in either ultrahonk or Chonk proving.
A circuit to be used in either ultrahonk or chonk verification key derivation.
Contains proof and public inputs. Both are given as vectors of fields. To be used for verification....
CircuitComputeVk::Response vk
MSGPACK_FIELDS(public_inputs, proof, vk)
std::vector< uint256_t > public_inputs
bool operator==(const Response &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
Represents a request to generate a proof. Currently, UltraHonk is the only proving system supported b...
std::vector< uint8_t > witness
MSGPACK_FIELDS(circuit, witness, settings)
Response execute(const BBApiRequest &request={}) &&
static constexpr const char MSGPACK_SCHEMA_NAME[]
ProofSystemSettings settings
bool operator==(const CircuitProve &) const =default
MSGPACK_FIELDS(num_gates, num_gates_dyadic, num_acir_opcodes, gates_per_opcode)
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Consolidated command for retrieving circuit information. Combines gate count, circuit size,...
static constexpr const char MSGPACK_SCHEMA_NAME[]
ProofSystemSettings settings
Response execute(const BBApiRequest &request={}) &&
MSGPACK_FIELDS(circuit, include_gates_per_opcode, settings)
bool operator==(const CircuitStats &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Verify a proof against a verification key and public inputs.
bool operator==(const CircuitVerify &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
std::vector< uint256_t > proof
ProofSystemSettings settings
std::vector< uint256_t > public_inputs
MSGPACK_FIELDS(verification_key, public_inputs, proof, settings)
std::vector< uint8_t > verification_key
Response execute(const BBApiRequest &request={}) &&
bool operator==(const Response &) const =default
Command to generate Solidity verifier contract.
MSGPACK_FIELDS(verification_key, settings)
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const CircuitWriteSolidityVerifier &) const =default
Response execute(const BBApiRequest &request={}) &&
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a MegaFlavor verification key to field elements representation. Used for private function ver...
std::vector< uint8_t > verification_key
Response execute(const BBApiRequest &request={}) &&
MSGPACK_FIELDS(verification_key)
bool operator==(const MegaVkAsFields &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a verification key to field elements representation. WORKTODO(bbapi): this should become most...
bool operator==(const VkAsFields &) const =default
std::vector< uint8_t > verification_key
MSGPACK_FIELDS(verification_key)
static constexpr const char MSGPACK_SCHEMA_NAME[]
Response execute(const BBApiRequest &request={}) &&