gnark-plonky2-verifier/plonky2_verifier/public_input.go
plonky2_verifier/public_input.goRaw
1package plonky2_verifier
2
3import (
4 . "gnark-plonky2-verifier/field"
5)
6
7type PublicInputGate struct {
8}
9
10func (p *PublicInputGate) WiresPublicInputsHash() []uint64 {
11 return []uint64{0, 1, 2, 3}
12}
13
14func (p *PublicInputGate) EvalUnfiltered(pc *PlonkChip, vars EvaluationVars) []QuadraticExtension {
15 constraints := []QuadraticExtension{}
16
17 wires := p.WiresPublicInputsHash()
18 hash_parts := vars.publicInputsHash.elements
19 for i := 0; i < 4; i++ {
20 wire := wires[i]
21 hash_part := hash_parts[i]
22
23 diff := pc.qeAPI.SubExtension(vars.localWires[wire], pc.qeAPI.FieldToQE(hash_part))
24 constraints = append(constraints, diff)
25 }
26
27 return constraints
28}