Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::crypto::merkle_tree::ArrayStore< PersistedStore > Class Template Reference

A very basic 2-d array for use as a backing store for merkle trees. Can store up to 'indices' nodes per row and 'levels' rows. More...

#include <array_store.hpp>

Public Types

using ReadTransaction = typename PersistedStore::ReadTransaction
 
using WriteTransaction = typename PersistedStore::WriteTransaction
 
using ReadTransactionPtr = std::unique_ptr< ReadTransaction >
 

Public Member Functions

 ArrayStore (const std::string &name, uint32_t depth, index_t indices=1024)
 
 ~ArrayStore ()=default
 
 ArrayStore ()=delete
 
 ArrayStore (ArrayStore const &other)=delete
 
 ArrayStore (ArrayStore const &&other)=delete
 
ArrayStoreoperator= (ArrayStore const &other)=delete
 
ArrayStoreoperator= (ArrayStore const &&other)=delete
 
void put_node (uint32_t level, index_t index, const std::vector< uint8_t > &data)
 
bool get_node (uint32_t level, index_t index, std::vector< uint8_t > &data, ReadTransaction &, bool) const
 
void put_meta (const index_t &size, const bb::fr &root)
 
void get_meta (index_t &size, bb::fr &root, ReadTransaction &, bool) const
 
void commit ()
 
void rollback ()
 
ReadTransactionPtr create_read_transactiono ()
 

Private Attributes

std::vector< std::vector< std::pair< bool, std::vector< uint8_t > > > > map
 
TreeMeta meta
 

Detailed Description

template<typename PersistedStore>
class bb::crypto::merkle_tree::ArrayStore< PersistedStore >

A very basic 2-d array for use as a backing store for merkle trees. Can store up to 'indices' nodes per row and 'levels' rows.

Definition at line 43 of file array_store.hpp.

Member Typedef Documentation

◆ ReadTransaction

template<typename PersistedStore >
using bb::crypto::merkle_tree::ArrayStore< PersistedStore >::ReadTransaction = typename PersistedStore::ReadTransaction

Definition at line 46 of file array_store.hpp.

◆ ReadTransactionPtr

template<typename PersistedStore >
using bb::crypto::merkle_tree::ArrayStore< PersistedStore >::ReadTransactionPtr = std::unique_ptr<ReadTransaction>

Definition at line 48 of file array_store.hpp.

◆ WriteTransaction

template<typename PersistedStore >
using bb::crypto::merkle_tree::ArrayStore< PersistedStore >::WriteTransaction = typename PersistedStore::WriteTransaction

Definition at line 47 of file array_store.hpp.

Constructor & Destructor Documentation

◆ ArrayStore() [1/4]

template<typename PersistedStore >
bb::crypto::merkle_tree::ArrayStore< PersistedStore >::ArrayStore ( const std::string &  name,
uint32_t  depth,
index_t  indices = 1024 
)
inline

Definition at line 49 of file array_store.hpp.

◆ ~ArrayStore()

template<typename PersistedStore >
bb::crypto::merkle_tree::ArrayStore< PersistedStore >::~ArrayStore ( )
default

◆ ArrayStore() [2/4]

template<typename PersistedStore >
bb::crypto::merkle_tree::ArrayStore< PersistedStore >::ArrayStore ( )
delete

◆ ArrayStore() [3/4]

template<typename PersistedStore >
bb::crypto::merkle_tree::ArrayStore< PersistedStore >::ArrayStore ( ArrayStore< PersistedStore > const &  other)
delete

◆ ArrayStore() [4/4]

template<typename PersistedStore >
bb::crypto::merkle_tree::ArrayStore< PersistedStore >::ArrayStore ( ArrayStore< PersistedStore > const &&  other)
delete

Member Function Documentation

◆ commit()

template<typename PersistedStore >
void bb::crypto::merkle_tree::ArrayStore< PersistedStore >::commit ( )
inline

Definition at line 91 of file array_store.hpp.

◆ create_read_transactiono()

template<typename PersistedStore >
ReadTransactionPtr bb::crypto::merkle_tree::ArrayStore< PersistedStore >::create_read_transactiono ( )
inline

Definition at line 94 of file array_store.hpp.

◆ get_meta()

template<typename PersistedStore >
void bb::crypto::merkle_tree::ArrayStore< PersistedStore >::get_meta ( index_t size,
bb::fr root,
ReadTransaction ,
bool   
) const
inline

Definition at line 85 of file array_store.hpp.

◆ get_node()

template<typename PersistedStore >
bool bb::crypto::merkle_tree::ArrayStore< PersistedStore >::get_node ( uint32_t  level,
index_t  index,
std::vector< uint8_t > &  data,
ReadTransaction ,
bool   
) const
inline

Definition at line 71 of file array_store.hpp.

◆ operator=() [1/2]

template<typename PersistedStore >
ArrayStore & bb::crypto::merkle_tree::ArrayStore< PersistedStore >::operator= ( ArrayStore< PersistedStore > const &&  other)
delete

◆ operator=() [2/2]

template<typename PersistedStore >
ArrayStore & bb::crypto::merkle_tree::ArrayStore< PersistedStore >::operator= ( ArrayStore< PersistedStore > const &  other)
delete

◆ put_meta()

template<typename PersistedStore >
void bb::crypto::merkle_tree::ArrayStore< PersistedStore >::put_meta ( const index_t size,
const bb::fr root 
)
inline

Definition at line 79 of file array_store.hpp.

◆ put_node()

template<typename PersistedStore >
void bb::crypto::merkle_tree::ArrayStore< PersistedStore >::put_node ( uint32_t  level,
index_t  index,
const std::vector< uint8_t > &  data 
)
inline

Definition at line 67 of file array_store.hpp.

◆ rollback()

template<typename PersistedStore >
void bb::crypto::merkle_tree::ArrayStore< PersistedStore >::rollback ( )
inline

Definition at line 92 of file array_store.hpp.

Member Data Documentation

◆ map

template<typename PersistedStore >
std::vector<std::vector<std::pair<bool, std::vector<uint8_t> > > > bb::crypto::merkle_tree::ArrayStore< PersistedStore >::map
private

Definition at line 97 of file array_store.hpp.

◆ meta

template<typename PersistedStore >
TreeMeta bb::crypto::merkle_tree::ArrayStore< PersistedStore >::meta
private

Definition at line 98 of file array_store.hpp.


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