Proof
Class: Proof\<Input, Output>
Type parameters
| Name |
|---|
Input |
Output |
Hierarchy
Proof
Table of contents
Constructors
Properties
Methods
Constructors
constructor
• new Proof\<Input, Output>(«destructured»)
Type parameters
| Name |
|---|
Input |
Output |
Parameters
| Name | Type |
|---|---|
«destructured» | Object |
› maxProofsVerified | 0 | 2 | 1 |
› proof | unknown |
› publicInput | Input |
› publicOutput | Output |
Defined in
Properties
maxProofsVerified
• maxProofsVerified: 0 | 2 | 1
Defined in
proof
• proof: unknown
Defined in
publicInput
• publicInput: Input
Defined in
publicOutput
• publicOutput: Output
Defined in
shouldVerify
• shouldVerify: Bool
Defined in
publicInputType
▪ Static publicInputType: FlexibleProvablePure\<any>
Defined in
publicOutputType
▪ Static publicOutputType: FlexibleProvablePure\<any>
Defined in
tag
▪ Static tag: () => { name: string }
Type declaration
▸ (): Object
Returns
Object
| Name | Type |
|---|---|
name | string |
Defined in
Methods
toJSON
▸ toJSON(): JsonProof
Returns
Defined in
verify
▸ verify(): void
Returns
void
Defined in
verifyIf
▸ verifyIf(condition): void
Parameters
| Name | Type |
|---|---|
condition | Bool |
Returns
void
Defined in
dummy
▸ Static dummy\<Input, OutPut>(publicInput, publicOutput, maxProofsVerified, domainLog2?): 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
| Name |
|---|
Input |
OutPut |
Parameters
| Name | Type | Default value |
|---|---|---|
publicInput | Input | undefined |
publicOutput | OutPut | undefined |
maxProofsVerified | 0 | 2 | 1 | undefined |
domainLog2 | number | 14 |
Returns
Promise\<Proof\<Input, OutPut>>
Defined in
fromJSON
▸ Static fromJSON\<S>(this, «destructured»): Proof\<InferProvable\<S["publicInputType"]>, InferProvable\<S["publicOutputType"]>>
Type parameters
| Name | Type |
|---|---|
S | extends Subclass\<typeof Proof> |
Parameters
| Name | Type |
|---|---|
this | S |
«destructured» | JsonProof |
Returns
Proof\<InferProvable\<S["publicInputType"]>, InferProvable\<S["publicOutputType"]>>