@proto-kit/protocol • Docs
Documentation / @proto-kit/protocol / TransactionProverZkProgrammable
Class: TransactionProverZkProgrammable
Extends
Constructors
new TransactionProverZkProgrammable()
new TransactionProverZkProgrammable(
prover,runtime,transactionHooks,stateServiceProvider,verificationKeyService):TransactionProverZkProgrammable
Parameters
• prover: TransactionProver
• runtime: WithZkProgrammable<undefined, MethodPublicOutput>
• transactionHooks: ProvableTransactionHook<unknown>[]
• stateServiceProvider: StateServiceProvider
• verificationKeyService: MinimalVKTreeService
Returns
TransactionProverZkProgrammable
Overrides
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:73
Properties
name
name:
string="TransactionProver"
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:83
runtime
readonlyruntime:WithZkProgrammable<undefined,MethodPublicOutput>
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:75
Accessors
areProofsEnabled
Get Signature
get areProofsEnabled():
undefined|AreProofsEnabled
Returns
undefined | AreProofsEnabled
Overrides
ZkProgrammable.areProofsEnabled
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:85
Methods
applyTransaction()
applyTransaction(
fromState,runtimeOutput,executionData,networkState):Promise<TransactionProverState>
Applies and checks the two proofs and applies the corresponding state changes to the given state.
The rough high level workflow of this function:
- Execute beforeTransaction hooks, pushing the ST batch
- Add Transaction to bundle, meaning appending it to all the respective commitments
- Push the runtime ST batch
- Execute afterTransaction hooks, pushing the ST batch
- Some consistency checks and signature verification
Parameters
• fromState: TransactionProverState
The from-state of the BlockProver
• runtimeOutput: MethodPublicOutput
• executionData: ApplyTransactionArguments
• networkState: NetworkState
Returns
Promise<TransactionProverState>
The new BlockProver-state to be used as public output
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:107
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
dummy()
dummy(
publicInput):Promise<TransactionProverPublicOutput>
Parameters
• publicInput: TransactionProverPublicInput
Returns
Promise<TransactionProverPublicOutput>
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:307
dynamicProofType()
dynamicProofType():
Promise<typeofDynamicProof>
Returns
Promise<typeof DynamicProof>
Inherited from
ZkProgrammable.dynamicProofType
Defined in
packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:54
merge()
merge(
publicInput,proof1,proof2):Promise<TransactionProverPublicOutput>
Parameters
• publicInput: TransactionProverPublicInput
• proof1: TransactionProof
• proof2: TransactionProof
Returns
Promise<TransactionProverPublicOutput>
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:314
proofType()
proofType():
Promise<typeofProof>
Returns
Promise<typeof Proof>
Inherited from
Defined in
packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:53
proveTransaction()
proveTransaction(
publicInput,runtimeProof,executionData):Promise<TransactionProverPublicOutput>
Parameters
• publicInput: TransactionProverPublicInput
• runtimeProof: DynamicRuntimeProof
• executionData: TransactionProverExecutionData
Returns
Promise<TransactionProverPublicOutput>
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:267
proveTransactionInternal()
proveTransactionInternal(
publicInput,runtimeProof,transaction,args):Promise<TransactionProverPublicOutput>
Parameters
• publicInput: TransactionProverPublicInput
• runtimeProof: DynamicRuntimeProof
• transaction: TransactionProverTransactionArguments
• args: TransactionProverArguments
Returns
Promise<TransactionProverPublicOutput>
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:237
proveTransactions()
proveTransactions(
publicInput,runtimeProof1,runtimeProof2,executionData1,executionData2):Promise<TransactionProverPublicOutput>
Parameters
• publicInput: TransactionProverPublicInput
• runtimeProof1: DynamicRuntimeProof
• runtimeProof2: DynamicRuntimeProof
• executionData1: TransactionProverExecutionData
• executionData2: TransactionProverExecutionData
Returns
Promise<TransactionProverPublicOutput>
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:281
zkProgram()
zkProgram():
Promise<PlainZkProgram<TransactionProverPublicInput,TransactionProverPublicOutput>[]>
Returns
Promise<PlainZkProgram<TransactionProverPublicInput, TransactionProverPublicOutput>[]>
Inherited from
Defined in
packages/common/dist/zkProgrammable/ZkProgrammable.d.ts:52
zkProgramFactory()
zkProgramFactory():
Promise<PlainZkProgram<TransactionProverPublicInput,TransactionProverPublicOutput>[]>
Creates the BlockProver ZkProgram. Recursive linking of proofs is done via the previously injected StateTransitionProver and the required AppChainProof class
Returns
Promise<PlainZkProgram<TransactionProverPublicInput, TransactionProverPublicOutput>[]>
Overrides
ZkProgrammable.zkProgramFactory
Defined in
packages/protocol/src/prover/transaction/TransactionProver.ts:370