pub trait KeygenCircuitIntent<F: Field> {
type ConcreteCircuit: Circuit<F>;
type Pinning;
// Required methods
fn get_k(&self) -> u32;
fn build_keygen_circuit(self) -> Self::ConcreteCircuit;
fn get_pinning_after_keygen(
self,
kzg_params: &ParamsKZG<Bn256>,
circuit: &Self::ConcreteCircuit,
) -> Self::Pinning;
}
Expand description
This trait should be implemented on the minimal circuit configuration data necessary to
completely determine a circuit (independent of circuit inputs).
This is used to generate a dummy instantiation of a concrete Circuit
type for the purposes of key generation.
This dummy instantiation just needs to have the correct arithmetization format, but the witnesses do not need to
satisfy constraints.
Required Associated Types§
Sourcetype ConcreteCircuit: Circuit<F>
type ConcreteCircuit: Circuit<F>
Concrete circuit type
Required Methods§
Sourcefn get_k(&self) -> u32
fn get_k(&self) -> u32
The intent must include the log_2 domain size of the circuit. This is used to get the correct trusted setup file.
Sourcefn build_keygen_circuit(self) -> Self::ConcreteCircuit
fn build_keygen_circuit(self) -> Self::ConcreteCircuit
Builds a dummy instantiation of Self::ConcreteCircuit
for the purposes of key generation.
This dummy instantiation just needs to have the correct arithmetization format, but the witnesses do not need to
satisfy constraints.
Sourcefn get_pinning_after_keygen(
self,
kzg_params: &ParamsKZG<Bn256>,
circuit: &Self::ConcreteCircuit,
) -> Self::Pinning
fn get_pinning_after_keygen( self, kzg_params: &ParamsKZG<Bn256>, circuit: &Self::ConcreteCircuit, ) -> Self::Pinning
Pinning is only fully computed after synthesize
has been run during keygen