package messages
This package contains data structures used in the transaction protocol. However, generic data structures, e.g. com.digitalasset.canton.data.MerkleTree etc. are kept in com.digitalasset.canton.data package.
- Alphabetic
- By Inheritance
- messages
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- sealed abstract case class AcsCommitment extends HasProtocolVersionedWrapper[AcsCommitment] with SignedProtocolMessageContent with NoCopy with Product with Serializable
A commitment to the active contract set (ACS) that is shared between two participants on a given domain at a given time.
A commitment to the active contract set (ACS) that is shared between two participants on a given domain at a given time.
Given a commitment scheme to the ACS, the semantics are as follows: the sender declares that the shared ACS was exactly the one committed to, at every commitment tick during the specified period and as determined by the period's interval.
The interval is assumed to be a round number of seconds. The ticks then start at the Java EPOCH time, and are exactly
interval
apart. - trait BaseLocalRejectErrorCode extends AnyRef
Base type for error codes related to local reject.
- final case class CausalityMessage(domainId: DomainId, transferId: TransferId, clock: VectorClock)(representativeProtocolVersion: RepresentativeProtocolVersion[ProtocolMessage]) extends ProtocolMessage with PrettyPrinting with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
Causality messages are sent along with a transfer-in response.
Causality messages are sent along with a transfer-in response. They propagate causality information on the events a participant has "seen" for a party at the time of the transfer-out. TODO(i9514): Encrypt the causality messages
- domainId
The domain ID that the causality message is addressed to
- transferId
The ID of the transfer for which we are propagating causality information
- clock
The vector clock specifying causality information at the time of the transfer out
- final case class CommitmentPeriod(fromExclusive: CantonTimestampSecond, periodLength: PositiveSeconds) extends PrettyPrinting with Product with Serializable
- case class ConfirmationRequest(informeeMessage: InformeeMessage, viewEnvelopes: Seq[OpenEnvelope[TransactionViewMessage]], protocolVersion: ProtocolVersion) extends PrettyPrinting with Product with Serializable
Represents the confirmation request as sent from a submitting node to the sequencer.
- type DefaultOpenEnvelope = OpenEnvelope[ProtocolMessage]
- case class DeliveredTransferOutResult(result: SignedContent[Deliver[DefaultOpenEnvelope]]) extends PrettyPrinting with Product with Serializable
- case class DomainTopologyTransactionMessage extends ProtocolMessage with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
- sealed trait EncryptedView[+VT <: ViewType] extends Product with Serializable
An encrypted com.digitalasset.canton.data.ViewTree together with its com.digitalasset.canton.data.ViewType.
An encrypted com.digitalasset.canton.data.ViewTree together with its com.digitalasset.canton.data.ViewType. The correspondence is encoded via a path-dependent type. The type parameter
VT
exposes a upper bound on the type of view types that may be contained.The view tree is compressed before encryption.
- sealed trait EncryptedViewMessage[+VT <: ViewType] extends ProtocolMessage with HasRepresentativeProtocolVersion
An encrypted view message.
- sealed trait EncryptedViewMessageDecryptionError[+VT <: ViewType] extends Product with Serializable with PrettyPrinting
- final case class EncryptedViewMessageV0[+VT <: ViewType](submitterParticipantSignature: Option[Signature], viewHash: ViewHash, randomnessMap: Map[ParticipantId, Encrypted[SecureRandomness]], encryptedView: EncryptedView[VT], domainId: DomainId) extends EncryptedViewMessage[VT] with ProtocolMessageV0 with Product with Serializable
- final case class EncryptedViewMessageV1[+VT <: ViewType](submitterParticipantSignature: Option[Signature], viewHash: ViewHash, randomness: Seq[AsymmetricEncrypted[SecureRandomness]], encryptedView: EncryptedView[VT], domainId: DomainId, viewEncryptionScheme: SymmetricKeyScheme)(informeeParticipants: Option[Set[ParticipantId]]) extends EncryptedViewMessage[VT] with ProtocolMessageV1 with Product with Serializable
- final case class EnvelopeContent(message: ProtocolMessage)(representativeProtocolVersion: RepresentativeProtocolVersion[EnvelopeContent]) extends HasProtocolVersionedWrapper[EnvelopeContent] with Product with Serializable
- trait HasDomainId extends AnyRef
- trait HasRequestId extends AnyRef
- case class InformeeMessage(fullInformeeTree: FullInformeeTree)(protocolVersion: ProtocolVersion) extends MediatorRequest with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
The informee message to be sent to the mediator.
- case class LocalApprove()(representativeProtocolVersion: RepresentativeProtocolVersion[LocalVerdict]) extends LocalVerdict with Product with Serializable
- trait LocalReject extends LocalVerdict with TransactionError
- abstract class LocalRejectErrorCode extends ErrorCode with BaseLocalRejectErrorCode
Base type for ErrorCodes related to LocalReject, if the rejection does not (necessarily) occur due to malicious behavior.
- abstract class LocalRejectImpl extends LocalReject
Base class for LocalReject errors, if the rejection does not (necessarily) occur due to malicious behavior.
- sealed trait LocalVerdict extends Product with Serializable with PrettyPrinting with HasProtocolVersionedWrapper[LocalVerdict]
Possible verdicts on a transaction view from the participant's perspective.
Possible verdicts on a transaction view from the participant's perspective. The verdict can be
LocalApprove
,LocalReject
orMalformed
. The verdictsLocalReject
andMalformed
include areason
pointing out which checks in Phase 3 have failed. - sealed abstract class Malformed extends BaseAlarm with LocalReject
Base class for LocalReject errors, if the rejection occurs due to malicious behavior.
- abstract class MalformedErrorCode extends AlarmErrorCode with BaseLocalRejectErrorCode
Base type for ErrorCodes related to LocalReject, if the rejection is due to malicious behavior.
- case class MalformedMediatorRequestResult extends MediatorResult with SignedProtocolMessageContent with HasProtocolVersionedWrapper[MalformedMediatorRequestResult] with PrettyPrinting with Product with Serializable
Sent by the mediator to indicate that a mediator request was malformed.
Sent by the mediator to indicate that a mediator request was malformed. The request counts as being rejected and the request UUID will not be deduplicated.
- trait MediatorRequest extends ProtocolMessage
- case class MediatorResponse extends SignedProtocolMessageContent with HasProtocolVersionedWrapper[MediatorResponse] with HasDomainId with PrettyPrinting with Product with Serializable
Payload of a response sent to the mediator in reaction to a request.
- trait MediatorResult extends ProtocolVersionedMemoizedEvidence with HasDomainId with HasRequestId with SignedProtocolMessageContent
- trait ProtocolMessage extends Product with Serializable with HasDomainId with PrettyPrinting with HasRepresentativeProtocolVersion
Parent trait of messages that are sent through the sequencer
- trait ProtocolMessageV0 extends ProtocolMessage
- trait ProtocolMessageV1 extends ProtocolMessage
- final case class RegisterTopologyTransactionRequest extends ProtocolMessage with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
- final case class RegisterTopologyTransactionResponse[+Res <: RegisterTopologyTransactionResponseResult](requestedBy: Member, participant: ParticipantId, requestId: TopologyRequestId, results: Seq[Res], domainId: DomainId)(representativeProtocolVersion: RepresentativeProtocolVersion[Result]) extends ProtocolMessage with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
- sealed trait RegisterTopologyTransactionResponseResult extends AnyRef
- trait RegularMediatorResult extends MediatorResult
The mediator issues a regular mediator result for well-formed mediator requests.
The mediator issues a regular mediator result for well-formed mediator requests. Malformed mediator requests lead to a MalformedMediatorRequestResult.
- final case class RootHashMessage[+Payload <: RootHashMessagePayload](rootHash: RootHash, domainId: DomainId, viewType: ViewType, payload: Payload)(representativeProtocolVersion: RepresentativeProtocolVersion[ProtocolMessage]) extends ProtocolMessage with ProtocolMessageV0 with ProtocolMessageV1 with PrettyPrinting with Product with Serializable
One root hash message is sent for each participant involved in a mediator request that requires root hash messages.
One root hash message is sent for each participant involved in a mediator request that requires root hash messages. The root hash message is delivered to the participant and the mediator. The mediator checks that it receives the right root hash messages and that they all contain the root hash that the mediator request message specifies. The mediator also checks that all payloads have the same serialization and, if it can parse the mediator request envelope, that the payload fits to the mediator request.
- trait RootHashMessagePayload extends PrettyPrinting with HasCryptographicEvidence
Payloads of RootHashMessage
- case class SerializedRootHashMessagePayload(bytes: ByteString) extends RootHashMessagePayload with Product with Serializable
- case class SignedProtocolMessage[+M <: SignedProtocolMessageContent](message: M, signature: Signature)(representativeProtocolVersion: RepresentativeProtocolVersion[SignedProtocolMessage[SignedProtocolMessageContent]]) extends ProtocolMessage with ProtocolMessageV0 with ProtocolMessageV1 with HasProtocolVersionedWrapper[SignedProtocolMessage[SignedProtocolMessageContent]] with Product with Serializable
- trait SignedProtocolMessageContent extends ProtocolVersionedMemoizedEvidence with HasDomainId with PrettyPrinting with Product with Serializable
- case class TransactionResultMessage extends RegularMediatorResult with HasProtocolVersionedWrapper[TransactionResultMessage] with PrettyPrinting with Product with Serializable
Transaction result message that the mediator sends to all stakeholders of a confirmation request with its verdict.
Transaction result message that the mediator sends to all stakeholders of a confirmation request with its verdict. https://engineering.da-int.net/docs/platform-architecture-handbook/arch/canton/transactions.html#phase-6-broadcast-of-result
- type TransactionViewMessage = EncryptedViewMessage[TransactionViewType]
- sealed trait TransferDomainId extends Product with Serializable with PrettyPrinting
- case class TransferInDomainId(domain: DomainId) extends TransferDomainId with Product with Serializable
- case class TransferInMediatorMessage(tree: TransferInViewTree) extends MediatorRequest with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
Message sent to the mediator as part of a transfer-in request
Message sent to the mediator as part of a transfer-in request
- tree
The transfer-in view tree blinded for the mediator
- Exceptions thrown
java.lang.IllegalArgumentException
if the common data is blinded or the view is not blinded
- type TransferInResult = TransferResult[TransferInDomainId]
- case class TransferOutDomainId(domain: DomainId) extends TransferDomainId with Product with Serializable
- case class TransferOutMediatorMessage(tree: TransferOutViewTree) extends MediatorRequest with ProtocolMessageV0 with ProtocolMessageV1 with Product with Serializable
Message sent to the mediator as part of a transfer-out request
Message sent to the mediator as part of a transfer-out request
- tree
The transfer-out view tree blinded for the mediator
- Exceptions thrown
java.lang.IllegalArgumentException
if the common data is blinded or the view is not blinded
- type TransferOutResult = TransferResult[TransferOutDomainId]
- case class TransferResult[+Domain <: TransferDomainId] extends RegularMediatorResult with HasProtocolVersionedWrapper[TransferResult[TransferDomainId]] with PrettyPrinting with Product with Serializable
Mediator result for a transfer request
- case class VectorClock(sourceDomainId: DomainId, localTs: CantonTimestamp, partyId: LfPartyId, clock: Map[DomainId, CantonTimestamp]) extends PrettyPrinting with Product with Serializable
A vector clock represents the causal constraints that must be respected for a party at a certain point in time.
A vector clock represents the causal constraints that must be respected for a party at a certain point in time. Vector clocks are maintained per-domain
- sourceDomainId
The domain of the vector clock
- localTs
The timestamp on
sourceDomainId
specifying the time at which the causal constraints are valid- partyId
The party who has seen the causal information specified by
clock
- clock
The most recent timestamp on each domain that
partyId
has causally observed
- sealed trait Verdict extends Product with Serializable with PrettyPrinting with HasProtocolVersionedWrapper[Verdict]
Value Members
- val TransferInResult: TransferResult.type
- val TransferOutResult: TransferResult.type
- object AcsCommitment extends HasMemoizedProtocolVersionedWrapperCompanion[AcsCommitment] with Serializable
- object CausalityMessage extends HasProtocolVersionedCompanion[CausalityMessage] with Serializable
- object CommitmentPeriod extends Serializable
- object DeliveredTransferOutResult extends Serializable
- object DomainTopologyTransactionMessage extends HasProtocolVersionedCompanion[DomainTopologyTransactionMessage] with Serializable
- case object EmptyRootHashMessagePayload extends RootHashMessagePayload with Product with Serializable
- object EncryptedView extends Serializable
- object EncryptedViewMessage extends HasProtocolVersionedCompanion[EncryptedViewMessage[_]] with Serializable
- object EncryptedViewMessageDecryptionError extends Serializable
- object EncryptedViewMessageV0 extends Serializable
- object EncryptedViewMessageV1 extends Serializable
- object EnvelopeContent extends HasProtocolVersionedWithContextCompanion[EnvelopeContent, HashOps] with Serializable
- object InformeeMessage extends HasProtocolVersionedWithContextCompanion[InformeeMessage, HashOps] with Serializable
- object LocalApprove extends Serializable
- object LocalReject extends LocalRejectionGroup with Serializable
- object LocalVerdict extends HasProtocolVersionedCompanion[LocalVerdict] with Serializable
- object MalformedMediatorRequestResult extends HasMemoizedProtocolVersionedWrapperCompanion[MalformedMediatorRequestResult] with Serializable
- object MediatorRequest extends Serializable
- object MediatorResponse extends HasMemoizedProtocolVersionedWrapperCompanion[MediatorResponse] with Serializable
- object ProtocolMessage extends Serializable
- object RegisterTopologyTransactionRequest extends HasProtocolVersionedCompanion[RegisterTopologyTransactionRequest] with Serializable
- object RegisterTopologyTransactionResponse extends HasProtocolVersionedCompanion[RegisterTopologyTransactionResponse[RegisterTopologyTransactionResponseResult]] with Serializable
- object RegisterTopologyTransactionResponseResult
- object RegularMediatorResult extends Serializable
- object RootHashMessage extends HasProtocolVersionedWithContextCompanion[RootHashMessage[RootHashMessagePayload], (ByteString) => ParsingResult[RootHashMessagePayload]] with Serializable
- object SerializedRootHashMessagePayload extends Serializable
- object SignedProtocolMessage extends HasProtocolVersionedWithContextCompanion[SignedProtocolMessage[SignedProtocolMessageContent], HashOps] with Serializable
- object SignedProtocolMessageContent extends Serializable
- object TransactionResultMessage extends HasMemoizedProtocolVersionedWithContextCompanion[TransactionResultMessage, HashOps] with Serializable
- object TransferDomainId extends Serializable
- object TransferInDomainId extends Serializable
- object TransferInMediatorMessage extends HasProtocolVersionedWithContextCompanion[TransferInMediatorMessage, HashOps] with Serializable
- object TransferOutDomainId extends Serializable
- object TransferOutMediatorMessage extends HasProtocolVersionedWithContextCompanion[TransferOutMediatorMessage, HashOps] with Serializable
- object TransferResult extends HasMemoizedProtocolVersionedWrapperCompanion[TransferResult[TransferDomainId]] with Serializable
- object VectorClock extends Serializable
- object Verdict extends HasProtocolVersionedCompanion[Verdict] with ProtocolVersionedCompanionDbHelpers[Verdict] with Serializable