mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 23:27:56 -05:00
53 lines
737 B
Plaintext
53 lines
737 B
Plaintext
constant one 0x0000000000000000000000000000000000000000000000000000000000000001
|
|
|
|
contract tutorial_contract
|
|
param w
|
|
param a
|
|
param b
|
|
|
|
private m
|
|
set m a
|
|
mul m b
|
|
|
|
# ab = m
|
|
lc0_add a
|
|
lc1_add b
|
|
lc2_add m
|
|
enforce
|
|
|
|
# v = wab ...
|
|
public v
|
|
set v w
|
|
mul v a
|
|
mul v b
|
|
|
|
# v = wab + a + b ...
|
|
add v a
|
|
add v b
|
|
|
|
# v = wab + a + b - v'
|
|
# v' = w(a + b)
|
|
local vprime
|
|
set vprime a
|
|
add vprime b
|
|
mul vprime w
|
|
sub v vprime
|
|
|
|
# w(m - a - b) = v - a - b
|
|
lc0_add w
|
|
lc1_add m
|
|
lc1_sub a
|
|
lc1_sub b
|
|
lc2_add v
|
|
lc2_sub a
|
|
lc2_sub b
|
|
enforce
|
|
|
|
# Binary check that w^2 = w
|
|
lc0_add w
|
|
lc1_add w
|
|
lc2_add w
|
|
enforce
|
|
end
|
|
|