fuel_vm::interpreter

Trait ExecutableTransaction

source
pub trait ExecutableTransaction:
    Default
    + Clone
    + Chargeable
    + Executable
    + IntoChecked
    + EstimatePredicates
    + UniqueIdentifier
    + Outputs
    + Witnesses
    + Into<Transaction>
    + PrepareSign
    + Serialize {
Show 13 methods // Required method fn transaction_type() -> Word; // Provided methods fn as_script(&self) -> Option<&Script> { ... } fn as_script_mut(&mut self) -> Option<&mut Script> { ... } fn as_create(&self) -> Option<&Create> { ... } fn as_create_mut(&mut self) -> Option<&mut Create> { ... } fn as_upgrade(&self) -> Option<&Upgrade> { ... } fn as_upgrade_mut(&mut self) -> Option<&mut Upgrade> { ... } fn as_upload(&self) -> Option<&Upload> { ... } fn as_upload_mut(&mut self) -> Option<&mut Upload> { ... } fn as_blob(&self) -> Option<&Blob> { ... } fn as_blob_mut(&mut self) -> Option<&mut Blob> { ... } fn replace_variable_output( &mut self, idx: usize, output: Output, ) -> SimpleResult<()> { ... } fn update_outputs<I>( &mut self, revert: bool, used_gas: Word, initial_balances: &InitialBalances, balances: &I, gas_costs: &GasCosts, fee_params: &FeeParameters, base_asset_id: &AssetId, gas_price: Word, ) -> Result<(), ValidityError> where I: for<'a> Index<&'a AssetId, Output = Word> { ... }
}
Expand description

The definition of the executable transaction supported by the Interpreter.

Required Methods§

source

fn transaction_type() -> Word

Returns the type of the transaction like Transaction::Create or Transaction::Script.

Provided Methods§

source

fn as_script(&self) -> Option<&Script>

Casts the Self transaction into &Script if any.

source

fn as_script_mut(&mut self) -> Option<&mut Script>

Casts the Self transaction into &mut Script if any.

source

fn as_create(&self) -> Option<&Create>

Casts the Self transaction into &Create if any.

source

fn as_create_mut(&mut self) -> Option<&mut Create>

Casts the Self transaction into &mut Create if any.

source

fn as_upgrade(&self) -> Option<&Upgrade>

Casts the Self transaction into &Upgrade if any.

source

fn as_upgrade_mut(&mut self) -> Option<&mut Upgrade>

Casts the Self transaction into &mut Upgrade if any.

source

fn as_upload(&self) -> Option<&Upload>

Casts the Self transaction into &Upload if any.

source

fn as_upload_mut(&mut self) -> Option<&mut Upload>

Casts the Self transaction into &mut Upload if any.

source

fn as_blob(&self) -> Option<&Blob>

Casts the Self transaction into &Blob if any.

source

fn as_blob_mut(&mut self) -> Option<&mut Blob>

Casts the Self transaction into &mut Blob if any.

source

fn replace_variable_output( &mut self, idx: usize, output: Output, ) -> SimpleResult<()>

Replaces the Output::Variable with the output(should be also Output::Variable) by the idx index.

source

fn update_outputs<I>( &mut self, revert: bool, used_gas: Word, initial_balances: &InitialBalances, balances: &I, gas_costs: &GasCosts, fee_params: &FeeParameters, base_asset_id: &AssetId, gas_price: Word, ) -> Result<(), ValidityError>
where I: for<'a> Index<&'a AssetId, Output = Word>,

Update change and variable outputs.

revert will signal if the execution was reverted. It will refund the unused gas cost to the base asset and reset output changes to their initial_balances.

remaining_gas expects the raw content of $ggas

initial_balances contains the initial state of the free balances

balances will contain the current state of the free balances

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ExecutableTransaction for Blob

source§

impl ExecutableTransaction for Create

source§

impl ExecutableTransaction for Script

source§

impl ExecutableTransaction for Upgrade

source§

impl ExecutableTransaction for Upload

Implementors§