SelfProof
Extends
Proof\<PublicInput,PublicOutput>
Type parameters
• PublicInput
• PublicOutput
Constructors
new SelfProof()
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
Properties
maxProofsVerified
maxProofsVerified: 0 | 1 | 2;
Inherited from
Source
proof
proof: unknown;
Inherited from
Source
publicInput
publicInput: PublicInput;
Inherited from
Source
publicOutput
publicOutput: PublicOutput;
Inherited from
Source
shouldVerify
shouldVerify: Bool;
Inherited from
Source
publicInputType
static publicInputType: FlexibleProvablePure<any>;
Inherited from
Source
publicOutputType
static publicOutputType: FlexibleProvablePure<any>;
Inherited from
Source
tag()
static tag: () => {
"name": string;
};
Returns
{
"name": string;
}
name
name: string;
Inherited from
Source
Accessors
provable
get static provable(): ProvableProof<Proof<any, any>, any, any>
Returns
ProvableProof\<Proof\<any, any>, any, any>
Source
Methods
publicFields()
publicFields(): {
"input": Field[];
"output": Field[];
}
Returns
{
"input": Field[];
"output": Field[];
}
input
input: Field[];
output
output: Field[];
Inherited from
Source
toJSON()
toJSON(): JsonProof
Returns
Inherited from
Source
verify()
verify(): void
Returns
void
Inherited from
Source
verifyIf()
verifyIf(condition: Bool): void
Parameters
• condition: Bool
Returns
void
Inherited from
Source
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
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"]>>>
Inherited from
Source
publicFields()
static publicFields(value: ProofBase<any, any>): {
"input": Field[];
"output": Field[];
}
Parameters
• value: ProofBase\<any, any>
Returns
{
"input": Field[];
"output": Field[];
}
input
input: Field[];
output
output: Field[];