nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType > Class Template Referenceabstract

#include <cp_handler.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >:

Public Member Functions

 compliance_predicate_handler (const BlueprintType &bp, const std::size_t name, const std::size_t type, const std::size_t max_arity, const bool relies_on_same_type_inputs, const std::set< std::size_t > &accepted_input_types=std::set< std::size_t >())
 
virtual void generate_r1cs_constraints ()=0
 
virtual void generate_r1cs_witness (const std::vector< std::shared_ptr< r1cs_pcd_message< FieldType >>> &incoming_message_values, const std::shared_ptr< r1cs_pcd_local_data< FieldType >> &local_data_value)
 
std::size_t get_arity () const
 
r1cs_pcd_compliance_predicate< FieldType > get_compliance_predicate () const
 
snark::r1cs_variable_assignment< FieldType > get_full_variable_assignment () const
 
std::shared_ptr< r1cs_pcd_message< FieldType > > get_incoming_message (const std::size_t message_idx) const
 
std::shared_ptr< r1cs_pcd_local_data< FieldType > > get_local_data () const
 
std::shared_ptr< r1cs_pcd_message< FieldType > > get_outgoing_message () const
 
snark::r1cs_variable_assignment< FieldType > get_witness () const
 

Public Attributes

const std::set< std::size_t > accepted_input_types
 
const std::size_t max_arity
 
const std::size_t name
 
const bool relies_on_same_type_inputs
 
const std::size_t type
 

Protected Attributes

blueprint_variable< FieldType > arity
 
BlueprintType bp
 
std::vector< std::shared_ptr< r1cs_pcd_message_variable< FieldType > > > incoming_messages
 
std::shared_ptr< r1cs_pcd_local_data_variable< FieldType > > local_data
 
std::shared_ptr< r1cs_pcd_message_variable< FieldType > > outgoing_message
 

Detailed Description

template<typename FieldType, typename BlueprintType>
class nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >

A base class for creating compliance predicates.

Constructor & Destructor Documentation

◆ compliance_predicate_handler()

template<typename FieldType , typename BlueprintType >
nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::compliance_predicate_handler ( const BlueprintType &  bp,
const std::size_t  name,
const std::size_t  type,
const std::size_t  max_arity,
const bool  relies_on_same_type_inputs,
const std::set< std::size_t > &  accepted_input_types = std::set<std::size_t>() 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldType , typename BlueprintType >
virtual void nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::generate_r1cs_constraints ( )
pure virtual

◆ generate_r1cs_witness()

template<typename FieldType , typename BlueprintType >
void nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::generate_r1cs_witness ( const std::vector< std::shared_ptr< r1cs_pcd_message< FieldType >>> &  incoming_message_values,
const std::shared_ptr< r1cs_pcd_local_data< FieldType >> &  local_data_value 
)
virtual

◆ get_arity()

template<typename FieldType , typename BlueprintType >
std::size_t nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_arity

◆ get_compliance_predicate()

template<typename FieldType , typename BlueprintType >
r1cs_pcd_compliance_predicate< FieldType > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_compliance_predicate

◆ get_full_variable_assignment()

template<typename FieldType , typename BlueprintType >
snark::r1cs_variable_assignment< FieldType > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_full_variable_assignment

◆ get_incoming_message()

template<typename FieldType , typename BlueprintType >
std::shared_ptr< r1cs_pcd_message< FieldType > > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_incoming_message ( const std::size_t  message_idx) const

◆ get_local_data()

template<typename FieldType , typename BlueprintType >
std::shared_ptr< r1cs_pcd_local_data< FieldType > > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_local_data

◆ get_outgoing_message()

template<typename FieldType , typename BlueprintType >
std::shared_ptr< r1cs_pcd_message< FieldType > > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_outgoing_message

◆ get_witness()

template<typename FieldType , typename BlueprintType >
r1cs_pcd_witness< FieldType > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::get_witness

Member Data Documentation

◆ accepted_input_types

template<typename FieldType , typename BlueprintType >
const std::set<std::size_t> nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::accepted_input_types

◆ arity

template<typename FieldType , typename BlueprintType >
blueprint_variable<FieldType> nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::arity
protected

◆ bp

template<typename FieldType , typename BlueprintType >
BlueprintType nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::bp
protected

◆ incoming_messages

template<typename FieldType , typename BlueprintType >
std::vector<std::shared_ptr<r1cs_pcd_message_variable<FieldType> > > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::incoming_messages
protected

◆ local_data

template<typename FieldType , typename BlueprintType >
std::shared_ptr<r1cs_pcd_local_data_variable<FieldType> > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::local_data
protected

◆ max_arity

template<typename FieldType , typename BlueprintType >
const std::size_t nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::max_arity

◆ name

template<typename FieldType , typename BlueprintType >
const std::size_t nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::name

◆ outgoing_message

template<typename FieldType , typename BlueprintType >
std::shared_ptr<r1cs_pcd_message_variable<FieldType> > nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::outgoing_message
protected

◆ relies_on_same_type_inputs

template<typename FieldType , typename BlueprintType >
const bool nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::relies_on_same_type_inputs

◆ type

template<typename FieldType , typename BlueprintType >
const std::size_t nil::crypto3::zk::snark::compliance_predicate_handler< FieldType, BlueprintType >::type

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