Skip to main content

TransactionEffectsV1

Namespace: IotaSdk

Version 1 of TransactionEffects

BCS

The BCS serialized form for this type is defined by the following ABNF:

effects-v1 = execution-status
u64 ; epoch
gas-cost-summary
digest ; transaction digest
(option u32) ; gas object index
(option digest) ; events digest
(vector digest) ; list of transaction dependencies
u64 ; lamport version
(vector changed-object)
(vector unchanged-shared-object)
(option digest) ; auxiliary data digest
public record class TransactionEffectsV1 : System.IDisposable, System.IEquatable`1[[IotaSdk.TransactionEffectsV1, IotaSdk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]

Inheritance ObjectTransactionEffectsV1
Implements IDisposable, IEquatable<TransactionEffectsV1>
Attributes NullableContextAttribute, NullableAttribute

Remarks:

UniFFI Warning: Optional parameters have been reordered because of a C# syntax limitation. Use named parameters for compatibility with future ordering changes.

Properties

Status

The status of the execution

public ExecutionStatus Status { get; init; }

Property Value

ExecutionStatus

Epoch

The epoch when this transaction was executed.

public ulong Epoch { get; init; }

Property Value

UInt64

GasCostSummary

The gas used by this transaction

public GasCostSummary GasCostSummary { get; init; }

Property Value

GasCostSummary

TransactionDigest

The transaction digest

public TransactionDigest TransactionDigest { get; init; }

Property Value

TransactionDigest

Dependencies

The set of transaction digests this transaction depends on.

public TransactionDigest[] Dependencies { get; init; }

Property Value

TransactionDigest[]

LamportVersion

The version number of all the written Move objects by this transaction.

public Version LamportVersion { get; init; }

Property Value

Version

ChangedObjects

Objects whose state are changed in the object store.

public ChangedObject[] ChangedObjects { get; init; }

Property Value

ChangedObject[]

UnchangedSharedObjects

Shared objects that are not mutated in this transaction. Unlike owned objects, read-only shared objects' version are not committed in the transaction, and in order for a node to catch up and execute it without consensus sequencing, the version needs to be committed in the effects.

public UnchangedSharedObject[] UnchangedSharedObjects { get; init; }

Property Value

UnchangedSharedObject[]

GasObjectIndex

The updated gas object reference, as an index into the changed_objects vector. Having a dedicated field for convenient access. System transaction that don't require gas will leave this as None.

public uint? GasObjectIndex { get; init; }

Property Value

UInt32?

EventsDigest

The digest of the events emitted during execution, can be None if the transaction does not emit any event.

public TransactionEventsDigest? EventsDigest { get; init; }

Property Value

TransactionEventsDigest

AuxiliaryDataDigest

Auxiliary data that are not protocol-critical, generated as part of the effects but are stored separately. Storing it separately allows us to avoid bloating the effects with data that are not critical. It also provides more flexibility on the format and type of the data.

public EffectsAuxDataDigest? AuxiliaryDataDigest { get; init; }

Property Value

EffectsAuxDataDigest

Constructors

TransactionEffectsV1(ExecutionStatus, UInt64, GasCostSummary, TransactionDigest, TransactionDigest[], Version, ChangedObject[], UnchangedSharedObject[], UInt32?, TransactionEventsDigest, EffectsAuxDataDigest)

Version 1 of TransactionEffects

BCS

The BCS serialized form for this type is defined by the following ABNF:

effects-v1 = execution-status
u64 ; epoch
gas-cost-summary
digest ; transaction digest
(option u32) ; gas object index
(option digest) ; events digest
(vector digest) ; list of transaction dependencies
u64 ; lamport version
(vector changed-object)
(vector unchanged-shared-object)
(option digest) ; auxiliary data digest
public TransactionEffectsV1(ExecutionStatus Status, ulong Epoch, GasCostSummary GasCostSummary, TransactionDigest TransactionDigest, TransactionDigest[] Dependencies, Version LamportVersion, ChangedObject[] ChangedObjects, UnchangedSharedObject[] UnchangedSharedObjects, uint? GasObjectIndex = null, TransactionEventsDigest? EventsDigest = null, EffectsAuxDataDigest? AuxiliaryDataDigest = null)

Parameters

Status ExecutionStatus
The status of the execution

Epoch UInt64
The epoch when this transaction was executed.

GasCostSummary GasCostSummary
The gas used by this transaction

TransactionDigest TransactionDigest
The transaction digest

Dependencies TransactionDigest[]
The set of transaction digests this transaction depends on.

LamportVersion Version
The version number of all the written Move objects by this transaction.

ChangedObjects ChangedObject[]
Objects whose state are changed in the object store.

UnchangedSharedObjects UnchangedSharedObject[]
Shared objects that are not mutated in this transaction. Unlike owned objects, read-only shared objects' version are not committed in the transaction, and in order for a node to catch up and execute it without consensus sequencing, the version needs to be committed in the effects.

GasObjectIndex UInt32?
The updated gas object reference, as an index into the changed_objects vector. Having a dedicated field for convenient access. System transaction that don't require gas will leave this as None.

EventsDigest TransactionEventsDigest?
The digest of the events emitted during execution, can be None if the transaction does not emit any event.

AuxiliaryDataDigest EffectsAuxDataDigest?
Auxiliary data that are not protocol-critical, generated as part of the effects but are stored separately. Storing it separately allows us to avoid bloating the effects with data that are not critical. It also provides more flexibility on the format and type of the data.

Remarks:

UniFFI Warning: Optional parameters have been reordered because of a C# syntax limitation. Use named parameters for compatibility with future ordering changes.

Methods

Dispose()

public void Dispose()