forked from Consensys/gnark
/
add.go
42 lines (33 loc) · 748 Bytes
/
add.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package circuits
import (
"github.com/consensys/gnark/frontend"
)
type addCircuit struct {
A, B, C, D frontend.Variable
Z frontend.Variable `gnark:",public"`
}
func (circuit *addCircuit) Define(api frontend.API) error {
a := api.Add(circuit.A, circuit.B, 3, circuit.C, "273823", circuit.D)
b := api.Add(circuit.A, 2)
c := api.Add(2, circuit.A)
d := api.Add(circuit.B, circuit.A)
api.AssertIsEqual(a, circuit.Z)
api.AssertIsEqual(b, 8)
api.AssertIsEqual(c, 8)
api.AssertIsEqual(d, 8)
return nil
}
func init() {
var circuit, good, bad addCircuit
good.A = 6
good.B = 2
good.C = 123
good.D = 76
good.Z = 274033
bad.A = 6
bad.B = 2
bad.C = 123
bad.D = 76
bad.Z = 1
addEntry("add", &circuit, &good, &bad, nil)
}