pub trait ExecutionMode {
type ArgumentUpdates;
type ExecutionResults;
type Error: ExecutionErrorTrait;
const TRACK_EXECUTION: bool;
// Required methods
fn allow_arbitrary_function_calls() -> bool;
fn allow_arbitrary_values() -> bool;
fn skip_conservation_checks() -> bool;
fn packages_are_predefined() -> bool;
fn empty_results() -> Self::ExecutionResults;
fn add_argument_update(
acc: &mut Self::ArgumentUpdates,
arg: Argument,
bytes: Vec<u8>,
type_: TypeTag,
) -> Result<(), ExecutionError>;
fn finish_command(
acc: &mut Self::ExecutionResults,
argument_updates: Vec<(Argument, Vec<u8>, TypeTag)>,
command_result: Vec<(Vec<u8>, TypeTag)>,
) -> Result<(), ExecutionError>;
}Required Associated Constants§
const TRACK_EXECUTION: bool
Required Associated Types§
Sourcetype ArgumentUpdates
type ArgumentUpdates
All updates to a Arguments used in that Command
Sourcetype ExecutionResults
type ExecutionResults
the gathered results from batched executions
Required Methods§
Sourcefn allow_arbitrary_function_calls() -> bool
fn allow_arbitrary_function_calls() -> bool
Controls the calling of arbitrary Move functions
Sourcefn allow_arbitrary_values() -> bool
fn allow_arbitrary_values() -> bool
Controls the ability to instantiate any Move function parameter with a Pure call arg. In other words, you can instantiate any struct or object or other value with its BCS byte
Sourcefn skip_conservation_checks() -> bool
fn skip_conservation_checks() -> bool
Do not perform conservation checks after execution.
Sourcefn packages_are_predefined() -> bool
fn packages_are_predefined() -> bool
If not set, the package ID should be calculated like an object and an UpgradeCap is produced
fn empty_results() -> Self::ExecutionResults
fn add_argument_update( acc: &mut Self::ArgumentUpdates, arg: Argument, bytes: Vec<u8>, type_: TypeTag, ) -> Result<(), ExecutionError>
fn finish_command( acc: &mut Self::ExecutionResults, argument_updates: Vec<(Argument, Vec<u8>, TypeTag)>, command_result: Vec<(Vec<u8>, TypeTag)>, ) -> Result<(), ExecutionError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
Source§impl ExecutionMode for Genesis
impl ExecutionMode for Genesis
const TRACK_EXECUTION: bool = false
type ArgumentUpdates = ()
type ExecutionResults = ()
type Error = ExecutionError
Source§impl<E> ExecutionMode for Normal<E>where
E: ExecutionErrorTrait,
impl<E> ExecutionMode for Normal<E>where
E: ExecutionErrorTrait,
const TRACK_EXECUTION: bool = false
type ArgumentUpdates = ()
type ExecutionResults = ()
type Error = E
Source§impl<E> ExecutionMode for System<E>where
E: ExecutionErrorTrait,
Execution mode for executing a system transaction, including the epoch change
transaction and the consensus commit prologue. In this mode, we allow calls to
any function bypassing visibility.
impl<E> ExecutionMode for System<E>where
E: ExecutionErrorTrait,
Execution mode for executing a system transaction, including the epoch change transaction and the consensus commit prologue. In this mode, we allow calls to any function bypassing visibility.