Interface BlockAwareOperationTracer
- All Superinterfaces:
org.hyperledger.besu.evm.tracing.OperationTracer
public interface BlockAwareOperationTracer
extends org.hyperledger.besu.evm.tracing.OperationTracer
An extended operation tracer that can trace the start and end of a block.
The block start hook receives the world view and the block header, plus the block body when an existing block is traced; the block end hook receives the block header and body.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BlockAwareOperationTracerBlockAwareOperationTracer object with no tracing functionality. -
Method Summary
Modifier and TypeMethodDescriptiondefault booleandefault booleanWhether this tracer wants to observe system-call execution (e.g.default voidtraceEndBlock(org.hyperledger.besu.plugin.data.BlockHeader blockHeader, org.hyperledger.besu.plugin.data.BlockBody blockBody) Trace the end of a block.default voidtraceStartBlock(org.hyperledger.besu.evm.worldstate.WorldView worldView, org.hyperledger.besu.plugin.data.BlockHeader blockHeader, org.hyperledger.besu.plugin.data.BlockBody blockBody, org.hyperledger.besu.datatypes.Address miningBeneficiary) Trace the start of a block.default voidtraceStartBlock(org.hyperledger.besu.evm.worldstate.WorldView worldView, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.datatypes.Address miningBeneficiary) When building a block this API is called at the start of the processMethods inherited from interface org.hyperledger.besu.evm.tracing.OperationTracer
getTraceFrames, isEnabled, traceAccountCreationResult, traceBeforeRewardTransaction, traceContextEnter, traceContextExit, traceContextReEnter, traceEndTransaction, tracePostExecution, tracePrecompileCall, tracePreExecution, tracePrepareTransaction, traceStartTransaction
-
Field Details
-
NO_TRACING
BlockAwareOperationTracer object with no tracing functionality. This serves as a default for scenarios where no specific tracing operation is required.
-
-
Method Details
-
traceStartBlock
default void traceStartBlock(org.hyperledger.besu.evm.worldstate.WorldView worldView, org.hyperledger.besu.plugin.data.BlockHeader blockHeader, org.hyperledger.besu.plugin.data.BlockBody blockBody, org.hyperledger.besu.datatypes.Address miningBeneficiary) Trace the start of a block.- Parameters:
worldView- the world view at the start of the blockblockHeader- the header of the block which is tracedblockBody- the body of the block which is tracedminingBeneficiary- the address of miner building the block
-
traceEndBlock
default void traceEndBlock(org.hyperledger.besu.plugin.data.BlockHeader blockHeader, org.hyperledger.besu.plugin.data.BlockBody blockBody) Trace the end of a block.- Parameters:
blockHeader- the header of the block which is tracedblockBody- the body of the block which is traced
-
traceStartBlock
default void traceStartBlock(org.hyperledger.besu.evm.worldstate.WorldView worldView, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.datatypes.Address miningBeneficiary) When building a block this API is called at the start of the process- Parameters:
worldView- the world view at the start of the blockprocessableBlockHeader- the processable headerminingBeneficiary- the address of miner building the block
-
isSystemCallTracingEnabled
default boolean isSystemCallTracingEnabled()Whether this tracer wants to observe system-call execution (e.g. EIP-2935, EIP-7002).System calls run outside of normal transaction processing. By default, they are not traced. Tracers that need to inspect system-call code (for example an execution-witness builder) should override this to return
true.- Returns:
trueif the tracer wants system calls to be traced;falseby default
-
isExtendedTracing
default boolean isExtendedTracing()- Specified by:
isExtendedTracingin interfaceorg.hyperledger.besu.evm.tracing.OperationTracer
-