gnark-plonky2-verifier/verifier/verifier_test.go
verifier/verifier_test.goRaw
1package verifier_test
2
3import (
4 "testing"
5
6 "github.com/consensys/gnark/frontend"
7 "github.com/consensys/gnark/test"
8 "github.com/succinctlabs/gnark-plonky2-verifier/field"
9 "github.com/succinctlabs/gnark-plonky2-verifier/verifier"
10 "github.com/succinctlabs/gnark-plonky2-verifier/verifier/utils"
11)
12
13type TestVerifierCircuit struct {
14 proofWithPIsFilename string `gnark:"-"`
15 commonCircuitDataFilename string `gnark:"-"`
16 verifierOnlyCircuitDataFilename string `gnark:"-"`
17}
18
19func (c *TestVerifierCircuit) Define(api frontend.API) error {
20 proofWithPis := utils.DeserializeProofWithPublicInputs(c.proofWithPIsFilename)
21 commonCircuitData := utils.DeserializeCommonCircuitData(c.commonCircuitDataFilename)
22 verfierOnlyCircuitData := utils.DeserializeVerifierOnlyCircuitData(c.verifierOnlyCircuitDataFilename)
23
24 verifierChip := verifier.NewVerifierChip(api, commonCircuitData)
25 verifierChip.Verify(proofWithPis, verfierOnlyCircuitData, commonCircuitData)
26 return nil
27}
28
29func TestDecodeBlockVerifier(t *testing.T) {
30 assert := test.NewAssert(t)
31
32 testCase := func() {
33 circuit := TestVerifierCircuit{
34 proofWithPIsFilename: "./data/decode_block/proof_with_public_inputs.json",
35 commonCircuitDataFilename: "./data/decode_block/common_circuit_data.json",
36 verifierOnlyCircuitDataFilename: "./data/decode_block/verifier_only_circuit_data.json",
37 }
38
39 witness := TestVerifierCircuit{}
40 err := test.IsSolved(&circuit, &witness, field.TEST_CURVE.ScalarField())
41 assert.NoError(err)
42 }
43 testCase()
44}