UNPKG

typecccccccccccc

Version:

p align="center" > <img src="https://xord.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F283b98b7-fdae-4e5a-acaf-248242084e4a%2FICON.png?table=block&id=5306223c-a4f7-45d1-9f54-b9a5f4004cd6&spaceId=49976899-64a1-40f

34 lines (25 loc) 758 B
const path = require('path'); const { plonk } = require('snarkjs'); const prove = async (witness) => { const wasmPath = path.join( __dirname, "../build/Multiplier/Multiplier_js/Multiplier.wasm" ); const zkeyPath = path.join( __dirname, "../build/Multiplier/Multiplier.zkey" ); const { proof: _proof, publicSignals: _publicSignals } = await plonk.fullProve( witness, wasmPath, zkeyPath ); const calldata = await plonk.exportSolidityCallData(_proof, _publicSignals) const calldataSplit = calldata.split(","); const [proof, ...rest] = calldataSplit; const publicSignals = JSON.parse(rest.join(",")).map((x) => BigInt(x).toString() ); return { proof, publicSignals }; }; module.exports = { prove }