class InMemoryTransferStore extends TransferStore with NamedLogging

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

Instance Constructors

  1. new InMemoryTransferStore(domain: TargetDomainId, loggerFactory: NamedLoggerFactory)(implicit executionContext: ExecutionContext)

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

    Definition Classes
    InMemoryTransferStoreTransferStore
    Exceptions thrown

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

  5. 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.

    Definition Classes
    InMemoryTransferStoreTransferStore
  6. 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.

    Definition Classes
    InMemoryTransferStoreTransferStore
  7. 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.

    Definition Classes
    TransferStore
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  10. 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.

    Definition Classes
    InMemoryTransferStoreTransferStore
  11. 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.

    Definition Classes
    InMemoryTransferStoreTransferStore
  12. 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.

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

    Definition Classes
    InMemoryTransferStoreTransferStore
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  15. implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  16. def find(filterSource: Option[SourceDomainId], filterTimestamp: 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
    InMemoryTransferStoreTransferLookup
  17. 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
    InMemoryTransferStoreTransferLookup
  18. 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
    InMemoryTransferStoreTransferLookup
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  21. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  22. def logger: TracedLogger
    Attributes
    protected
    Definition Classes
    NamedLogging
  23. val loggerFactory: NamedLoggerFactory
    Attributes
    protected
    Definition Classes
    InMemoryTransferStoreNamedLogging
  24. 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
    InMemoryTransferStoreTransferLookup
  25. implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  26. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. def noTracingLogger: Logger
    Attributes
    protected
    Definition Classes
    NamedLogging
  28. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  29. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  30. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  31. def toString(): String
    Definition Classes
    AnyRef → Any
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  34. 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
    Deprecated

Inherited from NamedLogging

Inherited from TransferStore

Inherited from TransferLookup

Inherited from AnyRef

Inherited from Any

Ungrouped