UNPKG

@solarity/zkit

Version:
30 lines 1.57 kB
import { Groth16ProofStruct, Groth16CalldataStruct } from "./groth16"; import { PlonkProofStruct, PlonkCalldataStruct } from "./plonk"; import { VerifierLanguageType } from "../circuit-zkit"; export * from "./groth16"; export * from "./plonk"; export interface IProtocolImplementer<T extends ProvingSystemType> { createVerifier(vKeyFilePath: string, verifierFilePath: string, languageExtension: VerifierLanguageType): Promise<void>; generateProof(zKeyFilePath: string, witnessFilePath: string): Promise<ProofStructByProtocol<T>>; verifyProof(proof: ProofStructByProtocol<T>, vKeyFilePath: string): Promise<boolean>; generateCalldata(proof: ProofStructByProtocol<T>): Promise<CalldataByProtocol<T>>; getProvingSystemType(): ProvingSystemType; getTemplate(fileExtension: VerifierLanguageType): string; getVerifierName(circuitName: string, verifierNameSuffix?: string): string; getZKeyFileName(circuitName: string): string; getVKeyFileName(circuitName: string): string; } export interface ProvingSystemStructMap { groth16: { proofStruct: Groth16ProofStruct; calldataStruct: Groth16CalldataStruct; }; plonk: { proofStruct: PlonkProofStruct; calldataStruct: PlonkCalldataStruct; }; } export type ProvingSystemType = keyof ProvingSystemStructMap; export type ProofStructByProtocol<T extends ProvingSystemType> = ProvingSystemStructMap[T]["proofStruct"]; export type CalldataByProtocol<T extends ProvingSystemType> = ProvingSystemStructMap[T]["calldataStruct"]; //# sourceMappingURL=index.d.ts.map