Skip to main content

Transaction

Struct Transaction 

Source
pub struct Transaction {
    pub update_id: String,
    pub command_id: String,
    pub workflow_id: String,
    pub effective_at: Option<Timestamp>,
    pub events: Vec<Event>,
    pub offset: i64,
    pub synchronizer_id: String,
    pub trace_context: Option<TraceContext>,
    pub record_time: Option<Timestamp>,
    pub external_transaction_hash: Option<Vec<u8>>,
    pub paid_traffic_cost: Option<i64>,
    pub transaction_hash: Option<Vec<u8>>,
}
Expand description

Filtered view of an on-ledger transaction’s create and archive events.

Fields§

§update_id: String

Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in value.proto).

Required

§command_id: String

The ID of the command which resulted in this transaction. Missing for everyone except the submitting party. Must be a valid LedgerString (as described in value.proto).

Optional

§workflow_id: String

The workflow ID used in command submission. Must be a valid LedgerString (as described in value.proto).

Optional

§effective_at: Option<Timestamp>

Ledger effective time.

Required

§events: Vec<Event>

The collection of events. Contains:

  • CreatedEvent or ArchivedEvent in case of ACS_DELTA transaction shape
  • CreatedEvent or ExercisedEvent in case of LEDGER_EFFECTS transaction shape

Required: must be non-empty

§offset: i64

The absolute offset. The details of this field are described in community/ledger-api/README.md. It is a valid absolute offset (positive integer).

Required

§synchronizer_id: String

A valid synchronizer id. Identifies the synchronizer that synchronized the transaction.

Required

§trace_context: Option<TraceContext>

Ledger API trace context

The trace context transported in this message corresponds to the trace context supplied by the client application in a HTTP2 header of the original command submission. We typically use a header to transfer this type of information. Here we use message body, because it is used in gRPC streams which do not support per message headers. This field will be populated with the trace context contained in the original submission. If that was not provided, a unique ledger-api-server generated trace context will be used instead.

Optional

§record_time: Option<Timestamp>

The time at which the transaction was recorded. The record time refers to the synchronizer which synchronized the transaction.

Required

§external_transaction_hash: Option<Vec<u8>>

Deprecated: please use transaction_hash which has the same value. For transaction externally signed, contains the external transaction hash signed by the external party. Can be used to correlate an external submission with a committed transaction.

Optional: can be empty

§paid_traffic_cost: Option<i64>

The traffic cost that this participant node paid for the confirmation request for this transaction.

Not set for transactions that were

  • initiated by another participant
  • initiated offline via the repair service
  • processed before the participant started serving traffic cost on the Ledger API
  • returned as part of a query filtering for a non submitting party

Optional

§transaction_hash: Option<Vec<u8>>

The transaction hash signed by the external party for prepared transactions that were submitted using InteractiveSubmissionService.ExecuteSubmission or one of its variants.

Use this to correlate prepared transactions with their execution result on the same participant that executed the transaction.

Not available for:

  • transactions executed on Canton versions prior to 3.6
  • transactions of internal parties submitted using CommandSubmissionService.Submit and its variants

Optional: can be empty

Implementations§

Source§

impl Transaction

Source

pub fn external_transaction_hash(&self) -> &[u8]

Returns the value of external_transaction_hash, or the default value if external_transaction_hash is unset.

Source

pub fn paid_traffic_cost(&self) -> i64

Returns the value of paid_traffic_cost, or the default value if paid_traffic_cost is unset.

Source

pub fn transaction_hash(&self) -> &[u8]

Returns the value of transaction_hash, or the default value if transaction_hash is unset.

Trait Implementations§

Source§

impl Clone for Transaction

Source§

fn clone(&self) -> Transaction

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Transaction

Source§

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

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

impl Default for Transaction

Source§

fn default() -> Transaction

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

impl Message for Transaction

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for Transaction

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Transaction

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
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
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn from_ref(input: &T) -> T

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

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

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

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

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

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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
Source§

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

Source§

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>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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