|
include "../../node_modules/circomlib/circuits/comparators.circom";
|
|
include "../../node_modules/circomlib/circuits/poseidon.circom";
|
|
include "../../node_modules/circomlib/circuits/smt/smtprocessor.circom";
|
|
|
|
template SMTProcessorTest(nLevels) {
|
|
signal input newKey;
|
|
signal input newValue;
|
|
signal private input oldKey;
|
|
signal private input oldValue;
|
|
signal private input isOld0;
|
|
signal private input siblings[nLevels];
|
|
signal input oldRoot;
|
|
signal input newRoot;
|
|
|
|
component smtProcessor = SMTProcessor(nLevels);
|
|
smtProcessor.oldRoot <== oldRoot;
|
|
smtProcessor.newRoot <== newRoot;
|
|
for (var i=0; i<nLevels; i++) {
|
|
smtProcessor.siblings[i] <== siblings[i];
|
|
}
|
|
smtProcessor.oldKey <== oldKey;
|
|
smtProcessor.oldValue <== oldValue;
|
|
smtProcessor.isOld0 <== isOld0;
|
|
smtProcessor.newKey <== newKey;
|
|
smtProcessor.newValue <== newValue;
|
|
smtProcessor.fnc[0] <== 1;
|
|
smtProcessor.fnc[1] <== 0;
|
|
}
|