Reference@proto-kit/protocolClassesTransactionProverZkProgrammable

@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

ZkProgrammable.constructor

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

readonly runtime: 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:

  1. Execute beforeTransaction hooks, pushing the ST batch
  2. Add Transaction to bundle, meaning appending it to all the respective commitments
  3. Push the runtime ST batch
  4. Execute afterTransaction hooks, pushing the ST batch
  5. 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

ZkProgrammable.compile

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<typeof DynamicProof>

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<typeof Proof>

Returns

Promise<typeof Proof>

Inherited from

ZkProgrammable.proofType

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

ZkProgrammable.zkProgram

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