SelfProof
Extends
Proof\<PublicInput,PublicOutput>
Type parameters
• PublicInput
• PublicOutput
Constructors
new SelfProof(__namedParameters)
new SelfProof<PublicInput, PublicOutput>(__namedParameters: {
maxProofsVerified: 0 | 1 | 2;
proof: unknown;
publicInput: PublicInput;
publicOutput: PublicOutput;
}): SelfProof<PublicInput, PublicOutput>
Parameters
• __namedParameters
• __namedParameters.maxProofsVerified: 0 | 1 | 2
• __namedParameters.proof: unknown
• __namedParameters.publicInput: PublicInput
• __namedParameters.publicOutput: PublicOutput
Returns
SelfProof\<PublicInput, PublicOutput>
Inherited from
Source
lib/proof-system/zkprogram.ts:140
Properties
maxProofsVerified
maxProofsVerified: 0 | 1 | 2;
Inherited from
Source
lib/proof-system/zkprogram.ts:95
proof
proof: unknown;
Inherited from
Source
lib/proof-system/zkprogram.ts:94
publicInput
publicInput: PublicInput;
Inherited from
Source
lib/proof-system/zkprogram.ts:92
publicOutput
publicOutput: PublicOutput;
Inherited from
Source
lib/proof-system/zkprogram.ts:93
shouldVerify
shouldVerify: Bool;
Inherited from
Source
lib/proof-system/zkprogram.ts:96
publicInputType
static publicInputType: FlexibleProvablePure<any>;
Inherited from
Source
lib/proof-system/zkprogram.ts:84
publicOutputType
static publicOutputType: FlexibleProvablePure<any>;
Inherited from
Source
lib/proof-system/zkprogram.ts:85
tag()
static tag: () => {
name: string;
};
Returns
{
name: string;
}
name
name: string;
Inherited from
Source
lib/proof-system/zkprogram.ts:86
Methods
toJSON()
toJSON(): JsonProof
Returns
Inherited from
Source
lib/proof-system/zkprogram.ts:104
verify()
verify(): void
Returns
void
Inherited from
Source
lib/proof-system/zkprogram.ts:98
verifyIf()
verifyIf(condition: Bool): void
Parameters
• condition: Bool
Returns
void
Inherited from
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>>
Inherited from
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"]>>>