arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
gnark-plonky2-verifier/plonk/plonk_test.go
plonk/plonk_test.goRaw
 1package plonk_test
 2
 3import (
 4	"testing"
 5
 6	"github.com/consensys/gnark-crypto/ecc"
 7	"github.com/consensys/gnark/frontend"
 8	"github.com/consensys/gnark/test"
 9	"github.com/succinctlabs/gnark-plonky2-verifier/plonk"
10	"github.com/succinctlabs/gnark-plonky2-verifier/verifier"
11)
12
13type TestPlonkCircuit struct {
14	proofWithPIsFilename            string `gnark:"-"`
15	commonCircuitDataFilename       string `gnark:"-"`
16	verifierOnlyCircuitDataFilename string `gnark:"-"`
17}
18
19func (circuit *TestPlonkCircuit) Define(api frontend.API) error {
20	proofWithPis := verifier.DeserializeProofWithPublicInputs(circuit.proofWithPIsFilename)
21	commonCircuitData := verifier.DeserializeCommonCircuitData(circuit.commonCircuitDataFilename)
22	verifierOnlyCircuitData := verifier.DeserializeVerifierOnlyCircuitData(circuit.verifierOnlyCircuitDataFilename)
23
24	verifierChip := verifier.NewVerifierChip(api, commonCircuitData)
25	publicInputsHash := verifierChip.GetPublicInputsHash(proofWithPis.PublicInputs)
26	proofChallenges := verifierChip.GetChallenges(proofWithPis.Proof, publicInputsHash, commonCircuitData, verifierOnlyCircuitData)
27
28	plonkChip := plonk.NewPlonkChip(
29		api,
30		commonCircuitData,
31	)
32
33	plonkChip.Verify(proofChallenges, proofWithPis.Proof.Openings, publicInputsHash)
34	return nil
35}
36
37func TestPlonkDecodeBlock(t *testing.T) {
38	assert := test.NewAssert(t)
39
40	testCase := func() {
41		circuit := TestPlonkCircuit{
42			proofWithPIsFilename:            "../../data/decode_block/proof_with_public_inputs.json",
43			commonCircuitDataFilename:       "../../data/decode_block/common_circuit_data.json",
44			verifierOnlyCircuitDataFilename: "../../data/decode_block/verifier_only_circuit_data.json",
45		}
46		witness := TestPlonkCircuit{}
47		err := test.IsSolved(&circuit, &witness, ecc.BN254.ScalarField())
48		assert.NoError(err)
49	}
50
51	testCase()
52}