@proto-kit/protocol • Docs


Documentation / @proto-kit/protocol / BlockProverProgrammable

Class: BlockProverProgrammable

Extends

Constructors

new BlockProverProgrammable()

new BlockProverProgrammable(prover, stateTransitionProver, transactionProver, blockHooks, stateServiceProvider, childVerificationKeyService): BlockProverProgrammable

Parameters

• prover: BlockProver

• stateTransitionProver: ZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>

• transactionProver: ZkProgrammable<TransactionProverPublicInput, TransactionProverPublicOutput>

• blockHooks: ProvableBlockHook<unknown>[]

• stateServiceProvider: StateServiceProvider

• childVerificationKeyService: ChildVerificationKeyService

Returns

BlockProverProgrammable

Overrides

ZkProgrammable.constructor

Defined in

packages/protocol/src/prover/block/BlockProver.ts:76

Properties

name

name: string = "BlockProver"

Defined in

packages/protocol/src/prover/block/BlockProver.ts:93


stateTransitionProver

readonly stateTransitionProver: ZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>

Defined in

packages/protocol/src/prover/block/BlockProver.ts:78


transactionProver

readonly transactionProver: ZkProgrammable<TransactionProverPublicInput, TransactionProverPublicOutput>

Defined in

packages/protocol/src/prover/block/BlockProver.ts:82

Accessors

areProofsEnabled

Get Signature

get areProofsEnabled(): undefined | AreProofsEnabled

Returns

undefined | AreProofsEnabled

Overrides

ZkProgrammable.areProofsEnabled

Defined in

packages/protocol/src/prover/block/BlockProver.ts:95

Methods

compile()

compile(registry): Promise<Record<string, CompileArtifact>>

Parameters

• registry: CompileRegistry

Returns

Promise<Record<string, CompileArtifact>>

Inherited from

ZkProgrammable.compile

Defined in

packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:55


dynamicProofType()

dynamicProofType(): Promise<typeof DynamicProof>

Returns

Promise<typeof DynamicProof>

Inherited from

ZkProgrammable.dynamicProofType

Defined in

packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:54


executeBlockHooks()

executeBlockHooks<T>(type, hook, hookArguments, inputNetworkState, isDummy): Promise<object>

Type Parameters

• T extends "before" | "after"

Parameters

• type: T

• hook

• hookArguments: BlockHookArgument<T>

• inputNetworkState: NetworkState

• isDummy: Bool

Returns

Promise<object>

batch

batch: AppliedStateTransitionBatch

rawStatus

rawStatus: Bool = status

result

result: NetworkState

Defined in

packages/protocol/src/prover/block/BlockProver.ts:99


includeSTProof()

includeSTProof(stateTransitionProof, apply, stateRoot, pendingSTBatchesHash, witnessedRootsHash): object

Parameters

• stateTransitionProof: DynamicSTProof

• apply: Bool

• stateRoot: Field

• pendingSTBatchesHash: Field

• witnessedRootsHash: Field

Returns

object

pendingSTBatchesHash

pendingSTBatchesHash: Field

stateRoot

stateRoot: Field

witnessedRootsHash

witnessedRootsHash: Field

Defined in

packages/protocol/src/prover/block/BlockProver.ts:145


merge()

merge(publicInput, proof1, proof2): Promise<BlockProverPublicOutput>

Parameters

• publicInput: BlockProverPublicInput

• proof1: BlockProof

• proof2: BlockProof

Returns

Promise<BlockProverPublicOutput>

Defined in

packages/protocol/src/prover/block/BlockProver.ts:594


proofType()

proofType(): Promise<typeof Proof>

Returns

Promise<typeof Proof>

Inherited from

ZkProgrammable.proofType

Defined in

packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:53


proveBlockBatch()

proveBlockBatch(doProofVerification, publicInput, stateWitness, networkState, blockWitness, batch, deferSTProof, deferTransactionProof, finalize, stateTransitionProof?, transactionProof?): Promise<BlockProverPublicOutput>

Parameters

• doProofVerification: boolean

• publicInput: BlockProverPublicInput

• stateWitness: BlockProverStateInput

• networkState: NetworkState

• blockWitness: BlockHashMerkleTreeWitness

• batch: BlockArgumentsBatch

• deferSTProof: Bool

• deferTransactionProof: Bool

• finalize: Bool

• stateTransitionProof?: DynamicSTProof

• transactionProof?: DynamicTransactionProof

Returns

Promise<BlockProverPublicOutput>

Defined in

packages/protocol/src/prover/block/BlockProver.ts:435


proveBlockBatchNoProofs()

proveBlockBatchNoProofs(publicInput, stateWitness, networkState, blockWitness, batch, finalize): Promise<BlockProverPublicOutput>

Parameters

• publicInput: BlockProverPublicInput

• stateWitness: BlockProverStateInput

• networkState: NetworkState

• blockWitness: BlockHashMerkleTreeWitness

• batch: BlockArgumentsBatch

• finalize: Bool

Returns

Promise<BlockProverPublicOutput>

Defined in

packages/protocol/src/prover/block/BlockProver.ts:385


proveBlockBatchWithProofs()

proveBlockBatchWithProofs(publicInput, stateWitness, networkState, blockWitness, batch, deferSTProof, deferTransactionProof, stateTransitionProof, transactionProof): Promise<BlockProverPublicOutput>

Parameters

• publicInput: BlockProverPublicInput

• stateWitness: BlockProverStateInput

• networkState: NetworkState

• blockWitness: BlockHashMerkleTreeWitness

• batch: BlockArgumentsBatch

• deferSTProof: Bool

• deferTransactionProof: Bool

• stateTransitionProof: DynamicSTProof

• transactionProof: DynamicTransactionProof

Returns

Promise<BlockProverPublicOutput>

Defined in

packages/protocol/src/prover/block/BlockProver.ts:407


zkProgram()

zkProgram(): Promise<PlainZkProgram<BlockProverPublicInput, BlockProverPublicOutput>[]>

Returns

Promise<PlainZkProgram<BlockProverPublicInput, BlockProverPublicOutput>[]>

Inherited from

ZkProgrammable.zkProgram

Defined in

packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:52


zkProgramFactory()

zkProgramFactory(): Promise<PlainZkProgram<BlockProverPublicInput, BlockProverPublicOutput>[]>

Creates the BlockProver ZkProgram. Recursive linking of proofs is done via the previously injected StateTransitionProver and the required AppChainProof class

Returns

Promise<PlainZkProgram<BlockProverPublicInput, BlockProverPublicOutput>[]>

Overrides

ZkProgrammable.zkProgramFactory

Defined in

packages/protocol/src/prover/block/BlockProver.ts:631