arnaucube
arnaucube/circomlibPublic Self-hosted repository
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};