Skip to main content

Proof

Extends

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

ProofBase.constructor

Source

lib/proof-system/zkprogram.ts:111

Properties

maxProofsVerified

maxProofsVerified: 0 | 1 | 2;

Inherited from

ProofBase.maxProofsVerified

Source

lib/proof-system/zkprogram.ts:98


proof

proof: unknown;

Inherited from

ProofBase.proof

Source

lib/proof-system/zkprogram.ts:97


publicInput

publicInput: Input;

Inherited from

ProofBase.publicInput

Source

lib/proof-system/zkprogram.ts:95


publicOutput

publicOutput: Output;

Inherited from

ProofBase.publicOutput

Source

lib/proof-system/zkprogram.ts:96


shouldVerify

shouldVerify: Bool;

Inherited from

ProofBase.shouldVerify

Source

lib/proof-system/zkprogram.ts:99


publicInputType

static publicInputType: FlexibleProvablePure<any>;

Inherited from

ProofBase.publicInputType

Source

lib/proof-system/zkprogram.ts:87


publicOutputType

static publicOutputType: FlexibleProvablePure<any>;

Inherited from

ProofBase.publicOutputType

Source

lib/proof-system/zkprogram.ts:88


tag()

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

Returns

{
"name": string;
}
name
name: string;

Inherited from

ProofBase.tag

Source

lib/proof-system/zkprogram.ts:89

Methods

toJSON()

toJSON(): JsonProof

Returns

JsonProof

Inherited from

ProofBase.toJSON

Source

lib/proof-system/zkprogram.ts:101


verify()

verify(): void

Returns

void

Source

lib/proof-system/zkprogram.ts:130


verifyIf()

verifyIf(condition: Bool): void

Parameters

condition: Bool

Returns

void

Source

lib/proof-system/zkprogram.ts:133


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


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