@nori-zk/proof-conversion
Version:
Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof
33 lines • 1.17 kB
JavaScript
import { isString, isAffinePoint2d, isComplexAffinePoint2d, isField12, } from '../validation/guards/index.js';
// Runtime validation =========================================================================
const risc0Groth16ProofSchema = {
negA: isAffinePoint2d,
B: isComplexAffinePoint2d,
C: isAffinePoint2d,
pi1: isString,
pi2: isString,
pi3: isString,
pi4: isString,
pi5: isString,
};
const risc0Groth16VkSchema = {
alpha: isAffinePoint2d,
beta: isComplexAffinePoint2d,
gamma: isComplexAffinePoint2d,
delta: isComplexAffinePoint2d,
w27: isField12,
ic0: isAffinePoint2d,
ic1: isAffinePoint2d,
ic2: isAffinePoint2d,
ic3: isAffinePoint2d,
ic4: isAffinePoint2d,
ic5: isAffinePoint2d,
};
// Schema for obj form (risc0_proof + raw_vk)
export const risc0Groth16ObjInputSchema = {
risc0_proof: risc0Groth16ProofSchema,
raw_vk: risc0Groth16VkSchema,
};
// Keys for the ApiMethod helper - must match the keys in the schema - must be explicit tuples with 'as const' for proper type inference
export const risc0Groth16ArgKeys = ['risc0_proof', 'raw_vk'];
//# sourceMappingURL=schema.js.map