package protocol
Provides shorthands for general purpose types.
Most notably, it provides a facade for Daml-LF transactions and nodes. By default, code should access Daml-LF transaction and nodes types through this facade.
- Alphabetic
- By Inheritance
- protocol
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package hash
- package messages
This package contains data structures used in the transaction protocol.
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.
- package v30
Type Members
- final case class AcsCommitmentsCatchUpParameters(catchUpIntervalSkip: PositiveInt, nrIntervalsToTriggerCatchUp: PositiveInt) extends PrettyPrinting with Product with Serializable
The class specifies the catch-up parameters governing the catch-up mode of a participant lagging behind with its ACS commitments computation.
The class specifies the catch-up parameters governing the catch-up mode of a participant lagging behind with its ACS commitments computation. ***** Parameter recommendations A high catchUpIntervalSkip outputs more commitments and is slower to catch-up. For equal catchUpIntervalSkip, a high nrIntervalsToTriggerCatchUp is less aggressive to trigger the catch-up mode.
***** Examples (5,2) and (2,5) both trigger the catch-up mode when the processor lags behind by at least 10 reconciliation intervals. The former catches up quicker, but computes fewer commitments, whereas the latter computes more commitments but is slower to catch-up.
- catchUpIntervalSkip
The number of reconciliation intervals that the participant skips in catch-up mode. A catch-up interval thus has a length of reconciliation interval *
catchUpIntervalSkip
. All participants must catch up to the same timestamp. To ensure this, the interval count starts at EPOCH and gets incremented in catch-up intervals. For example, a reconciliation interval of 5 seconds, and a catchUpIntervalSkip of 2 (intervals), when a participant receiving a valid commitment at 15 seconds with timestamp 20 seconds, will perform catch-up from 10 seconds to 20 seconds (skipping 15 seconds commitment).- nrIntervalsToTriggerCatchUp
The number of intervals a participant should lag behind in order to trigger catch-up mode. If a participant's current timestamp is behind the timestamp of valid received commitments by
reconciliationInterval
*catchUpIntervalSkip
*nrIntervalsToTriggerCatchUp
, then the participant triggers catch-up mode.
- Exceptions thrown
java.lang.IllegalArgumentException
when catchUpIntervalSkip * nrIntervalsToTriggerCatchUp overflows.
- sealed abstract class CantonContractIdV1Version extends CantonContractIdVersion
- sealed trait CantonContractIdV2Version extends CantonContractIdVersion
- sealed trait CantonContractIdVersion extends Ordered[CantonContractIdVersion] with Serializable with Product
- sealed trait ContractAuthenticationData extends PrettyPrinting
- final case class ContractAuthenticationDataV1(salt: Salt)(contractIdVersion: CantonContractIdV1Version) extends ContractAuthenticationData with Product with Serializable
Contract authentication data for contract IDs of version com.digitalasset.daml.lf.value.Value.ContractId.V1
- final case class ContractAuthenticationDataV2() extends ContractAuthenticationData with Product with Serializable
- class ContractIdAbsolutizer extends AnyRef
Replaces all relative contract IDs in a contract ID container with their absolutized version
- final case class ContractIdSuffixV1(contractIdVersion: CantonContractIdV1Version, unicum: Unicum) extends RelativeContractIdSuffix with Product with Serializable
- class ContractIdSuffixer extends AnyRef
Turns local contract IDs into relative contract IDs
- type ContractInstance = GenContractInstance { type InstCreatedAtTime <: com.digitalasset.daml.lf.transaction.CreationTime.CreatedAt }
A contract instance with a known creation time
- final case class ContractMetadata extends HasVersionedWrapper[ContractMetadata] with PrettyPrinting with Product with Serializable
Metadata for a contract.
Metadata for a contract.
- Exceptions thrown
ContractMetadata.InvalidContractMetadata
if some maintainers are not signatories or some signatories are not stakeholders.
- final case class ContractSalt(unwrap: Salt) extends AnyVal with Product with Serializable
A blinded cryptographic hash of the information that ensures uniqueness of Unicums in Canton.
- final case class CreatedContract extends PrettyPrinting with Product with Serializable
- final case class CreatedContractInView(contract: NewContractInstance, consumedInView: Boolean, rolledBack: Boolean) extends Product with Serializable
- consumedInView
Whether the contract is consumed in the view. com.digitalasset.canton.protocol.WellFormedTransaction checks that a created contract can only be used in the same or deeper rollback scopes as the create, so if
rolledBack
is true thenconsumedInView
is false.- rolledBack
Whether the contract creation has a different rollback scope than the view.
- final case class DynamicSequencingParameters(payload: Option[ByteString])(representativeProtocolVersion: RepresentativeProtocolVersion[DynamicSequencingParameters.type]) extends HasProtocolVersionedWrapper[DynamicSequencingParameters] with PrettyPrinting with Product with Serializable
Synchronizer-wide dynamic sequencing parameters.
Synchronizer-wide dynamic sequencing parameters.
- payload
The opaque payload of the synchronizer-wide dynamic sequencing parameters; its content is sequencer-dependent and synchronizer owners are responsible for ensuring that it can be correctly interpreted by the sequencers in use. If no payload is provided, sequencer-specific default values are used. If the payload cannot be correctly interpreted or the parameters cannot be set due to dynamic conditions, their value will not change.
- final case class DynamicSequencingParametersWithValidity(parameters: DynamicSequencingParameters, validFrom: CantonTimestamp, validUntil: Option[CantonTimestamp], synchronizerId: SynchronizerId) extends Product with Serializable
Dynamic sequencing parameters and their validity interval.
Dynamic sequencing parameters and their validity interval.
- validFrom
Start point of the validity interval (exclusive)
- validUntil
End point of the validity interval (inclusive)
- final case class DynamicSynchronizerParameters extends HasProtocolVersionedWrapper[DynamicSynchronizerParameters] with PrettyPrinting with Product with Serializable
- Exceptions thrown
DynamicSynchronizerParameters$.InvalidDynamicSynchronizerParameters
ifmediatorDeduplicationTimeout
is less than twice ofpreparationTimeRecordTimeTolerance
.
- class DynamicSynchronizerParametersLookup[P] extends NamedLogging
This class allows to query synchronizer parameters easily.
This class allows to query synchronizer parameters easily. Type parameter
P
is the type of the returned value. - final case class DynamicSynchronizerParametersWithValidity(parameters: DynamicSynchronizerParameters, validFrom: CantonTimestamp, validUntil: Option[CantonTimestamp]) extends Product with Serializable
Dynamic synchronizer parameters and their validity interval.
Dynamic synchronizer parameters and their validity interval. Mostly so that we can perform additional checks.
- validFrom
Start point of the validity interval (exclusive)
- validUntil
End point of the validity interval (inclusive)
- final case class ExternalAuthorization(signatures: Map[PartyId, Seq[Signature]], hashingSchemeVersion: HashingSchemeVersion)(representativeProtocolVersion: RepresentativeProtocolVersion[ExternalAuthorization.type]) extends HasProtocolVersionedWrapper[ExternalAuthorization] with PrettyPrinting with Product with Serializable
- sealed trait GenContractInstance extends PrettyPrinting
Wraps a com.digitalasset.daml.lf.transaction.FatContractInstance and ensures the following invariants via smart constructors:
Wraps a com.digitalasset.daml.lf.transaction.FatContractInstance and ensures the following invariants via smart constructors:
- The contract instance can be serialized
- The contract ID format is known
- trait HasSerializableContract extends AnyRef
- final case class InputContract(contract: GenContractInstance, consumed: Boolean) extends PrettyPrinting with Product with Serializable
- consumed
Whether this contract is consumed in the core of the view this InputContract belongs to.
- See also
com.digitalasset.canton.data.ViewParticipantData.coreInputs
- type LedgerTransactionNodeStatistics = TransactionNodeStatistics
- type LfActionNode = Action
Shorthand for Daml-LF "action" nodes (all node types besides "rollback" nodes)
- type LfChoiceName = Name
- type LfCommittedTransaction = T
- type LfContractId = ContractId
Shorthand for Daml-LF contract ids
- type LfFatContractInst = FatContractInstance { type CreatedAtTime <: com.digitalasset.daml.lf.transaction.CreationTime.CreatedAt }
Shorthand for contract instances with a known creation time.
- type LfGlobalKey = GlobalKey
Shorthand for global contract keys (with template_id).
- type LfGlobalKeyWithMaintainers = GlobalKeyWithMaintainers
- type LfHash = Hash
- type LfLanguageVersion = LanguageVersion
- type LfLeafOnlyActionNode = LeafOnlyAction
Shorthand for leaf only action nodes.
- type LfNode = Node
Shorthand for Daml-LF nodes.
Shorthand for Daml-LF nodes. Nodes include
NodeId
s of their children. Children need to be looked up in the underlying transaction. - type LfNodeCreate = Create
Shorthand for create nodes.
- type LfNodeExercises = Exercise
Shorthand for exercise nodes.
Shorthand for exercise nodes. Nodes include
NodeId
s of their children. Children need to be looked up in the underlying transaction. - type LfNodeFetch = Fetch
Shorthand for fetch nodes.
- type LfNodeId = NodeId
- type LfNodeLookupByKey = LookupByKey
Shorthand for lookup by key nodes.
- type LfNodeRollback = Rollback
Shorthand for rollback nodes.
- type LfSubmittedTransaction = T
- type LfTemplateId = FullReference[PackageId]
- type LfThinContractInst = Versioned[ThinContractInstance]
- type LfTransaction = Transaction
Shorthand for Daml-LF transaction wrapped in versioned transaction in turn wrapped in committed or submitted transaction
- type LfVersionedTransaction = VersionedTransaction
- sealed trait LocalAbstainError extends LocalError
- abstract class LocalAbstainErrorCode extends ErrorCode
- sealed abstract class LocalAbstainErrorImpl extends LocalAbstainError
- sealed trait LocalContractId extends Product with Serializable
Represents a local contract ID without suffix
- trait LocalError extends TransactionError with PrettyPrinting with Product with Serializable
- sealed trait LocalRejectError extends LocalError
- abstract class LocalRejectErrorCode extends ErrorCode
Base type for ErrorCodes related to LocalReject, if the rejection does not (necessarily) occur due to malicious behavior.
- sealed abstract class LocalRejectErrorImpl extends LocalRejectError
Base class for LocalReject errors, if the rejection does not (necessarily) occur due to malicious behavior.
- sealed abstract class Malformed extends BaseAlarm with LocalRejectError
Base class for LocalReject errors, if the rejection occurs due to malicious behavior.
- final case class MalformedContractId(id: String, message: String) extends Product with Serializable
- abstract class MalformedErrorCode extends AlarmErrorCode
Base type for ErrorCodes related to LocalRejectError, if the rejection is due to malicious behavior.
- type NewContractInstance = GenContractInstance { type InstCreatedAtTime <: com.digitalasset.daml.lf.transaction.CreationTime }
- sealed trait OnboardingRestriction extends Product with Serializable with PrettyPrinting
Onboarding restrictions for new participants joining a synchronizer
Onboarding restrictions for new participants joining a synchronizer
The synchronizer administrators can set onboarding restrictions to control which participant can join the synchronizer.
- trait Phase37Processor[RequestBatch] extends AnyRef
- final case class ProtocolSymmetricKey(key: SymmetricKey)(representativeProtocolVersion: RepresentativeProtocolVersion[ProtocolSymmetricKey.type]) extends HasProtocolVersionedWrapper[ProtocolSymmetricKey] with Product with Serializable
Wrapper for a symmetric key when tied to a particular protocol version
- sealed abstract class ReassignmentId extends PrettyPrinting
- sealed trait RelativeContractIdSuffix extends AnyRef
Represents the suffix of a relative contract ID, i.e., between suffixing and absolutization
- final case class RequestAndRootHashMessage[RequestEnvelope](requestEnvelopes: NonEmpty[Seq[RequestEnvelope]], rootHashMessage: RootHashMessage[SerializedRootHashMessagePayload], mediator: MediatorGroupRecipient, isReceipt: Boolean) extends Product with Serializable
Request messages, along with the root hash message, the mediator ID that received the root hash message, and whether the delivery was a receipt or not (i.e.
Request messages, along with the root hash message, the mediator ID that received the root hash message, and whether the delivery was a receipt or not (i.e. contained a message ID).
- final case class RequestId(ts: CantonTimestamp) extends PrettyPrinting with Product with Serializable
A confirmation request is identified by the sequencer timestamp.
- type RequestProcessor[VT <: ViewType] = Phase37Processor[RequestAndRootHashMessage[OpenEnvelope[EncryptedViewMessage[VT]]]]
- final case class ResolvedKey(key: LfVersioned[LfGlobalKey], resolution: SerializableKeyResolution) extends Product with Serializable
- final case class RollbackContext extends PrettyPrinting with Ordered[RollbackContext] with Product with Serializable
RollbackContext tracks the location of lf transaction nodes or canton participant views within a hierarchy of LfNodeRollback suitable for maintaining the local position within the hierarchy of rollback nodes when iterating over a transaction.
- case class RootHash(hash: Hash) extends PrettyPrinting with HasCryptographicEvidence with Product with Serializable
The root hash of a Merkle tree used as an identifier for requests.
The root hash of a Merkle tree used as an identifier for requests.
Extends com.digitalasset.canton.serialization.HasCryptographicEvidence so that RootHash's serialization can be used to compute the hash of an inner Merkle node from its children using RootHash.getCryptographicEvidence. Serialization to Protobuf fields can be done with RootHash.toProtoPrimitive
Here is how we use it:
- Every participant gets a “partially blinded” Merkle tree, defining the locations of the views they are privy to.
- That Merkle tree has a root. That root has a hash. That’s the root hash.
- The mediator receives a fully blinded Merkle tree, with the same hash.
- The submitting participant will send for each receiving participant an additional “root hash message” in the same batch. That message will contain the same hash, with recipients (participant, mediator).
- The mediator will check that all participants mentioned in the tree received a root hash message and that all hashes are equal.
- Once the mediator sends out the verdict, the verdict will include the tree structure and thus the root hash. Hence, the participant will now have certainty about the mediator having checked all root hash messages and having observed the same tree structure.
- Annotations
- @SuppressWarnings()
- case class SerializableContract(contractId: LfContractId, rawContractInstance: SerializableRawContractInstance, metadata: ContractMetadata, ledgerCreateTime: CreatedAt, authenticationData: ContractAuthenticationData) extends HasVersionedWrapper[SerializableContract] with PrettyPrinting with Product with Serializable
Represents a serializable contract.
Represents a serializable contract.
- contractId
The ID of the contract.
- rawContractInstance
The raw instance of the contract.
- metadata
The metadata with stakeholders and signatories; can be computed from contract instance
- ledgerCreateTime
The ledger time of the transaction creating the contract
- Annotations
- @SuppressWarnings()
- final case class SerializableDeduplicationPeriod(deduplicationPeriod: DeduplicationPeriod) extends Product with Serializable
- final case class SerializableRawContractInstance extends MemoizedEvidenceWithFailure[EncodeError] with Product with Serializable
Represents a serializable contract instance and memoizes the serialization.
- final case class Stakeholders extends HasVersionedWrapper[Stakeholders] with PrettyPrinting with Product with Serializable
- final case class StaticSynchronizerParameters(requiredSigningSpecs: RequiredSigningSpecs, requiredEncryptionSpecs: RequiredEncryptionSpecs, requiredSymmetricKeySchemes: NonEmpty[Set[SymmetricKeyScheme]], requiredHashAlgorithms: NonEmpty[Set[HashAlgorithm]], requiredCryptoKeyFormats: NonEmpty[Set[CryptoKeyFormat]], requiredSignatureFormats: NonEmpty[Set[SignatureFormat]], protocolVersion: ProtocolVersion, serial: NonNegativeInt) extends HasProtocolVersionedWrapper[StaticSynchronizerParameters] with PrettyPrinting with Product with Serializable
- final case class StoredParties(parties: SortedSet[LfPartyId]) extends HasVersionedWrapper[StoredParties] with Product with Serializable
- final case class TransactionId(hash: Hash) extends HasCryptographicEvidence with Product with Serializable
A hash-based transaction id.
- final case class TransactionMetadata(ledgerTime: CantonTimestamp, preparationTime: CantonTimestamp, seeds: Map[LfNodeId, LfHash]) extends Product with Serializable
Collects the metadata of a LF transaction to the extent that is needed in Canton
Collects the metadata of a LF transaction to the extent that is needed in Canton
- ledgerTime
The ledger time of the transaction
- preparationTime
The preparation time of the transaction
- seeds
The node seeds by node ID
- final case class Unicum(unwrap: Hash) extends AnyVal with Product with Serializable
A hash-based identifier for contracts.
A hash-based identifier for contracts. Must be paired with a discriminator to obtain a complete contract ID.
- class UnicumGenerator extends AnyRef
Generates ContractSalts and Unicums for contract IDs such that the Unicum is a cryptographic commitment to the following:
Generates ContractSalts and Unicums for contract IDs such that the Unicum is a cryptographic commitment to the following:
- The com.digitalasset.canton.topology.SynchronizerId of the transaction that creates the contract
- The com.digitalasset.canton.topology.MediatorId of the mediator that handles the transaction request
- The
UUID
of the transaction that creates the contract - The com.digitalasset.canton.data.ViewPosition of the view whose core creates the contract
- The index of the create node within the view
- The ledger time when the contract was created
- The template ID and the template arguments of the contract, including the agreement text
The commitment is implemented as a blinded hash with the com.digitalasset.canton.data.ViewParticipantData's salt as the blinding factor.
The above data is split into two groups:
- com.digitalasset.canton.topology.SynchronizerId,
com.digitalasset.canton.topology.MediatorId, the
UUID
, the com.digitalasset.canton.data.ViewPosition, and the index contribute to the blinded hash of the ContractSalt. - The ledger time and the template arguments
The Unicum is then the cryptographic hash of the ContractSalt and the second group.
The ContractSalt contains all the information that ensures uniqueness of contract IDs in Canton. The second group contains the information that is relevant for using the contract in transactions. The commitment to the information in the second group can be opened by revealing the ContractSalt. Since the ContractSalt is a blinded hash, such an opening does not reveal information about the data in the first group.
Properties
Global Uniqueness
If a transaction is added to the virtual synchronizer ledger for a given synchronizer, then the Unicum is globally unique unless a hash collision occurs.
Contracts with the same Unicum must run over the same synchronizer, have the same transaction UUID, and are handled by the same mediator. The definition of the virtual synchronizer ledger ensures that transaction UUIDs are unique within the ledger effective time tolerance and within the mediator handling the request, and that the sequencing time deviates from the ledger time by at most this tolerance. So two contracts with the same Unicum must be generated by the same transaction. However, the com.digitalasset.canton.data.ViewPosition and the create index uniquely identify the node in the transaction that creates the contract.
We include both the com.digitalasset.canton.topology.SynchronizerId and the com.digitalasset.canton.topology.MediatorId in the ContractSalt because we cannot exclude that mediators on different synchronizers happen to have the same identifier and there may be mupltiple mediators on a synchronizer.
No Information Leak of Template Arguments
If the submitter is honest and chooses a random transaction seed, the Unicum does not leak information about template arguments.
The transaction seed's randomness propagates to the action seed through the seed derivation scheme. Since the honest submitter does not leak the transaction seed and shows the action seed only to the witnesses of the view, the ContractSalt looks random to non-witnesses of the view. Accordingly, the ContractSalt blinds the template arguments.
Authentication of Contract Details
The Unicum authenticates the contract details (ledger time and template arguments) if the hash function is preimage resistant.
By checking the hash of the ContractSalt and the contract details against the Unicum, everyone can verify that they fit together. As the hash function is preimage resistant, it is therefore computationally infeasible for a participant to find a different ContractSalt such that different contract details lead to the same hash.
No Information Leak of Contract Creation
Participants learning about the contract only through divulgence or disclosure do not learn in which transaction the contract was created unless the submitter or witnesses of the creation leak this information.
By the honesty assumption, the action seed is a random value to those participants. Accordingly, since the ContractSalt contains all the information that ties the contract to a particular transaction, the participants cannot say which transaction with the same ledger time created the contract.
No Information Leak of Contract Details
The Unicum does not leak the contract details when a contract ID is shown to a third party if the submitter and all witnesses and divulgees are honest.
By the honesty assumption, the action seed is a random value to the third party, and so is the ContractSalt. This entropy hides the contract details to the third party.
- case class ViewHash(hash: Hash) extends PrettyPrinting with Product with Serializable
A hash-based transaction view id
A hash-based transaction view id
Views from different requests may have the same view hash.
- Annotations
- @SuppressWarnings()
- final case class WellFormedTransaction[+S <: Stage] extends Product with Serializable
Used to mark a transaction to be well-formed.
Used to mark a transaction to be well-formed. That means:
tx
is well-formed according to the Daml-LF definition, i.e., a root node is not child of another node and every non-root node has exactly one parent and is reachable from a root node. (No cycles, no sharing, no orphaned node).- All node Ids are non-negative.
- The type parameter
S
determines whether all create nodes have suffixed IDs or none. - Create nodes have unique contract ids of shape
com.digitalasset.daml.lf.value.Value.ContractId
. - The contract id of a create node is not referenced before the node.
- The contract id of a rolled back create node is not referenced outside its rollback scope in an active-contracts position.
- Every action node has at least one signatory.
- Every signatory is also a stakeholder.
- Fetch actors are defined.
- All created contract instances and choice arguments in the transaction can be serialized.
- metadata contains seeds exactly for those node IDs from
tx
that should have a seed (creates and exercises). - Keys of transaction nodes don't contain contract IDs.
- The maintainers of keys are non-empty.
- ByKey nodes have a key.
- All parties referenced by the transaction can be converted to com.digitalasset.canton.topology.PartyId
- Every rollback node has at least one child and no rollback node appears at the root unless the transaction has been merged by Canton.
- final case class WithContractMetadata[+A](x: A, metadata: ContractMetadata) extends Product with Serializable
- final case class WithRollbackScope[T](rbScope: RollbackScope, unwrap: T) extends Product with Serializable
Value Members
- val DummyTransactionVersion: LfLanguageVersion
- val LedgerTransactionNodeStatistics: TransactionNodeStatistics.type
- val LfChoiceName: ChoiceName.type
- val LfCommittedTransaction: CommittedTransaction.type
- val LfContractId: ContractId.type
- val LfFatContractInst: FatContractInstance.type
- val LfGlobalKey: GlobalKey.type
- val LfGlobalKeyWithMaintainers: GlobalKeyWithMaintainers.type
- val LfHash: Hash.type
- val LfLanguageVersion: LanguageVersion.type
- val LfNodeCreate: Create.type
- val LfNodeExercises: Exercise.type
- val LfNodeFetch: Fetch.type
- val LfNodeId: NodeId.type
- val LfNodeLookupByKey: LookupByKey.type
- val LfNodeRollback: Rollback.type
- val LfSubmittedTransaction: SubmittedTransaction.type
- val LfTemplateId: TypeConId.type
- val LfThinContractInst: VersionedContractInstance.type
- val LfTransaction: Transaction.type
- val LfTransactionVersion: TransactionVersion.type
- val LfVersionedTransaction: VersionedTransaction.type
- def maxTransactionVersion(versions: NonEmpty[Seq[LfLanguageVersion]]): LfLanguageVersion
- object AcsCommitmentsCatchUpParameters extends Serializable
- case object AuthenticatedContractIdVersionV10 extends CantonContractIdV1Version with Product with Serializable
- case object AuthenticatedContractIdVersionV11 extends CantonContractIdV1Version with Product with Serializable
- case object CantonContractIdV2Version0 extends CantonContractIdV2Version with Product with Serializable
- object CantonContractIdVersion extends Serializable
- object ContractAuthenticationData
- object ContractIdAbsolutizer
- object ContractIdSuffixer
- object ContractIdSyntax
- object ContractInstance
- object ContractMetadata extends HasVersionedMessageCompanion[ContractMetadata] with HasVersionedMessageCompanionDbHelpers[ContractMetadata] with Serializable
- object ContractSalt extends Serializable
- object CreatedContract extends Serializable
- object CreatedContractInView extends Serializable
- object DynamicSequencingParameters extends VersioningCompanion[DynamicSequencingParameters] with Serializable
- object DynamicSynchronizerParameters extends VersioningCompanion[DynamicSynchronizerParameters] with Serializable
- object ExternalAuthorization extends VersioningCompanion[ExternalAuthorization] with ProtocolVersionedCompanionDbHelpers[ExternalAuthorization] with Serializable
- object GlobalKeySerialization
- object InputContract extends Serializable
- object LegacyContractHash
This class is used in the places where the hash has not been provided by the engine
- object LfHashSyntax
- object LocalAbstainError extends LocalRejectionGroup with Serializable
- object LocalContractId extends Serializable
- object LocalRejectError extends LocalRejectionGroup with Serializable
- object OnboardingRestriction extends Serializable
- object ProtocolSymmetricKey extends VersioningCompanion[ProtocolSymmetricKey] with Serializable
- object ReassignmentId
- object RefIdentifierSyntax
- object RequestId extends Serializable
- object ResolvedKey extends Serializable
- object RollbackContext extends Serializable
- object RootHash extends Serializable
- object SerializableContract extends HasVersionedMessageCompanion[SerializableContract] with HasVersionedMessageCompanionDbHelpers[SerializableContract] with Serializable
- object SerializableDeduplicationPeriod extends Serializable
- object SerializableRawContractInstance extends Serializable
- object Stakeholders extends HasVersionedMessageCompanion[Stakeholders] with Serializable
- object StaticSynchronizerParameters extends VersioningCompanion[StaticSynchronizerParameters] with ProtocolVersionedCompanionDbHelpers[StaticSynchronizerParameters] with Serializable
- object StoredParties extends HasVersionedMessageCompanion[StoredParties] with HasVersionedMessageCompanionDbHelpers[StoredParties] with Serializable
- object SynchronizerParameters
- object SynchronizerParametersLookup
- object TransactionId extends Serializable
- object TransactionMetadata extends Serializable
- object ViewHash extends Serializable
- object WellFormedTransaction extends Serializable
- object WithContractMetadata extends Serializable