Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions plonky2/src/gates/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ pub mod multiplication_extension;
pub mod noop;
pub mod packed_util;
pub mod poseidon;
pub mod poseidon2;
pub mod poseidon_mds;
pub mod public_input;
pub mod random_access;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ use core::marker::PhantomData;

use anyhow::Result;

use super::config::*;
use super::hash::Poseidon2;
use crate::field::extension::Extendable;
use crate::field::types::Field;
use crate::gates::gate::Gate;
use crate::gates::util::StridedConstraintConsumer;
use crate::hash::hash_types::RichField;
use crate::hash::poseidon2::config::*;
use crate::hash::poseidon2::hash::Poseidon2;
use crate::iop::ext_target::ExtensionTarget;
use crate::iop::generator::{GeneratedValues, SimpleGenerator, WitnessGeneratorRef};
use crate::iop::target::Target;
Expand Down
3 changes: 2 additions & 1 deletion plonky2/src/hash/hash_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer};
use crate::field::goldilocks_field::GoldilocksField;
use crate::field::types::{Field, PrimeField64, Sample};
use crate::hash::poseidon::Poseidon;
use crate::hash::poseidon2::hash::Poseidon2;
use crate::iop::target::Target;
use crate::plonk::config::GenericHashOut;

/// A prime order field with the features we need to use it as a base field in our argument system.
pub trait RichField: PrimeField64 + Poseidon {}
pub trait RichField: PrimeField64 + Poseidon + Poseidon2 {}

impl RichField for GoldilocksField {}

Expand Down
2 changes: 1 addition & 1 deletion plonky2/src/hash/poseidon2/hash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ use core::fmt::Debug;
use plonky2_field::ops::Square;

use super::config::*;
use super::gate::Poseidon2Gate;
use crate::field::extension::{Extendable, FieldExtension};
use crate::field::goldilocks_field::GoldilocksField as F;
use crate::field::types::{Field, PrimeField64};
use crate::gates::poseidon2::Poseidon2Gate;
use crate::hash::hash_types::{HashOut, RichField};
use crate::hash::hashing::{compress, hash_n_to_hash_no_pad, PlonkyPermutation};
use crate::iop::ext_target::ExtensionTarget;
Expand Down
1 change: 0 additions & 1 deletion plonky2/src/hash/poseidon2/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
pub mod config;
pub mod gate;
pub mod hash;

#[cfg(test)]
Expand Down
7 changes: 6 additions & 1 deletion plonky2/src/util/serialization/gate_serialization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,14 @@ pub mod default {
use crate::gates::multiplication_extension::MulExtensionGate;
use crate::gates::noop::NoopGate;
use crate::gates::poseidon::PoseidonGate;
use crate::gates::poseidon2::Poseidon2Gate;
use crate::gates::poseidon_mds::PoseidonMdsGate;
use crate::gates::public_input::PublicInputGate;
use crate::gates::random_access::RandomAccessGate;
use crate::gates::reducing::ReducingGate;
use crate::gates::reducing_extension::ReducingExtensionGate;
use crate::hash::hash_types::RichField;
use crate::hash::poseidon2::hash::Poseidon2;
use crate::util::serialization::GateSerializer;
/// A gate serializer that can be used to serialize all default gates supported
/// by the `plonky2` library.
Expand All @@ -128,7 +130,9 @@ pub mod default {
/// the `GateSerializer` trait. This can be easily done through the `impl_gate_serializer` macro.
#[derive(Debug)]
pub struct DefaultGateSerializer;
impl<F: RichField + Extendable<D>, const D: usize> GateSerializer<F, D> for DefaultGateSerializer {
impl<F: RichField + Extendable<D> + Poseidon2, const D: usize> GateSerializer<F, D>
for DefaultGateSerializer
{
impl_gate_serializer! {
DefaultGateSerializer,
ArithmeticGate,
Expand All @@ -146,6 +150,7 @@ pub mod default {
NoopGate,
PoseidonMdsGate<F, D>,
PoseidonGate<F, D>,
Poseidon2Gate<F, D>,
PublicInputGate,
RandomAccessGate<F, D>,
ReducingExtensionGate<D>,
Expand Down
Loading