@nori-zk/proof-conversion
Version:
Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof
24 lines • 964 B
JavaScript
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