Interface TransactionSimulationService

All Superinterfaces:
org.hyperledger.besu.plugin.services.BesuService

public interface TransactionSimulationService extends org.hyperledger.besu.plugin.services.BesuService
Transaction simulation service interface
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
    Enumeration of simulation parameters that control validation behavior during transaction simulation.
  • Method Summary

    Modifier and Type
    Method
    Description
    simulate(org.hyperledger.besu.datatypes.CallParameter callParameters, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, EnumSet<TransactionSimulationService.SimulationParameters> simulationParameters)
    Simulate transaction (specified by call parameters) execution at the block identified by the block header, with optional state overrides that can be applied before the simulation.
    simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.datatypes.Hash blockHash, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, boolean isAllowExceedingBalance)
    Deprecated, for removal: This API element is subject to removal in a future version.
    simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.datatypes.Hash blockHash, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, EnumSet<TransactionSimulationService.SimulationParameters> simulationParameters)
    Simulate transaction execution at the block identified by the hash, with optional state overrides that can be applied before the simulation.
    simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, boolean isAllowExceedingBalance, boolean isAllowFutureNonce)
    Deprecated, for removal: This API element is subject to removal in a future version.
    simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, EnumSet<TransactionSimulationService.SimulationParameters> simulationParameters)
    Simulate transaction execution at the block identified by the block header, with optional state overrides that can be applied before the simulation.
    org.hyperledger.besu.plugin.data.ProcessableBlockHeader
    Return a simulation of what could be current pending block, it can also be passed to simulate(Transaction, Optional, ProcessableBlockHeader, OperationTracer, EnumSet)
  • Method Details

    • simulatePendingBlockHeader

      org.hyperledger.besu.plugin.data.ProcessableBlockHeader simulatePendingBlockHeader()
      Return a simulation of what could be current pending block, it can also be passed to simulate(Transaction, Optional, ProcessableBlockHeader, OperationTracer, EnumSet)
      Returns:
      the simulated pending block header
    • simulate

      @Deprecated(forRemoval=true) default Optional<TransactionSimulationResult> simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.datatypes.Hash blockHash, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, boolean isAllowExceedingBalance)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Simulate transaction execution at the block identified by the hash, with optional state overrides that can be applied before the simulation.
      Parameters:
      transaction - the transaction to simulate
      stateOverrides - state overrides to apply to this simulation
      blockHash - hash of the block
      operationTracer - the tracer
      isAllowExceedingBalance - should ignore the sender balance during the simulation?
      Returns:
      the result of the simulation
    • simulate

      Optional<TransactionSimulationResult> simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.datatypes.Hash blockHash, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, EnumSet<TransactionSimulationService.SimulationParameters> simulationParameters)
      Simulate transaction execution at the block identified by the hash, with optional state overrides that can be applied before the simulation.
      Parameters:
      transaction - the transaction to simulate
      stateOverrides - state overrides to apply to this simulation
      blockHash - hash of the block
      operationTracer - the tracer
      simulationParameters - optional set of parameters that affected the behavior of the simulation
      Returns:
      the result of the simulation
    • simulate

      @Deprecated(forRemoval=true) default Optional<TransactionSimulationResult> simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, boolean isAllowExceedingBalance, boolean isAllowFutureNonce)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Simulate transaction execution at the block identified by the block header, with optional state overrides that can be applied before the simulation.
      Parameters:
      transaction - the transaction to simulate
      stateOverrides - state overrides to apply to this simulation
      processableBlockHeader - block header to simulate on pending block
      operationTracer - the tracer
      isAllowExceedingBalance - should ignore the sender balance during the simulation?
      isAllowFutureNonce - should skip strict check on sequential nonce?
      Returns:
      the result of the simulation
    • simulate

      Optional<TransactionSimulationResult> simulate(org.hyperledger.besu.datatypes.Transaction transaction, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, EnumSet<TransactionSimulationService.SimulationParameters> simulationParameters)
      Simulate transaction execution at the block identified by the block header, with optional state overrides that can be applied before the simulation.
      Parameters:
      transaction - the transaction to simulate
      stateOverrides - state overrides to apply to this simulation
      processableBlockHeader - block header to simulate on pending block
      operationTracer - the tracer
      simulationParameters - optional set of parameters that affected the behavior of the simulation
      Returns:
      the result of the simulation
    • simulate

      Optional<TransactionSimulationResult> simulate(org.hyperledger.besu.datatypes.CallParameter callParameters, Optional<org.hyperledger.besu.datatypes.StateOverrideMap> stateOverrides, org.hyperledger.besu.plugin.data.ProcessableBlockHeader processableBlockHeader, org.hyperledger.besu.evm.tracing.OperationTracer operationTracer, EnumSet<TransactionSimulationService.SimulationParameters> simulationParameters)
      Simulate transaction (specified by call parameters) execution at the block identified by the block header, with optional state overrides that can be applied before the simulation.
      Parameters:
      callParameters - call parameters
      stateOverrides - state overrides to apply to this simulation
      processableBlockHeader - block header to simulate
      operationTracer - the tracer
      simulationParameters - optional set of parameters that affected the behavior of the simulation
      Returns:
      the result of the simulation