Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | Friends | List of all members
libsnark::set_membership_proof Struct Reference

#include <set_commitment.hpp>

Public Member Functions

bool operator== (const set_membership_proof &other) const
 
size_t size_in_bits () const
 

Public Attributes

size_t address
 
merkle_authentication_path merkle_path
 

Friends

std::ostream & operator<< (std::ostream &out, const set_membership_proof &other)
 
std::istream & operator>> (std::istream &in, set_membership_proof &other)
 

Detailed Description

Definition at line 24 of file set_commitment.hpp.

Member Function Documentation

◆ operator==()

bool libsnark::set_membership_proof::operator== ( const set_membership_proof other) const

Definition at line 14 of file set_commitment.cpp.

15 {
16  return (
17  this->address == other.address &&
18  this->merkle_path == other.merkle_path);
19 }

◆ size_in_bits()

size_t libsnark::set_membership_proof::size_in_bits ( ) const

Definition at line 21 of file set_commitment.cpp.

22 {
23  if (merkle_path.empty()) {
24  return (8 * sizeof(address));
25  } else {
26  return (
27  8 * sizeof(address) + merkle_path[0].size() * merkle_path.size());
28  }
29 }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const set_membership_proof other 
)
friend

Definition at line 31 of file set_commitment.cpp.

32 {
33  out << proof.address << "\n";
34  out << proof.merkle_path.size() << "\n";
35  for (size_t i = 0; i < proof.merkle_path.size(); ++i) {
36  libff::output_bool_vector(out, proof.merkle_path[i]);
37  }
38 
39  return out;
40 }

◆ operator>>

std::istream& operator>> ( std::istream &  in,
set_membership_proof other 
)
friend

Definition at line 42 of file set_commitment.cpp.

43 {
44  in >> proof.address;
45  libff::consume_newline(in);
46  size_t tree_depth;
47  in >> tree_depth;
48  libff::consume_newline(in);
49  proof.merkle_path.resize(tree_depth);
50 
51  for (size_t i = 0; i < tree_depth; ++i) {
52  libff::input_bool_vector(in, proof.merkle_path[i]);
53  }
54 
55  return in;
56 }

Member Data Documentation

◆ address

size_t libsnark::set_membership_proof::address

Definition at line 25 of file set_commitment.hpp.

◆ merkle_path

merkle_authentication_path libsnark::set_membership_proof::merkle_path

Definition at line 26 of file set_commitment.hpp.


The documentation for this struct was generated from the following files:
libsnark::set_membership_proof::address
size_t address
Definition: set_commitment.hpp:25
libsnark::set_membership_proof::merkle_path
merkle_authentication_path merkle_path
Definition: set_commitment.hpp:26