websnark/tools/buildwitness_cli.js
tools/buildwitness_cli.jsRaw
1const {unstringifyBigInts} = require("./stringifybigint.js");
2const buildWitness = require("./buildwitness.js");
3const fs = require("fs");
4
5const version = require("../package").version;
6
7const argv = require("yargs")
8 .version(version)
9 .usage(`node buildpkey.js -i "witness.json" -o "witness.bin"
10 Default: circuit.json
11 `)
12 .alias("i", "input")
13 .alias("o", "output")
14 .help("h")
15 .alias("h", "help")
16 .epilogue(`Copyright (C) 2018 0kims association
17 This program comes with ABSOLUTELY NO WARRANTY;
18 This is free software, and you are welcome to redistribute it
19 under certain conditions; see the COPYING file in the official
20 repo directory at https://github.com/iden3/circom `)
21 .argv;
22
23const inputName = (argv.input) ? argv.input : "witness.json";
24const outputName = (argv.output) ? argv.output : "witness.bin";
25
26const witness = unstringifyBigInts(JSON.parse(fs.readFileSync(inputName, "utf8")));
27
28const bin = buildWitness(witness);
29
30var wstream = fs.createWriteStream(outputName);
31wstream.write(bin);
32wstream.end();
33