arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
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}