Skip to main content

Executor

Trait Executor 

Source
pub trait Executor {
    // Required methods
    fn execute_transaction_to_effects(
        &self,
        store: &dyn BackingStore,
        protocol_config: &ProtocolConfig,
        metrics: Arc<ExecutionMetrics>,
        enable_expensive_checks: bool,
        execution_params: ExecutionOrEarlyError,
        epoch_id: &EpochId,
        epoch_timestamp_ms: u64,
        input_objects: CheckedInputObjects,
        system_object_versions: SystemObjectVersions,
        unsettled_object_funds: &dyn UnsettledObjectFundsRead,
        gas: GasData,
        reference_gas_price: u64,
        transaction_kind: TransactionKind,
        rewritten_inputs: Option<Vec<bool>>,
        transaction_signer: SuiAddress,
        transaction_digest: TransactionDigest,
        trace_builder_opt: &mut Option<MoveTraceBuilder>,
    ) -> (InnerTemporaryStore, GasUsageReport, TransactionEffects, Vec<ExecutionTiming>, Result<(), ExecutionFailure>);
    fn execute_transaction_to_effects_and_execution_error(
        &self,
        store: &dyn BackingStore,
        protocol_config: &ProtocolConfig,
        metrics: Arc<ExecutionMetrics>,
        enable_expensive_checks: bool,
        execution_params: ExecutionOrEarlyError,
        epoch_id: &EpochId,
        epoch_timestamp_ms: u64,
        input_objects: CheckedInputObjects,
        system_object_versions: SystemObjectVersions,
        unsettled_object_funds: &dyn UnsettledObjectFundsRead,
        gas: GasData,
        reference_gas_price: u64,
        transaction_kind: TransactionKind,
        _rewritten_inputs: Option<Vec<bool>>,
        transaction_signer: SuiAddress,
        transaction_digest: TransactionDigest,
        trace_builder_opt: &mut Option<MoveTraceBuilder>,
    ) -> (InnerTemporaryStore, GasUsageReport, TransactionEffects, Vec<ExecutionTiming>, Result<(), ExecutionError>);
    fn dev_inspect_transaction(
        &self,
        store: &dyn BackingStore,
        protocol_config: &ProtocolConfig,
        metrics: Arc<ExecutionMetrics>,
        enable_expensive_checks: bool,
        execution_params: ExecutionOrEarlyError,
        epoch_id: &EpochId,
        epoch_timestamp_ms: u64,
        input_objects: CheckedInputObjects,
        system_object_versions: SystemObjectVersions,
        gas: GasData,
        reference_gas_price: u64,
        transaction_kind: TransactionKind,
        rewritten_inputs: Option<Vec<bool>>,
        transaction_signer: SuiAddress,
        transaction_digest: TransactionDigest,
        skip_all_checks: bool,
    ) -> (InnerTemporaryStore, GasUsageReport, TransactionEffects, Result<Vec<ExecutionResult>, ExecutionError>);
    fn update_genesis_state(
        &self,
        store: &dyn BackingStore,
        protocol_config: &ProtocolConfig,
        metrics: Arc<ExecutionMetrics>,
        epoch_id: EpochId,
        epoch_timestamp_ms: u64,
        transaction_digest: &TransactionDigest,
        input_objects: CheckedInputObjects,
        pt: ProgrammableTransaction,
    ) -> Result<InnerTemporaryStore, ExecutionError>;
}
Expand description

Abstracts over access to the VM across versions of the execution layer.

Required Methods§

Source

fn execute_transaction_to_effects( &self, store: &dyn BackingStore, protocol_config: &ProtocolConfig, metrics: Arc<ExecutionMetrics>, enable_expensive_checks: bool, execution_params: ExecutionOrEarlyError, epoch_id: &EpochId, epoch_timestamp_ms: u64, input_objects: CheckedInputObjects, system_object_versions: SystemObjectVersions, unsettled_object_funds: &dyn UnsettledObjectFundsRead, gas: GasData, reference_gas_price: u64, transaction_kind: TransactionKind, rewritten_inputs: Option<Vec<bool>>, transaction_signer: SuiAddress, transaction_digest: TransactionDigest, trace_builder_opt: &mut Option<MoveTraceBuilder>, ) -> (InnerTemporaryStore, GasUsageReport, TransactionEffects, Vec<ExecutionTiming>, Result<(), ExecutionFailure>)

Source

fn execute_transaction_to_effects_and_execution_error( &self, store: &dyn BackingStore, protocol_config: &ProtocolConfig, metrics: Arc<ExecutionMetrics>, enable_expensive_checks: bool, execution_params: ExecutionOrEarlyError, epoch_id: &EpochId, epoch_timestamp_ms: u64, input_objects: CheckedInputObjects, system_object_versions: SystemObjectVersions, unsettled_object_funds: &dyn UnsettledObjectFundsRead, gas: GasData, reference_gas_price: u64, transaction_kind: TransactionKind, _rewritten_inputs: Option<Vec<bool>>, transaction_signer: SuiAddress, transaction_digest: TransactionDigest, trace_builder_opt: &mut Option<MoveTraceBuilder>, ) -> (InnerTemporaryStore, GasUsageReport, TransactionEffects, Vec<ExecutionTiming>, Result<(), ExecutionError>)

Execution mode returns greater error information, primarily used in fullnode execution as opposed to execute_transaction_to_effects which only includes basic ExecutionFailure error.

Source

fn dev_inspect_transaction( &self, store: &dyn BackingStore, protocol_config: &ProtocolConfig, metrics: Arc<ExecutionMetrics>, enable_expensive_checks: bool, execution_params: ExecutionOrEarlyError, epoch_id: &EpochId, epoch_timestamp_ms: u64, input_objects: CheckedInputObjects, system_object_versions: SystemObjectVersions, gas: GasData, reference_gas_price: u64, transaction_kind: TransactionKind, rewritten_inputs: Option<Vec<bool>>, transaction_signer: SuiAddress, transaction_digest: TransactionDigest, skip_all_checks: bool, ) -> (InnerTemporaryStore, GasUsageReport, TransactionEffects, Result<Vec<ExecutionResult>, ExecutionError>)

Source

fn update_genesis_state( &self, store: &dyn BackingStore, protocol_config: &ProtocolConfig, metrics: Arc<ExecutionMetrics>, epoch_id: EpochId, epoch_timestamp_ms: u64, transaction_digest: &TransactionDigest, input_objects: CheckedInputObjects, pt: ProgrammableTransaction, ) -> Result<InnerTemporaryStore, ExecutionError>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§