package submission

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package routing

Type Members

  1. final case class ChangeIdHash(hash: LfHash) extends PrettyPrinting with Product with Serializable
  2. trait CommandDeduplicator extends AnyRef

    Implements the command deduplication logic.

    Implements the command deduplication logic.

    All method calls should be coordinated by the InFlightSubmissionTracker. In particular, checkDeduplication must not be called concurrently with processPublications for the same com.daml.ledger.participant.state.v2.ChangeIds.

  3. class CommandDeduplicatorImpl extends CommandDeduplicator with NamedLogging
  4. class ConfirmationRequestFactory extends NamedLogging

    Factory class for creating confirmation requests from Daml-LF transactions.

  5. class DomainUsabilityCheckProtocolVersion[E >: DomainNotSupportingMinimumProtocolVersion <: DomainNotUsedReason] extends DomainUsabilityChecker[E]
  6. class DomainUsabilityCheckerFull extends DomainUsabilityChecker[DomainNotUsedReason]
  7. class DomainUsabilityCheckerPartiesConnected[E >: MissingActiveParticipant <: DomainNotUsedReason] extends DomainUsabilityChecker[E]

    The following is checked:

    The following is checked:

    - Every party in parties is hosted by an active participant on domain domainId

  8. class DomainUsabilityCheckerVetting[E >: UnknownPackage <: DomainNotUsedReason] extends DomainUsabilityChecker[E]

    The following is checked:

    The following is checked:

    - For every (party, pkgs) in requiredPackagesByParty

    - For every participant P hosting party

    - All packages pkgs are vetted by P on domain domainId

    Note: in order to avoid false errors, it is important that the set of packages needed for the parties hosted locally covers the set of packages needed for all the parties.

    This is guaranteed in the following situations:

    - Phase 1: Because the submitting participant hosts one of the authorizers, which sees the whole transaction. Hence, they need all the packages necessary for the transaction.

    - Phase 3: The participant receives a projection for the parties it hosts. Hence, the packages needed for these parties will be sufficient to re-interpret the whole projection.

  9. case class InFlightSubmission[+SequencingInfo <: SubmissionSequencingInfo](changeIdHash: ChangeIdHash, submissionId: Option[LedgerSubmissionId], submissionDomain: DomainId, messageUuid: UUID, sequencingInfo: SequencingInfo, submissionTraceContext: TraceContext) extends PrettyPrinting with Product with Serializable

    Collects information about an in-flight submission, to be stored in com.digitalasset.canton.participant.store.InFlightSubmissionStore.

    Collects information about an in-flight submission, to be stored in com.digitalasset.canton.participant.store.InFlightSubmissionStore.

    changeIdHash

    The identifier for the intended ledger change. We only include the hash instead of the com.daml.ledger.participant.state.v2.ChangeId so that we do not need to persist and reconstruct the actual contents of the com.daml.ledger.participant.state.v2.ChangeId when we read an InFlightSubmission from the store.

    submissionId

    Optional submission id.

    submissionDomain

    The domain to which the submission is supposed to be/was sent.

    messageUuid

    The message UUID that will be/has been used for the com.digitalasset.canton.sequencing.protocol.SubmissionRequest

    sequencingInfo

    Information about when the request will be/was sequenced

    submissionTraceContext

    The com.digitalasset.canton.tracing.TraceContext of the submission.

  10. class InFlightSubmissionTracker extends FlagCloseable with NamedLogging

    Tracker for in-flight submissions backed by the com.digitalasset.canton.participant.store.InFlightSubmissionStore.

    Tracker for in-flight submissions backed by the com.digitalasset.canton.participant.store.InFlightSubmissionStore.

    A submission is in flight if it is in the com.digitalasset.canton.participant.store.InFlightSubmissionStore. The tracker registers a submission before the com.digitalasset.canton.sequencing.protocol.SubmissionRequest is sent to the com.digitalasset.canton.sequencing.client.SequencerClient of a domain. After the corresponding event has been published into the com.digitalasset.canton.participant.store.MultiDomainEventLog state updates, the submission will be removed from the com.digitalasset.canton.participant.store.InFlightSubmissionStore again. This happens normally as part of request processing after phase 7. If the submission has not been sequenced by the specified com.digitalasset.canton.participant.protocol.submission.UnsequencedSubmission.timeout, say because the submission was lost on the way to the sequencer, the participant generates an appropriate update because the submission will never reach request processing. The latter must work even if the participant crashes (if run with persistence).

  11. class SeedGenerator extends AnyRef

    Creates seeds and UUIDs for requests.

  12. case class SequencedSubmission(sequencerCounter: SequencerCounter, sequencingTime: CantonTimestamp) extends SubmissionSequencingInfo with Product with Serializable

    The observed sequencing information of an InFlightSubmission

    The observed sequencing information of an InFlightSubmission

    sequencerCounter

    The com.digitalasset.canton.SequencerCounter assigned to the com.digitalasset.canton.sequencing.protocol.SubmissionRequest

    sequencingTime

    The sequencer timestamp assigned to the com.digitalasset.canton.sequencing.protocol.SubmissionRequest

  13. final case class SerializableSubmissionId(submissionId: LedgerSubmissionId) extends Product with Serializable
  14. sealed trait SubmissionSequencingInfo extends Product with Serializable with PrettyPrinting

    Information about when an InFlightSubmission was/will be sequenced

  15. trait SubmissionTrackingData extends Product with Serializable with HasProtocolVersionedWrapper[SubmissionTrackingData] with PrettyPrinting

    The data of an in-flight unsequenced submission that suffices to produce a rejection reason.

    The data of an in-flight unsequenced submission that suffices to produce a rejection reason. This data is persisted in the com.digitalasset.canton.participant.store.InFlightSubmissionStore for unsequenced submissions and updated when the corresponding a com.digitalasset.canton.sequencing.protocol.DeliverError is processed or the submission could not be sent to the sequencer.

  16. final case class TransactionSubmissionTrackingData(completionInfo: CompletionInfo, rejectionCause: RejectionCause)(representativeProtocolVersion: RepresentativeProtocolVersion[SubmissionTrackingData]) extends SubmissionTrackingData with HasLoggerName with Product with Serializable

    Tracking data for transactions

  17. trait TransactionTreeFactory extends AnyRef
  18. abstract class TransactionTreeFactoryImpl extends TransactionTreeFactory with NamedLogging

    Factory class that can create the com.digitalasset.canton.data.GenTransactionTrees from a com.digitalasset.canton.protocol.WellFormedTransaction.

  19. class TransactionTreeFactoryImplV3 extends TransactionTreeFactoryImpl

    Generate transaction trees as used from protocol version com.digitalasset.canton.version.ProtocolVersion.v3 on

  20. case class UnsequencedSubmission(timeout: CantonTimestamp, trackingData: SubmissionTrackingData) extends SubmissionSequencingInfo with Product with Serializable

    Identifies an InFlightSubmission whose sequencing has not yet been observed.

    Identifies an InFlightSubmission whose sequencing has not yet been observed.

    timeout

    The point in sequencer time after which the submission cannot be sequenced any more. Typically this is the max sequencing time for the com.digitalasset.canton.sequencing.protocol.SubmissionRequest. It can be earlier if the submission logic decided to not send a request at all or the sent request was rejected

    trackingData

    The information required to produce an appropriate rejection event when the timeout has elapsed.

  21. trait WatermarkLookup[Mark] extends AnyRef
  22. class WatermarkTracker[Mark] extends WatermarkLookup[Mark] with NamedLogging

    Keeps track of a boundary WatermarkTracker.highWatermark that increases monotonically.

    Keeps track of a boundary WatermarkTracker.highWatermark that increases monotonically. Clients can do one of the following:

    The WatermarkTracker is effectively used to enforce mutual exclusion between two types of tasks.

Ungrouped