UNPKG

@nori-zk/proof-conversion

Version:

Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof

24 lines 964 B
import { ZkProgram, Field, Poseidon } from 'o1js'; import { Accumulator } from '../accumulator.js'; import { fold_quotient_split_0 } from '../piop/plonk_utils.js'; const zkp2 = ZkProgram({ name: 'zkp2', publicInput: Field, publicOutput: Field, methods: { compute: { privateInputs: [Accumulator], async method(input, acc) { const inDigest = Poseidon.hashPacked(Accumulator, acc); inDigest.assertEquals(input); const [hx, hy] = fold_quotient_split_0(acc.proof.h0_x, acc.proof.h0_y, acc.proof.h1_x, acc.proof.h1_y, acc.proof.h2_x, acc.proof.h2_y, acc.fs.zeta, acc.state.zeta_pow_n); acc.state.hx = hx; acc.state.hy = hy; return { publicOutput: Poseidon.hashPacked(Accumulator, acc) }; }, }, }, }); const ZKP2Proof = ZkProgram.Proof(zkp2); export { ZKP2Proof, zkp2 }; //# sourceMappingURL=zkp2.js.map