Proof
Extends
ProofBase\<Input,Output>
Type parameters
• Input
• Output
Constructors
new Proof()
new Proof<Input, Output>(__namedParameters: {
"maxProofsVerified": 0 | 1 | 2;
"proof": unknown;
"publicInput": Input;
"publicOutput": Output;
}): Proof<Input, Output>
Parameters
• __namedParameters
• __namedParameters.maxProofsVerified: 0 | 1 | 2
• __namedParameters.proof: unknown
• __namedParameters.publicInput: Input
• __namedParameters.publicOutput: Output
Returns
Proof\<Input, Output>
Inherited from
Source
lib/proof-system/zkprogram.ts:233
Properties
maxProofsVerified
maxProofsVerified: 0 | 1 | 2;
Inherited from
Source
lib/proof-system/zkprogram.ts:220
proof
proof: unknown;
Inherited from
Source
lib/proof-system/zkprogram.ts:219
publicInput
publicInput: Input;
Inherited from
Source
lib/proof-system/zkprogram.ts:217
publicOutput
publicOutput: Output;
Inherited from
Source
lib/proof-system/zkprogram.ts:218
shouldVerify
shouldVerify: Bool;
Inherited from
Source
lib/proof-system/zkprogram.ts:221
publicInputType
static publicInputType: FlexibleProvablePure<any>;
Inherited from
Source
lib/proof-system/zkprogram.ts:209
publicOutputType
static publicOutputType: FlexibleProvablePure<any>;
Inherited from
Source
lib/proof-system/zkprogram.ts:210
tag()
static tag: () => {
"name": string;
};
Returns
{
"name": string;
}
name
name: string;
Inherited from
Source
lib/proof-system/zkprogram.ts:211
Methods
toJSON()
toJSON(): JsonProof
Returns
Inherited from
Source
lib/proof-system/zkprogram.ts:223
verify()
verify(): void
Returns
void
Source
lib/proof-system/zkprogram.ts:252
verifyIf()
verifyIf(condition: Bool): void
Parameters
• condition: Bool
Returns
void
Source
lib/proof-system/zkprogram.ts:255
dummy()
static dummy<Input, OutPut>(
publicInput: Input,
publicOutput: OutPut,
maxProofsVerified: 0 | 1 | 2,
domainLog2: number): Promise<Proof<Input, OutPut>>
Dummy proof. This can be useful for ZkPrograms that handle the base case in the same method as the inductive case, using a pattern like this:
method(proof: SelfProof<I, O>, isRecursive: Bool) {
proof.verifyIf(isRecursive);
// ...
}
To use such a method in the base case, you need a dummy proof:
let dummy = await MyProof.dummy(publicInput, publicOutput, 1);
await myProgram.myMethod(dummy, Bool(false));
Note: The types of publicInput and publicOutput, as well as the maxProofsVerified parameter,
must match your ZkProgram. maxProofsVerified is the maximum number of proofs that any of your methods take as arguments.
Type parameters
• Input
• OutPut
Parameters
• publicInput: Input
• publicOutput: OutPut
• maxProofsVerified: 0 | 1 | 2
• domainLog2: number= 14
Returns
Promise\<Proof\<Input, OutPut>>
Source
lib/proof-system/zkprogram.ts:307
fromJSON()
static fromJSON<S>(this: S, __namedParameters: JsonProof): Promise<Proof<InferProvable<S["publicInputType"]>, InferProvable<S["publicOutputType"]>>>
Type parameters
• S extends Subclass\<typeof Proof>
Parameters
• this: S
• __namedParameters: JsonProof
Returns
Promise\<Proof\<InferProvable\<S["publicInputType"]>, InferProvable\<S["publicOutputType"]>>>