package transaction

  1. Alphabetic
  1. Public
  2. Protected

Type Members

  1. sealed abstract class AddRemoveChangeOp extends TopologyChangeOp


  2. final case class DomainGovernanceElement(mapping: DomainGovernanceMapping) extends TopologyStateElement[DomainGovernanceMapping] with Product with Serializable
  3. sealed trait DomainGovernanceMapping extends TopologyMapping
  4. sealed abstract case class DomainGovernanceTransaction extends TopologyTransaction[Replace] with Product with Serializable
  5. final case class DomainParametersChange(domainId: DomainId, domainParameters: DynamicDomainParameters) extends DomainGovernanceMapping with HasProtoV0[protocol.v0.DomainParametersChange] with Product with Serializable
  6. sealed case class DomainTopologyTransactionType extends Product with Serializable
  7. final case class IdentifierDelegation(identifier: UniqueIdentifier, target: SigningPublicKey) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.IdentifierDelegation] with Product with Serializable

    An identifier delegation

    An identifier delegation

    entrusts a public-key to do any change with respect to the identifier {(X,I) => p_k}

  8. sealed abstract case class LegalIdentityClaim extends ProtocolVersionedMemoizedEvidence with HasProtocolVersionedWrapper[LegalIdentityClaim] with HasProtoV0[protocol.v0.LegalIdentityClaim] with NoCopy with Product with Serializable
  9. sealed trait LegalIdentityClaimEvidence extends AnyRef
  10. final case class MediatorDomainState(side: RequestSide, domain: DomainId, mediator: MediatorId) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.MediatorDomainState] with Product with Serializable
  11. final case class NamespaceDelegation(namespace: Namespace, target: SigningPublicKey, isRootDelegation: Boolean) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.NamespaceDelegation] with Product with Serializable

    A namespace delegation transaction (intermediate CA)

    A namespace delegation transaction (intermediate CA)

    Entrusts a public-key to perform changes on the namespace {(*,I) => p_k}

    If the delegation is a root delegation, then the target key inherits the right to authorize other NamespaceDelegations.

  12. final case class OwnerToKeyMapping(owner: KeyOwner, key: PublicKey) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.OwnerToKeyMapping] with Product with Serializable

    A key owner (participant, mediator, sequencer, manager) to key mapping

    A key owner (participant, mediator, sequencer, manager) to key mapping

    In Canton, we need to know keys for all participating entities. The entities are all the protocol members (participant, mediator, topology manager) plus the sequencer (which provides the communication infrastructure for the members).

  13. final case class ParticipantAttributes(permission: ParticipantPermission, trustLevel: TrustLevel) extends Product with Serializable

    If trustLevel is TrustLevel.Vip, then permission.canConfirm must hold.

  14. sealed trait ParticipantPermission extends Product with Serializable

    Permissions of a participant, i.e., things a participant can do on behalf of a party

    Permissions of a participant, i.e., things a participant can do on behalf of a party

    Permissions are hierarchical. A participant who can submit can confirm. A participant who can confirm can observe.

  15. final case class ParticipantState(side: RequestSide, domain: DomainId, participant: ParticipantId, permission: ParticipantPermission, trustLevel: TrustLevel) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.ParticipantState] with Product with Serializable
  16. final case class PartyToParticipant(side: RequestSide, party: PartyId, participant: ParticipantId, permission: ParticipantPermission) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.PartyToParticipant] with Product with Serializable

    party to participant mapping

    party to participant mapping

    We can map a party to several participants at the same time. We represent such a mapping in the topology state using the party to participant

  17. sealed trait RequestSide extends AnyRef

    Side of the party to participant mapping request

    Side of the party to participant mapping request

    Party to participant mapping request need to be approved by both namespaces if the namespaces are different. We support this by allowing to split the signatures into two transactions (so both namespace controller sign the same transaction, just with different "RequestSide"

    {Both, +, (P,I) -> (N,J)}[s_I, s_J] = {From,+, (P,I) -> (N,J)}[s_I] + {To,+, (P,I) -> (N,J)}^[s_J]

  18. sealed trait RequiredAuth extends AnyRef

    Defines the required authorization chain

  19. final case class SignedLegalIdentityClaim(uid: UniqueIdentifier, claim: ByteString, signature: Signature) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.SignedLegalIdentityClaim] with PrettyPrinting with Product with Serializable
  20. case class SignedTopologyTransaction[+Op <: TopologyChangeOp](transaction: TopologyTransaction[Op], key: SigningPublicKey, signature: Signature)(representativeProtocolVersion: RepresentativeProtocolVersion[SignedTopologyTransaction[TopologyChangeOp]], deserializedFrom: Option[ByteString] = None) extends HasProtocolVersionedWrapper[SignedTopologyTransaction[TopologyChangeOp]] with HasProtoV0[protocol.v0.SignedTopologyTransaction] with ProtocolVersionedMemoizedEvidence with Product with Serializable with PrettyPrinting

    A signed topology transaction

    A signed topology transaction

    Every topology transaction needs to be authorized by an appropriate key. This object represents such an authorization, where there is a signature of a given key of the given topology transaction.

    Whether the key is eligible to authorize the topology transaction depends on the topology state

  21. sealed trait TopologyChangeOp extends Product with Serializable with PrettyPrinting

    Add, Remove, Replace

  22. final case class TopologyElementId(str: String255) extends LengthLimitedStringWrapper with PrettyPrinting with Product with Serializable

    Topology transaction id

    Topology transaction id

    Used to distinguish topology transactions from each other such that a Remove explicitly refers to a corresponding Add, such that we can support re-addition (Add, Remove, Add again).

  23. sealed trait TopologyMapping extends Product with Serializable with PrettyPrinting

    X -> Y

  24. sealed trait TopologyStateElement[+M <: TopologyMapping] extends PrettyPrinting
  25. sealed abstract case class TopologyStateUpdate[+Op <: AddRemoveChangeOp] extends TopologyTransaction[Op] with Product with Serializable

    +/-, X -> Y

    +/-, X -> Y

    Every topology transaction is the combination of an operation (Add, Remove), a unique element id and the state operation.

    An Add can pick a random element id. A remove needs to pick the element id of the corresponding addition. Element ids are uniqueness constraints. Once removed, they can't be re-added (during a configurable time window)

  26. final case class TopologyStateUpdateElement(id: TopologyElementId, mapping: TopologyStateUpdateMapping) extends TopologyStateElement[TopologyStateUpdateMapping] with Product with Serializable
  27. sealed trait TopologyStateUpdateMapping extends TopologyMapping
  28. sealed trait TopologyTransaction[+Op <: TopologyChangeOp] extends ProtocolVersionedMemoizedEvidence with PrettyPrinting with HasProtocolVersionedWrapper[TopologyTransaction[TopologyChangeOp]] with HasProtoV0[protocol.v0.TopologyTransaction] with Product with Serializable
  29. sealed trait TrustLevel extends Product with Serializable

    The trust level of the participant.

    The trust level of the participant. Can be either Ordinary or Vip

  30. trait UniquePath extends AnyRef

    Unique path of a topology transaction

    Unique path of a topology transaction

    The unique path allows us to distinguish any topology transaction by a unique code. In addition, the code is chosen such that we can organise all transactions in a binary tree structure such that changes to that tree are mostly local.

    The path is defined by namespace :: Rest and Rest can be "nsd" :: content :: topologyElementId (for namespace delegations) "uid" :: uid.identifier :: "code" :: element-id

    (type, namespace, optional[identifier], optional[element-id])

    Therefore, if we onboard a new participant with many parties, all the changes to the topology will be within the "subpath" defined by the namespace.

  31. final case class UniquePathNamespaceDelegation(namespace: Namespace, elementId: TopologyElementId) extends UniquePath with Product with Serializable
  32. final case class UniquePathSignedDomainGovernanceTransaction(uid: UniqueIdentifier, dbType: DomainTopologyTransactionType) extends UniquePath with Product with Serializable
  33. final case class UniquePathSignedTopologyTransaction(uid: UniqueIdentifier, dbType: DomainTopologyTransactionType, elementId: TopologyElementId) extends UniquePath with Product with Serializable
  34. final case class VettedPackages(participant: ParticipantId, packageIds: Seq[LfPackageId]) extends TopologyStateUpdateMapping with HasProtoV0[protocol.v0.VettedPackages] with PrettyPrinting with Product with Serializable

