diff --git a/plonky2/examples/square_root.rs b/plonky2/examples/square_root.rs index f27c46d1..4433cee3 100644 --- a/plonky2/examples/square_root.rs +++ b/plonky2/examples/square_root.rs @@ -14,7 +14,7 @@ use plonky2::iop::generator::{ use plonky2::iop::target::Target; use plonky2::iop::witness::{PartialWitness, PartitionWitness, Witness, WitnessWrite}; use plonky2::plonk::circuit_builder::CircuitBuilder; -use plonky2::plonk::circuit_data::{CircuitConfig, CircuitData}; +use plonky2::plonk::circuit_data::{CircuitConfig, CircuitData, CommonCircuitData}; use plonky2::plonk::config::{AlgebraicHasher, GenericConfig, PoseidonGoldilocksConfig}; use plonky2::recursion::dummy_circuit::DummyProofGenerator; use plonky2::util::serialization::{ @@ -57,7 +57,7 @@ impl, const D: usize> SimpleGenerator dst.write_target(self.x_squared) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let x = src.read_target()?; let x_squared = src.read_target()?; Ok(Self { diff --git a/plonky2/src/gadgets/arithmetic.rs b/plonky2/src/gadgets/arithmetic.rs index aaf12a40..7ee5913e 100644 --- a/plonky2/src/gadgets/arithmetic.rs +++ b/plonky2/src/gadgets/arithmetic.rs @@ -11,6 +11,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator}; use crate::iop::target::{BoolTarget, Target}; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::util::serialization::{Buffer, IoResult, Read, Write}; impl, const D: usize> CircuitBuilder { @@ -405,7 +406,7 @@ impl, const D: usize> SimpleGenerator for Equ dst.write_target(self.inv) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let x = src.read_target()?; let y = src.read_target()?; let equal = src.read_target_bool()?; diff --git a/plonky2/src/gadgets/arithmetic_extension.rs b/plonky2/src/gadgets/arithmetic_extension.rs index d201b523..3240c5f2 100644 --- a/plonky2/src/gadgets/arithmetic_extension.rs +++ b/plonky2/src/gadgets/arithmetic_extension.rs @@ -12,6 +12,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator}; use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::util::bits_u64; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -527,7 +528,7 @@ impl, const D: usize> SimpleGenerator dst.write_target_ext(self.quotient) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let numerator = src.read_target_ext()?; let denominator = src.read_target_ext()?; let quotient = src.read_target_ext()?; diff --git a/plonky2/src/gadgets/range_check.rs b/plonky2/src/gadgets/range_check.rs index 4a4617b6..b894f37d 100644 --- a/plonky2/src/gadgets/range_check.rs +++ b/plonky2/src/gadgets/range_check.rs @@ -7,6 +7,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator}; use crate::iop::target::{BoolTarget, Target}; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::util::serialization::{Buffer, IoResult, Read, Write}; impl, const D: usize> CircuitBuilder { @@ -85,7 +86,7 @@ impl, const D: usize> SimpleGenerator for Low dst.write_target(self.high) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let integer = src.read_target()?; let n_log = src.read_usize()?; let low = src.read_target()?; diff --git a/plonky2/src/gadgets/split_base.rs b/plonky2/src/gadgets/split_base.rs index 1b375138..82fed22c 100644 --- a/plonky2/src/gadgets/split_base.rs +++ b/plonky2/src/gadgets/split_base.rs @@ -11,6 +11,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator}; use crate::iop::target::{BoolTarget, Target}; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::util::log_floor; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -114,7 +115,7 @@ impl, const B: usize, const D: usize> SimpleGenerat dst.write_target_bool_vec(&self.limbs) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let limbs = src.read_target_bool_vec()?; Ok(Self { row, limbs }) @@ -124,6 +125,7 @@ impl, const B: usize, const D: usize> SimpleGenerat #[cfg(test)] mod tests { use anyhow::Result; + use plonky2_field::types::Field; use rand::rngs::OsRng; use rand::Rng; diff --git a/plonky2/src/gadgets/split_join.rs b/plonky2/src/gadgets/split_join.rs index 919cba95..8dc28f98 100644 --- a/plonky2/src/gadgets/split_join.rs +++ b/plonky2/src/gadgets/split_join.rs @@ -8,6 +8,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator}; use crate::iop::target::{BoolTarget, Target}; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::util::ceil_div_usize; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -91,7 +92,7 @@ impl, const D: usize> SimpleGenerator for Spl dst.write_target_vec(&self.bits) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let integer = src.read_target()?; let bits = src.read_target_vec()?; Ok(Self { integer, bits }) @@ -147,7 +148,7 @@ impl, const D: usize> SimpleGenerator for Wir dst.write_usize(self.num_limbs) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let integer = src.read_target()?; let gates = src.read_usize_vec()?; let num_limbs = src.read_usize()?; diff --git a/plonky2/src/gates/arithmetic_base.rs b/plonky2/src/gates/arithmetic_base.rs index 62d5ebac..0156e9ec 100644 --- a/plonky2/src/gates/arithmetic_base.rs +++ b/plonky2/src/gates/arithmetic_base.rs @@ -13,7 +13,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked, @@ -228,7 +228,7 @@ impl, const D: usize> SimpleGenerator dst.write_usize(self.i) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let const_0 = src.read_field()?; let const_1 = src.read_field()?; diff --git a/plonky2/src/gates/arithmetic_extension.rs b/plonky2/src/gates/arithmetic_extension.rs index d1f789ac..c42a72e4 100644 --- a/plonky2/src/gates/arithmetic_extension.rs +++ b/plonky2/src/gates/arithmetic_extension.rs @@ -12,7 +12,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -221,7 +221,7 @@ impl, const D: usize> SimpleGenerator dst.write_usize(self.i) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let const_0 = src.read_field()?; let const_1 = src.read_field()?; diff --git a/plonky2/src/gates/base_sum.rs b/plonky2/src/gates/base_sum.rs index 66cff0d5..15cf4995 100644 --- a/plonky2/src/gates/base_sum.rs +++ b/plonky2/src/gates/base_sum.rs @@ -15,7 +15,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::plonk_common::{reduce_with_powers, reduce_with_powers_ext_circuit}; use crate::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, @@ -216,7 +216,7 @@ impl, const B: usize, const D: usize> SimpleGenerat dst.write_usize(self.num_limbs) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let num_limbs = src.read_usize()?; Ok(Self { row, num_limbs }) diff --git a/plonky2/src/gates/coset_interpolation.rs b/plonky2/src/gates/coset_interpolation.rs index a1409626..8351834c 100644 --- a/plonky2/src/gates/coset_interpolation.rs +++ b/plonky2/src/gates/coset_interpolation.rs @@ -17,6 +17,7 @@ use crate::iop::target::Target; use crate::iop::wire::Wire; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -501,7 +502,7 @@ impl, const D: usize> SimpleGenerator self.gate.serialize(dst) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let gate = CosetInterpolationGate::deserialize(src)?; Ok(Self::new(row, gate)) diff --git a/plonky2/src/gates/exponentiation.rs b/plonky2/src/gates/exponentiation.rs index d7ba936b..a39a14df 100644 --- a/plonky2/src/gates/exponentiation.rs +++ b/plonky2/src/gates/exponentiation.rs @@ -17,7 +17,7 @@ use crate::iop::target::Target; use crate::iop::wire::Wire; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked, @@ -300,7 +300,7 @@ impl, const D: usize> SimpleGenerator self.gate.serialize(dst) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let gate = ExponentiationGate::deserialize(src)?; Ok(Self { row, gate }) diff --git a/plonky2/src/gates/lookup.rs b/plonky2/src/gates/lookup.rs index 61db77fc..37b7087e 100644 --- a/plonky2/src/gates/lookup.rs +++ b/plonky2/src/gates/lookup.rs @@ -16,7 +16,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked, @@ -190,7 +190,7 @@ impl, const D: usize> SimpleGenerator for Loo dst.write_usize(self.slot_nb) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let lut = src.read_lut()?; let slot_nb = src.read_usize()?; diff --git a/plonky2/src/gates/lookup_table.rs b/plonky2/src/gates/lookup_table.rs index 6796dc0a..b53d805c 100644 --- a/plonky2/src/gates/lookup_table.rs +++ b/plonky2/src/gates/lookup_table.rs @@ -17,7 +17,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked, @@ -210,7 +210,7 @@ impl, const D: usize> SimpleGenerator for Loo dst.write_usize(self.last_lut_row) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let lut = src.read_lut()?; let slot_nb = src.read_usize()?; diff --git a/plonky2/src/gates/multiplication_extension.rs b/plonky2/src/gates/multiplication_extension.rs index 3aa69a5f..1a598cbe 100644 --- a/plonky2/src/gates/multiplication_extension.rs +++ b/plonky2/src/gates/multiplication_extension.rs @@ -12,7 +12,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -197,7 +197,7 @@ impl, const D: usize> SimpleGenerator dst.write_usize(self.i) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let const_0 = src.read_field()?; let i = src.read_usize()?; diff --git a/plonky2/src/gates/poseidon.rs b/plonky2/src/gates/poseidon.rs index ff2ecf2e..7b5fb6a3 100644 --- a/plonky2/src/gates/poseidon.rs +++ b/plonky2/src/gates/poseidon.rs @@ -17,6 +17,7 @@ use crate::iop::target::Target; use crate::iop::wire::Wire; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -516,7 +517,7 @@ impl + Poseidon, const D: usize> SimpleGenerator IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; Ok(Self { row, diff --git a/plonky2/src/gates/poseidon_mds.rs b/plonky2/src/gates/poseidon_mds.rs index ee5665de..927b10fc 100644 --- a/plonky2/src/gates/poseidon_mds.rs +++ b/plonky2/src/gates/poseidon_mds.rs @@ -16,6 +16,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -254,7 +255,7 @@ impl + Poseidon, const D: usize> SimpleGenerator IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; Ok(Self { row }) } diff --git a/plonky2/src/gates/random_access.rs b/plonky2/src/gates/random_access.rs index d5ae5b9d..114ae5f4 100644 --- a/plonky2/src/gates/random_access.rs +++ b/plonky2/src/gates/random_access.rs @@ -18,7 +18,7 @@ use crate::iop::target::Target; use crate::iop::wire::Wire; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::plonk::circuit_data::CircuitConfig; +use crate::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use crate::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked, @@ -400,7 +400,7 @@ impl, const D: usize> SimpleGenerator self.gate.serialize(dst) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let copy = src.read_usize()?; let gate = RandomAccessGate::::deserialize(src)?; diff --git a/plonky2/src/gates/reducing.rs b/plonky2/src/gates/reducing.rs index 2f02a747..1c196ede 100644 --- a/plonky2/src/gates/reducing.rs +++ b/plonky2/src/gates/reducing.rs @@ -12,6 +12,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -230,7 +231,7 @@ impl, const D: usize> SimpleGenerator for Red as Gate>::serialize(&self.gate, dst) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let gate = as Gate>::deserialize(src)?; Ok(Self { row, gate }) diff --git a/plonky2/src/gates/reducing_extension.rs b/plonky2/src/gates/reducing_extension.rs index 5b36aad0..2e35d54f 100644 --- a/plonky2/src/gates/reducing_extension.rs +++ b/plonky2/src/gates/reducing_extension.rs @@ -12,6 +12,7 @@ use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRe use crate::iop::target::Target; use crate::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use crate::plonk::circuit_builder::CircuitBuilder; +use crate::plonk::circuit_data::CommonCircuitData; use crate::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use crate::util::serialization::{Buffer, IoResult, Read, Write}; @@ -224,7 +225,7 @@ impl, const D: usize> SimpleGenerator for Red as Gate>::serialize(&self.gate, dst) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let gate = as Gate>::deserialize(src)?; Ok(Self { row, gate }) diff --git a/plonky2/src/iop/generator.rs b/plonky2/src/iop/generator.rs index c5f6074e..30cfdad2 100644 --- a/plonky2/src/iop/generator.rs +++ b/plonky2/src/iop/generator.rs @@ -114,7 +114,7 @@ pub trait WitnessGenerator, const D: usize>: fn serialize(&self, dst: &mut Vec) -> IoResult<()>; - fn deserialize(src: &mut Buffer) -> IoResult + fn deserialize(src: &mut Buffer, cd: &CommonCircuitData) -> IoResult where Self: Sized; } @@ -215,7 +215,7 @@ pub trait SimpleGenerator, const D: usize>: fn serialize(&self, dst: &mut Vec) -> IoResult<()>; - fn deserialize(src: &mut Buffer) -> IoResult + fn deserialize(src: &mut Buffer, cd: &CommonCircuitData) -> IoResult where Self: Sized; } @@ -254,9 +254,9 @@ impl, SG: SimpleGenerator, const D: usize> Wi self.inner.serialize(dst) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, cd: &CommonCircuitData) -> IoResult { Ok(Self { - inner: SG::deserialize(src)?, + inner: SG::deserialize(src, cd)?, _phantom: PhantomData, }) } @@ -288,7 +288,7 @@ impl, const D: usize> SimpleGenerator for Cop dst.write_target(self.dst) } - fn deserialize(source: &mut Buffer) -> IoResult { + fn deserialize(source: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let src = source.read_target()?; let dst = source.read_target()?; Ok(Self { src, dst }) @@ -319,7 +319,7 @@ impl, const D: usize> SimpleGenerator for Ran dst.write_target(self.target) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let target = src.read_target()?; Ok(Self { target }) } @@ -358,7 +358,7 @@ impl, const D: usize> SimpleGenerator for Non dst.write_target(self.dummy) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let to_test = src.read_target()?; let dummy = src.read_target()?; Ok(Self { to_test, dummy }) @@ -400,7 +400,7 @@ impl, const D: usize> SimpleGenerator for Con dst.write_field(self.constant) } - fn deserialize(src: &mut Buffer) -> IoResult { + fn deserialize(src: &mut Buffer, _cd: &CommonCircuitData) -> IoResult { let row = src.read_usize()?; let constant_index = src.read_usize()?; let wire_index = src.read_usize()?; diff --git a/plonky2/src/recursion/dummy_circuit.rs b/plonky2/src/recursion/dummy_circuit.rs index 2d9c48e4..aa1eb3c4 100644 --- a/plonky2/src/recursion/dummy_circuit.rs +++ b/plonky2/src/recursion/dummy_circuit.rs @@ -215,29 +215,6 @@ where } } -impl DummyProofGenerator -where - F: RichField + Extendable, - C: GenericConfig + 'static, - C::Hasher: AlgebraicHasher, -{ - pub fn deserialize_with_circuit_data( - src: &mut Buffer, - cd: &CommonCircuitData, - ) -> IoResult { - let proof_with_pis_target = src.read_target_proof_with_public_inputs()?; - let proof_with_pis = src.read_proof_with_public_inputs(cd)?; - let verifier_data_target = src.read_target_verifier_circuit()?; - let verifier_data = src.read_verifier_only_circuit_data()?; - Ok(Self { - proof_with_pis_target, - proof_with_pis, - verifier_data_target, - verifier_data, - }) - } -} - impl SimpleGenerator for DummyProofGenerator where F: RichField + Extendable, @@ -264,7 +241,16 @@ where dst.write_verifier_only_circuit_data(&self.verifier_data) } - fn deserialize(_src: &mut Buffer) -> IoResult { - panic!() + fn deserialize(src: &mut Buffer, cd: &CommonCircuitData) -> IoResult { + let proof_with_pis_target = src.read_target_proof_with_public_inputs()?; + let proof_with_pis = src.read_proof_with_public_inputs(cd)?; + let verifier_data_target = src.read_target_verifier_circuit()?; + let verifier_data = src.read_verifier_only_circuit_data()?; + Ok(Self { + proof_with_pis_target, + proof_with_pis, + verifier_data_target, + verifier_data, + }) } } diff --git a/plonky2/src/util/serialization/generator_serialization.rs b/plonky2/src/util/serialization/generator_serialization.rs index 4f35510e..fb9357b8 100644 --- a/plonky2/src/util/serialization/generator_serialization.rs +++ b/plonky2/src/util/serialization/generator_serialization.rs @@ -28,17 +28,9 @@ macro_rules! read_generator_impl { let buf = $buf; let mut i = 0..; - if tag == 0 { - let generator: $crate::recursion::dummy_circuit::DummyProofGenerator = - $crate::recursion::dummy_circuit::DummyProofGenerator::deserialize_with_circuit_data(buf, $common)?; - return Ok($crate::iop::generator::WitnessGeneratorRef::::new( - $crate::iop::generator::SimpleGenerator::::adapter(generator), - )); - } - $(if tag == i.next().unwrap() { let generator = - <$generator_types as $crate::iop::generator::SimpleGenerator>::deserialize(buf)?; + <$generator_types as $crate::iop::generator::SimpleGenerator>::deserialize(buf, $common)?; Ok($crate::iop::generator::WitnessGeneratorRef::::new( $crate::iop::generator::SimpleGenerator::::adapter(generator), ))