gnark-plonky2-verifier/plonky2_verifier/plonk_test.go
plonky2_verifier/plonk_test.goRaw
1package plonky2_verifier
2
3import (
4 . "gnark-ed25519/field"
5 "testing"
6
7 "github.com/consensys/gnark/frontend"
8 "github.com/consensys/gnark/test"
9)
10
11type TestPlonkCircuit struct{}
12
13func (circuit *TestPlonkCircuit) Define(api frontend.API) error {
14 proofWithPis := DeserializeProofWithPublicInputs("./data/fibonacci/proof_with_public_inputs.json")
15 commonCircuitData := DeserializeCommonCircuitData("./data/fibonacci/common_circuit_data.json")
16
17 field := NewFieldAPI(api)
18 qe := NewQuadraticExtensionAPI(field, commonCircuitData.DegreeBits)
19
20 // Challenge associated with the data from "/.data/fibonacci/*"
21 proofChallenges := ProofChallenges{
22 PlonkBetas: []F{
23 NewFieldElementFromString("4678728155650926271"),
24 NewFieldElementFromString("13611962404289024887"),
25 },
26 PlonkGammas: []F{
27 NewFieldElementFromString("13237663823305715949"),
28 NewFieldElementFromString("15389314098328235145"),
29 },
30 PlonkAlphas: []F{
31 NewFieldElementFromString("14505919539124304197"),
32 NewFieldElementFromString("1695455639263736117"),
33 },
34 PlonkZeta: QuadraticExtension{
35 NewFieldElementFromString("14887793628029982930"),
36 NewFieldElementFromString("1136137158284059037"),
37 },
38 }
39
40 plonkChip := NewPlonkChip(api, qe, commonCircuitData)
41
42 plonkChip.Verify(proofChallenges, proofWithPis.Proof.Openings)
43 return nil
44}
45
46func TestPlonkWitness(t *testing.T) {
47 assert := test.NewAssert(t)
48
49 testCase := func() {
50 circuit := TestPlonkCircuit{}
51 witness := TestPlonkCircuit{}
52 err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())
53 assert.NoError(err)
54 }
55
56 testCase()
57}