pub enum Transaction {
Script(Script),
Create(Create),
Mint(Mint),
Upgrade(Upgrade),
Upload(Upload),
Blob(Blob),
}
Expand description
The fuel transaction entity https://github.com/FuelLabs/fuel-specs/blob/master/src/tx-format/transaction.md.
Variants§
Implementations§
source§impl Transaction
impl Transaction
pub const fn script( gas_limit: Word, script: Vec<u8>, script_data: Vec<u8>, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Script
pub fn create( bytecode_witness_index: u16, policies: Policies, salt: Salt, storage_slots: Vec<StorageSlot>, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Create
pub fn mint( tx_pointer: TxPointer, input_contract: Contract, output_contract: Contract, mint_amount: Word, mint_asset_id: AssetId, gas_price: Word, ) -> Mint
pub fn upgrade( upgrade_purpose: UpgradePurpose, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Upgrade
sourcepub fn upgrade_consensus_parameters(
consensus_parameters: &ConsensusParameters,
policies: Policies,
inputs: Vec<Input>,
outputs: Vec<Output>,
witnesses: Vec<Witness>,
) -> Result<Upgrade, ValidityError>
pub fn upgrade_consensus_parameters( consensus_parameters: &ConsensusParameters, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Result<Upgrade, ValidityError>
Creates an Upgrade
transaction with the purpose of upgrading the consensus
parameters.
pub fn upload( upload_body: UploadBody, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Upload
pub fn upload_from_subsection( subsection: UploadSubsection, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Upload
pub fn blob( body: BlobBody, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Blob
pub fn blob_from_bytes( bytes: Vec<u8>, policies: Policies, inputs: Vec<Input>, outputs: Vec<Output>, witnesses: Vec<Witness>, ) -> Blob
pub const fn is_script(&self) -> bool
pub const fn is_create(&self) -> bool
pub const fn is_mint(&self) -> bool
pub const fn is_upgrade(&self) -> bool
pub const fn is_upload(&self) -> bool
pub const fn is_blob(&self) -> bool
pub const fn as_script(&self) -> Option<&Script>
pub fn as_script_mut(&mut self) -> Option<&mut Script>
pub const fn as_create(&self) -> Option<&Create>
pub fn as_create_mut(&mut self) -> Option<&mut Create>
pub const fn as_mint(&self) -> Option<&Mint>
pub fn as_mint_mut(&mut self) -> Option<&mut Mint>
pub const fn as_upgrade(&self) -> Option<&Upgrade>
pub fn as_upgrade_mut(&mut self) -> Option<&mut Upgrade>
pub const fn as_upload(&self) -> Option<&Upload>
pub fn as_upload_mut(&mut self) -> Option<&mut Upload>
pub const fn as_blob(&self) -> Option<&Blob>
pub fn as_blob_mut(&mut self) -> Option<&mut Blob>
Trait Implementations§
source§impl Cacheable for Transaction
impl Cacheable for Transaction
source§fn is_computed(&self) -> bool
fn is_computed(&self) -> bool
The cache is already computed. Read more
source§fn precompute(&mut self, chain_id: &ChainId) -> Result<(), ValidityError>
fn precompute(&mut self, chain_id: &ChainId) -> Result<(), ValidityError>
Computes the cache for the entity.
source§impl Clone for Transaction
impl Clone for Transaction
source§fn clone(&self) -> Transaction
fn clone(&self) -> Transaction
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Transaction
impl Debug for Transaction
source§impl<'de> Deserialize<'de> for Transaction
impl<'de> Deserialize<'de> for Transaction
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Deserialize for Transaction
impl Deserialize for Transaction
source§fn decode_static<I: Input + ?Sized>(buffer: &mut I) -> Result<Self, Error>
fn decode_static<I: Input + ?Sized>(buffer: &mut I) -> Result<Self, Error>
Decodes static part of
Self
from the buffer
.source§fn decode_dynamic<I: Input + ?Sized>(
&mut self,
buffer: &mut I,
) -> Result<(), Error>
fn decode_dynamic<I: Input + ?Sized>( &mut self, buffer: &mut I, ) -> Result<(), Error>
Decodes dynamic part of the information from the
buffer
to fill Self
.
The default implementation does nothing. Dynamically-sized contains should
override this.source§impl FormatValidityChecks for Transaction
impl FormatValidityChecks for Transaction
source§fn check_signatures(&self, chain_id: &ChainId) -> Result<(), ValidityError>
fn check_signatures(&self, chain_id: &ChainId) -> Result<(), ValidityError>
Validates that all required signatures are set in the transaction and that they
are valid.
source§fn check_without_signatures(
&self,
block_height: BlockHeight,
consensus_params: &ConsensusParameters,
) -> Result<(), ValidityError>
fn check_without_signatures( &self, block_height: BlockHeight, consensus_params: &ConsensusParameters, ) -> Result<(), ValidityError>
Validates the transactions according to rules from the specification:
https://github.com/FuelLabs/fuel-specs/blob/master/src/tx-format/transaction.md
source§fn check(
&self,
block_height: BlockHeight,
consensus_params: &ConsensusParameters,
) -> Result<(), ValidityError>
fn check( &self, block_height: BlockHeight, consensus_params: &ConsensusParameters, ) -> Result<(), ValidityError>
Performs all stateless transaction validity checks. This includes the validity
of fields according to rules in the specification and validity of signatures.
source§impl From<&Transaction> for TransactionRepr
impl From<&Transaction> for TransactionRepr
source§fn from(tx: &Transaction) -> Self
fn from(tx: &Transaction) -> Self
Converts to this type from the input type.
source§impl From<ChargeableTransaction<BlobBody, BlobMetadata>> for Transaction
impl From<ChargeableTransaction<BlobBody, BlobMetadata>> for Transaction
source§impl From<ChargeableTransaction<CreateBody, CreateMetadata>> for Transaction
impl From<ChargeableTransaction<CreateBody, CreateMetadata>> for Transaction
source§impl From<ChargeableTransaction<ScriptBody, ScriptMetadata>> for Transaction
impl From<ChargeableTransaction<ScriptBody, ScriptMetadata>> for Transaction
source§impl From<Mint> for Transaction
impl From<Mint> for Transaction
source§impl Hash for Transaction
impl Hash for Transaction
source§impl PartialEq for Transaction
impl PartialEq for Transaction
source§impl Serialize for Transaction
impl Serialize for Transaction
source§impl Serialize for Transaction
impl Serialize for Transaction
source§fn size_static(&self) -> usize
fn size_static(&self) -> usize
Size of the static part of the serialized object, in bytes.
Saturates to usize::MAX on overflow.
source§fn size_dynamic(&self) -> usize
fn size_dynamic(&self) -> usize
Size of the dynamic part, in bytes.
Saturates to usize::MAX on overflow.
source§fn encode_static<O: Output + ?Sized>(&self, buffer: &mut O) -> Result<(), Error>
fn encode_static<O: Output + ?Sized>(&self, buffer: &mut O) -> Result<(), Error>
Encodes staticly-sized part of
Self
.source§fn encode_dynamic<O: Output + ?Sized>(
&self,
buffer: &mut O,
) -> Result<(), Error>
fn encode_dynamic<O: Output + ?Sized>( &self, buffer: &mut O, ) -> Result<(), Error>
Encodes dynamically-sized part of
Self
.
The default implementation does nothing. Dynamically-sized contains should
override this.source§fn size(&self) -> usize
fn size(&self) -> usize
Total size of the serialized object, in bytes.
Saturates to usize::MAX on overflow.
source§impl TryFrom<&Transaction> for Contract
impl TryFrom<&Transaction> for Contract
source§type Error = ValidityError
type Error = ValidityError
The type returned in the event of a conversion error.
source§impl UniqueIdentifier for Transaction
impl UniqueIdentifier for Transaction
impl Eq for Transaction
impl StructuralPartialEq for Transaction
Auto Trait Implementations§
impl Freeze for Transaction
impl RefUnwindSafe for Transaction
impl Send for Transaction
impl Sync for Transaction
impl Unpin for Transaction
impl UnwindSafe for Transaction
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.source§impl<T> StorageAsMut for T
impl<T> StorageAsMut for T
fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
source§impl<T> StorageAsRef for T
impl<T> StorageAsRef for T
fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.