arbo/testvectors/circom/test/circuits/smt-proof-processor_test.circom
testvectors/circom/test/circuits/smt-proof-processor_test.circomRaw
1include "../../node_modules/circomlib/circuits/comparators.circom";
2include "../../node_modules/circomlib/circuits/poseidon.circom";
3include "../../node_modules/circomlib/circuits/smt/smtprocessor.circom";
4
5template SMTProcessorTest(nLevels) {
6 signal input newKey;
7 signal input newValue;
8 signal private input oldKey;
9 signal private input oldValue;
10 signal private input isOld0;
11 signal private input siblings[nLevels];
12 signal input oldRoot;
13 signal input newRoot;
14
15 component smtProcessor = SMTProcessor(nLevels);
16 smtProcessor.oldRoot <== oldRoot;
17 smtProcessor.newRoot <== newRoot;
18 for (var i=0; i<nLevels; i++) {
19 smtProcessor.siblings[i] <== siblings[i];
20 }
21 smtProcessor.oldKey <== oldKey;
22 smtProcessor.oldValue <== oldValue;
23 smtProcessor.isOld0 <== isOld0;
24 smtProcessor.newKey <== newKey;
25 smtProcessor.newValue <== newValue;
26 smtProcessor.fnc[0] <== 1;
27 smtProcessor.fnc[1] <== 0;
28}