@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
Overrides
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
readonlystateTransitionProver:ZkProgrammable<StateTransitionProverPublicInput,StateTransitionProverPublicOutput>
Defined in
packages/protocol/src/prover/block/BlockProver.ts:78
transactionProver
readonlytransactionProver: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
Defined in
packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:55
dynamicProofType()
dynamicProofType():
Promise<typeofDynamicProof>
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<typeofProof>
Returns
Promise<typeof Proof>
Inherited from
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
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