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[];