pub enum TransactionEffects {
    V1(TransactionEffectsV1),
    V2(TransactionEffectsV2),
}
Expand description

The response from processing a transaction or a certified transaction

Variants§

§

V1(TransactionEffectsV1)

§

V2(TransactionEffectsV2)

Implementations§

source§

impl TransactionEffects

source

pub fn new_from_execution_v1( status: ExecutionStatus, executed_epoch: EpochId, gas_used: GasCostSummary, modified_at_versions: Vec<(ObjectID, SequenceNumber)>, shared_objects: Vec<ObjectRef>, transaction_digest: TransactionDigest, created: Vec<(ObjectRef, Owner)>, mutated: Vec<(ObjectRef, Owner)>, unwrapped: Vec<(ObjectRef, Owner)>, deleted: Vec<ObjectRef>, unwrapped_then_deleted: Vec<ObjectRef>, wrapped: Vec<ObjectRef>, gas_object: (ObjectRef, Owner), events_digest: Option<TransactionEventsDigest>, dependencies: Vec<TransactionDigest> ) -> Self

Creates a TransactionEffects message from the results of execution, choosing the correct format for the current protocol version.

source

pub fn new_from_execution_v2( status: ExecutionStatus, executed_epoch: EpochId, gas_used: GasCostSummary, shared_objects: Vec<SharedInput>, transaction_digest: TransactionDigest, lamport_version: SequenceNumber, changed_objects: BTreeMap<ObjectID, EffectsObjectChange>, gas_object: Option<ObjectID>, events_digest: Option<TransactionEventsDigest>, dependencies: Vec<TransactionDigest> ) -> Self

Creates a TransactionEffects message from the results of execution, choosing the correct format for the current protocol version.

source

pub fn execution_digests(&self) -> ExecutionDigests

source

pub fn estimate_effects_size_upperbound_v1( num_writes: usize, num_mutables: usize, num_deletes: usize, num_deps: usize ) -> usize

source

pub fn estimate_effects_size_upperbound_v2( num_writes: usize, num_modifies: usize, num_deps: usize ) -> usize

source

pub fn all_changed_objects(&self) -> Vec<(ObjectRef, Owner, WriteKind)>

Return an iterator that iterates through all changed objects, including mutated, created and unwrapped objects. In other words, all objects that still exist in the object state after this transaction. It doesn’t include deleted/wrapped objects.

source

pub fn all_removed_objects(&self) -> Vec<(ObjectRef, ObjectRemoveKind)>

Return all objects that existed in the state prior to the transaction but no longer exist in the state after the transaction. It includes deleted and wrapped objects, but does not include unwrapped_then_deleted objects.

source

pub fn all_tombstones(&self) -> Vec<(ObjectID, SequenceNumber)>

Returns all objects that will become a tombstone after this transaction. This includes deleted, unwrapped_then_deleted and wrapped objects.

source

pub fn mutated_excluding_gas(&self) -> Vec<(ObjectRef, Owner)>

Return an iterator of mutated objects, but excluding the gas object.

source

pub fn summary_for_debug(&self) -> TransactionEffectsDebugSummary

Trait Implementations§

source§

impl Clone for TransactionEffects

source§

fn clone(&self) -> TransactionEffects

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TransactionEffects

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for TransactionEffects

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for TransactionEffects

source§

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 Message for TransactionEffects

§

type DigestType = TransactionEffectsDigest

source§

const SCOPE: IntentScope = IntentScope::TransactionEffects

source§

fn digest(&self) -> Self::DigestType

source§

fn scope(&self) -> IntentScope

source§

impl PartialEq for TransactionEffects

source§

fn eq(&self, other: &TransactionEffects) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TransactionEffects

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TransactionEffectsAPI for TransactionEffects

source§

fn lamport_version(&self) -> SequenceNumber

The version assigned to all output objects (apart from packages).

source§

fn old_object_metadata(&self) -> Vec<(ObjectRef, Owner)>

Metadata of objects prior to modification. This includes any object that exists in the store prior to this transaction and is modified in this transaction. It includes objects that are mutated, wrapped and deleted. This API is only available on effects v2 and above.

source§

fn input_shared_objects(&self) -> Vec<InputSharedObject>

Returns the list of shared objects used in the input, with full object reference and use kind. This is needed in effects because in transaction we only have object ID for shared objects. Their version and digest can only be figured out after sequencing. Also provides the use kind to indicate whether the object was mutated or read-only. Down the road it could also indicate use-of-deleted.

source§

fn status(&self) -> &ExecutionStatus

source§

fn into_status(self) -> ExecutionStatus

source§

fn executed_epoch(&self) -> EpochId

source§

fn modified_at_versions(&self) -> Vec<(ObjectID, SequenceNumber)>

source§

fn created(&self) -> Vec<(ObjectRef, Owner)>

source§

fn mutated(&self) -> Vec<(ObjectRef, Owner)>

source§

fn unwrapped(&self) -> Vec<(ObjectRef, Owner)>

source§

fn deleted(&self) -> Vec<ObjectRef>

source§

fn unwrapped_then_deleted(&self) -> Vec<ObjectRef>

source§

fn wrapped(&self) -> Vec<ObjectRef>

source§

fn object_changes(&self) -> Vec<ObjectChange>

source§

fn gas_object(&self) -> (ObjectRef, Owner)

source§

fn events_digest(&self) -> Option<&TransactionEventsDigest>

source§

fn dependencies(&self) -> &[TransactionDigest]

source§

fn transaction_digest(&self) -> &TransactionDigest

source§

fn gas_cost_summary(&self) -> &GasCostSummary

source§

fn deleted_mutably_accessed_shared_objects(&self) -> Vec<ObjectID>

source§

fn status_mut_for_testing(&mut self) -> &mut ExecutionStatus

source§

fn gas_cost_summary_mut_for_testing(&mut self) -> &mut GasCostSummary

source§

fn transaction_digest_mut_for_testing(&mut self) -> &mut TransactionDigest

source§

fn dependencies_mut_for_testing(&mut self) -> &mut Vec<TransactionDigest>

source§

fn unsafe_add_input_shared_object_for_testing( &mut self, __enum_dispatch_arg_0: InputSharedObject )

source§

fn unsafe_add_deleted_live_object_for_testing( &mut self, __enum_dispatch_arg_0: ObjectRef )

source§

fn unsafe_add_object_tombstone_for_testing( &mut self, __enum_dispatch_arg_0: ObjectRef )

source§

impl VersionedProtocolMessage for TransactionEffects

source§

fn message_version(&self) -> Option<u64>

Return version of message. Some messages depend on their enclosing messages to know the version number, so not every implementor implements this.
source§

fn check_version_supported(&self, protocol_config: &ProtocolConfig) -> SuiResult

Check that the version of the message is the correct one to use at this protocol version.
source§

impl Eq for TransactionEffects

source§

impl StructuralPartialEq for TransactionEffects

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<S> Export for S
where S: Serialize,

source§

fn export(&self, path: &str) -> Result<(), ConfigError>

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
source§

impl<D> Import for D

source§

fn import(path: &str) -> Result<Self, ConfigError>

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a Request
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, W> Signable<W> for T
where T: BcsSignable, W: Write,

source§

fn write(&self, writer: &mut W)

source§

impl<T> SignableBytes for T
where T: BcsSignable,

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,