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