Value Members

  1. object AddRemoveChangeOp extends Serializable
  2. object DomainGovernanceTransaction extends Serializable
  3. object DomainParametersChange extends Serializable
  4. object DomainTopologyTransactionType extends Serializable
  5. object IdentifierDelegation extends Serializable
  6. object LegalIdentityClaim extends HasMemoizedProtocolVersionedWrapperCompanion[LegalIdentityClaim] with Serializable
  7. object LegalIdentityClaimEvidence
  8. object MediatorDomainState extends Serializable
  9. object NamespaceDelegation extends Serializable
  10. object OwnerToKeyMapping extends Serializable
  11. object ParticipantPermission extends Serializable
  12. object ParticipantState extends Serializable
  13. object PartyToParticipant extends Serializable
  14. object RequestSide
  15. object RequiredAuth
  16. object SignedLegalIdentityClaim extends Serializable
  17. object SignedTopologyTransaction extends HasMemoizedProtocolVersionedWrapperCompanion[SignedTopologyTransaction[TopologyChangeOp]] with Serializable
  18. object TopologyChangeOp extends Serializable
  19. object TopologyElementId extends LengthLimitedStringWrapperCompanion[String255, TopologyElementId] with Serializable
  20. object TopologyStateUpdate extends Serializable
  21. object TopologyTransaction extends HasMemoizedProtocolVersionedWrapperCompanion[TopologyTransaction[TopologyChangeOp]] with Serializable
  22. object TrustLevel extends Serializable
  23. object UniquePath
  24. object UniquePathSignedTopologyTransaction extends Serializable
  25. object VettedPackages extends Serializable