Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | List of all members
libsnark::merkle_tree< HashT > Class Template Reference

#include <merkle_tree.hpp>

Public Member Functions

 merkle_tree (const size_t depth, const size_t value_size)
 
 merkle_tree (const size_t depth, const size_t value_size, const std::vector< libff::bit_vector > &contents_as_vector)
 
 merkle_tree (const size_t depth, const size_t value_size, const std::map< size_t, libff::bit_vector > &contents)
 
libff::bit_vector get_value (const size_t address) const
 
void set_value (const size_t address, const libff::bit_vector &value)
 
hash_value_type get_root () const
 
merkle_authentication_path_type get_path (const size_t address) const
 
void dump () const
 

Public Attributes

std::vector< hash_value_type > hash_defaults
 
std::map< size_t, libff::bit_vector > values
 
std::map< size_t, hash_value_type > hashes
 
size_t depth
 
size_t value_size
 
size_t digest_size
 

Detailed Description

template<typename HashT>
class libsnark::merkle_tree< HashT >

Definition at line 38 of file merkle_tree.hpp.

Constructor & Destructor Documentation

◆ merkle_tree() [1/3]

template<typename HashT >
libsnark::merkle_tree< HashT >::merkle_tree ( const size_t  depth,
const size_t  value_size 
)

◆ merkle_tree() [2/3]

template<typename HashT >
libsnark::merkle_tree< HashT >::merkle_tree ( const size_t  depth,
const size_t  value_size,
const std::vector< libff::bit_vector > &  contents_as_vector 
)

◆ merkle_tree() [3/3]

template<typename HashT >
libsnark::merkle_tree< HashT >::merkle_tree ( const size_t  depth,
const size_t  value_size,
const std::map< size_t, libff::bit_vector > &  contents 
)

Member Function Documentation

◆ dump()

template<typename HashT >
void libsnark::merkle_tree< HashT >::dump ( ) const

◆ get_path()

template<typename HashT >
merkle_authentication_path_type libsnark::merkle_tree< HashT >::get_path ( const size_t  address) const

◆ get_root()

template<typename HashT >
hash_value_type libsnark::merkle_tree< HashT >::get_root ( ) const

◆ get_value()

template<typename HashT >
libff::bit_vector libsnark::merkle_tree< HashT >::get_value ( const size_t  address) const

◆ set_value()

template<typename HashT >
void libsnark::merkle_tree< HashT >::set_value ( const size_t  address,
const libff::bit_vector &  value 
)

Member Data Documentation

◆ depth

template<typename HashT >
size_t libsnark::merkle_tree< HashT >::depth

Definition at line 50 of file merkle_tree.hpp.

◆ digest_size

template<typename HashT >
size_t libsnark::merkle_tree< HashT >::digest_size

Definition at line 52 of file merkle_tree.hpp.

◆ hash_defaults

template<typename HashT >
std::vector<hash_value_type> libsnark::merkle_tree< HashT >::hash_defaults

Definition at line 46 of file merkle_tree.hpp.

◆ hashes

template<typename HashT >
std::map<size_t, hash_value_type> libsnark::merkle_tree< HashT >::hashes

Definition at line 48 of file merkle_tree.hpp.

◆ value_size

template<typename HashT >
size_t libsnark::merkle_tree< HashT >::value_size

Definition at line 51 of file merkle_tree.hpp.

◆ values

template<typename HashT >
std::map<size_t, libff::bit_vector> libsnark::merkle_tree< HashT >::values

Definition at line 47 of file merkle_tree.hpp.


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