69 template <
typename B = Builder>
94 requires(!IsRecursive)
97 msgpack::pack(
buffer, *
this);
102 requires(!IsRecursive)
110 requires(!IsRecursive)
112 auto uint8_buffer = from_buffer<std::vector<uint8_t>>(
buffer);
113 msgpack::sbuffer sbuf;
114 sbuf.write(
reinterpret_cast<char*
>(uint8_buffer.data()), uint8_buffer.size());
119 requires(!IsRecursive)
121 msgpack::object_handle oh = msgpack::unpack(
buffer.data(),
buffer.size());
122 msgpack::object obj = oh.get();
129 requires(!IsRecursive)
132 std::ofstream ofs(filename, std::ios::binary);
133 if (!ofs.is_open()) {
141 requires(!IsRecursive)
143 std::ifstream ifs(filename, std::ios::binary);
144 if (!ifs.is_open()) {
147 ifs.seekg(0, std::ios::end);
148 size_t file_size =
static_cast<size_t>(ifs.tellg());
149 ifs.seekg(0, std::ios::beg);
153 msgpack::sbuffer msgpack_buffer;
154 msgpack_buffer.write(
buffer.data(), file_size);
164 :
std::runtime_error(
std::string(
"Chonk Proof deserialization error: ") + msg)
DeserializationError(const std::string &msg)
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
static constexpr size_t PUBLIC_INPUTS_SIZE
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS(size_t virtual_log_n=VIRTUAL_LOG_N)
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
uint8_t buffer[RANDOM_BUFFER_SIZE]
Entry point for Barretenberg command-line interface.
std::vector< fr > HonkProof
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
uint8_t * to_heap_buffer(T const &value)
std::conditional_t< IsRecursive, stdlib::field_t< Builder >, bb::fr > FF
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
The size of a Chonk proof without backend-added public inputs.
ChonkProof_(B &builder, const ChonkProof_< false > &proof)
std::conditional_t< IsRecursive, GoblinStdlibProof, ::bb::GoblinProof > GoblinProof
std::conditional_t< IsRecursive, UltraCircuitBuilder, void > Builder
msgpack::sbuffer to_msgpack_buffer() const
uint8_t * to_msgpack_heap_buffer() const
static ChonkProof_ from_field_elements(const std::vector< FF > &fields)
Common logic to reconstruct proof from field elements.
static ChonkProof_ from_msgpack_buffer(uint8_t const *&buffer)
void to_file_msgpack(const std::string &filename) const
ChonkProof_(const HonkProof &mega, const GoblinProof &goblin)
MSGPACK_FIELDS(mega_proof, goblin_proof)
static ChonkProof_ from_msgpack_buffer(const msgpack::sbuffer &buffer)
static constexpr size_t HIDING_KERNEL_PROOF_LENGTH_WITHOUT_PUBLIC_INPUTS
ChonkProof_(HonkProof &&mega, GoblinProof &&goblin)
std::conditional_t< IsRecursive, stdlib::Proof< Builder >, ::bb::HonkProof > HonkProof
static constexpr size_t PROOF_LENGTH
The size of a Chonk proof with backend-added public inputs: HidingKernelIO.
std::vector< FF > to_field_elements() const
Serialize proof to field elements (native mode)
static ChonkProof_ from_file_msgpack(const std::string &filename)
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const ChonkProof_ &other) const =default
void throw_or_abort(std::string const &err)