circomlib/test/helpers/printsignal.js
test/helpers/printsignal.jsRaw
1
2const snarkjs = require("snarkjs");
3
4const bigInt = snarkjs.bigInt;
5
6module.exports = function hexBits(cir, witness, sig, nBits) {
7 let v = bigInt(0);
8 for (let i=nBits-1; i>=0; i--) {
9 v = v.shiftLeft(1);
10 const name = sig+"["+i+"]";
11 const idx = cir.getSignalIdx(name);
12 const vbit = bigInt(witness[idx].toString());
13 if (vbit.equals(bigInt(1))) {
14 v = v.add(bigInt(1));
15 } else if (vbit.equals(bigInt(0))) {
16 v;
17 } else {
18 console.log("Not Binary: "+name);
19 }
20 }
21 return v.toString(16);
22};