]> Git Repo - VerusCoin.git/blame - src/zcash/circuit/gadget.tcc
Introduce new `libzcash` Zcash protocol API and crypto constructions surrounding...
[VerusCoin.git] / src / zcash / circuit / gadget.tcc
CommitLineData
369df065
SB
1template<typename FieldT, size_t NumInputs, size_t NumOutputs>
2class joinsplit_gadget : gadget<FieldT> {
3public:
4 joinsplit_gadget(protoboard<FieldT> &pb) : gadget<FieldT>(pb) {
5 pb_variable_array<FieldT> test;
6 test.allocate(pb, 1);
7 pb.set_input_sizes(1);
8
9 // TODO!
10 }
11
12 void generate_r1cs_constraints() {
13 // TODO!
14 }
15
16 void generate_r1cs_witness(
17 const uint256& phi,
18 const uint256& rt,
19 const uint256& h_sig,
20 const boost::array<JSInput, NumInputs>& inputs,
21 const boost::array<Note, NumOutputs>& outputs,
22 uint64_t vpub_old,
23 uint64_t vpub_new
24 ) {
25 // TODO!
26 }
27
28 static r1cs_primary_input<FieldT> witness_map(
29 const uint256& rt,
30 const uint256& h_sig,
31 const boost::array<uint256, NumInputs>& hmacs,
32 const boost::array<uint256, NumInputs>& nullifiers,
33 const boost::array<uint256, NumOutputs>& commitments,
34 uint64_t vpub_old,
35 uint64_t vpub_new
36 ) {
37 // todo
38
39 std::vector<FieldT> input_as_field_elements;
40 input_as_field_elements.push_back(FieldT::zero());
41
42 return input_as_field_elements;
43 }
44};
This page took 0.025692 seconds and 4 git commands to generate.