UNPKG

@nori-zk/proof-conversion

Version:

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

27 lines 1.1 kB
import { ZkProgram, Field, Poseidon } from 'o1js'; import { Accumulator } from '../accumulator.js'; import { preparePairing_0 } from '../piop/plonk_utils.js'; import { VK } from '../vk.js'; const zkp11 = ZkProgram({ name: 'zkp11', publicInput: Field, publicOutput: Field, methods: { compute: { privateInputs: [Accumulator], async method(input, acc) { const inDigest = Poseidon.hashPacked(Accumulator, acc); inDigest.assertEquals(input); const [kzg_cm_x, kzg_cm_y, neg_fq_x, neg_fq_y] = preparePairing_0(VK, acc.proof, acc.state.kzg_random, acc.state.cm_x, acc.state.cm_y, acc.state.cm_opening); acc.state.kzg_cm_x = kzg_cm_x; acc.state.kzg_cm_y = kzg_cm_y; acc.state.neg_fq_x = neg_fq_x; acc.state.neg_fq_y = neg_fq_y; return { publicOutput: Poseidon.hashPacked(Accumulator, acc) }; }, }, }, }); const ZKP11Proof = ZkProgram.Proof(zkp11); export { ZKP11Proof, zkp11 }; //# sourceMappingURL=zkp11.js.map