|
package verifier_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/consensys/gnark/frontend"
|
|
"github.com/consensys/gnark/test"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/field"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/verifier"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/verifier/utils"
|
|
)
|
|
|
|
type TestVerifierCircuit struct {
|
|
proofWithPIsFilename string `gnark:"-"`
|
|
commonCircuitDataFilename string `gnark:"-"`
|
|
verifierOnlyCircuitDataFilename string `gnark:"-"`
|
|
}
|
|
|
|
func (c *TestVerifierCircuit) Define(api frontend.API) error {
|
|
proofWithPis := utils.DeserializeProofWithPublicInputs(c.proofWithPIsFilename)
|
|
commonCircuitData := utils.DeserializeCommonCircuitData(c.commonCircuitDataFilename)
|
|
verfierOnlyCircuitData := utils.DeserializeVerifierOnlyCircuitData(c.verifierOnlyCircuitDataFilename)
|
|
|
|
verifierChip := verifier.NewVerifierChip(api, commonCircuitData)
|
|
verifierChip.Verify(proofWithPis, verfierOnlyCircuitData, commonCircuitData)
|
|
return nil
|
|
}
|
|
|
|
func TestDecodeBlockVerifier(t *testing.T) {
|
|
assert := test.NewAssert(t)
|
|
|
|
testCase := func() {
|
|
circuit := TestVerifierCircuit{
|
|
proofWithPIsFilename: "./data/decode_block/proof_with_public_inputs.json",
|
|
commonCircuitDataFilename: "./data/decode_block/common_circuit_data.json",
|
|
verifierOnlyCircuitDataFilename: "./data/decode_block/verifier_only_circuit_data.json",
|
|
}
|
|
|
|
witness := TestVerifierCircuit{}
|
|
err := test.IsSolved(&circuit, &witness, field.TEST_CURVE.ScalarField())
|
|
assert.NoError(err)
|
|
}
|
|
testCase()
|
|
}
|