You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1012 B

3 years ago
  1. #!/usr/bin/env node
  2. const fs = require("fs");
  3. const {stringifyBigInts, unstringifyBigInts} = require("snarkjs");
  4. const WitnessCalculatorBuilder = require("./witness_calculator.js");
  5. // const wasmName = "smtverifier10.wasm"
  6. // const inputName = "smtverifier10-input.json"
  7. const wasmName = "nconstraints.wasm"
  8. const inputName = "nconstraints-input.json"
  9. async function run () {
  10. const wasm = await fs.promises.readFile(wasmName);
  11. const input = unstringifyBigInts(JSON.parse(await fs.promises.readFile(inputName, "utf8")));
  12. console.log("input:", input);
  13. let options;
  14. const wc = await WitnessCalculatorBuilder(wasm, options);
  15. const w = await wc.calculateWitness(input);
  16. console.log("witness:\n", JSON.stringify(stringifyBigInts(w)));
  17. // const wb = await wc.calculateBinWitness(input);
  18. // console.log("witnessBin:", Buffer.from(wb).toString('hex'));
  19. // await fs.promises.writeFile(witnessName, JSON.stringify(stringifyBigInts(w), null, 1));
  20. }
  21. run().then(() => {
  22. process.exit();
  23. });