DocsReference@proto-kit/protocolClassesBlockProverProgrammable

@proto-kit/protocolDocs


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