Packages

trait TransferStore extends TransferLookup

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TransferStore
  2. TransferLookup
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def addTransfer(transferData: TransferData)(implicit traceContext: TraceContext): EitherT[Future, TransferStoreError, Unit]

    Adds the transfer to the store.

    Adds the transfer to the store.

    Calls to this method are idempotent, independent of the order. Differences in protocol.transfer.TransferData!.transferOutResult between two calls are ignored if the field is scala.None$ in one of the calls. If applicable, the field content is merged.

    Exceptions thrown

    java.lang.IllegalArgumentException if the transfer's target domain is not the domain this TransferStore belongs to.

  2. abstract def addTransferOutResult(transferOutResult: DeliveredTransferOutResult)(implicit traceContext: TraceContext): EitherT[Future, TransferStoreError, Unit]

    Adds the given com.digitalasset.canton.protocol.messages.TransferOutResult to the transfer data in the store, provided that the transfer data has previously been stored.

    Adds the given com.digitalasset.canton.protocol.messages.TransferOutResult to the transfer data in the store, provided that the transfer data has previously been stored.

    The same com.digitalasset.canton.protocol.messages.TransferOutResult can be added any number of times. This includes transfer-out results that are in the protocol.transfer.TransferData!.transferOutResult added with addTransfer.

    transferOutResult

    The transfer-out result to add

    returns

    TransferStore$.UnknownTransferId if the transfer has not previously been added with addTransfer. TransferStore$.TransferOutResultAlreadyExists if a different transfer-out result for the same transfer request has been added before, including as part of addTransfer.

  3. abstract def addTransfersOffsets(offsets: Map[TransferId, TransferGlobalOffset])(implicit traceContext: TraceContext): EitherT[FutureUnlessShutdown, TransferStoreError, Unit]

    Adds the given offsets to the transfer data in the store, provided that the transfer data has previously been stored.

    Adds the given offsets to the transfer data in the store, provided that the transfer data has previously been stored.

    The same offset can be added any number of times.

  4. abstract def completeTransfer(transferId: TransferId, timeOfCompletion: TimeOfChange)(implicit traceContext: TraceContext): CheckedT[Future, Nothing, TransferStoreError, Unit]

    Marks the transfer as completed, i.e., a transfer-in request was committed.

    Marks the transfer as completed, i.e., a transfer-in request was committed. If the transfer has already been completed then a TransferStore.TransferAlreadyCompleted is reported, and the com.digitalasset.canton.participant.util.TimeOfChange of the completion is not changed from the old value.

    timeOfCompletion

    Provides the request counter and activeness time of the committed transfer-in request.

  5. abstract def deleteCompletionsSince(criterionInclusive: RequestCounter)(implicit traceContext: TraceContext): Future[Unit]

    Removes all completions of transfers that have been triggered by requests with at least the given counter.

    Removes all completions of transfers that have been triggered by requests with at least the given counter. This method must not be called concurrently with completeTransfer, but may be called concurrently with addTransfer and addTransferOutResult.

    Therefore, this method need not be linearizable w.r.t. completeTransfer. For example, if two requests rc1 complete two transfers while deleteCompletionsSince is running for some rc <= rc1, rc2, then there are no guarantees which of the completions of rc1 and rc2 remain.

  6. abstract def deleteTransfer(transferId: TransferId)(implicit traceContext: TraceContext): Future[Unit]

    Removes the transfer from the store, when the transfer-out request is rejected or the transfer is pruned.

  7. abstract def find(filterSource: Option[SourceDomainId], filterRequestTimestamp: Option[CantonTimestamp], filterSubmitter: Option[LfPartyId], limit: Int)(implicit traceContext: TraceContext): Future[Seq[TransferData]]

    Find utility to look for in-flight transfers.

    Find utility to look for in-flight transfers. Queried by com.digitalasset.canton.console.commands.ParticipantAdministration#transfer.search. Results need not be consistent with lookup.

    Definition Classes
    TransferLookup
  8. abstract def findAfter(requestAfter: Option[(CantonTimestamp, SourceDomainId)], limit: Int)(implicit traceContext: TraceContext): Future[Seq[TransferData]]

    Find utility to look for in-flight transfers.

    Find utility to look for in-flight transfers. Transfers are ordered by the tuple (request timestamp, source domain ID), ie transfers are ordered by request timestamps and ties are broken with lexicographic ordering on domain IDs.

    The ordering here has been chosen to allow a participant to fetch all the pending transfers. The ordering has to be consistent accross calls and uniquely identify a pending transfer, but is otherwise arbitrary.

    requestAfter

    optionally, specify a strict lower bound for the transfers returned, according to the (request timestamp, source domain ID) ordering

    limit

    limit the number of results

    Definition Classes
    TransferLookup
  9. abstract def findInFlight(sourceDomain: SourceDomainId, onlyCompletedTransferOut: Boolean, transferOutRequestNotAfter: LocalOffset, stakeholders: Option[NonEmpty[Set[LfPartyId]]], limit: NonNegativeInt)(implicit traceContext: TraceContext): Future[Seq[TransferData]]

    Find utility to look for in-flight transfers.

    Find utility to look for in-flight transfers. Transfers are ordered by request timestamp.

    sourceDomain

    source domain of the transfer

    onlyCompletedTransferOut

    select only transfers that are successfully transferred-out

    transferOutRequestNotAfter

    select only transfers whose transfer-out request counter rc satisfies rc <= transferOutRequestNotAfter.

    stakeholders

    if non-empty, select only transfers of contracts whose set of stakeholders intersects stakeholders.

    limit

    limit the number of results

    Definition Classes
    TransferLookup
  10. abstract def findIncomplete(sourceDomain: Option[SourceDomainId], validAt: GlobalOffset, stakeholders: Option[NonEmpty[Set[LfPartyId]]], limit: NonNegativeInt)(implicit traceContext: TraceContext): Future[Seq[IncompleteTransferData]]

    Find utility to look for incomplete transfers.

    Find utility to look for incomplete transfers. Transfers are ordered by global offset.

    A transfer t is considered as incomplete at offset validAt if only one of the two transfer events was emitted on the multi-domain event log at validAt. That is, one of the following hold:

    1. Only transfer-out was emitted
      • t.transferOutGlobalOffset is smaller or equal to validAt
      • t.transferInGlobalOffset is null or greater than validAt 2. Only transfer-in was emitted
      • t.transferInGlobalOffset is smaller or equal to validAt
      • t.transferOutGlobalOffset is null or greater than validAt

    In particular, for a transfer to be considered incomplete at validAt, then exactly one of the two offsets (transferOutGlobalOffset, transferInGlobalOffset) is not null and smaller or equal to validAt.

    sourceDomain

    if empty, select only transfers whose source domain matches the given one

    validAt

    select only transfers that are successfully transferred-out

    stakeholders

    if non-empty, select only transfers of contracts whose set of stakeholders intersects stakeholders.

    limit

    limit the number of results

    Definition Classes
    TransferLookup
  11. abstract def lookup(transferId: TransferId)(implicit traceContext: TraceContext): EitherT[Future, TransferLookupError, TransferData]

    Looks up the given in-flight transfer and returns the data associated with the transfer.

    Looks up the given in-flight transfer and returns the data associated with the transfer.

    returns

    scala.Left$(TransferStore.UnknownTransferId) if the transfer is unknown; scala.Left$(TransferStore.TransferCompleted) if the transfer has already been completed.

    Definition Classes
    TransferLookup

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addTransfersOffsets(events: Seq[(TransferId, TransferGlobalOffset)])(implicit executionContext: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, TransferStoreError, Unit]

    Adds the given com.digitalasset.canton.participant.GlobalOffset for the transfer events to the transfer data in the store, provided that the transfer data has previously been stored.

    Adds the given com.digitalasset.canton.participant.GlobalOffset for the transfer events to the transfer data in the store, provided that the transfer data has previously been stored.

    The same com.digitalasset.canton.participant.GlobalOffset can be added any number of times.

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from TransferLookup

Inherited from AnyRef

Inherited from Any

Ungrouped