@@ -22,14 +22,14 @@ const NumRepeat = 120
2222type MockPoseidonM31Circuit struct {
2323 State [NumRepeat ][16 ]frontend.Variable
2424 Digest [NumRepeat ]frontend.Variable `gnark:",public"`
25+ Params * poseidon.PoseidonParams
2526}
2627
2728func (c * MockPoseidonM31Circuit ) Define (api frontend.API ) (err error ) {
2829 // Define the circuit
29- param := poseidon .NewPoseidonParams ()
3030 engine := m31.Field {}
3131 for i := 0 ; i < NumRepeat ; i ++ {
32- digest := poseidon .PoseidonCircuit (api , engine , param , c .State [i ][:], true )
32+ digest := poseidon .PoseidonCircuit (api , engine , c . Params , c .State [i ][:], true )
3333 api .AssertIsEqual (digest , c .Digest [i ])
3434 }
3535
@@ -57,17 +57,15 @@ func M31CircuitBuild() {
5757 assignment := & MockPoseidonM31Circuit {
5858 State : stateVars ,
5959 Digest : outputVars ,
60+ Params : param ,
6061 }
6162
62- // Gnark test disabled as it does not support randomness
63- // err := test.IsSolved(&MockPoseidonCircuit{}, assignment, m31.ScalarField)
64- // if err != nil {
65- // panic(err)
66- // }
67- // fmt.Println("Gnark test passed")
68-
6963 // Ecc test
70- circuit , err := ExpanderCompilerCollection .Compile (m31 .ScalarField , & MockPoseidonM31Circuit {}, frontend .WithCompressThreshold (32 ))
64+ circuit , err := ExpanderCompilerCollection .Compile (m31 .ScalarField , & MockPoseidonM31Circuit {
65+ State : stateVars ,
66+ Digest : outputVars ,
67+ Params : param ,
68+ }, frontend .WithCompressThreshold (32 ))
7169 if err != nil {
7270 panic (err )
7371 }
0 commit comments