Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
Public Member Functions | Public Attributes | List of all members
libzeth::merkle_path_compute< FieldT, HashTreeT > Class Template Reference

#include <merkle_path_compute.hpp>

Inheritance diagram for libzeth::merkle_path_compute< FieldT, HashTreeT >:
Inheritance graph
[legend]
Collaboration diagram for libzeth::merkle_path_compute< FieldT, HashTreeT >:
Collaboration graph
[legend]

Public Member Functions

 merkle_path_compute (libsnark::protoboard< FieldT > &pb, const size_t depth, const libsnark::pb_variable_array< FieldT > &address_bits, const libsnark::pb_variable< FieldT > leaf, const libsnark::pb_variable_array< FieldT > &path, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
const libsnark::pb_variable< FieldT > result ()
 

Public Attributes

const size_t depth
 
const libsnark::pb_variable_array< FieldT > address_bits
 
const libsnark::pb_variable< FieldT > leaf
 
const libsnark::pb_variable_array< FieldT > path
 
libsnark::pb_variable_array< FieldT > digests
 
std::vector< merkle_path_selector< FieldT > > selectors
 
std::vector< HashTreeThashers
 

Detailed Description

template<typename FieldT, typename HashTreeT>
class libzeth::merkle_path_compute< FieldT, HashTreeT >

Definition at line 15 of file merkle_path_compute.hpp.

Constructor & Destructor Documentation

◆ merkle_path_compute()

template<typename FieldT , typename HashTreeT >
libzeth::merkle_path_compute< FieldT, HashTreeT >::merkle_path_compute ( libsnark::protoboard< FieldT > &  pb,
const size_t  depth,
const libsnark::pb_variable_array< FieldT > &  address_bits,
const libsnark::pb_variable< FieldT >  leaf,
const libsnark::pb_variable_array< FieldT > &  path,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldT , typename HashTreeT >
void libzeth::merkle_path_compute< FieldT, HashTreeT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename FieldT , typename HashTreeT >
void libzeth::merkle_path_compute< FieldT, HashTreeT >::generate_r1cs_witness ( )

◆ result()

template<typename FieldT , typename HashTreeT >
const libsnark::pb_variable<FieldT> libzeth::merkle_path_compute< FieldT, HashTreeT >::result ( )

Member Data Documentation

◆ address_bits

template<typename FieldT , typename HashTreeT >
const libsnark::pb_variable_array<FieldT> libzeth::merkle_path_compute< FieldT, HashTreeT >::address_bits

Definition at line 20 of file merkle_path_compute.hpp.

◆ depth

template<typename FieldT , typename HashTreeT >
const size_t libzeth::merkle_path_compute< FieldT, HashTreeT >::depth

Definition at line 18 of file merkle_path_compute.hpp.

◆ digests

template<typename FieldT , typename HashTreeT >
libsnark::pb_variable_array<FieldT> libzeth::merkle_path_compute< FieldT, HashTreeT >::digests

Definition at line 27 of file merkle_path_compute.hpp.

◆ hashers

template<typename FieldT , typename HashTreeT >
std::vector<HashTreeT> libzeth::merkle_path_compute< FieldT, HashTreeT >::hashers

Definition at line 32 of file merkle_path_compute.hpp.

◆ leaf

template<typename FieldT , typename HashTreeT >
const libsnark::pb_variable<FieldT> libzeth::merkle_path_compute< FieldT, HashTreeT >::leaf

Definition at line 22 of file merkle_path_compute.hpp.

◆ path

template<typename FieldT , typename HashTreeT >
const libsnark::pb_variable_array<FieldT> libzeth::merkle_path_compute< FieldT, HashTreeT >::path

Definition at line 24 of file merkle_path_compute.hpp.

◆ selectors

template<typename FieldT , typename HashTreeT >
std::vector<merkle_path_selector<FieldT> > libzeth::merkle_path_compute< FieldT, HashTreeT >::selectors

Definition at line 30 of file merkle_path_compute.hpp.


The documentation for this class was generated from the following file: