arnaucube
arnaucube/websnarkPublic Self-hosted repository
websnark/tools/buildpkey_cli.js
tools/buildpkey_cli.jsRaw
 1const {unstringifyBigInts} = require("./stringifybigint.js");
 2const buildPKey = require("./buildpkey.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 "proving_key.json" -o "proving_key.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 : "proving_key.json";
24const outputName = (argv.output) ? argv.output : "proving_key.bin";
25
26
27const provingKey = unstringifyBigInts(JSON.parse(fs.readFileSync(inputName, "utf8")));
28
29const bin = buildPKey(provingKey);
30
31var wstream = fs.createWriteStream(outputName);
32wstream.write(bin);
33wstream.end();
34