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
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: PublicInput;
Inherited from
Source
lib/proof-system/zkprogram.ts:217
publicOutput
publicOutput: PublicOutput;
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
Inherited from
Source
lib/proof-system/zkprogram.ts:252
verifyIf()
verifyIf(condition: Bool): void
Parameters
• condition: Bool
Returns
void
Inherited from
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
>>
Inherited from
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"
]>>>