UNPKG

@0xpolygonid/js-sdk

Version:
56 lines (55 loc) 1.93 kB
import { ZKProof } from '@iden3/js-jwz'; import { ICircuitStorage } from '../../storage'; import { CircuitId } from '../../circuits'; /** * ZKProver is responsible for proof generation and verification * * @public * @interface ZKProver */ export interface IZKProver { /** * generates zero knowledge proof * * @param {Uint8Array} inputs - inputs that will be used for proof generation * @param {string} circuitId - circuit id for proof generation * @returns `Promise<ZKProof>` */ generate(inputs: Uint8Array, circuitId: string): Promise<ZKProof>; /** * verifies zero knowledge proof * * @param {ZKProof} zkp - zero knowledge proof that will be verified * @param {string} circuitId - circuit id for proof verification * @returns `Promise<boolean>` */ verify(zkp: ZKProof, circuitId: string): Promise<boolean>; } /** * NativeProver service responsible for zk generation and verification of groth16 algorithm with bn128 curve * @public * @class NativeProver * @implements implements IZKProver interface */ export declare class NativeProver implements IZKProver { private readonly _circuitStorage; private static readonly curveName; constructor(_circuitStorage: ICircuitStorage); /** * verifies zero knowledge proof * * @param {ZKProof} zkp - zero knowledge proof that will be verified * @param {string} circuitId - circuit id for proof verification * @returns `Promise<ZKProof>` */ verify(zkp: ZKProof, circuitId: CircuitId): Promise<boolean>; /** * generates zero knowledge proof * * @param {Uint8Array} inputs - inputs that will be used for proof generation * @param {string} circuitId - circuit id for proof generation * @returns `Promise<ZKProof>` */ generate(inputs: Uint8Array, circuitId: CircuitId): Promise<ZKProof>; private terminateCurve; }