Skip to main content

Proof

Extended by

Type parameters

Input

Output

Constructors

new Proof(__namedParameters)

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>

Source

lib/proof-system/zkprogram.ts:140

Properties

maxProofsVerified

maxProofsVerified: 0 | 1 | 2;

Source

lib/proof-system/zkprogram.ts:95


proof

proof: unknown;

Source

lib/proof-system/zkprogram.ts:94


publicInput

publicInput: Input;

Source

lib/proof-system/zkprogram.ts:92


publicOutput

publicOutput: Output;

Source

lib/proof-system/zkprogram.ts:93


shouldVerify

shouldVerify: Bool;

Source

lib/proof-system/zkprogram.ts:96


publicInputType

static publicInputType: FlexibleProvablePure<any>;

Source

lib/proof-system/zkprogram.ts:84


publicOutputType

static publicOutputType: FlexibleProvablePure<any>;

Source

lib/proof-system/zkprogram.ts:85


tag()

static tag: () => {
name: string;
};

Returns

{
name: string;
}
name
name: string;

Source

lib/proof-system/zkprogram.ts:86

Methods

toJSON()

toJSON(): JsonProof

Returns

JsonProof

Source

lib/proof-system/zkprogram.ts:104


verify()

verify(): void

Returns

void

Source

lib/proof-system/zkprogram.ts:98


verifyIf()

verifyIf(condition: Bool): void

Parameters

condition: Bool

Returns

void

Source

lib/proof-system/zkprogram.ts:101


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:178


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"]>>>

Source

lib/proof-system/zkprogram.ts:113