final case class WellFormedTransaction[+S <: State] extends Product with Serializable
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.daml.lf.value.Value.ContractId.V1
. 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. - The discriminators of create nodes without suffixed contract ids are unique among all discriminators that appear in the transaction.
- 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.
- All nodes in the transaction have the
optLocation
field set toNone
. - 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
- The transaction has the
optUsedPackages
set to scala.None$ - Every rollback node has at least one child and no rollback node appears at the root unless the transaction has been merged by Canton.
- Alphabetic
- By Inheritance
- WellFormedTransaction
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val metadata: TransactionMetadata
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def seedFor(nodeId: LfNodeId): Option[LfHash]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tryAdjustNodeIds(offset: Int): WellFormedTransaction[S]
Adjust the node IDs in an LF transaction by the given (positive or negative) offset
Adjust the node IDs in an LF transaction by the given (positive or negative) offset
For example, an offset of 1 increases the NodeId of every node by 1. Ensures that the transaction stays wellformed.
- Exceptions thrown
java.lang.IllegalArgumentException
ifoffset
is negative or a node ID overflow would occur
- def unwrap: LfVersionedTransaction
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withoutVersion: LfTransaction