1 // Copyright (c) 2015-2022 Clearmatics Technologies Ltd
3 // SPDX-License-Identifier: LGPL-3.0+
5 #ifndef __ZETH_TYPES_EXTENDED_PROOF_TCC__
6 #define __ZETH_TYPES_EXTENDED_PROOF_TCC__
8 #include "libzeth/core/extended_proof.hpp"
9 #include "libzeth/core/field_element_utils.hpp"
10 #include "libzeth/serialization/r1cs_serialization.hpp"
15 template<typename ppT, typename snarkT>
16 extended_proof<ppT, snarkT>::extended_proof(
17 typename snarkT::proof &&in_proof,
18 libsnark::r1cs_primary_input<libff::Fr<ppT>> &&in_primary_inputs)
19 : proof(in_proof), primary_inputs(in_primary_inputs)
23 template<typename ppT, typename snarkT>
24 const typename snarkT::proof &extended_proof<ppT, snarkT>::get_proof() const
29 template<typename ppT, typename snarkT>
30 const libsnark::r1cs_primary_input<libff::Fr<ppT>>
31 &extended_proof<ppT, snarkT>::get_primary_inputs() const
33 return primary_inputs;
36 template<typename ppT, typename snarkT>
37 std::ostream &extended_proof<ppT, snarkT>::write_json(std::ostream &out_s) const
41 snarkT::proof_write_json(proof, out_s);
44 primary_inputs_write_json(primary_inputs, out_s);
50 } // namespace libzeth
52 #endif // __ZETH_TYPES_EXTENDED_PROOF_TCC__