Skip to main content

Experimental

o1js / Modules / Experimental

Namespace: Experimental

This module exposes APIs that are unstable, in the sense that the API surface is expected to change. (Not unstable in the sense that they are less functional or tested than other parts.)

Table of contents

Type Aliases

Variables

Functions

Type Aliases

Callback

Ƭ Callback<Result>: Callback_<Result>

Type parameters

Name
Result

Defined in

index.ts:108

index.ts:109

Variables

Callback

Callback: typeof Callback = Experimental_.Callback

Defined in

index.ts:108

index.ts:109

Functions

ZkProgram

ZkProgram<StatementType, Types>(config): { analyzeMethods: () => { digest: string ; gates: Gate[] ; publicInputSize: number ; result: unknown ; rows: number }[] ; compile: (options?: { cache: Cache }) => Promise<{ verificationKey: string }> ; digest: () => string ; name: string ; publicInputType: ProvableOrUndefined<Get<StatementType, "publicInput">> ; publicOutputType: ProvableOrVoid<Get<StatementType, "publicOutput">> ; verify: (proof: Proof<InferProvableOrUndefined<Get<StatementType, "publicInput">>, InferProvableOrVoid<Get<StatementType, "publicOutput">>>) => Promise<boolean> } & { [I in string | number | symbol]: Prover<InferProvableOrUndefined<Get<StatementType, "publicInput">>, InferProvableOrVoid<Get<StatementType, "publicOutput">>, Types[I]> }

Deprecated

ZkProgram has moved out of the Experimental namespace and is now directly available as a top-level import ZkProgram. The old Experimental.ZkProgram API has been deprecated in favor of the new ZkProgram top-level import.

Type parameters

NameType
StatementTypeextends Object
Typesextends Object

Parameters

NameType
configStatementType & { methods: { [I in string | number | symbol]: Method<InferProvableOrUndefined<Get<StatementType, "publicInput">>, InferProvableOrVoid<Get<StatementType, "publicOutput">>, Types[I]> } ; name?: string ; overrideWrapDomain?: 0 | 2 | 1 }

Returns

{ analyzeMethods: () => { digest: string ; gates: Gate[] ; publicInputSize: number ; result: unknown ; rows: number }[] ; compile: (options?: { cache: Cache }) => Promise<{ verificationKey: string }> ; digest: () => string ; name: string ; publicInputType: ProvableOrUndefined<Get<StatementType, "publicInput">> ; publicOutputType: ProvableOrVoid<Get<StatementType, "publicOutput">> ; verify: (proof: Proof<InferProvableOrUndefined<Get<StatementType, "publicInput">>, InferProvableOrVoid<Get<StatementType, "publicOutput">>>) => Promise<boolean> } & { [I in string | number | symbol]: Prover<InferProvableOrUndefined<Get<StatementType, "publicInput">>, InferProvableOrVoid<Get<StatementType, "publicOutput">>, Types[I]> }

Defined in

lib/proof_system.ts:1064


createChildAccountUpdate

createChildAccountUpdate(parent, childAddress, tokenId?): AccountUpdate

Parameters

NameType
parentAccountUpdate
childAddressPublicKey
tokenId?Field

Returns

AccountUpdate

Defined in

lib/account_update.ts:1703


memoizeWitness

memoizeWitness<T>(type, compute): T

Like Provable.witness, but memoizes the witness during transaction construction for reuse by the prover. This is needed to witness non-deterministic values.

Type parameters

Name
T

Parameters

NameType
typeFlexibleProvable<T>
compute() => T

Returns

T

Defined in

lib/provable.ts:456