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 synchronizer at a given time.
A commitment to the active contract set (ACS) that is shared between two participants on a given synchronizer 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. - final case class AssignmentMediatorMessage(tree: AssignmentViewTree, submittingParticipantSignature: Signature)(representativeProtocolVersion: RepresentativeProtocolVersion[AssignmentMediatorMessage.type]) extends ReassignmentMediatorMessage with Product with Serializable
Message sent to the mediator as part of an assignment request
Message sent to the mediator as part of an assignment request
- tree
The assignment view tree blinded for the mediator
- Exceptions thrown
java.lang.IllegalArgumentException
if the common data is blinded or the view is not blinded
- final case class CommitmentPeriod(fromExclusive: CantonTimestampSecond, periodLength: PositiveSeconds) extends PrettyPrinting with Product with Serializable
- sealed trait CommitmentPeriodState extends Product with Serializable with PrettyPrinting
- case class ConfirmationResponse extends PrettyPrinting with Product with Serializable
Payload of a response sent to the mediator in reaction to a confirmation request.
Payload of a response sent to the mediator in reaction to a confirmation request.
- Annotations
- @SuppressWarnings()
- final case class ConfirmationResponses extends SignedProtocolMessageContent with HasProtocolVersionedWrapper[ConfirmationResponses] with HasSynchronizerId with PrettyPrinting with Product with Serializable
Aggregates multiple confirmation responses to be sent to the mediator in reaction to a confirmation request.
- case class ConfirmationResultMessage extends ProtocolVersionedMemoizedEvidence with HasSynchronizerId with HasRequestId with SignedProtocolMessageContent with HasProtocolVersionedWrapper[ConfirmationResultMessage] with PrettyPrinting with Product with Serializable
Result message that the mediator sends to all informees of a request with its verdict.
Result message that the mediator sends to all informees of a request with its verdict.
- Annotations
- @SuppressWarnings()
- type DefaultOpenEnvelope = OpenEnvelope[ProtocolMessage]
- final case class DeliveredUnassignmentResult extends PrettyPrinting with Product with Serializable
Invariants:
Invariants:
- Deliver event contains exactly one protocol message with viewType == UnassignmentViewType
- Verdict of this event is Approve
- 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.
- final case class EncryptedViewMessage[+VT <: ViewType](submittingParticipantSignature: Option[Signature], viewHash: ViewHash, sessionKeys: NonEmpty[Seq[AsymmetricEncrypted[SecureRandomness]]], encryptedView: EncryptedView[VT], synchronizerId: SynchronizerId, viewEncryptionScheme: SymmetricKeyScheme)(representativeProtocolVersion: RepresentativeProtocolVersion[EncryptedViewMessage.type]) extends UnsignedProtocolMessage with Product with Serializable
An encrypted view message.
An encrypted view message.
See https://engineering.da-int.net/docs/platform-architecture-handbook/arch/canton/tx-data-structures.html#transaction-hashes-and-views The view message encrypted with symmetric key that is derived from the view's randomness.
- viewHash
Transaction view hash in plain text - included such that the recipient can prove to a 3rd party that it has correctly decrypted the
viewTree
- sessionKeys
a sequence of encrypted random values to each recipient of the view. These values are encrypted and are used to derive the symmetric session key for the view. Instead of sending a crypto.SymmetricKey, which could cause formatting issues (e.g. different participants with different providers and, therefore, different key formats), we send an encrypted crypto.SecureRandomness.
- sealed trait EncryptedViewMessageError extends Product with Serializable with PrettyPrinting
- final case class EnvelopeContent(message: UnsignedProtocolMessage)(representativeProtocolVersion: RepresentativeProtocolVersion[EnvelopeContent.type]) extends HasProtocolVersionedWrapper[EnvelopeContent] with Product with Serializable
- trait HasRequestId extends AnyRef
- trait HasSynchronizerId extends AnyRef
- case class InformeeMessage(fullInformeeTree: FullInformeeTree, submittingParticipantSignature: Signature)(protocolVersion: ProtocolVersion) extends MediatorConfirmationRequest with UnsignedProtocolMessage with Product with Serializable
The informee message to be sent to the mediator.
The informee message to be sent to the mediator.
- Annotations
- @SuppressWarnings()
- final case class LocalApprove()(representativeProtocolVersion: RepresentativeProtocolVersion[LocalVerdict.type]) extends LocalVerdict with Product with Serializable
- final case class LocalReject(reason: Status, isMalformed: Boolean)(representativeProtocolVersion: RepresentativeProtocolVersion[LocalVerdict.type]) extends LocalVerdict with TransactionRejection with PrettyPrinting with Product with Serializable
- sealed trait LocalVerdict extends Product with Serializable with PrettyPrinting with HasProtocolVersionedWrapper[LocalVerdict]
Possible verdicts on a transaction request from the participant's perspective.
Possible verdicts on a transaction request from the participant's perspective. The verdict can be
LocalApprove
orLocalReject
. The verdictLocalReject
includes areason
pointing out which checks in Phase 3 have failed, and a flagisMalformed
indicating whether the rejection occurs due to malicious behavior. - trait MediatorConfirmationRequest extends UnsignedProtocolMessage
- trait ProtocolMessage extends Product with Serializable with HasSynchronizerId with PrettyPrinting with HasRepresentativeProtocolVersion
Parent trait of messages that are sent through the sequencer
- trait ReassignmentMediatorMessage extends MediatorConfirmationRequest with UnsignedProtocolMessage
Message sent to the mediator as part of an unassignment or assignment request
Message sent to the mediator as part of an unassignment or assignment request
- Exceptions thrown
java.lang.IllegalArgumentException
if the common data is blinded or the view is not blinded
- final case class ReceivedAcsCommitment(synchronizerId: SynchronizerId, interval: CommitmentPeriod, originCounterParticipant: ParticipantId, receivedCommitment: Option[HashedCommitmentType], ownCommitment: Option[HashedCommitmentType], state: CommitmentPeriodState) extends Product with Serializable
- final case class RootHashMessage[+Payload <: RootHashMessagePayload](rootHash: RootHash, synchronizerId: SynchronizerId, viewType: ViewType, submissionTopologyTimestamp: CantonTimestamp, payload: Payload)(representativeProtocolVersion: RepresentativeProtocolVersion[RootHashMessage.type]) extends UnsignedProtocolMessage with PrettyPrinting with Product with Serializable
One root hash message is sent for each participant involved in a mediator confirmation request that requires root hash messages.
One root hash message is sent for each participant involved in a mediator confirmation 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 confirmation request message specifies. The mediator also checks that all payloads have the same serialization and, if it can parse the mediator confirmation request envelope, that the payload fits to the mediator confirmation request.
- trait RootHashMessagePayload extends PrettyPrinting with HasCryptographicEvidence
Payloads of RootHashMessage
- final case class SentAcsCommitment(synchronizerId: SynchronizerId, interval: CommitmentPeriod, counterParticipant: ParticipantId, sentCommitment: Option[HashedCommitmentType], counterCommitment: Option[HashedCommitmentType], state: ValidSentPeriodState) extends Product with Serializable
- final case class SerializedRootHashMessagePayload(bytes: ByteString) extends RootHashMessagePayload with Product with Serializable
- final case class SetTrafficPurchasedMessage extends ProtocolVersionedMemoizedEvidence with HasProtocolVersionedWrapper[SetTrafficPurchasedMessage] with PrettyPrinting with SignedProtocolMessageContent with Product with Serializable
- case class SignedProtocolMessage[+M <: SignedProtocolMessageContent](typedMessage: TypedSignedProtocolMessageContent[M], signatures: NonEmpty[Seq[Signature]])(representativeProtocolVersion: RepresentativeProtocolVersion[SignedProtocolMessage.type]) extends ProtocolMessage with HasProtocolVersionedWrapper[SignedProtocolMessage[SignedProtocolMessageContent]] with Product with Serializable
There can be any number of signatures.
There can be any number of signatures. Every signature covers the serialization of the
typedMessage
and needs to be valid.- Annotations
- @SuppressWarnings()
- trait SignedProtocolMessageContent extends ProtocolVersionedMemoizedEvidence with HasSynchronizerId with PrettyPrinting with Product with Serializable
- final case class SynchronizerSearchCommitmentPeriod(indexedSynchronizer: IndexedSynchronizer, fromExclusive: CantonTimestamp, toInclusive: CantonTimestamp) extends PrettyPrinting with Product with Serializable
- final case class TopologyTransactionsBroadcast(synchronizerId: SynchronizerId, transactions: SignedTopologyTransactions[TopologyChangeOp, TopologyMapping])(representativeProtocolVersion: RepresentativeProtocolVersion[TopologyTransactionsBroadcast.type]) extends UnsignedProtocolMessage with Product with Serializable
- final case class TransactionConfirmationRequest(informeeMessage: InformeeMessage, viewEnvelopes: Seq[OpenEnvelope[TransactionViewMessage]], protocolVersion: ProtocolVersion) extends PrettyPrinting with HasLoggerName with Product with Serializable
Represents the confirmation request for a transaction as sent from a participant node to the sequencer.
- trait TransactionRejection extends AnyRef
- type TransactionViewMessage = EncryptedViewMessage[TransactionViewType]
- case class TypedSignedProtocolMessageContent[+M <: SignedProtocolMessageContent] extends HasProtocolVersionedWrapper[TypedSignedProtocolMessageContent[SignedProtocolMessageContent]] with ProtocolVersionedMemoizedEvidence with Product with Serializable
- Annotations
- @SuppressWarnings()
- final case class UnassignmentMediatorMessage(tree: UnassignmentViewTree, submittingParticipantSignature: Signature)(representativeProtocolVersion: RepresentativeProtocolVersion[UnassignmentMediatorMessage.type]) extends ReassignmentMediatorMessage with Product with Serializable
Message sent to the mediator as part of an unassignment request
Message sent to the mediator as part of an unassignment request
- tree
The unassignment view tree blinded for the mediator
- Exceptions thrown
java.lang.IllegalArgumentException
if the common data is blinded or the view is not blinded
- trait UnsignedProtocolMessage extends ProtocolMessage
Marker trait for ProtocolMessages that are not a SignedProtocolMessage
- sealed trait ValidSentPeriodState extends CommitmentPeriodState
- sealed trait Verdict extends Product with Serializable with PrettyPrinting with HasProtocolVersionedWrapper[Verdict]
Verdicts sent from the mediator to the participants inside the ConfirmationResultMessage
Value Members
- object AcsCommitment extends VersioningCompanionMemoization[AcsCommitment] with Serializable
- object AssignmentMediatorMessage extends VersioningCompanionContext[AssignmentMediatorMessage, (HashOps, Target[ProtocolVersion])] with Serializable
- object CommitmentPeriod extends Serializable
- object CommitmentPeriodState extends Serializable
- object ConfirmationResponse extends Serializable
- object ConfirmationResponses extends VersioningCompanionMemoization[ConfirmationResponses] with Serializable
- object ConfirmationResultMessage extends VersioningCompanionMemoization[ConfirmationResultMessage] with Serializable
- object DefaultOpenEnvelopesFilter
- object DeliveredUnassignmentResult extends Serializable
- case object EmptyRootHashMessagePayload extends RootHashMessagePayload with Product with Serializable
- object EncryptedView extends Serializable
- object EncryptedViewMessage extends VersioningCompanion[EncryptedViewMessage[ViewType]] with Serializable
- object EncryptedViewMessageError extends Serializable
- object EnvelopeContent extends VersioningCompanionContextPVValidation2[EnvelopeContent, HashOps] with Serializable
- object InformeeMessage extends VersioningCompanionContext[InformeeMessage, (HashOps, ProtocolVersion)] with Serializable
- object LocalApprove extends Serializable
- object LocalReject extends Serializable
- object LocalVerdict extends VersioningCompanion[LocalVerdict] with Serializable
- object MediatorConfirmationRequest extends Serializable
- object ProtocolMessage extends Serializable
- object ReceivedAcsCommitment extends Serializable
- object RootHashMessage extends VersioningCompanionContext[RootHashMessage[RootHashMessagePayload], (ByteString) => ParsingResult[RootHashMessagePayload]] with Serializable
- object RootHashMessageRecipients extends HasLoggerName
- object SentAcsCommitment extends Serializable
- object SerializedRootHashMessagePayload extends Serializable
- object SetTrafficPurchasedMessage extends VersioningCompanionMemoization[SetTrafficPurchasedMessage] with Serializable
- object SignedProtocolMessage extends VersioningCompanionContext[SignedProtocolMessage[SignedProtocolMessageContent], ProtocolVersion] with Serializable
- object SignedProtocolMessageContent extends Serializable
- object TopologyTransactionsBroadcast extends VersioningCompanionContext[TopologyTransactionsBroadcast, ProtocolVersion] with Serializable
- object TypedSignedProtocolMessageContent extends VersioningCompanionContextMemoization[TypedSignedProtocolMessageContent[SignedProtocolMessageContent], ProtocolVersion] with Serializable
- object UnassignmentMediatorMessage extends VersioningCompanionContext[UnassignmentMediatorMessage, (HashOps, Source[ProtocolVersionValidation])] with Serializable
- object Verdict extends VersioningCompanion[Verdict] with ProtocolVersionedCompanionDbHelpers[Verdict] with Serializable