arnaucube
arnaucube/go-circom-prover-verifierPublic Self-hosted repository
go-circom-prover-verifier/prover.go
prover.goRaw
 1package gocircomprover
 2
 3import (
 4	"math/big"
 5
 6	bn256 "github.com/ethereum/go-ethereum/crypto/bn256/cloudflare"
 7)
 8
 9type Proof struct {
10	A *bn256.G1
11	B *bn256.G2
12	C *bn256.G1
13}
14
15type ProvingKey struct {
16	A          []*bn256.G1
17	B2         []*bn256.G2
18	B1         []*bn256.G1
19	C          []*bn256.G1
20	NVars      int
21	NPublic    int
22	VkAlpha1   *bn256.G1
23	VkDelta1   *bn256.G1
24	VkBeta1    *bn256.G1
25	VkBeta2    *bn256.G2
26	VkDelta2   *bn256.G2
27	HExps      []*bn256.G1
28	DomainSize int
29	PolsA      []map[int]*big.Int
30	PolsB      []map[int]*big.Int
31	PolsC      []map[int]*big.Int
32}
33
34type Witness []*big.Int
35
36var R, _ = new(big.Int).SetString("21888242871839275222246405745257275088548364400416034343698204186575808495617", 10)