Skip to main content

Recursive

function Recursive<PublicInputType, PublicOutputType, PrivateInputs>(zkprogram: {
maxProofsVerified: () => Promise<0 | 1 | 2>;
name: string;
privateInputTypes: PrivateInputs;
publicInputType: PublicInputType;
publicOutputType: PublicOutputType;
rawMethods: { [Key in string | number | symbol]: (args: any) => Promise<{ publicOutput: InferProvable<PublicOutputType> }> };
} & { [Key in string | number | symbol]: (args: any) => Promise<{ proof: Proof<InferProvable<PublicInputType>, InferProvable<PublicOutputType>> }> }): { [Key in keyof PrivateInputs]: RecursiveProver<InferProvable<PublicInputType>, PublicInputType, InferProvable<PublicOutputType>, PrivateInputs[Key]> & { if: ConditionalRecursiveProver<InferProvable<PublicInputType>, PublicInputType, InferProvable<PublicOutputType>, PrivateInputs[Key]> } }

Defined in: index.ts:163

Type Parameters

PublicInputType extends Provable<any>

PublicOutputType extends Provable<any>

PrivateInputs extends {}

Parameters

zkprogram

{ maxProofsVerified: () => Promise<0 | 1 | 2>; name: string; privateInputTypes: PrivateInputs; publicInputType: PublicInputType; publicOutputType: PublicOutputType; rawMethods: { [Key in string | number | symbol]: (args: any) => Promise<{ publicOutput: InferProvable<PublicOutputType> }> }; } & { [Key in string | number | symbol]: (args: any) => Promise<{ proof: Proof<InferProvable<PublicInputType>, InferProvable<PublicOutputType>> }> }

Returns

{ [Key in keyof PrivateInputs]: RecursiveProver<InferProvable<PublicInputType>, PublicInputType, InferProvable<PublicOutputType>, PrivateInputs[Key]> & { if: ConditionalRecursiveProver<InferProvable<PublicInputType>, PublicInputType, InferProvable<PublicOutputType>, PrivateInputs[Key]> } }