Skip to content

Commit b0eafc5

Browse files
authored
use only one randomness to work with circuit params (#17)
1 parent 2b9c225 commit b0eafc5

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

examples/poseidon_m31/main.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ const NumRepeat = 120
2222
type MockPoseidonM31Circuit struct {
2323
State [NumRepeat][16]frontend.Variable
2424
Digest [NumRepeat]frontend.Variable `gnark:",public"`
25+
Params *poseidon.PoseidonParams
2526
}
2627

2728
func (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

Comments
 (0)