nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity > Struct Template Reference

#include <merkle_tree.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >:

Public Types

typedef Hash::hash_value_type digest_type
 
typedef Hash::digest_type digest_type
 
typedef Hash::merkle_authentication_path_type merkle_authentication_path_type
 
typedef Hash::merkle_authentication_path_type merkle_authentication_path_type
 

Public Member Functions

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

Public Attributes

std::size_t depth
 
std::size_t digest_size
 
std::vector< digest_typehash_defaults
 
std::map< std::size_t, digest_typehashes
 
std::size_t value_size
 
std::map< std::size_t, std::vector< bool > > values
 

Static Public Attributes

constexpr static const std::size_t base_arity = BaseArity
 
constexpr static const std::size_t sub_tree_arity = SubTreeArity
 
constexpr static const std::size_t top_tree_arity = TopTreeArity
 

Member Typedef Documentation

◆ digest_type [1/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
typedef Hash::hash_value_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::digest_type

◆ digest_type [2/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
typedef Hash::digest_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::digest_type

◆ merkle_authentication_path_type [1/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
typedef Hash::merkle_authentication_path_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_authentication_path_type

◆ merkle_authentication_path_type [2/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
typedef Hash::merkle_authentication_path_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_authentication_path_type

Constructor & Destructor Documentation

◆ merkle_tree() [1/6]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_tree ( const std::size_t  depth,
const std::size_t  value_size 
)
inline

◆ merkle_tree() [2/6]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_tree ( const std::size_t  depth,
const std::size_t  value_size,
const std::vector< std::vector< bool >> &  contents_as_vector 
)
inline

◆ merkle_tree() [3/6]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_tree ( size_t  depth,
std::size_t  value_size,
const std::map< std::size_t, std::vector< bool >> &  contents 
)
inline

◆ merkle_tree() [4/6]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_tree ( const std::size_t  depth,
const std::size_t  value_size 
)
inline

◆ merkle_tree() [5/6]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_tree ( const std::size_t  depth,
const std::size_t  value_size,
const std::vector< std::vector< bool >> &  contents_as_vector 
)
inline

◆ merkle_tree() [6/6]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::merkle_tree ( size_t  depth,
std::size_t  value_size,
const std::map< std::size_t, std::vector< bool >> &  contents 
)
inline

Member Function Documentation

◆ dump()

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
void nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::dump ( ) const
inline

◆ get_path() [1/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
merkle_authentication_path_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::get_path ( const std::size_t  address) const
inline

◆ get_path() [2/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
merkle_authentication_path_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::get_path ( const std::size_t  address) const
inline

◆ get_root() [1/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
digest_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::get_root ( ) const
inline

◆ get_root() [2/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
digest_type nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::get_root ( ) const
inline

◆ get_value() [1/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::vector<bool> nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::get_value ( const std::size_t  address) const
inline

◆ get_value() [2/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::vector<bool> nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::get_value ( const std::size_t  address) const
inline

◆ set_value() [1/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
void nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::set_value ( const std::size_t  address,
const std::vector< bool > &  value 
)
inline

◆ set_value() [2/2]

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
void nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::set_value ( const std::size_t  address,
const std::vector< bool > &  value 
)
inline

Member Data Documentation

◆ base_arity

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
constexpr static const std::size_t nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::base_arity = BaseArity
staticconstexpr

◆ depth

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::size_t nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::depth

◆ digest_size

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::size_t nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::digest_size

◆ hash_defaults

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::vector< digest_type > nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::hash_defaults

◆ hashes

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::map< std::size_t, digest_type > nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::hashes

◆ sub_tree_arity

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
constexpr static const std::size_t nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::sub_tree_arity = SubTreeArity
staticconstexpr

◆ top_tree_arity

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
constexpr static const std::size_t nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::top_tree_arity = TopTreeArity
staticconstexpr

◆ value_size

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::size_t nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::value_size

◆ values

template<typename Hash , std::size_t BaseArity = 0, std::size_t SubTreeArity = 0, std::size_t TopTreeArity = 0>
std::map< std::size_t, std::vector< bool > > nil::crypto3::zk::snark::merkle_tree< Hash, BaseArity, SubTreeArity, TopTreeArity >::values

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