DocsReference@proto-kit/protocolClassesTransactionProverZkProgrammable

@proto-kit/protocolDocs


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