circomlib/test/helpers/printsignal.js

22 lines
617 B
JavaScript
Raw Permalink Normal View History

2023-09-11 21:43:48 -07:00
const snarkjs = require("@tornado/snarkjs");
2018-12-06 17:32:49 +01:00
const bigInt = snarkjs.bigInt;
module.exports = function hexBits(cir, witness, sig, nBits) {
let v = bigInt(0);
2023-09-11 21:43:48 -07:00
for (let i = nBits - 1; i >= 0; i--) {
2018-12-06 17:32:49 +01:00
v = v.shiftLeft(1);
2023-09-11 21:43:48 -07:00
const name = sig + "[" + i + "]";
2018-12-06 17:32:49 +01:00
const idx = cir.getSignalIdx(name);
const vbit = bigInt(witness[idx].toString());
if (vbit.equals(bigInt(1))) {
v = v.add(bigInt(1));
} else if (vbit.equals(bigInt(0))) {
v;
} else {
2023-09-11 21:43:48 -07:00
console.log("Not Binary: " + name);
2018-12-06 17:32:49 +01:00
}
}
return v.toString(16);
};